No video

Random: Jai + Go (compile-time binding generator)

  Рет қаралды 786

Judah

Judah

Күн бұрын

Slightly different format for this video, wanted to try something new. Let me know what you think!

Пікірлер: 12
@JudahCaruso
@JudahCaruso Ай бұрын
Apologies for the audio cut-outs. My microphone's gain was much lower than it usually is and I forgot to adjust it.
@maxrinehart4177
@maxrinehart4177 Ай бұрын
excellent video, shame it has audio problem. maybe it is time for a new microphone 🎤
@JudahCaruso
@JudahCaruso Ай бұрын
Thanks! And it was mostly related to incompetence haha. I forgot to turn up my mic/adjust my noise gate in OBS…
@maxrinehart4177
@maxrinehart4177 Ай бұрын
man, I love your videos, I learned a lot from them. Please make more Jai videos. ❤
@arl-t8d
@arl-t8d Ай бұрын
damn man, I really want that jai
@ArkDEngal
@ArkDEngal Ай бұрын
same, since 2016 TT_TT
@CyberWolf755
@CyberWolf755 Ай бұрын
Hi Judah. Love your videos covering Jai. I have a question. Does variable tagging support holding values and can that tag be read during runtime? E.g. for displaying a property UI panel based on the selected context. How would you tag a specific float with a Clamp tag that would have a min and max, so the panel knows how to render the UI for that specific property
@JudahCaruso
@JudahCaruso Ай бұрын
Thanks! I appreciate the support! And it depends on what you mean by holding a value. For instance, the value can't be something known at runtime because it's just a constant string put on the declaration. However, you can read them at runtime if you have runtime type information enabled (which it is by default). Your example could definitely work like this: UI_Panel :: struct { parent: *UI_Panel; min: float32; @Clamp(0, parent.min) max: float32; @Clamp(parent.max) } ui_panel_update :: (panel: *UI_Panel) { info := cast(*Type_Info_Struct)type_info(UI_Panel); // if you don't like this style, you could also auto-generate this code with #insert #run for info.members if it.notes.count > 0 { for note: it.notes if starts_with(note, "@Clamp") { // now we know we're looking at the Clamp note of a struct member, // so we can parse the string and do whatever with it. // for example, seeing 'parent.min' in the string, then using its value at runtime // ... if use_parent_min { panel.min = clamp(0, parent.min); } } } }
@CyberWolf755
@CyberWolf755 Ай бұрын
@@JudahCaruso Thank you for the detailed reply. It answered my questions :)
@chopsueysensei
@chopsueysensei Ай бұрын
great stuff! do you have a jai LSP for Sublime or something like that here?
@JudahCaruso
@JudahCaruso Ай бұрын
it's not exactly an LSP, but there's a sublime plugin called JaiTools which has syntax highlighting and goto definition; then I just have a sublime project that points to the install directory!
@DavidFregoli
@DavidFregoli Ай бұрын
mic keeps cutting out 😢
Jai w/ Judah 002: Operator Overloading
17:57
Judah
Рет қаралды 2 М.
Jai w/ Judah 003: #modify
21:04
Judah
Рет қаралды 2,5 М.
SPILLED CHOCKY MILK PRANK ON BROTHER 😂 #shorts
00:12
Savage Vlogs
Рет қаралды 47 МЛН
👨‍🔧📐
00:43
Kan Andrey
Рет қаралды 10 МЛН
Can This Bubble Save My Life? 😱
00:55
Topper Guild
Рет қаралды 69 МЛН
Migrating from Zig to Jai
1:59:26
Tsoding Daily
Рет қаралды 47 М.
I made JIT Compiler for Brainf*ck lol
3:07:56
Tsoding Daily
Рет қаралды 76 М.
Jai w/ Judah 001: #insert & #run
24:32
Judah
Рет қаралды 4,8 М.
Harder Drive: Hard drives we didn't want or need
36:47
suckerpinch
Рет қаралды 1,6 МЛН
Zig WASM Interpreter 001: growing_pains
2:11:41
Judah
Рет қаралды 5 М.
Advanced C: The UB and optimizations that trick good programmers.
1:12:34
Eskil Steenberg
Рет қаралды 166 М.
Risking my life to save $5000
19:29
Linus Tech Tips
Рет қаралды 283 М.
ASMR Programming - Coding Pacman - No Talking
1:21:19
Servet Gulnaroglu
Рет қаралды 2,6 МЛН
SPILLED CHOCKY MILK PRANK ON BROTHER 😂 #shorts
00:12
Savage Vlogs
Рет қаралды 47 МЛН