00:08:52 fizzie, the chief problem with rewriting your opponent in redcode is that it's extremely difficult to manipulate the actual instruction part 00:10:50 like if you have mov b, 30 at some address or whatever, it's easy to read, write and do logic on the operands, but the 'mov' part itself can only be written by copying a preexisting mov instruction from elsewhere over that cell 00:11:19 and to 'read' it, i.e. perform useful logic based on the operation in a given instruction, i don't even know 00:15:06 -!- Melvar has quit (Ping timeout: 250 seconds). 00:15:34 -!- Melvar has joined. 00:16:32 -!- Phantom_Hoover has quit (Remote host closed the connection). 00:23:03 -!- Lord_of_Life_ has joined. 00:24:47 -!- Lord_of_Life has quit (Ping timeout: 240 seconds). 00:25:25 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 00:33:36 -!- oerjan has joined. 00:39:29 -!- housecarpenter has quit (Read error: Connection reset by peer). 00:39:56 -!- housecarpenter has joined. 00:42:56 -!- housecarpenter has quit (Read error: Connection reset by peer). 00:43:20 -!- housecarpenter has joined. 00:44:47 @tell Phantom_Hoover The SEQ/SNE instructions (compare two instructions, skip next instruction if they are/aren't equal) can apparently "read" the instruction part, but as far as I can tell with the .I modifier it compares *all* fields, so it'd be hard to use to branch by instruction type. 00:44:47 Consider it noted. 00:56:34 @tell Taneb I think you're mistaken about monoid homomorphisms: (f<>g)(a<>b) has a similar problem, becoming either f(a)<>f(b)<>g(a)<>g(b) or f(a)<>g(a)<>f(b)<>g(b) dependent on how you expand it. 00:56:34 Consider it noted. 01:02:25 huh what? <-- . o O ( b_jonas has already forgotten boily ;_; ) 01:07:29 -!- housecarpenter has quit (Read error: Connection reset by peer). 01:07:54 -!- housecarpenter has joined. 01:20:01 -!- housecarpenter has quit (Read error: Connection reset by peer). 01:20:24 -!- housecarpenter has joined. 01:26:30 -!- Essadon has quit (Quit: Qutting). 01:31:32 oerjan, ?? has boily gone somewhere? Where's my chicken quit messages? 01:34:52 moony_: i see him occasionally in my reddit friends list, but he hasn't been here on the channel in a long time 01:35:45 bon soirjan 01:36:19 ): 01:36:39 shalomchaf 01:37:07 this channel is slowly falling apart from what i can tell 01:37:08 RIP 01:37:28 oerjan: I thought that was a first, but apparently it's a 10th. 01:37:43 10th what? 01:37:54 time that's been said in this channel 01:38:23 which one 01:38:35 the thing you said 01:38:49 aha. i don't recall having seen it. 01:38:50 Which I don't want to repeat because it'll ruin my future grep counts. 01:39:14 Wait, no, I double counted old and new logs. 01:39:24 It's a fifth. 01:39:36 . o O ( minor or major fifth? ) 01:40:16 What's a major and minor fifth? 01:40:26 I know what a perfect fifth is. 01:40:45 Minor fifth is 650 cents apparently. 01:41:06 And perfect fifth is 700 cents. 01:41:27 > 2**(700/1200) 01:41:29 1.4983070768766815 01:41:32 > 2**(650/1200) 01:41:34 1.4556531828421873 01:41:58 Wasn't there a function to find a rational number close to a real number? 01:42:13 yes, continued fraction cutoff 01:42:33 or rationalize or something in scheme 01:42:49 I mean, in Haskell. 01:42:51 Or in lambdabot. 01:42:58 > rationalize 01:43:00 error: 01:43:00 • Variable not in scope: rationalize 01:43:00 • Perhaps you meant ‘rational’ (imported from Text.PrettyPrint.HughesPJ) 01:45:14 @let rationalize (a,b) | a <= 0 && b>= 0 = 0 | f <- floor a = a % 1 + 1 / rationalize (1/(b-f), 1/(a-f)) 01:45:15 Defined. 01:45:24 > rationalize (pi, exp 1) 01:45:26 error: 01:45:26 • Ambiguous type variable ‘b0’ arising from a use of ‘show_M301665704346... 01:45:27 prevents the constraint ‘(Show b0)’ from being solved. 01:45:32 fnord 01:46:12 @let rationalize :: RealFrac a => (a,a) -> Rational 01:46:13 .L.hs:163:28: error: 01:46:13 • Couldn't match type ‘a’ with ‘Integer’ 01:46:14 ‘a’ is a rigid type variable bound by 01:46:30 oh 01:46:32 @undef 01:46:33 Undefined. 01:46:54 @let rationalize (a,b) | a <= 0 && b>= 0 = 0 | f <- floor a = a % 1 + 1 / rationalize (1/(b-f), 1/(a-f)) :: Rational 01:46:55 .L.hs:161:10: error: 01:46:55 • No instance for (RealFrac Integer) arising from a use of ‘floor’ 01:46:56 • In a stmt of a pattern guard for 01:47:04 oh duh 01:47:16 * moony_ still doesn't understand haskell. He has a good grasp on x86-64 assembly tho 01:47:37 @let rationalize (a,b) | a <= 0 && b>= 0 = 0 | f <- floor a = a % 1 + 1 / rationalize (1/(b-fromIntegral f), 1/(a-fromIntegral f)) :: Rational 01:47:38 .L.hs:161:10: error: 01:47:38 • No instance for (RealFrac Integer) arising from a use of ‘floor’ 01:47:38 • In a stmt of a pattern guard for 01:48:04 @let rationalize (a,b) | a <= 0 && b>= 0 = 0 | f <- floor a = f % 1 + 1 / rationalize (1/(b-fromIntegral f), 1/(a-fromIntegral f)) :: Rational 01:48:05 Defined. 01:48:17 > rationalize (pi, exp 1) 01:48:19 *Exception: Ratio has zero denominator 01:48:24 ... 01:49:51 ic 01:50:25 @undef 01:50:25 Undefined. 01:51:59 oh duh 01:52:07 @let rationalize (a,b) | a <= 0 && b>= 0 = 0 | f <- floor a = f % 1 + 1 / rationalize (1/(b-fromIntegral f), 1/(a-fromIntegral f)) :: Rational 01:52:09 Defined. 01:52:22 > rationalize (exp 1, pi) 01:52:29 mueval-core: Time limit exceeded 01:52:41 something is still fishy 01:54:43 -!- moony__ has joined. 01:57:08 -!- moony_ has quit (Ping timeout: 244 seconds). 02:01:44 @undef 02:01:44 Undefined. 02:03:16 nyaa 02:12:33 @let rationalize (a,b) | b <= 0 = -rationalize(-b,-a) | a < 0 = 0 | b <= 1 = 1/rationalize(1/b,1/a) | otherwise = 1 + rationalize(a-1,b-1) 02:12:34 Defined. 02:12:42 > rationalize (exp 1, pi) 02:12:44 3.0 02:12:47 whee 02:13:39 > rationalize (sqrt 5, exp 1) 02:13:42 2.5 02:13:46 oops 02:13:51 > rationalize (sqrt 5, exp 1) :: Rational 02:13:54 5 % 2 02:14:36 this formulation depends on Double Infs, i think 02:15:38 > rationalize (-pi, sqrt 2) 02:15:40 0.0 02:15:53 @let rationalize :: (Double, Double) -> Rational 02:15:54 Defined. 02:17:30 > rationalize (2,3) 02:17:33 5 % 2 02:17:43 it's open interval hth 02:20:23 > rationalize (pi, 1/0) 02:20:26 4 % 1 02:22:15 shachaf: there's also toRational of course, although that's more of "convert float to exact" 02:22:35 > toRational pi 02:22:38 884279719003555 % 281474976710656 02:23:09 while rationalize finds the simplest fraction in an interval 02:23:52 (minimal abs of numerator/denominator) 02:27:13 No, I thought there was a function that took a precision or some other parameter. 03:02:16 -!- Sgeo has quit (Read error: Connection reset by peer). 03:03:23 -!- Sgeo has joined. 03:25:37 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 03:28:05 shachaf: well scheme's rationalize does that. 03:29:54 OK, but I thought it was in Haskell. 03:30:33 -!- housecarpenter has quit (Quit: Leaving). 03:32:28 there's probably a package... 03:32:42 @google site:hackage.haskell.org rationalize 03:32:43 https://hackage.haskell.org/package/Haschoo-0.1.2/src/tests/r5rstest.scm 03:32:52 hum 03:33:13 at least it's probably relevant :P 03:40:24 -!- xkapastel has quit (Quit: Connection closed for inactivity). 04:00:37 -!- FreeFull has quit. 05:46:07 -!- imode has quit (Ping timeout: 240 seconds). 06:01:04 > rationalize (10^8,10^8+1) 06:01:11 mueval-core: Time limit exceeded 06:02:35 . o O ( | otherwise = let b' = fromInteger (floor b) in b' + rationalize (a-b', b-b') ) 06:02:53 uhm 06:04:11 that's too much :/ 06:05:25 I guess... | otherwise = let a' = max 1 (fromInteger (floor a')) in a' + (a - a', b - a') 06:10:49 -!- xkapastel has joined. 06:11:56 int-e: i started with using floor then decided i'd just write something obviously correct 06:12:27 -!- lambdabot has quit (Remote host closed the connection). 06:12:38 poof 06:12:42 oerjan: look 06:12:52 what ratio does 650 cents approximate 06:12:53 twh 06:13:16 > 13/5 06:13:20 oops 06:13:32 shachaf: you chose a bad time to ask tdnh 06:13:45 pronked 06:14:17 13/2 06:14:38 @wn pronk 06:14:45 pronked again 06:14:49 darn 06:15:02 MY MIND IS GONE I CAN FEEL IT 06:15:14 also i don't know what it means 06:15:17 i took it from this channel 06:15:19 or at least hal'f of it 06:15:28 2012-06.txt logs apparently? 06:15:31 helloerjan 06:15:32 hichaf 06:15:36 yogan 06:15:41 :3 06:15:49 I just ate some fried kimchi ramen noodle soup 06:15:53 it was so good 06:17:24 * oerjan is wondering what's before the "gan" these days 06:17:57 yo hth 06:18:05 OKAY 06:18:22 oerjan: I kept my given name (Keegan) 06:18:35 I like it, and it's relatively gender-neutral 06:18:54 -!- lambdabot has joined. 06:19:02 aha 06:19:02 wb lambdabot 06:19:13 > 13/2 06:19:22 6.5 06:19:28 also changing your name is a huge hassle, and i couldn't find a new one that I liked 06:19:32 > 2**(650/1200) 06:19:40 1.4556531828421873 06:20:13 I asked my mom and apparently if born a girl, I would have been Caitlin or Kyla, which are okay but not super exciting 06:21:59 I half considered Cassandra since I keep making accurate predictions that nobody believes :P 06:22:02 and it's a pretty name 06:22:11 but "Cathy and Cassie" doesn't work so well 06:22:11 heh 06:22:25 I would call myself Alyssa but my girlfriend is already named that so that'd be weird 06:22:43 I think the best option I came up with was Nicole 06:25:51 anyway I went ahead and got my new passport and driver's license with the gender marker changed but the same name as before 06:26:26 for the california form, my doctor certified under penalty of perjury that I have a "female demeanor" :rolleyes: 06:28:17 there's seriously a checkbox for "demeanor" 06:28:48 in the end i had no trouble with either CA or the feds, and got both new identity documets quickly 06:28:59 (all 3 counting the passport card as well) 06:30:20 the US passport card is not very useful for travel unless your circumstances involve driving across the Canadian or Mexican border regularly 06:30:40 but I did find it useful as a form of ID for non travel things, during the time when I was waiting for my new DL 06:31:27 ic 06:33:25 @let rationalize :: (Double, Double) -> Rational; rationalize (a,b) | b <= 0 = -rationalize(-b,-a) | a < 0 = 0 | b <= 1 = 1/rationalize(1/b,1/a) | let a'=max 1(fromInteger (floor a))=a' + rationalize (a-a',b-a') 06:33:26 .L.hs:160:1: error: 06:33:26 Duplicate type signatures for ‘rationalize’ 06:33:27 at .L.hs:158:1-11 06:33:33 wat 06:33:42 @undef 06:33:42 Undefined. 06:33:47 @let rationalize :: (Double, Double) -> Rational; rationalize (a,b) | b <= 0 = -rationalize(-b,-a) | a < 0 = 0 | b <= 1 = 1/rationalize(1/b,1/a) | let a'=max 1(fromInteger (floor a))=a' + rationalize (a-a',b-a') 06:33:48 .L.hs:166:5: error: 06:33:48 • Couldn't match type ‘Double’ with ‘Ratio Integer’ 06:33:48 Expected type: Rational 06:33:52 f 06:34:48 > let a = 1 in a+floor a 06:34:51 2 06:36:42 @let rationalize :: (Double, Double) -> Rational; rationalize (a,b) | b <= 0 = -rationalize(-b,-a) | a < 0 = 0 | b <= 1 = 1/rationalize(1/b,1/a) | let a'::Num x=>x;a'=max 1(fromInteger (floor a))=a' + rationalize (a-a',b-a') 06:36:44 .L.hs:166:14: error: 06:36:44 • Could not deduce (Ord x) arising from a use of ‘max’ 06:36:44 from the context: Num x 06:36:58 wat 06:37:15 @let rationalize :: (Double, Double) -> Rational; rationalize (a,b) | b <= 0 = -rationalize(-b,-a) | a < 0 = 0 | b <= 1 = 1/rationalize(1/b,1/a) | let a'::RealFrac x=>x;a'=max 1(fromInteger (floor a))=a' + rationalize (a-a',b-a') 06:37:17 Defined. 06:37:42 > rationalize (10^8,10^8+1) 06:37:45 200000001 % 2 06:38:55 i think it hit the thing that's not the monomorphism restriction but even hairier 06:40:15 > let e=0.001 in rationalize (2**(650/1200)-e,2**(650/1200)+e) 06:40:18 67 % 46 06:40:28 shachaf: hth 06:40:57 > let e=0.002 in rationalize (2**(650/1200)-e,2**(650/1200)+e) 06:40:59 16 % 11 06:41:43 > let [rationalize (2**(650/1200)-e,2**(650/1200)+e) | e<-[0.001, 0.0015..]] 06:41:45 :1:75: error: 06:41:45 parse error (possibly incorrect indentation or mismatched brackets) 06:41:53 shocking 06:42:03 > [rationalize (2**(650/1200)-e,2**(650/1200)+e) | e<-[0.001, 0.0015..]] 06:42:05 [67 % 46,16 % 11,16 % 11,16 % 11,16 % 11,16 % 11,16 % 11,16 % 11,16 % 11,16 ... 06:42:30 16/11 seems to be good for a range 06:43:53 > let [rationalize (2**(650/1200)-e,2**(650/1200)+e) | e<-[0.005, 0.01..]] 06:43:55 :1:73: error: 06:43:55 parse error (possibly incorrect indentation or mismatched brackets) 06:44:00 oerjan: Oh, https://en.wikipedia.org/wiki/Major_fourth_and_minor_fifth agrees 06:44:03 > [rationalize (2**(650/1200)-e,2**(650/1200)+e) | e<-[0.005, 0.01..]] 06:44:05 16:11 06:44:05 [16 % 11,16 % 11,13 % 9,13 % 9,13 % 9,10 % 7,10 % 7,10 % 7,3 % 2,3 % 2,3 % 2... 06:47:28 why is youtube video of someone playing a NES game recorded in 720p 06:48:45 the NES native resolution is 240p 06:51:01 * oerjan puts rationalize in his private Basic.hs file 06:53:34 can you put it in the public Basic.hs file twh 06:54:11 nah 06:59:55 mmm 07:04:44 oerjan: ok, i'll just ask you next time i need a number rationalized tdh 07:08:02 oerjan: Oh that's just the monomorphism restriction... I didn't think that through. 07:10:17 oerjan: it's also slightly nasty that the code divides by 0 :) 07:11:18 > rationalize (-0, 1) 07:11:24 mueval-core: Time limit exceeded 07:11:26 int-e: no it isn't. 07:11:39 oh. 07:11:42 <3 timing 07:11:46 i mean it's not the MR 07:12:14 yes it is, a' is used at two different types 07:12:56 @google MonoLocalBinds 07:12:57 https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html 07:13:29 * oerjan was looking up the name 07:13:33 with NoMonoLocalBinds, no type signature for a' is required. 07:13:36 MonoLocalBinds it is 07:13:52 int-e: that's not the monomorphism restrictino. 07:13:54 *on 07:15:11 > rationalize (-1,0) 07:15:15 I guess that's true. 07:15:17 mueval-core: Time limit exceeded 07:15:20 i guess that's a bug then 07:15:21 Same effect, different reason. 07:16:10 my relevant PPCG post https://codegolf.stackexchange.com/questions/153744/wait-what-language-is-this/153927#153927 07:17:47 (AFAIUI, the main purpose of MonoLocalBinds is to prevent accidental loss of sharing.) 07:18:44 And then there's backward compatibility, and eliding quite a few type signatures. 07:19:54 But you're right that I conflated this with the MR that prevents polymorphic references. 07:20:09 @undef 07:20:09 Undefined. 07:20:12 @let rationalize :: (Double, Double) -> Rational; rationalize (a,b) | b <= 0 = -rationalize(-b,-a) | a < 0 = 0 | b <= 1 = 1/rationalize(1/b,1/abs a) | let a'::RealFrac x=>x;a'=max 1(fromInteger (floor a))=a' + rationalize (a-a',b-a') 07:20:13 Defined. 07:20:30 > rationalize (-1,0) 07:20:32 (-1) % 2 07:22:24 I will, however, blame the Haskell report for this... since the Haskell monomorphism restriction actually applies to global bindings as well, even though it's not a soundness problem there; the reason is *the same* as for monomorphic let bindings. 07:22:57 (ensure sharing of what in the case of top-level bindings are CAFs) 07:23:12 it's not a soundness problem anywhere (except with unsafePerformIO)? 07:23:36 :t newIORef 07:23:37 error: 07:23:37 • Variable not in scope: newIORef 07:23:37 • Perhaps you meant ‘newSTRef’ (imported from Data.STRef) 07:23:42 :t newSTRef 07:23:44 a -> ST s (STRef s a) 07:23:51 :t newSTRef undefined 07:23:52 ST s (STRef s a) 07:24:18 If you could get a polymorphic value out of this, you'd be in trouble. 07:24:46 oh monomorphism of lambda arguments is something else again 07:25:00 that's even for basic hindley-milner, i think 07:25:27 and that's what the ST monad needs 07:26:30 Ah, darn. The ML term I'm looking for is "value restriction". 07:26:56 Which is /a/ monomorphism restriction? *shrugs* 07:27:08 This stupid fuzzy memory of mine... :-/ 07:27:17 yeah was about to mention that 07:27:32 it's needed once you have impure expressions 07:29:23 yeah 07:29:32 -!- danieljabailey has joined. 07:29:34 the ML value restriction is needed for soundness 07:29:53 the Haskel monomorphism restriction is meant to prevent unexpected non-memoization 07:30:06 but not needed for soundness 07:30:47 yeah I guess you covered all this already 08:12:20 -!- danieljabailey has quit (Ping timeout: 255 seconds). 08:45:32 -!- arseniiv has joined. 08:54:53 -!- oerjan has quit (Quit: Nite). 08:58:30 -!- xkapastel has quit (Quit: Connection closed for inactivity). 09:07:03 -!- orbitaldecay_ has joined. 09:09:37 -!- orbitaldecay has quit (Ping timeout: 245 seconds). 09:12:35 @massages-lout 09:12:36 oerjan said 8h 16m 1s ago: I think you're mistaken about monoid homomorphisms: (f<>g)(a<>b) has a similar problem, becoming either f(a)<>f(b)<>g(a)<>g(b) or f(a)<>g(a)<>f(b)<>g(b) dependent on how 09:12:36 you expand it. 09:12:59 Hmmm 09:16:41 -!- moony__ has quit (Ping timeout: 255 seconds). 09:19:09 -!- S_Gautam has joined. 09:24:47 -!- moony_ has joined. 09:42:18 Yes, I was mistaken 09:43:04 :) 09:53:25 -!- Melvar has quit (Ping timeout: 246 seconds). 09:53:49 -!- Melvar has joined. 09:57:16 -!- wob_jonas has joined. 09:57:29 oerjan: re rationals, see https://www.perlmonks.com/?node_id=424519 for example 10:00:23 kmc: there seem to be much better options in boy's names than girl's names 10:27:51 -!- AnotherTest has joined. 11:43:12 `pbflist https://pbfcomics.com/comics/untitled-candle-comic/ 11:43:13 pbflist https://pbfcomics.com/comics/untitled-candle-comic/: shachaf Sgeo quintopia ion b_jonas Cale 11:56:52 [[Drive-In Window]] https://esolangs.org/w/index.php?diff=60254&oldid=37325 * 3snoW * (+134) 12:18:45 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 12:21:24 -!- Essadon has joined. 12:21:42 -!- Essadon has quit (Max SendQ exceeded). 12:22:33 -!- Lord_of_Life_ has joined. 12:24:02 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60255&oldid=60223 * A * (+565) /* List of candidates */ 12:24:17 argh! the updated software is, of course, not quite compatible with everything I have 12:24:28 now I have to figure out what I have to change 12:24:41 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60256&oldid=60255 * A * (+68) /* List of candidates */ 12:25:03 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60257&oldid=60256 * A * (-29) /* List of candidates */ 12:25:19 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60258&oldid=60257 * A * (+3) /* List of candidates */ 12:25:27 -!- Lord_of_Life has quit (Ping timeout: 240 seconds). 12:25:28 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 12:26:36 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60259&oldid=60258 * A * (+67) /* List of candidates */ 12:26:47 -!- rodgort has quit (Quit: Leaving). 12:28:22 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60260&oldid=60259 * A * (-49) /* List of candidates */ 12:29:27 -!- S_Gautam has joined. 12:30:23 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60261&oldid=60260 * A * (+121) /* List of candidates */ 12:30:57 -!- rodgort has joined. 12:35:37 [[ShaFuck]] M https://esolangs.org/w/index.php?diff=60262&oldid=35114 * Arcorann * (+0) 12:36:37 [[Bitch]] https://esolangs.org/w/index.php?diff=60263&oldid=60206 * A * (+339) Add infobox 12:40:13 -!- Vorpal has joined. 12:40:13 -!- Vorpal has quit (Changing host). 12:40:13 -!- Vorpal has joined. 12:40:56 [[Template:Programming Language]] https://esolangs.org/w/index.php?diff=60264&oldid=58387 * Arcorann * (-3) https://en.wikipedia.org/w/index.php?title=Programming_language&diff=886211259&oldid=886194823 12:41:18 [[Special:Log/move]] move * Arcorann * moved [[A programming language is a formal language, which comprises a set of instructions used to produce various kinds of output.]] to [[A programming language is a formal language, which comprises a set of instructions that produce various kinds of output.]]: https://en.wikipedia.org/w/index.php?title=Programming_lang 12:41:19 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60267&oldid=60261 * A * (+4) /* List of candidates */ 12:43:22 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60268&oldid=60267 * A * (+13) /* List of candidates */ 12:46:43 [[A programming language is a formal language, which comprises a set of instructions that produce various kinds of output.]] https://esolangs.org/w/index.php?diff=60269&oldid=60265 * Arcorann * (+208) It's too soon to see any programs written in the March 2019 version (apart from on this site and Wikipedia, of course), but hopefully that will change soon 12:47:09 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60270&oldid=60268 * A * (-34) /* List of candidates */ 12:54:07 [[Bitch]] https://esolangs.org/w/index.php?diff=60271&oldid=60263 * A * (-61) /* References */ 13:03:07 [[Bitch]] https://esolangs.org/w/index.php?diff=60272&oldid=60271 * A * (+428) Add overview(just adding more information) 13:06:16 [[Bitch]] https://esolangs.org/w/index.php?diff=60273&oldid=60272 * A * (+81) /* Turing-completeness */ 13:20:53 [[Bitch]] https://esolangs.org/w/index.php?diff=60274&oldid=60273 * A * (+125) /* Cat program (limited to integers) */ 13:23:43 [[Bitch]] https://esolangs.org/w/index.php?diff=60275&oldid=60274 * A * (+0) /* Cat program (limited to integers) */ 13:24:37 [[Bitch]] https://esolangs.org/w/index.php?diff=60276&oldid=60275 * A * (+32) /* Possible */ 13:25:13 [[Bitch]] https://esolangs.org/w/index.php?diff=60277&oldid=60276 * A * (-2) /* Cat program (limited to integers) */ 13:30:18 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=60278&oldid=60270 * A * (+8) /* List of candidates */ 13:32:18 [[User talk:A]] https://esolangs.org/w/index.php?diff=60279&oldid=60207 * A * (-40) 14:02:22 -!- atslash has quit (Quit: Leaving). 14:07:53 what... suddenly the iterator doesn't work if the container is empty or what? 14:15:04 -!- xkapastel has joined. 14:25:26 -!- hakatashi2 has joined. 14:29:12 -!- hakatashi has quit (Ping timeout: 250 seconds). 14:32:55 -!- imode has joined. 14:51:01 [[Special:Log/newusers]] create * Carbontwelve * New user account 14:56:27 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=60280&oldid=60249 * Carbontwelve * (+271) My introduction 14:58:27 -!- AnotherTest has quit (Ping timeout: 240 seconds). 15:03:43 OH MY GOD I HATE GIT SO MUCH 15:04:03 it has been sitting there "rebasing" for over 24 hours now 15:04:30 taking up 100% of cpu and over 2 GB of memory 15:05:09 in that time I could have EASILY done this with fucking patch files 15:05:34 That's... not something I've ever seen happen 15:07:12 orin: you know you can just kill it, right? 15:07:31 wob_jonas: well yeah 15:07:38 [[LDPL]] N https://esolangs.org/w/index.php?oldid=60281 * Carbontwelve * (+597) Stub page for LDPL 15:07:47 wob_jonas: but what state would that leave my repo in 15:08:14 . o O ( more usable ) 15:08:17 git rebase master 15:08:17 First, rewinding head to replay your work on top of it... 15:08:25 and nothing for 24 hours 15:09:07 orin: it's mostly immutable garbage-collected stuff, you only have to restore the refs 15:09:26 [[Language list]] M https://esolangs.org/w/index.php?diff=60282&oldid=60233 * Carbontwelve * (+11) /* L */ adding Link to LDPL 15:09:54 also that's why I don't rebase, it's confusing for me, I rather start a new branch and apply or revert 15:10:02 Never experienced anything like that either. At that point I would assume that it won't finish. 15:10:07 ok, so it left me on "no branch" 15:10:14 or use svn rather than git if I can, but that's not an option for an existing repo 15:10:20 git checkout 15:10:30 I'll check out the branch I was trying to rebse 15:11:00 Ideally now I'll create patch files from my branch and apply them manually 15:11:21 I'd also do a git fsck at that point. Depending on how paranoid I'm feeling, make a copy of the .git directory first (but git usually makes destroying objects really hard) 15:12:10 int-e: this is a local repo, everything important is on the main repo 15:12:28 int-e: _destroying_ objects is hard. it's just also hard to find the right objects, because it's too easy to change what each ref points to, especially with pull 15:12:50 you don't really get a timed history, only a half-ditched effort called the reflog 15:13:19 Yes and it's hardly ever been an issue for me. 15:13:50 [[LDPL]] https://esolangs.org/w/index.php?diff=60283&oldid=60281 * Carbontwelve * (+10) Added stub text 15:15:01 hmm maybe I'll just check out an entirely new repository and delete this one 15:15:21 orin: the confusing bit about that behavior is this... what I'd expect git-rebase to do at that point is basically just a 'git checkout master -b rebase-temp'. That is, unless it was actually done rewinding and already collecting diffs, somehow. 15:16:00 -!- imode has quit (Ping timeout: 250 seconds). 15:16:53 well yeah what I expected git to do is 1. find the latest shared point between my branch and the master 15:17:11 2. create a patch from that point to the head of my branch 15:17:20 3. try to apply it to the head of master 15:17:48 but apparently it is doing something more complicated 15:18:19 I believe it applies each commit in sequence 15:18:21 I'd expect a 3-way merge from the common ancestor? 15:18:27 For a rebase 15:18:45 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 15:18:51 um no, it has to apply each commit from the common ancestor to your branch onto the master, in sequence 15:19:40 wob_jonas: right. but my branch has like, 20 commits max 15:19:45 and it's so much cleaner when I use apply or revert rather than rebase, because the way rebase changes what refs point to just cnofuses me to heck 15:20:01 (I meant for each revision separately.) 15:20:13 and it's easier to abort or continue the apply too when there's a conflict or anything 15:20:26 so my current theory is that that "common ancestor" is way further back than it should be 15:20:42 int-e: sure, they do a proper diff3 these days, with a diff3 engine built into git, rather than just a patch 15:23:43 Hah. "revision" is mercurial terminology. I mean "commit". 15:28:29 git clone $GIT_ORIGIN_REPO i_hate_git 15:28:58 what's the command to get a patch from commit XXX to commit YYY 15:29:55 orin: git diff XXX YYY -- 15:29:57 git diff [] [--] [...] 15:30:25 int-e: yes, but what are the right options? 15:30:45 ok cool that should work with the path part since I knw nothing outside a particular directory ought to have changed 15:32:17 wob_jonas: They are optional. This is the one of the five versions listed in the manpage that is applicable to the question. 15:43:08 yeah I'll just create a pacth file, create an entirely new branch and apply the patch file over the head of master 15:43:23 er, the head of that branch which is the head of master 15:44:22 good luck 15:49:04 orin: or create a new branch from master, then apply the commits from your branch, creating a new commit for each, with (git cherry-pick ..yourbranch), it will stop on a conflict and you can (git cherry-pick --abort) to cancel trying to resolve the conflicts; or (git cherry-pick -n ..yourbranch) to apply all of them at once without creating a commi 15:49:04 t, which lets you collapse your commits to a single one 15:52:42 also, git is bs, because the command I use the most frequently is an alias to git status -bs 15:53:01 I have a few other aliases where the defaults are ... strange 16:15:46 -!- danieljabailey has joined. 16:36:06 -reject 16:42:26 ok, this is actually working 16:44:50 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client). 16:54:08 [[ALLSCII]] https://esolangs.org/w/index.php?diff=60284&oldid=60253 * Cortex * (+744) 16:54:25 -!- xkapastel has quit (Quit: Connection closed for inactivity). 17:01:30 -!- digitalcold has joined. 17:01:54 -!- AnotherTest has joined. 17:22:15 [[ALLSCII]] https://esolangs.org/w/index.php?diff=60285&oldid=60284 * Cortex * (+120) 17:23:39 [[ALLSCII]] https://esolangs.org/w/index.php?diff=60286&oldid=60285 * Cortex * (+36) 17:51:44 -!- b_jonas has joined. 18:08:11 -!- Phantom_Hoover has joined. 18:47:12 < wob_jonas> kmc: there seem to be much better options in boy's names than girl's names <--- hmm, how do you mean? 18:47:51 kmc: that's probably just my biased opinion 18:48:44 what do you mean by 'better' though 18:48:50 nicer sounding? 18:48:57 totally subjective 18:49:57 ok 18:51:39 -!- LKoen has joined. 18:57:26 ok, note to self, rebasing manually is a lot of work, but may be less mental anguish than trying to understand what is wrong with your git repository 18:58:10 git freebase 19:27:28 b_jonas: it's true that I didn't find a name I liked better than Keegan, on the other hand, Keegan is an unusually great name 19:27:42 my parents had good (unintentional) foresight by giving me something gender-neutral-ism 19:27:44 ish* 19:28:11 one less hassle... 19:28:28 Keegan means "firey one" in Gaelic or something 19:28:36 my wife met an orange polydactyl cat named Keegan 19:28:59 cat 19:29:06 yes 19:29:07 cat 19:29:31 I ate catfish 19:29:39 🐈 19:30:03 and now I wonder if there's a deadfish variant that can still only print literal strings, but with a more efficient encoding, like it prints anything after a quotation mark 19:34:33 -!- LKoen has quit (Remote host closed the connection). 19:35:43 -!- LKoen has joined. 19:40:40 -!- LKoen has quit (Remote host closed the connection). 19:47:25 -!- LKoen has joined. 20:02:34 kmc, did you ever play halo 20:03:15 also fizzie re the lambdabot message yeah that's what i remember 20:03:41 Phantom_Hoover: only casually at parties with friends 20:03:42 why 20:04:55 there's a ship in, uh, one of the spinoff games called 'spirit of fire' 20:05:07 which was one of a few really excellent ship names in halo 20:08:24 ok 20:08:24 also a nicely subtle tolkien reference 20:08:29 not as good as the Culture ship names 20:09:54 well nothing is as good as those 20:10:15 yes 20:13:27 -!- danieljabailey has quit (Ping timeout: 240 seconds). 20:14:36 Absolutely No You-Know-What 20:15:09 Stood Far Back When The Gravitas Was Handed Out 20:15:40 -!- LKoen has quit (Remote host closed the connection). 20:21:26 -!- LKoen has joined. 20:32:32 -!- LKoen has quit (Remote host closed the connection). 20:37:05 -!- LKoen has joined. 20:54:06 -!- xkapastel has joined. 21:07:47 -!- orbitaldecay__ has joined. 21:10:50 -!- orbitaldecay_ has quit (Ping timeout: 255 seconds). 21:50:37 -!- LKoen has quit (Remote host closed the connection). 21:53:28 -!- LKoen has joined. 21:54:43 kmc: https://bugs.chromium.org/p/project-zero/issues/detail?id=1792 21:55:07 in the year 2019 linux still has bugs with mapping page 0 21:55:11 cool 22:01:25 shachaf: but since nobody runs an x86_32 kernel, nobody runs emulators using v86 mode, so nobody needs to map the null page, so it no longer matters 22:03:05 wait wait 22:03:19 the problem is that you _can_ map the null page? 22:03:22 you're supposed to be able to map it 22:04:31 Not when mmap_min_addr is higher than 0. 22:06:48 b_jonas: you're not 22:06:56 for the past 10+ years 22:07:04 because it makes it easy to exploit a kernel-mode NULL dereference 22:07:51 kmc: um, not even on the recent cpus that have an easy way to make the kernel unable to accidentally access user memory? 22:08:24 you mean Intel SMAP? 22:08:34 that would help yes 22:08:50 anyway not all CPUs have that, and at any rate it's good to have multiple lines of defense 22:08:59 kmc: dunno, is that the one where you can mark pages with a very short ID, and there's a register that tells which IDs are allowed, and you can even use them at user level with some kernel support now? 22:09:06 but yes, it's only the latest cpus 22:09:14 afaik, there is no compelling reason to allow mapping a page at 0 22:09:18 and sure, if the /proc thing is set to not allow it, then yes, it shouldn't be allowed 22:10:13 I mean, there are a lot of optional /proc knobs like that 22:10:21 including the one that denies using ptrace completely 22:10:33 it makes sense to have one of these as well I guess 22:16:00 `cat /proc/sys/vm/mmap_min_addr 22:16:00 4096 22:19:11 I vaguely remember DOSEMU used to remember mmap_min_addr=0. 22:19:34 Don't think it's really applicable on x86-64 anyway. 22:22:23 -!- arseniiv has quit (Ping timeout: 255 seconds). 22:23:07 by the way, fizzie, the last time you said you have to think about whether HackEso is specifically for the esoteric community or not, and that's why you might not want to make it join other channels. in that case, how about joining it to #esoteric-blah ? 22:31:29 there's not much point using dosemu anymore 22:31:40 dosbox works great and is a pure emulator with no weird platform dependencies 22:32:22 meanwhile my father-in-law runs his 30 year old turbo pascal programs in a dos window in Windows XP, in an emulator under Windows 10 22:32:27 to each his own 22:42:04 b_jonas: That sounds uncontroversial. 22:42:13 kmc: as you may know if you hung around on this channel, I used both bochs and dosbox to run DOS programs on linux, including games and a compiler. at one point I hooked up a DOS system ran by bochs to IRC, making a very noisy bot. 22:42:47 but qemu had improved significantly since, so I might use qemu the next time I want to do something like this 22:46:14 ok 22:46:29 https://www.youtube.com/watch?v=H0u6xxh_JL0 22:46:48 incidentally, borland C on dos is a compiler that seems really weird now 22:47:07 it wasn't that weird back then of course 22:47:39 it actually accepts `long long` as a type without an error, and parses it as if it were just `long`, so programs using it compile but silently fail because it's only 32 bit long 22:50:53 -!- FreeFull has joined. 22:51:41 lol 22:51:45 i've used it 22:51:48 C integer types are dumb anyway 22:52:09 but of course most of those programs won't compile, because they assume you have a modern standard library, and will refer to identifiers that aren't in borland C's 22:52:47 did you know that the XC8 compiler for PIC has 'short long'? 22:52:52 it's longer than a short, but shorter than a long 22:52:56 it's 24 bits 22:52:59 oh 22:53:00 Uh oh 22:53:09 I didn't know that 22:53:38 Hmm. Looks like multibot is technically a little bit single-channeled. Although as far as I can tell, the only things that affect are (a) the built-in automatic JOIN, and (b) whether it looks for "PRIVMSG-chan.cmd" or "PRIVMSG-user.cmd" for the first-level fallback (from "PRIVMSG/tr_XX.cmd" based on the first command character). 22:53:44 I thought it would go like char, long char, short short, short, long short, int, short long, long, long long, long long long 22:54:13 "who likes short shorts?" 22:54:54 also, those days C counted as a high level language and borland C counted as an optimizing compiler; these days we'd call it a low level language an a non-optimizing compiler 22:54:59 :2:15: error: 'long long long' is too long for GCC 22:55:04 I hadn't heard of "short long", though I think the one Motorola 56K C implementation had a 24-bit `int` and a 48-bit `long`. 22:55:12 it also has some sort of support for an ancient form of C++ 22:55:56 ISTR the C compiler for Magic-1 uses 32-bit long longs, but maybe that's just a mistake in the description 22:55:59 let me look that up 22:56:32 . o O ( optimizing compiler, n. - a compiler that uses more than two registers in the generated machine code ) 22:56:59 The c56 compiler doesn't support "long long" at all, it's just an error. 22:57:22 int-e: yeah, it has 32-bit multiplication built in, and can target actual 8086 (though I don't think I ever invoked it that way, normally I ask it to compile for 386), so it needs to use more than two registers for that 22:58:15 in compilers class we had an optimization shootout, and we implemented a bunch of them (my teammate burned through about a month's supply of Adderall in a week) but the most effective turned out to be one of the simplest: replacing mul/div by a power of two with shifts 22:58:23 because the test program was full of fixed point math :) 22:58:43 so we won even though our compiler was very dumb in other ways, like failing to coalesce moves 22:58:56 it would do like mov %eax, %ebx; mov %ebx, %eax 22:59:15 b_jonas: it's funny. we've somewhat stopped measuring compile speed (turbo pascal could compile what, 1000 lines per second on a 20MHz machine?) 22:59:40 * int-e doesn't even remember the order of magnitude anymore 23:00:34 nah, I probably just misremembered that about magic-1 23:00:43 http://www.homebrewcpu.com/ by the way 23:01:14 int-e: well except good ole TCC 23:01:25 int-e: TCC can compile and run a linux kernel 23:01:30 kmc: was the test program known in advance? or was it a lucky guess? 23:02:19 I don't recall, actually 23:02:22 heh 23:02:27 I think c56 also does a non-compliant thing where `char` and `short` act as 8- and 16-bit types, respectively, but still take up one (24-bit) word of storage. 23:02:31 (Well, the `short` part is fine. But `char` isn't supposed to have any padding bytes.) 23:03:30 There's a special magic `_packed char` type that tries to support strings packed efficiently (three octets per word) but it also has a sizeof 1 so incrementing a _packed char pointer by 1 moves it by 3 characters. 23:03:38 i thought the main guarantee about char is that copying an array of char is the same as copying any type 23:03:41 (You're supposed to use access macros with it.) 23:03:59 e.g. that memcpy() takes char* 23:04:20 or is that no longer the case? 23:04:25 -!- xkapastel has quit (Quit: Connection closed for inactivity). 23:04:33 No, memcpy takes a void *. But you're supposed to be able to *implement* memcpy via using a `unsigned char *` to access the object representations. 23:04:46 (And you can't do that on that implementation.) 23:04:56 yeah 23:05:34 Actually, I'm not sure what code it generates. Maybe it happens to work if you just do the usual *dst++ = *src++. 23:07:25 -!- LKoen has quit (Remote host closed the connection). 23:07:33 -!- LKoen has joined. 23:12:27 -!- AnotherTest has quit (Ping timeout: 240 seconds). 23:16:15 -!- LKoen has quit (Remote host closed the connection). 23:54:46 -!- FreeFull has quit (Quit: rebooting). 23:56:12 -!- FreeFull has joined.