I would add that Parts we have a SymlinkFileNode that we added. It requires 
some magic as we have to deal with the “restricted” transmogrify between node 
in a safe way. It is non-trial to add a new node type. I believe the original 
design was to make this easier, with the notion that the FS object could be the 
local file system, or a FTP system, etc. I would love to see this part cleaned 
up and grown as I think it would be very powerful, however this need some 
careful development and thought to do correctly. I should add that I believe 
the non-trival part is bound more to the deisgn file based nodes, not other 
type of nodes as Value or Alias. I would like to see a more global node manager 
for all nodes, not just the one for the FS object that deals with file based 
nodes. Being able to look up a node in general is very useful

Jason

From: Scons-dev [mailto:[email protected]] On Behalf Of Andrew C. 
Morrow
Sent: Tuesday, April 18, 2017 7:43 AM
To: SCons developer list <[email protected]>
Subject: Re: [Scons-dev] Documentation


As a word of caution, we did something similar in the MongoDB tree for a new 
kind of "library":

https://github.com/mongodb/mongo/blob/master/site_scons/site_tools/thin_archive.py#L53-L55

However, it doesn't fully work, because the SCons internals expect to be able 
to transmogrify Nodes between the Entry, File, and Dir subclasses at will and 
without consideration as to any further sub-classing.

The result, in our experience, lead to very cryptic errors (see 
https://jira.mongodb.org/browse/SERVER-27380), so we have disabled this tool 
until we figure out how to do this right.

Andrew



On Tue, Apr 18, 2017 at 4:26 AM, Russel Winder 
<[email protected]<mailto:[email protected]>> wrote:
On Mon, 2017-04-17 at 08:24 -0700, Bill Deegan wrote:
> Can you share your work in progress on bitbucket?

The experimental repository is at https://github.com/russel/SCons_D_Exp
eriment
Even though SCons is a Mercurial world, the D world is a Git/GitHub
one. Given that Atlassian have turned BitBucket into a Git place to
compete with GitHub, I could push it to BitBucket as well, but I am not
sure the dilution would achieve anything.

> On Mon, Apr 17, 2017 at 2:06 AM, Russel Winder 
> <[email protected]<mailto:[email protected]>>
> wrote:
>
> > On Sun, 2017-04-16 at 11:19 -0700, Bill Deegan wrote:
> > > Not sure what you mean.. Can you explain?
> >
> > For the dub tool, I believe I need a target node that is not a
> > SCons.Node.FS.File nor a SCons.Node.FS.Dir, but the builder
> > infrastructure is demanding that this be the case. I thus wanted to
> > create a _Library class that was a sub-class of SCons.Node.FS.File
> > but
> > with all the rest of the information carried as well. (I may be
> > going
> > up totally the wrong tree, but this is learning by hacking, seeking
> > feedback.) So I was looking for documentation to find out how to
> > call
> > the superclass initialiser, i.e. SCons.Node.FS.File.__init__.

In the end I created a Subclass of SCons.Node.FS.File focussing on
representing the library archive created, but carrying lots of other
knowledge. I eventually settled on calling the superclass constructor
at the end of the subclass constructor (don't you just love Python :-)
thus:

SCons.Node.FS.File.__init__(self, name, env.Dir(location), self)

but I am really not sure that last argument is right. It works but it
doesn't feel right. However there is no documentation on the fs
parameter that I can find. I think maybe I am just not looking hard
enough.

--
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200<tel:%2B44%2020%207585%202200>   voip: 
sip:[email protected]<mailto:sip%[email protected]>
41 Buckmaster Road    m: +44 7770 465 077<tel:%2B44%207770%20465%20077>   xmpp: 
[email protected]<mailto:[email protected]>
London SW11 1EN, UK   w: www.russel.org.uk<http://www.russel.org.uk>  skype: 
russel_winder

_______________________________________________
Scons-dev mailing list
[email protected]<mailto:[email protected]>
https://pairlist2.pair.net/mailman/listinfo/scons-dev

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to