Тёмный

Compiler Beta Q&A, March 4, 2023 

Jonathan Blow
Подписаться 83 тыс.
Просмотров 26 тыс.
50% 1

Broadcasted live on Twitch -- Watch live at / j_blow

Игры

Опубликовано:

 

13 мар 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 95   
@user-tt4dy1ti5v
@user-tt4dy1ti5v Год назад
00:00 _(Introduction)_ 00:50 How exactly does Jai's 'memcpy' handle overlapped ranges? 10:30 What are some cases when using compile-time execution instead of run-time (and vice-versa)? 15:55 Are there advantages in placing #imports at the bottom of the source file instead of the top? 20:50 When are you sharing the general language roadmap? 23:45 Can you walkthrough how macros & functions calling macros are compiled? 32:02 Why would you not make the 'z' variable in previous question's macro demo a function parameter? 33:15 The way that 'for_expansion' builds an 'it_index' variable to insert in code is very difficult to replicate in my own macros. 38:45 Does 'for_expansion' become less special as 'it_index' become available for regular macros? 41:35 I was surprised that the following Jai code [involving address of address of variable] works: _b := 3; p := **b;_ 47:25 How come 'context.allocator' works as a default argument in functions even though it's not constant? 49:20 Are closures/captures still on the roadmap? 49:40 Is it legal to modify a compile-time string literal? 51:25 Seems like more and more people require #poke_name mostly for data structures like Hash_Table to able to see custom == operators. 01:08:50 Can you use scope directives to access file-scope stuff? 01:10:05 Can you talk about linkers? 01:10:55 Has Jai changed the way you build game tech? 01:12:55 Are there benefits/drawbacks to include a small scripting language into Jai for games? 01:16:19 _(Update about the drawbacks of scripting languages.)_ 01:18:13 Thoughts on exploring passing a bunch of code containing procedures & modules to another module to exposed declarations, checks implementations or generating stuff? 01:19:10 Will there be a function added to simply read from console? 01:20:30 Plans for SIMD data types such as s64x8 and using SSE for them in Jai? 01:25:40 Have you tested/validated the 64-bit integer as the default 'int' type? 01:32:40 How is the experiment with non-constant struct literals going? 01:34:15 Where is the explicit license file for the compiler? 01:34:45 Is there a 'how_to' that has info on printing a macro #expand a la Program_Print.jai? 01:36:05 Could you do something where you can combine different scopes by labeling scopes? 01:40:10 What are modules exactly? Am I able to use static polymorphism / static dispatch with several modules? 01:41:40 _(There is an example of reading from console in modules/Process/examples/run_programs_in_parallel.jai )_ 01:41:55 Are there drawbacks to make 'float' type 64-bit by default? 01:45:55 Did you also exclude LLD from the Win11 antivirus? 01:47:00 How would you define entity structs to handle alot of types? 01:49:55 Is it a good idea going forward to name procedures very generically? [i.e. add() instead of array_add()] 01:51:45 What is the preferred to do virtual functions? 01:57:05 Are you looking for more example programs? 01:55:55 Is there a better way to catch up with compiler updates other than reading the CHANGELOG file? 01:58:30 Do you generate a syntax tree for the entire program or separate for each function/file/etc? 01:59:23 Plans to have inline assembly support arm64 and other architectures? 01:59:45 _(Jon gets chai ice cream from the refrigerator.)_ 02:00:20 Can you give everyone in Twitch chat access to the closed beta? 02:01:30 Is paid beta still in the works? 02:02:00 Is there a way to make beta access paid so people can contribute money-wise? 02:03:12 Why do you dislike smart pointers? 02:04:35 Do you think SteamOS will lead to consoles becoming commodified? 02:04:50 What is Sony's value-add when any Linux box can run any game? 02:05:10 Can you explain how #import works? 02:05:40 Are language server protocols (LSP's) important? 02:06:10 How does calling OpenGL from compile-time execution work? 02:08:15 Isn't bug-prone for GetRect & Hash_Table modules to always check if the module has already been initialized? 02:08:45 When using LLVM backend with optimizations, do any of the undefined behavior (UB) nonsense need to be considered? 02:10:05 Did the LLVM 15 update end successfully? 02:11:25 Is x64 backend generated from a custom intermediate representation (IR)? 02:11:47 Would you consider single static-assignment (SSA) a good idea on IR's? 02:14:55 Could it be a language feature / metaprogram which makes these API's lees bug-prone to write? 02:16:05 Which programming books did you learn from? 02:16:45 Was the LSP talk you were referencing in the 'Preventing the Collapse of Civilization' talk? 02:17:05 Why did the Jai compiler get slower? 02:18:40 Will you write your own programming book? 02:19:00 Can you create an immutable array of characters on the stack?
@sanjacobs6261
@sanjacobs6261 Год назад
"I don't wanna go on this rant again" Please do, the rants are what I'm here for, I always learn so much from them. Thank you for doing these.
@junosoft
@junosoft Год назад
ahhahah
@SeanStClair-cr9jl
@SeanStClair-cr9jl Год назад
Why is it just genuinely so delightful to watch something get made. Idk. I am way off my creative game but these streams are fun, gotta catch more of them
@anzhel3268
@anzhel3268 Год назад
thanks for uploading
@darak2
@darak2 Год назад
The notion that a programming language should have holes that are filled by the hardware is as important as forgotten nowadays. When a simple operation in the programming language does not map to a simple operation in the underlying hardware (or, even worse, it maps properly *in some hardware* but not in others), performance becomes unpredictable and, often, unacceptable.
@yezariaelll
@yezariaelll Год назад
Jai beta sounds like so much fun, damn I'm envious.
@TheGag96
@TheGag96 Год назад
Send an email and ask to get on! He is adding people - if you just send a request showing earnest interest in the language and helping out, I'm thinking he'll let you in. That's how it went for me.
@yezariaelll
@yezariaelll Год назад
@@TheGag96 Oh, I see. That sounds cool and I'll give it a shot, thanks for encouragement.
@nexovec
@nexovec Год назад
Oh how great this is, Jon's really enjoying this language.
@LogicEu
@LogicEu Год назад
I absolutely admire what you are doing with the jai language, would love to toy with it! Nice video!
@adicide9070
@adicide9070 Год назад
there's basically struct embedding, like in GO. you have a base entity and put that as an embed inside of your more specific-type entity. works fine there too.
@TankorSmash
@TankorSmash Год назад
Thanks for muting the mic when eating!
@sanjacobs6261
@sanjacobs6261 Год назад
Counter opinion: It removes some of the vibe of chillin' and having a snack
@TankorSmash
@TankorSmash Год назад
@@sanjacobs6261 I guess that's true! I listen with headphones and it drives me crazy to have someone's chewing fed directly to my ear but I can definitely imagine it being pleasant for someone!
@rationalcoder
@rationalcoder Год назад
Hoooolllddd. Hoooollld. Immediate precedence over anything I am currently watching.
@dnkreative
@dnkreative Год назад
You're doing awesome work! Is there any chance to take a more closer look and take participation in beta testing? Or at least to have documentation and examples of the language use (even without a compiler). I saw some interesting thoughts on your screen during these streams which I'd like to study.
@CasimiroBukayo
@CasimiroBukayo Год назад
Jeeez man! Just release the compiler to the public! I'm in my 40s now. Am I gonna wait till I hit 50? 😂
@UncoveredTruths
@UncoveredTruths Год назад
when u finish sokobahn itd be cool to see like a demo of all the use cases of jai that you were really pleased with
@Muskar2
@Muskar2 5 месяцев назад
Late, but many of them are written into the 'how_to' and 'examples'
@UncoveredTruths
@UncoveredTruths 5 месяцев назад
@@Muskar2 sadly, i still don't have access :(
@Muskar2
@Muskar2 5 месяцев назад
@@UncoveredTruths I assume you've applied? I can relate, since I also had my fingers tingling with trying it out and couldn't wait - until eventually I got in. I'm sure you'll get access eventually.
@u9vata
@u9vata Год назад
I highly agree to not try doing C++ OOP like virtual functions. Even in C++ I totaly coded a whole codebase without basically nearly none virtual functions at all - its generally a bad idea to be honest and painful to performance in most cases. I think 64 bit integer might really worth A/B testing - at least to measure how many of the bigger data structures size grow! I mean maybe you shouldn't even try to make it 32 bit, just add some measurement code around the compiler placing that down and measuring how many times bigger data structures grow (or whole memory use). I think its because of cache trashing for unnecessarily big values. FYI: On linux, there is possibility (a patch to the kernel or a config param if I remember) to make all pointers even 32 bit on 64 bit OS for the same reason - and its usually really a huge memory gain (and also in data cache it is a gain). So some people do 64 bit OS with 32 bit pointers just for this reason. But the point being however is that this being default okay.. but likely people who want performance would use 32 bits when needed. The size overhead only counts in the elements of the array having int elements - not for the arrays size hidden member though. Sad for relative pointers maybe leaving because they seem like awsome idea - actually I was thinking of something very similar for an embedded little OS for a project in C where I was thinking doing something similar for a very simplistic (simpler than malloc) memory management... So in there all pointers would be relative to be honest always, because I wanted to move whole applications address spaces around sometimes - without having complicated stuff like hardware supporting page translation like on PC and stuff... If I understand it correctly its mosly because LLVM handles the relative pointers too slow with its update for some reason???
@SEOTADEO
@SEOTADEO Год назад
It would be great to have something like the Rust book for Jai
@gilbertfrausto
@gilbertfrausto Год назад
Is this the 10 year anniversary of the private compiler?
@Gameboygenius
@Gameboygenius Год назад
The Witness took, not quite 10 years, but it was sure worth the wait.
@gilbertfrausto
@gilbertfrausto Год назад
I mean has been working on this for almost 10 years and compiler still in closed beta
@iconelias508
@iconelias508 Год назад
10 years! 😲
@sporefergieboy10
@sporefergieboy10 Год назад
YEAR TEN GIVE IT UP FOR YEAR TEN
@junosoft
@junosoft Год назад
I thought he started in 2014;
@svaira
@svaira Год назад
Regarding the memcpy example, this might just be that the C library memcpy is better than necessary by the spec, or that it copies bigger blocks at once (usually whole mempages) so that the overlap may not have had an effect
@keroppl86
@keroppl86 Год назад
Martin Richards solved the problem of exposing symbols across modules in BCPL via a global vector. Symbols could be inserted into it with a simple GLOBAL { label: index; ... } block. No need for a linker or anything fancy. Hardware constraints were much greater in 1968, but definitely worth considering.
@mldy1
@mldy1 6 месяцев назад
5:00 actually memcpy is significantly faster than memmove (on modern hardware), the speed increase is from being better able to use SIMD instructions which u would not be able to use as well if the src and dst were overlapping
@gordonabernathy3071
@gordonabernathy3071 Год назад
must be fun working with you, watching these rants all the time 😆
@RogerBarraud
@RogerBarraud Год назад
Sign me up 🙂 If we can recruit Bryan Cantrill too, that'd make the perfect work environment 🙂
@WIImotionmasher
@WIImotionmasher Год назад
The How To file has development philosophy suggestions lmao. It's incredibly on-brand. Not saying it's a bad thing.
@enzi_official
@enzi_official Год назад
What's the endgame for JAI? It's probably been answered but maybe someone can answer me here? Like, I'm not capable of writing a whole engine but find this whole thing very interesting when it comes to game dev. Will Jonathan release his engine?
@pearljamrules1
@pearljamrules1 Год назад
Yes he’s planning on releasing the source code for the game/engine with JAI. Whenever they’re both done.
@deth3021
@deth3021 Год назад
Memory has just been an alias or wrapper dor memmove for at least a decade... AFAIK..
@m4rt_
@m4rt_ Год назад
I hope that it isn't long until this Language becomes public, or that I somehow get beta access.
@RogerBarraud
@RogerBarraud Год назад
I'm guessing that "Somehow" involves asking Jonathan 🙂
@MurtagBY
@MurtagBY Год назад
Is there any concept of asynchronous IO in the language?
@Supakills101
@Supakills101 Год назад
I will look forward to playing Jonathan's next game in 2050.
@InfiniteQuest86
@InfiniteQuest86 Год назад
This code pretty clearly references x64 registers. So can it not work on others like AARCH64 or x86 or ARM?
@BlitzToon
@BlitzToon Год назад
Is the reason why you named the language Jai is because of chai ice cream?
@blenderpanzi
@blenderpanzi Год назад
Can macros have out parameters? Not just a single return value, but a bunch of things to which the macro can write.
@r4s3
@r4s3 Год назад
How is your brain so fast
@joshuaworman4022
@joshuaworman4022 Год назад
the one thing i really want from macros is to have tables of macros that compile to a switch statement or something.
@Muskar2
@Muskar2 5 месяцев назад
usage example?
@brianmahoney4156
@brianmahoney4156 Год назад
Mr blow I’m very worried about AGI. Is this issue on your radar?
@krux02
@krux02 Год назад
My recommendation would be to learn about limitations of AI. Then it becomes less frightening.
@astroid-ws4py
@astroid-ws4py Год назад
It is just corporate nonsense, learn how those systems work. AI is basically a hype name for statistics and probability over huge amounts of data and in the case of robotics it is a hype name for trigonometry, But those names do not sell to the wider audience so the corporates choose to call that AI so they may sound cool.
@crasyguy74.63
@crasyguy74.63 Год назад
manchils
@crasyguy74.63
@crasyguy74.63 Год назад
manchild
@crasyguy74.63
@crasyguy74.63 Год назад
worried about markov chain
@timstevens3361
@timstevens3361 Год назад
is it me or is . . . Github VS Code n Visual Studio just scanning and scamming everybody's source code and stuffing it into GPT4 ? am i the Only person that thinks that ?
@machka6
@machka6 Год назад
hi
@jeanbonnot5446
@jeanbonnot5446 Год назад
Imagine, if you can, creating a new programming language with semicolon line endings in 2023...
@user-ov5nd1fb7s
@user-ov5nd1fb7s Год назад
Jonathan, while you might be a great programmer, in some of your discussions with other people that i've seen, you seem to be wildly inaccurate in your assessment of the programmers' community. Correct me, if i am wrong but it seems you think everybody except you is incompetent and should be fired. I might be overstating it, but not by much. And of course, you consider yourself very competent and your projects very important. So you should keep your job. This is obviously facetious but i am trying to make a point here. While there are obviously problems in our industry, there are awfully lots of very talented and dedicated people who write awesome code. You seem to be not understanding the problem, or not caring enough to understand it. The main problem is collaboration and us moving too fast for our own good. And you seem to avoid the problem by being the sole dictator of your own language/project. When something breaks, you've hinted that you should write an OS. As brilliant of a programmer you might be, writing a modern OS requires a massive collaboration. And you know these things but for some reason your opinions go against them. My opinion is that you should put your effort in making the community better, rather than pooping on it. But that is much harder to do, right?
@hannes5188
@hannes5188 Год назад
when will we see the compiler written in jai (as for example done by the creators of the wonderful jakt language) as ultimate proof of concept for the robustness & superiorty of this language over c++?
@henningsommer1257
@henningsommer1257 Год назад
@@cookednick I would agree if it was a AAA game with high requirements, but Sokoban? And just think about how much faster & less error-prone the compiler would get, unless it was all marketing buzzwords 😀
@Elrog3
@Elrog3 Год назад
@@henningsommer1257 Do you think his standards are not up to AAA standards? Do you think he's just making a generic, basic indie game? Have you seen The Witness?
@sanjacobs6261
@sanjacobs6261 Год назад
@@henningsommer1257 The speed issue is largely due to LLVM and the linker. Self hosting would not solve that. Getting rid of LLVM and the linker would solve it, even if they stay in C-land.
@VACatholic
@VACatholic Год назад
I think the "every program needs a common style and has to look the same" really took off when every single new grad was coding in python. And python, while it's not javascript, is a really shit language, and incredibly annoying to collaborate in if you don't use the same style due to the fact that white space is important, which is just ridiculous. So it's good that one of the worst programming languages in the world, python, is responsible for ossifying programming language structure across the board because people are idiots.
@snowballeffect7812
@snowballeffect7812 Год назад
I wonder why it's not open sourced. Very strange.
@sumofat4994
@sumofat4994 Год назад
So many good things are closed source. Why would you say that?
@snowballeffect7812
@snowballeffect7812 Год назад
@@sumofat4994 is this supposed to be a reason? lol wtf
@AlexanderThomasHaselton
@AlexanderThomasHaselton Год назад
so idiots like you keep their opinions to themselves
@snowballeffect7812
@snowballeffect7812 Год назад
@@danielmoore7105 thank you for a reasonable answer. I didn't realize there were so many weird sycophants in this community lol We'll see what happens when he's "done".
@snowballeffect7812
@snowballeffect7812 Год назад
@@AlexanderThomasHaselton you ok, kid?
Далее
Programming Language Beta Q&A, April 2023
2:00:58
Просмотров 21 тыс.
Compiler Demo: Macros and Iteration
1:28:00
Просмотров 27 тыс.
Stray Kids <ATE> UNVEIL : TRACK "MOUNTAINS"
00:59
Ummmm We "HAIR" You!
00:59
Просмотров 7 млн
Q&A: Compiler Progress Report, July 2019
55:42
Просмотров 19 тыс.
You dont know OOP
50:48
Просмотров 289 тыс.
Programming Language Q&A, December 2022
2:49:27
Просмотров 56 тыс.
Compiler Q&A: Macros and Iteration
1:01:53
Просмотров 15 тыс.
Treemap Viewer, part 1
2:24:17
Просмотров 29 тыс.
I Made Terraria In JAI (Programming Language)
19:20
Просмотров 9 тыс.
ИГРОВОЙ АВТОМАТ !! КАБАНИМСЯ
2:29:59