00:10:45 <oren> I have a way of setting a 64-bit register to -1 in 4 bytes, namely REX.W 83 reg/1 -1
00:11:46 <oren> is there a way to do it in 3 bytes or less?
00:13:49 <shachaf> Is that or with -1 as a sign-extended 8-bit immediate?
00:15:19 <shachaf> I don't know anything better.
00:16:44 <shachaf> Hmm, 3 bytes is so short that you can brute-force search pretty easily.
00:24:50 -!- Argorok has quit (Ping timeout: 244 seconds).
00:25:41 <oren> one idea i had was SBB from itself after setting CF
00:26:22 <oren> unfortunately that one is also 4 bytes, not 3
00:26:27 -!- Lord_of_Life_ has joined.
00:26:57 <oren> it's 3 bytes for a 32 bit register tho
00:27:08 <oren> but so is the OR one
00:27:11 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
00:27:23 -!- pikhq has quit (Ping timeout: 264 seconds).
00:27:23 -!- yuu_ has quit (Ping timeout: 264 seconds).
00:27:39 -!- mich181189 has quit (Write error: Connection reset by peer).
00:27:39 -!- dnm has quit (Read error: Connection reset by peer).
00:27:41 -!- aarchi has quit (Read error: Connection reset by peer).
00:27:41 -!- integral has quit (Read error: Connection reset by peer).
00:27:42 -!- ProofTechnique has quit (Read error: Connection reset by peer).
00:27:44 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:28:14 -!- j4cbo has quit (Ping timeout: 246 seconds).
00:34:12 <zzo38> I have seen the suggestion to just disallow non-ASCII characters in the source code, which I agree. (This does not preclude having functions dealing with other character encodings (including UTF-8, although functions should not be forced to use Unicode!), or from putting data in other files if non-ASCII text is needed.)
00:40:04 <esolangs> [[Numbers]] M https://esolangs.org/w/index.php?diff=89516&oldid=89515 * PythonshellDebugwindow * (+2) /* Instructions */ fix typo
00:43:33 -!- j4cbo has joined.
00:43:57 -!- mich181189 has joined.
00:44:24 -!- aarchi has joined.
00:44:32 -!- dutch has quit (Quit: WeeChat 3.3).
00:46:10 -!- dutch has joined.
00:49:47 -!- mich181189 has quit (Ping timeout: 256 seconds).
00:49:47 -!- j4cbo has quit (Ping timeout: 256 seconds).
00:49:49 -!- aarchi has quit (Ping timeout: 268 seconds).
00:52:09 -!- mich181189 has joined.
00:53:20 -!- aarchi has joined.
01:01:21 -!- Argorok has joined.
01:03:45 -!- oerjan has joined.
01:04:41 -!- yuu_ has joined.
01:14:23 -!- pikhq has joined.
01:14:24 -!- j4cbo has joined.
01:14:36 -!- integral has joined.
01:24:36 -!- ProofTechnique has joined.
01:24:41 -!- dnm has joined.
02:43:06 <HackEso> 0: 6a ff pushq $0xffffffffffffffff \ 2: 58 pop %rax
02:45:10 <shachaf> Brute force to the rescue!
02:45:37 <shachaf> Brute-forcing this was pretty funny in various ways.
02:57:08 <oren> yea this makes sense because x86-64 stack instructions do 64 bits by default, unlike the other ones that do 32 bits by default
02:58:52 <oren> i was wondering how to brute dforce it- it would be difficult to avoid getting killed by undefined instruction exception i would think
02:59:42 <oren> i guess you could run each 3 bytes into a dissasembler and grep for -1?
03:05:00 <shachaf> I fork a new process for each one.
03:06:04 <shachaf> Originally it was misbehaving in all sorts of sneaky ways. The child would jump into the middle of the parent's code and start spawning its own children, and so on.
03:06:24 <shachaf> I switched to fork+exec and worked around some blatant misbehaviors and it seems to be going OK now, though it's very slow.
03:06:39 <shachaf> I think ~2000 instructions per second is a pretty good speed for a modern CPU to be running instructions at?
03:07:33 <shachaf> It would probably be better to use a debugging API to write the relevant instructions to memory and single-step through them and then check register state, and handle SIGILL and so on that way.
03:08:36 <shachaf> Who knew that a brute-force search over the space of all programs would find some sneaky programs that manage to get around your various safeguards?
03:15:38 <oren> ah that's an good approach. that way the original state of the uhh searcher program isn't messed up at least
03:50:20 <oren> in fact, stack operations can be used to reduce the size of a lot of stuff
03:50:57 <oren> e.g. mov %rax, %rcx is 3 bytes while push %rax, pop %rcx is 2
03:55:32 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89517&oldid=89449 * PixelatedStarfish * (+72)
03:56:02 <esolangs> [[Special:Log/upload]] upload * PixelatedStarfish * uploaded "[[File:FACTORY SHOWROOM.png]]"
04:03:22 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89519&oldid=89517 * PixelatedStarfish * (+418)
04:04:04 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89520&oldid=89519 * PixelatedStarfish * (-62)
04:04:51 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89521&oldid=89520 * PixelatedStarfish * (+6)
04:05:17 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89522&oldid=89521 * PixelatedStarfish * (-5)
04:06:34 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89523&oldid=89522 * PixelatedStarfish * (+1)
04:08:04 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89524&oldid=89523 * PixelatedStarfish * (+2)
04:12:19 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89525&oldid=89524 * PixelatedStarfish * (-305)
04:14:02 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89526&oldid=89525 * PixelatedStarfish * (-1)
04:14:54 <esolangs> [[BrainSoup]] https://esolangs.org/w/index.php?diff=89527&oldid=89526 * PixelatedStarfish * (+23)
05:28:15 -!- ecs has quit (Ping timeout: 268 seconds).
05:30:12 -!- ecs has joined.
05:45:57 -!- oerjan has quit (Quit: Nite).
06:06:20 -!- arseniiv has joined.
06:24:08 -!- chiselfuse has quit (Remote host closed the connection).
06:24:33 -!- chiselfuse has joined.
06:29:36 <esolangs> [[Lento]] N https://esolangs.org/w/index.php?oldid=89528 * Xorol * (+77) Created page with "Lento is a variant of [[Python]] where each line takes 10 seconds to execute."
06:51:10 <oren> the six bytes {0xFC, 0122, 0131, 0xF3, 0xA4, 0xC3} are sufficient for memcpy
06:53:17 <oren> thanks to shachaf, who discovered that I had completely overlooked the stack opcodes
06:55:50 <zzo38> What happen if you want to make a PGP signature for a message that already contains "-----BEGIN PGP SIGNATURE-----"?
06:57:44 <zzo38> I found RFC 4880 and will see if that will answer my question
07:04:32 <zzo38> It does; it says any line of the message starting with "-" must have "- " added in front.
07:51:53 -!- NotApplicable1 has joined.
07:54:30 -!- Kit has quit (Ping timeout: 260 seconds).
08:00:37 -!- ecs has quit (Read error: Connection reset by peer).
08:00:44 -!- ecs has joined.
08:06:45 -!- Sgeo has quit (Read error: Connection reset by peer).
08:21:10 -!- wareya has quit (Ping timeout: 260 seconds).
08:33:28 <shachaf> `asm .byte 0xfc, 0122, 0131 0xf3, 0xa4, 0xc3
08:33:32 <HackEso> /tmp/asm.s: Assembler messages: \ /tmp/asm.s:1: Error: junk at end of line, first unrecognized character is `0' \ /tmp/asm.s: Assembler messages: \ /tmp/asm.s:1: Error: junk at end of line, first unrecognized character is `0'
08:33:36 <shachaf> `asm .byte 0xfc, 0122, 0131, 0xf3, 0xa4, 0xc3
08:33:38 <HackEso> 0: fc cld \ 1: 52 push %rdx \ 2: 59 pop %rcx \ 3: f3 a4 rep movsb %ds:(%rsi),%es:(%rdi) \ 5: c3 retq
08:38:01 -!- kspalaiologos has joined.
09:13:52 <esolangs> [[Special:Log/newusers]] create * Mellobacon * New user account
09:16:32 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=89529&oldid=89497 * Mellobacon * (+161) /* Introductions */
09:24:52 -!- sknebel has changed nick to sebsel.
09:25:00 -!- sebsel has changed nick to sknebel.
09:30:52 -!- wib_jonas has joined.
09:32:00 <wib_jonas> shachaf: in the form of the {OR RAX, imm8} instruction, is the imm8 sign-extended or zero-extended? if it's sign-extended then {OR RAX, -1} should work
09:32:35 -!- Koen has joined.
09:32:50 <wib_jonas> it won't be 3 bytes unless it's for RAX
09:34:04 <wib_jonas> "in fact, stack operations can be used to reduce the size of a lot of stuff" => yes, but that's usually a bad idea. it makes the decoder, the decoded operations loop cache, and the scheduler all work harder than they should
09:34:22 <wib_jonas> there's a good reason why the optimization manual recommends you to use one instruction instead of two whenever possible
09:41:42 <zzo38> My other ideas (I don't know what 64-bit x86 has or how many bytes they are, so they might not work) includes: zero and decrement, zero and bitwise NOT, XORN by itself, subtract from self with borrow; I don't know which if any of these will be work, and for which registers (they might be different depending which register you want)?
09:42:20 <zzo38> There might be even more confusing ways, whether involving floating points, address-based arithmetics, etc? I don't know.
09:42:57 <zzo38> Also, there might be some ways that depend on the previous state, which depending on the program you might be able to guarantee.
09:43:20 <esolangs> [[User:ArthroStar11]] https://esolangs.org/w/index.php?diff=89530&oldid=89465 * ArthroStar11 * (-1913) Blanked the page
09:45:23 <wib_jonas> the obvious idea is to reserve a register that has -1, then you can copy from that in 3 bytes
09:49:23 <zzo38> Yes, if your program doesn't use all of the registers for other purposes, then you can do that.
09:59:50 -!- Melvar has quit (Ping timeout: 260 seconds).
10:11:46 <shachaf> wib_jonas: There's no imm8 or for RAX.
10:12:18 <shachaf> Looking at https://www.felixcloutier.com/x86/or , the RAX variant takes imm32.
10:15:13 <wib_jonas> shachaf: sorry, you're right about that, I got my opcode table wrong.
10:17:11 <wib_jonas> in that case I'd just recommend using one of the four-byte methods, like {OR reg, -1} with a sign-extended imm8
10:18:19 <wib_jonas> or in fact sometimes the seven-byte {MOV reg, -1} may be better, to avoid the false dependency
10:19:35 <esolangs> [[Madlad]] N https://esolangs.org/w/index.php?oldid=89531 * Mellobacon * (+1372) Created page with "=MadLad= '''MadLad''' is an esoteric programming language meant to be similar to C# but with a twist. MadLad is a very angry language and will yell at you for everything. Feat..."
10:23:19 <esolangs> [[Madlad]] M https://esolangs.org/w/index.php?diff=89532&oldid=89531 * Mellobacon * (+98)
10:25:30 <esolangs> [[Madlad]] M https://esolangs.org/w/index.php?diff=89533&oldid=89532 * Mellobacon * (+11)
10:32:59 <shachaf> wib_jonas: I did find a 3-byte method with push and pop, above.
10:41:40 <int-e> why ...oh because of that stupid additional prefix that x86/64 needs to disambiguate modr/m registers.
10:41:59 <int-e> so the obvious or rax,-1 needs 4 bytes
11:01:12 <wib_jonas> shachaf: yes, but I still don't recommend that
11:03:43 <shachaf> My brute-force program found a bunch of other things but they were mostly red herrings that relied on memory layout being in various particular ways.
11:24:33 <esolangs> [[List of ideas]] https://esolangs.org/w/index.php?diff=89534&oldid=89488 * ColorfulGalaxy (disambiguation) * (+99) Undo revision 89488 by [[Special:Contributions/Guy Fawkes Rep|Guy Fawkes Rep]] ([[User talk:Guy Fawkes Rep|talk]]) : Mentioned the Korean language
11:26:02 -!- earendel has joined.
11:44:52 -!- Melvar has joined.
13:15:23 -!- kspalaiologos has quit (Quit: Leaving).
13:40:50 -!- ProofTechnique has quit (Ping timeout: 260 seconds).
13:41:01 -!- integral has quit (Ping timeout: 256 seconds).
13:41:01 -!- pikhq has quit (Ping timeout: 256 seconds).
13:41:16 -!- aarchi has quit (Ping timeout: 268 seconds).
13:41:53 -!- dnm has quit (Ping timeout: 250 seconds).
13:42:09 -!- yuu_ has quit (Ping timeout: 256 seconds).
13:42:19 -!- earendel has quit (Ping timeout: 250 seconds).
13:42:28 -!- j4cbo_ has joined.
13:42:30 <esolangs> [[KonamiCode]] https://esolangs.org/w/index.php?diff=89535&oldid=89513 * GingerIndustries * (+111) Added <<<
13:42:30 -!- mich181189 has quit (Ping timeout: 268 seconds).
13:42:40 -!- dnm has joined.
13:42:40 -!- earendel has joined.
13:42:42 -!- j4cbo has quit (Ping timeout: 260 seconds).
13:42:42 -!- j4cbo_ has changed nick to j4cbo.
13:42:52 -!- integral has joined.
13:43:07 -!- Argorok has quit (Ping timeout: 268 seconds).
13:43:10 -!- pikhq has joined.
13:43:28 -!- pikhq has changed hostmask to sid394595@user/pikhq.
13:43:29 -!- ProofTechnique has joined.
13:43:34 -!- mich181189 has joined.
13:43:53 -!- aarchi has joined.
13:43:56 -!- Argorok has joined.
13:43:57 -!- yuu_ has joined.
13:44:09 -!- mich181189 has changed hostmask to sid268336@londonhackspace/mich181189.
13:56:02 -!- sprout_ has quit (Ping timeout: 246 seconds).
14:06:32 -!- wib_jonas has quit (Quit: Client closed).
14:09:29 -!- sprout has joined.
14:16:59 -!- yuu_ has quit (Ping timeout: 250 seconds).
14:17:02 -!- ProofTechnique has quit (Ping timeout: 268 seconds).
14:17:47 -!- pikhq has quit (Ping timeout: 264 seconds).
14:17:47 -!- dnm has quit (Ping timeout: 264 seconds).
14:18:02 -!- mich181189 has quit (Ping timeout: 240 seconds).
14:18:02 -!- j4cbo has quit (Ping timeout: 240 seconds).
14:18:17 -!- integral has quit (Ping timeout: 250 seconds).
14:18:23 -!- aarchi has quit (Ping timeout: 264 seconds).
14:19:17 -!- sprout has quit (Ping timeout: 264 seconds).
14:19:35 -!- Argorok has quit (Ping timeout: 264 seconds).
14:19:35 -!- earendel has quit (Ping timeout: 250 seconds).
14:22:20 -!- integral has joined.
14:22:20 -!- dnm has joined.
14:22:28 -!- mich181189 has joined.
14:23:10 -!- Argorok has joined.
14:23:27 -!- earendel has joined.
14:24:32 -!- ProofTechnique has joined.
14:25:55 -!- Koen has quit (Remote host closed the connection).
14:32:29 -!- sprout has joined.
14:32:37 -!- yuu_ has joined.
14:34:00 -!- j4cbo has joined.
14:36:55 -!- sprout has quit (Ping timeout: 250 seconds).
14:44:07 -!- sprout has joined.
14:44:37 -!- aarchi has joined.
14:52:52 -!- Sgeo has joined.
14:54:43 -!- pikhq has joined.
14:58:50 -!- dutch has changed nick to SweetLeaf.
15:02:47 -!- Koen has joined.
15:21:23 -!- earendel has quit (Quit: Connection closed for inactivity).
16:02:13 -!- APic has quit (Quit: [TLS] Client upgrade).
16:02:32 -!- APic has joined.
16:04:53 -!- simcop2387 has quit (Ping timeout: 250 seconds).
16:05:05 -!- earendel has joined.
16:05:35 -!- perlbot has quit (Ping timeout: 268 seconds).
16:11:55 -!- simcop2387 has joined.
16:12:13 -!- perlbot has joined.
16:29:41 -!- arseniiv has quit (Ping timeout: 245 seconds).
16:45:26 -!- arseniiv has joined.
17:19:49 -!- Trieste_ has changed nick to Trieste.
17:44:44 -!- SweetLeaf has changed nick to Spikeheron.
18:01:50 -!- wareya has joined.
18:44:35 <esolangs> [[Special:Log/newusers]] create * Twingamerdudes * New user account
18:49:48 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=89536&oldid=89529 * Twingamerdudes * (+269) /* Introductions */
19:06:35 <esolangs> [[KonamiCode]] https://esolangs.org/w/index.php?diff=89537&oldid=89535 * GingerIndustries * (+38)
19:07:42 -!- Koen has quit (Remote host closed the connection).
19:12:33 -!- FreeFull has joined.
19:50:41 <esolangs> [[Rhoam]] M https://esolangs.org/w/index.php?diff=89538&oldid=71653 * SoundOfScripting * (+29) Added [[Category:Turning tarpits]]
19:52:06 <oren> hmm what if I used IP-relative addressing and put useful constants nearby outside the function
19:52:16 <esolangs> [[Wrapping Rhoam]] M https://esolangs.org/w/index.php?diff=89539&oldid=71655 * SoundOfScripting * (+29) Added [[Category:Turning tarpits]]
19:54:36 <oren> nah, there is no single-byte IP-relative offset
19:58:59 <int-e> hmm... so gcc/clang load the value into a temporary register for arithmetic with a full 64 bit value
19:59:26 <esolangs> [[M?!]] M https://esolangs.org/w/index.php?diff=89540&oldid=88978 * Kaveh Yousefi * (-2) Changed the category tag Unimplemented to Implemented.
19:59:37 <int-e> which I guess isn't so bad because there are all those extra general purpose registers
20:00:31 <esolangs> [[AEWNN]] M https://esolangs.org/w/index.php?diff=89541&oldid=89507 * Kaveh Yousefi * (+25) Added the category tag Output only.
20:06:23 <esolangs> [[Mash]] N https://esolangs.org/w/index.php?oldid=89542 * Twingamerdudes * (+3756) This is the wiki page for Mash
20:09:43 <esolangs> [[User:Twingamerdudes]] N https://esolangs.org/w/index.php?oldid=89543 * Twingamerdudes * (+489) my pfp page
20:40:12 <esolangs> [[Mash]] M https://esolangs.org/w/index.php?diff=89544&oldid=89542 * Twingamerdudes * (+29) This is the wiki page for Mash
20:52:40 <esolangs> [[Mash]] M https://esolangs.org/w/index.php?diff=89545&oldid=89544 * Twingamerdudes * (+465) This is the wiki page for Mash
20:53:46 <esolangs> [[Mash]] M https://esolangs.org/w/index.php?diff=89546&oldid=89545 * Twingamerdudes * (+13) Fixed formatting issues
20:54:08 <esolangs> [[Mash]] https://esolangs.org/w/index.php?diff=89547&oldid=89546 * Twingamerdudes * (-2)
20:55:02 -!- sprout_ has joined.
20:56:03 <esolangs> [[Mash]] M https://esolangs.org/w/index.php?diff=89548&oldid=89547 * Twingamerdudes * (+21) /* Syntax */
20:58:29 -!- sprout has quit (Ping timeout: 268 seconds).
21:22:51 -!- arseniiv has quit (Ping timeout: 256 seconds).
21:48:22 -!- Koen has joined.
22:02:14 -!- Twingamerdudes has joined.
22:06:12 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=89549&oldid=89503 * Twingamerdudes * (+11) Added mash
22:08:00 -!- Twingamerdudes has quit (Quit: Client closed).
22:12:07 <riv> https://www.youtube.com/c/gnembon/videos works at mojang now
22:21:47 -!- Twingamerdudes has joined.
22:23:32 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=89550&oldid=89549 * PythonshellDebugwindow * (+0) /* M */ Fix order
22:28:25 <esolangs> [[Talk:Mash]] N https://esolangs.org/w/index.php?oldid=89551 * Twingamerdudes * (+218) Beginning of Mash Discussion
22:30:42 <esolangs> [[Mash]] M https://esolangs.org/w/index.php?diff=89552&oldid=89548 * Twingamerdudes * (+12) /* Hello World */
22:35:46 <esolangs> [[Category:Brainfuck equivalents]] https://esolangs.org/w/index.php?diff=89553&oldid=34092 * PixelatedStarfish * (+300)
22:36:31 <esolangs> [[Category:Brainfuck equivalents]] https://esolangs.org/w/index.php?diff=89554&oldid=89553 * PixelatedStarfish * (-37)
22:36:46 <esolangs> [[Category:Brainfuck equivalents]] https://esolangs.org/w/index.php?diff=89555&oldid=89554 * PixelatedStarfish * (+0)
22:42:20 <zzo38> What if you want to display text with a semicolon? Also, one example says +_^ for gather input and other one says _+^ for gather input, and the specification says "put ^ in front of the _".
22:51:25 <Twingamerdudes> you can't print text with the semi colon, the semi colon represents the end of the string, and for the _+^ problem, that was a typo
22:51:55 <esolangs> [[Mash]] M https://esolangs.org/w/index.php?diff=89556&oldid=89552 * Twingamerdudes * (+0) Fixed typo
22:55:15 -!- perlbot has quit (Ping timeout: 250 seconds).
22:55:47 -!- simcop2387 has quit (Ping timeout: 256 seconds).
23:00:40 -!- simcop2387 has joined.
23:00:58 -!- Koen has quit (Quit: Leaving...).
23:08:45 -!- perlbot has joined.
23:14:25 <esolangs> [[Mash]] https://esolangs.org/w/index.php?diff=89557&oldid=89556 * Twingamerdudes * (+189) /* Cat Program */
23:15:12 <esolangs> [[Mash]] https://esolangs.org/w/index.php?diff=89558&oldid=89557 * Twingamerdudes * (+43) /* Syntax */
23:19:31 <esolangs> [[Subleq]] https://esolangs.org/w/index.php?diff=89559&oldid=89475 * Shaman * (+26)
23:20:16 <esolangs> [[Subleq]] https://esolangs.org/w/index.php?diff=89560&oldid=89559 * Shaman * (+5)
23:28:13 -!- Cale has joined.
23:49:14 -!- Twingamerdudes has quit (Quit: Client closed).
23:51:41 -!- rodgort` has quit (Quit: Leaving).
23:53:14 <esolangs> [[List of ideas]] https://esolangs.org/w/index.php?diff=89561&oldid=89534 * Guy Fawkes Rep * (-22)
23:54:37 <esolangs> [[Mash]] M https://esolangs.org/w/index.php?diff=89562&oldid=89558 * Twingamerdudes * (+24) Added Category Low level
23:56:24 <esolangs> [[Mash]] M https://esolangs.org/w/index.php?diff=89563&oldid=89562 * Twingamerdudes * (-13) /* Tips */
23:57:25 -!- Twingamerdudes has joined.