[Scons-dev] Lightning talk about parts

anatoly techtonik techtonik at gmail.com
Sun Mar 17 05:50:19 EDT 2013


Congratulations to Kenny with his lightning talk about parts on PyCon! =)

Now I understand what's going on with it a little bit more and I like the
stuff. It will be awesome to have these slides with examples online and
linked from SCons website. http://parts.tigris.org

I have a long standing idea of teaching SCons to understand the declarative
format (like JSON) that can be used to describe and compile simple
dependencies, such as zlib:

http://wiki.openttd.org/Compiling_on_Windows_using_MinGW#Compiling_zlib

Why the need of the declarative format? To know the inputs and outputs of
the package like zlib and connect them to the inputs and outputs of other
dependencies. Like I know the dependency graph of the package, but when I
look into SCons - there is no way to get that high-level overview of these.
Even low level dependency tree requires a dry run. Of course, the
SCons powers are not squeezable into such format and it is impossible. But
for the purpose of clarity and studying dependency problems, such format
would be very welcome.

For example, there are no _dependency level input_s for zlib - it is
self-contained, but there are can be several outputs. Required output is
affected by some generic (or specific) condition. As a user, I only know
that a zlib is a library, and it is pretty dark to know the shared/unshared
details. I understand that parts already cares about these underlying
details automatically.

So, the question - is it technically feasible with parts to fulfill this
scenario:
- take zlib description in JSON format
- show input and output dependencies of the package
- show user level info about possible outputs
- show low level switches that affect the outputs
- show how these switches are connected to other parts (dependencies),
because some dependencies set these switches and they can not be changed
- download and compile

In the end it might look like (sorry, not time to polish this):

[switches]
+------+
+------+ |
+------+ | |
| | | [outputs]
[inputs] +----+-+-+-+ +-----------+
+----+ +--shared-+ | |
| part | +=====+ part |
shared ---+ +==static=+=====+ | |
lib +----------+ ^ +-----------+
input |
|
+
line powered when parts
are connected

--
anatoly t.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://two.pairlist.net/pipermail/scons-dev/attachments/20130317/c2733110/attachment.html>
-------------- next part --------------
[switches]
+------+
+------+ |
+------+ | |
| | | [outputs]
[inputs] +----+-+-+-+ +-----------+
+----+ +--shared-+ | |
| part | +=====+ part |
shared ---+ +==static=+=====+ | |
lib +----------+ ^ +-----------+
input |
|
+
line powered when parts
are connected


More information about the Scons-dev mailing list