00:02:06 `? stack stack 00:02:09 stack stack? ¯\(°​_o)/¯ 00:03:19 -!- bb010g has quit (Quit: Connection closed for inactivity). 00:03:32 -!- atrapado has quit (Quit: Leaving). 00:06:29 see funge98 spec hth 00:07:34 Blerg. How does one find out the size of C types when one is not in C? 00:08:32 I thought of a new elementary programming challenge 00:08:35 "Goldfish" 00:08:46 You take input 00:08:54 Put "Blub" between each word 00:09:38 And a certain number of words in, cut off the word halfway through and append "- OH MY *BLUB* GOD IT'S A *BLUB* CAT" 00:15:35 [wiki] [[ABCD]] http://esolangs.org/w/index.php?diff=44545&oldid=44544 * LegionMammal978 * (+25) 00:20:46 -!- FireFly has quit (Ping timeout: 246 seconds). 00:22:09 -!- heddwch has quit (Ping timeout: 265 seconds). 00:32:42 -!- doesthiswork has joined. 00:36:41 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 00:37:16 ♪ fish go bluuuub ♪ 00:44:01 -!- heddwch has joined. 00:44:22 -!- FireFly has joined. 00:47:57 -!- _denis_ has quit (Quit: Sto andando via). 01:04:45 > let f inp = let (xs,x) = (init &&& last) (words inp) in intercalate " *BLUB* " (xs ++ [take (length x `div` 2) x]) ++ "- OH MY *BLUB* GOD IT'S A *BLUB* CAT" in f "welcome to esolang everyone" 01:04:47 "welcome *BLUB* to *BLUB* esolang *BLUB* ever- OH MY *BLUB* GOD IT'S A *BLUB... 01:06:07 ?let goldfish inp = let (xs,x) = (init &&& last) (words inp) in intercalate " *BLUB* " (xs ++ [take (length x `div` 2) x]) ++ "- OH MY *BLUB* GOD IT'S A *BLUB* CAT" 01:06:09 Defined. 01:06:25 -!- somethingsomethi has joined. 01:06:39 -!- somethingsomethi has left. 01:07:05 @goldfish I am the walrus 01:07:05 Unknown command, try @list 01:07:09 ?goldfish I am the walrus 01:07:09 Unknown command, try @list 01:07:22 @call goldfish I am the walrus 01:07:22 Maybe you meant: tell roll 01:07:34 newsham: How do I call goldfish? 01:07:35 * oerjan swats hppavilion[1] -----### 01:07:35 > text $ goldfish "I am the walrus" 01:07:37 I *BLUB* am *BLUB* the *BLUB* wal- OH MY *BLUB* GOD IT'S A *BLUB* CAT 01:07:50 There we go 01:07:52 :) 01:08:34 hppavilion[1]: lambdabot doesn't allow user defining actual @commands 01:09:14 oerjan: Didn't think so 01:09:32 ?let only affects the environment used by > and @run 01:09:37 :t goldfish 01:09:38 String -> [Char] 01:09:45 and a couple others 01:09:53 ?let goldfish' = text . goldfish 01:09:54 Defined. 01:10:26 -!- boily has quit (Quit: SOPRANO CHICKEN). 01:11:09 > text $ goldfish' "I am the walrus" 01:11:10 Couldn't match type ‘Doc’ with ‘[Char]’ 01:11:10 Expected type: String 01:11:10 Actual type: Doc 01:11:24 I have no clue how this level of Haskell works xD 01:14:09 > goldfish' "you dont need text with this one" 01:14:10 you *BLUB* dont *BLUB* need *BLUB* text *BLUB* with *BLUB* this *BLUB* o- OH... 01:14:42 Oh 01:14:49 Duh xD 01:15:03 hppavilion[1], does i have an encoding in lambda calculus? 01:15:24 Sgeo: Yes, of course. Just not a well-known one. 01:15:32 Or, possibly, an at-all-known one 01:16:22 the i x = x S K one? 01:16:46 that's pretty trivial. 01:17:18 in fact it's right there on the Iota page. 01:17:32 oerjan: No. i the number 01:17:38 oh. 01:17:53 I asked him earlier to encode @ into λ-calculus as a partial joke 01:18:14 well first you need to encode complex numbers in general. 01:18:51 I think we still have 3 competing definitions of |a + b@| 01:19:01 (And two people making those definitions) 01:19:24 are they irishmen 01:19:34 At least one is Jewish 01:20:16 What’s @ there? 01:20:39 A number defined (or perhaps || redefined, to be more accurately possible) such that |@| = -1 01:21:07 ok good, the first google hit i found said "israelis" 01:21:30 i suppose you're not israeli though 01:23:06 (that i recall) 01:24:18 what i recall from that discussion is that you couldn't even decide to make it a proper ring :P 01:24:44 even though that _seems_ to be basically compatible with the premise. 01:25:10 well, technically anything that doesn't speak about || would be compatible 01:26:10 -!- FireFly has quit (Ping timeout: 272 seconds). 01:26:20 -!- heddwch has quit (Excess Flood). 01:26:30 -!- heddwch has joined. 01:27:37 Ring? 01:27:55 Ring ring ring ring, bananaphone 01:28:04 -!- FireFly has joined. 01:28:23 well you kept discussing what addition should do, which is really trivial if you assume a ring... 01:28:28 Sgeo: You know. A ring. Like, from ring theory 01:28:58 Aaa how do I find out how big size_t is? 01:29:07 Melvar: sizeof(size_t)? 01:29:07 also, it seems logical to make it a real vector space. 01:29:16 Or do you mean SIZE_T_MAX? 01:29:17 pikhq: I’m not writing in C. 01:29:29 Melvar: what language are you writing in? 01:30:03 oerjan, I haven't considered multiplication much, but I think |a + b@| is more... answerable than a + b@, like how you can't simplify a+bi 01:30:03 Well, so far really I’m not writing in any at all, but if I found a halfway promising route it would be Idris. 01:31:12 Sgeo: my intuition says that if you are including both i and @, and say that @^2 = 1 (i think that was suggested), then a + bi + c@ + di@ would be the general form of your numbers 01:31:31 making addition and multiplication obvious. 01:31:57 and then you just have to define || to fit reasonably. 01:32:13 (a b c d reals) 01:32:21 That makes sense, I think I've sort of been assuming that. That last part is what's tricky, and I'm not convinced that there's only one reasonable || definition 01:32:29 I can call C functions, but I can only marshal int, double, (char *), pointer, and uint{8,16,32,64}_t values and have to know which to use. 01:32:58 Melvar: well you are the idris expert here in the channel afaik 01:33:13 doesn't it have an ffi? 01:33:48 in which case either the ffi should have a way to tell, or you could use it to write a small C wrapper that did 01:34:07 hm i guess the latter wouldn't be a compile time result 01:34:13 I listed the available types just above. 01:34:52 well i'm pretty sure the C standard doesn't _require_ size_t to be any of them. 01:35:16 The C standard would permit size_t to be a uint80_t. 01:35:43 The C standard also does not require uint8_t, uint16_t, uint32_t, or uint64_t to exist. 01:35:59 although i vaguely assume uint32_t and uint64_t to be the most likely 01:36:30 !c printf("%d", sizeof(size_t)); 01:36:34 It has the pretty loose requirement that uint*_t exist if your system has a conforming type. :) 01:36:37 8 01:36:53 And you're correct, *in practice* uint32_t and uint64_t are the likely types. 01:37:20 With uint16_t much less likely but technically still possible, and that rounds up the ones you're realistically going to see. 01:37:50 Well, the uint types listed must exist to compile the idris C rts. 01:38:02 Sounds like a poorly thought out RTS. 01:39:08 Furthermore, I expect that any system on which it is possible to compile Idris will not only have those, but will also have size_t be one of those sizes. 01:39:11 :t Foreign.C.Types.CSize 01:39:13 Word64 -> Foreign.C.Types.CSize 01:40:03 i'm guessing that's Haskell's version 01:40:27 Well yes, POSIX requires the types to exist (and it's unlikely as hell that size_t will be a weird type in such a case). :) 01:42:06 ( [Int, Bits8, Bits16, Bits32, Bits64] 01:42:06 [Int, Bits8, Bits16, Bits32, Bits64] : List Type 01:43:29 Another telling thing: it says "pointer". C pointers do not necessarily have the same representation. 01:43:51 char* and void* have the same representation, and must be able to point to any object. 01:43:58 All other pointer types do not have this property. 01:45:06 (sizeof(double*) and sizeof(char*), say, don't even have to be the same) 01:45:20 It seems to be a (void *). 01:46:19 (C: the language that nobody actually understands! :P) 01:54:18 -!- bb010g has joined. 01:55:33 -!- adu has joined. 01:56:44 @type sizeOf 01:56:45 Not in scope: ‘sizeOf’ 01:56:45 Perhaps you meant one of these: 01:56:45 ‘IM.size’ (imported from Data.IntMap), 02:00:20 So, well, where do things like compilers with FFIs that provide for size_t get their info about how it needs to be dealt with? 02:05:26 libffi is a popular choice. 02:07:09 -!- bender| has joined. 02:12:51 :t sizeof 02:12:52 Not in scope: ‘sizeof’ 02:12:52 Perhaps you meant one of these: 02:12:52 ‘IM.size’ (imported from Data.IntMap), 02:14:32 <\oren\> I see. I have been informed that the french my dad speaks is not quebecois french, it is "horrible french" 02:14:49 <\oren\> this explains a lot 02:15:03 :P 02:16:00 <\oren\> XD 02:17:05 horriblois 02:44:20 -!- heroux has joined. 02:46:36 -!- hppavilion[1] has quit (Ping timeout: 272 seconds). 02:47:17 -!- doesthiswork has quit (Quit: Leaving.). 02:47:58 -!- doesthiswork has joined. 02:51:07 Isn't there some kind of deep reason you can have a system of imaginaries like 1 + i + j + k but not 1 + i + j? Because I imagine @ giving complications similar to the latter when mixed with normal imaginaries 02:51:18 I don't actually know what those complications are though 02:53:50 so the dilemma is whether |a+bi+c@+di@| should equal sqrt(a^2+b^2-c^2-d^2), equal sqrt((a-c)^2+(b-c)^2) or possibly something different? 02:55:04 I think I had a good reason for disliking the former, the latter could be simplified 02:55:15 Well not simplified, but differneized 02:56:24 Why don't I start like this: |(a+b@)(c+d@)| = |ac + (ad+bc)@ + bd@^2| 02:56:54 meh we don't really know |@^2| although = 1 seems reasonable 02:59:28 Under the |a+b@| = |a| - |b| we get (|a| - |b|)(|c| - |d|) = |ac| - |ad + bc| + |bd|? = |a||c| - |a||d| - |b||c| + |b||d| 02:59:29 also I think I heard that in quaternions k is just a notational convenience but is not any different from ij. 02:59:57 (Assuming |a||b| = |ab|) 03:00:20 That looks really wrong. 03:02:36 |ac| - |ad + bc| + |bd| = |ac| - |ad| - |bc| + |bd|; |ad + bc| = |ad| + |bc|; which is known incorrect 03:03:51 If |@| = -1 and |@@| = 1 and |ab| = |a||b| for a and b in c@mplexes, then |a+b@| = |a| - |b| is a bad definition. 03:03:58 We know something concrete, yay! 03:04:30 Let's see if I can plug in an example to the original equation to make it obvious 03:04:51 a = c = d = 1; b = -1 03:05:16 yes, can we recover |a+@b| = |a|-|b| for either pure imaginary or pure real numbers? 03:06:44 hmm |2-3| = |-1| = 1 03:07:08 meh don't feel like plugging it i 03:07:09 n 03:07:25 ok, only the positive numbers then? 03:07:34 How about that other definition, |a+b@| = 2a - |a+bi| 03:07:57 (Where a and b are real, so we can use abs of complex to mean "distance") 03:08:43 what is the rational behind it? 03:09:08 doesthiswork, imagining a and b as values along dimensions, and || as distance, except b contributes negatively 03:10:00 -!- hppavilion[1] has joined. 03:10:32 |a+bi| - 2|a-bi|... hmm 03:10:39 I originally worked it out with sqrt and squares 03:11:38 It should be in logs somewhere, but right now it looks a bit weird 03:11:42 I am haveing trouble imagining an orthogonal vector that decreases distance from the orgin 03:11:57 but that is just a failure of imagination 03:12:02 Sgeo: the problem with 1 + i + j is defining division, afair 03:12:49 other than that, any reasonable multiplication of the basis elements should work for a ring 03:13:15 Back to examining |a+b@| = 2a - |a+bi| 03:13:25 (reasonable: the multiplication gives a group on what you can reach with it) 03:13:39 |(a+b@)(c+d@)| = |ac + (ad+bc)@ + bd@^2| 03:14:03 well, for things like ij = -k or the like. it's probably complicated if you mix in addition there 03:14:41 (2a - |a+bi|)(2c - |c+di|) = |(ac... crud 03:15:22 Questionable assumption: |a + b@@| isn't necessarily |a+b| even if |@@| = 1, right? 03:15:23 Sgeo: oh hm there's an obvious property you _could_ try to get (it works for complex numbers): |zw| = |z||w| 03:15:45 i have my doubts it works here... 03:15:52 I assumed that before in my definition disproof for |a+b@| = |a| - |b| 03:16:24 if @@ = i (it doesn't obviously) |1 + i| != |1+1| 03:17:07 Oh you gave an assumption @@ = 1, so I can just append that to my above disproof 03:17:17 |a|^2=|a^2| so 1 is an very reasonable value for |@^2| 03:17:32 doesthiswork, but that's not the question 03:17:48 I know, I was talking to my self 03:17:53 Ah, sorry 03:18:23 I'm still several steps behind the channel 03:19:30 (2a - |a+bi|)(2c - |c+di|) = 2(ac + bd) - |(ac + bd) + (ad + bc)i| 03:20:36 Well the 4 vs 2 is scaring me a bit, but let's keep going 03:21:45 4ac - 2a|c+di| - 2c|a+bi| + |a+bi||c+di| = 2ac + 2bd - |(ac + bd) + (ad + bc)i| 03:23:57 2ac - 2a|c+di| - 2c|a+bi| = 2bd - |ac + bd + adi + bci| 03:24:14 I feel like I'm getting nowhere fast 03:26:46 doesthiswork: hey i'm even further back ok 03:27:03 * oerjan not going to try understanding the details 03:30:58 I wonder what max(@,-@) does 03:31:49 `? @ 03:31:50 ​@ is an OS made out of only the finest vapour. 03:32:21 |(ac + bd) + (ad + bc)i| = sqrt((ac + bd)^2 - (ad + bc)^2); sqrt((ac)^2 + 2abcd + (bd)^2 - (ad^2) - 2abdc - (bc)^2) = why do I do this to myself 03:33:17 sqrt((ac)^2 + (bd)^2 - (ad)^2 - (bc)^2) 03:33:38 This looks really wrong but it's not even the prior problem 03:38:14 does sqrt(@^2)=-1? 03:38:32 In the same way sqrt(1) = -1 03:39:12 Dealing with that is a good reason to avoid |a+b@| = sqrt(a^2 - b^2) as a definition 03:39:39 Because it only makes the inside negat... well if |@| = i instead of |@| = -1 that could be an approach 03:39:56 Then |@^2| = -1 03:42:20 I'll call it # such that |#| = i and #^2 = @ 03:43:09 Although it's hard to determine the sign of the sqrt function 03:43:31 But let's say we want to find |a + b@| = |... crud 03:45:40 2ac - 2a|c+di| - 2c|a+bi| = 2bd - |ac + bd + adi + bci| 03:48:21 2a|c+di| + 2c|a+bi| - 2ac = |(ac + bd) + (ad + bc)i| - 2bd 03:50:03 -!- TodPunk has quit (Read error: Connection reset by peer). 03:50:42 -!- TodPunk has joined. 03:51:18 if |@| = i instead, we'd have minkowski geometry. 03:51:41 which is a very respectable thing, although i'm not sure if it has a multiplication. 03:52:29 ! 03:53:31 it's basically |(a,b,c,d)| = sqrt(a^2 - b^2 - c^2 - d^2) 03:53:46 (in 4 dimensions, the most important one for physics) 03:57:12 -!- bender| has changed nick to bender. 03:57:34 -!- bender has changed nick to bender|. 03:57:52 -!- TodPunk has quit (Read error: Connection reset by peer). 03:58:16 -!- TodPunk has joined. 04:00:30 Woohoo I have an extra hour to do math before having to do work stuff 04:00:52 Although I might be slightly stumped right now 04:02:25 Tempted to plug in random numbers and see what happens 04:02:29 :t abs 04:02:30 Num a => a -> a 04:04:54 > let dist a b = sqrt (a^2 + b^2); f a b c d = 2 * a * dist c d + 2 * c * dist a b - 2 * a * c; g a b c d = dist (a * c + b * d) (a * d + b * c) - 2 * b * d in (f 1 -1 1 1, g 1 -1 1 1) 04:04:55 Could not deduce (Num a0) 04:04:55 from the context (Floating a, 04:04:55 Floating a6, 04:05:02 Bleh? 04:17:07 -!- ^v has joined. 04:30:56 > let dist a b = sqrt (a^2 + b^2); f a b c d = 2 * a * dist c d + 2 * c * dist a b - 2 * a * c; g a b c d = dist (a * c + b * d) (a * d + b * c) - 2 * b * d in (f 1 (-1) 1 1, g 1 (-1) 1 1) 04:30:59 (3.6568542494923806,2.0) 04:31:04 Sgeo: ^ 04:31:33 > 1 1 04:31:35 Could not deduce (Num a0) 04:31:35 from the context (Num a, Num (a -> t)) 04:31:35 bound by the inferred type for ‘e_111’: (Num a, Num (a -> t)) => t 04:31:45 oerjan, ty 04:31:59 And... that's not the answer I was hoping for 04:32:25 Although any of my algebra could be wrong too 04:36:42 boily: I think it's in Vorpal's Funge-98 interpreter <-- it was. it is fixed 04:36:48 -!- hppavilion[1] has quit (Ping timeout: 272 seconds). 04:36:56 bbl 04:49:07 Wonder if I can actually create a definition 04:49:17 -!- variable has joined. 04:49:44 Hmm, probably no 04:49:59 (I meant by using that rule that I expect to hold) 04:50:46 > 2^3 -- checking pow vs xor 04:50:47 8 04:56:59 * Sgeo eyes the @@=1 assumption suspiciously 04:58:17 @check \x y -> (x::Int) `xor` y == x^y 04:58:19 *** Failed! Falsifiable (after 1 test): 04:58:19 0 0 04:58:24 @check \x y -> (x::Int) `xor` y /= x^y 04:58:25 *** Failed! Exception: 'Negative exponent' (after 2 tests and 1 shrink): 04:58:26 1 -1 04:58:30 oops 04:58:43 @check \x y -> y>=0 => (x::Int) `xor` y /= x^y 04:58:43 .hs: 1: 14:Parse error: => 04:58:57 @check \x y -> y<0 || (x::Int) `xor` y /= x^y 04:58:59 +++ OK, passed 100 tests. 04:59:55 @check \x y -> y<0 || (x::Int) `xor` y /= x^y 04:59:57 +++ OK, passed 100 tests. 05:00:43 > 0^0 05:00:44 1 05:01:42 hmph it's not actually true 05:01:45 @check \x y -> y<0 || (x::Int) `xor` y /= x^y 05:01:47 +++ OK, passed 100 tests. 05:02:13 > ( \x y -> y<0 || (x::Int) `xor` y /= x^y ) 0 0 05:02:14 True 05:02:27 > ( \x y -> y<0 || (x::Int) `xor` y /= x^y ) 1 0 05:02:28 False 05:02:39 @check doesn't check enough 05:02:45 @check \x y -> y<0 || (x::Int) `xor` y /= x^y 05:02:46 +++ OK, passed 100 tests. 05:05:46 :t (Test.QuickCheck.=>) 05:05:47 Not in scope: ‘Test.QuickCheck.=>’ 05:06:46 @check \x y -> y>=0 ==> (x::Int) `xor` y /= x^y 05:06:46 : -1: -1:Ambiguous infix expression 05:07:05 @check \x y -> (y>=0) ==> ((x::Int) `xor` y /= x^y) 05:07:07 +++ OK, passed 100 tests. 05:09:06 @list check 05:09:07 check provides: check 05:09:10 @list scheck 05:09:11 No module "scheck" loaded 05:11:24 (2a - |a+bi|)(2c - |c+di|) = 2(ac + bd) - |(ac + bd) + (ad + bc)i| 05:12:56 @check \a b c d -> let dist a b = sqrt (a^2 + b^2) in (2 * a - dist a b) * (2 * c - dist c d) ==> 2 * (a * c + b * d) - dist (a * c + b * d) (a * d + b * c) 05:12:58 Couldn't match expected type ‘Test.QuickCheck.Safe.SProperty’ 05:12:58 with actual type ‘Bool’ In the second argument of ‘(*)’, namely ‘c’ In the f... 05:14:13 I have no idea how to check 05:14:47 -!- hppavilion[1] has joined. 05:19:52 -!- hppavilion[1] has quit (Ping timeout: 272 seconds). 05:20:47 -!- hppavilion[1] has joined. 05:26:46 Sgeo: the thing to the right of ==> should probably be a boolean expression 05:27:07 What do I put to the left of it? 05:27:10 also, the precedence of ==> seemed to require some parentheses 05:27:17 another boolean expression 05:27:25 @check \a b c d -> True ==> let dist a b = sqrt (a^2 + b^2) in (2 * a - dist a b) * (2 * c - dist c d) == 2 * (a * c + b * d) - dist (a * c + b * d) (a * d + b * c) 05:27:26 *** Failed! Falsifiable (after 2 tests and 1088 shrinks): 05:27:27 -0.24087198985222466 0.590250929928695 -1.0415408383336255 -0.16549717990989027 05:27:40 um you don't need ==> at all then 05:27:56 it's for when you have a prerequisite for the check 05:28:11 -!- doesthiswork has quit (Quit: Leaving.). 05:28:14 and you don't want the prerequisite failing to count as the whole failing. i assume. 05:28:17 hm... 05:28:29 @check \x -> False ==> x == 1 05:28:30 No instance for (Show prop0) arising from a use of ‘myquickcheck’ 05:28:30 The type variable ‘prop0’ is ambiguous Note: there are several potential ins... 05:28:31 oerjan, I learned @check by example not by real learning 05:28:38 * variable looks at lambdabot ! 05:28:40 @check \x -> False ==> (x::Int) == 1 05:28:41 No instance for (STestable Int) arising from a use of ‘==>’ 05:28:41 In the first argument of ‘(==)’, namely ‘False ==> (x :: Int)’ In the expres... 05:28:50 @check \x -> False ==> ((x::Int) == 1) 05:28:51 *** Gave up! Passed only 0 tests. 05:29:08 @check \x -> True ==> ((x::Int) == 1) 05:29:10 *** Failed! Falsifiable (after 1 test): 05:29:10 0 05:29:29 @check \x -> (x == 1 || x > 1e9) ==> ((x::Int) == 1) 05:29:30 No instance for (Fractional Int) arising from the literal ‘1e9’ 05:29:30 In the second argument of ‘(>)’, namely ‘1e9’ In the second argument of ‘(||... 05:29:41 @check \x -> (x == 1 || x > 1000000) ==> ((x::Int) == 1) 05:29:43 *** Gave up! Passed only 22 tests. 05:29:45 I wonder if there's a differnt definition for @^2 that would make it work 05:30:31 *as the whole succeeding 05:30:32 -!- evalj has joined. 05:31:03 :t (==>) 05:31:04 STestable prop => Bool -> prop -> Test.QuickCheck.Safe.SProperty 05:31:40 hm... 05:32:51 @check \x -> ((x::Int) < 5) ==> \y -> ((y::Int) < 5) ==> x+y < 9 05:32:52 Couldn't match expected type ‘Test.QuickCheck.Safe.SProperty’ 05:32:52 with actual type ‘Int’ In the second argument of ‘(+)’, namely ‘y’ In the fi... 05:33:07 @check \x -> ((x::Int) < 5) ==> \y -> ((y::Int) < 5) ==> (x+y < 9) 05:33:08 +++ OK, passed 100 tests. 05:33:39 so the thing to the right of ==> can be somewhat more, maybe anything you can pass to @check itself 05:34:19 which seems like it's nice to prune the search 05:38:27 ?type (==>) 05:38:28 STestable prop => Bool -> prop -> Test.QuickCheck.Safe.SProperty 05:38:49 -!- evalj has quit (Remote host closed the connection). 05:40:39 @check \a b c d -> let dist a b = sqrt (a^2 + b^2) in (2 * a - dist a b) * (2 * c - dist c d) == 2 * (a * c - b * d) - dist (a * c + b * d) (a * d + b * c) 05:40:41 *** Failed! Falsifiable (after 2 tests and 1085 shrinks): 05:40:41 0.47739896661811293 -1.171602104864355 -15.621137908887599 -0.406648332848909 05:42:07 -!- adu has quit (Quit: adu). 05:43:08 -!- mihow has joined. 05:46:30 -!- blurelIse has quit (Quit: I love my HydraIRC -> http://www.hydrairc.com <-). 05:47:01 <\oren\> > 冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死 05:47:02 Not in scope: 05:47:03 ‘冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死’ 05:47:19 <\oren\> wtf I didn't type a > 05:47:49 > let 湖 = (+) in 湖 3 5 05:47:51 8 05:48:54 > map isUpper "冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死" 05:48:55 [False,False,False,False,False,False,False,False,False,False,False,False,Fal... 05:51:36 > filter isUpper "冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死" 05:51:37 "" 05:52:29 \oren\: Unicode Lo category does not have a separate casing 05:54:12 -!- mihow has quit (Quit: mihow). 05:54:21 <\oren\> is that the same thing as saying "there's no uppercase and lowercase [hk]an[zj][ia]"? 05:55:10 <\oren\> (to cover hanzi, kanji, hanja) 05:55:11 so no "data" decls using chinese characters? 05:55:15 yes. 05:55:28 <\oren\> i see 05:55:29 and many other scripts 05:55:48 <\oren\> I thought they would simply alway be considered lowercase 05:56:16 <\oren\> or something 05:56:48 ?data T湖 = C犬 | C神 05:56:48 Unknown command, try @list 05:56:52 ?let data T湖 = C犬 | C神 05:56:53 Defined. 05:57:02 may seem so, but "uncased" script would be more appropriate 05:57:33 newsham: TLake = CDog | CGod? 05:57:48 ?let un湖 C犬 a b = a; un湖 C神 a b = b 05:57:49 Defined. 05:58:14 lifthrasiir: neat, reverse "dog" == "god" 05:58:17 good choice 05:58:22 i jsut randomly picked 3 05:58:38 newsham: heh, that's a good correspondence 06:00:07 <\oren\> newsham: you don't know you hkanzjia? 06:00:21 turns out: no 06:00:25 <\oren\> i see 06:01:19 the haskell capitalization rules seem to penalize those langauges that dont use caps 06:01:27 newsham: so does Ruby 06:01:50 what rules does ruby have for caps? 06:02:14 what do people usually do in that situation? 06:02:24 <\oren\> well just remember that to drink, you want the bottle with with 牛 on it, and not the one with 油 on it! 06:02:47 牛 is beer and 油 is arsenic 06:03:10 <\oren\> no, cow (milk), and oil respectively 06:03:21 -!- sc00fy has joined. 06:03:46 cow and milk use the same character? 06:03:52 -!- mihow has joined. 06:03:55 what's your poison? 06:04:10 <\oren\> 牛乳 = cow milk 06:04:50 <\oren\> so if you see any character but 牛 before 乳 you're not getting the right kind of milk 06:05:07 newsham: Ruby considers any uncased letters as lowercase, so they cannot be used as the first letter of class name etc. 06:06:11 do programmers prefix with a roman uppercase letter or something like that, in such situations? 06:06:27 ie C犬 06:06:31 they simply avoid using non-ASCII letters in the code. 06:07:16 <\oren\> yeah programs usually are written either with english or the romanization of the language 06:08:06 bummer 06:08:35 we should be giving them an easy prefix letter to override that caps rule. 06:08:47 like "words starting with . are considered upper case" or something 06:08:52 better, ditch caps rule 06:10:02 <\oren\> does parsing Haskell demand knowning what is a type versus variable name? 06:10:40 prob requires knowing what is a constructor 06:11:21 <\oren\> right s/type/constructor/ s/variable/function 06:11:30 \oren\: don't change me! 06:11:56 i'm not a number 06:12:01 i'm a free variable! 06:12:16 newsham: and I'm not? 06:12:18 how dare you 06:12:52 variable: you're always changing 06:13:03 newsham: I'm immutable 06:13:17 so you're not variable 06:13:28 sorry, i always mix you up with the variable you shadow 06:13:29 -!- variable has changed nick to constant. 06:13:33 i can never tell you guys apart 06:13:54 its true, he is constant.. constantly changing 06:14:02 <\oren\> thatsracist.gif 06:14:14 yeah, nothing stops an immutable variable from changing on you 06:14:41 unsafePerformConstChange 06:15:37 > let pi = 3 in 45 * pi / 180.0 06:15:38 0.75 06:16:49 <\oren\> > π 06:16:51 Not in scope: ‘π’ 06:17:22 <\oren\> > let π = pi in e ^ (π * i) 06:17:27 mueval-core: Time limit exceeded 06:17:38 <\oren\> wtf 06:18:19 <\oren\> wuddidijusdo.gif 06:18:29 you broke the math 06:19:27 <\oren\> > let ⯦ = 4 in ⯦ + 5 06:19:29 :1:5: lexical error at character '\11238' 06:19:39 <\oren\> fuck that 06:19:45 -!- mihow has quit (Quit: mihow). 06:20:22 <\oren\> oh wait that's one of my font's non-unicode characters 06:20:33 \oren\: it's the i that makes it not halt, it isn't actually the i you think 06:20:48 :t let π = pi in e ^ (π * i) 06:20:49 Expr 06:21:17 <\oren\> > let ❄ = 4 in ❄ + 5 06:21:19 :1:1: parse error in let binding: missing required 'in' 06:21:52 <\oren\> > let a = 4 in a + 5 06:21:54 9 06:21:56 -!- mihow has joined. 06:22:35 let a = 4 in a + a 06:22:41 > let a = 4 in a + a 06:22:43 8 06:22:47 oh cool 06:22:53 -!- JesseH has quit (Ping timeout: 252 seconds). 06:22:57 > let a = 4 let a = a+a 06:22:59 :1:1: parse error in let binding: missing required 'in' 06:23:33 <\oren\> > let ♨ = 4 in ♨ + ♨ 06:23:34 :1:1: parse error in let binding: missing required 'in' 06:23:53 why is 'in' required? 06:23:59 <\oren\> fuck you lamdabot why can't you parse a hot spring 06:24:49 it knows that after an expression it needs 'in' and then another expression, right? 06:25:13 <\oren\> > let ☃ = 4 in ☃ + ☃ 06:25:14 :1:1: parse error in let binding: missing required 'in' 06:25:19 \oren\, er, I don't think it supports unicode? 06:25:33 -!- mihow has quit (Client Quit). 06:25:43 <\oren\> > let 五 = 4 in 五 + 五 06:25:44 8 06:25:50 lolwhat 06:26:11 > let 職人 = fix in 職人 id 06:26:13 <\oren\> it supports unicode but only some characters. Wut. Duh. Fuk. 06:26:15 mueval-core: Time limit exceeded 06:26:44 <\oren\> also that last thing I typed had an in-joke 06:27:38 > isAlphaNum '☃' 06:27:40 False 06:28:00 > let x ☃ y = x + y in 3 ☃ 5 06:28:01 8 06:28:14 its not the unicodeness that was the problem 06:28:17 it was the alphanumness 06:28:32 <\oren\> OH! so haskell wants non-alnums to be operators not variables 06:28:43 yup 06:28:52 <\oren\> > let ᚴ = 4 in ᚴ + ᚴ 06:28:53 8 06:29:07 <\oren\> runes are letters 06:30:11 <\oren\> > ⅚ 06:30:12 :1:1: lexical error at character '\8538' 06:30:31 <\oren\> hmm but it doesn't know what five sixths it 06:31:45 <\oren\> > let ⅚ = 4 in ⅚ + ⅚ 06:31:46 :1:5: lexical error at character '\8538' 06:32:25 <\oren\> > let a⅚ = 4 in a⅚ + a⅚ 06:32:26 8 06:33:10 > isAlphaNum '⅚' 06:33:11 True 06:33:26 ?let ⅚ = 5%6 06:33:26 Parse failed: Illegal character ''\8538'' 06:33:40 > isNum '⅚' 06:33:40 <\oren\> a variable can't begin with a number apparently 06:33:41 Not in scope: ‘isNum’ 06:33:58 > isDigit '⅚' 06:33:59 False 06:34:33 > isAlpha '⅚' 06:34:34 False 06:34:44 -!- mihow has joined. 06:34:52 <\oren\> > isNumeric '⅚' 06:34:53 Not in scope: ‘isNumeric’ 06:34:59 <\oren\> > isNumer '⅚' 06:35:00 Not in scope: ‘isNumer’ 06:35:00 Perhaps you meant ‘isNumber’ (imported from Data.Char) 06:35:05 <\oren\> > isNumber '⅚' 06:35:06 True 06:35:13 why is 'in' required? <-- it's not ambiguous without a separator. 06:35:37 did you mean it's ambiguous without a separator ? 06:35:41 "Note that numeric digits outside the ASCII range are selected by this function but not by isDigit. Such digits may be part of identifiers but are not used by the printer and reader to represent numbers. 06:35:44 er yes 06:35:49 says 'isAlphaNum' doc 06:36:00 > let i = sin in 3 + i 5 06:36:02 2.0410757253368614 06:38:28 Maybe I'm approaching this wrong, and what I really need to do is find a sane definition of |a + b@ + c@^2| 06:38:38 That is compatible with whatever definition I have in mind 06:38:40 <\oren\> > let x ☭ y = (x + y)/2 in 4 ☭ 7 06:38:41 5.5 06:40:54 |b@ + c@^2| = |@||b+c@| = -|b+c@| 06:42:06 If @^2 = 1, then |b@ + c| = -|b+c@|, which is... I can't tell if that's exactly a property I want or if it's garbage 06:43:13 b = c = 1, |@ + 1| = -|@ + 1| ? 06:44:46 That definitely doesn't work with my dimensional definition 06:49:18 -!- J_Arcane has quit (Ping timeout: 265 seconds). 06:57:47 -!- GoToTell has joined. 06:57:53 |a + b@| = |#||a/# + b#| = i*??? 07:00:47 What happens if I pretend I can do this? |a + b@| = |a + b##| = sqrt(a^2 - (b#)^2) = sqrt(a^2-@b^2) 07:01:57 If @ can signal || to produce negative, then why can't it signal "sqrt" in some similar way? 07:02:23 I don't know how to take the square root of c@mplex numbers 07:02:57 what is # ? 07:03:05 |#| = i 07:03:29 Apparently this is a reasonable thing that occurs in real math. 07:03:44 Except probably not that symbol 07:04:51 |@| = sqrt(-@) = i*# = not what we wanted.... unless i# is inexplicibly -1 07:07:14 -!- sc00fy has quit (Ping timeout: 260 seconds). 07:07:42 wat 07:18:56 -!- ^v has quit (Remote host closed the connection). 07:18:59 for square root of complex number, (a+bi)^2 = c+di <=> a^2 - b^2 = c, 2ab = d; just solve that hth 07:24:38 -!- hppavilion[1] has quit (Ping timeout: 272 seconds). 07:25:03 [wiki] [[Esoteric algorithm]] http://esolangs.org/w/index.php?diff=44546&oldid=43644 * Oerjan * (+0) case 07:27:45 [wiki] [[Dropsort]] http://esolangs.org/w/index.php?diff=44547&oldid=43646 * Oerjan * (+16) case, sp, fmt 07:31:12 instead of dropping the elements, add them to a new list 07:31:20 dropsort again, then merge 07:31:25 [wiki] [[User talk:InputUsername]] http://esolangs.org/w/index.php?diff=44548&oldid=43652 * Oerjan * (-1) Poor guy languishing in the wrong channel 07:33:37 [wiki] [[Talk:Langar.io]] http://esolangs.org/w/index.php?diff=44549&oldid=43654 * Oerjan * (+48) unsigned, also you do know people get told about new messages in their user talk page, right? 07:34:15 izabera: 1. how do you merge them? 2. that'll ruin runtime 07:34:41 merge them like in merge sort 07:34:52 see 2. then 07:35:01 i wasn't 100% serious 07:35:02 it is basically a slower version of mergesort 07:35:38 particularly with a list that starts in reverse order 07:37:05 it's faster if the data is almost sorted 07:38:54 -!- aretecode has quit (Read error: Connection reset by peer). 07:48:55 -!- aretecode has joined. 07:52:18 [wiki] [[Brainfuck Sharp]] http://esolangs.org/w/index.php?diff=44550&oldid=43921 * Oerjan * (+30) Some proofreading 07:55:25 -!- constant has quit (Ping timeout: 246 seconds). 07:56:13 -!- contrapumpkin has joined. 07:58:56 -!- copumpkin has quit (Ping timeout: 250 seconds). 07:59:06 [wiki] [[Talk:WASD]] http://esolangs.org/w/index.php?diff=44551&oldid=43671 * Oerjan * (+46) ominous lack of sign 08:03:28 -!- oerjan has changed nick to oerjan_. 08:03:34 boo! 08:03:38 -!- oerjan_ has changed nick to oerjan. 08:22:40 [wiki] [[Talk:Brainfact]] M http://esolangs.org/w/index.php?diff=44552&oldid=43692 * Oerjan * (+49) unsigned 08:24:29 ^ul (a(:^)*S):^ 08:24:30 (a(:^)*S):^ 08:27:27 [wiki] [[Talk:Smallfuck]] M http://esolangs.org/w/index.php?diff=44553&oldid=43698 * Oerjan * (+51) unsigned 08:29:00 -!- Patashu has joined. 08:32:28 hmm, what's the url of ayacc? 08:33:01 didn't ais523 paste some darcs thing 08:34:03 i found the discussion of VCS war very ironic after it, anyway 08:34:27 hm wait, that may have been underlambda 08:34:51 it's somewhere on the nethack4 site, anyway, i think he keeps most his stuff there 08:35:35 he had a plain download url. I have the url at home, but not here 08:35:39 `? ayacc 08:35:39 ayacc? ¯\(°​_o)/¯ 08:41:07 oh wait, maybe it's in the nethack4 or the c-intercal source code 08:41:53 -!- mihow has quit (Quit: mihow). 08:42:58 [wiki] [[InDec]] M http://esolangs.org/w/index.php?diff=44554&oldid=43706 * Oerjan * (+3) sp, fmt 08:44:59 [wiki] [[ZeptoBasic]] M http://esolangs.org/w/index.php?diff=44555&oldid=43707 * Oerjan * (+8) links 08:57:11 [wiki] [[Ultimate Programming Language to Take Over a Prison, Then He World]] http://esolangs.org/w/index.php?diff=44556&oldid=43725 * Oerjan * (+25) some proofreading, and vague unease 09:00:20 [wiki] [[Special:Log/move]] move * Oerjan * moved [[Non-Specific Assignment]] to [[Non-specific assignment]]: Not a proper name 09:00:26 -!- heddwch has quit (Read error: Connection reset by peer). 09:01:20 -!- heddwch has joined. 09:04:02 b_jonas: http://nethack4.org/media/alex/ayacc/ayacc.pl if that's still relevant. 09:04:07 -!- J_Arcane has joined. 09:04:44 fizzie: thanks 09:06:05 `le/rn ayacc/ayacc is ais523's yacc parser generator implementation, get it from http://nethack4.org/media/alex/ayacc/ayacc.pl 09:06:07 Learned «ayacc» 09:06:11 `? ayacc 09:06:12 ayacc is ais523's yacc parser generator implementation, get it from http://nethack4.org/media/alex/ayacc/ayacc.pl 09:07:18 [wiki] [[Non-specific assignment]] http://esolangs.org/w/index.php?diff=44558&oldid=44557 * Oerjan * (+0) case and grm 09:10:25 [wiki] [[Esolang talk:Sandbox]] http://esolangs.org/w/index.php?diff=44559&oldid=43717 * Oerjan * (-703) C'est vrai! 09:14:14 I remember when some of my friends made a roguelike for Ludum Dare 09:14:25 It had, iirc, "Dutch" as a race 09:18:28 And the name generator gave you the same name ("Colin") unless you were a specific race/class combination 09:21:48 Yeah, the races were Human, Dutch, Elf, Dwarf, Halfling, and Quarterling, and the classes were Miner, Attorney, Clog Maker, Huntsman, Chef, Tourist, and Dog 09:23:19 :D 09:23:32 [wiki] [[User:Zzo38/FurryScript]] http://esolangs.org/w/index.php?diff=44560&oldid=43724 * Oerjan * (+8) wayback 09:23:42 i'd love to play a dwarven attorney 09:23:58 If you played as a Human Attorney and asked for a random name, it called you "Javert" 09:24:57 surely that should be an inspector 09:25:32 There isn't an inspector class 09:27:45 [wiki] [[Object oriented thue]] http://esolangs.org/w/index.php?diff=44561&oldid=43728 * Oerjan * (+0) /* External Resources */ casus belli 09:32:08 Human attorney, Dutch clog maker, elven huntsman, dwarven miner, halfling chef and quartering... I-don't-know-what, for maximum typecasting. 09:33:00 A quarterling is like a halfling but even more so 09:33:23 [wiki] [[Glypho]] M http://esolangs.org/w/index.php?diff=44562&oldid=43733 * Oerjan * (+7) links 09:34:28 The mobs in the game were hedgehog, squirrel, duck, goose, orc, cave pirate, wolfman, fallen angel, and dragon 09:35:42 In ascending order of difficulty? 09:35:47 Yes 09:36:16 -!- Phantom_Hoover has joined. 09:36:29 Source code is here: https://github.com/HackSoc/LudumDare29 09:37:03 And we learnt the valuable lesson that a roguelike in C isn't very good for ludum dare when your build instructions are "make" 09:37:21 this is a quarterling hth http://yafgc.net/comic/2443-halfs/ 09:38:47 i see today's comic is up too, and confirming the speculation i read in the forum... 09:39:57 -!- mauris has joined. 09:44:55 -!- FreeFull has quit (Ping timeout: 252 seconds). 10:02:02 -!- AnotherTest has joined. 10:06:00 [wiki] [[Retina]] M http://esolangs.org/w/index.php?diff=44563&oldid=43939 * Oerjan * (+0) section name 10:21:45 -!- oerjan has quit (Quit: Later). 10:34:48 -!- boily has joined. 10:42:08 -!- mroman_ has joined. 10:42:45 How come to average number to reach 1.0 from 0.0 by adding a random number between 0..1 is not 2? 10:42:53 *average number of steps 10:43:20 It isn't? 10:43:23 No. 10:43:27 It's e^1 10:43:31 Huh 10:44:04 double d = 0.0; while(d < 1.0) { d += rnd(); steps++; } 10:44:08 ^- like that 10:44:13 average number of steps will be e 10:46:09 there are much more floats between 0 and 0.05 tthan between 0.05 and 0.1, arenkt they? 10:46:32 mroman_: well, it's more than 2 because the amount that you overshoot the target (1) is lost. 10:46:51 also that one 10:47:09 e sounds reasonable because of the distribution of floats to me 10:47:35 http://codepad.org/gbrKc3dw 10:48:07 (lost compared to just adding rnd and checking when you jump across a natural number) 10:49:07 -!- Frooxius has joined. 10:49:45 The expected value of rnd() is 0.5. So the sum of two rnd() is expected to be 1. 10:50:00 Either it has something to do with the float/double data types 10:50:11 or it's something else :) 10:50:20 (or possibly the rnd() function itself) 10:51:37 but it's too close to e to be a coincidence :) 10:53:19 shachaf : ok, ty 10:56:07 but yeah, you loose the overshoot 10:56:09 mroman_: yes, it is e; the probabilities that you're still below 1 after 0,1,2,...,k steps are 1,1,1/2,...,1/k!. 10:56:16 if you'd do an average of rnd()+rnd() you'd get 1. 10:58:03 In fact for a threshold 0 <= t <= 1, the expected number of steps to exceed t is e^t. But for t>1 it gets messy. 10:59:36 -!- sc00fy has joined. 11:01:09 the possible sums 0 > n > 4 that's equals or exceeds 4 is: 1111 1112 1113 112 113 122 123 13 22 23 33 11:01:50 30 steps in total, divided by 11 possibilities = 2.7272727272727272727272727272727 11:02:08 GoToTell: that's for integers, I think the problem is for reals 11:02:32 2.7272 looks like almost e though 11:03:02 it will approach the same avg steps for reals for larger and larger integers. 11:03:46 GoToTell : `0 > 4' ? 11:04:10 0 > n > 4 11:04:49 obviously `n' can't *both* be greater than `4' *and* lesser than `0' .. 11:05:19 Dammit. 11:05:34 Symbol blindness. My apologies. 11:05:46 0 < n < 4 11:06:08 fungot: so what do you know about exponential growth? 11:06:08 int-e: my mistake, the srfi site. really great to see a benchmark 11:06:16 ^style 11:06:16 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube 11:06:51 ^style alice 11:06:51 Selected style: alice (Books by Lewis Carroll) 11:06:58 fungot: bread or taxes? 11:06:58 int-e: at last the post shall carry, when thirteen days are gone and past of fnord. " for any one with true fnord fnord, fnord, fnord, 11:07:22 oh well it was worth a try 11:07:24 ^style irc 11:07:25 Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams) 11:08:10 where is the oots style from? 11:10:35 ^style oots 11:10:35 Selected style: oots (Order Of The Stick) 11:10:39 ^style irc 11:10:40 Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams) 11:10:52 myname: this wiki, I'd assume: http://oots.wikia.com/wiki/New_Edition 11:11:01 okay 11:11:20 (which has transcripts of the comics as you can see in that link) 11:12:56 Yes, I think I scraped it from some wiki. 11:13:09 ^style oots 11:13:09 Selected style: oots (Order Of The Stick) 11:13:13 fungot: What do you sound like? 11:13:13 fizzie: was that supposed to get you down here. 11:13:27 fungot: No, and I think that's probably a direct quote. 11:13:27 fizzie: as the shrew! even i don't get to live. your trial and then, gods willing, for that kind of stuff, i figured that one out on my own, but 11:13:37 fungot: But what? 11:13:37 fizzie: you would probably have to skip the combat dialogue. someone hand that i think, " hmm, i think, " hmm, i think that i shall i prepare " roy" to live. 11:20:38 fungot: hmm, I think ♪ hmm, I think ♪ 11:20:38 boily: i get to go. y'know, the rune over behind xkyon's throne labeled " castle blowing her cover. 11:29:12 -!- boily has quit (Quit: TRANSFINITE CHICKEN). 11:29:12 -!- TodPunk has quit (Read error: Connection reset by peer). 11:29:39 -!- TodPunk has joined. 11:29:43 -!- Taneb has changed nick to nvd. 11:29:48 -!- nvd has changed nick to Taneb. 11:37:35 meanwhile, new OotS strip today 11:38:09 . o O ( `olist $N+1 ) 11:42:18 -!- GoToTell has quit (Quit: HydraIRC -> http://www.hydrairc.com <- Like it? Visit #hydrairc on EFNet). 11:59:12 -!- sc00fy has quit (Ping timeout: 264 seconds). 11:59:19 . o O ( help ) 12:01:12 . o O ( In your thoughts, you're all alone. ) 12:15:28 Blarf. Is there any spec on the implementation of wait status manipulation macros, or can they do effectively anything? 12:17:27 POSIX guarantees a number of things about them. 12:17:34 "Each of the following statements shall apply to all macros unless explicitly stated otherwise: 12:17:37 Any definition of an object-like macro in a header shall expand to code that is fully protected by parentheses where necessary, so that it groups in an arbitrary expression as if it were a single identifier. 12:17:41 All object-like macros listed as expanding to integer constant expressions shall additionally be suitable for use in #if preprocessing directives. 12:17:44 Any definition of a function-like macro in a header shall expand to code that evaluates each of its arguments exactly once, fully protected by parentheses where necessary, so that it is generally safe to use arbitrary expressions as arguments. 12:17:48 Any definition of a function-like macro in a header can be invoked in an expression anywhere a function with a compatible return type could be called." 12:17:58 I think point #3 is what you might be most interested about. 12:19:07 (POSIX, System Interfaces > General Information > Use and Implementation of Macros.) 12:21:31 Okay, but that’s about macros in general. The structure of the status value is not specified, I assume. 12:22:38 -!- MoALTz_ has joined. 12:23:56 The problem being of course that I can’t invoke a macro from non-C code. 12:24:38 WEXITSTATUS is always the low-order 8 bits of the status value, but that's all you get. 12:24:52 oωo? 12:25:16 Not very helpful, perhaps, because the WIFEXITED test isn't specified, and WEXITSTATUS is only relevant if that is true. 12:25:39 -!- MoALTz has quit (Ping timeout: 244 seconds). 12:26:21 Oh, maybe I read the documentation of WEXITSTATUS wrong, sorry. 12:26:42 I’m pretty sure that’s referring to the low bits of the value the program returned, not of the wait status. 12:26:46 Yes. 12:27:09 In particular, my system has “#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)”. 12:27:21 Yes, I just read it too quickly. 12:28:09 But there's a guarantee about the value 0, so if you're okay with just differentiating "terminated normally with a return value of 0" from "everything else". 12:28:18 -!- Patashu has quit (Ping timeout: 260 seconds). 12:28:50 Oh, now that sounds interesting. 12:29:21 "The value stored at the location pointed to by stat_loc shall be 0 if and only if the status returned is from a terminated child process that terminated by one of the following means: [three reasonable things]" 12:30:54 The "everything else" bucket does include "still running" as well as all the possible different ways of failing, though. 12:32:42 It’s a good start, since it allows me to at least tell if nothing went wrong with a system() call. 12:41:25 * Melvar gets ideas about using libclang to get at the expansions of the macros and then interpret them, but that would require being able to create callbacks, because you can’t traverse a clang AST normally. 12:41:51 -!- FreeFull has joined. 12:47:14 -!- TieSoul has joined. 12:51:38 -!- TieSoul has quit (Ping timeout: 260 seconds). 12:52:11 -!- TieSoul has joined. 13:00:47 -!- doesthiswork has joined. 13:19:45 -!- doesthiswork1 has joined. 13:19:45 -!- doesthiswork has quit (Read error: Connection reset by peer). 13:20:25 -!- AnotherTest has quit (Ping timeout: 244 seconds). 13:22:05 -!- `^_^v has joined. 13:27:22 -!- AnotherTest has joined. 13:53:42 -!- theprobist69420 has joined. 13:53:47 -!- theprobist69420 has quit (Read error: Connection reset by peer). 13:58:22 -!- Frooxius has quit (Ping timeout: 246 seconds). 14:21:11 -!- sc00fy has joined. 14:26:03 -!- sc00fy has quit (Ping timeout: 265 seconds). 14:26:54 -!- doesthiswork1 has quit (Quit: Leaving.). 14:31:26 -!- oerjan has joined. 14:42:00 -!- AnotherTest has quit (Ping timeout: 265 seconds). 15:08:37 thinking about the dropsort thingy 15:08:56 instead of adding them to a list, add them to a list in the correct order 15:09:21 like the insertion sort thingy 15:09:42 and do this for the first, say, 20 elements 15:09:46 then add them to a new list 15:10:09 so you end up with several small sorted lists 15:10:13 and you can merge them 15:11:09 how awful is that? 15:13:18 `olist 1007 15:13:20 olist 1007: shachaf oerjan Sgeo FireFly boily nortti 15:19:03 izabera: that's essentially mergesort 15:19:20 yes but the first part is faster 15:19:45 I think it'd still work out O(nlogn) 15:20:30 well of course.. 15:23:08 If you make the lists for as long it's ascending/descending, then you get GHC's sort function 15:23:45 -!- mroman_ has quit (Quit: Lost terminal). 15:30:58 -!- FireFly has quit (Ping timeout: 246 seconds). 15:31:09 øøh list 15:31:18 -!- heddwch has quit (Ping timeout: 265 seconds). 15:34:14 -!- XorSwap has joined. 15:36:01 shachaf: why int-e would _allude_ to `olist without actually doing it... maybe he's turned into a vampire. 15:36:27 -!- bender| has changed nick to bender. 15:36:46 well, neither int-e nor b_jonas are on the list 15:36:54 shocking 15:36:56 but i admit it looks bad. pretty suspicious 15:37:14 -!- FireFly has joined. 15:37:22 -!- heddwch has joined. 15:38:29 which list? 15:39:24 `? olist 15:39:25 Update notification for the webcomic Order of the Stick. http://www.giantitp.com/cgi-bin/GiantITP/ootscript 15:40:17 nostalgia time is over 15:40:21 `` sed -i 's#cgi-bin.*#comics/ootslatest.html#' wisdom/olist 15:40:23 No output. 15:42:37 -!- bender has quit (Quit: [May the Kool Klocks Klan be with you!]). 15:43:01 oh, that 16:03:37 -!- XorSwap has quit (Quit: Leaving). 16:05:40 \oren\: I see you've added more characters. but the green vs white is inconsistent again. 16:06:57 \oren\: also, it looks as if either some of the characters in the kanji&hanzi region of the sample page were either of the wrong width or substituted from another font 16:07:10 because they don't line up to a nice grid 16:07:22 or it could be just that the font is older than page 16:15:07 -!- atrapado has joined. 16:20:21 -!- AnotherTest has joined. 16:22:07 -!- mihow has joined. 16:23:57 Taneb: Haneb 16:24:04 hellochaf 16:24:18 what do you think of this olist 16:24:58 I think that it's an olist 16:26:08 are you a d&d rules expert 16:26:16 shouldn't what's-his-name be dead by now 16:29:18 it's just a flesh wound 16:30:26 negative hit points? 16:30:33 this game is bizarre 16:32:39 -!- hppavilion[1] has joined. 16:32:51 I would like to see LISP based on another structure besides Lists. 16:33:03 Table is sort of like that for Associative Arrays, I suppose 16:33:19 -!- bb010g has quit (Quit: Connection closed for inactivity). 16:33:42 shachaf: in 4e, you can survive up to negative half your health 16:33:51 (rounded towards zero) 16:33:56 this is 3.5e 16:34:06 does it only go to -10 or something? 16:34:32 also did this harm bring what's-his-name to 1 hp 16:34:33 I don't know 3.5e 17:01:19 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 17:06:15 can it go to -11 if you get a spinal tap 17:06:34 Man, I hope so 17:15:21 > goldfish' "my amp goes to eleven" 17:15:23 Not in scope: ‘goldfish'’ 17:16:49 alas, lambdabot has memory like a ... 17:28:52 -!- hppavilion[1] has joined. 17:29:23 like an arrow 17:29:26 otherwise lambdabot would be insane by now 17:30:14 exsanity quodlibet 17:30:23 exinsanity 17:39:53 -!- sc00fy has joined. 18:11:14 -!- mauris_ has joined. 18:13:19 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 18:14:40 -!- mauris has quit (Ping timeout: 265 seconds). 18:16:27 -!- gamemanj has joined. 18:20:17 -!- bb010g has joined. 18:22:09 -!- hppavilion[1] has joined. 18:30:11 -!- oerjan has quit (Quit: Gnight). 18:30:20 -!- TieSoul has quit (Read error: Connection reset by peer). 18:30:59 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 18:32:04 -!- hppavilion[1] has joined. 18:44:03 -!- JesseH has joined. 18:45:12 Anyone on? 18:47:35 `echo `whoami` is on 18:47:36 ​`whoami` is on 18:47:39 :( 18:48:27 `whoami 18:48:28 whoami: cannot find name for user ID 5000 18:48:42 `` wc -l /etc/passwd 18:48:43 wc: /etc/passwd: No such file or directory 18:49:29 hah 18:49:43 no passwd file = no sudo, I presume 18:50:02 at least, that would make sense 18:55:33 -!- mauris_ has changed nick to mauris. 19:02:52 -!- ^v has joined. 19:05:19 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 19:18:36 `` who am i 19:18:37 No output. 19:24:09 `` can i condemn this man to slavery 19:24:10 bash: can: command not found 19:31:04 -!- lemurian has joined. 19:35:50 -!- mihow has quit (Quit: mihow). 19:49:11 -!- hppavilion[1] has joined. 19:53:58 -!- glowcoil has joined. 19:54:34 [wiki] [[Special:Log/newusers]] create * Zachgates * New user account 19:58:01 -!- mihow has joined. 19:58:59 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 20:00:07 -!- qwertyo has joined. 20:05:03 -!- qwertyo has quit (Quit: Leaving). 20:14:44 -!- mauris has quit (Read error: Connection reset by peer). 20:17:21 -!- mauris has joined. 20:19:15 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 20:29:45 no passwd file = no sudo, I presume <-- it runs in some sort of container too iirc. It used to use User mode linux, not sure it it migrated to something more modern or not 20:35:08 -!- hppavilion[1] has joined. 20:36:12 Still UML. 20:36:58 (The sandbox itself is called "UMLBox".) 20:37:48 fizzie, I know, I use it for another purpose myself 20:38:34 fizzie, I actually run apparmor + umlbox to try to protect against bugs in umlbox as well 20:43:20 -!- bb010g has quit (Quit: Connection closed for inactivity). 20:49:03 -!- danofthedeep has joined. 20:53:14 -!- Phantom__Hoover has joined. 20:55:31 -!- gamemanj has quit (Quit: Leaving). 20:56:57 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 20:57:59 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 20:58:59 -!- hppavilion[1] has joined. 20:59:37 @tell oerjan yafgc is a drug, you should warn people before posting links like that 20:59:37 Consider it noted. 21:06:24 -!- `^_^v has quit (Ping timeout: 255 seconds). 21:08:49 -!- Patashu has joined. 21:12:46 -!- MoALTz_ has quit (Quit: Leaving). 21:14:57 -!- sc00fy has quit (Ping timeout: 255 seconds). 21:22:22 uGH 21:22:28 *Ugh 21:24:16 I'm modifying a stripped-down variant of a toy language called "IMP" by Jay Conrod (http://www.jayconrod.com/posts/37/a-simple-interpreter-from-scratch-in-python-part-1) and I'm trying to implement operator right associativity for a recently-added ^ operator (which I know is usually bitwise xor in programming, but I think it makes more sense to use it as exponentation for arithmetic). I have NO clue how to do it. 21:28:39 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 21:29:26 -!- hppavilion[1] has joined. 21:29:56 -!- lemurian has quit (Ping timeout: 265 seconds). 21:31:24 Anyone have any ideas? 21:32:24 How are you parsing? 21:32:43 Melvar: Combinators. How else? xD 21:33:05 I'm a n00b, and it's based largely on the work of someone else who does parsers, so 21:33:16 (who used parser combinators) 21:33:23 Well, how are you doing the operators in it? 21:33:47 It' someone else's work, that I just barely understand 21:33:58 The operator parser is produced with a FOR loop 21:34:33 That produces a series of EXP parsers (which generate lists of things separated by other things) with ALTERNATE parsers separating them, such as to produce operator precedence 21:35:22 I tried something that I doubted would work, but it worked better than I thought. That is, instead of crashing or producing random answers, it did absolutely nothing 21:36:28 I may have to produce a "REVEXP" combinator that works in reverse 21:42:55 I'm now going to make a language called "MegaStackLang", which should basically be the most powerful RPN language ever made. 21:43:01 Sort of like PostScript 21:43:25 -!- atrapado has quit (Quit: Leaving). 21:44:04 With FOR loops and all these nice things 21:44:27 ) x 21:44:32 huh 21:44:35 ( x 21:44:35 No such variable x 21:45:11 what's that apl/j like language of the guy that used to do stuff here? :s 21:45:28 -!- Patashu has quit (Ping timeout: 246 seconds). 21:48:33 hppavilion[1]: Will it allow a foreach-until loop? 21:48:53 Melvar: Never head of that loop 21:48:58 But probably yes 21:49:08 -!- mihow has quit (Quit: mihow). 21:50:50 Because I once got to use this crazy forth variant that allowed any loop opener to be used with any loop closer, and what I was doing was most easily expressed by opening with foreach and closing with until. 21:55:58 -!- glowcoil has quit (Quit: Connection closed for inactivity). 21:58:41 -!- danofthedeep has quit (Quit: My Mac has gone to sleep. ZZZzzz…). 22:00:58 -!- danofthedeep has joined. 22:04:12 SO my syntax is fairly simple 22:04:34 hppavilion[1]: Okay, so, the right-associative operator should be doable without Exp, because Exp is meant to avoid left-recursion, but you can parse a right-associative operator with right-recursion. 22:05:11 It's a standard stacky lang with the added part where {...code...} is lazily evaluated (that is, it's pushed on the stack to be evaluated later) 22:06:08 (This is for MegaStackLang) 22:09:59 -!- danofthedeep has quit (Quit: My Mac has gone to sleep. ZZZzzz…). 22:10:59 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 22:26:01 -!- Frooxius has joined. 22:30:23 -!- sc00fy has joined. 22:38:25 -!- hppavilion[1] has joined. 22:42:39 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 22:53:57 -!- mauris has quit (Ping timeout: 255 seconds). 23:11:53 -!- danofthedeep has joined. 23:17:21 -!- erdic has quit (Quit: leaving). 23:17:36 -!- hppavilion[1] has joined. 23:19:03 -!- erdic has joined. 23:29:11 It would be great to have a language where <<<<<<< etc. are valid identifiers, to make merges difficult. 23:30:54 [ 'myname: this one?' 23:30:54 FireFly: myname: this one? 23:31:11 i mean common rather than valid 23:31:13 Although that is J, not J-like 23:34:45 > let (<<<<<<<) = (*) in 3 <<<<<<< 5 23:34:46 15 23:35:43 Yes. 23:46:13 -!- sc00fy has quit (Ping timeout: 246 seconds). 23:47:06 -!- Phantom___Hoover has joined. 23:49:50 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).