[HN Gopher] Artichoke Ruby Architecture
___________________________________________________________________
Artichoke Ruby Architecture
Author : ibraheemdev
Score : 43 points
Date : 2021-02-12 13:33 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| no_wizard wrote:
| This looks really neat for the ruby community. It being modular I
| imagine the target is for Embedding when you know you only need X
| features of ruby so you get smaller and hopefully more performing
| builds? At least if I understand this correctly.
|
| As an aside: is ruby easier to implement than other languages?
| It's syntax and features seems more complex than say Python but
| I've heard from others that implementing a new Python
| distribution in say Rust is a real PITA
| throwawaygimp wrote:
| I hope so. I would love to use Ruby embedded one day
| xutopia wrote:
| I believe it is actually much harder to implement than many
| other languages because the syntax is so complex. You have so
| many edge cases to account for that it is rather difficult to
| consider all scenarios.
| danielheath wrote:
| Parsing is hard, but that's only a small part of writing an
| interpreter.
| p4lindromica wrote:
| For now Artichoke leans on mruby's parser, but I'm looking
| forward to using https://github.com/lib-ruby-parser/lib-
| ruby-parser which is a Rust port of MRI's parse.y.
| p4lindromica wrote:
| Code size in an embedded context is one use case for the
| modularity here. Another is limiting access of Ruby code to the
| host system.
|
| For example, one may wish to use Artichoke in a game engine for
| scene scripting. It's probably undesirable for Ruby code run in
| this context to modify the host environment, so `ENV` can be
| disabled at compile time. But maybe you have existing code that
| uses `ENV`. Toggle a compile time flag and you can get a
| compatible `ENV` implementation that is backed by a hash map.
___________________________________________________________________
(page generated 2021-02-13 23:00 UTC)