Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: minutes for node+js interactive meeting #6

Merged
merged 2 commits into from
Oct 16, 2018
Merged

Conversation

bcoe
Copy link

@bcoe bcoe commented Oct 13, 2018

here are the minutes from yesterday, please:

  • that I haven't missed any important topics of conversation.
  • that action items are assigned appropriately.
  • that you voice your opinion here regarding our first post Node+JS Interactive meeting.

Attendees:

@boneskull, @bcoe, @iansu, @guybedford, @oludiro, @ErickWendel, @ruyadorno, @MichelLopez, @bengl

@bcoe bcoe requested review from evocateur, bengl and boneskull October 13, 2018 19:08
@bcoe bcoe changed the title docs: minutes for node+js interactive docs: minutes for node+js interactive meeting Oct 13, 2018
* *Guy*:
* let's reach out to library maintainers, and see how they feel about getting
their work brought into core (@guybedord).
* this could be a great way to get more Node contributors; perhaps
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dshaw it came up in the tooling meeting that it might be good to reach out to library maintainers who are interested in moving some of their work to Node.js core; might dovetail with community and mentorship work?

* argument parsing could be made better than `process.argv.slice(2)`.

* *Bryan*:
* would like to see `execvp` implemented, this could be a good alternative

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it a concern that the Windows process model doesn't have anything like Unix exec, so this is likely to be unix only?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @bengl ^

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sam and I ended up discussing this in person. The short answer to Sam's question is: Yes.

We may be able to do something that behaves similarly enough for the use-cases we're aiming for.

Here's how things seem to have worked (or not) in python-land (thanks Sam for sending these to me!): https://stackoverflow.com/questions/7004687/os-exec-on-windows https://bugs.python.org/issue9148

So yes it might be the case that this needs to be a UNIX-only feature (there is some precedent for UNIX-only features in Node.js).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what is being looked for from execvp(). Since "emulation" of exec on Windows is trivial:

try{
  child_process.execSync(...);
  process.exit(0)
} catch(e) {
  process.exit(e.status)
}

its not at all useful (above is basically what python et al does).

The only thing execvp offers over execSync is true process replacement, which isn't part of the Win32 process model. I have sometimes wished for this, but since its not portable I just figured out other ways.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think some of the early feedback from the tooling user-feedback effort is that we want LESS platform specific behaviour versus more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mhdawson Could something like execvp be implemented in a native module? Is there a precedent for something like that, where Node.js provides a hook for native modules, but no corresponding JS API surface? Is this a terrible idea?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@boneskull Depending on the complexity you want, execvp() should be pretty easy to implement as a native module, even without any hooks from Node.js. You don’t have to worry about options like environment variables or working directories, since you can set any of these from the running process before jumping into execvp(), and IPC shouldn’t be a concern either.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bengl Would that ^ work for you?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It already exists as several native module: https://www.npmjs.com/package/native-exec, https://www.npmjs.com/package/kexec, and probably more.

I'd rather see it in core so that userland native addons aren't necessary to get this done. I don't think process management functionality should be relegated to userland.

Copy link

@guybedford guybedford left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was great to join in on this discussion. Look forward to continuing to follow these developments.

minutes/2018-10-12-node-interactive.md Show resolved Hide resolved
minutes/2018-10-12-node-interactive.md Show resolved Hide resolved
Copy link

@evocateur evocateur left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, huge thanks for taking notes @bcoe!

minutes/2018-10-12-node-interactive.md Show resolved Hide resolved
Copy link
Member

@mhdawson mhdawson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (was not at the meeting but seems like a good overview)

@boneskull boneskull merged commit c2ac7f5 into master Oct 16, 2018
@boneskull boneskull deleted the node-interactive branch October 16, 2018 22:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants