Michal Strehovský

@MStrehovsky

I help building the .NET runtime at Microsoft. My tweets are my own opinions, not the official party line.

Vrijeme pridruživanja: studeni 2018.

Tweetovi

Blokirali ste korisnika/cu @MStrehovsky

Jeste li sigurni da želite vidjeti te tweetove? Time nećete deblokirati korisnika/cu @MStrehovsky

  1. Prikvačeni tweet
    1. svi 2019.
    Poništi
  2. 3. velj

    CoreRT now makes it possible to build self-contained C# apps that are smaller than 1 MB (without much hacking). It's a journey and we're not at the end of it. This pull request has some details (and instructions, if you dare to try!):

    Poništi
  3. proslijedio/la je Tweet
    1. velj

    Want to write a native DLL in and use it from ? I've written a blog post, on writing native libraries with F# and .

    Poništi
  4. proslijedio/la je Tweet
    22. sij
    Odgovor korisnicima

    Here's two screenshots: CoreRT .NET runtime in the TechEmpower benchmark in mid-2018, and now. This is all thanks to unpaid community effort because I know for a fact that nobody was paid to do this work. Pretty cool for an "abandoned" project.

    Poništi
  5. 20. sij
    Poništi
  6. 20. sij

    I personally hope this also means we are going to stop relying on the JIT eating electricity and creating heat to recompile 𝘁𝗵𝗲 𝗲𝘅𝗮𝗰𝘁 𝘀𝗮𝗺𝗲 𝗰𝗼𝗱𝗲 billions and billions of times in hundreds of thousands of data centers and billions of end user devices every day.

    Poništi
  7. 19. sij

    10/n Here's the pull request with all of it:

    Prikaži ovu nit
    Poništi
  8. 19. sij

    9/n From there, it's easy: C# compiler -> CoreRT AOT compiler -> Linker. We tell the linker to use Dos64-stub instead of generating the useless "Cannot be run in DOS" program.

    Prikaži ovu nit
    Poništi
  9. 19. sij

    8/n Or Console.Write:

    Prikaži ovu nit
    Poništi
  10. 19. sij

    7/n Once we have the number of ticks, we can do Thread.Sleep:

    Prikaži ovu nit
    Poništi
  11. 19. sij

    6/n Of course DOS doesn't have Windows APIs, so I had to rewrite how the game talks to the world. This is Environment.TickCount on DOS:

    Prikaži ovu nit
    Poništi
  12. 19. sij

    5/n I started with my C# 8 kB self-contained Windows snake game:

    Prikaži ovu nit
    Poništi
  13. 19. sij

    4/n Dos64-stub is a small program that replaces the useless "Cannot run in DOS" with code that loads the Windows-specific portion of the EXE and teleports the process into 21. century. By teleporting I mean setting up paging and switching the CPU into 64-bit ("long") mode

    Prikaži ovu nit
    Poništi
  14. 19. sij

    3/n In a way, all EXEs are DOS programs - they're just not very useful DOS programs. One day I found this project (that deserves way more GitHub stars than it has):

    Prikaži ovu nit
    Poništi
  15. 19. sij

    2/n Windows EXE files consist of two parts: a DOS program that prints "This program cannot be run in DOS mode", followed by a header that Windows understands.

    Prikaži ovu nit
    Poništi
  16. 19. sij

    1/n It has always bugged me that I can't run my 64-bit C# games on MS-DOS. Today I fixed that. A thread.

    Prikaži ovu nit
    Poništi
  17. 17. sij

    C# is attacking the #1 spot in the TechEmpower Plaintext benchmark. C++ is confirming its "fast, but hard to get right" status (judging by the "Errors" column).

    Poništi
  18. proslijedio/la je Tweet
    12. sij
    Odgovor korisniku/ci

    Works with F# too.

    Poništi
  19. 11. sij

    I would understand it if the game was a Flappy bird clone because the world needs to be protected from that happening again.

    Prikaži ovu nit
    Poništi
  20. 11. sij

    Since in 2020 the only kind of software that still cares about the size of the EXE is malware, this is the sad reality of building tiny < 10 kB programs. IT'S A 5 KB SNAKE GAME I WROTE IN C#. IT'S NOT GOING TO ATTACK THE POWER GRID IN YOUR COUNTRY.

    Prikaži ovu nit
    Poništi
  21. 9. sij

    7/7 Turns out the object files produced by the CoreRT ahead of time compiler from 2020 can still be linked with the linker that shipped with Visual C++ 2.0 in 1994. So it's C# compiler -> CoreRT Compiler -> Linker -> Success.

    Prikaži ovu nit
    Poništi

Čini se da učitavanje traje već neko vrijeme.

Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.

    Možda bi vam se svidjelo i ovo:

    ·