HackerTrans
TopNewTrendsCommentsPastAskShowJobs

Sagi21805

no profile record

Submissions

Building Rust Procedural Macros from the Grounds Up

learnix-os.com
88 points·by Sagi21805·geçen ay·18 comments

[untitled]

1 points·by Sagi21805·2 ay önce·0 comments

comments

Sagi21805
·geçen ay·discuss
Said the inner block inside the for loop could not be a function, because break does not mean anything not inside a loop, but the macro, which seems like a function, injects it into the code which is inside a loop, which is valid
Sagi21805
·geçen ay·discuss
That's really cool, I was not familiar with this and will look into it!
Sagi21805
·geçen ay·discuss
Thanks!

Couldn't agree more, both on proc macros and operating system, I did not find sufficient information on the internet. That is exactly the purpose of this book.
Sagi21805
·geçen ay·discuss
Yea that's sound about right

The macro explained in that section was mainly for me to learn macros, and save up some boilerplate with nice syntax.
Sagi21805
·geçen ay·discuss
Thanks for the warming comment!
Sagi21805
·geçen ay·discuss
During the development of Learnix operating system I needed to represent bitflags inside some structures.

While there were alternatives with 3rd party libraries, the goal of the project is to implement and learn as much as I can.

Most of the guides I found online explained the concept great, but created only a simple macro as an example. So I decided to write about it myself too, with a real usage to create a bitfields attribute proc-macro, that takes a struct and turns it into bitfields.

Hope you will have a great read!
Sagi21805
·2 ay önce·discuss
Hi! This is a project that I am working on for quite a while.

The main goal is to teach operating systems and Rust.

This is still 'beta' and a lot of things are missing (especially Rust chapters) but I would like to know what you think if it :)
Sagi21805
·2 ay önce·discuss
I am working on the Learnix operating system (https://gitHub.com/sagi21805/LearnixOS) Mainly an educational project, to understand and teach about OS and Rust concepts (The OS is written in Rust)

https://www.learnix-os.com
Sagi21805
·7 ay önce·discuss
I plan to cover more, like disk drivers, file systems, processes, shell, user space, processes, until we can run a working program!

Hopefully, also networking
Sagi21805
·7 ay önce·discuss
This project started because I wanted to understand the linux that sits on my computer, which is x86. There is a possibility that on the future it will have multiple architectures supported, probably starting with arm, but I can't promise that
Sagi21805
·7 ay önce·discuss
You are correct, and it will be fixed!
Sagi21805
·7 ay önce·discuss
Because I didn't really publish it, I didn't check all the grammar and type errors

This is something I will improve when the initial release will come
Sagi21805
·7 ay önce·discuss
That's actually an interesting idea, the main reason is that I wanted to take a doom port that is posix compliant and see if I can make it run
Sagi21805
·7 ay önce·discuss
When I started writing this OS, Rust was a pain, and I needed to understand a lot of things that I didn't know about the language, I can flag on some sections that people can skip because they are more language related, but I think that it is very important, and can be beneficial to people that come from other languages, or to people that want to understand rust more deeply.

In every chapter I try to initially explain the topic and then implement, or something in between. but I think the implementation is important because it completes the picture.
Sagi21805
·7 ay önce·discuss
I like the current name and already have the domain :|
Sagi21805
·7 ay önce·discuss
Will do!
Sagi21805
·7 ay önce·discuss
Hi! I am the developer of this, and I really appreciate the feedback!!

The book is still on development and this is why I didn't even publish it here, I just recently finished the highlighter which was a lot of work, and I probably will require more.

Currently I am trying to make book and OS unique by developing and creating an explanation on AHCI, which I didn't see much on the internet. And then I try to handle all of the grammar, and typos