go-serial
go-serial copied to clipboard
Submit custom syscalls to golang
I'm wondering if we can submit the missing syscalls (that we generate with mksyscall & friend) to upstream golang developers to be added to the syscall
package, so they could be removed from this library.
After some research here's what I've found:
-
syscall
is a frozen package, is kept alive just for the go v1 compatibility promise, here the notice coming from https://golang.org/pkg/syscall/:NOTE: This package is locked down. Code outside the standard Go repository should be migrated to use the corresponding package in the golang.org/x/sys repository. That is also where updates required by new systems or versions should be applied. See https://golang.org/s/go1.4-syscall for more information.
-
The new golang.org/x/sys package looks promising but we should first migrate the library to use
golang.org/x/sys
instead ofsyscall
.
@albenik (or anyone esle) do you have any experience/opinion on that?
I did a little research while working on some new features for go-serial
and found these issues:
- https://github.com/golang/go/issues/12853
- https://github.com/golang/go/issues/13104
and I think there is no way now to add a new syscalls to golang core packages. Moreover as I understood, syscall
/ golang.org/x/sys
is a packages only for most common syscalls used in golang core and related packages. For any other cases the code generation is a right way.
And about migration to golang.org/x/sys
I think it is not urgent but necessary improvement.
https://github.com/cwchiu/go-winapi I did not look closely at the package yet. Jut drop it here for history.
Pros
- No need to write/generate own wrappers to windows api calls at least
Cons
- External dependency.
- Most of api calls where already implemented in
go-serial
, so it may be unnecessary work
Have to migrate unix codebase to golang.org/x/sys
https://github.com/bugst/go-serial/pull/29