00:00:04 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 I play chess puzzles too, as well as tsume shogi, too. 00:01:11 zzo38: I saw a player use Restoration Angel to flash a token at the GP 00:02:01 Can you give me the text of that card, and the details of the situation? 00:02:54 too much effort 00:05:30 can someone copy the list at http://esolangs.org/wiki/Category:Self-modifying and email it to me? 00:06:22 `fetch http://esolangs.org/wiki/Category:Self-modifying 00:06:25 2013-03-05 00:06:24 URL:http://esolangs.org/wiki/Category:Self-modifying [18477] -> "Category:Self-modifying" [1] 00:06:48 `mail 00:06:49 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: mail: not found 00:06:51 coppro: Do you not remember? 00:07:19 -!- DHeadshot has joined. 00:09:10 I remember 00:09:17 I'm just too lazy. You can look up card texts yourself 00:09:27 @google mtg gatherer restoration angel 00:09:28 http://gatherer.wizards.com/pages/Card/Details.aspx?multiverseid=240096 00:09:29 Title: Restoration Angel (Avacyn Restored) - Gatherer - Magic: The Gathering 00:10:23 OK 00:10:39 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:01 *transfer 00:11:09 well the whole point is to compare what I see with what others see 00:11:20 ah 00:11:39 zzo38: there was a spell targeted at the token which he did not want to resolve 00:11:54 O, OK, yes, that would work. 00:12:10 `url Category:Self-modifying 00:12:13 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/Category%3ASelf-modifying 00:12:35 error: Category:Self-modifying@f368e91512e6: not found in manifest 00:12:38 I like that kinds of ideas. 00:12:43 hmm yes definitely different from what I see :p 00:12:44 hmph 00:12:53 `cat "Category:Self-modifying" 00:12:55 cat: "Category:Self-modifying": No such file or directory 00:13:03 `run cat 'Category:Self-modifying' 00:13:04 cat: Category:Self-modifying: No such file or directory 00:13:13 ho hum. 00:13:24 `undo 2374 00:13:29 patching file Category:Self-modifying 00:13:34 try now :P 00:13:36 I deletedetedeted it 00:13:51 thank you! 00:14:01 oh nooooo 00:14:01 It says "that card" but the first part doesn't say it has to be a card. 00:14:05 `run cat 'Category:Self-modifying' 00:14:07 ​ \ \ \ Category:Self-modifying - Esolang \ \ \ \ Under the current rules, does the token come back, though? 00:15:00 well it appears to be exactly what I see 00:16:01 `? ais523 00:16:02 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:12 ah 00:16:47 Arc_Koen: but what if your browser has a "trusting trust" problem, what then! 00:16:55 haha 00:17:29 "Warning: I cannot be trusted to display this webpage correctly. Display webpage?" 00:18:01 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:14 "eventually" 00:18:27 i thought it was pretty quick... 00:18:37 on esolang, anyway 00:18:50 I remembered you told me that 00:19:00 Jafet: wtf are you doing to rainwords :P 00:19:04 If it is a SQL query, it should do immediately if there isn't a cache of the query. 00:19:42 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 oerjan: making it work on bin/rainwords 00:20:52 `run rainwords $(which rainwords) 00:21:08 -!- fungot has quit (Ping timeout: 248 seconds). 00:21:21 YOU KILLED FUNGOT 00:21:23 No output. 00:21:38 i sense problems. 00:22:08 also exactly how didn't it work before... 00:23:08 `ls /usr/bin/python 00:23:10 ​/usr/bin/python 00:23:10 raw_input() reads one line 00:23:18 (I think we learned this recently) 00:23:23 oh. i was wondering more about the r thing 00:23:32 maybe that's not new 00:23:40 ooookay 00:23:50 `which python 00:23:52 ​/opt/python27/bin/python 00:24:07 `/usr/bin/python --versino 00:24:09 Unknown option: -- \ usage: /usr/bin/python [option] ... [-c cmd | -m mod | file | -] [arg] ... \ Try `python -h' for more information. 00:24:10 `/usr/bin/python --version 00:24:10 I just used my magic powers to update the category page, now it has 82 languages listed 00:24:11 Python 2.6.6 00:24:35 `run python -c 'r=[4,7,8,9,2,13,6]; print " ".join(chr(3) + c + ":-)" for c in r)' 00:24:37 Traceback (most recent call last): \ File "", line 1, in \ File "", line 1, in \ TypeError: cannot concatenate 'str' and 'int' objects 00:24:45 `run python -c 'r=[4,7,8,9,2,13,6]; print " ".join(chr(3) + str(c) + ":-)" for c in r)' 00:24:46 ​:-) :-) :-) :-) :-) :-) :-) 00:25:01 13 isn't very indigo, unfortunately 00:26:16 oh it's actually rainbow order :P 00:26:43 `rainwords What does this do then 00:27:01 i think there is a problem yes 00:27:14 No output. 00:27:59 `cat bin/rainwords 00:28:01 ​#!/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:14 oh wait 00:28:22 -!- sirdancealot has quit (Ping timeout: 250 seconds). 00:28:33 `run echo I think I remember the issue | rainwords 00:28:35 ​I think I remember the issue 00:28:38 I'm kind of confused as to how regular expressions are a single production rule (in the formal grammar sense) 00:28:48 `run yes | rainwords 00:29:00 hum maybe not ideal 00:29:03 kallisti_: ac*b generates ab, acb, accb, acccb, etc 00:29:09 Traceback (most recent call last): \ File "/hackenv/bin/rainwords", line 2, in \ 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:13 Bike: no I understand that 00:29:16 oerjan: what do you think this is, haskell?? 00:29:24 Take your infinite streams and begone 00:29:26 `run yes | head -50 | rainwords 00:29:28 ​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 oh wait maybe I misunderstand what a regular grammar is 00:29:44 to Wikipedia 00:29:45 -!- Frooxius has quit (Ping timeout: 240 seconds). 00:29:46 !!! 00:29:59 it's just alternation and kleene star 00:30:07 oh and concatenation obv 00:30:14 regular expressions? yes 00:30:20 I'm trying to find the link between regular expressions and regular grammars 00:30:21 basically 00:30:47 oh I think I misread 00:30:48 "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 so a regular grammar can have multiple production rules right? 00:31:13 yeah 00:31:16 okay 00:31:24 I misread and thought that it meant the grammar had only one production rule 00:31:28 which seemed... uh, strange. 00:31:31 http://upload.wikimedia.org/math/5/6/e/56e5e8888abe83d0f4f731bde2611d72.png wikipedia's example 00:31:40 `run ghc -e 'putStr $ replicate 100 "_,.-~^~-.,"' | rainwords 00:31:40 (for a+b+ in regex syntax) 00:31:44 ​ \ :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 ...that didn't work 00:31:53 http://en.wikipedia.org/wiki/Formal_grammar#Regular_grammars that. 00:32:07 Jafet: concat/join 00:32:21 `run ghc -e 'putStr $ take 999 $ cycle "_,.-~^~-.,"' | colorize 00:32:26 ​_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.- 00:32:37 `run ghc -e 'putStr $ take 200 $ cycle "_,.-~^~-.,"' | colorize 00:32:42 ​_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-., 00:32:50 ah okay, I simply misread what a regular grammar is. 00:33:20 `run python -c 'print("_,.-~^~-.," * 100)" | colorize 00:33:21 bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file 00:33:22 `run yes ":D " | head -50 | tr -d '\n' | rainwords 00:33:24 ​: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 `run python -c 'print("_,.-~^~-.," * 100)"' | colorize 00:33:29 ​ File "", line 1 \ print("_,.-~^~-.," * 100)" \ ^ \ SyntaxError: EOL while scanning string literal \ Traceback (most recent call last): \ File "/hackenv/bin/colorize", line 4, in \ w=raw_input() \ EOFError: EOF when reading a line 00:33:32 so this concept for an esolang I have 00:33:33 uuuuugh 00:33:38 is essentially a context-sensitive grammar 00:33:44 `run python -c 'print("_,.-~^~-.," * 100)' | colorize 00:33:45 where the production rules are operating on themselves 00:33:46 ​_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.-~^~-.,_,.- 00:33:51 whatever. 00:34:25 `tcc 00:34:26 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: tcc: not found 00:34:34 What 00:34:35 `gcc 00:34:36 gcc: no input files 00:34:43 `icc 00:34:45 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: icc: not found 00:34:50 `clang 00:34:51 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: clang: not found 00:34:59 `fasm 00:35:00 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: fasm: not found 00:35:07 `nasm 00:35:09 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: nasm: not found 00:35:12 `g++ 00:35:14 g++: no input files 00:35:17 `as 00:35:35 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 Bike: that seems redundant 00:36:20 No output. 00:36:21 Is there an esolang that randomly picks other esolangs to try running your code in? 00:36:40 Bike: colorize doesn't add colors beyond hackego's output limit of 350 bytes 00:36:48 boooooring 00:36:58 -!- augur has joined. 00:37:19 -!- Frooxius has joined. 00:37:31 Rainbows all the way across #esoteric 00:38:30 Fabulous. 00:40:01 Is coppro even on anymore? 00:40:31 -!- TeruFSX has joined. 00:46:46 -!- sirdancealo2 has joined. 00:51:37 Is there a way in Linux to access the text mode VRAM without root? 00:52:29 Furthermore, can you capture the text mode VRAM of a different virtual console in this way? 00:56:15 chmod /dev/mem and then you can :) 00:56:33 I don't want to access all of the memory though. 00:58:33 Can you put ACLs on /dev/mem 00:58:48 "there could be a legit use for this" 00:58:51 you can write a setuid helper for reading parts of /dev/mem 00:59:10 over a UNIX socket with SCM_CREDS 00:59:18 bad ideas itt 00:59:34 What would be the addresses of such screens anyways (also based on the numbers of rows and columns)? 00:59:51 dunno, you may have to source-dive the linux kernel 01:00:06 Source-dive the linux documentation 01:00:25 -!- doesthiswork has joined. 01:00:25 Are they the standard PC text mode formats? 01:01:14 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 Doing this is MZM layer mode. 01:03:10 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 Does the linux console support 256 colors 01:03:54 As far as I know it is PC text mode. 01:07:53 I thought it used the framebuffer 01:08:12 can do either 01:08:14 I think it supports that too 01:08:57 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 You would need the framebuffer unless you enjoy running htop in 80x25 or whatever the VGA text mode is 01:12:31 i enjoy it very much 01:12:33 it's so easy 01:14:42 The default text mode is 80x25, but it seems to be able to run in various other sizes too. 01:20:13 Hrmph. Still no new OOTS 01:22:22 oots is the worst campaign ever 01:22:33 Who runs a campaign for ten years 01:24:26 How long do *you* run a champagne^Wcampaign? 01:25:00 Nobody lets me run a campaign 01:25:09 I'm not sure why 01:27:22 -!- DHeadshot has quit (Read error: Connection reset by peer). 01:27:28 -!- DH____ has joined. 01:27:30 Then you must learn. 01:40:34 -!- GOMADWarrior has joined. 01:42:08 "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 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 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 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 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:13 `olist 02:49:17 olist: shachaf oerjan Sgeo 02:50:51 Did I missed something else? 02:51:14 oerjan, ty 02:51:24 And I take it you got your cache issues sorted out? 02:51:40 no, i just went to the right number directly 03:08:06 -!- madbr has joined. 03:08:13 man 03:08:22 the 65816 is so impossible to pipeline 03:08:28 it's like it's designed against it 03:13:06 @hoogle m (x -> y) -> x -> m y 03:13:07 Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b 03:13:07 Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b 03:13:07 Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b 03:13:23 :t (??) 03:13:25 Functor f => f (a -> b) -> a -> f b 03:13:48 @hoogle m (x -> m y) -> x -> m y 03:13:49 Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b 03:13:49 Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b 03:13:49 Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b 03:17:53 thoerjan 03:32:46 -!- monqy has joined. 03:45:42 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 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 zzo38: tokens cannot be returned to the battlefield once exiled 06:31:32 so that sentence wouldn't apply to them anyway 06:37:35 coppro: Yes it is what I thought might be the case 06:38:15 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 zzo38 : got any interest in synthesizer design? 06:41:17 madbr: Some. 06:48:18 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 Or make one involving a not 100% win but maximized chances? 06:55:07 madbr: What was your ask of interest in synthesizer design? 06:58:02 writing a synth atm 06:58:06 vst 06:58:58 zzo38: a token, once it has left the battlefield, cannot again change zones 06:59:08 it ceases to exist the next time state-based actions are performed 06:59:10 hhh38 07:01:42 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 madbr: What synth are you writing? 07:02:13 physical model 07:03:48 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 going to have a couple "generic" models 07:05:12 one for wind instruments 07:05:26 and one for plucked strings with a variant for percussion 07:05:44 O, I already have things like that. 07:05:59 Still, I suppose yours might be useful for using with VST, I guess. 07:06:27 yeah but the ones in STK suck 07:06:45 dunno about the csound ones but they're probably not very good 07:07:16 O, OK, then. Are you able to license the files under the LGPL v2.1 and later version? 07:07:29 what files 07:09:04 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 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 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 does that imply that the other plucked string models are bad 07:13:44 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 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 or maybe they just sound bad 07:15:00 like most physical modeling stuff 07:15:45 Yes. 07:17:16 Still, one of them is not bad, specifically "wgpluck" seems good. 07:22:17 I have gotten some special effects by using percussion sounds with waveguides to make a new sound 07:30:49 * madbr looks it up 07:31:04 doesn't look like it has inharmonicity 07:32:09 You might be correct. 07:37:09 -!- epicmonkey has joined. 07:40:05 How does a mark-and-sweep gc know which "objects are still known"? 07:40:08 i.e 07:40:36 root set? 07:40:45 void foo() { char* b =alloc .. char* a= alloc... bar(b); ...} void bar(b) { doStuff } 07:40:56 if my gc kicks in while b is currently in doStuff 07:41:06 how does he know that he should not delete b and a yet? 07:41:27 and how does he know he can delete them after foo 07:41:29 You mean a conservative GC? 07:41:38 usually you'd add the stack frame to the root set? 07:41:44 It'll just scan the stack/registers/etc. for pointers. 07:42:15 Yeah but since I'm compiling to C there might be other stuff on the stack too 07:42:28 I could pass stuff on an other stack structure 07:42:39 and then just scan the stack 07:42:42 that'd be the easiest thing 07:43:10 instead of compiling to bar(b); I would compile to push(someStack,b); bar(); 07:43:17 and bar pops arguments from someStack 07:43:24 but I'm not sure if there's not better way 07:44:09 what "other stuff" is there on the stack? 07:44:21 C stuff. 07:44:31 Like, return addresses? 07:44:44 somehow i doubt it's going to be a problem to have return addresses in the root set 07:44:47 Yes, but that would not be the problem. 07:44:53 since that's predictable. 07:46:55 You can do inline C stuff i.e you can write a function in my language and embed C in it 07:47:25 so? 07:47:31 That's unpredictable. 07:47:47 if somebody allocates something on the stack there 07:47:57 like 07:48:01 {{ int c; }} 07:48:30 I don't see the problem? The root set is what's not being collected, you can be greedy. 07:48:41 And like shachaf said it's gonna be conservative. 07:48:49 What root set? 07:49:08 The root set. The set of things you tell mark and sweep not to collect. 07:49:45 i.e. the "objects still known". 07:49:51 yes 07:49:56 but how do I know which objects I know. 07:50:20 Everything pointed to by the stack, and pointed to by that, etc 07:50:29 The stack is not in my control. 07:50:48 course not. 07:51:15 unless I use my own stack 07:51:29 -!- epicmonkey has quit (Ping timeout: 248 seconds). 07:52:22 I can't scan the c stack for pointers 07:52:30 how would I even know what's a pointer and what not 07:52:51 and how would I know which are mine and which are not my pointers 07:53:06 You don't. You assume everything is a pointer. it's okay to overestimate. 07:53:39 Oh. Ic. 07:54:17 but that would require that all pointers are aligned 07:54:17 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:20 doing C. 07:54:33 4byte ptr, 1byte char , 4byte ptr 07:54:43 ^- that'd mess things up big time if I do a ptr sweep 07:55:24 I thought the stack would usually be word-aligned anyway... 07:55:41 doesn't need to be 07:55:54 isn't it required by most ABIs...? 07:56:13 ... actually isn't it generally required that data types are aligned to their natural alignment? 07:56:17 like, on the stack or not 07:56:26 unaligned data is invalid C, I think 07:56:36 -!- heroux has quit (Ping timeout: 264 seconds). 07:57:15 The natural alignment for all my data types is Chaotic Evil. 07:57:20 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:31 *giggle* 07:57:36 yeah normally everything should be aligned 07:57:42 the alignment for all my data types is neutral good 07:57:44 except long double 07:57:47 which is chaotic neutral 07:57:54 since most processors slap on massive alignment penalties on you if you don't 07:57:54 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 except the lastest ridiculous intel chips but that's a detail 07:58:22 most? I think most non-x86 just outright segfaults ^^; 07:58:29 sure. miss alignment decreases performance 07:58:50 mroman: normally you don't even want to allow misalignment on a cpu 07:58:58 I guess a kernal trap counts as decreased performance.... XD 07:58:58 I know. 07:59:00 complexifies the design like mad 07:59:01 But still, you can do that. 07:59:05 ARM just gets rotated values for misaligned loads, doesn't it? 07:59:11 only old arms 07:59:22 newer arms have like 8 cycle penalty 07:59:33 I think you still have to use uanligned load instructions explicitly 07:59:34 otherwise it kabooms 07:59:45 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:02 Bike: Yes. 08:00:13 -!- carado has joined. 08:00:14 So... 08:00:18 but you can still mess things up by pushing manually a single byte to the stack 08:00:19 I'm not sure how different compilers align the stack 08:00:30 You can do that in C? 08:00:31 but often you need 8 or even 16 byte alignment 08:00:43 I don't think you can even do that in asm 08:00:48 there's no "push byte" instruction in x86 <.< 08:00:51 I just, why would you even /want/ to do that. 08:01:04 fiora: aren't there a zillion size prefixes? 08:01:05 Fiora: there is 08:01:05 I mean of course you could like, manually move a byte to the stack and decrement it 08:01:14 PUSH reg16 ; o16 50+r [8086] 08:01:15 PUSH reg32 ; o32 50+r [386] 08:01:18 or you could just manually overwrite sp 08:01:24 "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:38 or maybe that wasn't x86 08:01:46 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 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:09 XD 08:02:12 yeah but x86 is horrible so I was half expecting a push byte instruction :D 08:02:23 possibly even a 1-byte opcode for doing it 08:02:26 there's a "push imm8", but it pushes with the current bitness (or operand prefix bitness) 08:02:39 so it's just a nice short shortcut for pushing small numbers like zeroes 08:02:43 without using an imm32 <.< 08:02:54 mhm 08:03:04 There's also no push reg32 in long mode, while you can still do a push reg16 with the o16 prefix. 08:03:11 there's no point except in function call stuff 08:03:37 which is what stack instructions are for anyways, I guess 08:03:43 (So you can push 2 bytes, or 8, but not 4.) 08:03:52 fizzie: huh, did they do that to free up opcode space? 08:04:02 that's really weird 08:04:11 The manual doesn't give reasons, just facts. :p 08:04:20 True XD 08:04:21 ~arch design~ 08:04:34 I still love some of the really silly incongruencies 08:04:52 like the fact that nop is "xchg eax, eax" in 32-bit mode 08:04:56 but in 64-bit mode, they're not the same thing 08:05:06 because xchg eax, eax isn't a nop 08:05:12 that's because you done have to do the horrible pipeline design that comes with that :D 08:05:20 Fiora: Possibly they did it so that you don't need a REX.W prefix for every PUSH, though? 08:05:40 fizzie: couldn't they make it default to 64-bit and 32-bit requires the address size prefix? 08:05:41 isn't there one of the RISCs where mov is really OR rd, rs, rs 08:05:46 I remember there were some instructions that did that? 08:06:04 or something like OR rd, rs, rzero 08:06:04 Fiora: I don't remember any examples, but I guess that's possible. 08:06:08 madbr: isn't mov a pseudo for add ,,#0 on some ARM? 08:06:17 yeah possibly 08:06:28 like, isn't using 32-bit memory operands in long mode, doesn't that require a prefix byte? 08:06:36 e.g. mov eax, [ebx] 08:06:44 0x6A 08:07:03 PUSH : byte operand, immediate 08:07:16 Yeah, that's the push imm8 08:07:22 mroman_: Pushes a sign-extended value of either 2 or 4 bytes. 08:07:28 it actually decrements esp by 2, 4, or 8 though >.> 08:07:29 Fiora explained imm8 up a ways. 08:07:45 (and: so it is one-byte, huh) 08:08:01 that one actually feels like a reasonable one byte opcode 08:08:19 at least, maybe more reasonable than pusha <.< 08:09:30 Fiora: I was sort of assuming you couldn't write that at all, but apparently you can. 08:09:57 the push imm8? 08:10:36 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:39 ooooh 08:10:51 fizzie: the place I actually remember that coming up was when I was reading about x32 08:11:03 x32? 08:11:05 they wanted to use 32-bit pointers in long mode, but it requires adding a prefix to every single instruction 08:11:24 so instead you have to use 64-bit pointers where the top half is zero 08:11:30 genius 08:11:40 except apparently gcc has trouble with that or something? I don't know much of it <_> 08:11:49 x32 is this new abi thing that's, like. x86_64 without the 64-bit 08:11:55 32-bit x86_64 08:12:02 Doesn't that defeat the purpose of x32? 08:12:16 shachaf: I think the pointers are still stored as 32-bit 08:12:18 Fiora: Or actually there doesn't seem to be a REX prefix at all, I mislooked. 08:12:32 but like, when you address, you do [rax] instead of [eax] and just make sure the top is zero 08:12:48 Fiora: There's an old-fashioned 67h address-size override prefix instead. 08:12:51 ooooh. 08:13:29 so like, in 32-bit, 67h would mean 16-bit addressing, like mov ax, [bx]? 08:13:36 and in 64-bit it corresponds to mov eax, [ebx]? 08:13:37 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 that is a wonderful image XD 08:13:59 Fiora: So it seems: http://sprunge.us/CdVR 08:14:19 and I'm guessing you can't do mov ax, [bx] in 64-bit 08:14:52 -!- madbr has quit (Quit: Radiateur). 08:15:41 Well, no. 08:17:49 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 You can get (16,32), (16,64), (32,32), (32,64), (64,32) and (64,64), but no others. 08:19:14 (There's some redundancy, because 66h is ignored if REX.W is present.) 08:19:27 huh. 08:20:06 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:24:58 yeah, I figure 08:25:07 then again a 32-bit one probably wasn't anticipated to be very useful either... 08:27:35 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 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:29:25 (Time for a lunch.) 08:31:30 Huh 08:32:57 I didn't even know 16-bit had more limitations on r/m... 08:32:58 * Fiora reads 08:33:59 fizzie: Hm 08:34:08 " 08:34:08 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 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 However, there is a special case: 08:34:17 My 80186 reference says it's a byte push 08:34:18 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 wow. 32-bit addressing has spoiled me <.< 08:34:25 I think they retroactively changed it 08:34:31 anyway 08:35:08 I'm probably deploying an internal stack for compiled functions 08:35:31 and keep a list of all allocated things 08:35:47 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 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 After Hello World! every language needs a Quine, that's what I'm working on right now! 09:21:28 Working with a new language is hard, but fun 09:21:40 aight 09:21:52 who are you and what are you doing here 09:22:10 shachaf that's not how you welcome someone 09:22:16 oops 09:22:34 Hi..? I'm Roy and I chat about esoteric languages 09:22:59 `run echo who are you and what are you doing here | colorize 09:23:00 Aight! 09:23:01 ​who are you and what are you doing here 09:23:02 i'm monqy and shachaf chats about me 09:24:04 monqy: sometimes i chat to you instead 09:24:16 hm, this is true 09:24:18 I've made a new brainfuck derivative (yes, sorry, I know) 09:24:55 And am now playing around with quines, using my languages self-modifying/reflection abilities 09:25:05 monqy: So is Haskell + RankNTypes + (forall p. p Char -> p Bool) sound? 09:25:13 (Disregarding recursion/undefined/etc.) 09:25:17 My first try resulted in a Quine which prints the result backwards, close... but wrong 09:26:09 monqy: I think it might be. :-( 09:26:13 shachaf: that looks pretty yikes..... 09:27:08 `WELCOME AgonyLang 09:27:10 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 AgonyLang: so is it the brainfuck that has the self-modifying/reflection abilities or is this two languages 09:28:03 alt. is it a good brainfuck derivative alt. if it's good why is it a brainfuck derivative “set it free„ 09:28:55 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 Other bf self-modifying languages can read the code as characters, but that is silly because it can't execute that 09:30:06 You named the language after yourself? 09:30:44 No... 09:31:14 It is named Agony because it is agonizing making bf programs which self-modify 09:35:20 monqy: What's the magic power GADTs give you over rank2types? 09:36:54 if i had to guess it'd be the part where you have gadts 09:39:11 wow good guess 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 I'm going to go see if Worlds works in WINE 13:21:25 Not really a fan of installing obsolete Java 13:31:50 @tell Phantom_Hoover WorldsPlayer works great on WINE! 13:31:50 Consider it noted. 13:32:01 @tell Phantom_Hoover Just install Java 6 on WINE first. 13:32:01 Consider it noted. 13:32:35 Well, "great" is a bit of an exaggeration 13:32:50 And.. it crashed 13:35:45 Maybe I should upgrade WINE 13:37:40 -!- carado has joined. 13:38:28 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 libreoffice 4! finally compiled, packaged, installed and running! 14:58:22 -!- TodPunk has joined. 15:09:10 freeing a list is more awkward than I thought :) 15:09:18 the list might be in itself 15:14:29 also 15:14:37 http://codepad.org/ukNYo5hq 15:14:42 ^- where is my list o_O 15:15:22 oh hm. 15:15:51 forgot to append 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 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:49:41 > 29/32 17:49:43 0.90625 17:51:38 -!- FreeFull has joined. 17:51:58 > 0.095550537109375 - 29/32 17:52:00 -0.810699462890625 17:52:07 ion: OK. 17:57:22 -!- epicmonkey has joined. 18:03:28 > showIntAtBase 2 intToDigit 13 18:03:30 No instance for (GHC.Show.Show GHC.Show.ShowS) 18:03:30 arising from a use of `M1... 18:03:42 :t showIntAtBase 18:03:44 (Integral a, Show a) => a -> (Int -> Char) -> a -> ShowS 18:03:47 > showIntAtBase 2 intToDigit 13 "" 18:03:49 "1101" 18:04:35 -!- carado has joined. 18:05:52 > showIntAtBase 2 intToDigit 4216 "" 18:05:54 "1000001111000" 18:06:58 > length "1000001111000" 18:07:00 13 18:10:09 -!- DHeadshot has quit (Ping timeout: 248 seconds). 18:12:26 > showIntAtBase 256 chr 79600447942433 "" 18:12:28 "Hello!" 18:16:25 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 > showIntAtBase 2 intToDigit 3 [] 18:17:18 "11" 18:17:22 > showIntAtBase 2 intToDigit 3 [[]] 18:17:23 Couldn't match expected type `GHC.Types.Char' 18:17:24 with actual type... 18:18:40 > showDoubleAtBase 2 intToDigit 0.0643310546875 "" 18:18:41 Not in scope: `showDoubleAtBase' 18:18:54 shame:( 18:19:11 could give a nice infinite list 18:28:28 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 AnotherTest: cabal install something not working right? 18:53:58 Well, I never manage to install a package without problems 18:54:06 I'm guessing it's because of me using an old version 18:54:59 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 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 at least for the useful packages, their deps will kinda work. most of the time. 18:57:36 So suppose I wanted to do that 18:58:20 How would I do it? 18:58:55 rm -rf .cabal/ .ghc/ && cabal update && cabal install whatever you like + what you're currently using. 18:58:55 What would I remove? Where are my haskell packages being stored anyway? 18:59:10 ^-- everything's stored into those two folders. 18:59:12 but! 18:59:16 So, that would work? That would surprise me 18:59:19 it works. 18:59:27 trust me, I'm an engineer. 18:59:43 heh 18:59:57 anyway, currently the problem looks like: dependencies 19:00:13 which can be cured by a good ol' rm -rf. 19:00:28 hmm 19:00:31 drastic, nasty, sudden, powerful, and leaves a nice minty perfume. 19:00:58 I could try this I guess 19:01:13 not much to lose 19:01:18 it's not working right now 19:01:33 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:41 what about lens 19:01:56 that too, but I haven't grokked them yet, so no default lens install on my machine. 19:02:04 (except for pure metasepia abuse, tho) 19:02:49 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:10 so probably not cabal dev? 19:03:50 probably not. 19:03:58 I think a fixed version got released 19:04:09 what's the difference between parsec and attoparsec? 19:04:17 atto = attomic? 19:04:25 hm probably not 19:04:36 it's kinda not the same, quite. 19:04:42 (ato would be more likely in that case) 19:04:47 So haskell has like 19:04:55 -!- KingOfKarlsruhe has joined. 19:04:55 2 packages that do the exact same thing? 19:05:01 Yes 19:05:04 No 19:05:06 Maybe 19:05:08 aaargh 19:05:10 attoparsec has automagic backtracking. 19:05:22 I'm lazy, and can't be arsed to wrap my parsers with 'try'. 19:05:24 so why don't they add that to parsec? 19:05:36 dunno. not my problem, really :p 19:06:14 -!- monqy has joined. 19:06:39 alright, it shall be done 19:09:54 boily 19:09:56 didn't work 19:10:30 It failed to configure "mtl-2.1.2" 19:10:34 ah? 19:10:36 let me check. 19:10:46 (I tried to install mtl, as I seem to need it) 19:11:20 you need mtl for what? 19:11:32 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:11:44 for compiling mroman's burlesque 19:12:15 I think debian has an mtl package though, could use that I guess 19:12:29 AnotherTest: http://www.vex.net/~trebla/haskell/sicp.xhtml 19:13:50 thanks, that doesn't make things work though 19:14:24 -!- Nisstyre-laptop has joined. 19:14:26 "web-encodings" is going to fail installing too btw, as well as "statistics" I think 19:14:49 I think if you read the whole page I linked you would be helped in terms of making things work. 19:14:56 e.g., you would probably not try to use Debian's mtl package. 19:15:15 well, debian's mtl package actually works 19:15:20 and I can install it easily 19:15:29 fsvo works 19:15:55 I think you should probably read the page I linked before saying it doesn't help you 19:15:58 since you clearly haven't... 19:16:48 -!- AnotherTest has quit (Quit: Leaving.). 19:17:00 -!- AnotherTest has joined. 19:17:25 elliott: I've glanced over it 19:17:32 The information is definitely useful, and I will read it 19:17:44 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 AnotherTest: I'm running cabal install hlint aeson attoparsec primes hmatrix lens comonad pandoc hakyll gamma diagrams gloss mueval logict 19:20:59 mtl is probably a dependency of something in that. 19:22:26 what's your cabal version? 19:22:54 Because I'm using .8, and it tells me to update 19:22:57 although I can't update 19:23:15 because I should use cabal for that, but cabal doesn't wokr 19:24:38 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:26:49 well, so that's probably the problem 19:27:46 also, elliott, I read the webpage, and it didn't fix my problem 19:28:51 at this point I don't care 19:29:26 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 Alright so I shouldn't use the debian packages 19:30:15 I'm currently not doing that, so it shouldn't be the problem 19:31:16 boily: I'm trying to update once again. I hope it works this time. 19:31:42 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 Well, I do not see anything in the text that points to my particular setup as the cause of this problem 19:33:28 I've cleaned all my formerly installed packages, so it's like I'm starting from the beginning again 19:35:18 I honestly believe that if I can update to a newer version of cabal, that this will work 19:36:00 btw, is it normal that cabal install cabal-install also installs a bunch of packages (eg it just successfully installed mtl) 19:36:12 Or is that because it depends on those itself? 19:36:50 updating Cabal can often a bad idea. updating cabal-install is something else entirely that may not be a bad idea 19:37:22 elliott: sorry, I meant cabal-install 19:37:27 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 and upgrading it locally may be a bad idea 19:37:49 Well, cabal told me to update cabal-install 19:37:51 (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 Ok I managed to update cabal-install it seems 19:40:02 you can grab a look at what you have installed in .cabal/bin and .cabal/lib. 19:41:08 looks like I only have cabal in bin 19:41:25 and in lib I have mtl, cabal, parsec, http, network and transformers 19:41:31 good start! 19:41:32 which seemed to be all the problematic packages 19:42:18 if I run cabal update, it tells me again that "there is a new version of cabal-install available" 19:42:42 Although it told me that cabal-install had been successfully installed before 19:43:47 background noise. 19:44:39 noise is usually ignored, so let's do just that 19:48:47 oh 19:48:57 failure required transformers == 2 19:49:04 but I have 3 19:49:20 Isn't transformers backwards compatible? 19:49:29 usually. 19:49:56 I just had to tweak web-encodings. its constrains on bytestring, failure and directory were too restrictive. 19:50:10 (besides, I have transformers 0.3.0.0 now) 19:50:11 yeah, someone told me to do that earlier too 19:51:23 cabal unpack web-encodings right, 19:52:35 it runs. 19:52:48 I now have burlesque on my machine. 19:53:44 um, to install the unpacked package, do I run cabal install in that directory? 19:53:53 oh right, that works 19:54:07 cabal configure && cabal build && cabal install. 19:54:28 ok 19:54:35 no need for the first two 19:54:48 it's more feng shui that way. 19:55:41 why does this all feel worse than having to compile gcc manually? 19:56:46 (for the firs time, of course) 20:01:16 pandoc isn't installing 20:01:26 (circular dependency) 20:01:45 I don't really need it currently though 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:53:21 Hi again 20:54:49 kmc, http://bradconte.com/files/misc/HackerNewsParodyThread/ 20:59:42 Yay, I've finished my Quine! 21:00:22 Cool 21:01:08 -!- quintopia has quit (Ping timeout: 248 seconds). 21:01:21 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 If you manage 99 bottles of beer too, you will... have still proved nothing interesting about your language 21:02:27 See HQ9+ 21:02:48 Yeah, I know, not trying to prove anything 21:03:21 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 AgonyLang: brainfuck interpreter! 21:14:15 `addquote 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 979) 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 prime number sieve!~ 21:15:21 if you're ambitious, a self interpreter 21:16:06 just do fractran, it's like prime number sieve except TC 21:16:14 I made a language that makes it easy to write a compiler for that language 21:16:19 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 Erm, within the language 21:16:53 tromp_ Nice idea, I'll try a self-interpreter 21:17:00 -!- carado has quit (Ping timeout: 256 seconds). 21:18:14 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 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 hm _is_ there any p such that you cannot make a function of type p Char -> p Bool ? 21:20:40 My life has never been manageable, so for starters I'll admit my life is unmanageble 21:20:53 (in report haskell + rankntypes, presumably) 21:21:04 (as it's probably easy with type families and stuff) 21:21:18 -!- Taneb has joined. 21:21:19 AgonyLang: you should meet a certain itidus20 21:21:41 oerjan: (Is Char) 21:21:44 oerjan: p = IORef 21:21:49 That's a bit circular, though. :-) 21:21:54 IORef isn't in the report. 21:21:59 um are you sure 21:22:11 well it has stableptr and stuff 21:22:13 close enough 21:22:15 i don't think it is, although the FFI is 21:22:21 it holds for all ADTs, anyway 21:22:26 -!- Nisstyre-laptop has quit (Ping timeout: 250 seconds). 21:22:30 Look, the FFI and IORef don't really count. 21:22:31 I don't get the Char -> Bool thing? 21:22:52 oerjan: For any type made up of just sums/product/exponents you can make it. 21:23:02 shachaf: Is Char is obviously something you need type equality for, i.e. type families or gadts afaiu 21:23:34 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 oerjan: you can express Is with rank-2 21:24:09 leibniz-style 21:24:14 type Is a b = forall p. p a -> p b 21:24:20 oerjan: I mean Leibniz Is. 21:24:21 (hence (forall p. p Char -> p Bool) is Is Char Bool) 21:24:35 is Char Bool? 21:24:38 aha 21:25:07 Help, accessing C++ code in Haskell is scary 21:25:11 anyway, type families do get you Is Char Bool -> Void 21:25:18 so basically it's a question of whether rankntypes are consistent with Char being Bool 21:25:19 GADTs sort of do, but only because of a quirk of GHC's implementation 21:25:37 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 elliott: I think it's not really a quirk. 21:25:57 At least, it's very much on purpose and along the lines of the intended use of GADTs. 21:26:27 afaiu people complain whenever ghc _doesn't_ realize a gadt pattern is unreachable 21:26:44 Yes, but elliott doesn't like to go with the flow. 21:27:02 that is true. 21:27:31 shachaf: I don't see why GADTs = type equality + existential quantification + an extra axiom. 21:27:40 But sure, I'll agree it's convenient. 21:27:52 It stops you adding, e.g. univalence. So it's definitely not harmless. 21:27:59 elliott: What is the axiom? 21:28:07 oerjan: It's not unreachable if you have extra equalities, like Char = Bool 21:28:13 shachaf: ConcreteTypeA =/= ConcreteTypeB 21:28:29 hm... 21:28:32 How would you phrase that axiom? 21:28:34 (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 shachaf: I'm not sure it's a well-founded axiom. 21:28:46 Which is also a strike against it. 21:29:32 um without it type class lookup isn't sound either :P 21:29:53 type equality is the thing that breaks with generalized newtype deriving, right? 21:29:55 everything becomes overlapping 21:29:59 Sgeo: afaik 21:30:04 *-u 21:31:03 -!- Arc_Koen has joined. 21:31:11 Yes, the context is generalised newtype deriving. 21:31:22 But I think it's a misleading context. 21:31:34 oerjan: Right, typeclasses are the thing being ignored. 21:31:36 Hi, Arc_Koen 21:31:41 But all you lose is nice properties about typeclasses, I think. 21:31:46 i.e. instance selection becomes ambiguous. 21:32:08 -!- monqy has quit (Quit: hello). 21:32:37 hello Taneb 21:32:38 Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it. 21:32:42 @messages 21:32:43 Taneb said 9h 23m 29s ago: Just because I created it doesn't mean I do. 21:32:55 (context is Fueue and knowing much about it) 21:33:01 well then that makes the two of us 21:33:10 yes, I know context 21:33:30 though elliott is trying to mislead me 21:33:52 `? d-modules 21:33:55 D-modules are just modules over the ring of differential operators. Taneb invented them. 21:33:59 The same applies to that 21:34:05 `? context 21:34:06 context? ¯\(°_o)/¯ 21:34:13 -!- augur has quit (Remote host closed the connection). 21:34:36 `learn context is a word with many meanings, depending on where it is used. 21:34:40 I knew that. 21:34:42 You should've thought of that *before* inventing D-modules, Taneb. 21:34:51 Also what happened to being bold and daring? 21:35:02 we are bold 21:35:03 shachaf, it got boring after a while 21:35:11 and we dare recognize our ignorance 21:35:24 dald and boring? 21:35:28 don't you have that saying in english? "have the courage to flee" 21:35:29 dald isn't even a word 21:35:30 @wn dald 21:35:31 No match for "dald". 21:35:35 irc.dald.net 21:35:39 ~duck dald 21:35:40 D'ald was a Klingon general in the early 25th century. 21:35:49 Oh. 21:35:54 25th century seems very late to me 21:36:14 It's like 150 years after Duck Dodgers 21:46:47 -!- augur has joined. 21:48:16 -!- carado has joined. 21:48:29 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 i should stop making people flee, i guess 21:54:01 in which way have you become a people fleeer? 21:54:45 well Taneb obviously fled my attempt to encourage him to try programming Fueue. 21:55:42 I wonder why 21:56:02 sheer horror, i assume 21:56:15 of the monster he created 21:56:39 nothing that a little bit of soy sauce, garlic and ginger can't help. 21:56:47 with a name like Nathan van Doom, how can you do otherwise. 21:56:51 you've made me hungry again 21:57:17 Nathan van Doom... is that a mix between Sinistro and Dr Doom? 21:57:34 i don't know sinistro and barely dr doom 21:59:57 @hoogle Int -> Double -> (Int -> Char) -> String -> String 21:59:58 No results found 22:09:53 @tell 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:09:53 Consider it noted. 22:10:28 @tell AnotherTest which fails...) 22:10:29 Consider it noted. 22:10:53 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 he is running an old version. 22:11:07 he has maybe installed a new cabal-install with his cabal-install. if he did, he is not running it 22:11:14 (e.g. it is further down or completely absent from the $PATH) 22:11:29 it does have a way to check, yes 22:11:37 it is a separate message 22:11:40 well, i just mentioned istr having the same issue of being told there's a new version just after installing it 22:11:43 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 it's not part of a general "these packages are outdated" thing afaik 22:12:01 ...i guess. 22:12:20 @tell AnotherTest As Expected, elliott disagrees with me. :) 22:12:20 Consider it noted. 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 Why did I think dots were optional in the user portion of gmail addresses? 23:01:12 They are. 23:01:12 Hrm. 23:01:45 Oh, I see what's going on 23:02:06 It is getting in but just not being directed to my primary account 23:02:09 -!- Phantom_Hoover has joined. 23:05:20 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 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.).