Skip to content
By using Twitter’s services you agree to our Cookies Use. We and our partners operate globally and use cookies, including for analytics, personalisation, and ads.
  • Home Home Home, current page.
  • About

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @
  • Language: English
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English UK
    • Español
    • Filipino
    • Français
    • Hrvatski
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Polski
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Ελληνικά
    • Български език
    • Русский
    • Српски
    • Українська мова
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Have an account? Log in
    Have an account?
    · Forgot password?

    New to Twitter?
    Sign up
mcclure111's profile
mcc
mcc
mcc
@mcclure111

Tweets

mcc

@mcclure111

glitch girl -- working on a vr game, announcements at @mermaidvr -- current avatar by @egypturnash -- also at http://mastodon.social/@mcc 

runhello.com
Joined June 2011

Tweets

  • © 2019 Twitter
  • About
  • Help Center
  • Terms
  • Privacy policy
  • Cookies
  • Ads info
Dismiss
Previous
Next

Go to a person's profile

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @

Promote this Tweet

Block

  • Tweet with a location

    You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more

    Your lists

    Create a new list


    Under 100 characters, optional

    Privacy

    Copy link to Tweet

    Embed this Tweet

    Embed this Video

    Add this Tweet to your website by copying the code below. Learn more

    Add this video to your website by copying the code below. Learn more

    Hmm, there was a problem reaching the server.

    By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.

    Preview

    Why you're seeing this ad

    Log in to Twitter

    · Forgot password?
    Don't have an account? Sign up »

    Sign up for Twitter

    Not on Twitter? Sign up, tune into the things you care about, and get updates as they happen.

    Sign up
    Have an account? Log in »

    Two-way (sending and receiving) short codes:

    Country Code For customers of
    United States 40404 (any)
    Canada 21212 (any)
    United Kingdom 86444 Vodafone, Orange, 3, O2
    Brazil 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Ireland 51210 Vodafone, O2
    India 53000 Bharti Airtel, Videocon, Reliance
    Indonesia 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Italy 4880804 Wind
    3424486444 Vodafone
    » See SMS short codes for other countries

    Confirmation

     

    Welcome home!

    This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.

    Tweets not working for you?

    Hover over the profile pic and click the Following button to unfollow any account.

    Say a lot with a little

    When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.

    Spread the word

    The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.

    Join the conversation

    Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.

    Learn the latest

    Get instant insight into what people are talking about now.

    Get more of what you love

    Follow more accounts to get instant updates about topics you care about.

    Find what's happening

    See the latest conversations about any topic instantly.

    Never miss a Moment

    Catch up instantly on the best stories happening as they unfold.

    mcc‏ @mcclure111 27 Feb 2018

    I feel like we don't talk enough about about the knock-on costs of manual memory management. Garbage collection may not be a perfect way of managing memory, but it at least is *a* standardized way of managing memory which is consistent all the way through the language stack.

    8:38 AM - 27 Feb 2018
    • 19 Retweets
    • 72 Likes
    • Knerdy Knitter nicole is best viewed over composite video Joe Groff 💾 esoterik 💾 9 out of 10 Aevas agree: JUAGλ Joel Bernstein gaeel Ruth
    4 replies 19 retweets 72 likes
      1. New conversation
      2. mcc‏ @mcclure111 27 Feb 2018

        In the absence of such structures, individual libraries have to invent their entire own memory management idioms in order to talk to the outside world. One of the most pure, horrifying examples I've seen: This eleven-line boilerplate is how you allocate *any* object in Vulkan.pic.twitter.com/V6SkQeyKoI

        2 replies 2 retweets 22 likes
        Show this thread
      3. mcc‏ @mcclure111 27 Feb 2018

        Notice the "XXX" there; the idea is that you have to manually replace XXX with "Queue", or whatever Vk type it is you're trying to allocate. In other words, you cannot script or abstract this in any way, except by using C macros that string-paste to construct type names.

        2 replies 1 retweet 13 likes
        Show this thread
      4. mcc‏ @mcclure111 27 Feb 2018

        This is not Vulkan being silly, but rather is necessary because when you pass around a structure you need some way of communicating inside and outside the library who is responsible for managing that bit of memory and releasing it when it's done.

        2 replies 1 retweet 12 likes
        Show this thread
      5. mcc‏ @mcclure111 27 Feb 2018

        Now imagine what happens if, for example, you have to work with both Qt and Vulkan in a single application, and each of these libraries has their own bespoke memory management idioms, and you are going to have to be the one writing glue code to make them communicate.

        1 reply 3 retweets 12 likes
        Show this thread
      6. mcc‏ @mcclure111 27 Feb 2018

        mcc Retweeted

        The true horror of the Vulkan APIs is that the more you think about it the more you realize the Vulkan API is more or less precisely determined by the shape of the problem it is trying to solve. https://twitter.com/0x21376B00/status/968526775423614977 …

        mcc added,

        This Tweet is unavailable.
        1 reply 2 retweets 17 likes
        Show this thread
      7. mcc‏ @mcclure111 27 Feb 2018

        The Vulkan API should shame us as a species. We created this, all of us, by creating the need for it.

        2 replies 4 retweets 14 likes
        Show this thread
      8. End of conversation
      1. New conversation
      2. Ramsey Nasser‏ @ra 27 Feb 2018
        Replying to @mcclure111

        a friend (@silentbicycle, i think?) once told me that the absence of manual memory management is basically a prerequisite for composeable code precisely because it requires everyone to agree on memory. this is why package management in C/C++ will always be a nightmare.

        2 replies 6 retweets 19 likes
      3. silentbicycle‏ @silentbicycle 27 Feb 2018
        Replying to @ra @mcclure111

        Yeah. It's valuable not just for memory management, but because it's a mechanism that everybody agrees is allowed to have visibility across abstraction boundaries. Otherwise, every module needs to coordinate resource hand-off, complicating interfaces.

        1 reply 0 retweets 6 likes
      4. silentbicycle‏ @silentbicycle 27 Feb 2018
        Replying to @silentbicycle @ra @mcclure111

        What benefits could come from agreeing on other cross-cutting mechanisms (that aren't necessarily about memory)? Erlang gets tremendous value out of agreeing on a concurrency & error-handling approach, for example.

        1 reply 0 retweets 5 likes
      5. Ramsey Nasser‏ @ra 27 Feb 2018
        Replying to @silentbicycle @mcclure111

        thats the conceit of a VM like the CLR. you have an agreed upon GC, type system, error handling, (large) standard library, C-interop, etc. it's great! but its a VM. Rust is the only VM-less platform of standardized cross-cutting mechanisms i can think of.

        1 reply 0 retweets 4 likes
      6. mcc‏ @mcclure111 27 Feb 2018
        Replying to @ra @silentbicycle

        Yeah, this is what's finally bringing me over to Rust. I don't want to write code by Rust's constraints, but maybe I can think of it like Rust's memory constraints being "these are the module boundary constraints" and use cheatz to violate the constraints in-module.

        1 reply 1 retweet 9 likes
      7. mcc‏ @mcclure111 27 Feb 2018
        Replying to @mcclure111 @ra @silentbicycle

        Incidentally, I am still waiting for a language that has a way of agreeing how exceptional conditions are handled across module boundaries. I don't believe exception handling is good enough

        2 replies 0 retweets 4 likes
      8. mcc‏ @mcclure111 27 Feb 2018
        Replying to @mcclure111 @ra @silentbicycle

        What I want is a standard idiom where actual errors like "invalid parameters" and exceptional-but-expected conditions like "file not found" are handled within the same mechanism, yet the mechanism understands one is lighter-weight and must be easier to do casually than the other.

        1 reply 0 retweets 4 likes
      9. mcc‏ @mcclure111 27 Feb 2018
        Replying to @mcclure111 @ra @silentbicycle

        Sometimes @BrianTRice tries to convince me this is what common lisp "conditions" are but i still haven't gotten around to learning how this works.

        2 replies 0 retweets 3 likes
      10. 14 more replies
      1. New conversation
      2. nevyn Bengtsson‏ @nevyn 27 Feb 2018
        Replying to @mcclure111

        100% this! One of the big wins in objc imo; a consistent refcounted memory model enforced by language and used by all libs (with escape hatches). Also warming up to Rust for the same reasons...

        2 replies 0 retweets 0 likes
      3. mcc‏ @mcclure111 27 Feb 2018
        Replying to @nevyn

        Yes. And available in C world via CF...

        1 reply 0 retweets 1 like
      4. nevyn Bengtsson‏ @nevyn 27 Feb 2018
        Replying to @mcclure111

        Yeah! and CF-style APIs may be pretty ugly at times, but they’re mostly consistent and interoperable. knowing the shape of one Apple C API means you know most of them. ownership rules, calling conventions, lifetimes, threading...

        1 reply 0 retweets 0 likes
      5. mcc‏ @mcclure111 27 Feb 2018
        Replying to @nevyn

        And Apple keeps doing things like backporting GCD blocks into C... it's a very nice ecosystem.

        0 replies 0 retweets 2 likes
      6. End of conversation
      1. New conversation
      2. Ted Mielczarek‏ @TedMielczarek 27 Feb 2018
        Replying to @mcclure111

        Rust feels annoying at first, but I can tell you that having memory management built-in to the language, and usable primitives like strings and vectors makes things *so much better* compared to C/C++.

        1 reply 0 retweets 6 likes
      3. undefined behavior is pretty cool‏ @ubsanitizer 27 Feb 2018
        Replying to @TedMielczarek @mcclure111

        You do know C++ has standardized vocabulary types like string and vector... and that Rust's Vec is so called because of C++?

        2 replies 0 retweets 0 likes
      4. mcc‏ @mcclure111 27 Feb 2018
        Replying to @ubsanitizer @TedMielczarek

        Are you referring to the STL? Because I would disagree that the STL can be described as "standardized"

        2 replies 0 retweets 3 likes
      5. mcc‏ @mcclure111 27 Feb 2018
        Replying to @mcclure111 @ubsanitizer @TedMielczarek

        Things have gotten better on this front but I would still describe the STL as a slightly unpopular third-party library which coincidentally happens to be designed by the standards committee and distributed with some compilers

        1 reply 0 retweets 1 like
      6. undefined behavior is pretty cool‏ @ubsanitizer 27 Feb 2018
        Replying to @mcclure111 @TedMielczarek

        This is entirely unrelated to the reality of writing C++ code today.

        1 reply 0 retweets 0 likes
      7. Who ordered *that*?‏ @ManishEarth 27 Feb 2018
        Replying to @ubsanitizer @mcclure111 @TedMielczarek

        Every single large C++ codebase I've worked on replaces STL with their own thing, not preserving any names.

        1 reply 0 retweets 0 likes
      8. undefined behavior is pretty cool‏ @ubsanitizer 27 Feb 2018
        Replying to @ManishEarth @mcclure111 @TedMielczarek

        I'd argue that's due more to poor/slow implementation in MSVC's STL, plus no move semantics, not it not being standardized. And it's gotten a lot better in the modern C++ era.

        1 reply 0 retweets 0 likes
      9. 10 more replies

    Loading seems to be taking a while.

    Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.

      Promoted Tweet

      false

      • © 2019 Twitter
      • About
      • Help Center
      • Terms
      • Privacy policy
      • Cookies
      • Ads info