Re: [Scons-dev] Progressing D tool support

2012-08-11 Thread Dirk Bächle

Hi Bill,

On 09.08.2012 20:23, William Deegan wrote:

Russel,


Perhaps you we need to make a how to setup a buildslave page and add 
instructions for installing D to that page?
I'll be taking a look at the buildbot today to see if I can recuperate it.



I would be very interested in a small Howto, showing me how to get a 
Buildbot slave going (after installing the Twisted and Buildbot packages).
I'm currently in the process of setting up two virtual machines (Windows 
+ Linux) that I could throw in the mix, more

or less full time.

Best regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Failing buildbot runs...

2012-08-30 Thread Dirk Bächle

Hi,

On 30.08.2012 15:45, Gary Oberbrunner wrote:

On Wed, Aug 29, 2012 at 6:14 PM, Dirk Bächletshor...@gmx.de  wrote:

Hi,

the new buildslaves are doing good work...and throw a lot of fails. ;)

I'd like to open a bug for fixing a few issues, such that we can hopefully
get all tests to pass again.
Just wanted to check and make sure that nobody else has started to work on
this.

If you do, raise your hand please...else I'll start tomorrow.

This would be great!  I fixed a few Windows failures last week, but
there are still some out there.  I think (?) all of them are test-code
rather than actual SCons bugs.  I know at least one is just a
case-sensitive string compare of drive letters (C: vs. c:), and I did
add a case-insensitive QMtest string matcher a few weeks ago which
would probably fix that one.



I started work on this (issue #2872) and will probably need a few days. ;)
It's not that complicated overall, just a lot to do.

Anyway, we still have some real problems:

  - The translation issue, some tests expect a system message in 
English. This breaks with a German Windows
installed, or any other language. Should I try to get a full 
translation scheme going, using gettext?

I can try, but do we really want to open this can of worms?
  - Several MSVS tests expect that VisualStudio is installed and call 
cl directly. Should I simply check with a
test.where_is('cl') and then skip it if nothing is found (=only 
MinGW installed)? Is this safe enough for now?
Or should we provide a better way to detect the installed toolchain 
before the actual tests are carried out?
  - Fortran support seems to be broken badly under Windows. Didn't have 
time to investigate this further so far,

but the suffixes (*.f77, ...) are not properly recognized.
Hints, pointers and solutions are welcome! :)

Finally, a request regarding the Buildbot setup. Bill, can you please 
increase the timeout setting for the Fedora17 slave from 1200s to 
something like 5400s? Yeah, I know that's a lot...but I timed the test 
KeyboardInterrupt.py on the VirtualMachine without any significant load. 
It takes a full 18min to finish, so we need to give it more time.

(These are 2*12 test runs with '-j' increasing from 8 up to 64...)
Thanks a lot in advance.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Tigris

2012-09-15 Thread Dirk Bächle

Hi there,

On 15.09.2012 08:04, Russel Winder wrote:

On Fri, 2012-09-14 at 09:22 -0400, Gary Oberbrunner wrote:
[…]

Nobody really likes the Tigris tracker.  There was some work to start
migrating away from it a while ago (Anatoly I think?), but I think we
decided to get the code over to bitbucket first, and then worry about
the tracker.
Maybe that time has come?


I don't think the Tigris tracker is that bad. I could live with it for 
another while. ;)



So where to go? The obvious place is the BitBucket issue tracker that
can be associated with the SCons mainline. But I had the feeling that
people thought it even worse than Tigris for various reasons.  On the
other hand it would integrate with the pull requests and the repository.


Whether we switch to something else, and to which tool, depends on what 
we want our workflows to be. In the past we had rather strict rules 
regarding the bug triaging and setting of milestones. And in my view, a 
user that enters a bug still shouldn't care about whom to assign it to. 
It's the task of the SCons team to negotiate who cares about the issue, 
or the single developer if he simply grabs it.
I haven't looked at the Bitbucket tracker in a while. But back then it 
wasn't possible to set milestones, and priorities were grouped into 
something like easy, middle and hard.

Could we live with this?


I guess the real question is what is the toolchain for getting all the
material out of Tigris and intowherever. I would have guessed that
there should be an XML or JSON dump of the Tigris database possible.


I wrote some Python classes that are able to extract data from the 
issues database and write them into an XML format. The other problem is 
now to get this data into the new tracker on the other end.

How would you accomplish this with the Bitbucket tracker?


Best regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] RPM helper functions, where should they go?

2012-09-25 Thread Dirk Bächle

Hi there,

for fixing the current Buildbot failures I still have to fight down 
several RPM tests. They check the names of the created RPM files, which 
differ depending on the used hardware/os combination.
I'd like to wrap the original RPM functions for canonicalizing 
machine/system names and all the supporting stuff to a Python module, 
but I can't make up my mind about where the file should go.
It should be possible to import it from the RPM/packaging stuff and the 
test suite in QMTest as well.


My suggestion would be a new file rpmrc.py in the SCons/Tools dir, 
alongside the rpm.py tool.

Does this make sense or do we have a better place?

Best regards,

Dirk

P.S.: For cases like this it would be cool to have a scons-common 
package with stuff that can get used by SCons itself, the test framework 
and perhaps even Parts. It could offer basic things like starting 
processes, is-this-a-list? and similar stuff, which are partly spread 
over the whole codebase in different variations...


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Buildslave install instructions...

2012-10-03 Thread Dirk Bächle

+++ Quick reminder +++

Hi,

I still have a text, describing my steps for setting up the latest 
buildslaves under Windows and Linux. I just need a Wiki page (linked 
from the frontpage) where I can put it... ;)


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] README in repository

2012-10-09 Thread Dirk Bächle

Hi guys,

On 09.10.2012 19:39, William Deegan wrote:

Russel,


On Oct 9, 2012, at 9:22 AM, Russel Winder rus...@winder.org.uk wrote:


I think we have to take a vote on whether to switch the read me file at
the top of the repository hierarchy from plain text to

a) ReStructured Text, README.rst
b) Markdown, README.md or README.markdown

I have a slight preference fro Markdown due to the way it handles header
markup compared to ReStructured Text. On the other hand Markdown is very
Ruby, GitHub, whilst ReStructured Text is very Python.

Why the change? So that the read me file look reasonable on the
BitBucket page.

I can do the markup once a decision is made so there is no need for
anything other than a decision.

I vote for .rst  (mainly because I'm already using it on a number of other 
projects and it's python'y)


+1 from me for reST (*.rst). I use it quite a lot recently...at home as 
well as at work.



Dirk




-Bill
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev



___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Thanks!

2012-10-14 Thread Dirk Bächle

Hi Gary,

and a very big Thanks! to you in return, for taking the lead over this 
bunch of crazy SCons guys, which are all doing very good work (Hey 
Russel, the new SCons intro page looks awesome!).
It's a real pleasure to drive this interesting and challenging project 
further, together with all you nice people

out there... :)

Regards,

Dirk

P.S.: Soon to come are the final fixes for the still failing WinXP 
Buildslave, and after that the new docs toolchain. So fasten your 
seat-belts everyone... ;)


On 13.10.2012 17:06, Gary Oberbrunner wrote:
I just wanted to give a bit shout-out to Dirk Baechle, who has worked 
heroically over the last few weeks to get the SCons buildbots green 
again (buildbot.scons.org http://buildbot.scons.org).  He not only 
revamped the test system to allow test fixtures (both files and 
directories) and make it possible to run tests outside the SCons 
source tree, but also made a lot of test cleanups to get both Linux 
and Windows passing all the tests.


In other news, check out the new look on our bitbucket site, 
https://bitbucket.org/scons/scons; Russel Winder just converted the 
top-level README to much nicer looking RST format so it's much more 
readable.


--
Gary


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Tests on Fedora 17

2012-10-21 Thread Dirk Bächle

Russel,

one of the Buildslaves is a Fedora 17 system, so I wonder why you still 
get so many fails. I added some notes about which packages I installed, to


  http://scons.org/wiki/InstallingBuildbotSlaves

. Maybe you can have a look and compare what's needed.
If things still don't work out, bug #2872 is still open. If you could 
attach a full error log there (containing all the stdout and stderr 
outputs) I'd be able to take a crack at it.


Regards,

Dirk

On 21.10.2012 02:53, William Deegan wrote:

Russel,

Do you have any development tools installed on that system?

-Bill
On Oct 20, 2012, at 4:11 AM, Russel Winder rus...@winder.org.uk wrote:


On a new Fedora 17 install, I got the following test errors:

src/engine/SCons/SConfTests.py
[...]
test/symlink/VariantDir.py

--
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip:
sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev



___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Issue 2869 - Versioned shared libraries

2012-10-25 Thread Dirk Bächle

Hi Rob,

just had a quick look at your changes...thanks a lot for taking care of 
this issue.


On 25.10.2012 06:09, Managan, Rob wrote:


I want to get some input on this issue. I created a fork for this at 
https://bitbucket.org/managan/scons_soname and put Eric Raymond's code 
into Environment.py that added the methods VersionedSharedLibrary and 
VersionedSharedLibraryInstall.


...


We could just create the sym links for any library whose name includes a

3 digit version number like libtest.2.5.4.so or libtest.dylib.2.5.4. 
Is that rare enough that it is OK to just do it or what do people 
think about how to roll this behaviour into the main methods?



Another way to say this is: what should the user interface be??



Your suggestions are fine with me, this should be what most users 
want...and like this, they have it at their fingertips. +1 from me. ;)


For keeping everything ultra-flexible, you might want to take the 
following into consideration:
I'd like to see the code for detecting this is the name of a versioned 
shared lib and spitting out the basename and
major/minor numbers encapsulated in a small function. The default 
behaviour, as defined by you so far, is definitely good enough to go. 
Although the RPM docs try to remind people that the x.y.z numbering is 
not a convention, it can be seen as one in current practice, at least 
from my angle. But for those weird cases someone might come up with in 
half a year or so, it would be cool if I could override the versioned 
lib detection with my own code for a single Environment...(e.g. using a 
no-op function to suppress any further actions, like adding symbolic 
links, for a versioned lib).

This doesn't have to be user-friendly, it should somehow be possible.

Just my 2 cents.

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Tool order

2012-11-11 Thread Dirk Bächle

Hi Russel,

yes the order can be important, depending on which variables and 
Builders are touched by the Tools. If both are working on disjunct sets 
of settings there shouldn't be a difference though...but it's better to 
not rely on this.
There is no enforcement rule saying that Tools always have to work in an 
orthogonal way.


Best regards,

Dirk

On 11.11.2012 10:43, Russel Winder wrote:

When specifying a tool chain is the order important? For example,
should:

 Environment(tools=['gdc', 'gnulink'])

be the same or different from:

 Environment(tools=['gnulink', 'gdc'])

Thanks.


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Early Warning: Ceylon is a pain for SCons

2012-11-14 Thread Dirk Bächle

Hi Russel,

and what exactly would be a problem for SCons when trying to build 
Ceylon projects? Can we extract requirements for SCons from it?


Regards,

Dirk

On 14.11.2012 16:52, Russel Winder wrote:

Remember the problems of Java for SCons. Scala of course is far, far
worse. These however are trivial in comparison to Ceylon. I think I have
already given up trying to use SCons for working with Ceylon :-(
  



___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Run a single test

2012-12-20 Thread Dirk Bächle

Hi Anatoly,

specifying the full relative path, like in

  python runtest.py test/Delete.py

, should work.

Dirk

On 20.12.2012 15:11, anatoly techtonik wrote:
Am I right that there is no way to run a single test_ currently in 
SCons test suite?

--
anatoly t.


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Extensions to the Tool subsystem...

2012-12-20 Thread Dirk Bächle

Hello developers,

based on my proposed changes to the current tests in src/test there has 
been some discussion about how a Tool should work. Especially in 
connection with the LaTeX Tool, questions like:


  - Do we want to have one latex Tool for all, or separate ones for 
miktex, texlive...?
  - Should a Tool try to find a Miktex installation in the current 
system, or simply search for
the latex executable while relying on a correct setup of the PATH 
variable?


showed up.

Before simply repeating my pull request of the changes mentioned above, 
I'd like to reach a consensus about some basic guidelines and design 
decisions for the Tool subsystem. I reread the PlatformToolConfig page 
in the Wiki, describing the design of the long-planned IAPAT extension. 
Its requirements are partly taken into account, but I'd like
to keep the GnuBS-like configure context out of this discussion. My 
idea is to come up with a plan for our Tools, that hopefully makes it 
easy to add all the configure stuff later.


I also want to make a distinction between:

  - defining the Tool (and its supporting classes) as basic class in 
the framework and
  - how we use this Tool module to organize the build/configure/test 
workflows in our

default implementation of SCons.

On the PlatformToolConfig page, the following remark can be found:

quote
(Comment: As I was writing this page, I found myself flipping back and
forth as to whether a Tool module configured a tool (that is, a single
command) or a toolchain (that is, a series of commands). The current Tool
modules actually implement toolchains (e.g., the gcc.py module provides
the environment variables for the compiler, the linker, the static archiver,
the shared archiver, and the bundle archiver). This isn't good
modularization, which suggests that there should be a higher-level
module explicitly for toolchains that can invoke one or more tool
modules as building blocks. That isn't in this proposal (should it be?),
but it's something that should be kept in mind for the future.)
/quote

Since we try to provide a framework for build systems, our Tool shouldn't
care. Both should be possible ways for a user to extend the build engine.

With this being said...

What does a Tool do?
=

A Tool has the task of changing an existing Environment. It can alter 
construction variables like CC or the

ENV['PATH'] and is most often used to add Builders or modify existing ones.



What can the Tools subsystem do?
=
(My christmas wishlist ;) for the SCons Tools)

PlatformInfo


I'd like to have a common module for detecting, storing and retrieving 
infos about the current host architecture, (platform, processor type, 
vendor, kernel, OS,...). It should be used throughout the whole source 
tree, including the test framework and the tests themselves.


Toolchains/Tools
##

A Toolchain class should get added, as an abstraction for a series 
(=list) of tools being initialized by a single keyword.

It should be possible to:

+ Check whether we can load/use a toolchain or single tool in our 
current environment (as given by os.environ['PATH']).
+ Check whether we can load/use a toolchain or single tool in a 
special environment.
+ Get a list of possible toolchains for a Tooltopic (can't think 
of another name right now). A Tooltopic would be C++, and possible 
toolchains include mingw and msvs. This selection would probably 
depend on the PlatformInfo.
+ Get a default toolchain for a topic, that is actually installed 
in the current system.

+ Dynamically add new toolchains.
+ Dynamically add new tools to a toolchain.
+ Dynamically change the preferred order in which toolchains are tried.
+ Add new Toolchains system-wide, that contain parameterized 
versions of existing tools, e.g. a cxx-embedded for a cross-compiling 
gcc that requires special options.


The single Tool support as it is now should still be available and work 
as expected.


External Tools
#

For better support of the external tools we could use:

+ A way to install a Tool in the local SCons distribution and
+ to deinstall it again.
+ SCons should be able to display (--version) that there are 
external tools installed and, on request (--list-external) which Tools 
exactly (and in which version!).

+ For this, single tools should support a version string.


Questions!
===

- How do we want our Tools to be organized for the standard SCons 
implementation? Especially, when we have a Tool like latex that 
basically looks the same for all distributions (miktex, texlive, ...) in 
terms of command calls.
  Do we want a miktex Tool under the covers, that gets automatically 
selected by the latex Toolchain? Should there be a LatexCommon.py in 
cases like this? And how do we go about tests for these toolchains? Do 
we stop using live tests and always provide a fake LaTeX distribution, 
like for the C compiler and linking 

[Scons-dev] Docbook Tool as core module?

2012-12-20 Thread Dirk Bächle

Hi there,

for the new SCons doc toolchain that I'm currently working on, I'd like 
to use my Docbook Builder/Tool from:


  https://bitbucket.org/dirkbaechle/scons_docbook

. In its current state it has a simple manual and tests. It basically 
works...but only if called from the top build directory (the same chdir 
problem as for the LaTeX Builder, when using references to local 
images/files in custom stylesheets).
Another problem might be that I include a full copy (~5MB) of the 
Docbook stylesheets, trying to be as convenient for the user as possible.


Despite all this, is there a chance to get it into the SCons core? I'd 
then add a proper *.xml reference file for the Builder and prepare a 
pull request.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Buildbots

2012-12-20 Thread Dirk Bächle

On 20.12.2012 21:27, Managan, Rob wrote:

[...]

Not sure what is causing the MSVS failures.



Changing line 1658 in src/engine/SCons/Tool/msvs.py to:

if float(env['MSVS_VERSION']) = 10.0:

makes them pass successfully on my side. Not sure whether this is a 
proper fix though...


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] 2013+ projects

2013-02-04 Thread Dirk Bächle

Hi Gary,

thanks for compiling this list...it should keep us busy for the next 
three years or so. ;)

See my further comments below.

On 27.01.2013 23:26, Gary Oberbrunner wrote:
Here's my ideas about what projects are important this year (and into 
the future -- there's too much here for a year unless we attract some 
new developers).  I put this out as food for thought, and to start 
discussion -- I'm sure you will have different opinions, things I 
haven't thought about.  Please chime in!


SCons projects for 2013

  * Toolchain revamp



Yes, this is important and gets my full support. About the goals of 
decoupling tools from the core and

allowing tools to take args I had the following ideas:

1.) We could try to establish a contrib or add-on folder in the 
SCons installation. In a separate repository (scons_contrib) we collect 
all the more recent (and stable) SCons Tools/Builders and ConfigChecks. 
A user can download this whole package and install it, which would place 
everything alongside the normal SCons install as it exists now.
By adding the contrib directory to Python's search path, it would be 
transparent to the user from where exactly he imports a Tool or a ConfCheck.
Sounds like additional work, and it probably is. But most of it can be 
automated I think...we could add the convention that external SCons 
Tools have to tag their stable revisions with stable-x.y.z and then 
pick the latest number as candidate for the contrib package.


2.) The default options of Tools, like name and path of an executable 
(miktex vs. pdftex) or the preferred detection order, could be stored in 
a config file (I'd suggest YAML format because it allows comments, in 
contrast to JSON).
The path search order for them would be the same like for the Tool 
modules themselves, such that users can override system settings by 
adding another config file in their private site_scons/site_tools 
directory. Just a half-baked idea so far...



 *
 o
  * Node cleanup



I'd rather name this one design cleanup. We should take a close look 
at our current architecture and try to improve it, this would probably 
also be helpful for documenting how SCons works internally (see also my 
latest pull request for pylint compliance). When it comes to optimizing 
for speed, the subst machine should be a top priority.

Anyway, +1 from me.


  * Taskmaster
  o not most important in 2013


Right, it's not the Taskmaster's fault...


 *
 o

  * Python 3



Not so important for me personally, but I can understand the people who 
crave to have it. We should probably just dive in, give 2to3 a spin and 
see how big the problems really are.



Other things that might need attention:

- Cleanup after the switch to Mercurial. With this I mean saying 
Goodbye to our old workflows (e.g. bug party) and documenting this 
properly on the Wiki.

- Bug slashing, especially for all the (very) old documentation issues.
- Updating the web front page by replacing the comments of people/groups 
that aren't actually using SCons anymore.



So much for today, best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] GSOC this year?

2013-03-28 Thread Dirk Bächle

Hi Bill,

On 28.03.2013 19:50, William Deegan wrote:

All,

We need to turn in the proposal by tomorrow.

...
Here's some other thoughts I have:
* Change SCons code to be runnable on py2.7 and py3.0
* Get SCons to work better/at all on cygwin
* Change code to use more modern constructs (slots, generators/iterators)


the code changes for #1 and #3 could possibly be wrapped/implemented in 
the form of fixer scripts, just as Steven and Greg had done for the 
switch to Python 2.4? One could add a little testing setup (based on our 
current QMTest framework, and pylint maybe) for CI, ensuring that no 
examples or tests are broken by the rewrites. This would make the task 
easily scalable and open-ended in a way. Just as an idea...


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New SCons doc toolchain...

2013-04-22 Thread Dirk Bächle

Gary,

On 22.04.2013 02:21, Gary Oberbrunner wrote:




On Sun, Apr 21, 2013 at 5:57 PM, Dirk Bächle tshor...@gmx.de 
mailto:tshor...@gmx.de wrote:


Hi Gary,

On 21.04.2013 23 tel:21.04.2013%2023:38, Gary Oberbrunner wrote:


[...]


Hi, Dirk!

I just cloned this on my Linux box (Ubuntu 11.10 - also tried
12.04), but running scons bootstrap.py gives errors:

scons: *** [design.xml] XMLSyntaxError : Specification mandate
value for attribute object, line 1, column 31
scons: building terminated because of errors.



I was able to reproduce the error on a SuSE 11 box. The lxml support for 
the Docbook Tool needed a few fixes, I uploaded 2 commits to the 
new_doc_toolchain branch. Please update and try again...


While doing some further testing, I discovered that jw can render PDF 
from Docbook files, but it doesn't cope with XML input (only SGML) in 
all cases. That's why I removed it from the list of PDF renderers for 
the toolchain, so only fop and xep are left now.


Make sure that you have fop and one of the XML Python bindings 
installed (lxml or libxml2)...the latter is to be preferred because it 
is much faster, but both should work fine now.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New SCons doc toolchain...

2013-04-23 Thread Dirk Bächle

On 23.04.2013 18:12, Russel Winder wrote:

On Mon, 2013-04-22 at 23:44 +0200, Dirk Bächle wrote:
[…]

Make sure that you have fop and one of the XML Python bindings
installed (lxml or libxml2)...the latter is to be preferred because it
is much faster, but both should work fine now.

Uurrr… isn't lxml a wrapper over libxml2 to provide the ElementTree API
(and other things like a validating parser and XPath).


Yes, that appears to be true for libxml2 (the C library, that 
python-lxml depends on)...but not python-libxml2 (the Python bindings), 
which is the lib I'm actually talking about.


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New SCons doc toolchain...

2013-04-28 Thread Dirk Bächle

Hi Russel,

thanks a lot for all your comments. I won't go into detail about each 
one of them, but would like to say a few words in general.
There still may be some quirks with fonts or layouts and fop is 
certainly not state of the art for PDF rendering...whatever. To be 
honest, I don't care that much...if you do, I'll gladly accept your pull 
requests.
I tried to improve the overall procedure for creating the documents, 
especially for a user that wants to contribute by writing a paragraph or 
two for the manual or the UserGuide.
And I had some success with that, at least it was the best I could give 
and I, personally, am happy with the result.


So there it is now, and can be used by the SCons project. If you guys 
are not convinced or have better ideas, that's good. Let's talk about 
them and if they can support all the current features we need and look 
even prettier, that would be the way to go then.

I'm cool with that...
What I don't want to happen is, that we do nothing just because the 
fonts don't look pretty enough yet, or some hyphenations are still wrong.
I'd rather go into a possibly wrong direction first and then correct, 
instead of not moving at all and being stuck with SGML and troff.


Best regards,

Dirk

On 28.04.2013 08:41, Russel Winder wrote:

[...]

I think human being should never have to read or write XML, not even
DocBook/XML. XML-based toolchains are clearly now the norm in publishing
for re-purposing, but should this lead to requiring authors to write
DocBook/XML?


Yes, in our case I think it should. Because it allows us to validate the 
documents, such that we can put the main work load on the user, not us. ;)



[...]

Seriously, I do worry that using XML is a sufficient barrier to entry
that we will not be evolving the content of the documentation just the
form.


Well, troff is a barrier as well. Wouldn't it help to move away from 
that, as a first step?



Dirk deserves a prize for taking this on and doing what he has.
  


If we finally get a little bit of movement about this topic, that'll be 
enough of a prize to me. :)


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New SCons doc toolchain...

2013-04-28 Thread Dirk Bächle

On 28.04.2013 20:20, Gary Oberbrunner wrote:


On Sun, Apr 28, 2013 at 10:06 AM, Russel Winder rus...@winder.org.uk 
mailto:rus...@winder.org.uk wrote:


Given the current system is XML based, with xml files and in files
required, the new system is an improvement and should be accepted.


Glad you agree, I feel the same way.  This way all the doc uses the 
same source language and in the same way, with a much more consistent 
(and verifiable) pipeline.  I want to review some of the non-PDF 
generated stuff to make sure it's all there (as well as the old system 
did anyway), but Dirk, why don't you start prepping a pull request. 
 Once it's in we can sweat the details (Russel's list is good to 
start).  Bill, what do you think?




I am ready to prepare a pull request any time...if we all agree that the 
current status of my experimental branch is good enough to go, I'll 
latch on.
Would you rather like the pull request to be one single commit, or 
should I transplant all my single revisions for having a history that 
makes single changes/decisions more trackable?


Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New SCons doc toolchain...

2013-05-01 Thread Dirk Bächle

On 29.04.2013 21:51, William Deegan wrote:

All,

I see the following when running bootstrap.py

[...]


Also I had to install the following (on ubuntu 10.04)
  sudo apt-get install python-libxml2 
python-libxslt1 python-epydoc fop python2.6-dev


Note that without the proper tools installed the build failed 
complaining about scons.1 missing.
Would it be possible to allow bootstrap.py to complete skipping the 
parts which won't build due to missing tools?




Okay,

I pushed a new revision. Creating all the doc outputs is happening in 
the build directory now. I also updated scons_dev_master.py and added a 
check for lxml/libxml2 to the SConscript for the doc folder. It skips 
the documentation step if neither of the required packages can be found.

Please update and check, if you find the time.

Meanwhile, I'll prepare the actual pull request.

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New SCons doc toolchain...

2013-05-01 Thread Dirk Bächle

On 01.05.2013 21:30, Bill Deegan wrote:

Dirk,

Should you also add fop or the other alternative to the 
scons_dev_master?


Thanks,
Bill



Isn't it in the list on your side? I can see it in my revision...and on 
the bitbucket commit.
The xep renderer is a commercial one, but there is a free trial 
download available.

So I can't add this one to the packages, sorry.

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New SCons doc toolchain...

2013-05-09 Thread Dirk Bächle

Hi Gour,

On 09.05.2013 10:33, Gour wrote:

On Tue, 26 Mar 2013 00:50:07 +0100
Dirk Bächle tshor...@gmx.de wrote:


[...]

I settled to use SCons for my PyQt project and was reading the User Manual
yesterday and e.g. found that the email addresses listed are wrong (e.g.
us...@scons.tigris.org) which led me to check how are docs handled in order to
know how to contribute some 'patches'.

So, I was a bit surprised that SCons uses Docbook toolchain considering that
some time ago project switched from SVN to (more pythonic) Mercurial, I wonder
why not using (more pythonic) reST/Sphinx which, imho, requires less admin
work and it provides lower-hanging fruit for potential contributors who are
probably more familiar with reST/Sphinx than Docbook.

Moreover, the current user manual is ~350p and not so complicated to require
the above-mentioned features.

I hope that you will find this email only as constructive feedback meant to
improve SCons project by simplifying doc toolchain in order to spend valuable
time of not-to-big developer's team on more important issues.


thanks a lot for trying out the new doc toolchain. It's still very fresh 
and there's probably a lot of room for improvement...including a rewrite 
to another input format (like asciidoc, reST, whatever).
So, we're very interested in hearing about first impressions from avid 
users like you.


If it were only about creating plain text with some graphics, you're 
right. This could easily be handled by a lot
of other toolchains. However, I'd like you to have a short look over the 
discussion at


  http://www.scons.org/wiki/DeveloperGuide/Documentation

and

  http://www.scons.org/wiki/DeveloperGuide/Documentation/Discussion

, respectively. There is also a description of the current 
implementation in the file doc/overview.rst. Together they might shed 
some light on why we (errm, I) finally chose Docbook.

If you have further thoughts or questions, please don't hesitate to ask.

Thanks again for your feedback.

Best regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New SCons doc toolchain...

2013-05-09 Thread Dirk Bächle

Hello Gour,

On 09.05.2013 22:53, Gour wrote:

On Thu, 09 May 2013 12:14:29 +0200
Dirk Bächle tshor...@gmx.de wrote:

[...]

If it's good-enough for Python project docs itself, I believe it should be for
SCons as well.


that's okay...but to make me believe this as well, you (or someone else) 
has to deliver actual results. ;)
As I stated before in this thread, as long as the same functionality is 
kept regarding the automatic creation of examples (and the generated 
list of tools and builders, while delivering the same output formats we 
have now), a toolchain based on a Markdown processor gets my full support.



Knowledge of Docbook authoring is not very common in general and certainly not
within Python community, so I'm afraid that contributing docs to SCons project
would remain niche for a few people only.

Moreover, the current output of the manual shows that the complexity of the
markup used to write it is not in proportion the quality of output and
tweaking/theming is still, imho, much easier to do with Sphinx.
That's more because the stylesheets have been neglected in the past 
(obviously nobody wanted to fiddle with DSSSL) and because parts of the 
document processing relied on home-brewed SGML parsing without proper 
support for XML. Like this, not all valid XML/Docbook constructs would 
have worked, which held back people a little to use the full power of 
the Docbook stylesheets.

This can (and hopefully will) change now...


Finally, in regard to the argument of converting Docbook to something else,
there is wonderful tool called Pandoc (http://johnmacfarlane.net/pandoc/)
which is capable of reading Docbook markup and select it to several other
markup formats.


Then just try to convert a few SCons documents with it, and send us some 
selected pages (not the whole document!) of output samples.



Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Using SCons via bootstrap.py

2013-05-17 Thread Dirk Bächle

Hi Russel,

On 17.05.2013 19:13, Russel Winder wrote:

Is anyone else finding that the bootstrap.py script no longer works? It
worked for me before I went away for a short break and now after
updating Debian Unstable, it is failing. I get the same behaviour with
Python 2.6, 2.7 and PyPy 2.0.

Traceback (most recent call last):
   File 
/home/users/russel/Repositories/Mercurial/Masters/SCons_D_Tooling/bootstrap.py, 
line 233, in module
 main()
   File 
/home/users/russel/Repositories/Mercurial/Masters/SCons_D_Tooling/bootstrap.py,
 line 204, in main
 for x in parseManifestLines(src_engine, open(MANIFEST_in).readlines())]
   File 
/home/users/russel/Repositories/Mercurial/Masters/SCons_D_Tooling/bootstrap.py,
 line 85, in parseManifestLines
 os.chdir(basedir)
OSError: [Errno 2] No such file or directory: 'src/engine'


the bootstrap.py works fine for me, I guess because I have a 
src/engine folder. Where did yours go? ;)


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [Fwd: [Scons-users] [patch] SCons fails to run in standalone mode]

2013-07-08 Thread Dirk Bächle

On 08.07.2013 18:32, Managan, Rob wrote:

[...]
For a bash shell then the equal sign is correct but you need to change
setenv to export.

That is what I was trying to convey in the first email.


Ahhh, okay. I got it now.

Maybe we should take some action about this. Instead of all this long 
writing about how a proper shell script should look like, we could 
simply provide one for Linux and Windows each?
I can publish the first samples in a pull request...my Linux version 
would be based on bash though (let the wars begin ;) ).


Regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [Fwd: [Scons-users] [patch] SCons fails to run in standalone mode]

2013-07-09 Thread Dirk Bächle

On 09.07.2013 00:53, Russel Winder wrote:

On Mon, 2013-07-08 at 20:18 +0200, Dirk Bächle wrote:

On 08.07.2013 18:32, Managan, Rob wrote:

[...]
For a bash shell then the equal sign is correct but you need to change
setenv to export.

That is what I was trying to convey in the first email.

Ahhh, okay. I got it now.

Maybe we should take some action about this. Instead of all this long
writing about how a proper shell script should look like, we could
simply provide one for Linux and Windows each?
I can publish the first samples in a pull request...my Linux version
would be based on bash though (let the wars begin ;) ).

So what is/was the role of bootstrap.py which had been touted as the way
of using a SCons checkout live?
In my view, bootstrap.py is more for creating the build packages. It can 
also copy together a local working copy (the bootstrap folder), which 
is fine for most cases when you simply want to start SCons without fully 
installing it.


But I'm doing some speed measurements and profiling with various 
revisions at the moment, so I don't want to get the overhead of checking 
for existing files and copying them, in the way of my results.

That's why I prefer a simple script in this case...

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Unicode support in print_tree / render_tree

2013-07-13 Thread Dirk Bächle

Hi Remko,

On 13.07.2013 09:32, Remko Tronçon wrote:

Hi,

I filed a bug report for --tree=... crashing if the dependency tree
contains unicode characters (
http://scons.tigris.org/issues/show_bug.cgi?id=2910 ) I fixed the bug
locally by calling repr() on every element in the tree (which is also
done by the code that dumps actions)


and thanks for looking a bit into this Unicode issue. We had a 
discussion about these kind of problems a while ago, and reached the 
consensus to not attack these directly, if I recall correctly.
Instead we try to push the general conversion of the sources to Python3, 
and get Unicode support in all the places along the way (not for free, 
that's sure ;) ).


Have you tried to actually compile/build stuff that uses Unicode chars 
in filenames? Or are you only analyzing the dependencies? Can you please 
attach your patch to the Tigris tracker issue or point us to the 
repository, if you cloned the SCons sources?

Then we can have a closer look together and better decide what to do next.

Thanks a lot in advance,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [Fwd: [Scons-users] [patch] SCons fails to run in standalone mode]

2013-07-14 Thread Dirk Bächle

On 13.07.2013 16:53, Russel Winder wrote:

On Tue, 2013-07-09 at 09:17 +0200, Dirk Bächle wrote:
[…]

In my view, bootstrap.py is more for creating the build packages. It can
also copy together a local working copy (the bootstrap folder), which
is fine for most cases when you simply want to start SCons without fully
installing it.

[…]

I think we perhaps need to clarify the role of bootstrap.py then as I
have always known it as the entry into using the current HEAD as SCons
(which is what H S Teoh is doing as well). Using boostrap.py leads to
having all the pyc files not in the checked out repository which is a
Good Thing™.


This seems to work well for you, so stick to it.


Trying to use a shell script instead leads to pyc files
being in the checked out source tree, not good at all.

This appears to work well for me (it has other advantages), so I'll 
stick to it. ;)


The role of bootstrap.py is probably defined quite well, so I don't see 
a need to discuss it at the moment. All I wanted to offer is the simple 
scripts that I use to start SCons directly, such that we could replace 
the misleading instructions in the REAME.rst by a pointer to the files.

Fixing the text, as Rob suggested, would be another option of course.


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Unicode support in print_tree / render_tree

2013-07-14 Thread Dirk Bächle

Remko,

On 14.07.2013 13:46, Remko Tronçon wrote:

Hi Dirk,

On 14 July 2013 13:16, Dirk Bächle tshor...@gmx.de wrote:

So it would help us a lot if you could create a simple testcase for this,
which breaks with the current code but should run successfully in the end.

Here's a failing case:

env = Environment()
env.Tool(textfile)
env.Textfile(Foo, unichr(0xe7).encode('utf-8'))

'scons' runs fine, 'scons --tree=all' throws an exception.

cheers,
Remko



thanks a lot for the example, I'll attach it to issue #2910...

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [Fwd: [Scons-users] [patch] SCons fails to run in standalone mode]

2013-07-15 Thread Dirk Bächle

Hi Gary,

On 15.07.2013 02:57, Gary Oberbrunner wrote:
I'm still here -- just working 24/7 at my day job -- soon Ill be back 
to SConsing  I think it's important that bootstrap.py be useful to 
run scons directly out of its repo checkout.  I use it like that. 
 Haven't been following the discussion closely but breaking that would 
not make me happy.




maybe you (or Bill?) could find the time and accept/merge only the 
pending pull request #79, which deals with fixing bootstrap.py. It's a 
rather simple one


This would calm everybody down a bit, I guess. ;)

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [Fwd: [Scons-users] [patch] SCons fails to run in standalone mode]

2013-07-21 Thread Dirk Bächle

Hi there,

On 20.07.2013 10:24, Russel Winder wrote:

On Fri, 2013-07-19 at 19:56 -0400, Gary Oberbrunner wrote:
[…]

OK, sorry that took so long.  Merged.  Hope that helps.

Thanks for picking up on this. Sadly, I get:

| python /home/Checkouts/Mercurial/SCons/bootstrap.py
/usr/bin/python /home/Checkouts/Mercurial/SCons/bootstrap/src/script/scons.py
SCons import failed. Trying to run from source directory
Traceback (most recent call last):
   File /home/Checkouts/Mercurial/SCons/bootstrap/src/script/scons.py, line 188, in 
module
 import SCons.Script
   File /home/Checkouts/Mercurial/SCons/bootstrap/src/engine/SCons/__init__.py, 
line 43, in module
 import SCons.compat
ImportError: No module named compat

which seems to indicate the sys.path is still not entirely correct :-(


I pushed a new pull request (#83) a few minutes ago. Looks like my 
bootstrap folder wasn't as clean as it should've been, when I tested 
the previous version. Sorry...


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Pull request to automate web-site deployment

2013-07-24 Thread Dirk Bächle

Hi there,

On 23.07.2013 21:47, Gary Oberbrunner wrote:

[...]
Anyone else know Fabric and care to chime in?



I haven't used Fabric either, yet. As long as its usage is optional, I 
don't mind.


Just my 2 cents.

Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Testing non-core tools

2013-07-26 Thread Dirk Bächle

On 26.07.2013 19:30, Russel Winder wrote:

Problem solved:

 TestSCons.TestSCons()

causes the chdir() so by getting the getcwd() before that I am alright.
Is this gotcha documented anywhere?



It is mentioned at

  http://www.scons.org/wiki/DeveloperGuide/TestingMethodology

for the Hello World SCons Test Script, but there is no humongous 
DANGER! sign next to it. ;)


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Testing non-core tools

2013-07-26 Thread Dirk Bächle
...and please don't use the scons_test_framework repo for further 
development (just got the notice that you cloned it). The current code 
is in the normal SCons repo (runtest.py and QMTest).


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Testing non-core tools

2013-07-26 Thread Dirk Bächle

On 26.07.2013 20:00, Russel Winder wrote:

On Fri, 2013-07-26 at 19:55 +0200, Dirk Bächle wrote:
[…]

Keeping all test scripts under a top-level folder test, and adding
sconstest.skip files where needed, should give you a start pretty
quickly though.

So no more sconstest-XXX.py files?




The runtest.py now detects any *.py file as test script, that's why the 
sconstest.skip (or even .exclude_tests) exists and escapes this 
behaviour where needed.
You can read a bit about this in the Finding tests section of 
QMTest/test-framework.rst.


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Testing non-core tools

2013-07-26 Thread Dirk Bächle

On 26.07.2013 20:27, Russel Winder wrote:

On Fri, 2013-07-26 at 20:11 +0200, Dirk Bächle wrote:
[…]

[...]

I have a test directory in the non-core tool package. If I run

path.to.scons.installtion/runtest.py -a

I get:


If you call the runtest.py for external tests, you have to specify the 
-e option as well.


Does it work then?

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Testing non-core tools

2013-07-27 Thread Dirk Bächle

On 27.07.2013 15:51, Russel Winder wrote:

[...]
But the need to specify the -e to test non-core tool packages is already a 
marker that they are being handled specially. Also from the above tool sources 
are special structures and deserve special support. Given tests must run under 
the test framework and the framework knows it is doing something special, 
special support seems eminently allowable.

There is a conventional layout already in place so I think if it is at all 
possible the -e should prepend '.' to the tool path.


Okay, I'm convinced now and will try to prepare a pull request.

Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Wiki hacked? Again?

2013-08-27 Thread Dirk Bächle

Hi there,

is it possible that our SCons Wiki got hacked again? I just wanted to 
add a link to the ToolchainRevamp page and noticed that the Roadmap 
shows some different content:


  http://www.scons.org/wiki/Roadmap

Other examples:

  http://www.scons.org/wiki/AboutSCons
  http://www.scons.org/wiki/BasicConcepts

Can anyone check this further?

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [PATCH] scons soname on OpenBSD

2013-09-11 Thread Dirk Bächle

Hi Stefan,

On 09.09.2013 19:45, Stefan Sperling wrote:

On Sat, Sep 07, 2013 at 04:24:41PM -0400, Gary Oberbrunner wrote:

[...]

The ideal way to contribute to SCons is to fork the mercurial repo at
https://bitbucket.org/scons/scons, make your change, then submit a pull
request.  Patches sent to the mailing list can get lost.

If possible I'd like to ask someone on this list to commit
the patch for me. I don't have an account on bitbucket.
I used the time it would take me to read through atlassian's
terms of services to write a unit test instead :)


thanks a lot for the patch and the test case. I'll file a bug in the 
Tigris tracker and then submit a pull request for your fix.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] SCons speedup and profiling results...

2013-09-25 Thread Dirk Bächle

Hi there,

a few minutes ago I added a new page to our Wiki. It's called

  http://scons.org/wiki/WhySconsIsNotSlow

and shows a few results of the speedup and profiling experiments that I 
did recently. As mentioned
in the Repositories section, you can also download the full set of 
results and the little test framework that

I used from the Bitbucket repos:

  http://www.bitbucket.org/dirkbaechle/scons_testresults
  http://www.bitbucket.org/dirkbaechle/scons_testsuite

So just dive in if you're interested, and let me hear what you think...

By the way, I'm sorry for certain parts of the text being quite terse. 
The language could also be improved a little, I guess...but right now 
I'm lacking the time and patience for it (I just wanted this project off 
my desk ;) ). So if any native speakers out there should feel the itch 
to correct and extend my writings, just go ahead please. I'd highly 
appreciate it...and it's a Wiki after all.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] mercurial vs. git

2013-09-29 Thread Dirk Bächle

On 29.09.2013 20:07, Gary Oberbrunner wrote:
Now that we've all been living with hg for a while, what are people's 
opinions on hg vs. git for SCons?  I'll admit I'm much deeper into git 
these days and I think overall it's a better system.  But I'm 
interested in what you all think.  We could switch pretty easily if 
there was enough interest, or we could just stay with hg and get on 
with life. :-)




At the moment I see no compelling reason to change our VCS again. Our 
current workflows are fine and documented (a bit).
Since SCons switched to hg, I'm now using it for all my private work 
as well and am quite happy with it.

So, my bias leans more towards hg.

-1 from me, but I wouldn't run away from the project if I had to use 
git in the future.


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons speedup and profiling results...

2013-09-29 Thread Dirk Bächle

On 26.09.2013 02:08, Gary Oberbrunner wrote:




[...]

I think this is excellent work!  Solid analysis.  I know there's been 
some thought given to caching subst() before; it's trickier than one 
might think but in many cases it should work, and it definitely speeds 
things up.  I'm also impressed by a 30% memory reduction -- interested 
to hear how that comes out.




I continued my work on reducing the overall memory consumption in SCons. 
By combining my old branch (where I switched the core to using slots) 
with some additional patches, I am now able to save up to 50% 
memory...depending on the project.
Please find some results attached (a comparison between the current 
default tip and my experimental branch), the code can be cloned from:


hg clone http://bitbucket.org/dirkbaechle/scons_experimental -r 
reduced_memory_updated


I also achieved up to 20% speed improvements on updates, by a first 
version of a caching for the env.subst() method.


Best regards,

Dirk


Title: Comparing default to lowmem



wonderbuild
Times

Runrun [s]update [s]update_implicit [s]
Previous1172.325.619.4
Current1131.622.015.5
Factor0.970.860.80

Memory

Runrun [MByte]update [MByte]
Previous451.4424.2
Current251.5197.8
Factor0.560.47

sconsbld
Times

Runrun [s]update [s]update_implicit [s]
Previous440.335.026.1
Current343.828.719.8
Factor0.780.820.76

Memory

Runrun [MByte]update [MByte]
Previous538.6554.4
Current231.6238.7
Factor0.430.43

questfperf
Times

Runrun [s]update [s]update_implicit [s]
Previous1022.424.216.9
Current984.820.412.9
Factor0.960.840.77

Memory

Runrun [MByte]update [MByte]
Previous378.9391.1
Current210.9196.3
Factor0.560.50

mapnik
Times

Runrun [s]update [s]update_implicit [s]
Previous867.212.54.7
Current867.59.44.1
Factor1.000.750.87

Memory

Runrun [MByte]update [MByte]
Previous151.5144.1
Current110.9110.7
Factor0.730.77



___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Documentation in EPUB-Format?

2013-10-04 Thread Dirk Bächle

Hi devs,

since we're now using DocBook as source format for all our 
documentation, it would technically be relatively easy to publish things 
like the MAN page or the UserGuide in EPUB format as well.
The latest versions of pandoc ( 1.12.x) offer a DocBook reader and do 
a, more or less, good job in rendering the single markups.

Find a shortened version of the UserGuide attached, as a first example...

The question now is: Should we go this route? Then I'd try to integrate 
an ebook target into the build and bootstrapping process, such that 
EPUBs get created automatically if pandoc can be found on the current 
system.


Note, how this would add a dependency to pandoc for all the 
ReleaseManagers...and this currently means installing the full Haskell 
platform package with approx 400MB. ;)


Your comments?

Best regards,

Dirk



scons.epub
Description: application/epub
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Working branches

2013-10-04 Thread Dirk Bächle

Hi Russel,

On 04.10.2013 19:23, Russel Winder wrote:

Now we have default and python3-port as working branches, we need a
workflow that ensures they are kept in sync. If python3-port is left
behind, then all the work to date will have been for nought.


hmmm, we probably should discuss (and then decide) how we want 
development to look like, once we have a working python3 branch. Will we 
continue to support both major versions 2.x and 3.x? If yes, in which 
direction (2-3 or 3-2) do we merge

preferably, meaning: where do we do most of our development?

Or does the 2.x stuff get abandoned and we care about Python 3.x only?


I also need advice on how to handle feature clones: I have the
SCons_D_Tooling clone and have no idea how to manage it now with the two
working branches.

I have my own repository scons_experimental for things like this. I 
pull from the SCons main repo whenever I feel the need to update, but 
never push back. So, I can merge freely and can also use named branches 
as much as I like...one for every feature, basically.
For features to be published, I create a patch and apply it to my clone 
of the main repo...then issue a pull request from there.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Documentation in EPUB-Format?

2013-10-05 Thread Dirk Bächle

Hi Rob,

On 05.10.2013 01:42, Managan, Rob wrote:

I like the idea since I like ebooks. However, I will be honest and say
that for code development I would not be too likely to use it since on my
desktop machines I don't have a great epub viewers.


it's more like for users starting with SCons and wanting to read more 
about it...wherever they go. ;)



So I guess I would say that if there was no extra effort or file space
required go ahead and add it but if the extra effort is noticeable don't
bother.


Okay, I'll give it a try. Should the EPUBs be just a side-effect of the 
doc build for now, or should they get archived in the different 
distribution packages too?


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Documentation in EPUB-Format?

2013-10-06 Thread Dirk Bächle

On 06.10.2013 01:24, Bill Deegan wrote:

Dirk,

How big are the ePub files? vs pdf..



For the full UserGuide, I currently have:

PDF = 2394kB vs. EPUB = 219kB

, but you have to take into account that the additional graphics for the 
style and the titlepage

eat up a lot of space for the PDF.

I haven't tried yet, but I guess additional images would bloat up both 
formats in about the same way.


Regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Documentation in EPUB-format

2013-10-06 Thread Dirk Bächle

Andrew,

On 06.10.2013 21:07, Dirk Bächle wrote:

[...]
The DocBook Tool is not (yet) part of the core sources. By keeping 
compatibility to older SCons and Python versions, we don't force 
people to upgrade if they want to use the Tool. So this still makes 
sense, I think.




sorry I have to correct myself...it *is* a core Tool by now. Anyway, 
please publish your changes on your scons_docbook fork and send a short 
note. Then I'll have a look and we can decide how to take it from there.


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Documentation in EPUB-format

2013-10-13 Thread Dirk Bächle

Andrew,

On 13.10.2013 20:50, Andrew Featherstone wrote:

[...]

Dirk: I've pushed what I've got so far to 
https://bitbucket.org/ajf58/scons_docbook/branch/epub . I've run a 
basic Docbook through it and generated an EPUB file that passes the 
validation test here http://validator.idpf.org/ . In it's current form 
there's a bug in that the files added to the OEBPS directory aren't 
re-added when the source files are changed. Is it possible for the 
action functions passed to a Command builder to modify target and 
source lists?




this is more the task of an Emitter. If you want to do things properly, 
you'll have to define an additional set of builders for xsltproc, lxml 
and libxml2. You can then add your specialized Emitter to the 
constructors of the single Builders and replace the call of 
__select_builder() with something like:


  __builder = __select_builder(__lxml_builder_epub, 
__libxml2_builder_epub, __xsltproc_builder_epub)


.

Bill: I can raise an issue there if you think that's sensible. A quick 
glance at http://scons.tigris.org/ shows a large number of open 
tickets. Is this because issues are tracked elsewhere? 
https://bitbucket.org/scons/scons itself seems to be active, and 
indeed shows some work using Ghostscript to create EPUB files.




We currently have the situation that our repository is on bitbucket, 
while the bug database is still managed by Tigris...as long as we don't 
have decided where we want to migrate to.


Regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Calling PseudoBuilder from an emitter function from a Builder with OverrideEnvironment looses overrides

2013-10-21 Thread Dirk Bächle

Hi Andreas,

On 21.10.2013 11:54, andreas.a...@de.transport.bombardier.com wrote:


Hi all,

first of all, thanks for providing such a useful tool as scons.

I've found a small glitch in Scons 2.1.0 (as part of Ubuntu 12.04 
LTS). I've got an emitter function installed for one of my builders. 
 This builder is called with keyword arguments so that an 
OverrideEnviroment is used to execute it.  When the emitter function 
is called the OverrideEnvironment is presented to it in the env 
parameter.  But if I call a PseudoBuilder (i.e. a MethodWrapper 
instance) from there, the PseudoBuilder itsself is called with the 
original environment and the OverrideEnvironment is no longer 
available to it.  I guess, a possible fix would be to forward the 
keyword arguments used to call the builder to the emitter function so 
that these keyword arguments could be used to call the PseudoBuilder.




as a first thought on this: I wouldn't expect this to work at all, 
because it shouldn't be necessary to call any kind of Builder from an 
Emitter.
Can you possibly tell us a bit more about where this setup comes from, 
or why you need to do it like this?


Thanks a lot in advance and best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Schedule for redesign?

2013-10-27 Thread Dirk Bächle

Hi,

over the last few days I had another look at SCons' speed and memory 
problems. As posted in an earlier email, I am able to reduce the maximum 
amount of memory used during runtime (both, clean and update builds) by 
up to 50% in large C/CPP projects.
This is reached by freeing infos in the Node class itself, when they 
aren't needed anymore after a target is built/visited.


Having identified a set of Node attributes like this, somewhat lends 
itself to refactoring them out into its own class (TargetInfo?). There 
has always been some rumor about a redesign of the Node classes and the 
Taskmaster, which is what this is pretty much about...although not in a 
very broad range.


What I'd like to do (and actually already started in a private branch) 
is to refactor a few classes and imports, like follows:


  - move the GetOption/SetOption/FakeOptionParser stuff out of 
SCons.Script.Main into SCons.Options (have this ready)
  - move the Task classes (Clean/AlwaysBuild/...) out of the 
SCons.Taskmaster into their own module SCons.Tasks (ready, too)
  - move the Node attributes mentioned above into their own class 
SCons.TargetInfo (tbd)


In effect, funtionality gets shifted to where it belongs conceptually, 
and not where it is needed. This might make access to certain parts a 
little more complicated, in the sense that one more often needs to 
delegate things or distribute information like option flags to several 
places. But it also makes the design overall easier to grasp and 
explain...at least in my opinion.


Now my question (see the title): When would this fit into our current 
development schedule? Should I just go ahead and propose one (or 
several) pull requests, or wait until the Python 2to3 conversion is over 
and things have settled. Do you think we need a special deprecation 
cycle for this, or maybe even should switch the version number to 3.x then?


Your comments are welcome...

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Schedule for redesign?

2013-10-28 Thread Dirk Bächle

Hi Jason,

and thanks for chiming in.

On 28.10.2013 17:07, Kenny, Jason L wrote:

I hope I would not be a wrench in engine :-)

Honestly The issue that this is work and I have to do this at home is the main 
reason I have not pushed anything at this point. ( And having twin 3 years-old 
means I don't have the go power at the end of the day...)

I would agree with what is being stated. I would go a bit farther however.


I understand that you have done some work on redesigning/refactoring 
parts of SCons, and you certainly don't want to lose it for nothing. So, 
I'd like to make the following suggestion: I'll factor out some 
attributes of the Node class into their own module and commit these 
changes (together with the other rewritings I mentioned) to a named 
branch in my personal experimental SCons fork.
Then you can have a look at it and check whether you'd be able to base 
your further work on that. If not, you can tell me what should be 
changed such that you can continue properly with your work. If I get 
your okay, the changes find their way into the SCons core and you can 
take it from there whenever you find the time. How does that sound?



I would redesign the Node API. But also redo the executioner logic. Ideally we want I 
have learned is that the task logic needs to be updated. Greg Noel was on the correct 
path with TNG in that we want to execute builders not nodes. We also need the 
API ( internal) to decouple the relationships with the tasks and the nodes.

I would also look at fixing up the subst engine. I found that this is another area of memory waste 
at the moment ( and not in the good way). This might be more of an issue with Parts as I currently 
use the subst engine to share data between different parts/ components. Until I do a 
new part file format and or a continuous loader I have no way to pass data correctly.


During my investigations I tried to speedup subst() by caching some 
pre-expanded strings, but it didn't work out. My current impression is 
that you either have to compile it (including optimizations by hand, 
simply running Cython over it is not enough!) or reduce functionality 
(like cutting down the support for callables) to get it faster.


But don't let me stop you from trying... ;)

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] point release time?

2013-12-17 Thread Dirk Bächle

Bill,

On 17.12.2013 22:06, Bill Deegan wrote:

Dirk,

If the memory patch uses __slots, then won't that likely break some 
user logic? If so then we should push out 2.3.1 without it with a 
notice in the release notes indicating what such change may break?




this patch doesn't use slots at all, it just tries to release as much 
infos as possible for already built targets...without breaking any 
existing tests. This means that we don't get the full amount of saved 
memory that would be possible, but it's a start.



Also looks like we have more than a handful of tests broken.
So my suggestion would be to fix the broken tests, then push 2.3.1.
Then address the other issues?



My pull request #96 should fix the Environment bug...which other issues 
would you like to address?



Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-01-08 Thread Dirk Bächle

Hi Roberto,

On 08.01.2014 22:52, Gary Oberbrunner wrote:



On Wed, Jan 8, 2014 at 4:49 PM, roberto de vecchi 
roberto.devec...@vi-grade.com mailto:roberto.devec...@vi-grade.com 
wrote:


Gary,

I think that the problem I'm seeing is generated by the
modification in FS.py around line 3052:

...

removing the reset of self.cwd things look much better and I can
build correctly with interactive mode. Just for your info we are
running exclusively with variantdir enabled and no source duplication.

If you can confirm the small change makes sense, I'll let some of
our developer test more in detail this configuration.


It makes sense to me, but Dirk will have to have a say.


thanks a lot for testing the new version. Please continue with the reset 
of self.cwd commented out (or remove the whole line). If you find 
further issues, just let us know immediately.



@Gary: Let's wait another day and see if Roberto finds more errors, then 
I'd prepare a pull request for removing the offending lines, okay? 
Trying to reproduce the failing build on our side and then working 
around it, is probably not a good idea so short before the release.



Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-01-09 Thread Dirk Bächle

On 09.01.2014 14:55, Gary Oberbrunner wrote:
I'm also getting some spurious rebuilds with 2.3.1 compared with 
2.3.0.  Will dig into it.  Dirk, I'm not sure if it's your patch or 
something else that changed.





Gary,

I created a pull request, switching off the memory savings for the 
Interactive mode completely. Just to be extra careful...


With this, we should get rid of the observed problems.

Regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-01-10 Thread Dirk Bächle

On 10.01.2014 18:46, Kenny, Jason L wrote:


I have the same issue with the build at my job. I thought it might 
have been bug in Parts passing data around, a badly define build files 
that dependson stuff differently if something exists on disk or not ( 
ie something that is built). However I pretty sure there is a bug in 
SCons. I leaning towards bugs in way signatures are made.. honestly 
this is where I go bad to needing to refactor scons. The plus side it 
seems to happen for me only on one or two cases out of 90k different 
outputs for the build. Parts tends to get around this when it skips 
loading the Parts file that defines these nodes as for some reason the 
corruption seems to happen when the build file happens, the existing 
stored state seems to be correct.


Jason



Do you have Builders in your setup that create included files (like C 
headers) during the run? I'm asking because the current source still has 
a small problem with tools like SWIG. On the first clean run, a header 
doesn't exist. So SCons finds the SWIG executable first, and then later 
(during scanning) the header after it got built.
On the second run (update), the header exists already...like this, the 
MD5 sums of the single implicit dependencies don't change, but their 
order in the internal list of children. That's what can cause unneeded 
rebuilds...it should be okay on the third run though.


You might want to try and run the build with the environment variable 
IMPLICIT_COMMAND_DEPENDENCIES set to False


  env['IMPLICIT_COMMAND_DEPENDENCIES'] = False

. Do the errors go away then, or get less frequently?

@Gary: Feel free to revert the mem patch anytime...we could also make it 
an experimental feature, and have it activated by a special command-line 
option only (for now or the next version).


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-01-13 Thread Dirk Bächle

On 13.01.2014 20:18, Gary Oberbrunner wrote:
Dirk, and others: I tracked down my spurious rebuild to the addition 
of caching changed-status in File.changed() in Node/FS.py.  If I 
remove that caching code I don't get the rebuilds:


diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -3043,13 +3043,15 @@
 but we allow the return value to get cached after the reference
 to the Executor got released in release_target_info().
 
-if node is None:
+allow_caching = False
+if node is None and allow_caching: # try this
 try:
 return self._memo['changed']
 except KeyError:
 pass
 has_changed = SCons.Node.Node.changed(self, node)
+if allow_caching:
 self._memo['changed'] = has_changed
 return has_changed
I also had to add this code to fix an exception when the file doesn't 
have an executor.


diff --git a/src/engine/SCons/Node/__init__.py 
b/src/engine/SCons/Node/__init__.py

--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -1090,7 +1090,10 @@
 if t: Trace(': %s changed' % child)
 result = True
+if self.get_executor():
 contents = self.get_executor().get_contents()
+else:
+contents = None
 if self.has_builder():
 import SCons.Util
 newsig = SCons.Util.MD5signature(contents)

Dirk, what do you think?  I'll play with this version for a while.



Okay, these both places are related by the call of 
SCons.Node.Node.changed() from SCons.Node.FS.File.changed() (one calls 
the other). What's supposed to happen is: in File.release_target_info() 
the executor gets released. Before this, the changed() method is called, 
such that it caches its value in self._memo['changed'].
If this doesn't work as expected, this would mean the File.changed() 
gets called much later sometimes, after the executor got released *and* 
the self._memo was reset. Can you try and get a stacktrace for when that 
happens?


It's crucial to be able to release the executor early...if we can't do 
it, there won't be much of a memory improvement.


Regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Failing tests

2014-01-21 Thread Dirk Bächle

On 21.01.2014 19:05, Russel Winder wrote:

I just ran all the test on Debian Unstable and got 70 no results, which
seems fine, but 9 test fails. 2 of these I understand, the others I have
no clue about:

test/Docbook/basedir/htmlchunked/htmlchunked_cmd.py
test/Docbook/basedir/htmlhelp/htmlhelp_cmd.py
test/Docbook/basic/epub/epub.py
test/Docbook/basic/epub/epub_cmd.py
test/Fortran/F95FLAGS.py
test/Fortran/SHF95FLAGS.py
test/YACC/live.py

Which revision are we talking about, current tip of default? Are these 
errors related to your question about TestSCons.where_is()?


ad Docbook: What kind of support for XSLT processing do you have 
installed on this machine, xsltproc (command-line) or one of the 
libxml2/lxml Python bindings?


Can you post the error messages (STDOUT/STDERR)?

Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Vague recollection of reporting a problem

2014-01-21 Thread Dirk Bächle

On 21.01.2014 18:39, Russel Winder wrote:

It is clearly the case that TestSCons.TestSCons().where_is(toolSequence)
uses the users current PATH to search. However when the tool is actually
used, the stripped down PATH is used. This means there appears to be no
way of checking whether a test will fail due to a failure to find the
executable of a tool.

Or am I missing something?

The method where_is() accepts a path as second argument, that is used 
for searching if specified. So you could call TestSCons.where_is() with 
the stripped down PATH variable as well. This should then give identical 
results...haven't tried though. ;)


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-01-29 Thread Dirk Bächle

On 28.01.2014 23:57, Gary Oberbrunner wrote:

More results, no fix yet.

The generated file all-defuns.c I mentioned before is definitely part 
of the problem.  I back-ported the tracing code I wrote to just before 
Dirk's memory optimization.  In that version, near the beginning of 
the build phase something calls node.is_up_to_date() on all-defuns.c 
and it says it has changed, due to depending on a dir mkl which is 
in no_state (i.e. hasn't been evaluated yet).  In Dirk's version, this 
result gets cached, which seems sensible.  But in the old version, 
when the taskmaster considers that all-defuns.c node, and calls 
is_up_to_date(), now it correctly returns True, because by now the mkl 
dir has been evaluated and it's in up-to-date state.  So it's 
definitely the caching that's causing the trouble, but I don't 
understand why is_up_to_date should return different values at 
different times -- especially go from false to true before anything's 
been built.  Perhaps there's another bug in the code which Dirk's 
patch exposes?


I would think is_up_to_date() should never assume that being 
unprocessed (i.e. no_state) means not up-to-date; I'd think it should 
have scanned the no_state node before its dependents.  Anyone have any 
clues?



When I implemented my changes, I saw that in the old version the 
changed() (or connected methods) could be actually called after a file 
was built. And since there was nothing cached, this could lead to 
creating additional build infos in the same step. So there was a danger 
of having a build info hash signature in the .sconsign, that would not 
actually describe how the target was built (more like, how would it be 
built next time).


Maybe your build DAG relied on this fact so far? By the way, are you 
building with -j or is it failing single-core too? Do you think it's 
possible to extract an isolated test case from this, now that we know 
more about what seems to happen?


Regarding the is_up_to_date() method, we're pretty much on the same page.

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-02-02 Thread Dirk Bächle

On 02.02.2014 23:13, Gary Oberbrunner wrote:

HA -- got a small repro testcase!

[...]

Dirk, I guess the ball's in your court! :-)  Of course I want to keep 
helping to solve it but at least you and interested others (hi 
Roberto!) can give it a try.




Thanks a lot for the testcase. I'll have a look at it...no problem.

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Fwd: [GSoC Mentors Announce] Now Accepting Applications for Mentoring Organizations for GSoC 2014

2014-02-03 Thread Dirk Bächle

On 03.02.2014 20:05, Gary Oberbrunner wrote:
Hi folks; if we want to get a GSoC project this year, now's the time 
to think about it.


Top of my priority list for a GSoC student would be someone to convert 
everything to python3, finishing what we've started already.  Other ideas?




Looking through the ideas at

  http://www.scons.org/wiki/GSoC2013Ideas

, I'd think that improving the packaging and distributing of SCons would 
be a worthwhile project too.


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Godot game engine released uses SCons to build..

2014-02-10 Thread Dirk Bächle

On 11.02.2014 05:57, William Deegan wrote:

http://beta.slashdot.org/story/198003


That's cool news...would it make sense to send them a short note, 
thanking them for choosing SCons, and offering them help on our user 
mailing list if they need it?


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Fwd: [GSoC Mentors Announce] Now Accepting Applications for Mentoring Organizations for GSoC 2014

2014-02-11 Thread Dirk Bächle

The deadline for this is getting closer...do we apply?

Dirk

On 04.02.2014 01:06, Bill Deegan wrote:

I like the packaging idea.
For buildbot we use pip to install and run the development version, so 
easy.

No need to set environment variables and such.
And if users could pip install the package (which doesn't work right 
now btw), that would be awesome.


-Bill


On Mon, Feb 3, 2014 at 12:07 PM, Dirk Bächle tshor...@gmx.de 
mailto:tshor...@gmx.de wrote:


On 03.02.2014 20:05, Gary Oberbrunner wrote:

Hi folks; if we want to get a GSoC project this year, now's
the time to think about it.

Top of my priority list for a GSoC student would be someone to
convert everything to python3, finishing what we've started
already.  Other ideas?


Looking through the ideas at

http://www.scons.org/wiki/GSoC2013Ideas

, I'd think that improving the packaging and distributing of SCons
would be a worthwhile project too.

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org mailto:Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev




___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-02-11 Thread Dirk Bächle

Hi Gary,

On 02.02.2014 23:13, Gary Oberbrunner wrote:

HA -- got a small repro testcase!

[...]

Run that twice as scons all-defuns.obj.  The second time _shouldn't_ 
rebuild anything, but it will re-run the Copy command.  SCons 2.3.0 
correctly doesn't do anything the second time.




looks like I found a solution. The problem is that changed() gets 
called in different contexts: not only within 
make_ready_current/release_target_info after building a target, but also 
during scanning with a call stack like this:


changed [FS.py:3052]
is_up_to_date [FS.py:3121]
current_check [__init__.py:309]
__call__ [__init__.py:203]
get_found_includes [FS.py:2684]
get_implicit_deps [__init__.py:586]
scan [Executor.py:474]
scan_sources [Executor.py:455]

Please find a patch attached and try it on your large build if you find 
the time. I've added an allowcache argument to the changed() method, 
that gets only set in the release_target_info path.

This let's your simple testcase pass on my side...

If you can confirm that this brings your build back to working properly, 
I'd create a pull request for this fix.


Regards,

Dirk

diff -r d53323337b3a src/engine/SCons/Node/FS.py
--- a/src/engine/SCons/Node/FS.py	Sun Jan 05 13:27:10 2014 +0100
+++ b/src/engine/SCons/Node/FS.py	Wed Feb 12 00:21:29 2014 +0100
@@ -2779,7 +2779,7 @@
 if not hasattr(self.attributes, 'keep_targetinfo'):
 # Cache some required values, before releasing
 # stuff like env, executor and builder...
-self.changed()
+self.changed(allowcache=True)
 self.get_contents_sig()
 self.get_build_env()
 # Now purge unneeded stuff to free memory...
@@ -3034,7 +3034,7 @@
  
 self.scanner_paths = None
 
-def changed(self, node=None):
+def changed(self, node=None, allowcache=False):
 
 Returns if the node is up-to-date with respect to the BuildInfo
 stored last time it was built. 
@@ -3050,7 +3050,8 @@
 pass
 
 has_changed = SCons.Node.Node.changed(self, node)
-self._memo['changed'] = has_changed
+if allowcache:
+self._memo['changed'] = has_changed
 return has_changed
 
 def changed_content(self, target, prev_ni):
diff -r d53323337b3a src/engine/SCons/Node/__init__.py
--- a/src/engine/SCons/Node/__init__.py	Sun Jan 05 13:27:10 2014 +0100
+++ b/src/engine/SCons/Node/__init__.py	Wed Feb 12 00:21:29 2014 +0100
@@ -1049,7 +1049,7 @@
 def Decider(self, function):
 SCons.Util.AddMethod(self, function, 'changed_since_last_build')
 
-def changed(self, node=None):
+def changed(self, node=None, allowcache=False):
 
 Returns if the node is up-to-date with respect to the BuildInfo
 stored last time it was built.  The default behavior is to compare
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-02-11 Thread Dirk Bächle

On 12.02.2014 00:29, Dirk Bächle wrote:

[...]
This let's your simple testcase pass on my side...


Uppss, please replace with:

This lets...
:)

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] please try latest default branch

2014-02-14 Thread Dirk Bächle

On 13.02.2014 21:43, Gary Oberbrunner wrote:

Hey, it works for me too!




Okay, I created pull request #109, fixing this issue. Check and merge it 
when you find the time...and don't stress yourself out on the 2.3.1 
release. This is still supposed to feel like fun, not work. ;)


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] [GSoC Mentors Announce] Re: Now Accepting Applications for Mentoring Organizations for GSoC 2014

2014-02-15 Thread Dirk Bächle

Hi Russel,

On 15.02.2014 08:40, Russel Winder wrote:

On Thu, 2014-02-13 at 16:20 -0500, Gary Oberbrunner wrote:

Thanks to Manuel Naranjo, our application is now in.  Please go to
http://www.scons.org/wiki/GSoC2014Ideas (which is just a clone of the 2013
ideas page so far) and add/edit/cleanup.

I had a quick look at the 2 → 3 one and started making changes, but
cancelled when I realized the final goal seems to be to create a pre
2to3 script so that the combination of the two create a SCons codebase
transform.

I don't agree with this, I think we should be looking to create a single
codebase that runs with Python 2 or Python 3.

Once I realized this I backed out of my changes to leave things as they
were.


please just continue editing the page and set the proper goals for this 
task. I wrote this text for GSoC 2013, back when our py3 branch didn't 
exist. So it's not really up-to-date anymore...


Regards,

Dirk
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons doesn't bootstrap without libxml2

2014-02-18 Thread Dirk Bächle

Hi Anatoly,

On 18.02.2014 05:46, anatoly techtonik wrote:

Why SCons bootstrap became dependent on external libraries?
I find it a major usability regression. Can this be fixed?


it didn't suddenly become dependent, it always was. We're now using 
DocBook, so we need to process and transform XML...that's the single 
dependency to either libxml2 or lxml. And it's not a dependency for the 
regular user, but the role of the developer...


Before that we required the full list of required tools as given at the 
bottom of http://www.scons.org/wiki/DeveloperGuide/Documentation . If 
you'd switch to another tool like e.g. Sphinx, as you suggested under 
http://www.scons.org/wiki/DeveloperGuide/Documentation/Discussion, then 
that would be the new dependency. It's just switching names, so I don't 
see how this is any better...


So,

  - the external dependencies have actually been reduced, and
  - no, I don't think it can't be fixed. ;)

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons doesn't bootstrap without libxml2

2014-02-18 Thread Dirk Bächle

On 18.02.2014 12:12, anatoly techtonik wrote:

[...]
There is a mistake. The bootstrap process never require documentation tools
to be present.


Correct, the bootstrap process doesn't require doc tools...but the 
SConstruct at the top-level does. So unless you call bootstrap.py from 
the top-level source dir everything should be fine, do you agree?

For the other case see my comments below please.


hg up 2.3.0
bootstrap.py

C:\Python27\python.exe R:\scons\bootstrap\src\script\scons.py
scons: Reading SConscript files ...
doc: jw not found, skipping building User Guide.
doc: WARNING: no groff, skipping text and PostScript versions of man pages
...

The bootstrap.py is a minimal build of SCons to bootstrap the full build of all
the packages, as specified in our local SConstruct file.


Doesn't the full build of all the packages,... include the full 
documentation? If yes, then it requires one of the libxml2/lxml bindings 
installed...and I don't see a problem with that.
If not, what command do I have to call (assuming the role of a release 
manager) to get a full release build, creating all packages such that 
they're ready for shipping with the guarantee that no files are missing?



Dirk

P.S.:

So,

   - the external dependencies have actually been reduced, and
   - no, I don't think it can't be fixed. ;)


The last item was supposed to read: I don't think it can be fixed.

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons doesn't bootstrap without libxml2

2014-02-18 Thread Dirk Bächle

On 18.02.2014 19:59, anatoly techtonik wrote:

[...]
You need to ensure that there are no warnings during the build process
and the warning about missing documentation build is among those that
you especially should not ignore as a release manager. ;)



I could live with both variants for the top-level build (packaging n' 
stuff):


a) The default is to build and package SCons as far as the tools and 
requirements for the single steps are met. Documentation may get built 
and archives might get packaged and tested or not, depending on which 
tools/modules you have installed in your system. The focus is on trying 
out integration with a minimum of effort, especially regarding running 
time of the build.


b) The default is to guarantee a correct build, which means that all 
packages get created such that they contain all required files and 
documents. All these packages pass their tests, especially the ones for 
self-containment, and are ready to get shipped. If one or more of these 
goals are not met, the build breaks.



So I'd like to let the actual release managers decide. Just chime in guys...

Personally, I'd always do the full build anyway. Sorry, but I simply 
don't believe in getting half-pregnant. ;)


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons doesn't bootstrap without libxml2

2014-02-18 Thread Dirk Bächle

On 19.02.2014 00:00, anatoly techtonik wrote:

On Tue, Feb 18, 2014 at 11:50 PM, Dirk Bächle tshor...@gmx.de wrote:

On 18.02.2014 21:19, anatoly techtonik wrote:

[...]

Ok. I'll put it the other way. Between automating the job of release
manager,
which is done once in few months and automating the job of developer,
which
is more than once in a while, you choose the former. Why?


Because my workflow seems to differ from yours.  Do you use bootstrap.py
to call a development version of SCons, or how do you do it?

I use bootstrap.py for a quick test that development version is not completely
broken.


Okay, and when you have a simple SConstruct in a folder like 
/tmp/sconstest, change into this folder via cd /tmp/sconstest and 
then call


python /full/path/to/scons/repo/bootstrap.py

, does that work in 2.3.0 without having libxml2/lxml installed or do 
you see an error?


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons doesn't bootstrap without libxml2

2014-02-18 Thread Dirk Bächle

On 19.02.2014 00:14, anatoly techtonik wrote:

On Wed, Feb 19, 2014 at 2:08 AM, Dirk Bächle tshor...@gmx.de wrote:

[...]

Okay, and when you have a simple SConstruct in a folder like
/tmp/sconstest, change into this folder via cd /tmp/sconstest and then
call

python /full/path/to/scons/repo/bootstrap.py

, does that work in 2.3.0 without having libxml2/lxml installed or do you
see an error?

There is no error and should not be.


Good, so you are able to develop SCons and run a checked-out, or even 
modified, version of SCons against a build project, right?

Because in your earlier mail you said:



My opinion is that by adding additional dependencies to run the SCons
without errors from a fresh checkout we are significantly increasing
contribution
barrier and discouraging people from participating.

People need to checkout and run to see the power of SCons. Not read,
checkout, install, setup, run cycle. Something like this.


But this is obviously not the case. When following the first 
instructions in the top-level README.rst, people are able to call SCons 
without installing it and without having to resolve any further 
dependencies. So there is actually no reason to fear that users or 
first-time developers get a bad first impression of SCons, when they try 
to use the latest development version.
Can you see that too, and agree with me that we don't have a real 
problem in this very specific use case (cloning the repo, and calling 
SCons directly)?


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons doesn't bootstrap without libxml2

2014-02-19 Thread Dirk Bächle

On 19.02.2014 06:15, Bill Deegan wrote:

Anatoly,

bootstrap.py is not meant to be run by users, only developers.

-Bill



I'd even go one step further and say: it's primarily meant to be run by 
release managers.


It's okay if you take on this role for yourself as a developer while 
you're hacking away with things, but as far as I know there is nowhere 
documented that this is actually required from you. Nobody forces you 
now or has forced you in the past, to run this additional step, right?
Or is it your understanding that every developer is required to run the 
full build scenario?


I can understand that you are a little confused, and maybe even 
frustrated, because suddenly things that seemed to work for you show a 
different behaviour. But that's what happens. Time goes by and things 
change. And we want some changes for the SCons project, to make it 
better, right?
And that's what we did, we made SCons better such that you don't have to 
write MAN pages by hand anymore for example. As a consequence of this, 
you simply don't get away anymore with what you did in the past: running 
only half of the packaging test without the documentation.
But this is also a change to the better side and not meant to be against 
you personally. It reduces the work load for the actual release managers 
because errors in the documentation syntax are revealed much earlier in 
the development process.


And you can still get back to your old routine and workflow and help the 
project even more and better than before, if you decide to take that 
little step and install the libxml2 or lxml Python bindings.
And if you decide to not install it, and simply skip the full packaging 
build, that'll be fine with everyone too...and you can save even more of 
your time and invest it in development itself.


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons doesn't bootstrap without libxml2

2014-02-19 Thread Dirk Bächle

On 19.02.2014 18:07, Bill Deegan wrote:

Might I suggest we stop discussing it and just propose pull requests.
If you have a specific change in mind, then make it and send a pull 
request.




Yup, I'm all for it. @Anatoly: the commits that introduced the new doc 
toolchain are 8ca01af:0c9c8af (pull request #77, 2013-05-04).


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Question...(not flamebait)

2014-03-03 Thread Dirk Bächle

On 03.03.2014 20:37, Bill Deegan wrote:

Anatoly,

This is a bikeshed'ing type discussion.
So we'll never agree on this.

The project has long had the emacs/vim info in each source file, so 
there's no reason to change.

That said, some automated checking in buildbot might not be a bad idea.

Though I'd put money that SCons source code (haveing long preceded 
PEP8 rules) won't conform (at present) to PEP 8.


It might be worthwhile to get there though as such automated checking 
would get easier.


Other opinions on PEP-8 formatting compliance?


I, personally, don't feel like I would write better code (or more code) 
with it. And as a user I don't care how the SCons sources look, as long 
as it's doing what I expect from it.


Let's all together try to get Python3-compliant instead... ;)

Regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Is the release 2.3.1 out?

2014-03-04 Thread Dirk Bächle

Hi,

has the version 2.3.1 officially been released yet? I see the packages 
on Sourceforge and the docs on the web page, but I miss the official 
Announce email.
Some of my friends also watch the project via Twitter. Can someone post 
a short message there?


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Fwd: [Bitbucket] Pull request #119: Major revamp of the D language support (scons/scons)

2014-03-19 Thread Dirk Bächle

Hi there,

On 19.03.2014 15:08, Gary Oberbrunner wrote:
This is worth reading, IMHO.  From Martin Geisler.  You can see more 
in the pull request (which has been withdrawn, so you won't see it by 
browsing open PRs on bitbucket), where he explains why pulling 
Russel's change causes an explosion of branchiness due to mercurial's 
changeset ordering.


I took the time to read through the comments for this pull request, and 
now would like to share my first impression with you all.


The merge graph may look a bit unusual, but this is simply the first 
time that a long-lived dev branch gets back onto default. I, 
personally, wouldn't feel the itch to do anything about it. Let graphs 
get messy and ugly, but this is what happens when you actually work with 
a VCS. Polishing, folding and rebasing commits only to make the history 
look pretty is not really required from my side...but let me stress this 
again, it's just my personal opinion.
I really acknowledge and appreciate all the work that Russel, Gary and 
Martin have put into this. If you like a clean history better, 
fine...just continue. Especially if this removes your obvious doubts 
about whether Mercurial did the right thing (This merge looks mixed up, 
it can't be right.).


But you don't have to do it for me. ;)

Best regards,

Dirk

P.S.: Just as an addendum, trying to provide an explanation for what I 
wrote above...I see worse things every day, we're using ClearCase at 
work. ;)


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Subprocess issue on Linux?

2014-04-01 Thread Dirk Bächle

Hi there,

On 01.04.2014 18:13, Gary Oberbrunner wrote:


I've found posix spawn can be much faster than fork/exec with large 
memory processes, so I'd be in favor of this. Not every system has it 
though so there would have to be a fallback to fork/exec.


--
Gary Oberbrunner
(sent from my Android)

On Apr 1, 2014 11:52 AM, Kenny, Jason L jason.l.ke...@intel.com 
mailto:jason.l.ke...@intel.com wrote:


Hi guys,

I just got a patch to Parts internal at Intel to fix some issues
with subprocess. I find myself sort of surprised by this, and
honestly felt that this seems to be an issue that should be looked
at in Scons as well.

 [...]

Does anyone else have input on this? IF this is a good patch, it
seem that we will want to apply it to SCons, for a speed boost.



a few minutes ago I updated the page

  http://www.scons.org/wiki/WhySconsIsNotSlow

with my latest results. Check out the bottom of the page, and the repository

  http://www.bitbucket.org/dirkbaechle/scons_testresults

for all the results. I'm also talking to Tzvetan Mikov off-list, he 
volunteered to write a CPython extension for posix_spawn() to help SCons 
out. I'll try to get him subscribed to this list, so the three of you 
can talk some more about this, okay?


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Subprocess issue on Linux?

2014-04-04 Thread Dirk Bächle

On 02.04.2014 23:38, Gary Oberbrunner wrote:


On Wed, Apr 2, 2014 at 4:51 PM, Dirk Bächle tshor...@gmx.de 
mailto:tshor...@gmx.de wrote:


This idea may be feasible, but I'd rather try to get the actual
shell spawning to be as fast as possible. We have some valid
approaches for this, so let's try them out...maybe one of them is
fast enough, such that we don't have to care about the extra
work mentioned above anymore. Speeding up the spawn/fork stuff
would be more transparent to the user than trying to detect
which commands need a full shell and which don't.


They're orthogonal.  Both useful, but either can be pursued 
independently of the other.  Avoiding shells will be most valuable in 
builds with lots of tiny commands (could halve the build time). 
 Avoiding fork is most valuable when SCons is using lots of memory 
(which it often is).  My sense, based largely on Dirk's research, is 
fixing spawn has a bigger payoff right now.




Since we now know that the fork problem is something to care about, 
I'd really like to use the current momentum. I don't want to push 
anybody, I want us to have a clear vision about how to take steps in the 
right direction.


Is someone working on this right now? If not, who volunteers? Let's just 
communicate...and be on the same page about knowing *who* does *what*, 
and *when*.


What's a little behind this is, that I think this point has some 
strategic importance. It's a single issue that keeps a lot of users from 
switching to SCons. By getting it out of the way, we can present (and 
kind of sell) our project much better in any media out there.
I have submitted a proposal for the poster session at the EuroPython 
2014 in Berlin. It's title is How spawning many processes sequentially 
can kill performance, and if I could not only talk about our problem, 
but also present a solution that has some benefit for the Python 
community, that definitely carries some potential in my opinion.


So let's really get this crackin'! ;)

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Subprocess issue on Linux?

2014-04-06 Thread Dirk Bächle

Hi Jason,

On 05.04.2014 00:17, Kenny, Jason L wrote:


I think yes, in that it does what should be done by the system under 
posix_spawn.. ie call vfork and execve.


Here is the last version of the monkey patch I have from the people 
working on it. It has a fallback to the classic fork exec if the API's 
don't exists. It seems to solve the main speed problem for us at the 
moment. I believe it still being tested to find possible issues.




I tried to let SCons run with this patch, but I'm not able to integrate 
the patching of subprocess.Popen() successfully. I always get an import 
error for SCons.Util, and fail to see where this is actually coming from:


scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o d1_0/f0_sconsbld_d1_0.o -c -Id1_0/lup000_sconsbld_d1_0 
-Id1_0/lup001_sconsbld_d1_0 d1_0/f0_sconsbld_d1_0.c

Traceback (most recent call last):
  File 
/home/dirk/workspace/scons_dirkbaechle/src/engine/SCons/Platform/posix.py, 
line 42, in module

import SCons.Util
ImportError: No module named SCons.Util
scons: *** [d1_0/f0_sconsbld_d1_0.o] Error 1
scons: building terminated because of errors.

Does anybody have a clue and can give me a pointer? I'd like to compare 
the times for a clean build against the default sources.


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Subprocess issue on Linux?

2014-04-06 Thread Dirk Bächle

Hi Eugene,

thanks a lot for your quick answer and very helpful advice.

On 06.04.2014 15:21, Leskinen, Eugene wrote:


I have just place the stubprocess.py to 
/opt/python27/lib/scons-2.1.0/SCons/Platform/ directory and added 
'import stubprocess' statement to SCons.Platfrom.posix module just 
after import subprocess:


--- /opt/python27/lib/scons-2.1.0/SCons/Platform/posix.py 2014-04-06 
17:17:30.0 +0400


+++ /opt/python27/lib/scons-2.1.0/SCons/Platform/posix.py.new 
2014-04-06 17:17:07.0 +0400


@@ -36,6 +36,7 @@

import os

import os.path

import subprocess

+import stubprocess

import sys

import select

This what worked for me.



This approach works on my side too. I had tried to copy-paste part of 
the source code directly to the top of SCons/Platform/posix.py, which 
gave me the reported errors.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Subprocess issue on Linux?

2014-04-09 Thread Dirk Bächle

On 09.04.2014 19:24, Bill Deegan wrote:

Dirk,

That's pretty impressive!
Does it pass the full regression suite?



No, it doesn't work:

501/1110 (45.14%) /usr/bin/python -tt test/LEX/live.py
/home/dirk/workspace/scons_dirkbaechle/src/script/scons.py returned 2
STDOUT 
=

scons: Reading SConscript files ...

STDERR 
=

KeyError: 'PATH':
  File /tmp/testcmd.4854.Zu6ZsJ/SConstruct, line 2:
foo = Environment()
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Environment.py, 
line 1003:

apply_tools(self, tools, toolpath)
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Environment.py, 
line 107:

env.Tool(tool)
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Environment.py, 
line 1787:

tool(self)
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Tool/__init__.py, 
line 183:

self.generate(env, *args, **kw)
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Tool/default.py, 
line 40:

for t in SCons.Tool.tool_list(env['PLATFORM'], env):
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Tool/__init__.py, 
line 819:

], env)
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Tool/__init__.py, 
line 690:

return list(filter (ToolExists, tools))
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Tool/__init__.py, 
line 689:

return Tool(tool).exists(env)
  File 
/home/dirk/workspace/scons_dirkbaechle/src/script/../engine/SCons/Tool/wix.py, 
line 71:

for path in os.environ['PATH'].split(os.pathsep):
  File /usr/lib/python2.7/UserDict.py, line 23:
raise KeyError(key)

FAILED test of /home/dirk/workspace/scons_dirkbaechle/src/script/scons.py


Looks like the wrapping of Subprocess.Popen in stubprocess.py prevents 
the os.environ settings to get through, so all tests that setup a simple 
Environment and auto-detect Tools are bound to fail. :(


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Subprocess issue on Linux?

2014-04-09 Thread Dirk Bächle

On 09.04.2014 23:56, William Deegan wrote:

Dirk,

Is this available in your bitbucket repo?
(URL?)


No, I just used the subprocess.py from Eugene's mail and put it in my 
local copy of the SCons source tree (plus the import in posix.py).

I didn't bother to add it to any repo yet...

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] tracking command line argument changes in a custom tool ?

2014-04-11 Thread Dirk Bächle

Hi Ram,

On 11.04.2014 21:06, Ram Bhamidipaty wrote:


How do I track build variable changes in a tool ?

In my case I have a tool that I invoke like this:

env.MyTool(file.o [file.c], V1=1, V2=2, ...)

The tool is a bit complicated - I use Builder() objects to construct a 
file that contains the command line arguments for the compiler and 
then I use another Builder() to run the compiler. This is modeled on 
the tools for fools wiki page.


The problem I am seeing is that if I change the variables used to 
invoke MyTool() scons does not rebuild the file.


Question: In a tool - how does one track variable changes that would 
require the output file to be regenerated?




you shouldn't have to do anything special, if the dependencies are setup 
correctly. Did you make sure that your file.o depends on the 
intermediate file with the compiler command(s)?


You are right that your Builder is somewhat complicated, but it probably 
doesn't have to be. Did you have a look at the command generator 
feature yet? You can find it in the UserGuide, sect. 18.5 Builders That 
Create Actions Using a Generator.


Best regards,

Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Subprocess issue on Linux?

2014-04-22 Thread Dirk Bächle

Hi guys,

I just found this talk by Christine Spang, given at the PyCon 2014 in 
Montréal:


http://pyvideo.org/video/2640/subprocess-to-ffi-memory-performance-and-why-y

It's really worthwhile to watch, I think. However, I don't think CFFI 
can solve our basic problem...it looks as if there is no support for the 
redirection of stdout/stderr and only actual library calls can be 
wrapped. Does anybody know more about this?


Given our current results with the stubprocess.py wrapper, I'd like to 
raise the question again about how to proceed from here in general. I 
basically have enough material to show at the EuroPython 2014 in Berlin 
(if my proposal gets accepted), but what's our plan for the further 
development with this? Your comments are welcome...


Best regards,

Dirk

On 11.04.2014 13:55, Leskinen, Eugene wrote:

Here comes the latest version of stubprocess.py. It supports Python up to 
version 2.7.6 from now.




___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Subprocess issue on Linux?

2014-04-23 Thread Dirk Bächle

On 23.04.2014 01:42, Bill Deegan wrote:

Dirk,

So if I understand correctly, the stubprocess patch passes all the 
regression tests and is signficantly faster than the current 
implementation?


That's correct, but I'm not sure whether things like the redirection of 
stdout/stderr works in all cases, or might create quirky problems in 
certain situations. I just can't judge the technical stability level of 
the stubprocess.py source.



Is there any downside to using it?  (Does it work on py3?)
I haven't tried the wrapper under Python3 yet. But as far as I 
understood Eugene and Jason, it's not implemented.
Another downside is that this doesn't work under Windows obviously, I 
don't have any infos about OSx, and Alexandre Leblot already asked me in 
a PM about the support for Solaris. I can't test these things, so I've 
no idea. ;)



If not is there any reason not to send a pull request?

Creating a pull request is probably not difficult, on the technical 
level. But should the wrapper get activated automatically under Linux, 
transparently for the user? Or would it be an experimental option at 
first, that the user can activate via a command-line option...since we 
aren't that sure about all the possible implications?


Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New keywords for Tigris bugtracker...

2014-04-27 Thread Dirk Bächle

On 27.04.2014 17:53, Gary Oberbrunner wrote:



[...]
Funny you should mention that.  I'm just adding SCons to openhatch 
(http://openhatch.org/projects/SCons) per your email last week and my 
conversation with their leader.  I added our tigris tracker, or at 
least tried to... we'll see if it works.  One thing they ask for is 
how to select bite-sized bugs that would be easy for a newbie to 
help with; their project setup has a field to select keywords for 
this. I added Easy.


I also had exactly OpenHatch in mind, when asking for Windows/Fortran. 
;) We could try to find someone for simply testing old issues about 
whether they still exist, and possibly developing basic strategies for 
resolving them (which command-line option is needed for this tool to 
make things work?). Actually fixing stuff would be a step at the next 
level for them, so they can slowly progress into the project and are not 
overwhelmed straight away.



I just added the two keywords you mentioned as well.

Thanks a lot for that, and also for taking action about OpenHatch 
already. Very cool!


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons and octal constants

2014-04-28 Thread Dirk Bächle

On 28.04.2014 07:48, Russel Winder wrote:

Since the floor version of SCons is now Python 2.7, we should dispense
with the horror that is 1970s C-style octal constants and use the 0o
form (*). This applies to the default/default branch just as much to the
default/python3-port branch (where it is needed for SCons to run at all
on Python 3).

+1 from me.

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] SCons and octal constants

2014-04-30 Thread Dirk Bächle

Hi Bill,

On 30.04.2014 00:33, Bill Deegan wrote:

All,

If someone can point me to a pylint command line which should work for 
scons repo, I can add it to buildbot.




the fix to astroid seems to be working fine. I installed the latest 
version of pylint:


  logilab_common 0.61.0
  astroid 1.1.1
  pylint 1.2.1

 (each installed from latest revision of their repositories, so I'm not 
sure the version numbers are correct).

Then, in the top-level of the SCons repository you can call

  PYTHONPATH=src/engine pylint src/engine/SCons

and pylint runs through to the end. We might want to setup a customized 
config file, for getting rid of all those annoying invalid variable 
name messages...but just try to get it working on your side for now.


Regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Jar builds fail with SConscript variant directory

2014-04-30 Thread Dirk Bächle

Hi William,

On 01.05.2014 01:01, William Roberts wrote:

I typically set up my builds with a hierachical layout and a variant
directory and do some other things to make it all work together.
Normally I program in C, and this all works.

Recently, I tried using java and broke. I have a very simple example
that doesnt work. If I change the SConscript calls to use a variant
dir, its broken, if I dont it works...

Sconstruct:

  snip
 SConscript(script)
 #SConscript(script, variant_dir=outdir, duplicate=1)
  snip

to
  snip
 #SConscript(script)
 SConscript(script, variant_dir=outdir, duplicate=1)
  snip

it breaks...

Can someone explain what's going on here? Thanks.

possibly, if you could give us a little more info about your example. 
Like, what's in the variables script and outdir? What's the exact 
error message that you get?


You'll also reach more people (= faster response times and more 
thorough discussions) if you post these kind of questions to the user 
mailing list first. The developers are subscribed to it too, and will 
chime in if necessary.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Survey: SCons Wiki, access restrictions...

2014-05-01 Thread Dirk Bächle

Hi,

after the big Wiki attack in 2013 and the restoring of old contents, 
the SCons pages still show the red banner with a warning message at the 
top. Maybe it's time to switch this off, to make the Wiki appear a 
little friendlier?


Along the same lines, we might consider removing the blocking of new 
account creation. With the ApprovalQueue being in place, we are still 
protected against spam.


Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] New keywords for Tigris bugtracker...

2014-05-02 Thread Dirk Bächle

On 01.05.2014 14:46, Gary Oberbrunner wrote:



On Thu, May 1, 2014 at 7:05 AM, Dirk Bächle tshor...@gmx.de 
mailto:tshor...@gmx.de wrote:


...
FYI, I'm currently working on this (
https://openhatch.org/bugs/issue972 ) . The basic implementation
of the Tigris bugimporter is completed, now I just need to add
proper tests and then get the pull request through. ;)

cool!

It's now at https://github.com/openhatch/oh-bugimporters/pull/51 , but 
judging from the last accessed/changed times on the other pull 
requests, it can take a short while before something happens.

Every open source project appears to have the same problems... ;).

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] PyConUK 2014 is coming...

2014-05-03 Thread Dirk Bächle

On 03.05.2014 17:54, Russel Winder wrote:

On Sat, 2014-05-03 at 14:03 +0200, Dirk Bächle wrote:


just saw that PyConUK ( http://pyconuk.org/ ) has started their call for
proposals (talks/sprints/whatever), that get accepted by 19th August. I
guess this mainly goes out to Russel ;) , but it would be cool if SCons
would be on the conference schedule in some way.

The question is what is the interesting Python angle?


I know, too bad there aren't many build system conferences around. ;)

The subprocess issue might be of some interest to people...there is 
some data and technical discussion available.


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Bugtracker and stuff...

2014-05-04 Thread Dirk Bächle

Hi there,

I'm currently wading through our issue list at tigris.org, trying to 
clean things up a little (closing resolved bugs and such...). Sorry, if 
this creates some noise on the corresponding mailing list...


I found issue #2739, which is in state STARTED but assigned to 
issues@scons...so nobody effectively. I think that only NEW or 
REOPENED issues should be assigned to issues@scons, leaving the 
question how to resolve this? Can someone take it?


Further stirring up old topics ;), I pondered over the bugtracker 
migration task again. For the issue interface to OpenHatch, I now have a 
bug importer ready. It's capable of scraping our whole issue database 
(2947+ issues) from tigris.org to a single JSON file in about 7 minutes. 
From there it wouldn't be much effort to push all the data via xmlrpc 
into a roundup ( http://www.roundup-tracker.org ) instance, for example. 
I'm not sure what our options are for adding new services to our web 
hosting. But roundup allegedly runs standalone, as well as via 
mod_python, using WSGI or through CGI. Maybe we could host this ourselves?
Even if it's just to get away from Tigris *now*...as a first step. We 
might have to migrate further, later on. But then we're in a much better 
position (Python-based tracker, support for xmlrpc) to pull all our data 
out again, and convert it into a possibly new format.


Just as an idea...

Best regards,

Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Bugtracker and stuff...

2014-05-04 Thread Dirk Bächle

On 04.05.2014 14:29, Gary Oberbrunner wrote:

On Sun, May 4, 2014 at 7:38 AM, Dirk Bächle tshor...@gmx.de wrote:

[...]

This is a great start.  Thanks for doing it!  My preference would be a
hosted bugtracker though, just because it's one less thing to manage
(keep patched, ensure uptime etc.).  Also, a minor point, but people
may have more familiarity with the big hosted ones.
On the other hand, roundup is used by python.org and 
openhatch.org...which is where some new contributors might come from in 
the future.



Now, that said, I
don't really have much experience with any of them that I like.  So if
roundup is nice, hosting it ourselves wouldn't be all that terrible.
I'm pretty sure Pair, our current host, can do mod_python.
Maybe it would be worth the try to setup a demo instance of roundup. 
We could run it in some kind of read-only mode, updating its data from 
the Tigris tracker time to time.
Just to get a better feeling for the tool...although I'm pretty sure 
that it beats Tigris' Issuezilla easily.
I mean, we can't list all of our bugs/issues currently...because we have 
more than 500 entries? Were not in the 80s anymore. ;)



Ideally we'd have a stable tracker so we could put bug links into
commit messages, and mailing lists, and they'd still work 10 years
from now.  But that may be an impossible dream. :-)

As for #2739, I see I was involved in that.  I tried to get the OP to
write a test but that apparently was pushing a little too hard for him
at the time.  I guess I should take it.  The batch-mode fixes in there
are quite valuable.


We have a lot of good patches and enhancements pending in the issue 
list, and my impression is that they've been rotting there much too long 
now. With a better overview this wouldn't have happened...but it's 
probably also the communication from the BugParties that's missing and 
playing a role here.


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Bugtracker and stuff...

2014-05-04 Thread Dirk Bächle

On 04.05.2014 15:49, Gary Oberbrunner wrote:

[...]

Maybe it would be worth the try to setup a demo instance of roundup. We
could run it in some kind of read-only mode, updating its data from the
Tigris tracker time to time.

This should be pretty easy I think, presuming its dependencies are not
too onerous.  Dirk, do you have access to the web server?  If not, I
can get you access (send me your ssh pub key off-list) or I can try to
set up the demo.  (Note that we do NOT have root access on our server,
but many tools work with locally-installed dependencies these days.)
I don't have access to the web server yet. Before sending you my public 
key, I'd like to give other devs a chance to jump in. Setting up a bug 
tracker is certainly an interesting task, but I don't have to be all 
over the place with SCons. ;)


Dirk


___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Bugtracker and stuff...

2014-05-04 Thread Dirk Bächle

On 04.05.2014 20:31, Russel Winder wrote:

On Sun, 2014-05-04 at 09:49 -0400, Gary Oberbrunner wrote:
[…]

Yeah, seriously.  Along with that I really hate the Tigris bug-tracker
interface.  It is so needlessly complicated and hard to work with.
It's not even easy to _find_ it from the main tigris project page.

[…]

As you may remember, I have been ranting against the Tigris issue system
for a while. It violates so many HCI good tenets and practices, it is no
wonder to me that every time I think SCons Issue I immediately think
Oh f###. And not in a good sense.


Russel.told_you_so_karma += 10

:)

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Bugtracker and stuff...

2014-05-04 Thread Dirk Bächle

On 05.05.2014 02:01, William Deegan wrote:

Do we know the specs of the server pair is providing us with?
roundup suggests mysql or postgressql for database.
Need be we can put roundup on the same server as buildbot.

I’ve installed and customized bugzilla for many many clients, so if you like I 
can take a whack at this.
Cool, just go ahead...I won't mind. In the meantime I'll try to figure 
out how to push attachments via xmlrpc.


Dirk

___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


  1   2   3   4   >