We need Faster Assembler

  Рет қаралды 45,781

Tsoding Daily

Tsoding Daily

Күн бұрын

Пікірлер
@RinLovesYou
@RinLovesYou 3 жыл бұрын
"'I'm here to break all the conventions" Proceeds to follow the syscall naming convention perfectly.
@beauteetmusculation8191
@beauteetmusculation8191 3 жыл бұрын
That cracked me up too. 😀
@dumpsockpuppet5619
@dumpsockpuppet5619 3 жыл бұрын
"I'm a Badass, not an Anarcist" -Rosa Diaz, Brooklyn 99
@donkeyy8331
@donkeyy8331 3 жыл бұрын
You're not only very smart, but also very funny, I always have a blast watching your videos.
@MCorange9
@MCorange9 3 жыл бұрын
@@ShrirajHegde Im also 13 cuz I laughed at this
@niculaelaurentiu1201
@niculaelaurentiu1201 Жыл бұрын
He's not smarter than most of us. He has discipline to work and be focused. That goes a long way
@ramongonzalezfernandez8904
@ramongonzalezfernandez8904 3 жыл бұрын
Section is for compiling to a .o which you then manually link (so it needs the special labels), segment is for compiling straight to an ELF
@DanCojocaru2000
@DanCojocaru2000 3 жыл бұрын
12:37 Suggestion: a "no return" return type, so that if you call exit, Porth will know that terminates the program and won't check what the function is returning
@KitsuneAlex
@KitsuneAlex 3 жыл бұрын
That's quite a neat idea, maybe add a noret keyword or something.
@CyborusYT
@CyborusYT 3 жыл бұрын
Like Rust's ! type?
@KitsuneAlex
@KitsuneAlex 3 жыл бұрын
@@CyborusYT In the language i am currently designing ! is used for null-assertion, so that wouldn't work for my case, idk how single-char ops fit into porth either.
@CyborusYT
@CyborusYT 3 жыл бұрын
@@KitsuneAlex not that it necessarily has to be represented by !, just some kind of uninhabited type
@KitsuneAlex
@KitsuneAlex 3 жыл бұрын
@@CyborusYT fair enough.
@FreezeBlaze
@FreezeBlaze 3 жыл бұрын
I learned more assembly from this than I did in my assembly course in uni
@phillipvance864
@phillipvance864 3 жыл бұрын
In nasm you can use back ticks to do C style escape codes so: `Hello World ` Will work and that also works for escaping the null terminator \0. Although I guess it wont matter if you replace nasm. In fasm I think to get your SYS_exit macro just assign it like Python: SYS_exit = 60 I think that's how it works in fasm but not 100% sure Regards! I actually learned asm because of your porth videos, so thank you very much :)
@Pi7on
@Pi7on 2 жыл бұрын
I find the whole process fascinating. Thank you for the amazing stream!
@kernelk1931
@kernelk1931 3 жыл бұрын
wow, you're back for some Porth action!
@etopowertwon
@etopowertwon 3 жыл бұрын
It's somewhat funny to see "I'm here to break all the convention" followed by a rant that nasm doesn't support the standard conventions of " ". Nasm support escaping, it just breaks the convention by requiring different quotes.
@bigmistake5565
@bigmistake5565 3 жыл бұрын
I would love to have a little overview of ur off-screen type-checking implementation in Porth btw. It's great that you don't feel the need to stream everything to keep everything moving forward, but in this case I am quite curious to the challenges you had during implementation!
@chromosundrift
@chromosundrift 3 жыл бұрын
yeah I have a feeling it was a lot of work
@iulian9225
@iulian9225 3 жыл бұрын
tsoding i a month "we need faster linux"
@Chaosman88
@Chaosman88 3 жыл бұрын
smooth beatboxing there! 42:48
@nonnymoose7005
@nonnymoose7005 3 жыл бұрын
You'll probably want to use gas because it supports linking (that's where the concept of sections comes in). It has an intel assembly directive as well.
@drdefecation
@drdefecation 3 жыл бұрын
nasm can also output linkable ELF
@arti5musicc
@arti5musicc 3 жыл бұрын
At 18:00, it does go into the .data section and segfaults because of that (.data is not executable)
@mathalphabet5645
@mathalphabet5645 3 жыл бұрын
42:50 causally performs awesome beatbox
@alexnik1181
@alexnik1181 2 жыл бұрын
7:32 The way he said "i did not" came from a movie The Room. I recommend watching it!
@wirtos_new
@wirtos_new 3 жыл бұрын
constant string is usually placed in .text so it'll segfault when you try to write something there, for example in C "hello world" is of const char array type and segfaults if you write to it
@manjoos4906
@manjoos4906 3 жыл бұрын
strings constants are stored in .rodata (read only data). the reason it seg faults is due to an access violation since this section is loaded with nowrite permissions.
@etopowertwon
@etopowertwon 3 жыл бұрын
In linux constant data are placed into .rodata section (duh)
@styleisaweapon
@styleisaweapon 3 жыл бұрын
nasm isnt designed to scale like you are using it - you want an assembler that was designed to be a back end for compilers to begin with, such as gnu's gas or microsoft's masm - basically where cross-compiling was considered important you will also find a backend assembler being used that scales fairly well
@ahmadhadwan
@ahmadhadwan 3 жыл бұрын
22:20, in order to use escaped characters in nasm, you have to write the string in `backquotes??`
@mdev790
@mdev790 3 жыл бұрын
Yasm is also another alternative compatibilre with Nasm, Fasm and Gas syntaxes Also gas supports intel syntax
@SketchyAtBest
@SketchyAtBest 2 жыл бұрын
You know who could build a faster assembler? Terry fuckin Davis. That devine intellect would have it done in no time.
@danespen5772
@danespen5772 3 жыл бұрын
To improve your workflow, make your Makefile default target running the test.
@wChris_
@wChris_ 3 жыл бұрын
you should know that the reserved bytes should be handles as unknown/uninitialized, basically the kernel can decide how it will initialize the memory for you, which just happens to be zero! So you should make sure to initialize it to zero yourself or wake up some day wondering why your compiler isnt working anymore!
@xelaxander
@xelaxander 3 жыл бұрын
Yes!! It's Porth again!!
@SidTheGreat420
@SidTheGreat420 3 жыл бұрын
Hey when are you planning to add switch-case statements?
@Vili69420
@Vili69420 3 жыл бұрын
17:42 step application what are you doing do me
@hellNo116
@hellNo116 3 жыл бұрын
you press space twice for intonation. I can't remember seen anyone else doing that. I have heard only legends.
@q_rsqrt5140
@q_rsqrt5140 3 жыл бұрын
NASM supports escape characters with `` string literals
@rhbvkleef
@rhbvkleef 2 жыл бұрын
Do you have any plans on dirtying your hands on generating some LLVIM IR?
@ahmadhadwan
@ahmadhadwan 3 жыл бұрын
I was thinking about writing an elf assembler in C, would you like to make an open source project, where we both contribute?
@ahmadhadwan
@ahmadhadwan 3 жыл бұрын
@@SimGunther i did figure out how to generate an elf object, the elf implementation is available on wikipedia, and in elf.h
@TVSuchty
@TVSuchty 3 жыл бұрын
Why not use clang backend for assembly?
@RuneSmedstuen
@RuneSmedstuen 3 жыл бұрын
@7:32 A line best uttered on the rooftop.
@JustMaiyak
@JustMaiyak 3 жыл бұрын
Can’t wait for the flag for GASM
@bigmistake5565
@bigmistake5565 3 жыл бұрын
Yeeees! Was starting to miss Porth ☺️
@fasogoss
@fasogoss 3 жыл бұрын
The future is PORTH !!!
@markblacket8900
@markblacket8900 3 жыл бұрын
god appears in three forms: readable, writable, executable
@chromosundrift
@chromosundrift 3 жыл бұрын
is it possible to assemble `std.porth` once and binary include it?
@Obama6464
@Obama6464 3 жыл бұрын
I’m curious to know how you’re this talented man. How long have you been programming?
@metagen77
@metagen77 3 жыл бұрын
If you hit your head in the right spot with the right force there is a chance your personality will shift. Most likely you will just start to drool tho.
@fizipcfx
@fizipcfx 3 жыл бұрын
@@metagen77 wtf
@metagen77
@metagen77 3 жыл бұрын
@@fizipcfx It's a joke but it's true, search "head injury musical math talent" for example.
@chromosundrift
@chromosundrift 3 жыл бұрын
I think he said 15 years. But he seems to code multiple hours every day and he doesn't seem to believe in magic programs that only wizards can write. He is always willing to try to code something himself. "Talent" often implies someone is born with magic ability but I give credit to the hard work Tsoding has put in to gain this skill level.
@cybergoth2002
@cybergoth2002 3 жыл бұрын
banger video
@beltran9778
@beltran9778 3 жыл бұрын
Svscall? Isn't SYSCALL?
@monsieuralexandergulbu3678
@monsieuralexandergulbu3678 3 жыл бұрын
5:27 you're just using wrong data structure in porth :]
@kuschelmaschine6644
@kuschelmaschine6644 3 жыл бұрын
Can I use this code or text editor on windows?
@lame_lexem
@lame_lexem 3 жыл бұрын
thoughts on wasm?
@vim1729
@vim1729 3 жыл бұрын
Do you use evil mode inside Emacs or vanilla emacs key bindings?
@mutumbamoris3220
@mutumbamoris3220 2 жыл бұрын
the mind:"am slowing dow....." me:"pick up"
@mcol3
@mcol3 3 жыл бұрын
If python is your idea of slow, you haven't tried R yet.
@Mrqwertar
@Mrqwertar 3 жыл бұрын
Isn't R a DSL rather than a general-purpose language?
@batlin
@batlin 3 жыл бұрын
@@Mrqwertar no, it's popular in stats and bioinformatics but so is Python.
@beauteetmusculation8191
@beauteetmusculation8191 3 жыл бұрын
Outstanding video.
@coldeeshiashi5922
@coldeeshiashi5922 3 жыл бұрын
Bro u r really fucking cool, all I can say.
@MrKristian252
@MrKristian252 3 жыл бұрын
This is pretty damn awesome
@trejohnson7677
@trejohnson7677 3 жыл бұрын
Jones showed us the way decades ago, my friend.
@NotMarkKnopfler
@NotMarkKnopfler 2 жыл бұрын
Jones was standing on the shoulders of many other giants. Ting, Jeff Fox et al spring to mind, not to mention Moore himself.
@lovely-shrubbery8578
@lovely-shrubbery8578 3 жыл бұрын
Yay Ive been learning nasm lately woo
@commiesbegone2580
@commiesbegone2580 3 жыл бұрын
Cant you use tabs for setting comments? why wouldnt you?
@movization
@movization 3 жыл бұрын
7:31 Oh, Hi Mark
@cedricvillani8502
@cedricvillani8502 3 жыл бұрын
Gonna just say from your title that you sir could use a MATLAB License
@tubi4203
@tubi4203 3 жыл бұрын
bro where tf did u learn assembly
@ne4to777
@ne4to777 3 жыл бұрын
pain, just pain, programmers was born for pain
@bitcode_
@bitcode_ 7 ай бұрын
53:57 💧
@11WicToR11
@11WicToR11 3 жыл бұрын
Why is he always saying "tutudutu" ? :D I only ever heard that as anime reference, is our russian teacher weeb?
@jonxslays
@jonxslays 2 жыл бұрын
wasm 😎
@sergey6661313
@sergey6661313 8 ай бұрын
1:06:17 "тоесть"
@meep.472
@meep.472 3 жыл бұрын
52:02 tsoding is a fwmboy confirmed
@boreddad420
@boreddad420 Жыл бұрын
54:40
@Mrqwertar
@Mrqwertar 3 жыл бұрын
2nd view, 2nd like, 1st comment
@hanqnero
@hanqnero 3 жыл бұрын
I ruined 169 likes with my 170th.
@masonthedunce3711
@masonthedunce3711 3 жыл бұрын
porf
Creator of C3 improves the Lang Live as I use it
2:50:11
Tsoding Daily
Рет қаралды 18 М.
The Power of Inline Functions
1:31:10
Tsoding Daily
Рет қаралды 30 М.
OCCUPIED #shortssprintbrasil
0:37
Natan por Aí
Рет қаралды 131 МЛН
Хаги Ваги говорит разными голосами
0:22
Фани Хани
Рет қаралды 2,2 МЛН
GameDev in Assembly?!
4:00:03
Tsoding Daily
Рет қаралды 65 М.
Will Ada Replace C/C++?
44:57
Tsoding
Рет қаралды 99 М.
Better Stack Operations Have Been Discovered
42:28
Tsoding Daily
Рет қаралды 23 М.
How do hardware timers work?
31:17
Ben Eater
Рет қаралды 981 М.
Emulating a CPU in C++ (6502)
52:28
Dave Poo
Рет қаралды 1 МЛН
To-Do App in Assembly
1:05:27
Tsoding Daily
Рет қаралды 128 М.
Web in Native Assembly (Linux x86_64)
2:03:41
Tsoding Daily
Рет қаралды 60 М.
4. Assembly Language & Computer Architecture
1:17:35
MIT OpenCourseWare
Рет қаралды 733 М.
Fast Inverse Square Root - A Quake III Algorithm
20:08
Nemean
Рет қаралды 5 МЛН
OCCUPIED #shortssprintbrasil
0:37
Natan por Aí
Рет қаралды 131 МЛН