CppBayArea
CppBayArea
  • 9
  • 26 283
Glean: Code Indexing at Meta
CppBayArea presentation by Michael Park
Recorded April 9, 2024 at Walmart in Sunnyvale, California
มุมมอง: 301

วีดีโอ

{fmt}: The Cool Parts
มุมมอง 528ปีที่แล้ว
CppBayArea presentation by Victor Zverovich Recorded October 17, 2023 at Aurora in Mountain View, California Event sponsored by Aurora
Intro to 64 bit ARM Assembly: From Basics to Party Tricks
มุมมอง 7Kปีที่แล้ว
CppBayArea presentation by Nick Thompson Recorded September 19, 2023 at JFrog in Sunnyvale, California Event sponsored by JFrog
C++ reflection via C++ code generation in C++ by strager
มุมมอง 4.1Kปีที่แล้ว
CppBayArea presentation by strager Recorded August 8, 2023 at JFrog in Sunnyvale, California Event sponsored by JFrog
WTF is Build.Zig? by Ed Yu
มุมมอง 13Kปีที่แล้ว
CppBayArea presentation by Ed Yu Recorded July 11, 2023 at JFrog in Sunnyvale, California Event sponsored by JFrog
Six ways for Implementing Math Expressions Calculator by Amir Kirsh
มุมมอง 178ปีที่แล้ว
CppBayArea presentation by Amir Kirsh Recorded June 13, 2023 at JFrog in Sunnyvale, California Event sponsored by JFrog and Incredibuild
Property Based Testing by Nick Thompson
มุมมอง 173ปีที่แล้ว
CppBayArea presentation by Nick Thompson Recorded May 16, 2023 at JFrog in Sunnyvale, California Event sponsored by JFrog
Uncovering Security Risks in C++ Apps with LD_PRELOAD and API Interception by Kiran Kamity
มุมมอง 138ปีที่แล้ว
CppBayArea presentation by Kiran Kamity Recorded April 11, 2023 at JFrog in Sunnyvale, California Event sponsored by JFrog
Asynchronous Thread Per Core Architecture in C++ by Andrew Wong
มุมมอง 540ปีที่แล้ว
CppBayArea presentation by Andrew Wong Recorded March 14, 2023 at JFrog in Sunnyvale, California Event sponsored by JFrog

ความคิดเห็น

  • @johnmckown1267
    @johnmckown1267 4 หลายเดือนก่อน

    I loved assembler on the legacy IBM mainframe.

  • @statinskill
    @statinskill 5 หลายเดือนก่อน

    Just a quick heads up, it's okay to do this on a mac. However, while a lot of people use macs at work, for the most part they just use it as an extra expensive terminal for stuff that lives on X86_64 Linux machines. Only a very small minority of people are going to be familiar enough with the system as well as the Apple Xcode IDE and compiler toolchain. Which is why you should have used a raspberry PI. Or even better, any recent Android phone under Termux. Because pretty much everybody has an aarch64 system in their pockets nowadays.

  • @flyLeonardofly
    @flyLeonardofly 6 หลายเดือนก่อน

    While all this sounds great. The zig build system is very underdocumented and there are no structured materials to learn it.

    • @mumk
      @mumk 2 หลายเดือนก่อน

      Absolutely spot on

    • @adammontgomery7980
      @adammontgomery7980 5 วันที่ผ่านมา

      I think we're meant to read the source code, which seems exponentially harder than a simple write up to get people going. In recent versions the build.zig file is LOADED with comments that are somewhat enlightening, but also some code for optionally generating a library which obfuscates the intent.

  • @perpetualrabbit
    @perpetualrabbit 6 หลายเดือนก่อน

    This audio clips to zero after each word that is spoken. The result is hard to listen to.

  • @Parker8752
    @Parker8752 8 หลายเดือนก่อน

    So, zig init-exe no longer works? Or at least, it doesn't work in the 0.12 version packaged on arch. zig init just creates the backbone for both an executable and a library, and then expects you to modify build.zig to pick which you want, and then use build.zig.zon (which I can't find any documentation for) as a config file.

  • @chaitanyakumar3809
    @chaitanyakumar3809 9 หลายเดือนก่อน

    32:39 I think this benchmark might be misleading, if there is no dependency chain between the `fdiv d0, d1, d0` and `fmov d0, 2.0`, i.e. if `d0` is not used as an operand between these two instructions (assuming this block executes in a loop), then the full latency of fdiv is not observed. 0.9 ns on an M2 is what, 3 clock cycles?

  • @skadragon
    @skadragon 9 หลายเดือนก่อน

    18:43 Theres no such thing as a safe language. A "safe language" would be a useless language.

  • @ali-4096
    @ali-4096 9 หลายเดือนก่อน

    This looks so complicated for no reason lol

  • @andrewdunbar828
    @andrewdunbar828 10 หลายเดือนก่อน

    Finally somebody other than me says Zig is not as easy as everybody else says. I like Zig and play with it at roughly yearly intervals but each time I run into frustrations very quickly, second only to Rust. I'm used to both lower and higher level languages. It's definitely easier than C++ or Rust but much harder than Kotlin, Swift, TypeScript, Go, Dart. I haven't played with Haskell-type languages so can't compare with those.

    • @hbobenicio
      @hbobenicio 9 หลายเดือนก่อน

      you're not alone. yes, zig is a difficult language indeed.

  • @Soupie62
    @Soupie62 10 หลายเดือนก่อน

    13:05 link to Aarch64 bit patterns. Where does the link point to?

  • @b3owu1f
    @b3owu1f 11 หลายเดือนก่อน

    Not sure it's helpful.. but the roadmap video with Andrew from late Jan 2024, talks in detail about how LLVM is a roadblock to faster compilation, and after the 0.12.0 release his/their primary focus is replacing LLVM with their own back end generators, which will greatly speed up compilation speed. That should be a big improvement overall.

  • @trisimix
    @trisimix ปีที่แล้ว

    Hey can I get the slides or the link to the bit patterns

  • @barsboldbayarerdene
    @barsboldbayarerdene ปีที่แล้ว

    What’s the syntax of this type of assembly called? Anyone can tell me?😅

    • @strager_
      @strager_ ปีที่แล้ว

      I don't think the language has a formal name. I think the syntax is for LLVM's AArch64/ARM64 assembler.

    • @PthariensFlame
      @PthariensFlame ปีที่แล้ว

      It’s generally just called A64 assembly. There’s a minor variant Apple made but it’s not very different (it just moves types on SIMD operations from the registers to the instruction mnemonic). The syntax is defined officially by Arm themselves, so there’s no confusion, unlike with x86.

  • @mehdiboujid8761
    @mehdiboujid8761 ปีที่แล้ว

    Don t use zig in production, also Bun released 1.0

    • @tullochgorum6323
      @tullochgorum6323 ปีที่แล้ว

      Well - he's quoting the advice of the development team, which seems fair enough to me.

    • @khanra17
      @khanra17 ปีที่แล้ว

      Don't use bun in production as well 👀

    • @mehdiboujid8761
      @mehdiboujid8761 ปีที่แล้ว

      @@khanra17 😂😂

    • @b3owu1f
      @b3owu1f 11 หลายเดือนก่อน

      I found that funny.. cause zig is very much production capable with its quality compiled code. I think the purpose of saying that is that the language itself is still malleable.. so don't put something in production and then get mad if the next version breaks something you did.. and you have to spend time updating/fixing to stay current. But the binary output is very much on par with if not better than other compiled language options.

  • @23bcx
    @23bcx ปีที่แล้ว

    This dude really just wants to code java, doesn't he?

    • @szaszm_
      @szaszm_ ปีที่แล้ว

      Reflection is useful, and it would be great to have it in C++, but I wouldn't go as far as a separate build step with libclang and code generation. I'm using magic_enum, concepts, metaprogramming and occasionally macros to achieve some level of reflection in C++20. I used to occasionally use reflection when doing Java. I think it's the best tool for some problems.

    • @23bcx
      @23bcx ปีที่แล้ว

      @@szaszm_ I am not just talking about his solution to the problem I am also talking about the problem he describes itself. In all ways this dude is thinking of C++ as if it was Java, in the same way that much of the C++ design committee has done for "modern" C++. Sure reflection is useful and there are ways to do it in C++ but C++ is also a multi-paradigm language OO is a tool not the only thing in the toolbox. I know the example he was working was "just complex enough to warrant this response" but it speaks to how much people just want to be coding java. This example should just be a function that takes in the error severity and a string of the error message, maybe some ifdefs. You dont need to make things needlessly complicated for the people you work with.

  • @pogboii
    @pogboii ปีที่แล้ว

    amazing

  • @wilsonwilson137
    @wilsonwilson137 ปีที่แล้ว

    wooo. nice talk.

  • @ulrich-tonmoy
    @ulrich-tonmoy ปีที่แล้ว

    Bun is reallly revolutionary for the JS runtime after the last big thing of node js in 09 And also the other language that want to replace c++ for game dev zig will be in the top cause of that build system

  • @homelessrobot
    @homelessrobot ปีที่แล้ว

    Allocator passing is in no way enforced by the language. Its simply a convention for the standard library to be able to negotiate allocation strategies with user code. You can can also just use malloc and not ask anyones permission or advice about what to do.

    • @Diamonddrake
      @Diamonddrake ปีที่แล้ว

      Is it a “convention”? I thought zig doesn’t have Malloc, if you’re using it you’re using stdlib from c, not from zig?

    • @N00byEdge
      @N00byEdge ปีที่แล้ว

      @@Diamonddrake zig doesn't have malloc, no, but it can import it from libc, just like any other c code, yes

    • @charliegnu
      @charliegnu ปีที่แล้ว

      You can also create a global allocator and access it from anywhere.

    • @isaacyonemoto
      @isaacyonemoto ปีที่แล้ว

      ​@@N00byEdgeI believe std.mem.c_allocator exists and it's malloc

  • @homelessrobot
    @homelessrobot ปีที่แล้ว

    zig beat fortran in popularity this year!? Thats a 'why, yes!' in my book, not a 'why not?'.

    • @gregandark8571
      @gregandark8571 ปีที่แล้ว

      Isn't zig just a parody of javascript ???

    • @homelessrobot
      @homelessrobot ปีที่แล้ว

      @@gregandark8571 is it? How?

    • @gregandark8571
      @gregandark8571 ปีที่แล้ว

      @@homelessrobot bcz it looks like javascript.

    • @homelessrobot
      @homelessrobot ปีที่แล้ว

      @@gregandark8571 lol compared to what? haskell? Yeah, of course. Everything does.

    • @catsby9051
      @catsby9051 9 หลายเดือนก่อน

      @@gregandark8571 Zig is nothing like JavaScript. It is a low-level systems language. Closer to C than JavaScript. It is a compiled language with minimal runtime and manual memory management. Is it syntactically similar to JavaScript? A little bit but not really.

  • @MatheusCatarino
    @MatheusCatarino ปีที่แล้ว

    Great presentation! Although you outlined not to be a c++ developer. Talked about the pros and cons. I think developers nowadays just need to remember that current Zig toolchain is pure LLVM for C and C++, specifically c++ because it uses llvm-libcxx + llvm-libcxxabi + llvm-libunwind + [custom] libcompiler-rt (static libraries) in almost all targets. Unique C++ ABI!! (addendum)

    • @gregandark8571
      @gregandark8571 ปีที่แล้ว

      Zig is actually divorcing from llvm..

    • @MatheusCatarino
      @MatheusCatarino ปีที่แล้ว

      @@gregandark8571 , Yes and no. It doesn't mean it will leave LLVM entirely. Only the main executable will be separated, making it optional. So far when using the Zig toolchain, we have used by default the flags `-fLLVM`, `-fClang` (for C and C++) and `-fLLD`, except for MacOS which replaces it with zld (`-fno-LLD`). The interest is to make the flags default `-fno-LLVM`, `-fno-Clang` and `-fno-LLD` (replacing with the Zig backend) especially for ziglang projects.

    • @gregandark8571
      @gregandark8571 ปีที่แล้ว

      @@MatheusCatarino Ok,so at this point. Is this good that zig wants to divorce from llvm or it is not? If yes,then why?

    • @MatheusCatarino
      @MatheusCatarino ปีที่แล้ว

      First, it is worth remembering that the Zig project is BDFL. I think it will pay off in ziglang development and possible compiler stability in the allotted time. Now it is infeasible to resolve and distinguish bugs of LLVM and the compiler itself. If you observe the zig project has few compiler developers, there are many contributions in the stdlib. Is it worth extending the time from pre-1.0, using LLVM by default? It was never the goal to maintain compatibility with C++, only C (arocc intended to replace clang, no C++ support). However, the possibility of complementing it with a zig-cc/zig-c++ plugin will not be ruled out. There will be a certain amount of time until the preview of releasing 1.0 appears, which is being worked out slowly.

    • @gregandark8571
      @gregandark8571 ปีที่แล้ว

      @@MatheusCatarino Ok,thanks you very much!!!

  • @d0nutptr
    @d0nutptr ปีที่แล้ว

    There is also `glommio` for Rust which is built by one of the same authors of Seastar :)