Arc Forumnew | comments | leaders | submitlogin
1 point by akkartik 5108 days ago | link | parent

"Having built-in types like table/cons/etc. written in the same way, rather than as opaque blobs in Racket."

"in order for Arc to support message passing, it would be necessary for the built-in types to also use message passing"

Are you planning to replace (f x) everywhere with (x f)? That hardly seems backwards-compatible. (Forgive me if this is a stupid question. I have zero 'expertise' since I haven't read 75% of what you have written in this thread.)

If you provide a way to handle (f x) as an 'f message to x, then you shouldn't need to implement primitives.

"It seemed to basically dismiss message passing, but without explaining why. How am I supposed to know how message passing is flawed, unless people explain?"

You have to try it :) It's pretty clear that nobody here has tried quite what you're proposing, so what you thought of as dismissal was just people thinking (like me for the past few weeks) that they had nothing to add since they haven't tried it, and wanting to reserve judgement until they had an opportunity to play with an implementation. But maybe that's just me :)

Or did I miss a dismissive comment?



1 point by Pauan 5108 days ago | link

"Are you planning to replace (f x) everywhere with (x f)?"

Nooope. Let's assume my-table is a table. On the left side is the current pgArc interpretation. On the right side is message passing:

  (my-table 'something)       -> (my-table 'get 'something)
  (= (my-table 'something) 5) -> (my-table 'set 'something 5)
  (keys my-table)             -> (my-table 'keys)
...but that's all hidden behind functions, so ordinary Arc code doesn't need to know that. In other words, `apply` would automagically convert (my-table 'something) into (my-table 'get 'something), so Arc code can't tell the difference. That's why it's backwards compatible.

---

"Or are you seeing dismissal in statements rather than silence?"

Mostly rocketnia, but that's fine since they now understand what I'm talking about, so we can actually discuss the idea. :P Their dismissal seemed to be because of a conflict in motivations.

-----