helix icon indicating copy to clipboard operation
helix copied to clipboard

Is there a list of supported objects?

Open NullVoxPopuli opened this issue 9 years ago • 10 comments

I'm wanting to re-write https://github.com/NullVoxPopuli/case_transform/blob/master/lib/case_transform.rb as a rust-extension.

Basically, each method does

      case value
      when Array then ...
      when Hash then ...
      when Symbol then ...
      when String then ...
      else value
      end

Does helix support these 4 objects? (I guess I know it does Strings, based on the fast blank example)

But also (and maybe this is more of a rust question / I need to dive deeper in to the rust docs) for hash, case_transform uses deep_transform_keys!, is that something that would be exposed via helix? would I implement that in rust if it doesn't exist yet?

NullVoxPopuli avatar Sep 16 '16 14:09 NullVoxPopuli

Is this project dead?

lypanov avatar Oct 19 '16 09:10 lypanov

The most recent commit I can find is from "3 months ago" in the duration_wip branch. Probably. Or they're just busy.

bbuck avatar Oct 20 '16 00:10 bbuck

Depends on what you mean. It has never been a production-ready/"complete" project (yet), and I could only afford to work on it as a side-project/experiment capacity. There is a path to taking it there, and at some point it would make sense for me to spend company time (Tilde has a custom binding for the Rust agent that I would like to replace with Helix) on it.

My most recent experiment was porting Active Support's Inflector to Rust, but I ended up discovering a bunch of issues in the Ruby implementation that I am now trying to fix.

chancancode avatar Oct 20 '16 00:10 chancancode

I've been silently following Helix since May. While I haven't been under the impression that its development has halted, I can see how one might come to that conclusion. It was rather disheartening to see issues & PRs following shortly after the initial announcement of Helix receive no followup until about a month later. It sounds like Helix is a strategically important project for Tilde in the long term, so it makes sense to invest even just 5% of your time to keep potential contributors engaged and informed.

I'm happy to hear there are some porting experiments in the works. A really good use case story could easily generate another wave of buzz for Helix, as we saw recently with Sentry.io's "Fixing Python Performance with Rust" article.

@NullVoxPopuli I'm sorry for continuing the hijacking of your issue 😅

erlend-sh avatar Oct 22 '16 00:10 erlend-sh

@erlend-sh, it's cool. I currently have one of my ruby-rust projects using ruru. I like Helix's API much better though.

https://github.com/NullVoxPopuli/case_transform-rust-extensions/blob/master/ext/case_transform/src/lib.rs

Just one piece of my long term goal of making ActiveModelSerializers crazy fast.

NullVoxPopuli avatar Oct 22 '16 00:10 NullVoxPopuli

@erlend-sh yes, I completely agree with what you said.

However, 5% is not a lot of time – if you do the math it amounts to around 1 day every work month. To be honest, I think we have been spending much more than a day each month on Helix at work and in our personal time, but we ended up spending it on things like tactical discussions/feedback with the Rust team, pairing with other people (I recently paired with @hone on the mruby side of things), explaining the project (both high-level goals and technical details) to other people including members of the Rails team, and experiments like the Duration branch and my recent Inflector spike.

I agree that this project is strategically important for Tilde, and I also feel guilty for not having the bandwidth to review the issues/contributions. Given that we have at least two other major open-source efforts at Tilde at the moment (Glimmer 2 and Yarn), I am not sure how to "fix" that in the immediate term. It might be just a matter of re-prioritizing the (more than) 5% time in the near term to work on the issue tracking and writing documentation – but all of these are competing with the other work I enumerated above.

The good news is I think we are getting close to wrapping up our initial effort on Glimmer 2 and Yarn (not that we will stop working on them, but they won't have to take up 100% of our time anymore, at least that's the hope). In terms of Helix, I think we are also getting close to a place where we can start documenting and delegating the remaining work – but there are a few foundation pieces @wycats and I want to get right before piling more on top. I really hope that we can return to that work soon™.

chancancode avatar Oct 22 '16 00:10 chancancode

I hope to be doing a bit of work on Helix as well so that should help at least a little bit.

wagenet avatar Feb 25 '17 02:02 wagenet

By the way, work on this project has picked up quite a bit. #30 tracks immediately pending work.

wycats avatar Mar 03 '17 02:03 wycats

See #46 for some attempts at this. It's worth noting that we probably won't merge the Array and Hash stuff as is, instead mapping into special versions that have more Ruby-like behaviors in regards to their contents.

We should also document what we do and don't support.

wagenet avatar Apr 27 '17 15:04 wagenet

Doesn't look like the documentation of what is supported has been referenced to this issue. I'd say https://usehelix.com/documentation#valid-parameter-types does a good job of documenting what is supported. Do we want this information added to the README or is there a better location for this repo to include this documentation? Is it best left as is and the documentation label of this issue removed?

AndyGauge avatar Nov 04 '17 15:11 AndyGauge