00:04:47 Some of the graphics on Wikipedia are awesome. http://upload.wikimedia.org/wikipedia/commons/a/a2/TMS_Butterfly_Coil_HEAD_.png 00:20:19 http://upload.wikimedia.org/wikipedia/commons/6/69/Backspace.jpg will always be the best 00:20:38 hah 00:21:16 -!- oerjan has quit (Quit: Gineate). 00:21:29 wh...why 00:21:49 yes 00:23:20 hi mnoqy 00:23:29 hi 00:23:37 looking forward to the ""super mega update"" this evening"? 00:23:48 “”super mega update“” 00:23:55 always 00:23:57 “”hi ion”“ 00:30:12 -!- conehead has quit (Quit: Computer has gone to sleep.). 00:51:20 -!- sprocklem has quit (Remote host closed the connection). 00:57:01 -!- JesseH has joined. 00:57:45 I am thinking about how my next esoteric programming language will work ._. 00:58:24 I need ideas :P 00:58:29 Someone brainstorm with me 00:58:59 I should work on Braintrust 2 at some point 00:59:03 turing morphogens imo 00:59:17 Last language was Derplang. 00:59:24 JesseH: Did you look at the list of ideas in the wiki? There are lot of things in there. 00:59:33 Oh I didnt know there was a such a thing. :P 00:59:35 Link me! 01:00:03 Always compiling opcodes as though they were Braintrust, not , and having some kind of quine-ish operator 01:00:34 Right now I am picturing lines and lines of random numbers 01:00:35 That do stuff 01:00:41 http://www.dna.caltech.edu/courses/cs191/paperscs191/turing.pdf‎ i guess 01:00:48 I am trying to think of how that should work. 01:00:57 Take the compiler stack out of the primitive compiler, so to speak 01:01:12 And put it into the code. Ideally recompiles should not grow the stack 01:01:14 Bike: Why is the "f" mixed up? 01:01:19 beats me. 01:01:27 http://www.dna.caltech.edu/courses/cs191/paperscs191/turing.pdf now? 01:01:28 AND the language would ideally be simpler to describe than Braintrust 01:01:29 ok. 01:01:34 Now it isn't mixed up. 01:01:35 zzo38, Can you link me to the ideas? 01:02:00 I really ought to not base it on Brainfuck 01:02:04 http://esolangs.org/wiki/List_of_ideas 01:02:06 Maybe a simple Scheme 01:02:19 But I don't know how to design a trivial Scheme-like language to act as a host for my ideas 01:03:31 how about a language where compiled code should pass some randomness tests. 01:04:11 does malbolge actually look random? 01:04:17 how about um... a language where you have to write multiple programs that interact (e.g. compete, like in a bfjoust?) except that the output of the language is determined by the results of those interactions 01:05:53 are there even any long malbolge programs to test... 01:06:13 ('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>a= QlOj)L(I&%$""Z~AA@UZ=RvttT`R5P3m0LEDh,T*?(b&`$#87[}{W 01:06:18 ... is... that long enough? 01:06:40 not really 01:06:56 http://www.99-bottles-of-beer.net/language-malbolge-995.html luckily some psychopath wrote 99 bottles of beer 01:07:00 sure doesn't look random... 01:07:59 haha the comments are arguing about whether it actually works 01:08:00 good language 01:08:48 also one comment like "why would you do this if it's only five lines in java". precious 01:13:36 i like maxxx 01:13:58 is that some kind of mystifying spambot or something 01:15:00 Fiora: whats it like working with edison carter 01:18:07 Especially since it says you have to drink 99 bottles of *bear* in order to program in this programming language 01:18:34 Bears are hard to swallow, but they taste good if you can get them down. 01:21:02 -!- stuntaneous has joined. 01:23:29 Bears are also hard to bottle. 01:24:30 http://esolangs.org/wiki/Bugmaker 01:24:32 I like that one 01:25:30 didn't we have a tehz hate-on here a while back 01:25:37 -!- btiffin has joined. 01:26:21 "LABEL _ (AND NOT ANYTHING ELSE)" yeah this sucks 01:27:11 «If "Hello World", with any punctuation, case-insensitive, whitespace-insensitive would get printed to the console, the program must halt.» very sucks 01:27:37 also makes an interpreter technically impossible 01:27:57 well you can just buffer all output 01:28:27 yeah oops. oh wel 01:29:13 Bike, i was about to say that sounds like the halting problem but i guess it doesn't 01:29:25 yeah that's what i was thinking 01:29:36 i guess you can just do it at runtime instead. 01:29:39 more like rice's theorem. 01:29:51 but it essentially just means printing 'd' after 'hello worl' is equivalent to halt 01:29:52 same thing practicaly 01:30:03 A language that uses the programmers "stats" to determine the success of something happening. 01:31:40 And you increase levels the more you succeed in doing something? :P 01:32:16 Phantom_Hoover: does it 01:32:20 doesn't it mean it'd have to halt from the start 01:32:35 they amount to the same thing 01:32:39 eh it just says it must halt, not that it must halt immediately 01:32:49 also fuck this language and fuck thinking about it, so there's that 01:32:57 So to declare an int variable to equal 5 it would "roll" 1d(your level) and it would have to be over that. 01:33:00 it hinges on 'would', basically 01:33:12 hinges on someone caring about it at all 01:33:34 But then eventually you would have high enough levels to do whatever, and the language would become boring 01:33:38 what is it with shitty esolangers and proliferation (don't answer, i already know) 01:34:22 hmm? 01:34:27 btw does anyone know dynamics at all 01:34:29 because like https://en.wikipedia.org/wiki/File:Contours2.png wtf 01:35:09 so that's just... mixing? 01:35:21 chaotic mixing yes 01:35:49 what's to fuck, then 01:36:17 well, like, fuck. 01:36:20 know what i mean? 01:36:55 if it wasn't for the lack of [numbers] i would think i'm in /r/trees 01:37:08 what 01:37:13 is that a thing 01:37:42 is it like #toilets 01:37:59 it's the cannabis subreddit 01:38:51 ah, so that's what [numbers] is 01:39:07 very #toilet 01:41:06 https://en.wikipedia.org/wiki/File:Poincar%C3%A9_sections.jpg could stare these all day really 01:41:12 while super high 01:41:44 or super trying to understand dynamics 01:42:45 super high all day #toilet 01:44:36 i almost took a dynamics course 01:44:52 by which i mean i took an 'experimental maths' course and got a zero 01:45:27 what the hec k is an experimental maths 01:45:30 -!- btiffin has left. 01:46:54 I don't know what it is either. 01:47:09 quasi-empiricism? 01:47:09 mnoqy, i don't know, i didn't actually realise i was taking it until halfway through the course 01:47:15 rip btiffin 01:47:23 wait, isn't that the COBOL guy 01:48:39 "The failure to satisfy the second definition is because there are points arbitrarily close to an attractor with a riddled basin, such that these points generate orbits that go to another attractor " seriously what the fuck 01:49:24 if i knew what 'riddled basin' meant that would probably make sense enough 01:49:48 this is all basically topology 01:49:58 a riddled basin is a basin where points arbitrarily close to its attractor go to another attractor. 01:50:17 ssounds reasonable enough 01:50:57 oh right 01:51:06 "Say we initialize a state at p and find that the resulting orbit goes to Â. Now say that we attempt to repeat this experiment. If there is any error in our resetting of the initial condition, we cannot be sure that the orbit will go to A (rather than C), and this is the case no matter how small our error is." like. 01:51:10 yeah that makes sense 01:51:37 it makes from the definition but it is crazy and weird. 01:52:00 -!- copumpkin has quit (Ping timeout: 256 seconds). 01:52:37 -!- copumpkin has joined. 01:52:38 and yeah lots of topology except they're talking about neighborhoods instead of open sets for whatever reason, i suppose it probably generalizes 01:54:12 How to learn writing Lisp system in C? 01:54:31 look at one of the trillion lisp implementations in c 01:56:11 Is there a document of it? 01:57:09 https://code.google.com/p/lisp5000/ there's one 01:59:28 -!- Sgeo_ has quit (Read error: Connection reset by peer). 01:59:45 -!- Sgeo has joined. 02:13:35 -!- sprocklem has joined. 02:13:43 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 02:18:17 -!- jconn has joined. 02:46:05 kmc: are you at the karaoke thing now 02:47:16 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 02:50:24 -!- copumpkin has joined. 03:05:54 no 03:09:19 i'm at a different thing! are you in the city? you could join us 03:09:45 nope, in mountain view 03:10:03 i may be in the city on Sat 03:10:06 will see 03:19:01 -!- noooodl has joined. 03:23:35 http://www.gutenberg.org/files/33346/33346-h/33346-h.htm#h2H_4_0003 03:34:58 elliott: Today conal said that functions are like containers. 03:39:40 -!- nooodl has quit (Ping timeout: 256 seconds). 03:42:08 shachaf: cool 03:42:36 I think Cathy and I are hanging out with her parents on Saturday, but maybe not all day 03:44:42 Anyone working on any neat languages lately? 03:45:00 probalby not 03:45:06 how about you 03:45:12 Should be soon 03:45:15 Planning it out, getting ideas 03:45:19 ok 03:45:44 I think we drove away the actual esoteric programming languages community :/ 03:45:45 I want it to be ... better?" ... than my last one 03:45:52 Oh 03:45:53 Hmm 03:46:30 we could move to #crap 03:46:45 dunno 03:46:47 probably someone already owns #crap and it's bad 03:46:56 just another thing to feel guilty about I suppose 03:46:58 Wait, then who all is in here? 03:47:02 Just brainfuck fan boys? 03:47:05 ##crap 03:47:07 haha 03:47:13 all brainfuck all the time 03:47:30 "I think brainfuck is interesting, so I will stay in #esoteric all day because..." 03:47:34 :P 03:47:55 well this channel is mainly about complaining about #haskell 03:47:56 How about people that actually design and implement languages go to #esoteric_dev 03:48:01 Oh I see 03:48:21 kmc: by drove away do you mean ais523 03:48:36 im sure theres at least like one other guy 03:48:36 it's, like, the general thing that happens when you have an internet community and then give it the "general chat" thing 03:48:39 because using ais523 as a model of anyone else at all is really dangerous :P 03:48:58 i know this from great experience with "minecraft" people ddossing servers because of arguments about sexuality 03:49:01 I still don't get why ais left 03:49:10 Who is ais? 03:49:24 http://esolangs.org/wiki/User:Ais523 03:49:29 Bike: c.c 03:49:30 c.c.c 03:49:30 c.c 03:49:34 ais came up with a bunch of cool languages & is crazy 03:49:41 You bastards 03:49:46 He would be fun to talk to xED 03:49:47 xD 03:49:48 you blew it all up 03:49:53 he also won http://www.wolframscience.com/prizes/tm23/ 03:50:07 Why did he leave?! 03:50:25 an argument about uh 03:50:32 sexuality wasn't it 03:50:44 "the universal killer" 03:50:47 we don't talk about sex here that much 03:50:51 do we? 03:50:56 that wasn't it 03:51:04 anyway he didn't leave because of any one single thing 03:51:06 * JesseH has an urge to tell ais to join his channel 03:51:13 hah 03:51:19 good luck with that 03:51:28 I try to limit all off-topic chat 03:51:43 haha 03:51:47 What good does small talk do? And what good does talk about other shit do? 03:51:49 ok, well, we do a lot of it 03:51:55 yeah this channel is like 03:52:04 i don't remember the last time we talked about esolangs before you mentioned them today 03:52:04 it's just some friends 03:52:08 who talk about whatever 03:52:09 I learned a lot about the people here when I wrote derplang :P 03:52:12 and have some common interests 03:52:13 the fact is, esolangs are not nearly active enough to talk about them all the time 03:52:19 i mean we're still generally like, we do bizarre CS stuff 03:52:21 so unless there's something specific about them brought up it's going to drift 03:52:27 if only we had more people pumping out esolangs 03:52:32 :D 03:52:33 we can talk about esolangs, we just don't, like, do it. very much. 03:52:36 esolangs are fun to design and write >_> 03:52:42 well sure 03:52:47 just not full time 03:52:50 bah 03:52:53 Of course not full time 03:53:06 when you are not focusing on esolangs get the fuck out :P thats why I was gone for a month 03:53:13 i mean if you want to talk about esolangs here it's probably fine 03:53:13 and now I am back, because I want to write one :P 03:53:32 well, y'know, we kind of prefer it this ay 03:53:34 Well it's not a fuckin law that says 03:53:34 *way 03:53:40 if i don't stay in an irc channel constantly i can never come back. it's an oath thing 03:53:44 Thou shalt discuss esolangs 03:53:46 after i nearly got eaten by that goat, but rescued 03:53:57 it's not really better to be silent because the alternative is a fairly tightly-knit channel being off-topic :P 03:54:13 noooodl, Try not to get too upset, i will be forced to use esoteric in any jokes used against you :P 03:54:18 also i am always willing to talk about crabputers and computation in cells, fyi 03:54:19 and plenty of the stuff talked about falls under "if you liked esolangs, you might also like: ..." 03:54:26 make an esolang based on crabputers 03:54:46 I think I am going to pick someone from here that is here because, and name a language after them. 03:55:09 Let me read through the logs and see who I can find 03:55:11 is the person glogbot 03:55:17 if a spider laid eggs under your skin, imagine how much worse itd be if it were a goose 03:55:25 I nominate shachaf 03:56:09 What does shachaf say a lot? 03:56:16 "I love monoids" 03:56:20 "they are so easy" 03:56:22 "hi mnoqy" 03:56:25 What the fuck is monoids 03:56:32 you don't know what a monoid is? 03:56:33 Sounds like a disease 03:56:56 Oh yeah, I dropped out of highschool, bight me 03:57:01 it's a binary operation that is associative, and some other stuff i don't remember off the top of my head 03:57:02 I will have to catch up on my math :P 03:57:05 bite* 03:57:12 Identity 03:57:18 right that 03:57:23 write that? 03:57:24 :P 03:57:30 I want to name a language Bike 03:57:55 so for instance multiplication on the reals forms a monoid, since a(bc) = (ab)c and 1a = a and so on 03:58:03 example "bike x = 1; bicycle x;" 03:58:14 That will print 1 03:58:38 But that is just changing up names and shit 03:58:45 I want to actually make something that is different 03:58:52 string concatenation also forms a monoid, "hell" ++ ("o " ++ "world") = ("hell" ++ "o ") ++ "world" and "" is identity. 03:58:57 even though concatenation isn't commutative, see. 03:59:21 I am trying to think of some complex thing that would be used when writing code 03:59:37 I can't think of shit :P 04:00:05 Why not look at a language you haven't used before, that's outside your usual paradigms 04:00:14 That's a good idea 04:00:17 like haskell or SNOBOL (these are obviously comparable) 04:00:29 I will look at haskell 04:00:36 or no 04:00:38 SNOBOL 04:00:49 I hear about haskell all day from hipster fags 04:00:50 no offense 04:01:05 don't use "fag" derogatorily kthx 04:01:09 I'm gay 04:01:19 what then? 04:01:24 Come back? 04:01:28 (no pun intended) 04:01:28 well, ok. 04:01:59 Maybe a language for a specific purpose 04:02:21 see, snobol is for weird linguistics stuff and being incomprheensible. it's perfect. 04:03:27 Okay, I am just going to write something, and ill share it with you all later 04:03:38 My idea isnt really that interesting, but meh 04:04:41 It's actually very hard to come up with interesting esolangs ideas 04:05:14 noooodl: That is why we have list of idea in wiki, write many things, see what seem interesting to you, etc 04:05:15 Which is also part of the reason you can't discuss esolangs 24/7 04:05:39 Oh right JesseH could look at that 04:05:43 My idea is simple; Can be a fun experiment to try with different escape codes and colors and shit 04:05:59 don't use "fag" derogatorily kthx <--- i agree with this, also I don't think it matters if you're gay, also i'm an op 04:06:23 if you wanna do that in your own channel, fine, but it's against the community norms here 04:06:36 Honestly if I get banned, I will go talk about this in my channel, its not that bad. 04:06:41 ok 04:06:42 Dont get your panties in a bunch 04:06:46 suggest not taking that attitude 04:06:48 imo 04:06:48 i'm not....... 04:06:50 :P 04:06:52 bye? 04:06:59 04:07:06 is it your claim that any attempt by communities to set tone in any way constitutes "getting your panties in a bunch" 04:07:21 i thought Bike and I were being reasonably polite with our requests 04:07:24 Over what I said? I dont think it was even worth mentioning that you are op. 04:07:30 * kmc rolls eyes 04:07:40 Omergerd attitude! sin sin ban him 04:07:46 ok please shut up 04:07:48 about this 04:07:49 i'm getting sick of you 04:07:50 thanks 04:07:59 it's really not endearing 04:07:59 Yes, I have done so much wrong in this community. 04:08:23 can we like change the topic 04:08:25 that would be nice 04:08:28 You never used the term "old fags" or something similar before? 04:08:34 -!- ChanServ has set channel mode: +o elliott. 04:08:37 i'm aware of this usage 04:08:42 hi about the topic-changing 04:08:42 bye JesseH 04:08:44 Right, then why are you upset? 04:08:46 peace 04:08:47 can that happen 04:08:50 thanks 04:08:55 -!- ChanServ has set channel mode: +o kmc. 04:08:56 See you laters 04:08:57 -!- kmc has kicked JesseH JesseH. 04:08:57 What do you want to change this topic anyways? 04:09:07 -!- kmc has set channel mode: -o kmc. 04:09:07 wow kmc 04:09:16 stealing my spotlight 04:09:17 Maybe you shouldn't KICK to everyone too much please 04:09:19 haha 04:09:34 -!- elliott has set channel mode: +v kmc. 04:09:37 -!- elliott has set channel mode: -o elliott. 04:09:54 i don't want to spend an hour explaining to a hostile person that "being aware of this usage" and "thinking it's totally fine" are different 04:10:15 i ain't complainin 04:10:31 well anyway, i was thinking it would be kinda nice if there was somewhere like #esoteric but for neuroscience instead of CS, so i could be a weirdo for being a naïve realist instead of watching you all be weirdos for being constructivists 04:10:35 i can dream 04:10:54 i wouldn't mind more talk of neuroscience here 04:10:59 that soliton stuff was super interesting 04:11:02 even if totally crackpot 04:11:05 i think the problem with "#esoteric for $subject" is that it is inevitably #esoteric 04:11:13 there is no way to escape the gravitational pull 04:11:13 Do you want to be realist of constructivists? I don't think that is necessarily the only choices! 04:12:03 elliott: well if there were any more biologists you'd drive them out with your hostile attitude!! 04:12:55 Bike: thankfully crackpots are impervious to criticism (boom) 04:13:15 oh, snap 04:13:32 kmc: yeah kinda wish i knew more about it but http://upload.wikimedia.org/math/5/e/c/5ec607907b2588dc038c1ef0168475dc.png is rather intimidating 04:14:01 i mean so are the nine or whatever equations you need for hodgkin but who's counting 04:14:17 \rainbow{PARTIAL DIFFERENTIAL EQUATIONS} 04:14:43 i have an entire book on computational modeling of neurons from the 80s, and all the code is in incomprehensible fortran 04:14:46 very #esoteric imo 04:15:10 i love incomprehensible fortran 04:15:53 it's in something halfway between standards and it only ran on the guy's institution's computers it's horrible 04:16:02 i transcribed a bit http://mnxmnkmnd.tumblr.com/post/30986287342/ 04:17:07 What is your opinion about free will? I think there are two kinds of free will. 04:17:15 <3 zzo38 04:17:18 zzo38: do you like hugs? 04:17:26 like, compatabilism? 04:17:30 except spelled correctly 04:17:35 * Fiora hugs! 04:17:45 kmc: Sometimes, but it isn't hug in internet anyways 04:17:52 true 04:17:58 I like internet hugs and also real hugs 04:18:36 Bike: That is one of the kinds of free will, not both. 04:18:37 * Fiora hugs kmc 04:18:48 is the other kind..... incompatibilism 04:18:52 I guess, maybe. 04:18:59 Bike: Yes, I suppose so. 04:19:17 * kmc hugs Fiora 04:19:54 Actually I did find some other Lisp system in C, called LYSP (which stands for "50 Years of Symbolic Processing"). 04:19:58 the main problem with free will is that i argued about it way too much when i was a fifteen year old atheist and now i just groan and clutch my head when someone brings it up 04:20:06 isn't lysp by the maru guy? that's pretty good 04:20:33 Bike: That is the problem of you I think... Are you atheist now, or agnostic? 04:20:53 atheist i guess 04:21:00 and yes it is a problem of me 04:21:09 zzo38: that's a good acronym 04:21:22 the maru guy...... like the guy with the cat?? 04:21:36 the language maru which is named after the cat 04:21:44 oh 04:21:46 good cat though 04:21:50 <3 that cat 04:22:13 O, I thought it is "Marumegane" which is with round glasses. 04:22:45 actually maru itself is self-hosting based on C, so you could look at that 04:22:54 lots of ugly macrology but it has gc and all 04:22:58 rust is self hosting 04:23:01 OK I will look at that too 04:23:02 unclear whether this makes any sense 04:23:08 also there's uh 04:23:16 except as a way to make the language / compiler developers care about whether the language is good 04:23:33 the memory pool system has a nice neat scheme implementation with gc hooks and all 04:24:07 Bike: Do you have the URL to look at it? 04:24:26 like the scheme specifically? let me check their source control, i've never looked at it online 04:24:36 oh. it's on github now. stand by 04:25:00 https://github.com/Ravenbrook/mps-temporary/tree/master/example/scheme 04:26:14 i guess the fundamental problem with neural simulation is that neurons are hilariously nonlinear. 04:26:33 ^ 04:26:45 nonlinear doesn't even begin to describe it 04:27:12 yeah that's what i was trying to get across with "hilariously" but i guess i probably use that word too much 04:27:18 nonlinearest 04:28:13 the neural simulation book has like four pages of code for simulating a single neuron with a dendritic tree with spines, it's fucking nuts 04:29:21 -!- noooodl has quit (Remote host closed the connection). 04:34:02 -!- augur__ has joined. 04:34:54 -!- augur_ has quit (Read error: Connection reset by peer). 04:36:26 MPS is cool 04:36:44 yeah they upgraded their site to not look like shit too 04:37:00 good i guess 04:37:06 does it use twitter bootstrap now 04:37:11 haha 04:44:56 -!- Phantom_Hoover has joined. 04:51:39 -!- conehead has joined. 04:53:47 twitter dongstrap 05:00:20 kmc: btw, another soliton v. hh thing that was mentioned in a review but i didn't think of - solitons don't account for how ion channel blockers like TTX do their poisonous thing 05:00:48 http://en.wikipedia.org/wiki/Scottish_National_Liberation_Army 05:01:02 i'm really not sure whether this counts as embarrassing or not 05:01:25 "In January 2008 two men, Wayne Cook and Steven Robinson were convicted in Manchester of sending miniature bottles of vodka " 05:04:52 "In February 2007, SNLA involvement was claimed in the fatal Grayrigg derailment of a Virgin train traveling from London to Glasgow. A points failure was later found to be responsible. Preliminary investigation indicated that there was probably no sabotage." 05:19:46 "The Scottish Separatist Group (SSG) has been described as the political wing of the SNLA. The SSG was formed in 1995 by former members and supporters of the SNLA. Both groups want to reverse English immigration into Scotland and promote Gaelic as the country’s national language." oh my god 05:19:55 they're just trying so hard to be the scottish ira 05:20:27 man that's sad 05:20:33 just pass that referendum and be done with it 05:21:38 how spoken is gaelic anyway 05:21:42 who the hell actually wants to speak gaelic 05:21:44 also isn't gaelic a language family not a language 05:21:53 sure there's a scottish language in that family, though 05:22:08 oh, when they say "gaelic" they mean "scottish gaelic" 05:22:09 gaelic is what the scottish version's called 05:22:20 wow, that's confusing! 05:22:24 i mean in theory it's 'scots gaelic' but everyone just calls it gaelic 05:22:50 "The 2001 census of Scotland showed that a total of 58,652 (1.2% of the Scottish population aged over three years old)[6] in Scotland could speak Gaelic at that time" i'm uh, not sure this is gonna work, peeps 05:23:15 well, i guess algeria's the same way, really. 05:24:04 is what england has done to scotland called "colonialism" 05:25:04 i don't think i've ever heard someone calling it that 05:25:08 -!- augur__ has changed nick to augur. 05:25:40 i guess there probably haven't been colonies. 05:25:50 yes 05:26:18 there's not much point in establishing a colony in the country immediately north of you 05:27:06 just wondering what you call suppression of minority languages/cultures outside of a colonial context. beinganassism 05:29:07 what happened in algeria 05:29:25 oh, it was a french colony until like the 60s. 05:29:32 linguistically, i mean 05:29:58 basically they still speak a whole lot of french despite the government's efforts to restore arabic and berber 05:30:29 french has no official status there, and it has the most french speakers of any country, that sort of thing 05:30:41 France gave up their other colonies but they maintained for a while that Algeria was an integral part of France 05:30:48 for some reason 05:30:54 "it's, like, right there, man" 05:31:21 if we get rid of it we'll be all lopsided across the mediterranean 05:32:23 in battle for algiers the french commander basically says "it's not my job to care why we're doing this, it's up to the voters back home" 05:32:26 pretty great 05:33:14 i do remember that 'french military history' page mentioning that the french claim the algerian civil war or war of liberation or whatever they decided to call it a victory for france 05:33:30 lol. 05:34:13 i'm imagining a french spokesperson being like "well we did better than portgual right" 05:34:52 "The French consider the departure of the French from Algeria in 1962-63, after 130 years on colonialism, as a French victory and especially consider C. de Gaulle as a hero for 'leading' said victory over the unwilling French public who were very much against the departure. This ended their colonialism. About 2 million ungrateful Algerians lost their lives in this shoddy affair." 05:34:57 (the actual quote) 05:35:19 um. wow. 05:36:15 Do you know of Wang B-machine? I can consider a variant where the instructions are encoded as basic blocks instead. 05:36:35 like wang tiling? 05:36:57 No, it is something different 05:37:26 Although I think they are named after the same person 05:40:41 "[I]n 1966, Robert Berger ... show[ed] how to translate any Turing machine into a set of Wang tiles that tiles the plane if and only if the Turing machine does not halt." This seems like strange and I like this too. 05:41:03 i thought you would. 05:45:01 So it must be Turing complete, then. 05:45:13 what? 05:45:44 Wang B-machine is also Turing complete. 05:45:56 oh. 05:49:55 -!- doesthiswork has quit (Quit: Leaving.). 05:50:38 Maybe the Wang B-machine basic blocks could then even be made in another way, such as a tuple. 05:52:16 It could be a set of integers, a integer, and two labels. 05:53:23 What is the smallest Turing-complete sequent calculus? 05:56:44 -!- Bike has quit (Ping timeout: 260 seconds). 05:58:06 -!- zzo38 has quit (Remote host closed the connection). 06:02:20 -!- JesseH has joined. 06:02:25 My new language! It has begun! 06:03:02 It's called ">_>". http://hastebin.com/vedomobomo | That will output 06:03:03 1 06:03:04 5 06:04:01 Anyhow, Ill be on my channel if someone would like to chat about it, or anything about esoteric programming languages for that matter! PM me for details, later! 06:04:05 -!- JesseH has left ("github.com/jessehorne"). 06:04:21 lol. 06:04:30 -!- sprocklem has quit (Remote host closed the connection). 06:06:07 i want to hate him but he's so good-natured 06:06:14 it's like if taneb made a brainfuck derivative 06:06:32 `smlist (413) 06:06:39 smlist (413): shachaf monqy elliott mnoqy 06:12:22 -!- epicmonkey has joined. 06:23:39 -!- epicmonkey has quit (Read error: Operation timed out). 06:32:42 -!- intosh has joined. 06:41:09 -!- JesseH has joined. 06:41:12 http://esolangs.org/wiki/SLang 06:44:38 -!- JesseH has left ("github.com/jessehorne"). 06:57:30 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com). 07:18:09 shachaf: you were unable to get Uber to confirm a Google Voice number, right? 07:23:07 kmc: I think so. 07:23:54 Maybe I just messed something up. 07:29:52 uber? 07:31:58 -!- sacje has quit (Ping timeout: 264 seconds). 07:56:35 -!- MindlessDrone has joined. 08:09:14 same here 08:13:00 -!- sacje has joined. 08:17:35 -!- sacje has quit (Ping timeout: 264 seconds). 08:42:44 kmc: That's kind of surprising. 08:53:53 -!- daflixis has joined. 08:54:27 How could this hash function be written in an esoteric lang? http://pastebin.com/fKLSat1m As you can see, the state of the hash function is made up of two 32-bit signed integers (a, b) that both start out as 0. 08:55:02 The input is a sequence of characters, drawn from 93 possibilities. Each character from the input is mixed into the state over a progression of 17 rounds and, when the last character has been mixed in, the result is just the final state of (a, b). 08:55:37 Note that addition and multiplication are unchecked (e.g. Int32.MaxValue+1 = Int32.MinValue, Int32.MaxValue*2 = -2) and division rounds towards 0 (e.g. -4/3 = -1, 7/3 = 2). In addition to the hash function, here is translated code to verify that a username/password combination is valid: http://pastebin.com/icX6HHrD 09:02:05 daflixis: Which esoteric lang though? 09:02:21 FreeFull: Which would suit it best? 09:08:55 Who knows 09:09:06 It should be possible to write in most of them 09:09:18 Not all are turing complete or have the ability to take input and output =P 09:10:14 daflixis: what do you want by writing that hash function with an esolang (whichever it would be)? 09:11:07 I think daflixis is just curious 09:11:12 JUst interesting to see how it could be implemented 09:11:15 I am curious 09:11:59 there are several esolangs with a considerable support for bitwise operations, which many esolangs do not support. 09:12:58 loop is a bit easier, though unusual control flow in general is one of the selling (hah!) point of many esolangs. 09:13:28 brainfuck on the other hand doesn't even have division 09:13:28 at least you need an esolang with character I/O (need not to be buffered or interactive) though 09:13:58 (so the original INTERCAL can't be used, but modern INTERCAL variants have character I/O) 09:14:57 It would be reasonably trivial to implement that in Befunge, at least if you assume an implementation where the stack elements are "Int32"s. 09:15:12 if you just want to see how does typical(!) programs written in esolangs look like, then using a code generator like BFBASIC (BASIC to BF compiler) could be an option 09:15:20 except that that would spoil much of the fun :p 09:15:59 fizzie: Befunge-93 does not have bitwise operators though 09:16:32 lifthrasiir: The function in question does not seem to need any. 09:16:54 oh wait, it indeed doesn't have bitwise operators... 09:17:02 then it would be very simple 09:20:58 in befunge? 09:21:22 You might need some extra work in '93 to store a 32-bit value on the playfield (the inner loop doesn't look terribly doable just on the stack, what with no rot), but that's about it. 09:27:28 I could easily implement it in haskell, although it wouldn't be very esoteric =P 09:28:34 How in haskell? 09:30:56 Hmm, you mentioned division, but it doesn't have any division =P 09:31:04 Oh, nevermind, it does 09:37:39 Yea. 09:44:25 I'm tempted to write it in Funge-98, but I'm supposed to be working, and anyway it seems kind of a pointless exercise. 09:44:28 The inner loop in Funge-98 might look like 98+ > \:00g06-*01g+02g+\-00p:01g3/00g+03g+\-\ :#v_ -- assuming some pre-storing of constants, a and b on the playfield, and e on top of stack at start. 09:45:47 (Probably folded on two lines so that the _ is actually a | that goes directly to the >.) 09:46:38 '*f8+738*+** for 0x74fa and 2'_6'+'@**+* for 0x81be 09:47:22 Or 2'ß4'@:**+* for 0x81be if non-ASCII is okay 09:48:50 Deewiant: Oh, man; I did Google for Fungify, but didn't seem to see any hits; should've just gone to your page; didn't realize it was there. 09:49:05 (Well, not by *name*, I mean; I didn't remember the name.) 09:50:05 It's the most obvious name; you don't need to remember it, you can just come up with it and you'll be right. 09:51:18 Well, with those constants inlined, something to the tune of http://sprunge.us/CfQJ perhaps. 09:51:23 (Untested.) 09:52:07 Oh, I forgot a 1- from the loop, heh. 09:52:33 http://sprunge.us/hIdW then. "Whatever." 10:14:34 -!- mnoqy has quit (Quit: hello). 10:41:52 hmm 10:42:04 what was that incredibly dumb thing the coding horror guy did or said 10:51:50 -!- quintopia has joined. 11:08:16 -!- carado has joined. 11:11:11 -!- Sgeo has quit (Read error: Connection reset by peer). 11:33:28 -!- yorick has joined. 12:04:58 -!- oerjan has joined. 12:10:19 `wiki list of ideas 12:10:23 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wiki: not found 12:10:29 ^wiki list of ideas 12:10:39 ...naturally. 12:10:45 fizzie!!!!!!!!!!!!!! 12:12:13 I like how that shoes as "/hoe/hackbot" for me. 12:12:18 and now it fixed itself. 12:14:03 how rude 12:16:02 Bike: Why is the "f" mixed up? <-- are the letters rebelling today 12:16:18 (it wasn't mixed up in the logs) 12:16:57 -!- sebbu has quit (Read error: Connection reset by peer). 12:18:00 -!- sebbu has joined. 12:22:48 `ord >_> or >_> 12:22:50 62 95 62 32 111 114 32 62 95 62 12:23:10 very suspicious. 12:23:19 Uh. 12:23:38 fizzie: hm? 12:23:41 -!- fungot has joined. 12:24:03 ^wiki list of ideas 12:24:03 http://esolangs.org/wiki/list of ideas 12:24:38 ^show wiki 12:24:39 +15[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.<-2.-11..>2-3.<+3.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,] 12:25:17 I think it is finally time for a /hilight -mask fungot!*@* -level quits 12:25:18 fizzie: i guess the biggest difficulty with vcs would be in high level code, easily human readable and parsed once not once per request. 12:25:41 finally! 12:25:56 ^raw QUIT :just testing 12:25:57 -!- fungot has quit (Client Quit). 12:25:59 ... 12:26:04 That's not hilighted at all. 12:26:04 BRING IT BACK 12:26:14 * elliott hyperventilates in re: no fungot 12:26:20 -!- fungot has joined. 12:26:22 ty 12:26:26 i guess fungot is not ideally suited for character escaping. 12:26:26 oerjan: that's what i thought too. particularly before there was no way 12:26:29 Why is it that nothing ever works right. 12:26:41 fizzie: impending apocalypse hth 12:28:06 fungot: That was a suspiciously context-appropriate response. Are you feeling quite all right? 12:28:06 fizzie: seems like it would hurt. the main designer of the language 12:28:15 fungot: Okay, that's more like it. 12:28:15 fizzie: hmm... i wonder if this makes the standard vague on several 12:31:07 fungot: no, it's the unstandard vague on several hth 12:31:08 oerjan: ways in an escher painting rolling a hamster wheel... 12:31:20 fungot: yeah, pretty much 12:31:21 oerjan: but that is very confusing to me. but it can be used for game dev, you just tend to destroy instead of observe. 12:36:27 I think many game developers are like that. 12:56:53 wait, isn't that the COBOL guy <-- yes 12:59:48 @tell Bike and yeah lots of topology except they're talking about neighborhoods instead of open sets for whatever reason, i suppose it probably generalizes <-- there are heaps of equivalent definitions of what a topology is, neighborhoods are at least two of them hth 12:59:48 Consider it noted. 13:00:35 (it's two because you can require the fundamental neigborhoods to be open or not) 13:05:02 @tell Bike open sets, closed sets, closure operation, interior operation, open neighborhoods, general neighborhoods, limit of nets, limit of filters are the ones i can think of on the spot 13:05:02 Consider it noted. 13:14:30 -!- Nisstyre-laptop has joined. 13:14:32 -!- Nisstyre-laptop has quit (Client Quit). 13:14:34 -!- nooodl has joined. 13:20:10 "Gödel's ontological proof of God's existence uses as an axiom that the set of all "positive properties" is an ultrafilter." 13:26:59 -!- doesthiswork has joined. 13:27:21 -!- nooodl has quit (Read error: Connection reset by peer). 13:29:23 -!- nooodl has joined. 13:41:49 -!- daflixis has quit (Ping timeout: 250 seconds). 13:43:00 -!- stuntane has joined. 13:43:24 -!- stuntane has quit (Client Quit). 13:55:17 -!- conehead has joined. 14:02:07 -!- jsvine has joined. 14:27:29 Over what I said? I dont think it was even worth mentioning that you are op. <-- fwiw i thought the same thing when kmc did hth 14:38:46 -!- Phantom_Hoover has quit (Ping timeout: 268 seconds). 14:46:34 it looks like mr. "the challenges of changing nicks" came by again 14:51:03 indeed 14:58:34 -!- nooodl has set topic: 6, 21, 107, 47176870, 7.4 × 10³⁶⁵³⁴ | http://underhanded.xcott.com/?page_id=5 | logs: http://codu.org/logs/_esoteric and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 15:03:38 -!- conehead has quit (Ping timeout: 246 seconds). 15:33:11 -!- nooodl has quit (Read error: Connection reset by peer). 15:34:17 -!- Bike has joined. 15:37:17 why is it so hooooot 15:37:41 -!- jconn has quit (Ping timeout: 248 seconds). 15:37:53 Bike can you figure out a way for me to blame you here. 15:38:02 global warming hth 15:38:17 oh wait, bikes are not to blame for that 15:38:19 elliott: biological research on cows releasing large amounts of methane into the atmosphere, causing global warming. 15:38:25 the wonderful part of canada 15:38:32 is that in the summer it's too hot and in the winter it's too cold 15:39:11 Bike: ok but can we try and figure out a way to blame you that doesn't involve cow farts. 15:39:55 -!- oerjan has quit (Quit: Righting what once went left). 15:40:40 that's kind of a tall order man. 15:50:25 -!- nooodl has joined. 16:05:26 -!- aloril_ has quit (Ping timeout: 248 seconds). 16:08:09 -!- Taneb has joined. 16:19:13 -!- aloril_ has joined. 16:44:54 -!- intosh has quit (Ping timeout: 240 seconds). 17:25:52 -!- nooodl has quit (Read error: Connection reset by peer). 17:32:25 `olist (902) 17:32:27 olist (902): shachaf oerjan Sgeo FireFly 17:43:18 -!- nooodl has joined. 17:57:13 -!- sacje has joined. 18:03:03 -!- nooodl has quit (Read error: Connection reset by peer). 18:09:42 hi everyone 18:10:25 hi kmc. 18:10:28 -!- carado_ has joined. 18:10:37 -!- everyone has joined. 18:10:49 hi kmc 18:10:52 -!- everyone has quit (Client Quit). 18:12:51 :O 18:13:13 i hate it when I change code and the changes clearly don't make it into the binary and I don't know why :( 18:13:18 -!- carado_ has quit (Remote host closed the connection). 18:13:24 and a clean build from scratch is slow 18:13:37 compiler bug hth 18:14:12 quite possibly 18:19:02 -!- doesthiswork has quit (Quit: Leaving.). 18:19:47 -!- nooodl has joined. 18:28:41 Help 18:28:56 What's the nick-length limit on IRC/ 18:29:21 -!- Taneb has changed nick to Testtesttesttest. 18:29:29 16 18:29:30 Okay 18:29:32 -!- Testtesttesttest has changed nick to Taneb. 18:30:06 it's in the server welcome, NICKLEN=16 18:30:23 Right 18:30:42 Because one of my friends has assigned me the nickname "Schrodigner's Rosebud" for inascertainable reasons 18:30:58 And while I am confused I think it does sound pretty cool 18:31:14 So I felt that maybe it was time to change my IRC nick 18:32:40 But alas, it is too long! 18:32:53 compiler bug hth <--- oh surprise it's not a compiler bug, it's just me doing something dumb 18:33:00 I cannot see a way to shorten it beyond 20 characters while retaining what made me love it in the first place 18:33:36 -!- sacje has quit (Excess Flood). 18:34:05 -!- sebbu2 has joined. 18:34:06 -!- sacje has joined. 18:34:11 kmc: did you forget to run the compiler 18:34:13 that would do it 18:36:14 no 18:37:25 -!- sebbu has quit (Ping timeout: 268 seconds). 18:37:30 Did you run the wrong compiler 18:37:40 I highly doubt GHC would compile Rust very well 18:38:27 no indeed 18:38:34 it can compile some things that aren't haskell though 18:39:03 Perhaps you should make GHC able to compile Rust 18:42:21 perhaps 18:43:03 more reasonable would be to teach Cabal to compile Rust 18:43:10 so you can easily have Haskell / Rust hybrid projects 18:43:18 quitter 18:43:20 it does a pretty slick job compiling and linking C with Haskell 18:44:06 Haskell/Rust hybrid makes a lot of sense, because Rust is supposed to be a better alternative to C and C++ for stuff where you would generally use C or C++ 18:44:09 it's not a competitor to Haskell 18:44:38 and Rust is C ABI compatible so standard Haskell FFI stuff should work, although it would be cool to have tools that help you pass higher level data structures between them 18:45:08 Sounds like good GSoC material 18:45:45 hm, yeah :) 18:46:19 * kmc → lunch 18:46:34 * Taneb → iron 19:03:23 -!- sacje has quit (Ping timeout: 246 seconds). 19:03:54 -!- sacje has joined. 19:08:07 -!- jconn has joined. 19:18:06 I did not go to iron as previously asserted 19:18:18 My mum said "I'll do the ironing for you" 19:18:20 And messed it up 19:18:21 :( 19:22:06 -!- nooodl has quit (Read error: Connection reset by peer). 19:22:27 -!- sprocklem has joined. 19:39:00 -!- nooodl has joined. 19:39:18 -!- calamari has joined. 19:39:46 hi 19:42:33 I'm on a language hunt. procedural paradigm, with objects, however the objects can't contain methods, and there are no pointers. anyone heard of something like that? 19:44:21 no, there can't be that much in the category for OO though 19:44:42 how about real world langs? 19:45:45 well i don't know what you mean by 'procedural paradigm' or 'contain methods' 19:46:23 objects typically contain data and methods that work on the data 19:46:46 so this would be closer to a struct where it is data only 19:47:53 well that would be anything with a record type. which is a lot. 19:48:36 maybe I need to make a lang like this 19:49:01 and see how it works out.. might be fun 19:50:54 -!- nooodl has quit (Ping timeout: 240 seconds). 19:54:48 "Eats iron and shits chain" -- a Finnish idiom. 19:55:49 HQ9++ 19:59:53 I eat iron but that hasn’t happened yet. 20:03:07 -!- nooodl has joined. 20:04:23 -!- Bike has quit (Ping timeout: 264 seconds). 20:04:29 ion: Then you must not be a real Finn. 20:04:41 (Admittedly I have the same "problem".) 20:04:44 -!- JesseH has joined. 20:05:24 -!- comex has joined. 20:05:28 i'm back 20:05:36 wv 20:05:36 `relcome comex 20:05:37 wb* 20:05:40 ​comex: 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.) 20:05:56 -!- Bike has joined. 20:05:56 here is some code written in a language that does not actually have any implementations: http://pastie.org/private/hsxu6u9wdxkeskofefsv5g 20:06:30 Interesting stuff 20:08:15 I think Rust's new for loop works a bit like that? 20:08:36 Actually not exactly. 20:08:50 whoa, comex 20:09:58 shachaf: I'm talking in mozilla #rust about Rust-Haskell integration, what do you think? 20:10:43 Haven't been following, let me see. 20:11:27 maybe i should lurk there 20:11:59 it's fun 20:12:13 a lot of Haskell projects have some C component and it would be cool to use Rust there instead 20:12:29 I think you should be able to e.g. allocate an owned box in Rust and then move it to Haskell code as a ForeignPtr 20:12:44 and you could definitely write a tool to help marshal algebraic data between the languages 20:13:18 calling into your low-level realtime code but still having algebraic data would be awesome 20:14:14 -!- Bike_ has joined. 20:14:16 -!- Bike has quit (Ping timeout: 240 seconds). 20:14:46 kmc: how does that kind of interfacing work, with like, lazy evaluation and haskelly data structures and stuff? 20:15:30 -!- Bike_ has changed nick to Bike. 20:15:37 well turning a Haskell algebraic data structure into a Rust algebraic data structure will involve copying, since they have totally different layout etc. 20:16:02 but Haskell also has primitives for working with unboxed arrays, raw C pointers, etc., and tools for wrapping safe interfaces around these things 20:16:18 for example ByteString is ultimately backed by a contiguous chunk of memory allocated with malloc() 20:17:08 so like, in haskell, I can declare an array that's just an array of C doubles, and pass it to C without copying? 20:17:13 since it's just an array of doubles 20:17:13 yep 20:17:17 cool! 20:17:27 useful e.g. for calling some C matrix library 20:17:31 (or FORTRAN matrix library!!) 20:17:48 of course when you do these things you lose some of the memory safety guarantees of Haskell 20:17:52 kmc: It would be neat. 20:17:53 likewise in Rust 20:18:13 but in many cases, a good Haskell wrapper for a C library can provide a high level safe interface, even if the guts involve mucking about with allocation and raw pointers 20:18:26 and the same is true in Rust basically 20:18:30 does haskell (or ghc whatever) actually use malloc and not something that works better with gc'd areas? 20:18:41 ByteStrings use malloc. 20:18:51 That's a library, not something implemented in GHC. 20:18:57 the GHC GC doesn't need to know anything about the guts of a ByteString, and would have nothing useful to do with them anyway 20:19:02 Data.Text uses GHC-managed byte arrays. 20:19:55 Bike: ByteString uses http://hackage.haskell.org/packages/archive/base/4.2.0.1/doc/html/Foreign-ForeignPtr.html 20:20:21 pointer to an object not managed by the GHC RTS, with an attached finalizer that runs when the last copy of that pointer disappears 20:20:28 which in this case would just call free() 20:20:35 i'm just thinking, like, doesn't malloc involve plenty of overhead 20:20:45 use a better malloc then ;P 20:21:05 One of the goals of ByteString is to be interoperable with C code. 20:21:06 I don't know; what about the ByteString allocation case makes you think that a specialized allocator could do better than the system default general allocator 20:21:25 shachaf: presumably that doesn't include freeing a ByteString from C, though. or do they have a "transfer ownership" method? 20:21:33 -!- oerjan has joined. 20:21:34 you can't really do that safely in Haskell, but you can in Rust, which is cool 20:22:10 Bike: the thing about ByteString is that it's a general immutable byte buffer type; it could be small or large, have all kinds of different access patterns, etc. according to the application 20:22:20 well i'm just thinking like, for malloc you have to have an area of memory laid out into blocks and all, but the runtime might already be doing something of that for itself 20:22:26 so I think if you can beat malloc() for ByteString then you should just use that better algorithm as malloc() 20:22:31 but I'm not positive 20:22:42 like shachaf said GHC does have its own routines for allocating contiguous arrays 20:22:44 Bike: there is almost certainly libc in the process already 20:22:54 -!- sacje has quit (Ping timeout: 240 seconds). 20:23:02 is there? I don't know. 20:23:02 btw foreign calls from Haskell to C can be made very fast 20:23:08 foreign calls from Rust to C are slow atm :/ 20:23:10 unless there is some way to do static linking 20:23:16 kmc: why? 20:23:38 because Rust uses small segmented stacks, and for a C call you have to jump to a big stack, and perhaps allocate one too 20:23:44 aha 20:23:46 ...why does it do that? 20:23:47 there isn't a good reason to use segmented stacks on 64-bit architectures, though 20:24:19 Rust wants to support lightweight threading and if you allocate a new large stack for every thread, you will quickly run out of 32-bit address space 20:25:05 Is there an unsafe fast C call for things that don't use much stack space? 20:25:17 lightweight thrads, like um... stackless python or something? 20:25:18 you'd think you could say "this C call will only be used from threads that have previously called " 20:25:22 well, maybe it will be improved 20:25:27 but the OS will lazily allocate physical pages, so you're only constrained by virtual address space and not by actual memory 20:25:39 comex: yeah, there is various discussion of improvements 20:26:10 shachaf: I think there is such a thing hardcoded for the runtime's calls to e.g. malloc and free, but I don't think you can write a general foreign import that works that way 20:26:15 though google says segmented stacks themselves have a large performance hit 20:26:20 yep 20:26:28 is jumping to another stack, like, bad? I mean, you could like, keep a few arund to use or something, right? 20:26:31 you have to check "do I need more stack" on every function call pretty much :( 20:26:53 oh! that reminds me of this which is kind of interesting 20:26:55 kmc: http://support.microsoft.com/kb/100775 20:26:58 why? can't you just have a guard page? 20:27:14 Fiora: yeah I don't know... maybe they want to deallocate them eagerly, because otherwise every thread that has ever made a C call is no longer lightweight 20:27:30 functions that use large amounts of stack have to poke each page they're allocating in order to trigger the guard page 20:27:47 I think, at least? I read it a long time ago... 20:28:03 comex: yeah, if you know that the function won't jump more than 1 page up the stack 20:28:07 which you could know statically sometimes 20:28:11 kmc: isn't the stack like, thrown away the instant the C function returns? so like, it doesn't need to keep using that big stack chunk thing 20:29:02 (I must be missing something) 20:29:02 but if the function might jump 10 pages up the stack, then you need 10 guard pages, and in the limit you are using so much VM that you might as well have a big stack 20:29:18 -!- sacje has joined. 20:29:26 you're suggesting a pool of big stacks for calling C? 20:29:32 that might already be how it works; I'm not sure 20:29:36 I think so? 20:29:49 I wonder how stack guard pages work on different OSs... there must be standards or something... 20:29:55 since that link is just like, windows 20:30:06 (I think it's "ensure we only need one guard page"?) 20:30:16 Did you know checkinstall's wrappers around libc calls allocate lots of big structs containing n*MAX_PATH bytes on the stack? 20:30:34 I found this out when I tried to checkinstall something which was using a coroutine library with small stacks. 20:30:40 heh 20:30:46 "make install" ran "make test", which ran some binaries, which called open() etc. 20:31:35 * Fiora goes to try to compile a linux function that uses a lot of stack to see what the compiler does. 20:31:40 kmc: Isn't there a thing where a debugger can mark pages with the objects unreadable to catch accesses in software? 20:32:00 Of course that would be very slow. 20:32:13 Fiora: you could just map the maximum stack size and lazily provide physical pages, then you don't need a guard page and you'll just get a normal page fault if you go outside the stack 20:32:14 yeah, GDB can do that 20:32:28 olsner: but like, what if past the guard page is other valid memory? 20:32:35 then you access it :) 20:32:47 but like, couldn't it be something you're not supposed to be clobbering? 20:32:51 like other program data 20:32:58 -!- sebbu2 has changed nick to sebbu. 20:33:01 olsner: and then you run out of address space :) 20:33:02 sure, then some stuff breaks :) 20:33:09 i don't care about x86, but i do care about ARM 20:33:10 that... doesn't sound like a good idea XD 20:33:34 don't run out of stack, hth 20:33:56 actually, please use recursion a lot and don't check for overflow 20:34:03 so you can be sploited 20:34:33 george w bush doesn't care about x86 20:34:46 Joke's on you, I used tail recursion! 20:35:00 comex: did you see the Linux security hole that resulted from a driver that used a C99 VLA with user-controlled size? 20:35:10 no, but I believe I found at least one such hole in OS X 20:35:13 nice 20:35:14 :) 20:35:25 Linux kernel stacks are only 8 kB usually 20:35:34 not hard to overflow one 20:36:25 -!- mnoqy has joined. 20:38:18 geez, even if I try to make a function that uses like 8 megabytes of stack it doesn't do anything like chkstk 20:38:22 I guess that's just a windows thing >_< 20:38:39 yeah I don't think Linux programs detect stack overflow typically 20:39:05 I wonder why that's just a windows ABI thing... 20:39:48 because you shouldn't be using that much stack, it's silly 20:39:53 dunno 20:39:55 windows also has SEH 20:40:06 and if you say VLAs - you shouldn't be using VLAs, ever 20:40:13 i love VLAs, they're so easy 20:40:16 well, at least without checking the size you're allocating 20:40:19 Ever? 20:40:22 but really, better not to use them ever :) 20:40:26 401170: 56 push esi 20:40:27 401171: b8 80 3e 00 00 mov eax,0x3e80 20:40:27 401176: 53 push ebx 20:40:27 401177: e8 64 00 00 00 call 4011e0 <___chkstk> 20:40:33 -!- FreeFull has quit (Read error: Operation timed out). 20:40:43 culture difference, I guess... windows went "failures have to be detected and abort the program" vs linux "don't run out of stack or you'll have weird and undefined problems" 20:40:59 abort...? I thought the idea was to like, add more pages (?) 20:41:08 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14236 is fun... don't use VLAs and alloca() together in GCC or you're gonna have a bad time 20:41:13 like you have a guard page and then if you hit it you throw more on the end or am I totally misunderstanding 20:41:20 9 year old open bug 20:41:51 not as epic as http://gcc.gnu.org/bugzilla/show_bug.cgi?id=323 20:41:59 Fiora: Your link says "issues an overflow error". 20:42:14 oh @_@ 20:42:15 Or maybe you're talking about something else? 20:42:24 sorry, I can't read >_< 20:42:31 -!- calamari has quit (Quit: Bye). 20:43:03 you probably get pages allocated automatically up until the guard page, and the guard page is between the stack and the heap or something else in address space 20:43:13 to detect and prevent the stack from overlapping that other stuff 20:43:42 on 64-bit wouldn't it have a ton of address space, so it can just like, lazily allocate the stack to avoid wasting memory, or... (?) 20:43:42 when you're lucky yeah 20:44:05 on any modern OS (32- or 64-bit) the physical pages of the stack will be allocated lazily 20:44:10 like any other anonymous mapping basically 20:44:36 and that doesn't have to be contiguous or anything 20:44:44 wow.... that 9 year old bug. that's... a lot of duplicates 20:44:52 and is basically transparent to user code 20:44:58 I'll take comex's advice and use alloca instead of VLAs. 20:44:59 on Linux (and probably other OSes) the virtual memory mapping itself also grows on faults 20:45:02 -!- FreeFull has joined. 20:45:30 this is not transparent; you could mmap() something in the way and then it won't be able to grow anymore 20:45:33 I think 20:45:55 oh geez. is this like an x87 80-bit/64-bit bug thing? like um... that... that php infinite loop double thing 20:46:00 yeah 20:46:02 that's how i found this ticket 20:46:21 it has a lot of dupes because people keep claiming that gcc's -ffast-math behavior is a compiler bug when in fact it's perfectly reasonable and documented 20:46:26 more like -fwrong-math 20:46:41 oh, is this only with -ffast-math? 20:46:50 there's another huge bug thread that basically has a dupe from everyone who doesn't understand sequence points and claims a compiler bug for that reason 20:46:54 i think so 20:47:13 maybe not? 20:47:19 I don't think -O enables fast-math 20:47:21 @quote monochrom bits 20:47:22 monochrom says: 8-bit word uses less memory, but if it doesn't have to preserve information, I know how to use 0 bits of memory. 20:47:24 Bike: oh gosh. now I'm thinking of um. that x87 guy 20:47:28 bleh I should be working instead of talking about cool things :/ 20:47:50 not the x87 guy D: 20:48:08 internal tzetze problem: i conflate the x87 guy and zeilberger in my head, because they are both crazy 20:48:46 so, unrelatedly, somebody is asking for recommendations for books to self-study high school algebra 20:48:54 and i'm blanking because like, that was years ago. any ideas? 20:50:20 I wonder what C actually specifies should happen with this excess precision 20:50:29 (I also wonder if I really want to know) 20:53:48 knowing is half the battle 20:54:53 Bike: I'm now imagining, like, a bunch of bearded linux programmers holding signs in front of his houses 20:54:58 with slogans like 20:55:00 i believe C specifies IEEE 754 20:55:03 "GIVE US BACK OUR COMMUTIVITY" 20:55:21 well... if __STDC_IEC_559__ is set, anyway 20:55:25 aaaaah 20:55:43 `quote __STDC_IEC_559__ 20:55:45 852) What is portable way of load/save floating points in files, using a C code? #ifndef __STDC_IEC_559__ #error Here's a nickel, kid. Buy a real computer. #endif 20:56:12 hm do IEEE 754 floats vary with machine endianness? 20:56:16 yes 20:56:20 sucks 20:56:33 so my answer isn't just unhelpful, it's also wrong :'( 20:56:48 not the end of the world, you have to swap everything else already 20:57:32 i follow an evolutionary biomechanist on twitter and he posts cat gifs and elephants 20:57:40 eww, don't swap. serialize. 20:58:02 I guess the real answer involves frexp() or something 20:58:50 olsner: too hard 20:58:53 in C, that is 20:58:58 easier in any higher level language 21:00:07 serializing floats efficiently and without losing precision is moderately tricky 21:00:33 it's annoying that frexp() still returns a floating point mantissa, not an integer one 21:00:34 well, at least using some read/write_portable_float function is easy, writing those functions might be less so 21:00:54 it should be reasonably ok as long as you don't have to change base right 21:02:34 "It looks like the standard xgcc for the arm-elf target uses little endian byte order but big endian word order (1.0 => 0x0000F03F 0x00000000)." scary 21:03:35 wow. 21:03:50 cool, I thought all mixed-endian platforms were dead 21:04:06 the PDP isn't dead! it's running nuclear reactors as we speak 21:04:14 until 2050 21:04:29 http://www.theregister.co.uk/2013/06/19/nuke_plants_to_keep_pdp11_until_2050/ 21:04:47 I think that might be a softfloat thing? 21:05:06 like for ARMs where all the double stuff has to be emulated 21:06:14 -!- nooodl has quit (Ping timeout: 248 seconds). 21:06:22 -!- MindlessDrone has quit (Quit: MindlessDrone). 21:06:53 that's not as funny. 21:20:57 -!- nooodl has joined. 21:24:18 -!- Nisstyre has joined. 21:29:05 -!- Frooxius has quit (Read error: Connection reset by peer). 21:31:01 -!- Frooxius has joined. 21:31:41 does pdp11 have something like the year 2038 problem? 21:31:49 -!- Bike has quit (Ping timeout: 248 seconds). 21:32:30 maybe that's _why_ they will stop in 2050 21:34:29 -!- conehead has joined. 21:35:18 -!- Bike_ has joined. 21:38:37 wait when running unix it probably has 2038 problems, period. maybe. 21:40:14 I've got 2038 problems but Y2K ain't one 21:49:58 And messed it up <-- i conclude you are better at ironing than your mother 21:50:32 I'm better at reading instructions for t-shirt transfers than my mother 21:51:01 she ruined your cosplay shirt? :( 21:51:26 would a nuclear reactor run unix? 21:51:47 olsner: i don't know 21:52:00 oerjan, nah, just didn't do it very well 21:52:03 oerjan: that doesn't help 21:52:07 cosplaying a homestuck? 21:52:44 -!- copumpkin has quit (Ping timeout: 246 seconds). 21:53:22 -!- copumpkin has joined. 21:54:06 Yeah, Jake English 21:54:35 you should totally go with a Dirk 21:55:10 Don't know anyone who cosplays Dirk who doesn't have their own Jake :) 21:55:11 *( 21:55:12 :( 21:55:20 Sadness was the emotion I wanted 21:55:22 Not happiness 21:55:23 aaaah 21:55:32 it's okay! 21:55:39 I get what you meant! 21:55:42 -!- Bike_ has changed nick to Bike. 22:02:06 http://phenomena.nationalgeographic.com/files/2013/07/Tall-remora-figure-600.jpg remoras have stylish hats 22:04:05 -!- Taneb has quit (Quit: Leaving). 22:05:32 -!- augur_ has joined. 22:06:07 -!- augur has quit (Read error: Connection reset by peer). 22:06:31 -!- augur has joined. 22:06:42 -!- yorick has quit (Remote host closed the connection). 22:10:46 -!- augur_ has quit (Ping timeout: 276 seconds). 22:13:07 does haskell (or ghc whatever) actually use malloc and not something that works better with gc'd areas? <-- note that the ByteString mentions are a special case done by the library; normal haskell types get allocated through ghc's own GC-adapted system, which doesn't use malloc but instead OS-dependent large memory allocation calls (i think mmap for linux) 22:15:45 so basically, ghc's runtime normally does handle most of it by itself 22:17:07 Bike: ^ 22:17:44 k 22:31:03 yes 22:31:45 normal Haskell objects are garbage collected and can be moved, which means allocation can be super fast 22:32:32 I don't know whether GHC's allocator uses mmap or malloc for allocating the big chunks of memory tht it manages, but I doubt that really matters. 22:32:41 right, they're like 4 MB 22:33:00 you have a region for new objects, and a pointer to where the next object goes, and you just bump that pointer on every alloc 22:33:06 no need to find a good fit in a free list, like malloc does 22:33:22 and then once some of those objects die, the GC can move things around 22:47:01 I think if you ask most mallocs for 4 MB they will call mmap anyway 22:48:39 that means GHC can use the big pages, right? 22:49:20 yeah but it doesn't 22:49:30 except that Linux will transparently use big pages these days 22:51:28 linux calls them "huge pages" 22:51:37 much better name than windows's "large pages" imo 22:52:03 I remember reading that AMD now supported like 2GB pages but the big ones in linux were 2MB which confused me a little 22:52:38 (maybe it was a misprint?) 22:53:04 I think there are several sizes. 22:53:07 afaik, 1GB and 2MB are the only "big" page sizes supported on amd64 22:53:13 Yup. 22:53:14 2GB pages sound like a very specialized sort of thing. 22:53:15 oh, it's 1GB 22:53:16 but in some 32-bit you can get 4MB pages 22:53:20 Or 1GB. 22:53:22 how does 1GB pages work? 22:53:35 As you'd expect. It's a page that's 1G. 22:53:45 It's not used much courtesy of being niche. 22:53:53 oh, so like, something like linux wouldn't support it? 22:54:08 that sounds useful for setting up direct mappings within your kernel 22:54:08 Why wouldn't it? 22:54:19 not as useful for userspace 22:55:19 2MB and 1GB pages use the same mechanism (a bit in the page table entry says it's a big page rather than a pointer to another level of page tables) 22:55:53 http://en.wikipedia.org/wiki/File:Enormous_Sunfish.jpg this fish is bullshit 22:55:58 ls /sys/kernel/mm/hugepages 22:56:00 to see the supported sizes 22:56:03 I only have 2048kB 22:56:27 I bet Linux doesn't export support for 1G pages to userspace. 22:56:33 but for some reason 4TB pages don't exist (despite having the exact same structure and an available bit) 22:56:34 I think you need to enable 1GB pages at boot time. 22:56:34 yeah, I don't think it does 22:56:38 Courtesy of being dubious. 22:56:54 -!- jsvine has quit (Quit: Leaving.). 22:57:01 1GB pages require cpu support too, and doesn't seem to be supported by most intel cpus 22:57:02 could be useful for database servers or such 22:57:02 I thought the 1GB pages were exposed to userspace? 22:57:09 can you have a file-backed hugepage mapping 22:57:48 Bike: http://upload.wikimedia.org/wikipedia/commons/f/f5/Mola-mola-Lisboa-20051020.jpg it's kind of cute 22:58:28 oh yeah I saw one of those in Galápagos 22:58:33 weird fish 22:59:22 «he Chinese translation of its academic name is fan-che yu 翻車魚, meaning "toppled car fish"» it's pretty orientalist of me but i really dig literal translations of chinese translations 22:59:42 Fiora: cute, and weightier than a smartcar 23:00:06 -!- Nisstyre has quit (Quit: Leaving). 23:00:35 you got to go to galapagos? wow 23:01:01 wow it's literally heavier than a fortwo. 23:01:25 on average. big sunfish apparently get up to 2.3 Mg which is a bit horrifying 23:03:08 (looks like pdpe1gb is the cpuinfo flag to check for) 23:03:40 http://en.wikipedia.org/wiki/File:Mola_mola-Skelett,_Naturhistorisches_Museum_Wien.jpg yo wassup 23:03:44 wow. that's a huge fish 23:04:41 "By basking on its side at the surface, the sunfish also allows seabirds to feed on parasites from its skin." cute 23:05:54 -!- carado has quit (Ping timeout: 256 seconds). 23:05:55 "Sea lions appear to hunt sunfish for sport, tearing the fins off, tossing the body around, and then simply abandoning the still-living but helpless fish to die on the seafloor" less cute 23:06:05 ;_; 23:06:29 "Newly hatched sunfish larvae are only 2.5 mm (0.098 in) long." 23:06:58 "Injuries from sunfish are rare, although there is a slight danger from large sunfish leaping out of the water onto boats; in one instance a boy was knocked off his boat when a sunfish leaped onto it." 23:07:18 awesome 23:07:32 "The by-catch rate is even higher for the Mediterranean swordfish industry, with 71% to 90% of the total catch being sunfish." 23:07:38 that is kind of amazing 23:07:46 "we're a swordfish fishery. 90% of our catch is actually sunfish" 23:10:32 http://upload.wikimedia.org/wikipedia/commons/9/98/Mola_mola.jpg gosh they look so adorably doofy XD 23:11:02 they weigh as much of a car and lay 300 million eggs at a time, i'm amazed anybody catches anything else :p 23:11:21 300 million @___@ 23:12:23 0.0003 trillion eggs 23:12:26 that's nothing 23:12:32 i mean obviously they almost all die. 23:13:11 What do you call concurrency things that aren't primitives? 23:13:50 complicatives 23:16:01 http://en.wikipedia.org/wiki/File:Rhtyp_u0_white_bg.gif lookin' at big fish now 23:16:06 in the form of weird pixel art 23:18:23 I was looking at that one too <.< 23:18:37 fishbase 23:20:34 kmc: I linked someone in #haskell to the FAQ and they ignored it so people started typing the same thing in the channel instead. 23:20:45 What do you do to get people to actually read links? 23:21:02 i suggest disproportionate violence 23:21:53 sounds good 23:22:04 I suggest friendliness! 23:22:20 http://static.rust-lang.org/doc/0.7/std/cast.html Rust has so many different exciting kinds of unsafe cast! 23:22:29 Fiora: what kind of friendliness 23:22:46 I like "forget: Move a thing into the void" 23:22:49 kmc: imo it's missing "transmogrify" 23:23:08 yeah 23:23:11 agree 23:23:16 http://en.wikipedia.org/wiki/Spy_hopping#Spyhopping ethology is the best 23:23:32 http://en.wikipedia.org/wiki/Megamouth_shark @_@ 23:23:34 Fiora: "i suggest disproportionate friendliness" 23:23:43 #haskell already has plenty of that 23:23:55 kmc: "This can be used for various acts of magick." dorks 23:24:13 Bike: what's with insulting people like that all the time 23:24:20 http://static.rust-lang.org/doc/std/local_data.html "Casting 'Arcane Sight' reveals an overwhelming aura of Transmutation magic." 23:26:01 shachaf: http://www.youtube.com/watch?v=IRsPheErBj8 23:26:39 is that from Homer Goes to College? 23:26:47 Bike: yes, that 23:27:02 great episode 23:27:06 why do you do it 23:27:06 written by conan o'brien 23:27:19 presumably he does it because we're all huge dorks and that makes it funny 23:27:48 i don't mind because "dork" is a pretty mild, even affectionate label 23:30:21 that's the idea yeah 23:30:41 i'm sitting here reading about extinct sharks, i'm not in a position to stuff you into your locker 23:32:03 i'm not particularly worried about being stuffed into lockers 23:32:15 what's the best extinct shark 23:33:28 i guess megalodon is too obvious. 23:34:44 -!- zzo38 has joined. 23:34:56 I would say when I say dork I mean it affectionately but bike will probably just counter by telling me that I mean everything affectionately 23:35:02 haha 23:35:19 how do the two of you know each other, anyway? 23:35:39 a different irc channel 23:35:47 he dragged me here from a place 23:36:04 this is what happens when you're a shut-in, see, you just meet everybody online 23:36:05 Fiora: "doooooorks" seems to have pretty obvious insult undertones 23:36:11 i mean, it's also pretty obviously a joke 23:36:24 the joke is that he's acting as if he's insulting you but he doesn't actually mean it 23:36:28 or something 23:36:35 Bike: gpoy ._. 23:37:31 <#haskell> haskell is the best. but i can imagine things, which could be better. 23:37:49 it would be kind of an interesting real life meeting that had both a 20yo dropout biologist thing and also fiora the haxor 23:38:32 is Bike the dropout biologist thing? 23:38:38 yes 23:38:42 I am not a haxor 23:38:47 in any sense, really 23:39:28 how do you explain that you were sighted in an 80s movie talking about firewalls! 23:39:40 -!- kallisti has joined. 23:39:41 -!- kallisti has quit (Changing host). 23:39:41 -!- kallisti has joined. 23:39:41 i thought you were one iff people called you one 23:40:01 the question is just which kind you are 23:40:13 what kinds are there? 23:40:16 can i be a haxxxor 23:40:31 dude i'm underage 23:40:48 I wasn't even alive in the 80s <_> 23:40:55 is "20yo" underage? 23:41:09 shachaf: http://puu.sh/3y07p.gif 23:41:11 kmc: that's too many xs. that's just ridiculous 23:41:14 i am complete, olsner, but not consistent. 23:43:32 kmc: i like how function call is actually an operation on function pointers, not functions, in C 23:43:38 what kind of "underage" are we talking 23:43:43 just like x[y] is an operation on pointers, not arrays 23:43:48 Fiora: cool how it goes in and out of focus 23:43:48 yeah 23:44:00 "age" is 25 years old 23:44:24 @wn overage 23:44:25 im 25 years old 23:44:25 *** "overage" wn "WordNet (r) 3.0 (2006)" 23:44:25 overage 23:44:26 adj 1: too old to be useful; "He left the house...for the 23:44:26 support of twelve superannuated wool carders"- Anthony 23:44:26 Trollope [syn: {overage}, {overaged}, {superannuated}, 23:44:27 [3 @more lines] 23:44:32 hmm, not that 23:44:33 @more 23:44:33 {over-the-hill}] 23:44:33 n 1: a surplus or excess of money or merchandise that is 23:44:33 actually on hand and that exceeds expectations 23:44:36 there we go 23:44:51 underage is the lack of money or merchandise compared to expectations 23:45:10 underäge, on the other hand............... 23:45:12 shachaf: although functions decay to function pointers quickly, I don't think function calls actually also do that 23:45:47 olsner: Do they not? 23:46:44 Bike: anyways I think the meeting would probably involve us both being awkward and me being shy and nobody saying anything for a while 23:47:06 should be like my other offline meets: involving pizza and action films 23:47:08 that's why you need some loudmouth people around too 23:47:12 like me? sometimes? 23:47:18 but sometimes I am also shy and awkward 23:47:37 well if we get enough internet people /someone/ must be a loudmouth... right...............? 23:47:39 i can confirm all of the above 23:47:47 am i a loudmouth 23:47:52 hardly 23:48:02 probably not around people i don't know p. well 23:48:05 but maybe sometimes 23:48:07 who knows 23:49:08 "Web homescreens", "cloud desktops": the core interface of devices 23:49:20 those sound like star trek words. 23:49:31 shachaf: do you know me p. well, now? 23:50:15 does anyone else read "BS in Computer Science" as Bullshit in CS? 23:50:31 sometimes 23:50:36 hmm, i don't know 23:50:46 you know the saying. bullshit, more shit, piled higher and deeper 23:52:58 olsner: The function call operator is specified to take a function pointer (with a footnote something like "usually from a conversion of a function designator"), so I'd say they do. 23:53:10 fizzie: cool 23:53:21 fizzie: so what can you do with actual functions 23:53:46 cast them to char[] and go fucking nuts, imo 23:54:31 you can try to take their sizeof (and fail) 23:54:32 you can typedef function types in addition to function pointer types, which is neat 23:55:06 so you can do, like, putc(*(char*)foo);? 23:55:32 shachaf: You can apply the & operator to one, to get a pointer to the function. 23:55:41 -!- olsner has left ("Leaving"). 23:55:41 i really doubt that's portable, i just think it would be funny 23:55:47 fizzie: or you can do j. about anything else with it 23:55:48 -!- olsner has joined. 23:55:53 and get the same pointer?? 23:55:58 ... that was not the right key 23:56:23 int main() { typedef int foo(const char *); foo puts; puts("hello world"); return 0; } 23:56:33 shachaf: Yes. But the j. about anything would presumably act on the result of the conversion, not the actual function. 23:57:10 fizzie: right, i mean that doing & doesn't do you a w. lot of good compared to just letting the function decay 23:57:12 foo.c:10:1: warning: ISO C forbids conversion of function pointer to object poin 23:57:13 or does it?? 23:57:15 ter type 23:57:17 (apparently!) 23:57:21 Fiora: I think that's undefined if foo is a function since a function isn't a char 23:57:22 i mean, you can say sizeof &foo, i suppose 23:57:24 but at least in my gcc that's a pedantic 23:57:30 sorry, I meant *(char)*&foo 23:57:33 um 23:57:36 *(char*)&foo 23:57:42 Fiora: I was about to say that. You can't convert a function pointer to a void * either. 23:57:49 just cast it to uintptr_t or something first hth 23:57:50 and/or because of function pointers being weirder than pointers and not really convertible 23:57:53 that'll make it defined behavior again 23:59:52 You can't convert any pointer (in a defined way) to uintptr_t (if it even exists), just a void *.