Thanks Nikita. Your contribution to open source has always been amazing. Amazing talk!
@Barricade9413 күн бұрын
As Bisheng is developed by Huawei, it can be used to code in Huawei devices, like tablets?
@wdj147114 күн бұрын
nice talk!
@nullkothenature-lovingbear230814 күн бұрын
This is a nice one, very informative!
@the_programming15 күн бұрын
how can i get dependency graph
@vfjpl115 күн бұрын
<3
@jackgame884125 күн бұрын
congrats nikita
@mobu-o1g29 күн бұрын
Great presenters! Thanks Siddharth and Jeff 😄
@XichengLiu-j5uАй бұрын
I happen to implement a gpu compiler in my work, this video helps a lot
@mydeveloperday9069Ай бұрын
Aaron this is a great presentation!
@seylawАй бұрын
A lot of Clang-related patches landed recently on glibc-git.
@spaceowl5957Ай бұрын
It would be really awesome to have the same debugging and IDE support for C macros that we have for Swift macros! I think bad tooling support is the main reason why C macros often feel "evil'. I really hope someone from the community steps up as he mentioned, but I wonder - are there no resources for the core clang/LLDB/LLVM maintainers to tackle this?
@Xiuqi_liuАй бұрын
Amazing talk!
@mr_tpkАй бұрын
Great talk, Where can I find link to the course? Thanks.
@martin777xyzАй бұрын
Mid 90s I wrote a compiler PL9 language (and used cross-linker) to target Motorola 6809, from pc. Surprised how things are similar today 😅
@yugrАй бұрын
One of the most important advantages of classic Asan is that it does not require users to sanitize libraries which your application depends on. MemorySanitizer, being otherwise super-useful, lacks this and it hinders its adoption in industry. Given that this proposal changes the ABI, I would assume it requires to recompile all program dependencies (Glibc, STL, other libs, syscalls)?
@jdoerfert25 күн бұрын
Thanks for your comment! Let me clarify a little: > Given that this proposal changes the ABI It explicitly does not. For 64 bit pointers, the fake pointers are 64 bit (pointers), passing them around is no ABI change. For 32 bit pointers, it will use 64 bit pointers *only* if it can rewrite everything, e.g., the pointers are never stored as 32 bit pointers into memory. This is the case 99% of the time because it is actually "hard" to store a 32 bit pointer on a 64 bit machine. As an example, if you store a pointer to `__shared__` memory, you usually do it as `void*`, `char*`, etc., which is 64 bit. You would need to declare the pointer as `__shared__` (or similar) to make the storage of the pointer 32 bit. In the unlikely case the 32 bit pointer is stored or passed to a function we can't rewrite, we will "unpack" it at the point where we can't keep it in 64 bit (see below). > One of the most important advantages of classic Asan is that it does not require users to sanitize libraries which your application depends on. We are not requiring to sanitize the world. You will, however, not get any checking in the parts of your code that is not instrumented. If you pass a sanitized/fake pointer to an outside function, e.g., pass it to a library, we will unpack it at the call site. Unpacking transforms the fake pointer into the respective real pointer. The library will then work as usual as it receives a non-sanitized pointer. All that said, the prototype presented above was aimed at GPUs, which generally have fewer outside dependencies (for performance reasons). Our current work on making it better on CPUs will allow users to specify what libraries/APIs have been sanitized to allow fake pointers to cross between translation units (and libraries), consequently getting sanitizing throughout. > I would assume it requires to recompile all program dependencies ... Again, only if you want to check the accesses in them.
@yugr25 күн бұрын
@@jdoerfert Thank you, Johannes, for detailed explanation. Will you also support situations when sanitized code accesses raw pointer (to stack, global or heap) returned by unsanitized library function?
@jdoerfert25 күн бұрын
@@yugr Yes, already, and by design. The runtime check detects if a pointer is real and simply passed it through. No check, and followed by the raw access. Basically, if a pointer ever leaves the sanitized space, or was never in it as the allocation was not sanitized, it can be used with minimal penalty. Technically, we could even go back to a sanitized pointer, assuming the allocation was sanitized, but that's potentially expensive and not done yet.
@AsherMancinelliАй бұрын
Great talk!
@arsenbabaev1022Ай бұрын
2:10 Why is there a need to "optimize" bad or redundant user code like that? If user cannot write a proper usage of the dynamic array its not the compiler's or language job to fix that problem.Those kind of examples in my opinion are better fit for a linter, for example clippy in rust does those kinds of checks related to bad usage of std library, and user may choose to follow the suggestion.
Ай бұрын
Code like that can appear after several passes of inlining and optimizations, in which case it's not really possible for the programmer to spot "obviously bad" code like this.
@DantalionNlАй бұрын
OpenCL does support recursion its just part of an optional feature that funnily enough is then typically only available on high end hardware.
@mytech6779Ай бұрын
nVidia and later AMD have not had consistent hardware and driver support. Only v1.2 is broadly supported by a wide range of hardware and driver combinations. To the point that v3.0 had to be revised to make everything beyond v1.2 optional features. (Companies all dream of maneuvering for an exclusive alternative, nvidia was supressing CUDA alternatives then AMD thought they could somehow ride ROCm to CUDA popularity while having none of the advantages.) It seems that SyCL is the real successor (Newest versions are no longer an extension of openCL.), and well supported by at least oneAPI and adaptiveCPP.
@Heater-v1.0.0Ай бұрын
Oh crap. "constsxpr", "null_ptr"... is C going to adopt all this ugliness that C++ keeps adding to itself?
@NavhkrinАй бұрын
0:49 I just can't 😂😂😂
@krishnadamkondwar4293Ай бұрын
🎉🎉
@OriginRowАй бұрын
This is huge for Unreal Engine. Lots of compilation sucks on UE
@xealitАй бұрын
SYCL?
@didyoustealmyfood8729Ай бұрын
That neck tho😮😮
@anpawo13Ай бұрын
I hope you will do great things with what you have in mind !
@AsherMancinelliАй бұрын
I’m surprised they fully serialize to bitcode instead of keeping the ir in memory :/ 18:43
@weiweichen689Ай бұрын
Bitcode is still in memory, the goal is to move the IR into different LLVMContext
@MelCranmerАй бұрын
Great talk, I almost understood it.
@nejatcan2Ай бұрын
I learned a lot from this video
@barrdetwix1894Ай бұрын
I have the highest level of admiration for Nikita Popov, awe-inspiring work all around. I'm awe-inspired =)
@PerriPaprikashАй бұрын
Why is Andy embarrassed about his company affiliation?
@equeimАй бұрын
He doesn't work for Yahoo, he just uses it for its email service. So he just wanted to clear up a potential confusion.
@PerriPaprikashАй бұрын
Richard Smith seems to know his stuff.
@ИванГаргульяАй бұрын
Great talk. Thank you
@Voy2378Ай бұрын
interesting how Carbon template syntax managed to be uglier than C++, which was not winning any beauty contests to begin with
@jakobhellermann6974Ай бұрын
Just because of the `!`? Or which part do you find particularly ugly?
@Voy2378Ай бұрын
@@jakobhellermann6974 I would not call it just but that is main part. Other is if using English words helps or hurts in the long run. Sure it makes it easier to learn, but do you want that in your code forever? And if they use words then why not use impl like rust, they had to use impls?
@meryplays8952Ай бұрын
I would like to able to use clang on windows without VS or mingw64 (though I'm mostly fine with mingw64).
@stomah9832Ай бұрын
0x800 + 0x400 = 0xC00 ≠ 0x1200
@danielthornburgh2085Ай бұрын
Speaker here. Yep, I should have known better than to cavalierly put 0x in front of my example numbers.
@BalajiMaddur10 күн бұрын
😅@@danielthornburgh2085
@paradox8425Ай бұрын
Great talk. I'd like to see "import std;" working out of box ASAP
@ameliafargnoli9541Ай бұрын
Amazing talk!!
@mahabat23Ай бұрын
thanks, Nikita would love to see more of your work
@ngideoАй бұрын
12:06 "... so the two hardest problems in Computer Science were 'naming' and 'cache invalidation', and now it's just 'naming'" goes so hard
@g1m0kolis2 ай бұрын
Awesome, this is such a great concept! And really glad to see this incorporated into Mojo. As well as getting a public presentation on the topic. Well done!
@TomBPdev2 ай бұрын
Very interesting ! Thanks for that !
@manmohanshukla11152 ай бұрын
Amazing talk, Aaron <3
@Xiuqi_liu2 ай бұрын
Great talk, thanks a lot!
@vermaaaditya2 ай бұрын
what's the audience comment at 6:03 -09
@JoeST2 күн бұрын
something robotic? that says "... can't understand your query, as it apears to be a series of disjointed phrases-[laughter]"
@VRMediaI2 ай бұрын
Very interesting, next steps Neuro Symbolic AI...
@mawkuri54962 ай бұрын
why cant this be used in cpython to make it more faster just like mojo