It's not abandoned; it's resting :)

On Sun, Feb 19, 2017 at 10:08 AM Dave MacFarlane <driu...@gmail.com> wrote:

> Sure, but I'm not the one using plan9/client: plumb.Open is. So in
> order to do it and keep supporting p9p, I still need to fork
> 9fans.net/go and vendor my changes to the plumb package, which brings
> me back to where I started: needing to maintain my own fork of a
> seemingly abandoned package.
>
> (I just tried directly opening /mnt/plumb/edit behind a build tag in
> the plumb package and returning the *os.File, and it does mostly work
> except for the same problem of *os.File not implementing
> io.ByteReader, and the fact that now the same function on different
> platforms has different signatures, because the default plumb.Open is
> defined as returning a concrete type from plan9/client, not an
> interface..)
>
> On Sun, Feb 19, 2017 at 9:43 AM, Skip Tavakkolian
> <skip.tavakkol...@gmail.com> wrote:
> > if want to run those utilities in Plan 9 you don't need to worry about
> > speaking 9P with the underlying services  -- i.e.  no need for
> plan9/client
> > package. the file hierarchies for plumber, acme, draw, etc. are mounted
> into
> > the process' namespace. for example, acme's namespace is mounted on
> > "/mnt/acme"; so a program that is started by acme will use normal
> > open/read/write/close to interact with acme.  that's the beauty of Plan
> 9.
> >
> > the middle-layer packages (i.e. acme, plumb, draw) should use
> os.OpenFile,
> > File.Read/Write, etc.
> > for example: acme.New() can be modified like this
> >
> > // New creates a new window.
> > func New() (*Win, error) {
> > fid, err := os.OpenFile("/mnt/acme/new/ctl", os.O_RDWR)
> > if err != nil {
> > return nil, err
> > }
> > buf := make([]byte, 100)
> > n, err := fid.Read(buf)
> > if err != nil {
> > fid.Close()
> > return nil, err
> > }
> > a := strings.Fields(string(buf[0:n]))
> > if len(a) == 0 {
> > fid.Close()
> > return nil, errors.New("short read from acme/new/ctl")
> > }
> > id, err := strconv.Atoi(a[0])
> > if err != nil {
> > fid.Close()
> > return nil, errors.New("invalid window id in acme/new/ctl: " + a[0])
> > }
> > return Open(id, fid)
> > }
> >
> > etc.
> >
> >
> >
> >
> > On Sat, Feb 18, 2017 at 3:51 PM Dave MacFarlane <driu...@gmail.com>
> wrote:
> >>
> >> client doesn't implement ReadByte, and opening a plumbing port with
> >> 9fans.net/go/plumb9fans/net/go/plumb needs a ByteReader is the change
> >> that I've been vendoring for other OSes to be able to open the "edit"
> >> port of the plumber.
> >>
> >> The problem that I'm having now isn't that it doesn't build, it's that
> >> "plumb.Open("edit", plan9.OREAD)" returns an error right away on Plan
> >> 9 because DialService is assuming it's for p9p trying to emulate
> >> namespaces with Unix Domain Sockets. I'm sure it's fixable, but the
> >> repo seems to be abandoned (pull requests have been open since 2015),
> >> so I'm wondering if there's any other packages that deal with the
> >> plumbing ports (because otherwise I think my only option is to fork it
> >> and maintain it myself..)
> >>
> >>
> >> On Sat, Feb 18, 2017 at 10:57 PM, Bakul Shah <ba...@bitblocks.com>
> wrote:
> >> > On Sat, 18 Feb 2017 21:42:05 GMT Dave MacFarlane <driu...@gmail.com>
> >> > wrote:
> >> >> Are there any cross-platform alternatives to 9fans.net/go for
> >> >> interacting with the Plan9/p9p plumber?
> >> >
> >> > I think you will have to create os specific versions of
> >> > 9fans.net/go/plan9/client/dial.go:Namespace()
> >> >
> >> >> It doesn't seem to be maintained (I've had to vendor a bug fix for a
> >> >> while to use it to receive plumbing messages) and I just discovered
> >> >> while trying to use my de text editor on Plan 9 that, ironically,
> >> >> 9fans.net/go doesn't work under Plan 9, either..
> >> >
> >> > I know go/acme/Watch doesn't build. Are there others (modulo
> >> > the above issue)?  There may be other ways to handle Watch....
> >>
> >>
> >>
> >> --
> >> - Dave
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "golang-nuts" group.
> >> To unsubscribe from this group and stop receiving emails from it, send
> an
> >> email to golang-nuts+unsubscr...@googlegroups.com.
> >> For more options, visit https://groups.google.com/d/optout.
>
>
>
> --
> - Dave
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to