Skip to content

Commit

Permalink
Merged revisions 2949-2953,2955-3056 via svnmerge from
Browse files Browse the repository at this point in the history
http://scons.tigris.org/svn/scons/branches/core

................
  r2955 | stevenknight | 2008-05-18 07:48:43 -0700 (Sun, 18 May 2008) | 2 lines

  Update lines for next development cycle.
................
  r2956 | GregNoel | 2008-05-19 14:24:39 -0700 (Mon, 19 May 2008) | 1 line

  Fix typo in Mkdir() description
................
  r2957 | cournape | 2008-05-19 22:37:17 -0700 (Mon, 19 May 2008) | 1 line

  sunc++ tool: do not parse pkgchk output if no output available (Fix for #2060).
................
  r2958 | cournape | 2008-05-19 23:34:01 -0700 (Mon, 19 May 2008) | 6 lines


  Do not set cppcPath to CXX if CXX has no dirname. This caused weird behaviour,
  because cppcPath and cxx were joined together, and scons used things like CC/CC
  as CXX.
................
  r2960 | cournape | 2008-05-20 22:23:12 -0700 (Tue, 20 May 2008) | 3 lines

  Initialized merge tracking via "svnmerge" with revisions "1-2959" from
  http://scons.tigris.org/svn/scons/branches/pyext
................
  r2971 | stevenknight | 2008-05-22 16:01:11 -0700 (Thu, 22 May 2008) | 4 lines

  Issue 2056:  Fix scons.bat so that it returns the SCons exit status even
  though we're using setlocal + endlocal to avoid polluting the calling
  user's %PATH% variable.
................
  r2972 | stevenknight | 2008-05-22 16:35:00 -0700 (Thu, 22 May 2008) | 2 lines

  Move generic windows tests from the test/ subdirectory into test/Win32.
................
  r2973 | stevenknight | 2008-05-22 18:58:35 -0700 (Thu, 22 May 2008) | 2 lines

  Fix scoping under Python 1.5 / 2.0 / 2.1.
................
  r2976 | cournape | 2008-05-23 04:10:37 -0700 (Fri, 23 May 2008) | 3 lines

  Initialized merge tracking via "svnmerge" with revisions "1-2975" from
  http://scons.tigris.org/svn/scons/branches/libwithcontext
................
  r2978 | GregNoel | 2008-05-23 12:39:42 -0700 (Fri, 23 May 2008) | 1 line

  script to convert XML issues into CSV spreadsheet
................
  r2987 | GregNoel | 2008-05-25 10:57:14 -0700 (Sun, 25 May 2008) | 1 line

  trivial typo
................
  r2989 | pankrat | 2008-05-25 14:42:53 -0700 (Sun, 25 May 2008) | 3 lines

  Initialized merge tracking via "svnmerge" with revisions "1-2988" from
  http://scons.tigris.org/svn/scons/branches/heapmonitor
................
  r2992 | belley | 2008-05-27 08:23:34 -0700 (Tue, 27 May 2008) | 41 lines

  Fixed the detection of Intel C++ Compiler for EMT64

  The table used to check the registry keys for installed versions of
  the Intel C++ compiler for EMT64 seems erroneous. I have double check
  using the Intel C++ compiler versions 9.1 and 10.0 on both Windows XP
  32-bit and Windows Server2003 64-bits.

  The registry keys have the form

  HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\Compilers\C++\100.025\IA32
  HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\Compilers\C++\100.025\IA64
  HKEY_LOCAL_MACHINE\SOFTWARE\INTEL\Compilers\C++\100.025\EMT64

  Benoit


  Index: src/engine/SCons/Tool/intelc.py
  ===================================================================
  *** src/engine/SCons/Tool/intelc.py	(revision 2991)
  --- src/engine/SCons/Tool/intelc.py	(working copy)
  ***************
  *** 101,108 ****
            valid_abis = {'ia32'  : 'ia32',
                          'x86'   : 'ia32',
                          'ia64'  : 'ia64',
  !                       'em64t' : 'ia32e',
  !                       'amd64' : 'ia32e'}
        if is_linux:
            valid_abis = {'ia32'   : 'ia32',
                          'x86'    : 'ia32',
  --- 101,108 ----
            valid_abis = {'ia32'  : 'ia32',
                          'x86'   : 'ia32',
                          'ia64'  : 'ia64',
  !                       'em64t' : 'em64t',
  !                       'amd64' : 'em64t'}
        if is_linux:
            valid_abis = {'ia32'   : 'ia32',
                          'x86'    : 'ia32',
................
  r2993 | stevenknight | 2008-05-27 16:22:35 -0700 (Tue, 27 May 2008) | 3 lines

  Issue 2062:  Fix --interactive mode getting "stuck" reporting failures
  for every build after the first one that fails.
................
  r2997 | stevenknight | 2008-05-28 18:18:36 -0700 (Wed, 28 May 2008) | 4 lines

  Fix the closing message on interrupt to report "building terminated
  because of errors."  Add a missing test.pass_test() call to the
  end of test/KeyboardInterrupt.py.
................
  r2998 | stevenknight | 2008-05-29 08:14:47 -0700 (Thu, 29 May 2008) | 2 lines

  Issue 2075:  Fix the ability to call the Node.FS.File.File() method.
................
  r2999 | stevenknight | 2008-05-29 14:12:07 -0700 (Thu, 29 May 2008) | 2 lines

  Issue 2063:  On Mac OS X, install under /usr/local by default.
................
  r3017 | stevenknight | 2008-05-30 08:05:26 -0700 (Fri, 30 May 2008) | 3 lines

  Get the fix for File.File() right this time.  Apply the same fix
  to File.Dir() and File.Entry(), too.
................
  r3022 | stevenknight | 2008-06-02 18:52:42 -0700 (Mon, 02 Jun 2008) | 3 lines

  Fix "deprecated conversion from string constant to char *" warnings in
  various C++ tests.
................
  r3045 | garyo | 2008-06-05 06:05:37 -0700 (Thu, 05 Jun 2008) | 8 lines

  This fix uses Python sequence comparison to compare the dotted version
  numbers used in .NET version numbers rather than comparing each
  element of the list individually.  It's more robust and also more
  correct.  I also fixed a Python 1.5.2 compatibility issue (strings
  didn't have the split method).

  Original reporter confirms this fixes his issue.
................
  r3046 | garyo | 2008-06-05 20:35:27 -0700 (Thu, 05 Jun 2008) | 1 line

  Minor doc tweaks to Users Guide.
................
  r3050 | stevenknight | 2008-06-06 11:38:38 -0700 (Fri, 06 Jun 2008) | 21 lines

  Merged revisions 2877,2879-2978,2980-3019,3021-3048 via svnmerge from
  http://scons.tigris.org/svn/scons/branches/fortran_refactor

  ........
    r2980 | cournape | 2008-05-23 21:56:19 -0700 (Fri, 23 May 2008) | 1 line

    Emit a warning and use  as a linker when fortran and c++ codes are mixed.
  ........
    r3000 | cournape | 2008-05-29 21:29:37 -0700 (Thu, 29 May 2008) | 1 line

    Improve warning when mixing c++ and fortran.
  ........
    r3048 | stevenknight | 2008-06-06 11:30:25 -0700 (Fri, 06 Jun 2008) | 6 lines

    Issue 2047:  update the warning text to make it less alarming.
    Move the warning classes so they can be suppressed.
    Add a test of the warning (and suppression) behavior
    Only issue one warning per SCons invocation, not one per built executable.
    Update CHANGES.txt and RELEASE.txt.
  ........
................
  r3051 | stevenknight | 2008-06-07 08:11:46 -0700 (Sat, 07 Jun 2008) | 3 lines

  Fix the Fortran/C++ link test for deprecation warnings
  under earlier Python version.
................
  r3052 | stevenknight | 2008-06-07 08:12:22 -0700 (Sat, 07 Jun 2008) | 2 lines

  Add Benoit's EMT64 change that will be released in 0.98.5.
................
  r3053 | stevenknight | 2008-06-07 08:21:50 -0700 (Sat, 07 Jun 2008) | 2 lines

  Update lines for 0.98.5 release.
................
  r3054 | stevenknight | 2008-06-07 08:26:04 -0700 (Sat, 07 Jun 2008) | 2 lines

  Update 0.98.4 versions to 0.98.5.
................
  • Loading branch information
stevenknight committed Jun 10, 2008
1 parent 9decbb7 commit 75c8da4
Show file tree
Hide file tree
Showing 31 changed files with 686 additions and 74 deletions.
2 changes: 1 addition & 1 deletion QMTest/TestSCons.py
Expand Up @@ -42,7 +42,7 @@ def zip(*lists):
# here provides some independent verification that what we packaged
# conforms to what we expect.

default_version = '0.98.4'
default_version = '0.98.5'

copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008'

Expand Down
40 changes: 20 additions & 20 deletions README
Expand Up @@ -83,11 +83,11 @@ In this case, your options are:
-- (Optional.) Install from a pre-packaged SCons package that
does not require distutils:

Red Hat Linux scons-0.98.4.noarch.rpm
Red Hat Linux scons-0.98.5.noarch.rpm

Debian GNU/Linux use apt-get to get the official package

Windows scons-0.98.4.win32.exe
Windows scons-0.98.5.win32.exe

-- (Recommended.) Download the latest distutils package from the
following URL:
Expand Down Expand Up @@ -159,7 +159,7 @@ And on Windows:

By default, the above commands will do the following:

-- Install the version-numbered "scons-0.98.4" and "sconsign-0.98.4"
-- Install the version-numbered "scons-0.98.5" and "sconsign-0.98.5"
scripts in the default system script directory (/usr/bin or
C:\Python*\Scripts, for example). This can be disabled by
specifying the "--no-version-script" option on the command
Expand All @@ -173,24 +173,24 @@ By default, the above commands will do the following:
making it the default on your system.

On UNIX or Linux systems, you can have the "scons" and "sconsign"
scripts be hard links or symbolic links to the "scons-0.98.4" and
"sconsign-0.98.4" scripts by specifying the "--hardlink-scons" or
scripts be hard links or symbolic links to the "scons-0.98.5" and
"sconsign-0.98.5" scripts by specifying the "--hardlink-scons" or
"--symlink-scons" options on the command line.

-- Install "scons-0.98.4.bat" and "scons.bat" wrapper scripts in the
-- Install "scons-0.98.5.bat" and "scons.bat" wrapper scripts in the
Python prefix directory on Windows (C:\Python*, for example).
This can be disabled by specifying the "--no-install-bat" option
on the command line.

On UNIX or Linux systems, the "--install-bat" option may be
specified to have "scons-0.98.4.bat" and "scons.bat" files installed
specified to have "scons-0.98.5.bat" and "scons.bat" files installed
in the default system script directory, which is useful if you
want to install SCons in a shared file system directory that can
be used to execute SCons from both UNIX/Linux and Windows systems.

-- Install the SCons build engine (a Python module) in an
appropriate version-numbered SCons library directory
(/usr/lib/scons-0.98.4 or C:\Python*\scons-0.98.4, for example).
(/usr/lib/scons-0.98.5 or C:\Python*\scons-0.98.5, for example).
See below for more options related to installing the build
engine library.

Expand Down Expand Up @@ -527,18 +527,18 @@ On Windows:
Depending on the utilities installed on your system, any or all of the
following packages will be built:

build/dist/scons-0.98.4-1.noarch.rpm
build/dist/scons-0.98.4-1.src.rpm
build/dist/scons-0.98.4.linux-i686.tar.gz
build/dist/scons-0.98.4.tar.gz
build/dist/scons-0.98.4.win32.exe
build/dist/scons-0.98.4.zip
build/dist/scons-doc-0.98.4.tar.gz
build/dist/scons-local-0.98.4.tar.gz
build/dist/scons-local-0.98.4.zip
build/dist/scons-src-0.98.4.tar.gz
build/dist/scons-src-0.98.4.zip
build/dist/scons_0.98.4-1_all.deb
build/dist/scons-0.98.5-1.noarch.rpm
build/dist/scons-0.98.5-1.src.rpm
build/dist/scons-0.98.5.linux-i686.tar.gz
build/dist/scons-0.98.5.tar.gz
build/dist/scons-0.98.5.win32.exe
build/dist/scons-0.98.5.zip
build/dist/scons-doc-0.98.5.tar.gz
build/dist/scons-local-0.98.5.tar.gz
build/dist/scons-local-0.98.5.zip
build/dist/scons-src-0.98.5.tar.gz
build/dist/scons-src-0.98.5.zip
build/dist/scons_0.98.5-1_all.deb

The SConstruct file is supposed to be smart enough to avoid trying to
build packages for which you don't have the proper utilities installed.
Expand Down
4 changes: 2 additions & 2 deletions SConstruct
Expand Up @@ -9,7 +9,7 @@
copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008'

# This gets inserted into the man pages to reflect the month of release.
month_year = 'May 2008'
month_year = 'June 2008'

#
# __COPYRIGHT__
Expand Down Expand Up @@ -45,7 +45,7 @@ import sys
import tempfile

project = 'scons'
default_version = '0.98.4'
default_version = '0.98.5'
copyright = "Copyright (c) %s The SCons Foundation" % copyright_years

SConsignFile()
Expand Down
85 changes: 85 additions & 0 deletions bin/xmlagenda.py
@@ -0,0 +1,85 @@
#!/usr/bin/env python

# Download the issues from Issuzilla as XML; this creates a file named
# 'issues.xml'. Run this script to translate 'issues.xml' into a CSV
# file named 'editlist.csv'. Upload the CSV into a Google spreadsheet.

# In the spreadsheet, select the last column and delete it (added by the
# upload to allow for expansion; we don't need it).
# Select all the columns and pick "align-->top"
# Select the ID and votes columns and pick "align-->right"
# Select the priority column and pick "align-->center"
# Select the first row and click on the "bold" button
# Grab the lines between the column headers to adjust the column widths
# Grab the sort bar on the far left (just above the "1" for row one)
# and move it down one row. (Row one becomes a floating header)
# Voila!

# The team members
# FIXME: These names really should be external to this script
team = 'Bill Greg Steven Gary Ken Brandon Sohail Jim'.split()
team.sort()

# The elements to be picked out of the issue
PickList = [
# sort key -- these are used to sort the entry
'target_milestone', 'priority', 'votes_desc', 'creation_ts',
# payload -- these are displayed
'issue_id', 'votes', 'issue_type', 'target_milestone',
'priority', 'assigned_to', 'short_desc',
]

# Conbert a leaf element into its value as a text string
# We assume it's "short enough" that there's only one substring
def Value(element):
v = element.firstChild
if v is None: return ''
return v.nodeValue

# Parse the XML issues file and produce a DOM for it
# FIXME: parameterize the input file name
from xml.dom.minidom import parse
xml = parse('issues.xml')

# Go through the issues in the DOM, pick out the elements we want,
# and put them in our list of issues.
issues = []
for issuezilla in xml.childNodes:
# The Issuezilla element contains the issues
if issuezilla.nodeType != issuezilla.ELEMENT_NODE: continue
for issue in issuezilla.childNodes:
# The issue elements contain the info for an issue
if issue.nodeType != issue.ELEMENT_NODE: continue
# Accumulate the pieces we want to include
d = {}
for element in issue.childNodes:
if element.nodeName in PickList:
d[element.nodeName] = Value(element)
# convert 'votes' to numeric, ascending and descending
try:
v = int('0' + d['votes'])
except KeyError:
pass
else:
d['votes_desc'] = -v
d['votes'] = v
# Marshal the elements and add them to the list
issues.append([ d[ix] for ix in PickList ])
issues.sort()

# Transcribe the issues into comma-separated values.
# FIXME: parameterize the output file name
import csv
writer = csv.writer(open('editlist.csv', 'w'))
# header
writer.writerow(['ID', 'Votes', 'Type/Member', 'Milestone',
'Pri', 'Owner', 'Summary/Comments'])
for issue in issues:
row = issue[4:] # strip off sort key
#row[0] = """=hyperlink("http://scons.tigris.org/issues/show_bug.cgi?id=%s","%s")""" % (row[0],row[0])
if row[3] == '-unspecified-': row[3] = 'triage'
writer.writerow(['','','','','','',''])
writer.writerow(row)
writer.writerow(['','','consensus','','','',''])
writer.writerow(['','','','','','',''])
for member in team: writer.writerow(['','',member,'','','',''])
18 changes: 14 additions & 4 deletions doc/man/scons.1
Expand Up @@ -1358,6 +1358,16 @@ method.
--warn=duplicate-environment, --warn=no-duplicate-environment
Enables or disables warnings about missing SConscript files.

.TP
--warn=fortran-cxx-mix, --warn=no-fortran-cxx-mix
Enables or disables the specific warning about linking
Fortran and C++ object files in a single executable,
which can yield unpredictable behavior with some compilers.

.TP
--warn=link, --warn=no-link
Enables or disables warnings about link steps.

.TP
--warn=misleading-keywords, --warn=no-misleading-keywords
Enables or disables warnings about use of the misspelled keywords
Expand Down Expand Up @@ -4360,7 +4370,7 @@ Interpreted options
and the construction variables they affect
are as specified for the
.BR env.ParseFlags ()
method (which thie method calls).
method (which this method calls).
See that method's description, below,
for a table of options and construction variables.

Expand Down Expand Up @@ -8434,9 +8444,9 @@ Execute(Mkdir('/tmp/outputdir'))

env.Command('foo.out', 'foo.in',
[Mkdir('/tmp/builddir',
Copy('$SOURCE', '/tmp/builddir')
"cd /tmp/builddir && ])

Copy('$SOURCE', '/tmp/builddir/foo.in')
"cd /tmp/builddir && make",
Copy('/tmp/builddir/foo.out', '$TARGET')])
.EE

.TP
Expand Down
2 changes: 1 addition & 1 deletion doc/user/add-method.in
Expand Up @@ -55,7 +55,7 @@
</para>

<scons_output example="ex1">
<scons_output_command>scons -Q</scons_output_command>
<scons_output_command>scons -Q /</scons_output_command>
</scons_output>

<para>
Expand Down
3 changes: 2 additions & 1 deletion doc/user/add-method.xml
Expand Up @@ -50,10 +50,11 @@
</para>

<screen>
% <userinput>scons -Q</userinput>
% <userinput>scons -Q /</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
Install file: "hello" as "install/bin/hello"
Install file: "hello" as "/usr/bin/hello"
</screen>

<para>
Expand Down
2 changes: 1 addition & 1 deletion doc/user/builders-writing.in
Expand Up @@ -864,7 +864,7 @@ This functionality could be invoked as in the following example:
<file name="site_scons/my_utils.py" printme=1>
def build_id():
"""Return a build ID (stub version)"""
return "100"
return "100"
</file>
<file name="SConscript">
import my_utils
Expand Down
2 changes: 1 addition & 1 deletion doc/user/builders-writing.xml
Expand Up @@ -752,7 +752,7 @@ This functionality could be invoked as in the following example:
<programlisting>
def build_id():
"""Return a build ID (stub version)"""
return "100"
return "100"
</programlisting>

<para>
Expand Down
26 changes: 26 additions & 0 deletions src/CHANGES.txt
Expand Up @@ -8,6 +8,32 @@



RELEASE 0.98.5 - Sat, 07 Jun 2008 08:20:35 -0700

From Benoit Belley:

- Fix the Intel C++ compiler ABI specification for EMT64 processors.

From David Cournapeau:

- Issue a (suppressable) warning, not an error, when trying to link
C++ and Fortran object files into the same executable.

From Steven Knight:

- Update the scons.bat file so that it returns the real exit status
from SCons, even though it uses setlocal + endlocal.

- Fix the --interactive post-build messages so it doesn't get stuck
mistakenly reporting failures after any individual build fails.

- Fix calling File() as a File object method in some circumstances.

- Fix setup.py installation on Mac OS X so SCons gets installed
under /usr/lcoal by default, not in the Mac OS X Python framework.



RELEASE 0.98.4 - Sat, 17 May 2008 22:14:46 -0700

From Benoit Belley:
Expand Down
30 changes: 29 additions & 1 deletion src/RELEASE.txt
Expand Up @@ -20,11 +20,39 @@ more effectively, please sign up for the scons-users mailing list at:



RELEASE 0.98.4 - Sat, 17 May 2008 22:14:46 -0700
RELEASE 0.98.5 - Sat, 07 Jun 2008 08:20:35 -0700

This is a release candidate for SCons 1.0. Please consult the
CHANGES.txt file for a list of specific changes since last release.

Please note the following important changes since release 0.98.4:

-- scons.bat NOW RETURNS THE REAL SCONS EXIT STATUS

The scons.bat script shipped with SCons used to exit with
a status of 1 when it detected any failed (non-zero) exit
status from the underlying Python execution of SCons itself.
The scons.bat script now exits with the actual status
returned by SCons.

-- SCONS NOW WARNS WHEN TRYING TO LINK C++ AND FORTRAN OBJECT FILES

Some C++ toolchains do not understand Fortran runtimes and create
unpredictable executables when linking C++ and Fortran object
files together. SCons now issues a warning if you try to link
C++ and Fortran object files into the same executable:

scons: warning: Using $CXX to link Fortran and C++ code together.
This may generate a buggy executable if the '/usr/bin/gcc'
compiler does not know how to deal with Fortran runtimes.

The warning may be suppressed with either the --warning=no-link
or --warning=no-fortran-cxx-mix command line options, or by
adding either of the following lines to a SConscript file:

SetOption('warn', 'no-link')
SetOption('warn', 'no-fortran-cxx-mix')

Please note the following important changes since release 0.98:

-- SCONS NO LONGER SETS THE GNU TOOLCHAIN -fPIC FLAG IN $SHCXXFLAGS
Expand Down
9 changes: 6 additions & 3 deletions src/engine/SCons/Node/FS.py
Expand Up @@ -2150,12 +2150,14 @@ def __init__(self, name, directory, fs):
def Entry(self, name):
"""Create an entry node named 'name' relative to
the SConscript directory of this file."""
return self.cwd.Entry(name)
cwd = self.cwd or self.fs._cwd
return cwd.Entry(name)

def Dir(self, name, create=True):
"""Create a directory node named 'name' relative to
the SConscript directory of this file."""
return self.cwd.Dir(name, create)
cwd = self.cwd or self.fs._cwd
return cwd.Dir(name, create)

def Dirs(self, pathlist):
"""Create a list of directories relative to the SConscript
Expand All @@ -2165,7 +2167,8 @@ def Dirs(self, pathlist):
def File(self, name):
"""Create a file node named 'name' relative to
the SConscript directory of this file."""
return self.cwd.File(name)
cwd = self.cwd or self.fs._cwd
return cwd.File(name)

#def generate_build_dict(self):
# """Return an appropriate dictionary of values for building
Expand Down

0 comments on commit 75c8da4

Please sign in to comment.