00:00:04 <zzo38> I also like Magic: the Gathering puzzles and Pokemon card puzzles, and I like to compose Pokemon card puzzles, including the one requiring retreating at least three times, knocking out your own cards, and so on.
00:01:03 <zzo38> I play chess puzzles too, as well as tsume shogi, too.
00:01:11 <coppro> zzo38: I saw a player use Restoration Angel to flash a token at the GP
00:02:01 <zzo38> Can you give me the text of that card, and the details of the situation?
00:05:30 <Arc_Koen> can someone copy the list at http://esolangs.org/wiki/Category:Self-modifying and email it to me?
00:06:22 <Jafet> `fetch http://esolangs.org/wiki/Category:Self-modifying
00:06:25 <HackEgo> 2013-03-05 00:06:24 URL:http://esolangs.org/wiki/Category:Self-modifying [18477] -> "Category:Self-modifying" [1]
00:06:49 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: mail: not found
00:06:51 <zzo38> coppro: Do you not remember?
00:07:19 -!- DHeadshot has joined.
00:09:17 <coppro> I'm just too lazy. You can look up card texts yourself
00:09:27 <Bike> @google mtg gatherer restoration angel
00:09:28 <lambdabot> http://gatherer.wizards.com/pages/Card/Details.aspx?multiverseid=240096
00:09:29 <lambdabot> Title: Restoration Angel (Avacyn Restored) - Gatherer - Magic: The Gathering
00:10:39 <zzo38> What was the situation, however?
00:10:48 * oerjan wonders what kind of strange setup makes Arc_Koen unable to do the tranfer himself
00:11:09 <Arc_Koen> well the whole point is to compare what I see with what others see
00:11:39 <coppro> zzo38: there was a spell targeted at the token which he did not want to resolve
00:11:54 <zzo38> O, OK, yes, that would work.
00:12:10 <oerjan> `url Category:Self-modifying
00:12:13 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/Category%3ASelf-modifying
00:12:35 <Arc_Koen> error: Category:Self-modifying@f368e91512e6: not found in manifest
00:12:38 <zzo38> I like that kinds of ideas.
00:12:43 <Arc_Koen> hmm yes definitely different from what I see :p
00:12:53 <Bike> `cat "Category:Self-modifying"
00:12:55 <HackEgo> cat: "Category:Self-modifying": No such file or directory
00:13:03 <Bike> `run cat 'Category:Self-modifying'
00:13:04 <HackEgo> cat: Category:Self-modifying: No such file or directory
00:13:29 <HackEgo> patching file Category:Self-modifying
00:13:36 <Jafet> I deletedetedeted it
00:14:01 <zzo38> It says "that card" but the first part doesn't say it has to be a card.
00:14:05 <Bike> `run cat 'Category:Self-modifying'
00:14:07 <HackEgo> <!DOCTYPE html> \ <html lang="en" dir="ltr" class="client-nojs"> \ <head> \ <title>Category:Self-modifying - Esolang</title> \ <meta charset="UTF-8" /> \ <meta name="generator" content="MediaWiki 1.19.1" /> \ <link rel="alternate" type="application/x-wiki" title="Edit" href="/w/index.php?title=Category:Self-modifying&action=edit" /> \ <link
00:14:39 <zzo38> Under the current rules, does the token come back, though?
00:15:00 <Arc_Koen> well it appears to be exactly what I see
00:16:02 <HackEgo> Agent “Iä” Smith is an alien with a strange allergy to avian body covering, which he is trying to retroactively prevent from ever evolving. On the 3rd of March, he's lawful good.
00:16:47 <oerjan> Arc_Koen: but what if your browser has a "trusting trust" problem, what then!
00:17:29 <Jafet> "Warning: I cannot be trusted to display this webpage correctly. Display webpage?"
00:18:01 <Arc_Koen> so how does mediawiki handle category page? for instance if you add a page to a category, when is the category page updated?
00:18:27 <oerjan> i thought it was pretty quick...
00:19:00 <oerjan> Jafet: wtf are you doing to rainwords :P
00:19:04 <zzo38> If it is a SQL query, it should do immediately if there isn't a cache of the query.
00:19:42 <zzo38> coppro: Do you know the answer to my rules question? They change the rules so I don't know what it is
00:20:42 <Jafet> oerjan: making it work on bin/rainwords
00:20:52 <Jafet> `run rainwords $(which rainwords)
00:21:08 -!- fungot has quit (Ping timeout: 248 seconds).
00:22:08 <oerjan> also exactly how didn't it work before...
00:23:10 <Jafet> raw_input() reads one line
00:23:18 <Jafet> (I think we learned this recently)
00:23:23 <oerjan> oh. i was wondering more about the r thing
00:24:07 <oerjan> `/usr/bin/python --versino
00:24:09 <HackEgo> Unknown option: -- \ usage: /usr/bin/python [option] ... [-c cmd | -m mod | file | -] [arg] ... \ Try `python -h' for more information.
00:24:10 <oerjan> `/usr/bin/python --version
00:24:10 <Arc_Koen> I just used my magic powers to update the category page, now it has 82 languages listed
00:24:35 <Jafet> `run python -c 'r=[4,7,8,9,2,13,6]; print " ".join(chr(3) + c + ":-)" for c in r)'
00:24:37 <HackEgo> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ File "<string>", line 1, in <genexpr> \ TypeError: cannot concatenate 'str' and 'int' objects
00:24:45 <Jafet> `run python -c 'r=[4,7,8,9,2,13,6]; print " ".join(chr(3) + str(c) + ":-)" for c in r)'
00:24:46 <HackEgo> :-) :-) :-) :-) :-) :-) :-)
00:25:01 <Jafet> 13 isn't very indigo, unfortunately
00:26:16 <oerjan> oh it's actually rainbow order :P
00:26:43 <oerjan> `rainwords What does this do then
00:27:01 <oerjan> i think there is a problem yes
00:28:01 <HackEgo> #!/usr/bin/python \ import random; w=[l.split() for l in open("/dev/stdin").read().split("\n")]; r=[4,7,8,9,2,13,6]; print "\n".join((lambda s: " ".join(chr(3) + str(r[(i+s)%len(r)]) + l[i] for i in range(len(l))))(random.randrange(0, len(r))) for l in w)
00:28:22 -!- sirdancealot has quit (Ping timeout: 250 seconds).
00:28:33 <oerjan> `run echo I think I remember the issue | rainwords
00:28:35 <HackEgo> I think I remember the issue
00:28:38 <kallisti_> I'm kind of confused as to how regular expressions are a single production rule (in the formal grammar sense)
00:29:03 <Bike> kallisti_: ac*b generates ab, acb, accb, acccb, etc
00:29:09 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/rainwords", line 2, in <module> \ import random; w=[l.split() for l in open("/dev/stdin").read().split("\n")]; r=[4,7,8,9,2,13,6]; print "\n".join((lambda s: " ".join(chr(3) + str(r[(i+s)%len(r)]) + l[i] for i in range(len(l))))(random.randrange(0, len(r))) for l in w) \ MemoryError
00:29:16 <Jafet> oerjan: what do you think this is, haskell??
00:29:24 <Jafet> Take your infinite streams and begone
00:29:26 <oerjan> `run yes | head -50 | rainwords
00:29:28 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
00:29:41 <kallisti_> oh wait maybe I misunderstand what a regular grammar is
00:29:45 -!- Frooxius has quit (Ping timeout: 240 seconds).
00:29:59 <Bike> it's just alternation and kleene star
00:30:07 <Bike> oh and concatenation obv
00:30:20 <kallisti_> I'm trying to find the link between regular expressions and regular grammars
00:30:48 <Bike> "In regular grammars, the left hand side is again only a single nonterminal symbol, but now the right-hand side is also restricted. The right side may be the empty string, or a single terminal symbol, or a single terminal symbol followed by a nonterminal symbol, but nothing else."
00:31:06 <kallisti_> so a regular grammar can have multiple production rules right?
00:31:24 <kallisti_> I misread and thought that it meant the grammar had only one production rule
00:31:31 <Bike> http://upload.wikimedia.org/math/5/6/e/56e5e8888abe83d0f4f731bde2611d72.png wikipedia's example
00:31:40 <Jafet> `run ghc -e 'putStr $ replicate 100 "_,.-~^~-.,"' | rainwords
00:31:40 <Bike> (for a+b+ in regex syntax)
00:31:44 <HackEgo> \ <interactive>:1:24: \ Couldn't match expected type `Char' with actual type `[Char]' \ In the second argument of `replicate', namely `"_,.-~^~-.,"' \ In the second argument of `($)', namely \ `replicate 100 "_,.-~^~-.,"' \ In the expression: putStr $ replicate 100 "_,.-~^~-.,"
00:31:47 <Bike> ...that didn't work
00:31:53 <Bike> http://en.wikipedia.org/wiki/Formal_grammar#Regular_grammars that.
00:32:21 <Jafet> `run ghc -e 'putStr $ take 999 $ cycle "_,.-~^~-.,"' | colorize
00:32:26 <HackEgo> _,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-
00:32:37 <Jafet> `run ghc -e 'putStr $ take 200 $ cycle "_,.-~^~-.,"' | colorize
00:32:42 <HackEgo> _,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,
00:32:50 <kallisti_> ah okay, I simply misread what a regular grammar is.
00:33:20 <Bike> `run python -c 'print("_,.-~^~-.," * 100)" | colorize
00:33:21 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
00:33:22 <FreeFull> `run yes ":D " | head -50 | tr -d '\n' | rainwords
00:33:24 <HackEgo> :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D
00:33:27 <Bike> `run python -c 'print("_,.-~^~-.," * 100)"' | colorize
00:33:29 <HackEgo> File "<string>", line 1 \ print("_,.-~^~-.," * 100)" \ ^ \ SyntaxError: EOL while scanning string literal \ Traceback (most recent call last): \ File "/hackenv/bin/colorize", line 4, in <module> \ w=raw_input() \ EOFError: EOF when reading a line
00:33:32 <kallisti_> so this concept for an esolang I have
00:33:38 <kallisti_> is essentially a context-sensitive grammar
00:33:44 <Bike> `run python -c 'print("_,.-~^~-.," * 100)' | colorize
00:33:45 <kallisti_> where the production rules are operating on themselves
00:33:46 <HackEgo> _,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-
00:34:26 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: tcc: not found
00:34:45 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: icc: not found
00:34:51 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: clang: not found
00:35:00 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: fasm: not found
00:35:09 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: nasm: not found
00:35:35 <Bike> hm is there an esolang based on linker command language
00:35:39 -!- sebbu has joined.
00:35:39 -!- sebbu has quit (Changing host).
00:35:39 -!- sebbu has joined.
00:36:08 <Jafet> Bike: that seems redundant
00:36:21 <FreeFull> Is there an esolang that randomly picks other esolangs to try running your code in?
00:36:40 <oerjan> Bike: colorize doesn't add colors beyond hackego's output limit of 350 bytes
00:36:58 -!- augur has joined.
00:37:19 -!- Frooxius has joined.
00:37:31 <FreeFull> Rainbows all the way across #esoteric
00:40:01 <zzo38> Is coppro even on anymore?
00:40:31 -!- TeruFSX has joined.
00:46:46 -!- sirdancealo2 has joined.
00:51:37 <zzo38> Is there a way in Linux to access the text mode VRAM without root?
00:52:29 <zzo38> Furthermore, can you capture the text mode VRAM of a different virtual console in this way?
00:56:15 <kmc> chmod /dev/mem and then you can :)
00:56:33 <zzo38> I don't want to access all of the memory though.
00:58:33 <Jafet> Can you put ACLs on /dev/mem
00:58:48 <Jafet> "there could be a legit use for this"
00:58:51 <kmc> you can write a setuid helper for reading parts of /dev/mem
00:59:10 <kmc> over a UNIX socket with SCM_CREDS
00:59:18 <kmc> bad ideas itt
00:59:34 <zzo38> What would be the addresses of such screens anyways (also based on the numbers of rows and columns)?
00:59:51 <kmc> dunno, you may have to source-dive the linux kernel
01:00:06 <Jafet> Source-dive the linux documentation
01:00:25 -!- doesthiswork has joined.
01:00:25 <zzo38> Are they the standard PC text mode formats?
01:01:14 <zzo38> I was thinking to have the program which writes the text VRAM of one virtual console to a file, with a header specifying the width/height.
01:01:37 <zzo38> Doing this is MZM layer mode.
01:03:10 <zzo38> Some people may want to have a ANSI screenshot of Linux screens, so you could then use MZM->ANSI to do that.
01:03:30 <Jafet> Does the linux console support 256 colors
01:03:54 <zzo38> As far as I know it is PC text mode.
01:07:53 <Jafet> I thought it used the framebuffer
01:08:12 <kmc> can do either
01:08:14 <zzo38> I think it supports that too
01:08:57 <zzo38> I suppose you would need the framebuffer or other things though, if you are running Linux in the computer which is not PC.
01:11:16 <Jafet> You would need the framebuffer unless you enjoy running htop in 80x25 or whatever the VGA text mode is
01:12:31 <kmc> i enjoy it very much
01:12:33 <kmc> it's so easy
01:14:42 <zzo38> The default text mode is 80x25, but it seems to be able to run in various other sizes too.
01:20:13 <Sgeo> Hrmph. Still no new OOTS
01:22:22 <Jafet> oots is the worst campaign ever
01:22:33 <Jafet> Who runs a campaign for ten years
01:24:26 <zzo38> How long do *you* run a champagne^Wcampaign?
01:25:00 <Jafet> Nobody lets me run a campaign
01:27:22 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:27:28 -!- DH____ has joined.
01:27:30 <zzo38> Then you must learn.
01:40:34 -!- GOMADWarrior has joined.
01:42:08 <Jafet> "In May 2006, Intel announced that 80386 production would stop at the end of September 2007."
01:48:34 -!- Jafet has quit (Quit: Leaving.).
02:06:49 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:25:20 <zzo38> In Dungeons&Dragons game, some people forced us to give them much of our things; much of which is not important but some are, so we need to get it back.
02:25:52 <zzo38> It seems they don't understand magic very well, so if we can somehow convince them that the amulet of anti-magic is actually a amulet of illusions? (note: My character is currently invisible)
02:27:06 -!- GOMADWarrior has quit (Ping timeout: 264 seconds).
02:27:57 <zzo38> Or if I find the single one, alone, which has the item we need, then I could safely stun them even though becoming visible, if I can surprise them.
02:28:46 <zzo38> I do think of the possibility that they are just trying to make us think they don't know magic and actually they do, but I find this not likely at this time. Nevertheless, I must consider all of the possibilities.
02:33:19 -!- oerjan has quit (Quit: leaving).
02:33:38 -!- Arc_Koen has quit (Quit: leaving as well).
02:48:56 -!- oerjan has joined.
02:49:17 <HackEgo> olist: shachaf oerjan Sgeo
02:50:51 <zzo38> Did I missed something else?
02:51:24 <Sgeo> And I take it you got your cache issues sorted out?
02:51:40 <oerjan> no, i just went to the right number directly
03:08:06 -!- madbr has joined.
03:08:22 <madbr> the 65816 is so impossible to pipeline
03:08:28 <madbr> it's like it's designed against it
03:13:06 <oerjan> @hoogle m (x -> y) -> x -> m y
03:13:07 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
03:13:07 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
03:13:07 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
03:13:25 <lambdabot> Functor f => f (a -> b) -> a -> f b
03:13:48 <oerjan> @hoogle m (x -> m y) -> x -> m y
03:13:49 <lambdabot> Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b
03:13:49 <lambdabot> Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b
03:13:49 <lambdabot> Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b
03:32:46 -!- monqy has joined.
03:45:42 <coppro> zzo38: it is a card because once in exile, it is just a card
04:04:58 -!- abumirqaan has quit (Read error: Operation timed out).
04:07:06 -!- iamcal_ has quit (Ping timeout: 245 seconds).
04:07:56 -!- surma has quit (Ping timeout: 256 seconds).
04:08:00 -!- ssue has quit (Ping timeout: 264 seconds).
04:08:11 -!- jix has quit (Ping timeout: 255 seconds).
04:13:22 -!- jix has joined.
04:15:59 -!- ssue_ has joined.
04:20:41 -!- abumirqaan has joined.
04:34:14 -!- FireFly has quit (Excess Flood).
04:34:31 -!- FireFly has joined.
04:38:31 -!- monqy has quit (Quit: hello).
05:08:00 <zzo38> coppro: I thought it is a token?
05:37:51 -!- oerjan has quit (Quit: leaving).
05:47:07 -!- iamcal_ has joined.
05:52:21 -!- monqy has joined.
05:55:13 -!- TeruFSX has quit (Ping timeout: 248 seconds).
06:01:57 -!- surma has joined.
06:20:15 -!- nooodl has joined.
06:31:25 <coppro> zzo38: tokens cannot be returned to the battlefield once exiled
06:31:32 <coppro> so that sentence wouldn't apply to them anyway
06:37:35 <zzo38> coppro: Yes it is what I thought might be the case
06:38:15 <zzo38> Do they cease to exist due to lack of initial state? How do the new rules work with this?
06:40:23 -!- mtve has quit (Ping timeout: 255 seconds).
06:40:49 <madbr> zzo38 : got any interest in synthesizer design?
06:48:18 <zzo38> Can you make a Pokemon card puzzle which involves retreating more than three times? What is the maximum number of times you can make it have? There is win in 1, win in 2, win in 3, even as much as win in thirty, can there be made a win in sixty?
06:49:54 <zzo38> Or make one involving a not 100% win but maximized chances?
06:55:07 <zzo38> madbr: What was your ask of interest in synthesizer design?
06:58:02 <madbr> writing a synth atm
06:58:58 <coppro> zzo38: a token, once it has left the battlefield, cannot again change zones
06:59:08 <coppro> it ceases to exist the next time state-based actions are performed
07:01:42 <zzo38> coppro: Yes, those are the rules I thought but there are many things I dislike about the Magic: the Gathering rules that I think are very klugy; I don't like the rule of removing auras that are also creatures, for example, as well as other things. But, OK, now at least I can know what those rules are.
07:02:04 <zzo38> madbr: What synth are you writing?
07:03:48 <zzo38> I always use Csound for this kinds of stuff, it has physical models. But what specific physical model are you making? Maybe it is one I don't have.
07:05:03 <madbr> going to have a couple "generic" models
07:05:12 <madbr> one for wind instruments
07:05:26 <madbr> and one for plucked strings with a variant for percussion
07:05:44 <zzo38> O, I already have things like that.
07:05:59 <zzo38> Still, I suppose yours might be useful for using with VST, I guess.
07:06:27 <madbr> yeah but the ones in STK suck
07:06:45 <madbr> dunno about the csound ones but they're probably not very good
07:07:16 <zzo38> O, OK, then. Are you able to license the files under the LGPL v2.1 and later version?
07:09:04 <zzo38> The files to implement the physical model; in case it works better than the one in Csound then I can port it to Csound.
07:09:30 <zzo38> Actually Csound has a few generic models for wind instruments and plucked strings; one of the plucked string models is of a good quality.
07:11:30 <zzo38> Csound uses the LGPL v2.1 license, so my own plugins to Csound use the same license so that they could include it in the main program if they wanted to.
07:12:29 <madbr> does that imply that the other plucked string models are bad
07:13:44 <zzo38> Not necessarily; it could also be that I configured them incorrectly or have bias due to other reasons, still, it can be useful for certain sounds nevertheless.
07:14:18 <zzo38> I just mean they do not seem to be as good as the specific one that I found to be much better than the others.
07:14:52 <madbr> or maybe they just sound bad
07:15:00 <madbr> like most physical modeling stuff
07:17:16 <zzo38> Still, one of them is not bad, specifically "wgpluck" seems good.
07:22:17 <zzo38> I have gotten some special effects by using percussion sounds with waveguides to make a new sound
07:31:04 <madbr> doesn't look like it has inharmonicity
07:32:09 <zzo38> You might be correct.
07:37:09 -!- epicmonkey has joined.
07:40:05 <mroman_> How does a mark-and-sweep gc know which "objects are still known"?
07:40:45 <mroman_> void foo() { char* b =alloc .. char* a= alloc... bar(b); ...} void bar(b) { doStuff }
07:40:56 <mroman_> if my gc kicks in while b is currently in doStuff
07:41:06 <mroman_> how does he know that he should not delete b and a yet?
07:41:27 <mroman_> and how does he know he can delete them after foo
07:41:29 <shachaf> You mean a conservative GC?
07:41:38 <Bike> usually you'd add the stack frame to the root set?
07:41:44 <shachaf> It'll just scan the stack/registers/etc. for pointers.
07:42:15 <mroman_> Yeah but since I'm compiling to C there might be other stuff on the stack too
07:42:28 <mroman_> I could pass stuff on an other stack structure
07:42:39 <mroman_> and then just scan the stack
07:42:42 <mroman_> that'd be the easiest thing
07:43:10 <mroman_> instead of compiling to bar(b); I would compile to push(someStack,b); bar();
07:43:17 <mroman_> and bar pops arguments from someStack
07:43:24 <mroman_> but I'm not sure if there's not better way
07:44:09 <Bike> what "other stuff" is there on the stack?
07:44:31 <Bike> Like, return addresses?
07:44:44 <Bike> somehow i doubt it's going to be a problem to have return addresses in the root set
07:44:47 <mroman_> Yes, but that would not be the problem.
07:46:55 <mroman_> You can do inline C stuff i.e you can write a function in my language and embed C in it
07:47:47 <mroman_> if somebody allocates something on the stack there
07:48:30 <Bike> I don't see the problem? The root set is what's not being collected, you can be greedy.
07:48:41 <Bike> And like shachaf said it's gonna be conservative.
07:49:08 <Bike> The root set. The set of things you tell mark and sweep not to collect.
07:49:45 <Bike> i.e. the "objects still known".
07:49:56 <mroman_> but how do I know which objects I know.
07:50:20 <Bike> Everything pointed to by the stack, and pointed to by that, etc
07:50:29 <mroman_> The stack is not in my control.
07:51:29 -!- epicmonkey has quit (Ping timeout: 248 seconds).
07:52:22 <mroman_> I can't scan the c stack for pointers
07:52:30 <mroman_> how would I even know what's a pointer and what not
07:52:51 <mroman_> and how would I know which are mine and which are not my pointers
07:53:06 <Bike> You don't. You assume everything is a pointer. it's okay to overestimate.
07:54:17 <mroman_> but that would require that all pointers are aligned
07:54:17 <Bike> If you want an exact GC you can use tags or do something funny like put all integers in some particular page, but, you're
07:54:33 <mroman_> 4byte ptr, 1byte char , 4byte ptr
07:54:43 <mroman_> ^- that'd mess things up big time if I do a ptr sweep
07:55:24 <Bike> I thought the stack would usually be word-aligned anyway...
07:55:54 <Fiora> isn't it required by most ABIs...?
07:56:13 <Fiora> ... actually isn't it generally required that data types are aligned to their natural alignment?
07:56:17 <Fiora> like, on the stack or not
07:56:26 <Fiora> unaligned data is invalid C, I think
07:56:36 -!- heroux has quit (Ping timeout: 264 seconds).
07:57:15 <shachaf> The natural alignment for all my data types is Chaotic Evil.
07:57:20 <Bike> That's what I thought. But if tha'ts not the case, maybe you could store stack alloc data along with compiled functions.
07:57:36 <madbr> yeah normally everything should be aligned
07:57:42 <Fiora> the alignment for all my data types is neutral good
07:57:44 <Fiora> except long double
07:57:47 <Fiora> which is chaotic neutral
07:57:54 <madbr> since most processors slap on massive alignment penalties on you if you don't
07:57:54 <Bike> Actually maybe you could do that anyway and then you'd really know what's a pointer... hm
07:58:05 -!- heroux has joined.
07:58:11 <madbr> except the lastest ridiculous intel chips but that's a detail
07:58:22 <Fiora> most? I think most non-x86 just outright segfaults ^^;
07:58:29 <mroman_> sure. miss alignment decreases performance
07:58:50 <madbr> mroman: normally you don't even want to allow misalignment on a cpu
07:58:58 <Fiora> I guess a kernal trap counts as decreased performance.... XD
07:59:00 <madbr> complexifies the design like mad
07:59:01 <mroman_> But still, you can do that.
07:59:05 <fizzie> ARM just gets rotated values for misaligned loads, doesn't it?
07:59:22 <madbr> newer arms have like 8 cycle penalty
07:59:33 <Fiora> I think you still have to use uanligned load instructions explicitly
07:59:34 <Fiora> otherwise it kabooms
07:59:45 <Bike> how would you do that? i thought int x; char y; int z; would put three words on the stack (assuming a int is a word)
08:00:13 -!- carado has joined.
08:00:18 <mroman_> but you can still mess things up by pushing manually a single byte to the stack
08:00:19 <madbr> I'm not sure how different compilers align the stack
08:00:30 <Bike> You can do that in C?
08:00:31 <madbr> but often you need 8 or even 16 byte alignment
08:00:43 <Fiora> I don't think you can even do that in asm
08:00:48 <Fiora> there's no "push byte" instruction in x86 <.<
08:00:51 <Bike> I just, why would you even /want/ to do that.
08:01:04 <madbr> fiora: aren't there a zillion size prefixes?
08:01:05 <Fiora> I mean of course you could like, manually move a byte to the stack and decrement it
08:01:14 <Fiora> PUSH reg16 ; o16 50+r [8086]
08:01:15 <Fiora> PUSH reg32 ; o32 50+r [386]
08:01:18 <madbr> or you could just manually overwrite sp
08:01:24 <Fiora> "The operand-size attribute of the instruction determines whether the stack pointer is decremented by 2 or 4: this means that segment register pushes in BITS 32 mode will push 4 bytes on the stack, of which the upper two are undefined. If you need to override that, you can use an o16 or o32 prefix. "
08:01:46 <Fiora> there's no o8 prefix, so, I don't think push even supports it. which I guess makes sense because x86 never had <16-bit pointers
08:02:04 <Bike> I'm thinking maybe if you're going to be this cruel to your computer maybe the GC should just break their knees.
08:02:12 <madbr> yeah but x86 is horrible so I was half expecting a push byte instruction :D
08:02:23 <madbr> possibly even a 1-byte opcode for doing it
08:02:26 <Fiora> there's a "push imm8", but it pushes with the current bitness (or operand prefix bitness)
08:02:39 <Fiora> so it's just a nice short shortcut for pushing small numbers like zeroes
08:02:43 <Fiora> without using an imm32 <.<
08:03:04 <fizzie> There's also no push reg32 in long mode, while you can still do a push reg16 with the o16 prefix.
08:03:11 <madbr> there's no point except in function call stuff
08:03:37 <madbr> which is what stack instructions are for anyways, I guess
08:03:43 <fizzie> (So you can push 2 bytes, or 8, but not 4.)
08:03:52 <Fiora> fizzie: huh, did they do that to free up opcode space?
08:04:02 <Fiora> that's really weird
08:04:11 <fizzie> The manual doesn't give reasons, just facts. :p
08:04:34 <Fiora> I still love some of the really silly incongruencies
08:04:52 <Fiora> like the fact that nop is "xchg eax, eax" in 32-bit mode
08:04:56 <Fiora> but in 64-bit mode, they're not the same thing
08:05:06 <Fiora> because xchg eax, eax isn't a nop
08:05:12 <madbr> that's because you done have to do the horrible pipeline design that comes with that :D
08:05:20 <fizzie> Fiora: Possibly they did it so that you don't need a REX.W prefix for every PUSH, though?
08:05:40 <Fiora> fizzie: couldn't they make it default to 64-bit and 32-bit requires the address size prefix?
08:05:41 <madbr> isn't there one of the RISCs where mov is really OR rd, rs, rs
08:05:46 <Fiora> I remember there were some instructions that did that?
08:06:04 <madbr> or something like OR rd, rs, rzero
08:06:04 <fizzie> Fiora: I don't remember any examples, but I guess that's possible.
08:06:08 <Bike> madbr: isn't mov a pseudo for add ,,#0 on some ARM?
08:06:28 <Fiora> like, isn't using 32-bit memory operands in long mode, doesn't that require a prefix byte?
08:06:36 <Fiora> e.g. mov eax, [ebx]
08:07:03 <mroman_> PUSH : byte operand, immediate
08:07:16 <Fiora> Yeah, that's the push imm8
08:07:22 <fizzie> mroman_: Pushes a sign-extended value of either 2 or 4 bytes.
08:07:28 <Fiora> it actually decrements esp by 2, 4, or 8 though >.>
08:07:29 <Bike> Fiora explained imm8 up a ways.
08:07:45 <Bike> (and: so it is one-byte, huh)
08:08:01 <Fiora> that one actually feels like a reasonable one byte opcode
08:08:19 <Fiora> at least, maybe more reasonable than pusha <.<
08:09:30 <fizzie> Fiora: I was sort of assuming you couldn't write that at all, but apparently you can.
08:10:36 <fizzie> Fiora: No, mov eax, [ebx] in long mode. (And it does seem to result in what you said, a REX prefix with REX.W = 0.)
08:10:51 <Fiora> fizzie: the place I actually remember that coming up was when I was reading about x32
08:11:05 <Fiora> they wanted to use 32-bit pointers in long mode, but it requires adding a prefix to every single instruction
08:11:24 <Fiora> so instead you have to use 64-bit pointers where the top half is zero
08:11:40 <Fiora> except apparently gcc has trouble with that or something? I don't know much of it <_>
08:11:49 <Fiora> x32 is this new abi thing that's, like. x86_64 without the 64-bit
08:12:02 <shachaf> Doesn't that defeat the purpose of x32?
08:12:16 <Fiora> shachaf: I think the pointers are still stored as 32-bit
08:12:18 <fizzie> Fiora: Or actually there doesn't seem to be a REX prefix at all, I mislooked.
08:12:32 <Fiora> but like, when you address, you do [rax] instead of [eax] and just make sure the top is zero
08:12:48 <fizzie> Fiora: There's an old-fashioned 67h address-size override prefix instead.
08:13:29 <Fiora> so like, in 32-bit, 67h would mean 16-bit addressing, like mov ax, [bx]?
08:13:36 <Fiora> and in 64-bit it corresponds to mov eax, [ebx]?
08:13:37 <Bike> When I imagine x86 I imagine a Swiss Family Robinson style treehouse, with parts continually bursting into flame underneath as they build higher and higher on the broken remnants of what they slapped together last week.
08:13:48 <Fiora> that is a wonderful image XD
08:13:59 <fizzie> Fiora: So it seems: http://sprunge.us/CdVR
08:14:19 <Fiora> and I'm guessing you can't do mov ax, [bx] in 64-bit
08:14:52 -!- madbr has quit (Quit: Radiateur).
08:17:49 <fizzie> There's a table on the (8) possible combinations of REX.W, 66h and 67h, and the resulting effective operand and address sizes, in 64-bit mode.
08:18:41 <fizzie> You can get (16,32), (16,64), (32,32), (32,64), (64,32) and (64,64), but no others.
08:19:14 <fizzie> (There's some redundancy, because 66h is ignored if REX.W is present.)
08:20:06 <fizzie> A 16-bit address size in long mode doesn't sound very likely to be useful.
08:22:54 -!- DH____ has quit (Read error: Connection reset by peer).
08:23:00 -!- DHeadshot has joined.
08:25:07 <Fiora> then again a 32-bit one probably wasn't anticipated to be very useful either...
08:27:35 <fizzie> What's slightly interesting is that ndisasm -b 32 / -b 64 says that 66 67 8B 07 is mov ax, [bx] in 32-bit mode, but mov ax, [edi] in 64-bit mode.
08:28:19 <fizzie> Apparently an address size of 16 bits doesn't mean just the width, but also that it's the whole 16-bit deal, with different (more limited) ModRM encodings.
08:32:57 <Fiora> I didn't even know 16-bit had more limitations on r/m...
08:34:08 <Fiora> The mod field gives the length of the displacement field: 0 means no displacement, 1 means one byte, and 2 means two bytes.
08:34:11 <Fiora> The r/m field encodes the combination of registers to be added to the displacement to give the accessed address: 0 means BX+SI, 1 means BX+DI, 2 means BP+SI, 3 means BP+DI, 4 means SI only, 5 means DI only, 6 means BP only, and 7 means BX only.
08:34:16 <Fiora> However, there is a special case:
08:34:17 <mroman_> My 80186 reference says it's a byte push
08:34:18 <Fiora> If mod is 0 and r/m is 6, the effective address encoded is not [BP] as the above rules would suggest, but instead [disp16]: the displacement field is present and is two bytes long, and no registers are added to the displacement. "
08:34:23 <Fiora> wow. 32-bit addressing has spoiled me <.<
08:34:25 <Fiora> I think they retroactively changed it
08:35:08 <mroman_> I'm probably deploying an internal stack for compiled functions
08:35:31 <mroman_> and keep a list of all allocated things
08:35:47 <mroman_> then check that list against the pointers on the stack
08:36:50 -!- doesthiswork has quit (Quit: Leaving.).
08:37:00 -!- mtve has joined.
08:37:09 -!- Bike has quit (Quit: leaving).
08:40:09 <fizzie> The special case means [bp] is encoded as [bp+0] and is longer than [bx]. (Of course it has the different default segment too.)
08:45:35 -!- zzo38 has quit (Remote host closed the connection).
09:00:16 -!- azaq23 has joined.
09:04:56 -!- FreeFull has quit (Quit: bye).
09:05:30 -!- azaq23 has quit (Quit: Leaving.).
09:06:00 -!- epicmonkey has joined.
09:06:53 -!- carado has quit (Quit: Leaving).
09:20:18 -!- AgonyLang has joined.
09:21:09 <AgonyLang> After Hello World! every language needs a Quine, that's what I'm working on right now!
09:21:28 <AgonyLang> Working with a new language is hard, but fun
09:21:52 <shachaf> who are you and what are you doing here
09:22:10 <monqy> shachaf that's not how you welcome someone
09:22:34 <AgonyLang> Hi..? I'm Roy and I chat about esoteric languages
09:22:59 <shachaf> `run echo who are you and what are you doing here | colorize
09:23:01 <HackEgo> who are you and what are you doing here
09:23:02 <monqy> i'm monqy and shachaf chats about me
09:24:04 <shachaf> monqy: sometimes i chat to you instead
09:24:18 <AgonyLang> I've made a new brainfuck derivative (yes, sorry, I know)
09:24:55 <AgonyLang> And am now playing around with quines, using my languages self-modifying/reflection abilities
09:25:05 <shachaf> monqy: So is Haskell + RankNTypes + (forall p. p Char -> p Bool) sound?
09:25:13 <shachaf> (Disregarding recursion/undefined/etc.)
09:25:17 <AgonyLang> My first try resulted in a Quine which prints the result backwards, close... but wrong
09:26:09 <shachaf> monqy: I think it might be. :-(
09:26:13 <monqy> shachaf: that looks pretty yikes.....
09:27:10 <HackEgo> AGONYLANG: 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.)
09:27:30 <monqy> AgonyLang: so is it the brainfuck that has the self-modifying/reflection abilities or is this two languages
09:28:03 <monqy> alt. is it a good brainfuck derivative alt. if it's good why is it a brainfuck derivative “set it free„
09:28:55 <AgonyLang> Agony is brainfuck backwards compatible and has a few added instructions, the code lives in the same space as the memory, but in a special way, everything can be executed making it fully self-modifying
09:29:57 <AgonyLang> Other bf self-modifying languages can read the code as characters, but that is silly because it can't execute that
09:30:06 <shachaf> You named the language after yourself?
09:31:14 <AgonyLang> It is named Agony because it is agonizing making bf programs which self-modify
09:35:20 <shachaf> monqy: What's the magic power GADTs give you over rank2types?
09:36:54 <monqy> if i had to guess it'd be the part where you have gadts
09:44:19 -!- nooga has joined.
09:48:35 -!- Frooxius has quit (Ping timeout: 260 seconds).
09:58:30 -!- Jafet has joined.
10:21:43 -!- mtve has quit (Ping timeout: 260 seconds).
10:24:08 -!- Phantom_Hoover has joined.
10:32:56 -!- sirdancealo2 has quit (Ping timeout: 245 seconds).
10:36:43 -!- sirdancealo2 has joined.
11:02:14 -!- sirdancealo2 has quit (Ping timeout: 240 seconds).
11:15:42 -!- DHeadshot has quit (Read error: Connection reset by peer).
11:16:09 -!- DHeadshot has joined.
11:16:30 -!- nooga_ has joined.
11:17:08 -!- nooga has quit (Read error: Connection reset by peer).
11:23:13 -!- sirdancealo2 has joined.
11:48:51 -!- mtve has joined.
12:03:30 -!- Phantom_Hoover has quit (Remote host closed the connection).
12:08:02 -!- Taneb has joined.
12:12:49 -!- sebbu has quit (Ping timeout: 248 seconds).
12:15:11 -!- c00kiemon5ter has quit (Quit: c00kiemon5ter).
12:15:25 -!- c00kiemon5ter has joined.
12:15:27 -!- c00kiemon5ter has quit (Client Quit).
12:23:20 -!- monqy has quit (Quit: hello).
12:29:05 -!- sebbu has joined.
12:29:05 -!- sebbu has quit (Changing host).
12:29:05 -!- sebbu has joined.
12:30:28 -!- AgonyLang has quit (Ping timeout: 245 seconds).
12:37:02 -!- sirdancealo2 has quit (Ping timeout: 252 seconds).
12:51:37 -!- Arc_Koen has joined.
12:51:57 -!- TeruFSX has joined.
12:58:59 -!- TeruFSX has quit (Ping timeout: 260 seconds).
13:04:54 -!- TeruFSX has joined.
13:06:14 -!- c00kiemon5ter has joined.
13:12:58 -!- TeruFSX has quit (Ping timeout: 252 seconds).
13:20:22 <Sgeo> I'm going to go see if Worlds works in WINE
13:21:25 <Sgeo> Not really a fan of installing obsolete Java
13:31:50 <Sgeo> @tell Phantom_Hoover WorldsPlayer works great on WINE!
13:32:01 <Sgeo> @tell Phantom_Hoover Just install Java 6 on WINE first.
13:32:35 <Sgeo> Well, "great" is a bit of an exaggeration
13:32:50 <Sgeo> And.. it crashed
13:35:45 <Sgeo> Maybe I should upgrade WINE
13:37:40 -!- carado has joined.
13:38:28 <Jafet> Yeah, Wine protects you from all those crazy Windows bugs.
13:39:08 -!- sirdancealo2 has joined.
13:55:49 -!- boily has joined.
13:55:50 -!- metasepia has joined.
14:04:30 -!- Frooxius has joined.
14:07:36 -!- sirdancealo2 has quit (Ping timeout: 276 seconds).
14:24:39 -!- sirdancealo2 has joined.
14:29:43 -!- Phantom_Hoover has joined.
14:31:25 -!- azaq23 has joined.
14:57:52 -!- TodPunk has quit (Read error: No route to host).
14:58:16 <boily> libreoffice 4! finally compiled, packaged, installed and running!
14:58:22 -!- TodPunk has joined.
15:09:10 <mroman_> freeing a list is more awkward than I thought :)
15:09:18 <mroman_> the list might be in itself
15:14:37 <mroman_> http://codepad.org/ukNYo5hq
15:41:48 -!- GOMADWarrior has joined.
15:56:31 -!- Bike has joined.
16:06:33 -!- Arc_Koen has quit (Quit: Arc_Koen).
16:48:42 -!- epicmonkey has quit (Ping timeout: 264 seconds).
17:34:08 -!- GOMADWarrior has quit (Ping timeout: 255 seconds).
17:36:25 -!- AnotherTest has joined.
17:49:34 <ion> shachaf: FTL? You don’t need a keyboard at all, although having one is more convenient. I don’t remember any of the keys i have been using being → or End.
17:49:36 -!- carado has quit (Ping timeout: 256 seconds).
17:51:38 -!- FreeFull has joined.
17:51:58 <tromp_> > 0.095550537109375 - 29/32
17:57:22 -!- epicmonkey has joined.
18:03:28 <tromp_> > showIntAtBase 2 intToDigit 13
18:03:30 <lambdabot> No instance for (GHC.Show.Show GHC.Show.ShowS)
18:03:44 <lambdabot> (Integral a, Show a) => a -> (Int -> Char) -> a -> ShowS
18:03:47 <tromp_> > showIntAtBase 2 intToDigit 13 ""
18:04:35 -!- carado has joined.
18:05:52 <tromp_> > showIntAtBase 2 intToDigit 4216 ""
18:06:58 <tromp_> > length "1000001111000"
18:10:09 -!- DHeadshot has quit (Ping timeout: 248 seconds).
18:12:26 <nooodl> > showIntAtBase 256 chr 79600447942433 ""
18:16:25 <FreeFull> http://www.reddit.com/r/haskell/comments/19ntvz/school_of_haskell_goes_public_learning_and/c8pxxd0 I think he might be right
18:17:16 <FreeFull> > showIntAtBase 2 intToDigit 3 []
18:17:22 <FreeFull> > showIntAtBase 2 intToDigit 3 [[]]
18:17:23 <lambdabot> Couldn't match expected type `GHC.Types.Char'
18:18:40 <tromp_> > showDoubleAtBase 2 intToDigit 0.0643310546875 ""
18:19:11 <tromp_> could give a nice infinite list
18:28:28 <AnotherTest> I would learn more Haskell, if it wasn't for installing libraries being really annoying
18:28:45 -!- sivoais has changed nick to AsianMall.
18:30:34 -!- AsianMall has changed nick to sivoais.
18:45:32 -!- ogrom has joined.
18:45:54 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
18:52:46 <FreeFull> AnotherTest: cabal install something not working right?
18:53:58 <AnotherTest> Well, I never manage to install a package without problems
18:54:06 <AnotherTest> I'm guessing it's because of me using an old version
18:54:59 <AnotherTest> it's pretty stupid, because I like to try to do some works on programs, but I can never start because I don't have the required packages installed, and installing them is pretty annoying
18:56:15 <boily> I organically built up a list of essential packages I like and can't live without. when borking my cabal setup, I just rm -rf everything, then type this long cabal update && cabal install ... line.
18:56:29 <boily> at least for the useful packages, their deps will kinda work. most of the time.
18:58:55 <boily> rm -rf .cabal/ .ghc/ && cabal update && cabal install whatever you like + what you're currently using.
18:58:55 <AnotherTest> What would I remove? Where are my haskell packages being stored anyway?
18:59:10 <boily> ^-- everything's stored into those two folders.
18:59:16 <AnotherTest> So, that would work? That would surprise me
18:59:27 <boily> trust me, I'm an engineer.
18:59:57 <AnotherTest> anyway, currently the problem looks like: dependencies
19:00:13 <boily> which can be cured by a good ol' rm -rf.
19:00:31 <boily> drastic, nasty, sudden, powerful, and leaves a nice minty perfume.
19:01:33 <boily> so you see, what I like to always have at hand is: cabal-dev, hlint, attoparsec, aeson, and probably hmatrix and pandoc too.
19:01:56 <boily> that too, but I haven't grokked them yet, so no default lens install on my machine.
19:02:04 <boily> (except for pure metasepia abuse, tho)
19:02:49 <boily> oh! note that cabal-dev won't work with modern cabal installations. mine comes from a hand tweak direct from the git repo.
19:03:02 -!- Phantom_Hoover has joined.
19:03:58 <elliott> I think a fixed version got released
19:04:09 <AnotherTest> what's the difference between parsec and attoparsec?
19:04:36 <boily> it's kinda not the same, quite.
19:04:55 -!- KingOfKarlsruhe has joined.
19:05:10 <boily> attoparsec has automagic backtracking.
19:05:22 <boily> I'm lazy, and can't be arsed to wrap my parsers with 'try'.
19:05:36 <boily> dunno. not my problem, really :p
19:06:14 -!- monqy has joined.
19:10:46 <AnotherTest> (I tried to install mtl, as I seem to need it)
19:11:20 <boily> you need mtl for what?
19:11:32 <AnotherTest> anyway, this has something to do with the failure package. I've asked help for this before in #haskell, and it worked, but then I kept getting problems with other stuff
19:12:15 <AnotherTest> I think debian has an mtl package though, could use that I guess
19:12:29 <elliott> AnotherTest: http://www.vex.net/~trebla/haskell/sicp.xhtml
19:13:50 <AnotherTest> thanks, that doesn't make things work though
19:14:24 -!- Nisstyre-laptop has joined.
19:14:26 <AnotherTest> "web-encodings" is going to fail installing too btw, as well as "statistics" I think
19:14:49 <elliott> I think if you read the whole page I linked you would be helped in terms of making things work.
19:14:56 <elliott> e.g., you would probably not try to use Debian's mtl package.
19:15:55 <elliott> I think you should probably read the page I linked before saying it doesn't help you
19:15:58 <elliott> since you clearly haven't...
19:16:48 -!- AnotherTest has quit (Quit: Leaving.).
19:17:00 -!- AnotherTest has joined.
19:17:32 <AnotherTest> The information is definitely useful, and I will read it
19:17:44 <AnotherTest> although I'm sure it won't solve this problem in specific
19:18:05 -!- azaq23 has quit (Quit: Leaving.).
19:18:28 -!- AnotherTest has quit (Client Quit).
19:18:37 -!- AnotherTest has joined.
19:20:48 <boily> AnotherTest: I'm running cabal install hlint aeson attoparsec primes hmatrix lens comonad pandoc hakyll gamma diagrams gloss mueval logict
19:20:59 <boily> mtl is probably a dependency of something in that.
19:22:54 <AnotherTest> Because I'm using .8, and it tells me to update
19:23:15 <AnotherTest> because I should use cabal for that, but cabal doesn't wokr
19:24:38 <boily> cabal-install version 1.16.0.2 \ using version 1.16.0 of the Cabal library
19:26:07 -!- augur has quit (Remote host closed the connection).
19:27:46 <AnotherTest> also, elliott, I read the webpage, and it didn't fix my problem
19:28:51 <elliott> at this point I don't care
19:29:26 <AnotherTest> You never care, I know. Although that really doesn't matter to me either. You wanted me to read it, I read it. Didn't help me.
19:29:57 <AnotherTest> Alright so I shouldn't use the debian packages
19:30:15 <AnotherTest> I'm currently not doing that, so it shouldn't be the problem
19:31:16 <AnotherTest> boily: I'm trying to update once again. I hope it works this time.
19:31:42 <elliott> if you read the page then it will almost certainly give enough information to understand your dependency problem and will hence help you solve that problem in a way other than blind guesswork. if your problem isn't solved then I suspect it is simply because you are not paying very much attention to the page, given that you didn't even read it before dismissing it at first
19:32:49 <AnotherTest> Well, I do not see anything in the text that points to my particular setup as the cause of this problem
19:33:28 <AnotherTest> I've cleaned all my formerly installed packages, so it's like I'm starting from the beginning again
19:35:18 <AnotherTest> I honestly believe that if I can update to a newer version of cabal, that this will work
19:36:00 <AnotherTest> btw, is it normal that cabal install cabal-install also installs a bunch of packages (eg it just successfully installed mtl)
19:36:12 <AnotherTest> Or is that because it depends on those itself?
19:36:50 <elliott> updating Cabal can often a bad idea. updating cabal-install is something else entirely that may not be a bad idea
19:37:27 <elliott> in particular, if you do "cabal install cabal-install", then you already have cabal-install installed, possibly from your distro's package manager
19:37:31 <elliott> and upgrading it locally may be a bad idea
19:37:49 <AnotherTest> Well, cabal told me to update cabal-install
19:37:51 <elliott> (using cabal-install from package manager is fine: it is just a program, incidentally written in Haskell, not something you'll actually link to. i.e. you can imagine it being written in Python instead)
19:38:40 <AnotherTest> Ok I managed to update cabal-install it seems
19:40:02 <boily> you can grab a look at what you have installed in .cabal/bin and .cabal/lib.
19:41:25 <AnotherTest> and in lib I have mtl, cabal, parsec, http, network and transformers
19:41:32 <AnotherTest> which seemed to be all the problematic packages
19:42:18 <AnotherTest> if I run cabal update, it tells me again that "there is a new version of cabal-install available"
19:42:42 <AnotherTest> Although it told me that cabal-install had been successfully installed before
19:44:39 <AnotherTest> noise is usually ignored, so let's do just that
19:49:56 <boily> I just had to tweak web-encodings. its constrains on bytestring, failure and directory were too restrictive.
19:50:10 <boily> (besides, I have transformers 0.3.0.0 now)
19:50:11 <AnotherTest> yeah, someone told me to do that earlier too
19:52:48 <boily> I now have burlesque on my machine.
19:53:44 <AnotherTest> um, to install the unpacked package, do I run cabal install in that directory?
19:54:07 <boily> cabal configure && cabal build && cabal install.
19:54:48 <boily> it's more feng shui that way.
19:55:41 <AnotherTest> why does this all feel worse than having to compile gcc manually?
20:04:40 -!- augur has joined.
20:17:34 -!- Nisstyre-laptop has quit (Quit: Leaving).
20:17:38 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
20:18:56 -!- copumpkin has quit (Ping timeout: 252 seconds).
20:19:27 -!- copumpkin has joined.
20:25:24 -!- Nisstyre-laptop has joined.
20:34:58 -!- ogrom has quit (Quit: Left).
20:39:21 -!- AnotherTest has quit (Quit: Leaving.).
20:52:57 -!- AgonyLang has joined.
20:54:49 <Sgeo> kmc, http://bradconte.com/files/misc/HackerNewsParodyThread/
21:01:08 -!- quintopia has quit (Ping timeout: 248 seconds).
21:01:21 <AgonyLang> After Hello World! and a Quine.... what is the next thing every language needs to have? :)
21:01:48 -!- oerjan has joined.
21:02:17 <Sgeo> If you manage 99 bottles of beer too, you will... have still proved nothing interesting about your language
21:02:48 <AgonyLang> Yeah, I know, not trying to prove anything
21:03:21 <Taneb> After 99 bottles of beer, see if you can increment the accumulator
21:06:21 -!- quintopia has joined.
21:13:20 -!- quintopia has quit (Ping timeout: 245 seconds).
21:13:42 <nooodl> AgonyLang: brainfuck interpreter!
21:14:15 <oerjan> `addquote <Bike> When I imagine x86 I imagine a Swiss Family Robinson style treehouse, with parts continually bursting into flame underneath as they build higher and higher on the broken remnants of what they slapped together last week.
21:14:21 <HackEgo> 979) <Bike> When I imagine x86 I imagine a Swiss Family Robinson style treehouse, with parts continually bursting into flame underneath as they build higher and higher on the broken remnants of what they slapped together last week.
21:15:21 <tromp_> if you're ambitious, a self interpreter
21:16:06 <oerjan> just do fractran, it's like prime number sieve except TC
21:16:14 <Sgeo> I made a language that makes it easy to write a compiler for that language
21:16:19 <AgonyLang> tromp_ It might not be that hard, the language is self modifying, to it only needs to parse the input into runtime
21:16:22 <Sgeo> Erm, within the language
21:16:53 <AgonyLang> tromp_ Nice idea, I'll try a self-interpreter
21:17:00 -!- carado has quit (Ping timeout: 256 seconds).
21:18:14 <oerjan> <AgonyLang> Hi..? I'm Roy and I chat about esoteric languages <-- so do we have a 12 step program yet?
21:19:59 -!- quintopia has joined.
21:20:02 <oerjan> <shachaf> monqy: So is Haskell + RankNTypes + (forall p. p Char -> p Bool) sound?
21:20:08 -!- Taneb has quit (Ping timeout: 255 seconds).
21:20:31 <oerjan> hm _is_ there any p such that you cannot make a function of type p Char -> p Bool ?
21:20:40 <AgonyLang> My life has never been manageable, so for starters I'll admit my life is unmanageble
21:20:53 <oerjan> (in report haskell + rankntypes, presumably)
21:21:04 <oerjan> (as it's probably easy with type families and stuff)
21:21:18 -!- Taneb has joined.
21:21:19 <elliott> AgonyLang: you should meet a certain itidus20
21:21:49 <shachaf> That's a bit circular, though. :-)
21:21:54 <shachaf> IORef isn't in the report.
21:22:11 <elliott> well it has stableptr and stuff
21:22:15 <oerjan> i don't think it is, although the FFI is
21:22:21 <elliott> it holds for all ADTs, anyway
21:22:26 -!- Nisstyre-laptop has quit (Ping timeout: 250 seconds).
21:22:30 <shachaf> Look, the FFI and IORef don't really count.
21:22:31 <Sgeo> I don't get the Char -> Bool thing?
21:22:52 <shachaf> oerjan: For any type made up of just sums/product/exponents you can make it.
21:23:02 <oerjan> shachaf: Is Char is obviously something you need type equality for, i.e. type families or gadts afaiu
21:23:34 <oerjan> right. i think that's essentially a variation of parametricity?
21:23:40 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
21:24:05 <elliott> oerjan: you can express Is with rank-2
21:24:14 <elliott> type Is a b = forall p. p a -> p b
21:24:20 <shachaf> oerjan: I mean Leibniz Is.
21:24:21 <elliott> (hence (forall p. p Char -> p Bool) is Is Char Bool)
21:25:07 <Taneb> Help, accessing C++ code in Haskell is scary
21:25:11 <elliott> anyway, type families do get you Is Char Bool -> Void
21:25:18 <oerjan> so basically it's a question of whether rankntypes are consistent with Char being Bool
21:25:19 <elliott> GADTs sort of do, but only because of a quirk of GHC's implementation
21:25:37 <elliott> as in, the term you write that exhibits Void there has an omitted pattern match that GHC agrees with you is impossible
21:25:39 <shachaf> elliott: I think it's not really a quirk.
21:25:57 <shachaf> At least, it's very much on purpose and along the lines of the intended use of GADTs.
21:26:27 <oerjan> afaiu people complain whenever ghc _doesn't_ realize a gadt pattern is unreachable
21:26:44 <shachaf> Yes, but elliott doesn't like to go with the flow.
21:27:31 <elliott> shachaf: I don't see why GADTs = type equality + existential quantification + an extra axiom.
21:27:40 <elliott> But sure, I'll agree it's convenient.
21:27:52 <elliott> It stops you adding, e.g. univalence. So it's definitely not harmless.
21:27:59 <shachaf> elliott: What is the axiom?
21:28:07 <elliott> oerjan: It's not unreachable if you have extra equalities, like Char = Bool
21:28:13 <elliott> shachaf: ConcreteTypeA =/= ConcreteTypeB
21:28:32 <shachaf> How would you phrase that axiom?
21:28:34 <elliott> (Note that if you make the term polymorphic in the types A and B (i.e. they're no longer concrete), the warning reappears.)
21:28:42 <elliott> shachaf: I'm not sure it's a well-founded axiom.
21:28:46 <elliott> Which is also a strike against it.
21:29:32 <oerjan> um without it type class lookup isn't sound either :P
21:29:53 <Sgeo> type equality is the thing that breaks with generalized newtype deriving, right?
21:29:55 <oerjan> everything becomes overlapping
21:31:03 -!- Arc_Koen has joined.
21:31:11 <elliott> Yes, the context is generalised newtype deriving.
21:31:22 <elliott> But I think it's a misleading context.
21:31:34 <elliott> oerjan: Right, typeclasses are the thing being ignored.
21:31:41 <elliott> But all you lose is nice properties about typeclasses, I think.
21:31:46 <elliott> i.e. instance selection becomes ambiguous.
21:32:08 -!- monqy has quit (Quit: hello).
21:32:38 <lambdabot> Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it.
21:32:43 <lambdabot> Taneb said 9h 23m 29s ago: Just because I created it doesn't mean I do.
21:32:55 <Taneb> (context is Fueue and knowing much about it)
21:33:01 <Arc_Koen> well then that makes the two of us
21:33:30 <Arc_Koen> though elliott is trying to mislead me
21:33:55 <HackEgo> D-modules are just modules over the ring of differential operators. Taneb invented them.
21:33:59 <Taneb> The same applies to that
21:34:13 -!- augur has quit (Remote host closed the connection).
21:34:36 <Taneb> `learn context is a word with many meanings, depending on where it is used.
21:34:42 <shachaf> You should've thought of that *before* inventing D-modules, Taneb.
21:34:51 <shachaf> Also what happened to being bold and daring?
21:35:03 <Taneb> shachaf, it got boring after a while
21:35:11 <Arc_Koen> and we dare recognize our ignorance
21:35:28 <Arc_Koen> don't you have that saying in english? "have the courage to flee"
21:35:40 <metasepia> D'ald was a Klingon general in the early 25th century.
21:35:54 <Arc_Koen> 25th century seems very late to me
21:36:14 <Taneb> It's like 150 years after Duck Dodgers
21:46:47 -!- augur has joined.
21:48:16 -!- carado has joined.
21:48:29 <oerjan> Arc_Koen: Taneb: i thought i'd written up solutions to most of what makes Fueue harder than Underload in the "Fueue tips" and "Truth-machine" sections. of course, there aren't that many others able to program underload either...
21:52:37 -!- Taneb has quit (Quit: goodnight).
21:53:08 <oerjan> i should stop making people flee, i guess
21:54:01 <boily> in which way have you become a people fleeer?
21:54:45 <oerjan> well Taneb obviously fled my attempt to encourage him to try programming Fueue.
21:56:02 <oerjan> sheer horror, i assume
21:56:15 <oerjan> of the monster he created
21:56:39 <boily> nothing that a little bit of soy sauce, garlic and ginger can't help.
21:56:47 <oerjan> with a name like Nathan van Doom, how can you do otherwise.
21:57:17 <Arc_Koen> Nathan van Doom... is that a mix between Sinistro and Dr Doom?
21:57:34 <oerjan> i don't know sinistro and barely dr doom
21:59:57 <oerjan> @hoogle Int -> Double -> (Int -> Char) -> String -> String
22:09:53 <oerjan> @tell AnotherTest <AnotherTest> if I run cabal update, it tells me again that "there is a new version of cabal-install available" <-- i have got the same on windows. i suspect it's just an effect of cabal doing no actual registration of non-library packages (i.e. it cannot actually _know_ you haven't already installed the latest version. although giving the message anyhow does sound remarkably stupid so maybe it has a way to try to check, which fail
22:10:28 <oerjan> @tell AnotherTest which fails...)
22:10:53 <elliott> my suspicion: his version is old.
22:10:54 * oerjan is counting on elliott to tell him if he's horribly wrong.
22:10:57 <elliott> he is running an old version.
22:11:07 <elliott> he has maybe installed a new cabal-install with his cabal-install. if he did, he is not running it
22:11:14 <elliott> (e.g. it is further down or completely absent from the $PATH)
22:11:29 <elliott> it does have a way to check, yes
22:11:40 <oerjan> well, i just mentioned istr having the same issue of being told there's a new version just after installing it
22:11:43 <elliott> I mean, cabal-install knows its own version, so checking if there's a newer one on Hackage is not hard :P
22:11:52 <elliott> it's not part of a general "these packages are outdated" thing afaik
22:12:20 <oerjan> @tell AnotherTest As Expected, elliott disagrees with me. :)
22:23:57 -!- carado_ has joined.
22:25:00 -!- carado has quit (Ping timeout: 256 seconds).
22:26:44 -!- epicmonkey has quit (Ping timeout: 255 seconds).
22:27:38 -!- mtve has quit (Ping timeout: 255 seconds).
22:48:22 -!- augur has quit (Remote host closed the connection).
22:53:04 -!- augur has joined.
22:55:26 -!- copumpkin has quit (Ping timeout: 245 seconds).
22:55:57 -!- copumpkin has joined.
22:59:45 -!- augur has quit (Remote host closed the connection).
23:00:50 <Sgeo> Why did I think dots were optional in the user portion of gmail addresses?
23:01:45 <Sgeo> Oh, I see what's going on
23:02:06 <Sgeo> It is getting in but just not being directed to my primary account
23:02:09 -!- Phantom_Hoover has joined.
23:05:20 <Sgeo> Hi Phantom_Hoover. WorldsPlayer somewhat works on WINE
23:12:47 -!- c00kiemon5ter has left.
23:15:48 -!- hagb4rd has quit (Ping timeout: 264 seconds).
23:21:06 -!- carado_ has quit (Ping timeout: 256 seconds).
23:32:06 -!- nooga_ has quit (Ping timeout: 245 seconds).
23:33:41 <Sgeo> Maybe if I go to Penn Station every day I'll eat more.
23:37:45 -!- augur has joined.
23:40:24 -!- augur has quit (Remote host closed the connection).
23:41:21 -!- nooodl has quit (Ping timeout: 248 seconds).
23:42:51 -!- augur has joined.
23:43:02 -!- augur has quit (Remote host closed the connection).
23:45:32 -!- boily has quit (Quit: Poulet!).
23:45:35 -!- metasepia has quit (Remote host closed the connection).
23:49:36 -!- Jafet has quit (Quit: Leaving.).