←2022-09-11 2022-09-12 2022-09-13→ ↑2022 ↑all
00:04:19 -!- Soni has quit (Ping timeout: 248 seconds).
00:23:55 -!- FreeFull has quit.
00:48:50 -!- Soni has joined.
03:00:00 -!- Taneb0 has quit (Quit: I seem to have stopped.).
03:01:09 -!- Taneb has joined.
06:07:53 -!- tromp has joined.
06:18:12 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
06:22:26 <esolangs> [[Brainfuck Encoded Concatenative Calculus]] M https://esolangs.org/w/index.php?diff=103166&oldid=100083 * Olus2000 * (+31) Added to Tuiring Tarpits category
06:25:44 -!- tromp has joined.
07:08:41 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:11:25 -!- tromp has joined.
07:27:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:27:49 -!- Sgeo has quit (Read error: Connection reset by peer).
07:33:04 -!- razetime has joined.
08:03:33 -!- razetime has quit (Ping timeout: 268 seconds).
08:10:34 -!- wib_jonas has joined.
08:18:24 -!- razetime has joined.
08:24:19 -!- underpantsgnome[ has joined.
08:51:47 -!- m5zs7k has quit (Ping timeout: 248 seconds).
08:54:20 -!- m5zs7k has joined.
09:00:48 -!- __monty__ has joined.
09:46:31 -!- wib_jonas has quit (Quit: Client closed).
10:37:39 -!- tech_exorcist has joined.
13:32:48 -!- Guest59 has joined.
13:33:17 -!- Guest59 has quit (Client Quit).
13:47:58 -!- Sgeo has joined.
14:33:33 -!- razetime has quit (Ping timeout: 265 seconds).
14:33:40 -!- razetime_ has joined.
14:58:55 -!- impomatic has joined.
15:02:02 -!- impomatic has quit (Client Quit).
15:02:22 -!- impomatic has joined.
15:11:33 -!- impomatic has quit (Quit: impomatic).
15:11:54 -!- impomatic has joined.
16:33:12 -!- impomatic has quit (Remote host closed the connection).
16:36:50 -!- tromp has joined.
16:54:01 <esolangs> [[Dot's]] https://esolangs.org/w/index.php?diff=103167&oldid=102961 * Ilikecreepers * (+7) /* the complcated stuff */
17:32:02 -!- razetime_ has quit (Remote host closed the connection).
17:33:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:12:42 -!- tromp has joined.
18:19:47 -!- FreeFull has joined.
18:21:32 -!- sebbu has quit (Ping timeout: 268 seconds).
18:22:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:24:32 -!- tromp has joined.
18:37:46 <int-e> b_jonas: https://gist.github.com/int-e/1d9ec969b5de773b40b74aadab1ce620 is my DES experiment so far, the thing where I'm seeing a significant speedup from forcing the compiler to load constants from a table instead of generating them inline. This may very well depend on the CPU architecture though.
18:40:49 <int-e> For example, the same code with gcc-10.2.1 on an i7-6700 is far less dramatic, the difference is almost lost in the noise
18:41:41 <int-e> (you can specify a C compiler with (rm main &&) make CC=...)
18:43:02 <int-e> (Also... DES. This is DES in ECB mode. Not what you should do in practice. But I'm (re-)learning about bit permutations, so that is fun.)
18:45:17 <b_jonas> int-e: have you tried to compile with --march=native (or whatever cpu your target has)?
18:45:20 -!- Lord_of_Life_ has joined.
18:46:36 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
18:47:24 -!- impomatic has joined.
18:47:45 <b_jonas> or maybe ask the gcc folks
18:48:06 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
18:48:20 <int-e> b_jonas: I have tried that; it makes the code slower in the case of clang; it seems to have no real effect for gcc.
18:49:25 <int-e> b_jonas: In the case of clang it does, however, eliminate the difference between the constant pool and non-constant pool versions of the 64 bit code... so that's something?
18:49:40 <int-e> It's all pretty weird.
18:51:33 -!- impomatic has quit (Client Quit).
18:51:53 -!- impomatic has joined.
18:56:59 -!- FreeFull has quit (Ping timeout: 252 seconds).
18:59:40 <int-e> It's not really important either. Noone needs DES :P
19:02:02 -!- impomatic has quit (Quit: impomatic).
19:02:24 -!- impomatic has joined.
19:06:33 -!- impomatic has quit (Client Quit).
19:07:59 -!- impomatic has joined.
19:11:37 <b_jonas> int-e: do you think this is something the compiler does only for DES specifically?
19:12:19 -!- impomatic has quit (Client Quit).
19:12:39 -!- impomatic has joined.
19:30:35 <int-e> b_jonas: well, it's unusually constant-rich bit manipulation code
19:31:24 <int-e> b_jonas: something entirely different: https://int-e.eu/~bf3/tmp/shapez-binary-counter.png (counts backwards because carries are triggered on low -> high flanks)
19:34:34 <int-e> I imagine there are more compact designs that rely more heavily on the undefined state (which here is only used for the reset line)
19:35:08 <b_jonas> hehe, you optimized it
19:35:23 <b_jonas> nice
19:35:37 <b_jonas> I didn't feel like I had to optimize it further than I did
19:35:44 <int-e> though there was a bit of synergy; the negator serves both for producing the next bit value and as part of the edge trigger
19:35:51 <b_jonas> I made sure it's reliable and not taking up a huge area and stopped there
19:36:28 <int-e> ("the", there are two; I mean the one to the bottom,bottom,left of the monitor)
19:37:14 <int-e> So, hmm. I could count foward if I switched the & for an | and switched the negator and delay (by transistor) before the next bit.
19:37:33 <int-e> and it'd fit in exactly the same layout.
19:39:42 <int-e> b_jonas: I didn't spend much time on this... I had this idea (using a single memory cell with edge-triggered complement) running through my head and spent maybe 20 minutes on this. (I'd like to say 10 but time tends to pass quickly when doing these things)
19:40:02 <b_jonas> int-e: or you can count backwards but say it counts forwards because the 1 signal represents a 0 bit in your number and a 0 signal represents a 1 bit in your number. it's not like a negated representation is weird when you're building logic from low-level single-bit gates.
19:43:56 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:51:23 <int-e> Ah, no, complementing would make the reset unreliable. Isn't that fun :)
19:52:04 <int-e> But yeah, counting backwards is just fine for hub control purposes.
19:52:37 <int-e> just needs some care when choosing the counter value to reset to
19:55:35 <int-e> b_jonas: basically, since undefined counts as 0, with &, undefined inhibits carrys; with | it wouldn't and that causes... interesting effects.
20:02:08 -!- tromp has joined.
20:12:59 -!- tech_exorcist has quit (Quit: Disconnecting).
20:41:56 -!- FreeFull has joined.
20:53:24 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:02:44 -!- impomatic has quit (Quit: impomatic).
21:03:04 -!- impomatic has joined.
21:04:05 <esolangs> [[Bidiroop]] M https://esolangs.org/w/index.php?diff=103168&oldid=101982 * BoundedBeans * (+36) Fixed indentation in brainfuck interpreter
21:07:15 -!- impomatic has quit (Client Quit).
21:07:36 -!- impomatic has joined.
21:10:19 <b_jonas> int-e: I reset to zero because it's not hard to change what counter value to look for to trigger the flush. the comparison can run at high latency, since if it does you just decrease the target number that you compare to. it's the increment that has to run fast.
21:12:36 -!- __monty__ has quit (Quit: leaving).
21:12:45 <b_jonas> but also you can do the comparison with low latency, because you can make a many-input logical-or gate that runs in a bounded number of ticks if you just convert the zero inputs to undefineds with transistors
21:13:26 <b_jonas> so I think it's worth to make the reset as simple as your accumulator lets you get away with
21:13:44 <b_jonas> build the accumulator first, figure out what the easiest way is to reset it, including using conflicts
21:14:12 <b_jonas> like just EMP the circuits by suddenly transistoring both a 0 and a 1 into all its parts, bam, reset
21:14:26 <b_jonas> and that's just worst case, usually you can do it easier than that
21:18:59 <esolangs> [[User:BoundedBeans]] https://esolangs.org/w/index.php?diff=103169&oldid=103155 * BoundedBeans * (+317) Majorly reorganized languages into "families"
21:33:46 <int-e> b_jonas: ah but it's easier to wait for the carry to flush out... less worry about the propagation time through the counter
21:34:54 <int-e> b_jonas: and in the little design I have there, the reset value is stored in constant signals. they could even be buttons instead.
21:35:48 <int-e> it's really just a sketch though; I'm not going to use this for anything
21:42:44 -!- impomatic has quit (Quit: impomatic).
21:43:04 -!- impomatic has joined.
21:44:22 <esolangs> [[C@]] M https://esolangs.org/w/index.php?diff=103170&oldid=101981 * BoundedBeans * (-2) fixed unimplemented category
21:47:15 -!- impomatic has quit (Client Quit).
21:47:38 -!- impomatic has joined.
22:09:03 -!- sprout_ has joined.
22:12:26 -!- sprout has quit (Ping timeout: 260 seconds).
22:14:10 <b_jonas> yeah, your crazy lockstep design doesn't need it
22:14:29 <b_jonas> nor would I need a counter if I just used splitteers
22:25:39 -!- FreeFull has quit (Ping timeout: 268 seconds).
22:26:33 -!- sprout_ has changed nick to sprout.
22:27:44 -!- impomatic has quit (Quit: impomatic).
22:28:06 -!- impomatic has joined.
22:32:15 -!- impomatic has quit (Client Quit).
22:32:36 -!- impomatic has joined.
23:02:44 -!- impomatic has quit (Quit: impomatic).
23:03:06 -!- impomatic has joined.
23:07:15 -!- impomatic has quit (Client Quit).
23:07:36 -!- impomatic has joined.
23:12:44 -!- impomatic has quit (Quit: impomatic).
23:13:04 -!- impomatic has joined.
23:14:00 <esolangs> [[Special:Log/newusers]] create * Seemingly Unrelated * New user account
23:16:37 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=103171&oldid=103144 * Seemingly Unrelated * (+84) /* Introductions */
23:17:15 -!- impomatic has quit (Client Quit).
23:17:16 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=103172&oldid=103171 * Seemingly Unrelated * (+101) /* Introductions */
23:17:37 -!- impomatic has joined.
23:28:46 -!- impomatic has quit (Quit: impomatic).
23:36:56 -!- salpynx has joined.
23:38:32 <esolangs> [[DFA-er Finite State Automaton Proof]] M https://esolangs.org/w/index.php?diff=103173&oldid=92331 * PythonshellDebugwindow * (+4) Link to DFA-er
23:39:37 <salpynx> I've just realised that 2 reg Minsky machines use a different set of instructions (minimum 3) from 3 or more register ones (minimum 2). This seems to be a common misunderstanding / easy mistake to make.
23:39:55 <salpynx> I was trying to use Portable Minsky Machine Notation for creating 2 register program machines, and realised it can't. Not without 3 registers.
23:40:09 <salpynx> It's more like 3 cell bf. It's why 3 cell bf is TC, and 2 cell isn't.
23:40:51 <salpynx> There are a number of wiki TC 'proofs' which are wrong because of this misconception:
23:40:58 <salpynx> 2Swap, Minsky Swap (ha, I wrote the faulty 'proof' for that one :( ), Yoctostack
23:41:20 <salpynx> Autopsy TC proof appears to use 2 reg MM, but has 4 unbounded regs available, so the proof is flawed, but the langauge still seems TC.
23:42:25 <salpynx> possibly others... anything that relies on a limit of 2 registers, and only using the obvious MM 2 commands: inc and dec+conditional
23:42:53 <salpynx> The naming is confusing; naming 2 different machines the same thing. There's also the 1 register TC machine Minsky mentions, but for some reason it's clearer that that one has different 'extra' instructions.
23:43:31 <salpynx> Minsky does say it: "For our purposes here it is more convenient to assume that we have [a'], [a-(n)], and [go(n)] at the start. Then ... (rest of 2reg TC proof)" on p. 256 , but it's not emphasised.
23:43:53 <salpynx> Re-reading Minsky (p.207), his explicit mention of a TC 3 reg machine requires the extra 'go(n)' instruction to eliminate the wasteful w. A 'normal' 2 instruction 3 reg Minsky machine is only TC because it can simulate a 3 instruction 2 reg described in chapter 14.
23:48:51 <salpynx> I needed to vent. now I can move on to something else.
←2022-09-11 2022-09-12 2022-09-13→ ↑2022 ↑all