00:33:48 -!- sparr has quit (Changing host).
00:33:48 -!- sparr has joined.
00:45:02 -!- Frater_EST has quit (Remote host closed the connection).
01:05:10 <b_jonas> ok, so Intcode is a language where the source code is written as integers in decimal separated by commas, it puts multiple fields of an instruction into a single integer, the fields are decimal, and the numbers aren't too large. does that remind you of anything?
01:05:23 <b_jonas> Santa Claus is trying to make a better BANCStar
01:30:37 -!- arseniiv has quit (Ping timeout: 250 seconds).
01:51:08 -!- Frater_EST has joined.
01:57:31 -!- Lord_of_Life_ has joined.
02:00:51 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
02:00:54 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
02:05:48 <zzo38> Is there a way to determine how much space a BASIC module needs in a code segment without creating a assembly listing file? Can the .OBJ file be parsed somehow to determine this?
02:30:59 -!- ArthurStrong has joined.
03:03:35 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=67931&oldid=67927 * DmilkaSTD * (-3)
03:32:39 -!- sprocklem has quit (Ping timeout: 265 seconds).
03:38:20 -!- sprocklem has joined.
03:46:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
03:46:32 <zzo38> I found information about the .OBJ file format, so I can write a program to parse it. (I looked at the hex dump to confirm that it is the correct format.)
03:52:20 -!- sprocklem has joined.
03:54:01 <kmc> is it like MZ format?
03:54:04 <kmc> what is the format
03:54:30 <zzo38> It is described at https://pierrelib.pagesperso-orange.fr/exec_formats/OMF_v1.1.pdf
03:54:36 -!- ais523 has joined.
03:55:23 <ais523> Soni: the condition code / flags register isn't used in high-level languages (and eventually turned out to be a mistake in low-level languages) because it's hard to optimise well
03:55:56 <ais523> it takes a fairly complex static analysis to determine whether a value stored in a flag was placed there intentionally and needs preserving, or whether it's just an unwanted side effect
03:56:21 <kmc> this is why RISC-V doesn't have condition codes
03:56:32 <Soni> ais523: that's why it'd be perfect for an esolang
03:56:55 <Soni> ais523: also, you run something, then 20 opcodes later you use the result
03:57:11 <kmc> instead the result of a comparison instruction goes into an ordinary register of the programmer's / compiler's choice
03:57:13 <ais523> golfing languages are probably the genre that would most benefit from them
03:57:17 <zzo38> Not everyone uses high-level languages; some people use assembly language
03:57:19 <Soni> ais523: but you make the esolang so that stuff like that is required if you wanna be able to do anything with it
03:57:23 <ais523> but maybe designed syntactically rather than in execution order
03:57:44 <zzo38> (Still, many assembly languages work fine without condition codes)
03:58:02 <ais523> zzo38: right, but, e.g., the condition codes on x86 turned out to be a problem because they reduce the information available to the optimiser
03:58:05 <kmc> so a < b or a == b are handled the same way as a + b
03:58:31 <ais523> kmc: I thought of an improvement to this: add 1 more bit in registers than in memory addresses
03:58:40 <Soni> (in other words, make the programmer have to suffer)
03:58:46 <ais523> so, e.g., your 64-bit processor has a 65-bit ALU
03:59:09 <ais523> then instead of condition-code-dependent instructions like Jcc, you just look at specific bits of a number
03:59:26 <kmc> not sure i follow
04:00:01 <ais523> say you add two 64-bit numbers using a 65-bit register (and they were sign-extended or zero-extended as necessary)
04:00:31 <ais523> carry flag is bit 64 of the result, sign flag is bit 63 of the result, overflow flag is the xor of those two
04:01:14 <ais523> for zero flag you have to check that the result is 0, but it's easy enough to imagine a dedicated zero-testing circuit, your ALU needs one of those anyway
04:01:46 <zzo38> ZZ Zero does have a single condition flag (called "pflag"); many instructions use it as a result code since instructions have only two operands, for example LESS and GRTR and EQ all use it for the result of comparisons, and MOVE checks if a move is successful; you can then use JT and JF (or TLET and FLET) to conditionally jump or let. (There is also JZ and JNZ too, though)
04:01:48 <ais523> parity flag can be implemented like zero flag if you care about it, most people don't
04:02:22 <ais523> the nice thing about this model is that the same register that stores the comparison result also stores the addition/subtraction result
04:02:33 <ais523> reducing register pressure when both are relevant
04:03:15 <ais523> oh, hmm, I'm not convinced you can implement auxiliary carry in this model
04:03:33 <ais523> but that's a silly idea for a flag anyway, it's ridiculously specific and doesn't generalise well to most instructions
04:03:59 <zzo38> Still I don't like that Glulx doesn't have a carry flag, since then it is difficult to deal with numbers longer than 32-bits
04:04:14 <ais523> (it also needs a bit of tweaking to handle overflowing multiplies, unless you produce a double-width result)
04:07:29 <zzo38> (There are other ways it could be implemented also though, rather than using a carry flag; other way is to add a "add64" instruction)
04:09:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
04:10:30 -!- sprocklem has joined.
04:14:40 -!- ais523 has quit (Ping timeout: 268 seconds).
04:43:13 -!- sprocklem has quit (Ping timeout: 265 seconds).
04:57:09 -!- ArthurStrong has quit (Quit: leaving).
04:57:55 <shachaf> I'm getting in so much trouble lately, it's great.
05:00:41 -!- Frater_EST has left.
05:08:57 -!- sprocklem has joined.
05:15:16 <moony> me and a few others are working on a computeri n MMindustry, which should be a fun proof of turing completeness. https://i.imgur.com/rwnvawO.png (pictured: 4 bit addder/subtracter)
05:20:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
05:26:23 -!- sprocklem has joined.
06:09:37 -!- sprocklem has quit (Ping timeout: 240 seconds).
06:45:36 -!- sprocklem has joined.
06:56:37 -!- sprocklem has quit (Ping timeout: 240 seconds).
07:02:47 -!- b_jonas has quit (Quit: leaving).
07:07:31 -!- sprocklem has joined.
07:16:28 <zzo38> 6502 has PHP and PLP instructions to save the flags in case you need them for later.
07:25:45 <zzo38> And I think auxiliary carry is possible, if you have a special register to store the carry out (similar to how MMIX has a special register to store the remainder of a division, and other special registers for other purposes). (It is only for addition and subtraction of course, but there are some uses of it. The same register might also be used for shifted out bits of a shift operation.)
07:31:46 -!- tromp has quit (Ping timeout: 252 seconds).
07:42:03 -!- tromp has joined.
07:55:09 <esowiki> [[User talk:Zzo38]] https://esolangs.org/w/index.php?diff=67932&oldid=67546 * YamTokTpaFa * (+540) /* I'd like to learn about AAAAAAAAAAAAAA!!!! more. */
07:57:59 -!- tromp has quit (Read error: Connection timed out).
08:07:06 -!- tromp has joined.
08:16:34 -!- sprocklem has quit (Quit: brb).
08:18:29 -!- kritixilithos has joined.
08:19:44 -!- tromp has quit (Ping timeout: 246 seconds).
08:25:06 -!- tromp has joined.
08:49:14 -!- LKoen has joined.
08:52:11 -!- LKoen has quit (Remote host closed the connection).
08:53:14 -!- LKoen has joined.
09:45:28 <zzo38> Someone told me this week that cannibalism means eating parts of a human body which does not regrow (e.g. finger nails and hair will regrow so it doesn't count). But I cannot find that in the dictionary.
10:09:49 -!- LKoen has quit (Remote host closed the connection).
10:10:54 -!- xkapastel has joined.
10:33:59 -!- LKoen has joined.
11:06:33 -!- LKoen has quit (Remote host closed the connection).
11:07:29 -!- LKoen has joined.
11:12:21 -!- LKoen has quit (Remote host closed the connection).
11:13:39 -!- LKoen has joined.
11:20:41 -!- arseniiv has joined.
11:20:50 -!- bunnyocto has joined.
11:52:53 -!- LKoen has quit (Remote host closed the connection).
11:53:55 -!- LKoen has joined.
12:19:08 -!- b_jonas has joined.
12:43:29 -!- xkapastel has quit (Quit: Connection closed for inactivity).
12:47:47 -!- LKoen has quit (Remote host closed the connection).
12:47:58 -!- LKoen has joined.
12:48:11 -!- LKoen has quit (Remote host closed the connection).
12:48:28 -!- LKoen has joined.
13:00:45 -!- LKoen has quit (Remote host closed the connection).
13:01:15 -!- LKoen has joined.
13:13:07 -!- LKoen has quit (Remote host closed the connection).
13:13:24 -!- LKoen has joined.
13:46:59 -!- LKoen has quit (Remote host closed the connection).
13:47:11 -!- LKoen has joined.
13:56:34 <esowiki> [[///]] https://esolangs.org/w/index.php?diff=67933&oldid=67617 * Hex96 * (+72) /* Examples */
13:58:09 -!- Lord_of_Life_ has joined.
14:00:57 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
14:01:03 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
14:14:41 -!- kritixilithos has quit (Read error: Connection reset by peer).
14:15:04 -!- kritixilithos has joined.
14:58:45 -!- LKoen has quit (Remote host closed the connection).
15:01:26 <esowiki> [[Deutsch]] N https://esolangs.org/w/index.php?oldid=67934 * CMinusMinus * (+387) Created page with "'''Deutsch''' is a language created by the germans at ~750 years A.d. ==Versions== {| class="wikitable" |- ! Name !! Year |- | Althochdeutsch || 750 |- | Mittelhochdeutsch ||..."
15:01:57 <esowiki> [[Deutsch]] https://esolangs.org/w/index.php?diff=67935&oldid=67934 * CMinusMinus * (+12)
15:03:21 <esowiki> [[Deutsch]] https://esolangs.org/w/index.php?diff=67936&oldid=67935 * CMinusMinus * (+52)
15:03:38 <esowiki> [[Deutsch]] https://esolangs.org/w/index.php?diff=67937&oldid=67936 * CMinusMinus * (-2)
15:05:54 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=67938&oldid=67826 * CMinusMinus * (+39)
15:05:58 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=67939&oldid=67938 * CMinusMinus * (+0)
15:07:17 <esowiki> [[Deutsch]] https://esolangs.org/w/index.php?diff=67940&oldid=67937 * CMinusMinus * (+7)
15:15:27 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67941&oldid=67920 * CMinusMinus * (+14)
16:06:34 <esowiki> [[Turing tarpit]] M https://esolangs.org/w/index.php?diff=67942&oldid=58597 * Dart * (+0) Pretty sure No-op isn't required for turing-completeness
16:42:21 -!- xkapastel has joined.
17:00:31 -!- bunnyocto has quit (Remote host closed the connection).
17:17:00 -!- LKoen has joined.
17:21:08 -!- LKoen has quit (Remote host closed the connection).
17:27:38 -!- LKoen has joined.
17:54:48 -!- kritixilithos has quit (Quit: quit).
18:37:05 -!- LKoen has quit (Remote host closed the connection).
18:40:47 -!- LKoen has joined.
18:43:30 -!- Hamilton has joined.
18:46:56 -!- Hamilton has left ("Leaving").
18:50:08 -!- LKoen has quit (Remote host closed the connection).
18:59:05 -!- LKoen has joined.
19:12:05 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:31:15 -!- LKoen has quit (Remote host closed the connection).
19:33:13 <myname> how comes nobody maintains any ihaskell binary package in aur? :(
19:59:05 -!- arseniiv has quit (Ping timeout: 276 seconds).
20:09:30 <int-e> Somehow AoC is great for writing terrible code...
20:11:53 <int-e> (E.g., today's problem, done properly, would involve topological sorting. But a stupid fixed point construction works, too, it's slower, but as it turns out, plenty fast enough.)
20:23:55 <b_jonas> my job is also great for writing terrible code
20:26:26 -!- diverger has quit (Read error: Connection reset by peer).
20:27:36 -!- diverger has joined.
20:47:08 <int-e> fungot: is your code better than average?
20:47:08 <fungot> int-e: it was called ' afx'. i'm still just sipping at the scheme workshop in here?
20:47:34 <int-e> mmm ' afx', could be a fingerprint?
20:59:37 <fizzie> int-e: I did a topological sort because I was worried the straightforward approach wouldn't be fast enough. :)
20:59:50 <fizzie> The code's still terrible though.
21:00:03 <fizzie> But maybe not algorithmically terrible.
21:00:04 <int-e> I decided to worry later.
21:00:26 <int-e> And never got to the point where it mattered, not even for part 2, for which I reused part 1.
21:01:07 <int-e> (Which, I suspect, is the intended approach, because working things out backward is really messy due to all the rounding.)
21:01:38 <fizzie> Could be. I did a binary search using the part 1 solution.
21:02:03 <fizzie> I also wrote a small thing to convert the puzzle input (and examples) to dot format, to render them as graphs, just because graphs are pretty.
21:03:07 <int-e> fizzie: actually, in case I ran into performance problems, I was going to do something between the naive iteration and topological sorting: keep a working list of products that were affected in the last iteration...
21:03:33 <int-e> And I fully expected that to be fast enough.
21:03:52 <fizzie> https://zem.fi/tmp/day14-ex1.png to https://zem.fi/tmp/day14-ex5.png are the common examples, though the customized puzzle input was the prettiest (tangle-iest) one.
21:03:59 <int-e> Even though it's still quadratic in the worst case.
21:04:35 <int-e> looks like they're more wide than deep anyway
21:05:47 <fizzie> There's 16 levels in my puzzle input, though I don't think dot's levels are necessary a meaningful theoretical concept.
21:06:58 <fizzie> In particular, one of the levels just has one node in it, and that node has no edges from level L-1 or to level L+1. I'm guessing it's just some sort of heuristics.
21:06:59 <int-e> Hmm, what matters for me... number of iterations is bounded by the longest path from source (ore) to target (fuel).
21:09:01 <int-e> I guess I could count the actual iterations...
21:09:17 <int-e> (plus 1, because there's one extra iteration to detect the fixed point)
21:09:59 <int-e> 17 for me. So same depth as yours.
21:10:45 -!- sprocklem has joined.
21:11:40 <int-e> It's just 63 productions, 137 inputs anyway, not terribly large.
21:11:56 <int-e> < input tr -dc ',=' | wc -c
21:12:54 <fizzie> That gives 122 here, so at least it's not exactly the same structure.
21:14:07 <int-e> or maybe unlucky because topological sorting is even more of an overkill then
21:15:00 <int-e> Annoyingly though it still took me 35 minutes to get it right. Though I was tired...
21:15:26 <int-e> ...which may explain that I got zillions of type errors and struggled to pinpoint them.
21:16:22 <fizzie> It took annoyingly long for me too. Though the day leaderboard says 00:42:18 for rank 100, so maybe that's reasonable.
21:17:58 <int-e> part 2 took 6 minutes on top of that which is more like it
21:19:00 <int-e> I should probably stop looking at those times :)
21:19:36 -!- oerjan has joined.
21:19:49 <fizzie> Heh, clicking at some of the people on the leaderboard landed me on someone's GitHub repo where they write golfed solutions to the puzzles using their own golf language.
21:20:48 <int-e> But FWIW, first star #100 was at 27:35 minutes
21:23:32 -!- Taneb has quit (Quit: I seem to have stopped.).
21:23:42 -!- Taneb has joined.
21:43:03 -!- sprocklem has quit (Ping timeout: 265 seconds).
21:53:56 -!- sprocklem has joined.
21:55:00 -!- ArthurStrong has joined.
21:57:25 <HackEso> Tc is the abbreviation for Technetium, an element so sophisticated that it does not exist naturally.
21:57:41 <oerjan> i agree that this wisdom is technically correct hth
22:14:49 -!- sprocklem has quit (Remote host closed the connection).
22:20:06 -!- sprocklem has joined.
22:32:57 -!- sprocklem has quit (Ping timeout: 240 seconds).
22:33:52 -!- sprocklem has joined.
23:18:25 -!- sprocklem has quit (Ping timeout: 250 seconds).
23:21:44 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67943&oldid=67910 * Oerjan * (-81) Remove some redundancies
23:24:30 -!- sprocklem has joined.
23:24:52 <esowiki> [[///]] https://esolangs.org/w/index.php?diff=67944&oldid=67933 * Oerjan * (-72) Undo revision 67933 by [[Special:Contributions/Hex96|Hex96]] ([[User talk:Hex96|talk]]) (Not a truth-machine as it never prints anything.)
23:34:30 <esowiki> [[Talk:Burn]] M https://esolangs.org/w/index.php?diff=67945&oldid=67923 * Oerjan * (+90) Unsigned
23:50:25 <int-e> "this" is complicated. -- Maybe this(!) is more appropriate for here than for ##math :)