Giter Club home page Giter Club logo

Comments (7)

sigmaSd avatar sigmaSd commented on August 19, 2024

Good idea! I'm definitely interested in this, I'll try implementing this

from irust.

sigmaSd avatar sigmaSd commented on August 19, 2024

I implemented the idea, but after testing it, it feels underwhelming since proc-macro are compile-time you can't really interact with them in the repl.
You can test the code here 0617d14 . The idea was to enable proc macros with :proc_macro and to switch between writing to main.rs and lib.rs using :file {file}

Like I said trying it out in practice its doesn't feel really interesting, on the other hand I want to mention you can already interact with proc macros crate using irust in a different way:

  • Create a proc macro cate
  • run irust
  • :add path to crate

Any change made to the crate will be immediately reflected, which I think has some of the advantages of supporting procmacros

Here is a demo

procmacro.mp4

One thing I noticed, is dbg! in proc-macros only appears if the compilation is not successful, I think that something that can be improved on.

from irust.

AZMCode avatar AZMCode commented on August 19, 2024

Wait wait, I think we might be talking about different things here. What I at least intended to suggest in this specific issue was the ability to use the proc_macro API in irust (TokenStream, TokenTree, etc) to test out code for later use within a proc_macro crate. At least I tested the new version and had no luck getting it to work.

In any case, I'm not sure I fully understand the changes you've done. I tried doing the process enabling the proc_macro flag first, and no dice.

Here's an asciinema clip to show what i mean. In case you wonder what ./new_irust is, it's just a symlink to the compiled version of the commit you sent. In any case, very much thanks for the lightning fast response and enthusiasm!

from irust.

sigmaSd avatar sigmaSd commented on August 19, 2024

Here is how you can use the new commit

procmacro2.mp4

(note: to be able to write #[proc_macro]fn ... -> after writing #[proc_macro] you can use alt+enter to add a new line instead of evaluating the input)

But I see what you're trying to do, It would be nice if there was an ergonomic way to call proc_macros apis

from irust.

sigmaSd avatar sigmaSd commented on August 19, 2024

Think this is a way to achieve what you want https://github.com/sigmaSd/procmacro/blob/master/src/main.rs

procmacrocrate.mp4

from irust.

AZMCode avatar AZMCode commented on August 19, 2024

Cool! Do I close the issue or do you wish to keep improving the feature?

from irust.

sigmaSd avatar sigmaSd commented on August 19, 2024

I prefer to keep the issue open till I figure it out, thanks!

from irust.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.