00:22:05 -!- tromp has quit (Remote host closed the connection). 00:22:59 -!- tromp has joined. 00:40:23 -!- oerjan has joined. 00:41:48 -!- nfd9001 has joined. 00:46:33 [[Truth-machine]] https://esolangs.org/w/index.php?diff=58177&oldid=58176 * Oerjan * (+2) Undo revision 58176 by [[Special:Contributions/ZM|ZM]] ([[User talk:ZM|talk]]) (No fair undoing *all* the moves. Also, we have a tradition to sort some "1337" names as if they were spelled normally, but maybe not consistently.) 00:48:30 -!- AnotherTest has quit (Ping timeout: 264 seconds). 01:17:35 -!- zzo38 has joined. 01:26:19 -!- zzo38 has quit (Disconnected by services). 01:26:24 -!- zzo38 has joined. 01:40:07 I'm writing a emulator for the MC88110. Someone please slap me. 01:51:19 @slap moony 01:51:20 * lambdabot loves moony , so no slapping 01:51:31 sorry, didn't work 01:52:27 -!- zzo38 has quit (Ping timeout: 240 seconds). 01:52:54 -!- zzo38 has joined. 01:53:15 Do you know how to uncook Magic: the Gathering puzzles? 02:00:58 -!- nfd9001 has quit (Ping timeout: 246 seconds). 02:04:19 -!- zzo38 has quit (Ping timeout: 244 seconds). 02:13:08 -!- zzo38 has joined. 02:29:35 Hello 02:36:06 -!- xkapastel has quit (Quit: Connection closed for inactivity). 04:00:01 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 04:07:33 -!- MDead has joined. 04:10:21 -!- MDude has quit (Ping timeout: 268 seconds). 04:10:28 -!- MDead has changed nick to MDude. 05:29:12 -!- oerjan has quit (Quit: Nite). 05:44:48 -!- sleffy has joined. 05:45:47 -!- sleffy has quit (Client Quit). 06:04:49 -!- xkapastel has joined. 07:34:47 -!- tromp has quit (Remote host closed the connection). 07:34:59 -!- tromp has joined. 09:44:31 -!- xkapastel has quit (Quit: Connection closed for inactivity). 12:28:21 -!- xkapastel has joined. 13:33:17 -!- sleepnap has joined. 13:45:23 -!- arseniiv has joined. 15:09:22 -!- moony_ has joined. 15:09:31 OpenBSD has an assembler for the MC88100. yaaaay 15:09:42 So i have a reference point that I can use to crosscheck everything now 15:10:20 https://github.com/syuu1228/openbsd-src/tree/ca0d3073d059b7237a1392dde772265698465272/sys/arch/m88k <<< Reference point! :D 15:18:12 -!- wob_jonas has joined. 15:18:19 zzo38: hello. what do you mean by uncook? 15:19:05 hi wob_jonas 15:19:58 hi moony_. why are you writing an emulator, and are you at least making it very efficient and microoptimized? 15:21:05 I plan on it, yes 15:21:17 good 15:21:31 but i also have to make it accurate as possible, because otherwise it'd be a crappy emulator of an obscure system, and no-one else would be there to make a good one 15:21:48 but are you also putting on some impractical constraints that make the micro-optimization hard to do and a waste of your time? 15:22:17 wob_jonas: no. Cache emulation in this case, for example, is actually easy and fast (Only 128 lines), so a modern CPU can easily pull it off. 15:22:41 and the entire 88k cache, with it's status info, easily fits into a modern CPU's cache 15:23:24 even then, emulating 192 different registers with only 16 registers is kinda hard :P (two sets of 64 control registers, 32 GPR, and 32 80-bit FPR) 15:24:02 CPU only runs at 50MHZ, but it runs 2 instructions per cycle optimally, so I have to be careful anyways 15:24:07 I want it to run at full speed accurately 15:24:48 w-b_jonas: I mean to make the altered version of the puzzle which avoids the cook, which should keep the proper solution or pretty close, and should also try to retain the theme if possible 15:25:09 wob_jonas: if you're curious, here's the MC88K serie's manuals: http://www.bitsavers.org/components/motorola/88000 15:25:49 moony_: do you have any programs that run on that MC88110 that you'll be able to run with this emulator? 15:26:10 zzo38: ah, de-cheese the puzzle. I see. 15:27:36 -!- moony__ has joined. 15:28:07 moony__: do you have any programs that run on that MC88110 that you'll be able to run with this emulator? 15:28:16 wob_jonas: OpenBSD, duh 15:28:23 OpenBSD has a port, hence why i noted it 15:28:26 good 15:28:30 i can use it as my testcase 15:28:51 it also has an assembler and GCC port avaliable, but i'm rolling my own anyways because i can 15:29:27 -!- moony_ has quit (Ping timeout: 256 seconds). 15:29:43 moony_: you have checked that Bellard doesn't happen to have an accurate emulator for this system, right? 15:29:56 I've looked everywhere :P 15:30:10 well sure, if it runs openbsd, then it has to have a gcc port 15:30:46 openbsd is implemented mostly in C 15:30:55 yea 15:31:02 that doesn't mean that it's a well-maintained recent gcc port of course 15:31:15 just some gcc port that could more or less compile some stuff at some point 15:31:33 if a wizard knew how to invoke it 15:31:34 The main difficulty with the 88k is that it supports multicore, but the way it does it is unusual these days: Each "core" is a seperate physical chip 15:31:51 that's not that unusual really 15:32:03 we only had to put them on the same chip because clock frequencies got faster, 15:32:09 Mm. 15:32:28 maybe I'm showing my age 15:32:43 I'm still in highschool, so maybe you are. 15:33:05 I mean sure, these days in mobile phones you put everything in one chip, memory and all 15:33:44 but that didn't make sense back when I was young, because individual chip designs cost a lot to start to make, and once they started they could make as many as they wanted for cheap, it's making the design that was hard 15:34:23 which is also why ROMs were a bit expensive, so video games could only be produced in large numbers, and there were no large enough volatile memories yet 15:34:33 so casettes and disks were eventually used as a workaround 15:34:54 and by disks I mean floppy disks, and eventually CDs 15:35:22 like for the famicom 15:35:55 Oldest thing we have in my house is a gamecube 15:35:57 :P 15:36:19 I don't have a famicom or other old hardware either 15:36:35 well, not as a physical system at least, I can run emulated old systems obviously 15:36:52 I don't even have a floppy drive anymore, I got rid of it 15:37:08 mind you, this computer I'm sitting at is old, but it's nowhere near that old 15:37:53 it's only like 8 years old or something 15:38:13 was a great top quality computer back when I got it 15:38:18 now it's very obsolete 15:38:42 I wish i remembered my XBOX Live password for my 360 15:38:57 because my account has Marble Blast Ultra installed, and guess what: Ultra is no longer for sale anywhere 15:39:03 :< 15:39:25 get a copy in an illegal way then, if you're sure you've already bought it legally 15:39:39 or use their customer service to reset the password of your account 15:40:04 I literally don't know anything related to the account anymore 15:40:08 not even the email used 15:40:09 you probably only need to know your name and password and ask them on phone on workdays during business times 15:40:09 :< 15:40:15 um 15:40:26 s/name and password/name and birth date/ 15:40:30 isn't that how it works? 15:40:37 Idk, I'll check when i get home 15:42:22 but getting an illegal copy of the software from the internets might still be simpler 15:42:42 mk 15:43:11 that said, you'd better ask someone who actually knows something about nintendo or game systems, rather than me 15:43:27 s/nintendo/microsoft/ 15:43:32 yeah, that 15:43:34 it doesn't matter much anyways 15:43:42 I only own a nintendo game boy, no other game system 15:44:03 apart from that, at home I only play video games on a PC 15:44:05 Marble It Up!, a spiritual successor to the Marble Blast series (Gold and Ultra), is coming out for PC soon 15:44:15 although I've played quite a lot on other people's game systems of all brands 15:44:18 so it's enough for me 15:44:42 well, not all brands 15:45:01 I've played on nintendo, sega, and sony, but not on microsoft ones IIRC 15:45:26 "spiritual successor" is ... somewhat broad. 15:46:14 Well, the game has the same concept and design as the original Marble Blast games, even people from the original dev team helped 15:46:21 you could say it's similar to what Sonic Mania is for sonic. 15:48:47 it's not a TRUE successor only because GarageGames, the company that owns Marble Blast, doesn't seem to want a new Marble Blast game, probably because of the now small market 15:48:53 :P 15:49:34 ah yes 15:49:37 `? keenlist 15:49:38 keenlist is notification for when Tom Hall acquires the necessary intellectual property rights to create the videogame series Commander Keen: The Universe is Toast 15:50:01 the owner of the brand isn't selling the rights, despite that they have no use for it 15:50:11 pretty much 15:50:32 so instead of one good officially sanctioned games, there are only a lot of fan-made games 15:51:16 but none of them made by such a game developer genius as Tom Hall 15:51:52 most of the good ones are just modifications of the original games with new graphics and levels 15:52:16 which is certainly not what Tom Hall would do if he was allowed to make a new game 15:52:31 mind you, they can still be good games 15:52:36 it's just not the same thing 16:01:33 moony__: at some point, please publish this emulator thing somewhere public, and tell this channel about it too 16:01:44 I plan on it 16:02:14 One of my silly ideas was to try and make it connect to this channel and let you run stuff on it :P 16:02:52 nice. I've done that once, but I haven't written the emulator, I only wrote the connection, and I ran it on a side channel because it was too noisy 16:03:02 i know. that DOS bot :P 16:03:20 i was so curious i made a lot of said noise :P 16:03:30 I'd like to point to schmorp's two crazy projects each one emulating an old system with a cpu: http://blog.schmorp.de/2015-06-08-emulating-linux-mips-in-perl-1.html http://blog.schmorp.de/2015-11-10-emulating-vt102-hardware-in-perl-1.html 16:04:49 Glad i learned perl recently 16:04:54 (I like perl now. Send help) 16:04:56 also to this year's IOCCC winner by Christopher Mills http://www.ioccc.org/years.html#2018_mills 16:05:11 moony_: I can't really. I hate perl, but I can't stop using it 16:05:23 definitely look at ioccc/2018/mills if you haven't, it's very crazy 16:05:30 Perl 6 has a lot of nice things 16:05:41 perl 6? ok, now you need help 16:05:52 perl 6 is bad for you, stop. 16:06:07 It's true. 16:06:08 lol 16:06:13 Perl 6 is slow 16:06:23 i just use it for quick tasks, like i would with perl 16:06:25 are you tied in a room and is someone focing you to type "Perl 6 has a lot of nice things" under duress? can you give an address? 16:06:49 Well i'm an insane codegolfer. Sorry, i'm sitting in a study hall typing that, no duress here 16:06:51 or at least a country 16:07:08 i find writing x86-64 fun. 16:07:20 maybe there are charity organizations offering help for addiction issues available in your country 16:07:33 * moony__ is literally prototyping the cache lookup function at this second 16:07:39 * moony__ in x86-64 16:07:44 there's no problem with writing x86_64, that can be fun 16:07:53 golfing it can be awful 16:07:55 :P 16:07:59 it's only what you said about perl 6 that scares me 16:08:09 no u 16:08:25 yeah, me too, and I'm seeing a psychologist about all the issues I have 16:08:37 Here, to prove my insanity: The main reason i'm writing this massive emulator project is so i can do codegolf with it 16:08:54 oh, so that's why you want an _accurate_ emulator. that's a good reason 16:09:04 :P 16:09:25 That, and a real MVMe board, or designing my own board, would cost a fortune. So real hardware is out of the question 16:09:40 unless someone gifts me one haha (Like that would ever happen) 16:10:36 sure! I'm a software guy, I think writing custom software on very powerful PCs is the solution to everything, and often consider custom hardware projects crazy when it seems like they could be replaced by a five line perl script 16:10:51 Well, i plan on learning how to make custom hardware anyways 16:11:01 or not perl, whatever, a software solution on a PC they already have 16:11:05 so maybe someday i COULD make a real system using the 88k if i want to 16:11:17 i mean, a 88110 only goes for $20 on ebay, because no-one wants them 16:11:18 but I'm tolerant, just because I think they're crazy I won't try to stop them 16:11:28 it's their free time and they choose to spend it however they like 16:11:51 maybe it's a useful hobby to get into hardware and later design actually useful big hardware, one that does something that you can't just do with a simple program on a PC 16:11:54 i wonder what happened to #asm 16:11:59 it's become invite only 16:12:06 i wanted to check if cmp was slower than test 16:12:22 moony__: it's forwarded to ##asm 16:12:33 oh 16:12:42 and ##asm says i'm banned. I blame freenode mask. 16:12:45 :p 16:12:59 let me check 16:13:43 let me see which ban mask you match 16:13:56 oh 16:14:12 moony__: ":card.freenode.net 367 nc_jonas ##asm *__*!*@* card.freenode.net 1535082016" 16:14:21 RIP 16:14:22 moony: renick yourself 16:14:32 -!- moony__ has changed nick to moony2. 16:15:01 does that help? 16:15:33 mhm 16:16:52 note that usually IRC allows you to query the ban list even if you're banned from the channel 16:17:06 so if you meet this sort of thing you can check this yourself too 16:17:11 not that I don't want to help, just saying 16:17:37 -!- moei has joined. 16:18:49 zzo38: anyway, no, I don't know how to de-cheese M:tG puzzles. you can try to ask ais523 16:20:21 also, yes, I should continue doing the Oracle dump thingy 16:20:27 -!- moony2 has quit (Ping timeout: 256 seconds). 16:27:25 -!- AnotherTest has joined. 16:34:39 -!- moony2 has joined. 16:37:46 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client). 17:09:11 -!- moony2 has quit (Ping timeout: 256 seconds). 17:11:57 -!- Essadon has joined. 17:14:49 [[Temporal]] https://esolangs.org/w/index.php?diff=58178&oldid=58076 * Plokmijnuhby * (-265) On second thoughts, I'm making it more like Underload. 17:20:29 -!- oerjan has joined. 17:37:19 -!- hexfive has joined. 17:37:44 -!- hexfive has quit (Client Quit). 17:38:07 -!- hexfive has joined. 18:15:16 -!- oerjan has quit (Quit: Later). 18:48:58 -!- Bowserinator has quit (Excess Flood). 18:49:28 -!- Bowserinator has joined. 19:42:32 -!- Phantom_Hoover has joined. 19:47:03 oh a time-travelling language 19:48:29 for me it seems at least a part of these should be equivalent to languages abusing amb or other such nondeterministic retcon stuff 19:50:09 also I occasionally unforgot about Riemann surfaces: these time-travelling programs could essentially run not on a linear time but some more exotic like two interdependent universes 19:51:07 what do you think? 19:51:28 okay I’m going to the past to give myself an idea 19:52:30 @messages? 19:52:30 Sorry, no messages today. 19:57:37 oh lambdabot oh dear / it’s such a thing unclear / to me if you time-travel / or not; I hit the gravel 19:59:05 it would be nice and all / if you could send me something / from future times to now / because I’ve lost the rhyme 20:11:19 Some television shows have popup messages. Can you get rid of them by recording from multiple channels and then some computer program can be used to fix them? 20:16:28 -!- arseniiv has quit (Ping timeout: 246 seconds). 20:27:13 -!- wob_jonas has joined. 20:28:15 I bought myself a frame for eyeglasses! I had my doubts, but I think I chose right. Unless this one is unsuitable somehow, I shall have a fancy new pair of eyeglasses ready by christmas 2018 the latest. 20:31:01 -!- MDude has quit (Ping timeout: 244 seconds). 21:32:30 Alright, i have a good idea of what i do need and what i don't for a fairly accurate emulator (Mostly™ cycle accurate). But first, nostalgia trip. 21:35:38 moony: what peripherials are you planning to support? 21:36:04 Serial, SCSI drive, and maybe a display. 21:36:10 Really just adding stuff as needed 21:36:12 :P 21:36:26 wow nice 21:36:41 wait, no floppy or casette? or the floppy or casette is on SCSI? 21:36:58 the MC88100, like it's cousin (the M68k), uses memory mapped peripherals, so i can just put less accurate peripheral emulation in another thread and call it a day 21:37:11 SCSI drive <<< yes 21:37:11 I guess you can have a SCSI floppy drive, and you probably don't even need to make the implementation for that yourself. 21:37:49 memory mapped peripherials still need some magic by the emulator for controlling the memory mapping 21:38:32 yea, but the emulator otherwise doesn't care much about what the peripheral IS 21:39:52 sure 21:40:07 luckily the peripherial and the OS do most of the work 21:40:15 mhm 21:40:43 and yes, serial line is definitely practical, it's easy to get working and a good way to interact with the program running in your emulated box 21:40:54 that's why I used serial console for termbot too 21:41:22 and that's why you couldn't use the many DOS programs that insist on communicating directly through keyboard and display 21:41:41 most DOS programs are optimized for that, they don't do both because that would cost resources 21:42:19 also, compared to the time needed to look up memory mapping info and emulate the cache, saying "ok forward this to a async buffer on a IO device" is cheap as hell 21:42:46 and these programs I ran were written in the PC era, when a working display (CGA or monochrome) and PC-like keyboard was standard for computers 21:42:51 (for DOS computers that is) 21:43:22 and the display and keyboard (and mouse) is just more versatile than a serial console 21:43:27 fast too 21:43:37 moony: sure 21:44:26 moony: so have you found good enough technical documentation about the CPU and motherboard that you can use for writing this emulator without having to guess too much? 21:44:45 The CPU's own manual is great. :P 21:44:58 I have a paperback copy of the MC88100 manual in my possession. 21:45:12 nice 21:45:24 how about the motherboard, including memory and IO connections? 21:45:34 MVMe boards will be a lot harder. I'll probably have to guess at it using what openbsd has in code 21:46:01 what kind of memory management does this cpu have? 21:46:14 Block management and Page management are both supported 21:46:25 and can be interchanged 21:46:54 and fast switch between user and system mode or between processes with different page tables? 21:47:02 also, memory interface is where difficulty no 1 comes in: the CPU can swap between big and little endian at runtime with a single instruction 21:47:13 yea, you can change the page table address 21:47:28 also, how large are the virtual address space and the physical memory address space? 21:47:46 physical is 32bit. 21:48:03 virtual is also 32bit. Entire system is 32bit besides the ""GPU"" and FPU :P 21:48:24 I see 21:48:52 wait, FPU? 21:49:13 FPU supports 80-bit precision. (That means i have to use x87 instructions, ewwww.) 21:49:32 is the FPU required? can't you just omit it and have the software or OS emulate it? 21:49:44 (and run mostly software that doesn't need it) 21:49:46 It's built onto the chip 21:49:57 so it's required 21:50:01 I see 21:50:04 it's off by default tho 21:50:23 so i can pretend it doesn't exist for a very short amount of time :P 21:50:30 you don't technically _have_ to use x87 instructions, unless you want fast emulation for the FPU. you might choose to run programs that don't use the FPU much, in which case you can just do something slow. 21:50:48 i wanna try and make the FPU fast. :P 21:50:55 ouch 21:50:56 i'll probably ignore it early on tho 21:51:04 that can be difficult or easy, depending on what the FPU is like 21:51:19 and its stupid arcane details too, the ones that rarely come up 21:51:35 but still make an accurate emulation (whether in software or hardware) a pain in the ass 21:51:57 I plan on emulating the MC88110, because suprisingly enough it's *easier* to emulate than it's predecessor. You can pick out details about it here: http://bitsavers.org/components/motorola/88000/MC88110UM_88110_Users_Manual_1991.pdf 21:52:18 it's predecessor doesn't have the ""GPU"", but it has *more* annoying to emulate quirks 21:53:36 it doesn't have that middle age feature where there's a mandatory delay so the result of an instruction can't be read by the next instruction, does it? 21:53:42 mostly because i have to care a lot more about processing order on the MC88100, because the FPU and the integer unit both share the same register file for some bizzare reason. 21:54:09 wob_jonas, no. It has pipelining that handles that cleanly 21:54:44 the FPU and integer unit sharing a register file isn't a big problem. that's what new x86_64 cpus do too with its SSE registers 21:55:47 it's a problem when there's only one "slot" to use on said file. It's an exclusive or, either use the integer unit or the fpu, OR you can just have lots of pipeline stalls and lose CPU time 21:55:49 the SSE register ops are still mostly in different execution units, but it's the same register file and sheduling and decoding pipeline and memory/cache interface 21:56:16 from the instruction set viewpoint it's different registers, but they're effectively handled by the same register file now in newer cpus 21:56:45 plus, SSE instructions can offset the loss by their vastly greater throughput 21:57:04 it didn't use to be that way in older x86_64, there used to be two or three register files, separate for index registers, integer vector registers, and float vector registers, but they got away from that in later archs 21:57:25 moony: not just greater throughput, but also in some areas better choice of instructions too these days 21:57:37 also go look at the MC88100's bus 21:58:02 it has two buses, the P and C bus. Each bus has to have it's own external MC88200 MMU in order to interface with the same data bus/ 21:58:04 they're effectively the new general purpose registers, and the RBX etc series of 16 64-bit registers are the index registesr 21:58:45 it's not completely like that yet, there's still advantage to using the index registers for some general purpose computations because of the instruction encoding sometimes, but it's tending more towards the vectors 21:59:42 heck, in some rare cases you even want to use the vector registers to spill data into them from the index registers when you run out of the 16 index registers, because it's often handled more efficiently than the L1 cache or stack cache 22:00:35 when intel/amd gives us dedicated instructions to spill indexes into vectors, i'll be happy 22:00:35 I think there are even very rare pathological cases when it's worth to spill data into the MMX registers in some crazy loops, though you probably specifically have to engineer the right kind of problem for that to come up 22:00:59 moony: they do have specific move and insert and uninsert instructions already, with sometimes short encodings 22:01:10 * moony doublechecks 22:01:25 i dont remember x86-64 by the back of my hand, so i'm a derp sometimes :P 22:01:28 sure 22:01:37 and look at new enough documentation, not ancient stuff 22:01:44 it helps 22:01:50 I could be wrong here too 22:01:55 I usually just use http://www.felixcloutier.com/x86/ 22:01:59 I'm sure there are such instructions, but I can be wrong about the details 22:02:16 these days I look at the official Intel docs and Agner Fog's docs 22:02:27 I used to look at AMD's docs too, but these days prefer the Intel doc 22:02:31 felix's are literally just autogenned from intel docs 22:02:40 but with nicer formatting 22:03:03 anyways, you were correct. http://www.felixcloutier.com/x86/PINSRB:PINSRD:PINSRQ.html 22:03:03 moony: sure, but is it recent enough? does it at least show AVX2, even if not AVX512 yet? 22:03:22 it's currently based on the may 2018 edition of intel's docs 22:03:24 so yes :P 22:03:39 moony: those too, but also look at the 64-bit move between index and XMM instructions 22:04:04 ok, I'll look at this felixcloutier docs, or at least bookmark it and look at it later 22:04:22 wob_jonas, it's more of an instruction reference 22:04:34 but it's really freaking handy, much easier than sifting through a massive PDF :P 22:05:21 the PDF is not ideal, but together with other sources (like Agner Fog's manuals) it's good enough, and it's at least accurate and right from the mouth of those who make the CPU 22:05:41 the Intel PDF has at least one typo, I even wrote an email to their support that they'll probably ignore 22:07:26 moony: the other relevant ones are http://www.felixcloutier.com/x86/MOVD:MOVQ.html , which move between an index register and XMM register, zero-extending, 22:09:02 also, just for note wob_jonas, the 22:09:23 88k's FPU is quite similar to x86's 22:09:33 so emulation will be easier 22:09:50 but yes, also PINSRQ and PEXTRQ 22:10:30 moonyt: to the 387, or to the 8087? there's a stupid crucial difference that can like triple your speed if it's the former. 22:10:46 "quite similar" is not enough if you want accurate emulation 22:11:05 mk 22:11:50 whats said difference? 22:12:16 mostly that the relay 8087 handles the sign of infinities in a stupid way 22:12:31 there's some other minor ones too but they don't matter that much 22:12:42 i'd say it's more similar to the 387 22:12:46 the 387 can actually emulate the 8087 behavior, but only if you set some crazy flag that no sane software will set 22:14:08 also, the 387 actually has the sanest floating point behavior with respect to NaN representation that I've seen among CPUs. I wish other cpus had the same semantics for NaNs (but not other things, eg. I don't want a register stack or all that stupid state change and 80 bit variables and relative lack of non-floating-point instructions), 22:14:38 i think you'd like the 88k's FPU 22:14:50 http://bitsavers.org/components/motorola/88000/MC88110UM_88110_Users_Manual_1991.pdf section 04 22:14:54 but alas no, every 'cking architecture has to invent its own NaN representation behavior that's incompatible with everything else, so there's at least four different relatively sane behaviours out there, and that's not counting the ones that just throw their hands up and don't even try to handle NaNs 22:15:11 and because of compatibility, none of them can just change the behavior of course 22:16:11 moony: I probably won't look at that right now, though I may bookmark it, but in any case I'd like the best behavior in modern fast CPUs that run in my computer, not in some old thing. I can emulate the right behavior too if I can afford some speed loss, I don't need a 88000 for that. 22:16:41 Mc88110 just fires an exception when a source operand is a NaN, which i think is fairly sane 22:17:10 properly diffs between nonsignalling and signalling, as well. (Signalling NaNs can have a usermode handler) 22:17:15 moony: yes, but can the software mask the instruction? 22:17:19 um 22:17:21 mask the exception? 22:17:26 because usually that's what you want 22:17:31 and just check for NaN at the end 22:17:38 actually using the exception is a rare case 22:17:40 * moony doublechecks 22:17:50 in most CPUs, you can 22:18:24 and the CPU has defnite behavior of the result of the operation, sometimes even different result depending on whether the exception is masked or not 22:19:15 TCFP masks the NaN exception. (TCFP stands for Time Critical Floating Point) 22:19:19 eg. for an overflow exception, the result is infinity of correct sign from outside the exception, but the correct value with a constant added to the exponent for the exception handler (they get the result in different ways so there's no ambiguity) 22:20:07 and you can mask the NaN exception normally as well 22:20:07 x87, SSE, and MMIX all have individually maskable optional floating-point exceptions, they just differ in what NaN representation rules they have and some other details 22:20:20 TCFP mode just disables all but 2 exceptions 22:20:37 (I don't recall what AMR does, I looked at it very little, and mostly at the non-floating-point parts) 22:20:53 moony: right, that's the usual thing they do 22:21:11 yea, all FP exceptions are maskable besides 2 22:21:35 those two being things that only trigger when truly invalid behavior, like a unimplemented floating point instruction, is requested 22:22:02 SSE2 also has two flags for not handling denormal values (a flag for reading a denormal as zero, and a flag for giving a zero result instead of a denormal), and a speed hit when it actually has to handle denormals 22:22:19 or SSE or whatever 22:22:28 MC88110 has a similar thing, but i dont see any notes about denormals having a speed it. 22:22:30 *hit 22:22:32 I don't care when it was introduced between those 22:22:58 moony: if there's a flag then there's probably some sort of speed hit, or was in older versions of the CPU with a compatible instruction set 22:23:08 they wouldn't introduce a flag otherwise 22:23:21 it's possible to not have the speed hit but keep the flag for compatibility of course 22:24:06 oh nvm no flag 22:24:08 just misread 22:24:16 it doesn't even support denormals :p 22:24:29 it DOES fire an exception when they're encountered so software can handle it tho 22:25:40 ouch 22:26:16 because of its long history, x86_64 has a lot of historical features that you no longer need to use if your code only runs on newer cpus, but that the cpus must support for compatibility because they made sense on older cpus 22:26:46 ¯\_(ツ)_/¯ at least motorola was nice enough to write the handler for you, they provide it in a software package that is no longer on planet earth haha 22:27:25 eg. there are pairs of equivalent SSE2 instructions for bitwise operations on XMM registers that differ in speed depending on whether they're between integer or floating-point vector instructions, the cpu needed to transparently transfer the value to another register file if you used the wrong one, but there's no longer a separate register file 22:27:42 -!- Lord_of_Life has joined. 22:27:42 -!- Lord_of_Life has quit (Changing host). 22:27:42 -!- Lord_of_Life has joined. 22:35:59 moony: that's a pity, but no denormal handling in hardware is a compromise that I can understand 22:37:36 motorola wanted cheap chips, with the technology back then, it made sense 22:38:09 it's in chips today where I want the best behavior, because we could afford it if it weren't for historical compatibility issues 22:50:25 -!- sleepnap has left. 22:50:40 heck, even the most annoying limitation of x86_64 is because of historical compatibility: we can't have more than 128 kilobytes of L1 data cache, because more than 8-way cache would have too much latency, and we can't dispatch cache by more than modulo 4 kilobytes of address space, because we have to be historically compatible with 4 kilobyte sized 22:50:40 pages. 22:51:42 larger page size would be more efficient, but we can't get rid of supporting the smaller pages until some existing software depends on it, and it would be too impractical to have two entirely different L1 caches together, you'd probably have to duplicate the rest of the CPU with it 22:52:04 so we won't have a larger L1 cache until we throw away the entire x86 historical compatibility 22:53:52 this is harder to replace than the instruction set. x86_64 managed to get rid of at least some parts of the instruction set in true 64-bit mode, and you could get rid of more, but you can't get rid of the paging without throwing away all the compatibility 22:55:25 but the good news is, that will probably happen within my lifetime, the way how fast these computer architectures change 22:55:48 I'll be happy to learn about the details of a better architecture used in everyday consumer PCs 22:56:09 (some computers use ARM, admittedly, but even that is rather old) 22:56:33 (and x86_64 is used in the highest performance ones, which is the ones that matter for this) 22:58:13 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client). 23:08:06 -!- tromp_ has joined. 23:10:16 -!- tromp has quit (Ping timeout: 250 seconds). 23:13:33 -!- sebbu has quit (Read error: Connection reset by peer). 23:13:56 -!- sebbu has joined. 23:31:48 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:33:51 -!- Lord_of_Life_ has joined. 23:35:27 -!- Lord_of_Life has quit (Ping timeout: 240 seconds). 23:35:27 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 23:35:27 -!- Lord_of_Life has quit (Changing host). 23:35:27 -!- Lord_of_Life has joined. 23:35:58 -!- AnotherTest has quit (Ping timeout: 252 seconds). 23:41:15 -!- wob_jonas has joined. 23:42:06 -!- Lord_of_Life has quit (Ping timeout: 252 seconds). 23:42:44 Do you happen to know where I can find good reviews of current non-smart mobile phone user interfaces? I want to find the right phone to buy for myself. I have some candidates, but want to find reviews by people who care about similar interface sutff as me. 23:43:17 It would be cheaper and faster than to buy a phone and find out that it sucks after a few days of playing with it, like it happened with these stupid nokias. 23:43:51 But it looks like I can't find any good reviews. 23:44:43 -!- Lord_of_Life has joined. 23:44:43 -!- Lord_of_Life has quit (Changing host). 23:44:43 -!- Lord_of_Life has joined. 23:44:48 I might My current candidate is the CAT B30 dual sim. It is one of these stupid rubber-padded hard to break things with a small display, but if that's the extra I have to pay for to get a sane interface, it's OK. 23:46:59 Other candidates are the Myphone 6310 and the Myphone 3310. 23:48:22 sadly the 3310 is named such that the number is the same as a very popular new nokia phone (which is named of an older nokia phone, this is really stupid), so it's harder to search for it 23:50:19 -!- copumpkin has quit (Read error: Connection reset by peer). 23:50:34 -!- hakatashi1 has quit (Remote host closed the connection). 23:51:18 I totally can't find reviews, so unless someone here can pipe in with some useful info, I'll probably just buy a CAT B30 and try it. 23:51:31 -!- copumpkin has joined. 23:51:41 It's definitely not perfect, but I can't get a perfect phone, I know that. 23:51:51 I just need one that's not too annoying. 23:52:00 -!- hakatashi has joined.