He bacc! Showing off more painfully reasonable decisions in Jai. I want it so bad.
@brandonb7979
29 күн бұрын
Welcome back! Can't wait for more great videos!
@JudahCaruso
29 күн бұрын
Thanks for the kind words! I'm hoping to have a more consistent upload schedule moving forward :)
@ArkDEngal
29 күн бұрын
Jai is brilliant. I can't wait to use it someday
@sumofat4994
29 күн бұрын
More jai please
@MaksimVolkau
29 күн бұрын
Fun-tastic! Thank you for the video. Please more feature exploration like this. I think the comp-time capabilities will be The Feature for the Jai marketing in a similar way as for Zig. But they seem so different under surface and premice.
@JudahCaruso
29 күн бұрын
Thanks for watching, glad you enjoyed it! I definitely have more feature-based JwJ videos planned, so stayed tuned! If there's anything you'd like to see in particular, let me know. I haven't directly compared Jai and Zig's compile-time capabilities besides the obvious parts. I do think Jai's "compile-time execution anywhere, without limits" is one of, if not, its biggest feature (and probably the one I use most day-to-day)!
@MaksimVolkau
29 күн бұрын
@@JudahCaruso Casey Muratori told once that Jai is interesting because of the 2 killer features: unrestricted comp-time and the ability to insert asm if needed. How is your experience with the latter? I would love to know how asm sections compromise the other things in the compiler, does it play well with the variables defined outside, etc.
@JudahCaruso
29 күн бұрын
@@MaksimVolkau Ah yes, inline assembly is another huge feature; hoping to do a video on that in the future. The main "compromise" it makes right now is it's own syntax which I've heard is confusing to some people (especially when dealing with variables outside of the assembly block's scope). However, the mnemonics are consistent and what you'd expect, so no downsides there. The nicest feature is platform/processor-specific inline assembly. Because Jai allows you to query things about the target architecture, os, etc., you can have paths for specific CPU features. For example: cpu_info := get_cpu_info(); if check_feature(cpu_info.feature_leaves, x86_Feature_Flag.AVX2) { #asm AVX2 { // Here the pxor gets the 256-bit .y version, // since that is the default operand size with AVX. In an AVX512 block, // the default operand size would be the 512-bit .z. pxor v1:, v1, v1; } } else { // AVX2 is not available on this processor, we have to run our fallback path... }
@chopsueysensei
27 күн бұрын
Can I ask what are you using for navigating to Jai symbols etc?
@JudahCaruso
27 күн бұрын
Sure! It takes a little setup, but is very much worth it! In Sublime Text you want the JaiTools extension (adds Jai syntax highlighting, goto symbol, autocomplete) and Project Manager. Once you have those, create a new project for Jai and add your local modules path to the project (as well as any other Jai related dirs you want). When you open the project (Project Manager: Open Project), it'll index the files and allow you to jump to symbols (by default F12)
@qlqs
29 күн бұрын
I'm in the beta for about 1 year and didn't even know $$ was a thing, thanks ! There is also other ways to do type restriction ( $T/Type, $T/interface Type and the new $T/ArrayOfTypes ), it could be a nice follow up video.
@JudahCaruso
29 күн бұрын
Glad you liked the video! And you read my mind! I'm planning on doing a polymorphism/composition follow up that covers things like: - $T/Foo - $T/interface Foo - [$N]$T - #as, #using - and the weird things you can do with that system (rust-style traits/go-style interfaces)
Пікірлер: 15