What has happened?

I want to know what has happened when i left.(im now more years old than a "precocious 12 year old" thats why i didnt come here for a long while(real reason:javascript and c++ are faster :stuck_out_tongue: im coming back for more stuff if there are like more metaprogramming stuff and stuff)

i dont reccomend talking about age.

well i didnt talk about what i am :slight_smile:

snapblocks and snap 10 are the main additions, read these!

also, check out the new libraries!

yeah just did that :stuck_out_tongue:
block deserialization finally differentiates between no inputs,one input,and a input list at the same time!

(right now im actually thinking about how metaprogramming can be implemented in a python/java like language lol)

yeah and itll get better in snap 11 with input groupings!!!

I would start by studying how macros work in Scheme.

P.S. Welcome back!

ah i was half joking because the idea of tracing back the part of code corresponding to the bytecode after compiling seems funny(although everyone does this and its not hard at all)

also i might have been thinking of eval function instead of macros since macros doesnt use that anyways

What's "input groupings" suppose to improve of Snap​!? :face_with_raised_eyebrow:

I don't understand. Macros don't use what?

"Code to Blocks..." library
untitled script pic - 2024-09-07T172153.670

Um can someone who knows what I’m talking about explain pls

Let's say you want to build a custom block version of the variadic IF:


To do this, you want a variadic group consisting of

  • the title text "else if"
  • a Boolean (unevaluated) slot
  • a C-shaped slot

When you click the arrowhead, you get all three of those at once.

uncompiling stuff or storing a reference of what code the bytecode refers to

Oh, yeah, macros are at a level of abstraction way above bytecode!

PS: The if block is just one big input of a list (the input type is dev-only) (correct me if im wrong)

What?

Anyway,
The first if case has individual inputs, but the rest is one.

You're missing the fact that it alternates the hexagonal Boolean input slots with the C-shaped action script input slots. We don't yet have a way for users to create such input groups -- try making that multi-branch IF as a custom block and you'll see what I mean!