80
submitted 1 month ago by Ephera@lemmy.ml to c/programmerhumor@lemmy.ml

So, this uses a macro, but if you're thinking anything is possible with a macro, it's actually not in Rust. The input does still need to parse as valid Rust tokens.

Which means the authors asked themselves at some point: Is the Rust syntax a superset of the Python syntax?
And well, it's not. In particular, some Python keywords will just be tokenized as an identifier (like a variable name).

But it is close enough that the authors decided against requiring a massive string to be passed in, which does amuse me. 🙃

top 11 comments
sorted by: hot top controversial new old
[-] cabhan@discuss.tchncs.de 51 points 1 month ago

With projects like these, I'm always torn between thinking that it's cool it's possible, and horror that someone somewhere will try to use this in production code.

[-] BestBouclettes@jlai.lu 8 points 1 month ago* (last edited 1 month ago)

It's probably both

[-] quaff@lemmy.ca 33 points 1 month ago

Personally, I can’t wait to inline PHP in my rust code!

[-] flashgnash@lemm.ee 16 points 1 month ago

Better yet inline PHP inside the inline python in your rust code

[-] rikudou 1 points 1 month ago

Just use Peachpie and run it with your C# code!

[-] flashgnash@lemm.ee 22 points 1 month ago

This is absurd, the amount of effort that must have gone into this purely for shits and/or giggles

[-] fossphi@lemm.ee 24 points 1 month ago* (last edited 1 month ago)

shits and/or giggles

That's probably the single most impactful cause for doing things with computers

[-] JoYo@lemmy.ml 7 points 1 month ago* (last edited 1 month ago)

is it converting the syntax to rust? wouldn't that be easier at the LLIL or i guess python bytecode level?

[-] Ephera@lemmy.ml 11 points 1 month ago* (last edited 1 month ago)

From what I understand, it works like this:

  1. Rust compiler reads the pseudo-Python and tokenizes it according to Rust's rules.
  2. Macro code converts the tokens back to (now proper) Python, while filling in the captured variables. I believe, this is the code that does this.
  3. Python code is executed in an actual Python interpreter, via PyO3.
[-] JoYo@lemmy.ml 5 points 1 month ago

oh ok nm i misunderstood. thanks

[-] HStone32@lemmy.world 3 points 2 weeks ago

What is it about python users just refusing to adapt to other languages?

this post was submitted on 16 Oct 2024
80 points (100.0% liked)

Programmer Humor

32483 readers
484 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS