[sage-devel] Re: 4.1.1.alpha0 Installation just 'dying' for no known reason

2009-07-23 Thread Minh Nguyen

Hi David,

On Thu, Jul 23, 2009 at 4:54 PM, Dr. David
Kirkby wrote:



> Minh,
> your build on t2 has stopped with:
>
> sage: An error occurred while installing polybori-0.5rc.p8
>
> You appear to have forgot to install the .p9 version.
>
> http://sage.math.washington.edu/home/kirkby/Solaris-fixes/polybori-0.5rc.p9-Second-try/polybori-0.5rc.p9.spkg

I've started building the PolyBori SPKG up at

http://sage.math.washington.edu/home/mvngu/patch/polybori-0.5rc.p9.spkg

on t2. I was too immersed in merging tickets in the last couple of
hours :-) Thank you very much for your reminder. Let's wait and see if
polybori-0.5rc.p9.spkg builds OK on t2.


> Note that despite singular-3-1-0-2-20090620 appearing to install, it
> will not actually install properly on t2, as it can't find install-sh,
> so some of the files don't get copied.
>
> http://sagetrac.org/sage_trac/ticket/6563
> http://sage.math.washington.edu/home/kirkby/Solaris-fixes/singular-3-1-0-2-20090620.p0/singular-3-1-0-2-20090620.p0.spkg

Once PolyBori finishes compiling, I'll start compiling
singular-3-1-0-2-20090620.p0.spkg. By the way, I have checked in all
changes in your name and have uploaded the updated SPKG to

http://sage.math.washington.edu/home/mvngu/patch/singular-3-1-0-2-20090620.p0.spkg


> Ticket http://sagetrac.org/sage_trac/ticket/6558
> http://sage.math.washington.edu/home/mvngu/patch/atlas-3.8.3.p6.spkg
> should be easy to review, as its only a change to a single line.

I'll start building that once PolyBori and Singular finishes.

-- 
Regards
Minh Van Nguyen

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] SCons issues: 'modified Sage library' build fails at c_lib if Sun C++ compiler can be found.

2009-07-23 Thread Dr. David Kirkby

I'm copying this to Steven Knight, a SCons developer, since he might 
have some comments.

When building Sage 4.1.1.alpha0 on my home machine, which does not have 
the Sun Studio Compiler suite installed, the Sage package containing the 
  'modified Sage library' builds ok. (I eventually get failures at ecl, 
but that is another issue).

On the machine 't2' the 'modified Sage library' fails. For some reason, 
despite gcc having been used to compile the C files, Sun's 
/opt/SUNWspro/bin/CC gets used for the C++ files. The Sun compiler is 
unhappy about the C++ code and exits with an error. (PolyBoRi had the 
same issue, but Alexander Dreyer fixed that)

However, that aside, the call to Sun's compiler is mixing up GNU and Sun 
flags, which they are I believe being inherited from SCons. Perhaps 
SCons is giving the wrong flags, or perhaps somewhere in the Sage code 
some GNU flags are added. But either way, the result is wrong.

/opt/SUNWspro/bin/CC -o src/so_ZZ_pylong.o -c -KPIC -fPIC 
-I/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/include 
-I/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/include/python2.6 
-I/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/include/NTL -Iinclude 
src/ZZ_pylong.cpp
CC: Warning: Option -fPIC passed to ld, if ld is invoked, ignored otherwise
"src/ZZ_pylong.cpp", line 47: Error: "ZZ_set_pylong(NTL::ZZ&, _object*)" 
is expected to return a value.
1 Error(s) detected.


Note -KPIC is an acceptable flag to Sun's compiler, but -fPIC is not. 
(The converse is true with gcc).

I've created this as bug id http://sagetrac.org/sage_trac/ticket/6595

Dave


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: 4.1.1.alpha0 Installation just 'dying' for no known reason

2009-07-23 Thread Dr. David Kirkby

Minh Nguyen wrote:
> Hi David,
> 
> On Thu, Jul 23, 2009 at 4:54 PM, Dr. David
> Kirkby wrote:
> 
> 
> 
>> Minh,
>> your build on t2 has stopped with:
>>
>> sage: An error occurred while installing polybori-0.5rc.p8
>>
>> You appear to have forgot to install the .p9 version.
>>
>> http://sage.math.washington.edu/home/kirkby/Solaris-fixes/polybori-0.5rc.p9-Second-try/polybori-0.5rc.p9.spkg
> 
> I've started building the PolyBori SPKG up at
> 
> http://sage.math.washington.edu/home/mvngu/patch/polybori-0.5rc.p9.spkg
> 
> on t2. I was too immersed in merging tickets in the last couple of
> hours :-) Thank you very much for your reminder. Let's wait and see if
> polybori-0.5rc.p9.spkg builds OK on t2.
> 
> 
>> Note that despite singular-3-1-0-2-20090620 appearing to install, it
>> will not actually install properly on t2, as it can't find install-sh,
>> so some of the files don't get copied.
>>
>> http://sagetrac.org/sage_trac/ticket/6563
>> http://sage.math.washington.edu/home/kirkby/Solaris-fixes/singular-3-1-0-2-20090620.p0/singular-3-1-0-2-20090620.p0.spkg
> 
> Once PolyBori finishes compiling, I'll start compiling
> singular-3-1-0-2-20090620.p0.spkg. By the way, I have checked in all
> changes in your name and have uploaded the updated SPKG to
> 
> http://sage.math.washington.edu/home/mvngu/patch/singular-3-1-0-2-20090620.p0.spkg
> 
> 
>> Ticket http://sagetrac.org/sage_trac/ticket/6558
>> http://sage.math.washington.edu/home/mvngu/patch/atlas-3.8.3.p6.spkg
>> should be easy to review, as its only a change to a single line.
> 
> I'll start building that once PolyBori and Singular finishes.
> 

I think you will finally bomb out at the 'modified sage files' in c_lib, 
which appears to be a bug that only shows up when the Sun C++ compiler 
is present. (Just like the second of the two Solaris polybori bugs).

I have a hacked version of SCons which would fix that, by making SCons 
unaware of /opt/SUNWspro/bin/, but that is not really the answer. We 
need to sort out why some Sage packages are using a mix of GNU and Sun 
compilers. It might be a fault in SCons, or it might not be (to state 
the obvious I guess!!)

Steven Knight, one of the SCons developers, now has an account on t2 and 
intends adding 't2' to his SCons build farm, so any change he commits to 
CVS will be tested on t2. This should hopefully improve the Solaris 
support of SCons. But for now, I think you build will fail there.




--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: 4.1.1.alpha0 Installation just 'dying' for no known reason

2009-07-23 Thread Minh Nguyen

On Thu, Jul 23, 2009 at 5:19 PM, Minh Nguyen wrote:
> Hi David,
>
> On Thu, Jul 23, 2009 at 4:54 PM, Dr. David
> Kirkby wrote:
>
> 
>
>> Minh,
>> your build on t2 has stopped with:
>>
>> sage: An error occurred while installing polybori-0.5rc.p8
>>
>> You appear to have forgot to install the .p9 version.
>>
>> http://sage.math.washington.edu/home/kirkby/Solaris-fixes/polybori-0.5rc.p9-Second-try/polybori-0.5rc.p9.spkg
>
> I've started building the PolyBori SPKG up at
>
> http://sage.math.washington.edu/home/mvngu/patch/polybori-0.5rc.p9.spkg
>
> on t2. I was too immersed in merging tickets in the last couple of
> hours :-) Thank you very much for your reminder. Let's wait and see if
> polybori-0.5rc.p9.spkg builds OK on t2.

That PolyBori SPKG successfully compiles! To paraphrase someone, it's
such a shock when things just work.

-- 
Regards
Minh Van Nguyen

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Should we check files ARE installed, not just hope they are installed?

2009-07-23 Thread Dr. David Kirkby

I've noticed a couple of issues on Solaris, where it appears packages 
have been installed properly (the $SAGE_HOME/spkg/installed/foobar is 
created), but this has not actually happened.

On one occasion 'cp -a' was called, which failed to copy files to 
$SAGE_HOME/local/include, as '-a' is not an option on Solaris to the cp 
command. Sun's 'cp' reported this as an error, but this did not cause 
the 'make' to stop.

On another occasion, singular fails to install files with 'install-sh' 
as it could not find install-sh. This is despite there being about 15 
copies of install-sh in the singular distribution!!!

I think it is only luck that it worked on linux, as the path given in 
singular is broken.

It would be a good idea when creating new .spkg files that one actually 
checks that at least a subset of the files that are supposed to be 
installed in $SAGE_HOME/local, actually are installed - preferably all 
of them if possible.

Comments?

Dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: 4.1.1.alpha0 Installation just 'dying' for no known reason

2009-07-23 Thread Dr. David Kirkby

Minh Nguyen wrote:
> On Thu, Jul 23, 2009 at 5:19 PM, Minh Nguyen wrote:
>> Hi David,
>>
>> On Thu, Jul 23, 2009 at 4:54 PM, Dr. David
>> Kirkby wrote:
>>
>> 
>>
>>> Minh,
>>> your build on t2 has stopped with:
>>>
>>> sage: An error occurred while installing polybori-0.5rc.p8
>>>
>>> You appear to have forgot to install the .p9 version.
>>>
>>> http://sage.math.washington.edu/home/kirkby/Solaris-fixes/polybori-0.5rc.p9-Second-try/polybori-0.5rc.p9.spkg
>> I've started building the PolyBori SPKG up at
>>
>> http://sage.math.washington.edu/home/mvngu/patch/polybori-0.5rc.p9.spkg
>>
>> on t2. I was too immersed in merging tickets in the last couple of
>> hours :-) Thank you very much for your reminder. Let's wait and see if
>> polybori-0.5rc.p9.spkg builds OK on t2.
> 
> That PolyBori SPKG successfully compiles! To paraphrase someone, it's
> such a shock when things just work.
> 

Good. You can thank Alexander Dreyer, as he changed some files to make 
that work. I only fixed the linker flags.

We seem to have exactly the same issues in sage-4.1.1.alpha0.spkg, as 
that is mixing up Sun and GNU flags when Sun's compiler is present, but 
works if Sun's compiler is not present.

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Should we check files ARE installed, not just hope they are installed?

2009-07-23 Thread William Stein

On Thu, Jul 23, 2009 at 1:22 AM, Dr. David
Kirkby wrote:
>
> I've noticed a couple of issues on Solaris, where it appears packages
> have been installed properly (the $SAGE_HOME/spkg/installed/foobar is
> created), but this has not actually happened.
>
> On one occasion 'cp -a' was called, which failed to copy files to
> $SAGE_HOME/local/include, as '-a' is not an option on Solaris to the cp
> command. Sun's 'cp' reported this as an error, but this did not cause
> the 'make' to stop.

After every single command in spkg-install one *must* check the error
return value.  That's why there is code like the following all over in
them:

if [ $? -ne 0 ]; then
echo "blah went wrong"
exit 1
fi

Anywhere such code doesn't happen is a bug.

> On another occasion, singular fails to install files with 'install-sh'
> as it could not find install-sh. This is despite there being about 15
> copies of install-sh in the singular distribution!!!
>
> I think it is only luck that it worked on linux, as the path given in
> singular is broken.
>
> It would be a good idea when creating new .spkg files that one actually
> checks that at least a subset of the files that are supposed to be
> installed in $SAGE_HOME/local, actually are installed - preferably all
> of them if possible.
>
> Comments?

That won't necessarily "prove" anything, since e.g., on doing an
upgrade the files might appear to be installed, but in fact old
versions are installed.

William

>
> Dave
>
> >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: pointsize and thickness in list_plot

2009-07-23 Thread Robert Bradshaw

On Jul 22, 2009, at 2:47 PM, William Stein wrote:

>
> On Wed, Jul 22, 2009 at 11:49 AM, Robert
> Bradshaw wrote:
>>
>> On Jul 22, 2009, at 11:24 AM, William Stein wrote:
>>
>>> On Wed, Jul 22, 2009 at 11:19 AM, Ethan Van
>>> Andel wrote:

 In list_plot there's some confusion with the pointsize and  
 thickness
 keyword arguments.

 These 2 commands run just fine.
 list_plot([(0,0),(1,1)],thickness = 20,plotjoined = true)
 list_plot([(0,0),(1,1)],pointsize = 20,plotjoined = false)

 This one runs but ignores thickness and gives you a warning saying
 that it is ignoring thickness.
 list_plot([(0,0),(1,1)],thickness = 20,plotjoined = false)

 This one doesn't run at all but gives you an invalid option error.

 This behavior is needlessly finnicky, especially when writing
 functions that call list_plot with user supplied parameters. For
 example, this method would fail half of the time.

 def foo(size,joined):
return list_plot(mydata,pointsize = size, plotjoined = joined)

 My first thought for a fix was to make the arguments  
 interchangable,
 ie thickness = 5 and pointsize = 5 would do the same thing in both
 joined and discrete plots. However, they don't actually behave the
 same. For example, the line drawn with thickness = 20 is much  
 thicker
 than a point with pointsize = 20. Therefore, if they were to be
 merged
 in some way what would be the best way to go about it?
>>>
>>> I have always found the value of pointsize to be very mysterious.  I
>>> wonder if we
>>> could make it so pointsize=20 and thickness=20 are the same.  This
>>> would of course
>>> break all existing use of pointsize, but at least it would make  
>>> sense.
>>>
>>> I have heard many people chuckle when wondering what the pointsize
>>> units are.
>>
>> +1 for consistency. However, shouldn't it be able to specify both
>> (and have it draw a line with (possibly larger) points?
>
> Ooooh, that's a good idea.  Are you saying that if both options are
> given, then the large is always taken?  I like that.

Oh, I was thinking of pointsize meaning "size of the plotted points,"  
not "1/72 inch measurment."

- Robert


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: 4.1.1.alpha0 Installation just 'dying' for no known reason

2009-07-23 Thread Minh Nguyen

On Thu, Jul 23, 2009 at 5:19 PM, Minh Nguyen wrote:



>> Note that despite singular-3-1-0-2-20090620 appearing to install, it
>> will not actually install properly on t2, as it can't find install-sh,
>> so some of the files don't get copied.
>>
>> http://sagetrac.org/sage_trac/ticket/6563
>> http://sage.math.washington.edu/home/kirkby/Solaris-fixes/singular-3-1-0-2-20090620.p0/singular-3-1-0-2-20090620.p0.spkg

That Singular SPKG successfully compiles! Now onto ATLAS.

-- 
Regards
Minh Van Nguyen

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Should we check files ARE installed, not just hope they are installed?

2009-07-23 Thread Dr. David Kirkby

William Stein wrote:
> On Thu, Jul 23, 2009 at 1:22 AM, Dr. David
> Kirkby wrote:
>> I've noticed a couple of issues on Solaris, where it appears packages
>> have been installed properly (the $SAGE_HOME/spkg/installed/foobar is
>> created), but this has not actually happened.
>>
>> On one occasion 'cp -a' was called, which failed to copy files to
>> $SAGE_HOME/local/include, as '-a' is not an option on Solaris to the cp
>> command. Sun's 'cp' reported this as an error, but this did not cause
>> the 'make' to stop.
> 
> After every single command in spkg-install one *must* check the error
> return value.  That's why there is code like the following all over in
> them:
> 
> if [ $? -ne 0 ]; then
> echo "blah went wrong"
> exit 1
> fi
> 
> Anywhere such code doesn't happen is a bug.

Well, there are a lot of bugs then, as a lot of code I see does not 
check every command. Checking at the end does not work.

I just looked at one random package I've never looked at before - 
(numpy-1.3.0.p1]

This contains:

cp ../patches/gnu.py numpy/distutils/fcompiler/gnu.py
cp ../patches/__init__.py  numpy/distutils/fcompiler/__init__.py

There are no checks. There is a check later:

if [ $? -ne 0 ]; then
 echo "Error building numpy."
 exit 1
fi

but that does not help, as the following script I wrote shows.

#!/bin/sh
# Try to do something which will fail as non-root

touch /this-should-fail
pwd
if [ $? -ne 0 ]; then
 echo "This script failed"
 exit 1
fi

the 'touch' command gives an error, but the message "This script failed" 
is *not* printed, as the 'pwd' command later succeeded. If I remove the 
'pwd' command, so it prints the error message.




Writing

if [ $? -ne 0 ]; then
 echo "This script failed"
 exit 1
fi


after every single command in spkg-install would make the code very long,



>> It would be a good idea when creating new .spkg files that one actually
>> checks that at least a subset of the files that are supposed to be
>> installed in $SAGE_HOME/local, actually are installed - preferably all
>> of them if possible.
>>
>> Comments?
> 
> That won't necessarily "prove" anything, since e.g., on doing an
> upgrade the files might appear to be installed, but in fact old
> versions are installed.
> 
> William


True, but it might go some way. Perhaps modification times could be used 
in some way.

I don't claim to know a complete foolproof solution (fools are very 
resourceful), but it's clear that there are things going wrong which are 
not being noticed. With a log file of 20 MB or more, its not easy for a 
human to look for the errors.


In Solaris, any time a package is installed with the pkgadd command, a 
record is kept of the checksum of every file, the permissions of the 
file so it is possible to determine if something has changed. I don't 
know if it's practical to do similar in Sage.

It's very clear to me not every error in Sage is being caught during the 
installation.

dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Should we check files ARE installed, not just hope they are installed?

2009-07-23 Thread William Stein

On Thu, Jul 23, 2009 at 2:18 AM, Dr. David
Kirkby wrote:
>
> William Stein wrote:
>> On Thu, Jul 23, 2009 at 1:22 AM, Dr. David
>> Kirkby wrote:
>>> I've noticed a couple of issues on Solaris, where it appears packages
>>> have been installed properly (the $SAGE_HOME/spkg/installed/foobar is
>>> created), but this has not actually happened.
>>>
>>> On one occasion 'cp -a' was called, which failed to copy files to
>>> $SAGE_HOME/local/include, as '-a' is not an option on Solaris to the cp
>>> command. Sun's 'cp' reported this as an error, but this did not cause
>>> the 'make' to stop.
>>
>> After every single command in spkg-install one *must* check the error
>> return value.  That's why there is code like the following all over in
>> them:
>>
>> if [ $? -ne 0 ]; then
>>     echo "blah went wrong"
>>     exit 1
>> fi
>>
>> Anywhere such code doesn't happen is a bug.
>
> Well, there are a lot of bugs then, as a lot of code I see does not
> check every command. Checking at the end does not work.
>
> I just looked at one random package I've never looked at before -
> (numpy-1.3.0.p1]
>
> This contains:
>
> cp ../patches/gnu.py numpy/distutils/fcompiler/gnu.py
> cp ../patches/__init__.py  numpy/distutils/fcompiler/__init__.py
>
> There are no checks. There is a check later:
>
> if [ $? -ne 0 ]; then
>     echo "Error building numpy."
>     exit 1
> fi
>
> but that does not help, as the following script I wrote shows.
>
> #!/bin/sh
> # Try to do something which will fail as non-root
>
> touch /this-should-fail
> pwd
> if [ $? -ne 0 ]; then
>     echo "This script failed"
>     exit 1
> fi
>
> the 'touch' command gives an error, but the message "This script failed"
> is *not* printed, as the 'pwd' command later succeeded. If I remove the
> 'pwd' command, so it prints the error message.
>
>
>
>
> Writing
>
> if [ $? -ne 0 ]; then
>     echo "This script failed"
>     exit 1
> fi
>
>
> after every single command in spkg-install would make the code very long,
>

Nonetheless, we should be checking the error code after every line
executes, one way or another.  Is there a way to automatically do this
in bash?


>
>
>>> It would be a good idea when creating new .spkg files that one actually
>>> checks that at least a subset of the files that are supposed to be
>>> installed in $SAGE_HOME/local, actually are installed - preferably all
>>> of them if possible.
>>>
>>> Comments?
>>
>> That won't necessarily "prove" anything, since e.g., on doing an
>> upgrade the files might appear to be installed, but in fact old
>> versions are installed.
>>
>> William
>
>
> True, but it might go some way. Perhaps modification times could be used
> in some way.
>
> I don't claim to know a complete foolproof solution (fools are very
> resourceful), but it's clear that there are things going wrong which are
> not being noticed. With a log file of 20 MB or more, its not easy for a
> human to look for the errors.
>
>
> In Solaris, any time a package is installed with the pkgadd command, a
> record is kept of the checksum of every file, the permissions of the
> file so it is possible to determine if something has changed. I don't
> know if it's practical to do similar in Sage.

It certainly is.  This might make the Sage package management system
"too complicated" though.  Right now it is still very simple.

> It's very clear to me not every error in Sage is being caught during the
> installation.

Fixes very welcome.

>
> dave
>
> >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: 4.1.1.alpha0 Installation just 'dying' for no known reason

2009-07-23 Thread Dr. David Kirkby

Minh Nguyen wrote:
> On Thu, Jul 23, 2009 at 5:19 PM, Minh Nguyen wrote:
> 
> 
> 
>>> Note that despite singular-3-1-0-2-20090620 appearing to install, it
>>> will not actually install properly on t2, as it can't find install-sh,
>>> so some of the files don't get copied.
>>>
>>> http://sagetrac.org/sage_trac/ticket/6563
>>> http://sage.math.washington.edu/home/kirkby/Solaris-fixes/singular-3-1-0-2-20090620.p0/singular-3-1-0-2-20090620.p0.spkg
> 
> That Singular SPKG successfully compiles! 

That patch http://sagetrac.org/sage_trac/ticket/6563

fixes the problem, but perhaps in a non-ideal way, as it adds install-sh 
to the top level directory. (There are already 15 or so copies of that 
file in the singular distribution.)

The failure to find install-sh when there are about 15 copies of it is 
probably a bug in autoconf or singular's build system.

The problem I have is that if ever problem noticed on Solaris was fully 
investigated as well as I'd like to do, progress would drop to a crawl. 
  It seems to me that adding install-sh in the top level directory will 
not break anything and will allow singular to install properly.

> Now onto ATLAS.

I won't expect to hear from you for another 8 hours or so then!

I'm trying to add support for the later processors in ATLAS's code. Then 
hopefully I can reduce the time it takes to install, once I have the 
tuning data for the T2+ processor and I have ATLAS understanding what it 
is. Currently it checks for various UltraSPARC CPUs, but the T2+ is not 
one of them.

dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Should we check files ARE installed, not just hope they are installed?

2009-07-23 Thread Burcin Erocal

On Thu, 23 Jul 2009 02:25:26 -0700
William Stein  wrote:

> 
> On Thu, Jul 23, 2009 at 2:18 AM, Dr. David
> Kirkby wrote:
> >
> > after every single command in spkg-install would make the code very
> > long,
> >
> 
> Nonetheless, we should be checking the error code after every line
> executes, one way or another.  Is there a way to automatically do this
> in bash?

"set -e" should do it.

Google brings up this page, besides lots of others:

http://www.davidpashley.com/articles/writing-robust-shell-scripts.html


Cheers,
Burcin

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Should we check files ARE installed, not just hope they are installed?

2009-07-23 Thread Dr. David Kirkby

William Stein wrote:
> On Thu, Jul 23, 2009 at 2:18 AM, Dr. David
> Kirkby wrote:
>> William Stein wrote:
>>> On Thu, Jul 23, 2009 at 1:22 AM, Dr. David
>>> Kirkby wrote:
 I've noticed a couple of issues on Solaris, where it appears packages
 have been installed properly (the $SAGE_HOME/spkg/installed/foobar is
 created), but this has not actually happened.

 On one occasion 'cp -a' was called, which failed to copy files to
 $SAGE_HOME/local/include, as '-a' is not an option on Solaris to the cp
 command. Sun's 'cp' reported this as an error, but this did not cause
 the 'make' to stop.
>>> After every single command in spkg-install one *must* check the error
>>> return value.  That's why there is code like the following all over in
>>> them:
>>>
>>> if [ $? -ne 0 ]; then
>>> echo "blah went wrong"
>>> exit 1
>>> fi
>>>
>>> Anywhere such code doesn't happen is a bug.
>> Well, there are a lot of bugs then, as a lot of code I see does not
>> check every command. Checking at the end does not work.
>>
>> I just looked at one random package I've never looked at before -
>> (numpy-1.3.0.p1]
>>
>> This contains:
>>
>> cp ../patches/gnu.py numpy/distutils/fcompiler/gnu.py
>> cp ../patches/__init__.py  numpy/distutils/fcompiler/__init__.py
>>
>> There are no checks. There is a check later:
>>
>> if [ $? -ne 0 ]; then
>> echo "Error building numpy."
>> exit 1
>> fi
>>
>> but that does not help, as the following script I wrote shows.
>>
>> #!/bin/sh
>> # Try to do something which will fail as non-root
>>
>> touch /this-should-fail
>> pwd
>> if [ $? -ne 0 ]; then
>> echo "This script failed"
>> exit 1
>> fi
>>
>> the 'touch' command gives an error, but the message "This script failed"
>> is *not* printed, as the 'pwd' command later succeeded. If I remove the
>> 'pwd' command, so it prints the error message.
>>
>>
>>
>>
>> Writing
>>
>> if [ $? -ne 0 ]; then
>> echo "This script failed"
>> exit 1
>> fi
>>
>>
>> after every single command in spkg-install would make the code very long,
>>
> 
> Nonetheless, we should be checking the error code after every line
> executes, one way or another.  Is there a way to automatically do this
> in bash?

I'm not aware of one, but I'll ask on comp.unix.shell - that is my 
favorite place to ask for this sort of information.

Even if you solve it in spkg-install, it still leaves all the makefiles 
that are used in packages - it is clear to me they don't check that 
their actions have succeeded. If the did, things like a missing 
'install-sh' would cause it to exit, rather than continue and exit with 
an exit code of 0.

dave



--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Should we check files ARE installed, not just hope they are installed?

2009-07-23 Thread William Stein

On Thu, Jul 23, 2009 at 2:37 AM, Dr. David
Kirkby wrote:
>
> William Stein wrote:
>> On Thu, Jul 23, 2009 at 2:18 AM, Dr. David
>> Kirkby wrote:
>>> William Stein wrote:
 On Thu, Jul 23, 2009 at 1:22 AM, Dr. David
 Kirkby wrote:
> I've noticed a couple of issues on Solaris, where it appears packages
> have been installed properly (the $SAGE_HOME/spkg/installed/foobar is
> created), but this has not actually happened.
>
> On one occasion 'cp -a' was called, which failed to copy files to
> $SAGE_HOME/local/include, as '-a' is not an option on Solaris to the cp
> command. Sun's 'cp' reported this as an error, but this did not cause
> the 'make' to stop.
 After every single command in spkg-install one *must* check the error
 return value.  That's why there is code like the following all over in
 them:

 if [ $? -ne 0 ]; then
     echo "blah went wrong"
     exit 1
 fi

 Anywhere such code doesn't happen is a bug.
>>> Well, there are a lot of bugs then, as a lot of code I see does not
>>> check every command. Checking at the end does not work.
>>>
>>> I just looked at one random package I've never looked at before -
>>> (numpy-1.3.0.p1]
>>>
>>> This contains:
>>>
>>> cp ../patches/gnu.py numpy/distutils/fcompiler/gnu.py
>>> cp ../patches/__init__.py  numpy/distutils/fcompiler/__init__.py
>>>
>>> There are no checks. There is a check later:
>>>
>>> if [ $? -ne 0 ]; then
>>>     echo "Error building numpy."
>>>     exit 1
>>> fi
>>>
>>> but that does not help, as the following script I wrote shows.
>>>
>>> #!/bin/sh
>>> # Try to do something which will fail as non-root
>>>
>>> touch /this-should-fail
>>> pwd
>>> if [ $? -ne 0 ]; then
>>>     echo "This script failed"
>>>     exit 1
>>> fi
>>>
>>> the 'touch' command gives an error, but the message "This script failed"
>>> is *not* printed, as the 'pwd' command later succeeded. If I remove the
>>> 'pwd' command, so it prints the error message.
>>>
>>>
>>>
>>>
>>> Writing
>>>
>>> if [ $? -ne 0 ]; then
>>>     echo "This script failed"
>>>     exit 1
>>> fi
>>>
>>>
>>> after every single command in spkg-install would make the code very long,
>>>
>>
>> Nonetheless, we should be checking the error code after every line
>> executes, one way or another.  Is there a way to automatically do this
>> in bash?
>
> I'm not aware of one, but I'll ask on comp.unix.shell - that is my
> favorite place to ask for this sort of information.
>
> Even if you solve it in spkg-install, it still leaves all the makefiles
> that are used in packages - it is clear to me they don't check that
> their actions have succeeded. If the did, things like a missing
> 'install-sh' would cause it to exit, rather than continue and exit with
> an exit code of 0.
>
> dave

Fortunately you're not right.  If an error is raised by any command in
a makefile, then the make program terminates with an error and exit
code.  As a little test, try this make file:

wst...@boxen:~/tmp$ more makefile
all:
ls /
touch /x
echo "hello"


---

Burcin -- bravo, using "set -e" is a great idea.  This is now trac #6598:

http://trac.sagemath.org/sage_trac/ticket/6598

William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Should we check files ARE installed, not just hope they are installed?

2009-07-23 Thread Dr. David Kirkby

William Stein wrote:
> On Thu, Jul 23, 2009 at 2:37 AM, Dr. David
> Kirkby wrote:
>> William Stein wrote:
>>> On Thu, Jul 23, 2009 at 2:18 AM, Dr. David
>>> Kirkby wrote:
 William Stein wrote:
> On Thu, Jul 23, 2009 at 1:22 AM, Dr. David
> Kirkby wrote:
>> I've noticed a couple of issues on Solaris, where it appears packages
>> have been installed properly (the $SAGE_HOME/spkg/installed/foobar is
>> created), but this has not actually happened.
>>
>> On one occasion 'cp -a' was called, which failed to copy files to
>> $SAGE_HOME/local/include, as '-a' is not an option on Solaris to the cp
>> command. Sun's 'cp' reported this as an error, but this did not cause
>> the 'make' to stop.
> After every single command in spkg-install one *must* check the error
> return value.  That's why there is code like the following all over in
> them:
>
> if [ $? -ne 0 ]; then
> echo "blah went wrong"
> exit 1
> fi
>
> Anywhere such code doesn't happen is a bug.
 Well, there are a lot of bugs then, as a lot of code I see does not
 check every command. Checking at the end does not work.

 I just looked at one random package I've never looked at before -
 (numpy-1.3.0.p1]

 This contains:

 cp ../patches/gnu.py numpy/distutils/fcompiler/gnu.py
 cp ../patches/__init__.py  numpy/distutils/fcompiler/__init__.py

 There are no checks. There is a check later:

 if [ $? -ne 0 ]; then
 echo "Error building numpy."
 exit 1
 fi

 but that does not help, as the following script I wrote shows.

 #!/bin/sh
 # Try to do something which will fail as non-root

 touch /this-should-fail
 pwd
 if [ $? -ne 0 ]; then
 echo "This script failed"
 exit 1
 fi

 the 'touch' command gives an error, but the message "This script failed"
 is *not* printed, as the 'pwd' command later succeeded. If I remove the
 'pwd' command, so it prints the error message.




 Writing

 if [ $? -ne 0 ]; then
 echo "This script failed"
 exit 1
 fi


 after every single command in spkg-install would make the code very long,

>>> Nonetheless, we should be checking the error code after every line
>>> executes, one way or another.  Is there a way to automatically do this
>>> in bash?
>> I'm not aware of one, but I'll ask on comp.unix.shell - that is my
>> favorite place to ask for this sort of information.
>>
>> Even if you solve it in spkg-install, it still leaves all the makefiles
>> that are used in packages - it is clear to me they don't check that
>> their actions have succeeded. If the did, things like a missing
>> 'install-sh' would cause it to exit, rather than continue and exit with
>> an exit code of 0.
>>
>> dave
> 
> Fortunately you're not right.  If an error is raised by any command in
> a makefile, then the make program terminates with an error and exit
> code.  As a little test, try this make file:

> wst...@boxen:~/tmp$ more makefile
> all:
>   ls /
>   touch /x
>   echo "hello"
> 
Good, but the fact remains some installations (like singular's) are 
breaking and not reporting the error. I assume the 'install-sh' was 
called from a makefile, but perhaps not. Either way, the is a problem here.

> Burcin -- bravo, using "set -e" is a great idea.  This is now trac #6598:
> 
> http://trac.sagemath.org/sage_trac/ticket/6598
> 
> William

That certainly looks useful. Next time I create a package, I'll try that 
out and implement it if it looks to be ok.

dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: A Haskell-Python bridge? GHCi and JS notebook interfaces?

2009-07-23 Thread Tim Dumol

It's a great idea -- and it seems feasible. One way to set up an
interface to GHCi would be to just send the contents of the cell to
GHCi -- taking care to put function definitions and the like in one
line, and pipe the output -- but it may set some constraints to the
input -- "let" before definitions, difficulty giving types, etc. It
may or may not be possible to automatically fix these problems.

Another approach would be to send the contents to GHC, compile it, and
run it -- but we'll have to keep track of the cells that have been
evaluted containing Haskell code, and concatenate them before sending
the stuff to GHC. We'll have to make sure that only one ``main``
function exists -- this should be pretty easy -- just remove all
``main`` functions in other cells, and make the last line in the cell
the ``main`` function if none exists.

I have little polyglot experience -- I'll leave that to others.

On Jul 22, 12:51 am, Pat LeSmithe  wrote:
> A very cool, possibly very difficult(?), project would bridge Python and
> Haskell, or to be concrete, the standard Python interpreter and the
> interactive version of the Glasgow Haskell Compiler:
>
> http://www.haskell.org/ghc/
>
> The Haskell community actually has a Trac server for rating their Google
> Summer of Code proposals:
>
> http://hackage.haskell.org/trac/summer-of-code/report/1
>
> Should Sage have such a ready list, too?
>
> Returning to the HaPy bridge...  I found #1547
>
> http://hackage.haskell.org/trac/summer-of-code/ticket/1547
>
> and MissingPy
>
> http://hackage.haskell.org/package/MissingPy
>
> which seems to go in just one direction (calling Python code from Haskell).
>
> I suppose an easier first step would be to set up a notebook interface
> to GHCi --- a notebook monad (I think).  Can some Haskell experts offer
> Sage advice?  I speculate that a number of mathematical algorithms could
> benefit from the sophisticated program transformations available in
> purely functional languages.
>
> How about a *JavaScript* analogue to the increasingly common Python
> notebook?  One challenge here is to wrap the browser's native JS engine
> so it's possible to restart the notebook cleanly without reloading the
> page, yet retain the engine's power.  We could load various libraries,
> for 2D / 3D graphics and widgets, on demand.  One such library might
> transparently wrap a remote Python shell...
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Is new symbolic derivative really worth the efforts?

2009-07-23 Thread Golam Mortuza Hossain

Hi Burcin,

I am sorry if I have hurt you by my earlier statements in this thread.

Best,
Golam

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Catalan Numbers

2009-07-23 Thread Marshall Hampton

You could make the ultimate "proof-without-words" submission!

I think this is cool, and although I am not a combinatorics person at
all it seems reasonable as an addition to sage.  I think it could
underpin a really fantastic @interact.

-Marshall

On Jul 23, 1:20 am, Tom Boothby  wrote:
> Richard Stanley currently lists 172 combinatorial interpretations of
> the Catalan numbers.  I've been doing some research on Coxeter groups
> this summer, and we recently found that a class of permutations in S_n
> which are counted by the Catalan numbers.  Turns out, the permutations
> are just the 321-avoiding permutations.  A research partner, Matt
> Macauley noted that when one finds objects counted by the Catalan
> numbers, that it can be interesting to see what other objects they
> might correspond to.
>
> In particular, we've got a subset of the 321-avoiding permutations
> that we want to investigate.  If there's a nice bijection between
> 321-avoiding permutations, and say, Dyck paths, we'd like to look at
> the Dyck paths which correspond to this special subset.  So, I've
> started going down Stanley's list and hacking up as many bijections as
> I can devise between the objects he's listed.  At the present, I can
> generate the following given, say, a Dyck word (one can generate these
> in Sage), and draw nice pictures of them all.  Further, almost all of
> them are strongly connected -- given almost any object below, I can
> create any of the others. (though my constructions are bijective, I
> haven't coded both ways for a couple of them)
>
> These reference Stanley's numbering scheme, see [1] and [2]
>
> (c) binary trees on n vertices
> (h) lattice paths from (0,0) to (n,n) below x=y
> (i) Dyck paths from (0,0) to (n,0) above x=0
> (o) non-crossing matchings of [2n]
> (r) valid strings of parentheses (description in text differs by '('
> <-> 1, ')' <-> -1)
> (ff) 231-avoiding permutations (hah -- but I don't have 321-avoiding
> permutations yet -- I found these by a lucky guess)
> (pp) non-crossing partitions of [n]
> (tt) non-crossing partitions of [2n+1] into n+1 parts with
> nonconsecutive entries
> (hhh) stacks of coins
> (z^4) non-nesting matchings of [2n]
>
> I'm mostly doing this for research and for pleasure, but since I'm
> doing the research with a few partners, the code is readable.  I'm
> wondering: is there sufficient interest for this to be added to Sage?
> If I manage to construct even a quarter of the bijections listed, it
> will be a rather large amount of code.  I'd like some input from the
> combinat people as to what sort of interface would be appropriate.
>
> Thanks,
>--tom
>
> Note: the attached is a sample image of my current constructions --
> the binary trees are particularly ugly, but they're drawn that way to
> make the bijection between (r) and (c) clear.  Also, the objects look
> much better when plotted on their own, but I couldn't figure out how
> to get a graphics_array to fix the aspect ratio for the individual
> images.
>
> [1]http://math.mit.edu/~rstan/ec/catalan.pdf
> [2]http://math.mit.edu/~rstan/ec/catadd.pdf
>
>  catalan.png
> 26KViewDownload
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: CoMarketing: Sage & Sun

2009-07-23 Thread Dan Drake
On Mon, 20 Jul 2009 at 05:31AM -0700, Jason Grout wrote:
> I don't have any marketing ideas at the moment beyond what has already 
> been mentioned.  However, I do have to say that if there was a 
> reasonably-priced, pre-configured sage notebook server box from Sun, it 
> would be *very* tempting (emphasis on the "reasonably-priced" above, 
> though :).
> 
> Such a box would be very tempting if:
> 
> * you could run multiple notebooks with proper security layers between 
> themselves and the system.
> * it was trivial to upgrade all of the notebooks or just some of them.
> * you could also do development on some of the notebooks.
> * all (or at least most) optional spkgs worked
> * it would be easy for IT to administer the server centrally (e.g., a 
> rack version, as well as a standalone box version)

Just this morning I was talking to my department head about possibly
setting up a "real" Sage server for our campus (i.e., something more
than a VM running on the computer in my office) and this sort of product
would be great. Right now you need some knowledgeable and tech-inclined
people and a department head who is very understanding and/or trusting;
with a "Sage in a box" machine, it would be easier to for people with
skeptical IT staff or department heads to get a nice server setup.

Dan

-- 
---  Dan Drake 
-  KAIST Department of Mathematical Sciences
---  http://mathsci.kaist.ac.kr/~drake


signature.asc
Description: Digital signature


[sage-devel] spkg dependencies + graph layouts

2009-07-23 Thread Pat LeSmithe


Partly out of curiosity, I've tried to make a graph of Sage's spkg
dependencies:

http://www.sagenb.org/home/pub/673/

Can anyone recommend settings for laying out this graph elegantly in
Sage?  I've also experimented a bit with NetworkX, but my ignorance here
is deep.

GraphViz, which happens to be installed on my machine, seems to do well,
but it would be great to be able to style the vertices and edges
natively.  For example, I could use one color for packages written
mostly in pure Python and others for Cython, C / C++, Fortran, and
JavaScript.  Styled edges might represent different Makefile commands in
a more general graph.

It would be cool if we could update the graph in real-time with
information about an ongoing build...


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Notebook translation tips

2009-07-23 Thread Dan Drake
On Wed, 22 Jul 2009 at 10:32PM -0700, William Stein wrote:
> On Wed, Jul 22, 2009 at 2:03 AM, Sergey Semerikov wrote:
> >
> > I tried to translate the interface of the notebook using gettext and
> > faced with the need to make several changes to the source code:
> 
> Thanks for working on this!!
> 
> (1) What is gettext?  I've never heard of it?

My (vastly incomplete) understanding is that gettext makes string
translations easy. You write your program so that instead of just
printing something, it calls a string-printing function. That function
knows what language should be used, so it looks up the right string and
prints that. It makes it easy for people to contribute translations; you
have a list of strings, probably in a "base" language (for us, that'd be
English) and it's easy for someone to get that list, translate
everything into some new language, and we just ship that along with our
code.

I would *love* to have better support for this.

Dan

-- 
---  Dan Drake 
-  KAIST Department of Mathematical Sciences
---  http://mathsci.kaist.ac.kr/~drake


signature.asc
Description: Digital signature


[sage-devel] Re: Catalan Numbers

2009-07-23 Thread Dan Drake
On Wed, 22 Jul 2009 at 11:20PM -0700, Tom Boothby wrote:
[...]
> I'm mostly doing this for research and for pleasure, but since I'm
> doing the research with a few partners, the code is readable.  I'm
> wondering: is there sufficient interest for this to be added to Sage?
> If I manage to construct even a quarter of the bijections listed, it
> will be a rather large amount of code.  I'd like some input from the
> combinat people as to what sort of interface would be appropriate.

I don't know about an interface, but I'd like to see this in Sage. I
work with Catalan stuff all the time.

Dan

-- 
---  Dan Drake 
-  KAIST Department of Mathematical Sciences
---  http://mathsci.kaist.ac.kr/~drake


signature.asc
Description: Digital signature


[sage-devel] Sage 4.1 succeeds on SuSE 10.1 (SLES/SLED 10)

2009-07-23 Thread Alexander Dreyer

For those, who like legacy systems:
Sage 4.1 builds on SuSE 10.1 (binary compatible to SuSE Enterprise 10)
32bit:
http://sage.math.washington.edu/home/dreyer/suse101/

Remark: gcc 4.1.2 from SLED 10 SP2 is necessary, as gcc 4.1.0 is quite
buggy.)

Regards,
  Alexander
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] New Riemann mapping package/patch

2009-07-23 Thread Ethan Van Andel

My project is nearing completion. It provides Riemann mapping
capabilities (http://en.wikipedia.org/wiki/Riemann_mapping_theorem).
it produces both numerical data on the map, and useful (and pretty)
graphs to show how it works. I also created a couple of interpolators
that allow you to interpolate a list of complex points as a parametric
curve, either as a polygon or with cubic splines. This makes it easier
for users to define the figures that they wish to map. The Riemann
Mappping stuff is about 700 lines with documentation, and the
interpolators about 100.

These are my questions:

Does this sound like the type if thing that should be included in
sage? If so, should I make it a package or patch?

I incorporated and repurposed a lot of Robert Bradshaw's complex_plot
code. How should I cite him in the copyright box at the top of the
file?

Thanks,

Ethan
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: New Riemann mapping package/patch

2009-07-23 Thread Minh Nguyen

Hi Ethan,

On Fri, Jul 24, 2009 at 12:19 AM, Ethan Van Andel wrote:
>
> My project is nearing completion. It provides Riemann mapping
> capabilities (http://en.wikipedia.org/wiki/Riemann_mapping_theorem).
> it produces both numerical data on the map, and useful (and pretty)
> graphs to show how it works. I also created a couple of interpolators
> that allow you to interpolate a list of complex points as a parametric
> curve, either as a polygon or with cubic splines. This makes it easier
> for users to define the figures that they wish to map. The Riemann
> Mappping stuff is about 700 lines with documentation, and the
> interpolators about 100.
>
> These are my questions:
>
> Does this sound like the type if thing that should be included in
> sage? If so, should I make it a package or patch?

Yes, absolutely. But make sure that you agree to license your work
under GPLv2+ or a compatible license. So if I understand you
correctly, your whole project is less than 1000 lines of code and
documentation combined. In that case, a patch is more appropriate than
a package. But you then need to figure out where to patch against.


> I incorporated and repurposed a lot of Robert Bradshaw's complex_plot
> code. How should I cite him in the copyright box at the top of the
> file?

You can cite Robert to the effect that your code is based upon or
portions of which are adapted from his complex_plot code.

-- 
Regards
Minh Van Nguyen

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: New Riemann mapping package/patch

2009-07-23 Thread Ethan Van Andel

> under GPLv2+ or a compatible license. So if I understand you
> correctly, your whole project is less than 1000 lines of code and
> documentation combined. In that case, a patch is more appropriate than
> a package. But you then need to figure out where to patch against.

Yeah, that was another thing I meant to ask. Where should I put this
stuff?

Ethan
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: New Riemann mapping package/patch

2009-07-23 Thread Minh Nguyen

Hi Ethan,

On Fri, Jul 24, 2009 at 12:40 AM, Ethan Van Andel wrote:
>
>> under GPLv2+ or a compatible license. So if I understand you
>> correctly, your whole project is less than 1000 lines of code and
>> documentation combined. In that case, a patch is more appropriate than
>> a package. But you then need to figure out where to patch against.
>
> Yeah, that was another thing I meant to ask. Where should I put this
> stuff?

The only place I can think of is under sage/calculus. But don't trust
me on this as I know next to nothing about your project or the maths
involved.

-- 
Regards
Minh Van Nguyen

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Patches for Linear Programming in SAGE - GLPK and COIN-OR

2009-07-23 Thread Nathann Cohen

Hello everybody !!!

I am sending a message here to get in touch with those who may be
interested in LP/MIP features in SAGE. I finally wrote a first version
of it, which uses GLPK by default and COIN-OR if installed ( you can
change the solver you want to use easily, though ). In the case you
would like to help a bit by reviewing the changes ( or more, as it
could take some time to get it all perfect ), you will find the
patches at these adresses :

SPKG : COIN-OR / CBC for Sage
http://trac.sagemath.org/sage_trac/ticket/6603

SPKG : GLPK for Sage
http://trac.sagemath.org/sage_trac/ticket/6602

Patch : numerical.mip Class
http://trac.sagemath.org/sage_trac/ticket/6502

Thank you all for your help ;-)

Nathann Cohen
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Is new symbolic derivative really worth the efforts?

2009-07-23 Thread Burcin Erocal

On Thu, 23 Jul 2009 11:25:35 +
Golam Mortuza Hossain  wrote:

> 
> Hi Burcin,
> 
> I am sorry if I have hurt you by my earlier statements in this thread.

As William said, no worries.

I am sorry if my message sounded personal. I was just trying to point
out that I don't agree with your proposal and William's +1 vote to
change the default behavior of symbolic derivatives. I didn't have time
to go over the e-mail again, and check/adjust the tone.

I am not opposed to having the unevaluated diff as an alternative
operator.

Cheers,
Burcin

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Sage 4.1 compilation problem

2009-07-23 Thread Ryan Hinton

I compiled Sage on two nearly identical machines at school.  One 
succeeded, the other failed building givaro (see make output below).

I did a quick Google search on the error message, and one author called 
this the "dangling extern "C" syndrome."  Sure enough, the givaro header 
 (see below) has an extern "C" section enclosing an include of 
gmp.h -- which #include's C++ libraries.  I thought I had a decent 
knowledge of C/C++, and I don't see how this could have *worked* on the 
other machine.  I'm using GCC 4.1.2 on both machines.

Any help or hints are appreciated.  Thanks!

- Ryan

-- make output --
g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../.. -DGMP_VERSION_3 
-I../../../src/kernel/memory -I../../../src/kernel/system 
-I/path/sage-4.1/local//include -fPIC -I/path/sage-4.1/local/include -MT 
gmp++_int_div.lo -MD -MP -MF .deps/gmp++_int_div.Tpo -c gmp++_int_div.C 
  -fPIC -DPIC -o .libs/gmp++_int_div.o
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/x86_64-redhat-linux/bits/c++locale.h:67:
 
error: template with C linkage
... (lots of similar errors)
make[5]: *** [gmp++_int_div.lo] Error 1
make[5]: Leaving directory 
`/path/sage-4.1/spkg/build/givaro-3.2.13rc2/src/src/kernel/gmp++
-- end make output --

Here is the source code that I think is causing the problem:

-- gmp++.h --
#ifdef __GIVARO_GMP_VERSION_3 

extern "C" { 

#endif 

 

#include "gmp.h" 

 

#ifdef __GIVARO_GMP_VERSION_3 

} 

#endif 

-- end gmp++.h snippet --

and then  has

-- gmp.h --
#if defined (__cplusplus) 

#include/* for std::istream, std::ostream, std::string */ 

#include  

#endif 

-- end gmp.h snippet --

My configuration:

-- shell --
$ g++ -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man 
--infodir=/usr/share/info --enable-shared --enable-threads=posix 
--enable-checking=release --with-system-zlib --enable-__cxa_atexit 
--disable-libunwind-exceptions --enable-libgcj-multifile 
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada 
--enable-java-awt=gtk --disable-dssi --enable-plugin 
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre 
--with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)

$ uname -srp
Linux 2.6.29-2 x86_64
-- end shell --

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: C graph backend

2009-07-23 Thread Robert Miller

Jason,

> Do you have a todo list of what needs to be done to get the C graph backend
> as the default backend?

Technically nothing -- if you switch all the default function
arguments from implementation='networkx' to implementation='c_graph',
all the doctests pass (I think you need sage-4.1.1.alpha0). This took
over a month of nonstop work-- I was in Europe too, so we're talking
frequent twelve hour days, no family...

> Also, I noticed that there is a huge difference between getting the in and
> out neighbors of a vertex in a digraph, and the incoming edges for sparse C
> graphs take 1.5 times as long as either the outgoing edges or networkx
> (either direction).

This is one of the reasons that they're not default now-- several
functions are still slower than NetworkX. First of all, in_neighbors
for SparseGraphs are their own issue (see #2):

1. The SparseGraph and DenseGraph datastructures themselves are
significantly faster than the corresponding backends:

sage: a=graphs.PathGraph(1000).to_directed().copy(implementation='c_graph')
sage: b=a._backend
sage: c=b._cg
sage: %timeit L = list(b.iterator_out_nbrs(30))
10 loops, best of 3: 5.67 µs per loop
sage: %timeit L = list(c.out_neighbors(30))
100 loops, best of 3: 1.47 µs per loop

This is because the current state of the backends are *working,* not *fast.*

2. SparseGraphs are by their nature directed -- this is part of the
data structure. Probably the best way to have fast in_neighbors
functions is to store two SparseGraphs, but this would double the run
time of every other operation. You reviewed the original SparseGraph
patch, so you probably understand why this is the case-- all edges
coming out of a vertex are stored together, but edges coming into a
given vertex could be all over the place.

3. If you (or anyone else interested in getting faster graphs in Sage)
wanted to put in some work to get things ready to switch over, one
thing that would be very useful is to grep through the
SparseGraphBackend and DenseGraphBackend for "iter": this is likely
the worst bottleneck, and should be the first to get fixed. Since
Cython doesn't yet support the "yield" statement, I had to use the
"iter" command to quickly get working code. What would be much better
would be to implement Cython classes just for iterating through the
different things that happen in backends. Even SparseGraphs and
DenseGraphs themselves could use some "yield/iter - love" -- I bet you
could get some significant speedups in those classes too.

I've made this last one a trac ticket, and I see this as the next big step:

http://trac.sagemath.org/sage_trac/ticket/6604

-- 
Robert L. Miller
http://www.rlmiller.org/

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: spkg dependencies + graph layouts

2009-07-23 Thread Robert Miller

> Can anyone recommend settings for laying out this graph elegantly in
> Sage?  I've also experimented a bit with NetworkX, but my ignorance here
> is deep.

Posets!

See:

http://www.sagenb.org/home/pub/674/


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: iGraph in SAGE?!

2009-07-23 Thread Robert Miller

Johannes,

I'm forwarding this to sage-devel, as there are probably a lot more
developers than just myself who are interested in this!

On Thu, Jul 23, 2009 at 7:51 AM, Johannes
Reichold wrote:
> Dear Robert,
>
> I am a once-in-a-while user of SAGE and just browsed through sage-devel,
> reading that you are currently implementing c_graphs.
> I don't know how far you have progressed already, but I just wanted to draw
> your attention to iGraph (http://igraph.sourceforge.net/index.html).
> "igraph is a free software package for creating and manipulating undirected
> and directed graphs. It includes implementations for classic graph theory
> problems like minimum spanning trees and network flow, and also implements
> algorithms for some recent network analysis methods, like community
> structure search."
> It also has Python bindings, which would probably make it very suitable for
> SAGE.
>
> Sorry for the noise if this is all known to you / unsuitable / too late.
>
> Best,
> Johannes
>
>



-- 
Robert L. Miller
http://www.rlmiller.org/

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: CoMarketing: Sage & Sun

2009-07-23 Thread rjf



Regarding Sage running on a server:  some of the components may be
sufficiently general as to pose hazards in a server environment.  For
example, Maxima can create and delete files, quickly fill up all
available memory, etc.  I would guess that other components are also
hazardous.  It seems to me that the only practical solution is to run
Sage in a virtual machine on the server, which may be costly. Is that
what is being proposed? Is that what UW Sage servers are doing?

Regarding Sage adoption by schools -- there is a large literature on
computer algebra and teaching.

The evidence I've seen at Berkeley is that the curriculum is already
"full".  Adding a section of  "computing with Sage" to (say) calculus,
prompts the response from instructors:  "what will we REMOVE from
calculus".
(I usually say "logarithmic derivatives" :) )

If there is an instructor who is excited by a computer program (could
be one of the M's) he/she can introduce it into the course in some
way, sometimes.  Evidence at Berkeley is that when that instructor is
not teaching the course, the computer stuff falls into disuse.
Students using Mathematica get it (essentially) free for their own
laptops at their dorm room.
Those that use it seem to be unconcerned about it being proprietary.
They are only occasionally concerned that it gets the answers wrong
sometimes.

While the enthusiastic teacher may think that Sage will enrich the
course and allow the instructor to demonstrate wonderful and
interesting things, and allow the students to explore new worlds and
go where no person has gone before,  the evidence I've seen published
is that (a) students don't learn anything more from course X +
computer lab  vs. course X;  (b) students view the computer enrichment
as something else to learn  -- additional material.
Also note that half the class is below average. Will using Sage help
weak students? Also for many students, math courses are an (unwelcome)
requirement. Will they change because of Sage?

Any instructor who has been asked, after a particularly beautifully
delivered lecture/demonstration, "Will this be on the final?"
may have to say,  oh, I guess not.  You won't be using a computer
during the final.

Of course there are some students who are wonderful, interested,
creative, energetic, clever, and they may love Sage, etc.
I think they should be provided great opportunities.


 If a student just doesn't understand (say)  what is a function, or
what is a group, will a computer program help?
..

If you haven't looked at the literature, I did some googling...
Here's one article with lots of references.

 Heid, M. Kathleen and Edwards, Michael Todd(2001)'Computer Algebra
Systems: Revolution or Retrofit for Today's
Mathematics Classrooms?',Theory Into Practice,40:2,128 — 136

URL: http://dx.doi.org/10.1207/s15430421tip4002_7

...

perhaps closer to the heart of Sage is

Using the Magma Computer Algebra System in Abstract Algebra Courses

JOHN CANNON and CATHERINE PLAYOUST

Journal of Symbolic Computation
Volume 23, Issues 5-6, May 1997, Pages 459-484

which I found particularly informative. I highly recommend reading it.
There are many juicy revelations.

Since you may not have access to a copy,  I  quote just 2 sentences
from that article,

"From earlier experiences in tertiary mathematics, many students felt
that it was
possible to pass mathematics courses with minimal attendance at
lectures and tutorials.
Approximately half of the students did a negligible amount of private
study during
the semester."

What I found particularly telling, is that the data they collected
showed the students really didn't want to do this computer stuff. And
from this, the authors took an enormous leap of faith to conclude that
therefore the programs should be improved.

Cheers
RJF






--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Solaris issue: Pari / modified sage library code

2009-07-23 Thread John Cremona

2009/7/22 Dr. David Kirkby :
>
> John Cremona wrote:
>> If by "this code" you mean paripriv.h then that belongs to pari, i.e.
>> is upstream.  But sage/ext/fast_callable.c will have been written by
>> someone who subscribes to this list, I hope!
>>
>> John
>
> But the build of pari works fine, including the lines in paripriv.h. If
> the code is commented out, pari will not build. Hence I personally don't
> feel happy to report this to the pari developers, as I don't understand
> why the code is implemented in the first place. The person(s) that wrote
> this code, would be in a much better position than me to make a good
> statement to the pair developers - if it is their fault at all, which I
> somewhat doubt myself.

I don't think I explained well what I meant.  Certainly, the pari code
is fine as it is.  But when that include file is included by another
file, it may be that some macros have been defined in that environment
which change the content of those 3 lines.

e.g. in line 258:
GEN  ZY_ZXY_resultant_all(GEN A, GEN B0, long *lambda, GEN *LPRS);

The macro cannot be GEN or A or B or lambda since they occur on other
lines which cause no trouble.  It is most unlikely to be the function
name!  But it could be LPRS.

I think that to debug this you would need to give the compile command
which caused the error:
gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall (etc etc)

and add the flag "-E" which means " Preprocess only; do not compile,
assemble or link", pipe the (long) output of that to a file and search
it for where paripric.h is included.  That might tell you whether the
file has been corrupted by macro definitions as I suspect.

If this works, then the next step will be to find out where the
offending macros are defined and then who wrote that code and then get
the macros changed...

John

>
> Dave
>
>>
>> 2009/7/22 Dr. David Kirkby :
>>> John Cremona wrote:
>>>
 Line 428 defines an enum struct which is only relevant for gp.
 The
 earlier two have no numeric constants that I can see but the function
 prototypes have variables in upper case, and it's possible that these
 are macros which are getting expanded into numbers.

 John
>>> Thank you John,
>>>
>>> I still don't feel happy about debugging this code, which I don't
>>> understand at all. Perhaps someone who has some idea what is is all
>>> supposed to be doing can look at it. I assume this is code which someone
>>> reading this list probably wrote, rather than code which is buggy and
>>> needs reporting to an upstream developer.
>>>
>>> Dave
>>>
 2009/7/22 Dr. David Kirkby :
> Pari build fine on Solaris now. However, many packages later, there is a
> failure when building the 'modified sage library code' which is related
> to the inclusion of the pari header file
>
> $SAGE_HOME/local/include/pari/paripriv.h
>
> There are according to gcc on Solaris a problem with this file. I see
> the exact same issue on t2 as I do on my home machine and William has
> said he has seen it on OpenSolaris too.
>
> gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall
> -Wstrict-prototypes -fPIC
> -I/export/home/drkirkby/sage/sage-4.1.1.alpha0/local//include
> -I/export/home/dr kirkby/sage/sage-4.1.1.alpha0/local//include/csage
> -I/export/home/drkirkby/sage/ sage-4.1.1.alpha0/devel//sage/sage/ext
> -I/export/home/drkirkby/sage/sage-4.1.1.a lpha0/local/include/python2.6
> -c sage/ext/fast_callable.c -o build/temp.solaris-
> 2.10-sun4u-2.6/sage/ext/fast_callable.o -w
> In file included from sage/ext/fast_callable.c:141:
> /export/home/drkirkby/sage/sage-4.1.1.alpha0/local//include/pari/paripriv.h:258:
>  error: expected ';', ',' or ')' before numeric constant
> /export/home/drkirkby/sage/sage-4.1.1.alpha0/local//include/pari/paripriv.h:259:
>  error: expected ';', ',' or ')' before numeric constant
> In file included from sage/ext/fast_callable.c:141:
> /export/home/drkirkby/sage/sage-4.1.1.alpha0/local//include/pari/paripriv.h:428:
>  error: expected identifier before numeric constant
> error: command 'gcc' failed with exit status 1
> sage: There was an error installing modified sage library code
> ERROR installing SAGE
>
> real    43m59.533s
> user    42m14.541s
> sys     1m30.477s
> sage: An error occurred while installing sage-4.1.1.alpha0
>
> Commenting out lines 258, 259 and 428 in the pari header file allows the
> "modified sage library code" to build, but it's probably not the right
> thing to do. Trying to build pari with those lines commented out fails,
> as pari does reference them.
>
> It's a bit difficult to report this to the pari developers, as their
> code works fine - it is the inclusion of one of their header files in
> the modified sage library which is causing the problem.
>
> The file that includes the header file is
> $SAGE_

[sage-devel] Re: iGraph in SAGE?!

2009-07-23 Thread William Stein

On Thu, Jul 23, 2009 at 9:19 AM, Robert Miller wrote:
>
> Johannes,
>
> I'm forwarding this to sage-devel, as there are probably a lot more
> developers than just myself who are interested in this!

I looked at it briefly, and noticed that it has an implementation of
two graph isomorphism testing algorithms, neither of which is McKay's
algorithm.  One algorithm is callled VF2.   I think found a paper

http://amalfi.dis.unina.it/people/vento/lavori/gbr01bm.pdf

that benchmarks various algorithms, and concludes that in many cases
VF2 is faster than McKay's, and in other cases McKay's is faster than
VF2.

"In particular, for randomly connected graphs, the Nauty algorithm is
the better if the
graphs are quite dense and/or of quite large size. For smaller and quite sparse
graphs, on the contrary, VF2 performs better.
On more regular graphs, i.e. on 2D meshes, VF2 is definitely the best
algorithm: in
this case the Nauty algorithm is even not able to find a solution for
graphs bigger
than few dozens of nodes. "

Anyway, I learned something.

 -- William

>
> On Thu, Jul 23, 2009 at 7:51 AM, Johannes
> Reichold wrote:
>> Dear Robert,
>>
>> I am a once-in-a-while user of SAGE and just browsed through sage-devel,
>> reading that you are currently implementing c_graphs.
>> I don't know how far you have progressed already, but I just wanted to draw
>> your attention to iGraph (http://igraph.sourceforge.net/index.html).
>> "igraph is a free software package for creating and manipulating undirected
>> and directed graphs. It includes implementations for classic graph theory
>> problems like minimum spanning trees and network flow, and also implements
>> algorithms for some recent network analysis methods, like community
>> structure search."
>> It also has Python bindings, which would probably make it very suitable for
>> SAGE.
>>
>> Sorry for the noise if this is all known to you / unsuitable / too late.
>>
>> Best,
>> Johannes
>>
>>
>
>
>
> --
> Robert L. Miller
> http://www.rlmiller.org/
>
> >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 4.1 compilation problem

2009-07-23 Thread William Stein

On Thu, Jul 23, 2009 at 8:27 AM, Ryan Hinton wrote:
>
> I compiled Sage on two nearly identical machines at school.  One
> succeeded, the other failed building givaro (see make output below).

It might also be worth emailing the author(s) of Givaro:

http://www-lmc.imag.fr/CASYS/LOGICIELS/givaro/

>
> I did a quick Google search on the error message, and one author called
> this the "dangling extern "C" syndrome."  Sure enough, the givaro header
>  (see below) has an extern "C" section enclosing an include of
> gmp.h -- which #include's C++ libraries.  I thought I had a decent
> knowledge of C/C++, and I don't see how this could have *worked* on the
> other machine.  I'm using GCC 4.1.2 on both machines.
>
> Any help or hints are appreciated.  Thanks!
>
> - Ryan
>
> -- make output --
> g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../.. -DGMP_VERSION_3
> -I../../../src/kernel/memory -I../../../src/kernel/system
> -I/path/sage-4.1/local//include -fPIC -I/path/sage-4.1/local/include -MT
> gmp++_int_div.lo -MD -MP -MF .deps/gmp++_int_div.Tpo -c gmp++_int_div.C
>  -fPIC -DPIC -o .libs/gmp++_int_div.o
> /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/x86_64-redhat-linux/bits/c++locale.h:67:
> error: template with C linkage
> ... (lots of similar errors)
> make[5]: *** [gmp++_int_div.lo] Error 1
> make[5]: Leaving directory
> `/path/sage-4.1/spkg/build/givaro-3.2.13rc2/src/src/kernel/gmp++
> -- end make output --
>
> Here is the source code that I think is causing the problem:
>
> -- gmp++.h --
> #ifdef __GIVARO_GMP_VERSION_3
>
> extern "C" {
>
> #endif
>
>
>
> #include "gmp.h"
>
>
>
> #ifdef __GIVARO_GMP_VERSION_3
>
> }
>
> #endif
>
> -- end gmp++.h snippet --
>
> and then  has
>
> -- gmp.h --
> #if defined (__cplusplus)
>
> #include    /* for std::istream, std::ostream, std::string */
>
> #include 
>
> #endif
>
> -- end gmp.h snippet --
>
> My configuration:
>
> -- shell --
> $ g++ -v
> Using built-in specs.
> Target: x86_64-redhat-linux
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --enable-checking=release --with-system-zlib --enable-__cxa_atexit
> --disable-libunwind-exceptions --enable-libgcj-multifile
> --enable-languages=c,c++,objc,obj-c++,java,fortran,ada
> --enable-java-awt=gtk --disable-dssi --enable-plugin
> --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
> --with-cpu=generic --host=x86_64-redhat-linux
> Thread model: posix
> gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)
>
> $ uname -srp
> Linux 2.6.29-2 x86_64
> -- end shell --
>
> >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: C++ and Cython

2009-07-23 Thread Martin Albrecht

> 1) Do you have any priorities for features you'd like to see sooner
> rather than later?

While debugging and fixing an issue in the current PolyBoRi wrapper with 
Alexander Dreyer we noticed the following behaviour in Cython which doesn't 
mix well with C++:

Consider the following code:

cdef BoolePolyRing ring = pbenv_ring()

where pbenv_ring() returns a reference to the currently active PolyBoRi ring. 

This is fine because Cython doesn't care whether a variable or a reference is 
returned. However, Cython re-arranges the code as follows internally:

cdef BoolePolyRing ring
ring  = pbenv_ring()

This is fine if BoolePolyRing is a C data structure because in C declaration 
is never code execution. However, this is not fine in C++ where declaration 
may be code execution: the default constructor.

(In our case the default constructor for BoolePolyRing would define a new ring 
and mark it as active and thus render the later assignment useless)

So my nr.1 feature request is to not re-arrange declarations if C++ is the 
language Cython compiles to.

Cheers,
Martin

-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://www.informatik.uni-bremen.de/~malb
_jab: martinralbre...@jabber.ccc.de



--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Singular and Sage

2009-07-23 Thread Martin Albrecht

Hi there,

as mentioned earlier I am visiting the Singular team this week in 
Kaiserslautern. On the technical side we worked on 

- updating to Singular 3-1-04 where it was very valuable to have both Sage and 
Singular developers within shouting distance, 

- updating to PolyBoRi 0.6 which wouldn't have been possible without the two 
teams present in person (we had to change both sides to make it work)

- better integration of libSingular which soon will allow calling Singular 
library functions (not written in C) via libSingular, cf. libgap (Michael 
Brickenstein is working on this)

- other convenient stuff like fast normal forms and docstring extraction.

== new mailinglist ==

Right now I am the main person working on linking against Singular on a C/C++ 
level. This is insufficient, well, because I don't get enough stuff done. To 
support the development we started a new mailing list [libsingular-devel] at

  http://groups.google.com/group/libsingular-devel

which should host discussions between Sage and Singular and anyone interested 
in linking against Singular. At first the name [sage-singular] was suggested 
but we figured we should keep it more open to other projects as well. 

So if there is stuff in Singular which you'd like to see properly wrapped in 
Sage, this is the mailing list to discuss it etc. Examples of this are: 

- submodules of free modules over polynomial rings, 
- non-commutative algebras, 
- quotient rings, 
- rational function fields
- etc.

Btw. I am also currently refactoring the libSingular stuff to make it easier 
to accomplish the above, cf. http://trac.sagemath.org/sage_trac/ticket/6596

== coercion ==

The Singular team is thinking about a C++ wrapper for their native data 
structures (and others) to make development in the Singular kernel easier. 
Thus we discussed how we wrap Singular in our object oriented structure in 
Sage. One point of interest was the coercion system. 

Robert, David, etc. are the 'rules' used for coercion written up somewhere or 
would one have to read the code to 'get' it? By rules I mean how to find a 
common ring for two rings etc.

== credit ==

The situation with giving credit was again a topic of discussion. There are no 
hard feelings: the Singular team knows that we are doing what we can to give 
'upstream' credit. However, it is a permanent concern not only for them. 

Btw. didn't we have some experimental patch at some point which would try to 
trace the subsystems involved in a calculation?
 
== other ideas ==

An idea which wasn't really discussed but mentioned was to use a re-branded 
stand-alone Sage notebook as the Singular GUI. Furthermore the option of 
making Sage's Cython interface to Singular more independent was briefly 
discussed. All this stuff is far from being settled, just ideas to play with.

Cheers,
Martin

PS: My final slides are available at http://bit.ly/ng3Xl
-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://www.informatik.uni-bremen.de/~malb
_jab: martinralbre...@jabber.ccc.de



--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Singular and Sage

2009-07-23 Thread Dr. David Kirkby

Martin Albrecht wrote:
> Hi there,
> 
> as mentioned earlier I am visiting the Singular team this week in 
> Kaiserslautern. On the technical side we worked on 
> 
> - updating to Singular 3-1-04 where it was very valuable to have both Sage 
> and 
> Singular developers within shouting distance, 

As a quick note, I found a problem with the singular build system. 
Perhaps you could forward it to the most appropriate person.

First, there are 7 identical copies of install-sh

$ find . -name install-sh
./libfac/install-sh
./kernel/install-sh
./Singular/install-sh
./omalloc/install-sh
./factory/bin/install-sh
./install-sh
./svd/install-sh

But more to the point, there is a problem, in that in one case, there is 
a path to install-sh which is not valid. This is only seen on Solaris, 
which someone else believes is because linux will have install-sh in the 
path, so that would be used.

make[1]: Entering directory
`/export/home/drkirkby/sage/sage-4.1/spkg/build/singular-3-1-0-2-20090620/src/kernel'
./mkinstalldirs /export/home/drkirkby/sage/sage-4.1/local/include/singular
for file in *.h; do ../.././install-sh -c $file
/export/home/drkirkby/sage/sage-4.1/local/include/singular; done
/bin/sh: ../.././install-sh: not found
/bin/sh: ../.././install-sh: not found
/bin/sh: ../.././install-sh: not found
/bin/sh: ../.././install-sh: not found
/bin/sh: ../.././install-sh: not found
/bin/sh: ../.././install-sh: not found
/bin/sh: ../.././install-sh: not found
/bin/sh: ../.././install-sh: not found
/bin/sh: ../.././install-sh: not found


Changing to the directory
`/export/home/drkirkby/sage/sage-4.1/spkg/build/singular-3-1-0-2-20090620/src/kernel'
 

and doing an 'ls' of ../.././ I see that it got me to the root directory
of the singular installation - by that I mean where spkh-install,
SPKG.txt etc exist. This is ABOVE the top level directory of the normal 
singular code.

Copying install-sh to there solved the problem, but clearly there is 
some issue here.

Dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Singular and Sage

2009-07-23 Thread William Stein

On Thu, Jul 23, 2009 at 1:14 PM, Martin
Albrecht wrote:
>
> Hi there,
>
> as mentioned earlier I am visiting the Singular team this week in
> Kaiserslautern. On the technical side we worked on
>
> - updating to Singular 3-1-04 where it was very valuable to have both Sage and
> Singular developers within shouting distance,
>

Excellent!

> - updating to PolyBoRi 0.6 which wouldn't have been possible without the two
> teams present in person (we had to change both sides to make it work)

Excellent too!

>
> - better integration of libSingular which soon will allow calling Singular
> library functions (not written in C) via libSingular, cf. libgap (Michael
> Brickenstein is working on this)

Very nice.  By the way, if anybody wants to start working on libgap, I
did a lot but ran out of steam/interest, and hope somebody else will
volunteer to look at it.  If you like nicely documented interpreters
and speeding up much in Sage that uses GAP by a huge amount, this is
the project for you.

> - other convenient stuff like fast normal forms and docstring extraction.
>
> == new mailinglist ==
>
> Right now I am the main person working on linking against Singular on a C/C++
> level. This is insufficient, well, because I don't get enough stuff done. To
> support the development we started a new mailing list [libsingular-devel] at
>
>  http://groups.google.com/group/libsingular-

I've joined and cc'd this message there.

>
> which should host discussions between Sage and Singular and anyone interested
> in linking against Singular. At first the name [sage-singular] was suggested
> but we figured we should keep it more open to other projects as well.

That makes sense.  And we could always have a sage-singular mailing
list at some point in the future if need be.

> So if there is stuff in Singular which you'd like to see properly wrapped in
> Sage, this is the mailing list to discuss it etc. Examples of this are:
>
> - submodules of free modules over polynomial rings,
> - non-commutative algebras,
> - quotient rings,
> - rational function fields
> - etc.
>
> Btw. I am also currently refactoring the libSingular stuff to make it easier
> to accomplish the above, cf. http://trac.sagemath.org/sage_trac/ticket/6596
>
> == coercion ==
>
> The Singular team is thinking about a C++ wrapper for their native data
> structures (and others) to make development in the Singular kernel easier.
> Thus we discussed how we wrap Singular in our object oriented structure in
> Sage. One point of interest was the coercion system.
>
> Robert, David, etc. are the 'rules' used for coercion written up somewhere or
> would one have to read the code to 'get' it? By rules I mean how to find a
> common ring for two rings etc.

As Robert's thesis adviser, I hereby strongly encourage him to publish
a short (?) research paper explaining the Sage coercion model.  I
think such a paper would be easy to get published.

> == credit ==
>
> The situation with giving credit was again a topic of discussion. There are no
> hard feelings: the Singular team knows that we are doing what we can to give
> 'upstream' credit. However, it is a permanent concern not only for them.
>
> Btw. didn't we have some experimental patch at some point which would try to
> trace the subsystems involved in a calculation?

Mike Hansen wrote it, and I think it's in Sage.  But I can't remember
the command name.

>
> == other ideas ==
>
> An idea which wasn't really discussed but mentioned was to use a re-branded
> stand-alone Sage notebook as the Singular GUI.

That would be excellent.

> Furthermore the option of
> making Sage's Cython interface to Singular more independent was briefly
> discussed. All this stuff is far from being settled, just ideas to play with.

That's a good idea.It could yield an alternative faster Singular
interpreter interface that depends only on Python/Cython, and hence is
much more lightweight than Sage.

> Cheers,
> Martin
>
> PS: My final slides are available at http://bit.ly/ng3Xl
> --
> name: Martin Albrecht
> _pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
> _otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
> _www: http://www.informatik.uni-bremen.de/~malb
> _jab: martinralbre...@jabber.ccc.de
>
>
>
> >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Singular and Sage

2009-07-23 Thread Willem Jan Palenstijn

On Thu, Jul 23, 2009 at 09:28:12PM +0100, Dr. David Kirkby wrote:
> 
> Martin Albrecht wrote:
> > Hi there,
> > 
> > as mentioned earlier I am visiting the Singular team this week in 
> > Kaiserslautern. On the technical side we worked on 
> > 
> > - updating to Singular 3-1-04 where it was very valuable to have both Sage 
> > and 
> > Singular developers within shouting distance, 
> 
> As a quick note, I found a problem with the singular build system. 
> Perhaps you could forward it to the most appropriate person.
> 
> First, there are 7 identical copies of install-sh
> 
> $ find . -name install-sh
> ./libfac/install-sh
> ./kernel/install-sh
> ./Singular/install-sh
> ./omalloc/install-sh
> ./factory/bin/install-sh
> ./install-sh
> ./svd/install-sh
> 
> But more to the point, there is a problem, in that in one case, there is 
> a path to install-sh which is not valid. This is only seen on Solaris, 
> which someone else believes is because linux will have install-sh in the 
> path, so that would be used.
> 
> make[1]: Entering directory
> `/export/home/drkirkby/sage/sage-4.1/spkg/build/singular-3-1-0-2-20090620/src/kernel'
> ./mkinstalldirs /export/home/drkirkby/sage/sage-4.1/local/include/singular
> for file in *.h; do ../.././install-sh -c $file
> /export/home/drkirkby/sage/sage-4.1/local/include/singular; done
> /bin/sh: ../.././install-sh: not found
> /bin/sh: ../.././install-sh: not found
> /bin/sh: ../.././install-sh: not found
> /bin/sh: ../.././install-sh: not found
> /bin/sh: ../.././install-sh: not found
> /bin/sh: ../.././install-sh: not found
> /bin/sh: ../.././install-sh: not found
> /bin/sh: ../.././install-sh: not found
> /bin/sh: ../.././install-sh: not found

Note that this usage of $(INSTALL) in kernel/Makefile is patched in by
sage, so the issue doesn't manifest itself in Singular itself.


It does seem that pointing to a parent directory as done in
'AC_OUTPUT([Makefile ../kernel/Makefile])' in Singular/configure.in is
not really supported by autoconf. Singular avoids problem by using plain 'cp'
to install files instead of $(INSTALL).

See my post to the autoconf mailing list at 
http://lists.gnu.org/archive/html/autoconf/2009-07/msg00057.html
and the reply at
http://lists.gnu.org/archive/html/autoconf/2009-07/msg00060.html
for more details. 


-Willem Jan


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Solaris issue: Pari / modified sage library code

2009-07-23 Thread Dr. David Kirkby

John Cremona wrote:
> 2009/7/22 Dr. David Kirkby :
>> John Cremona wrote:
>>> If by "this code" you mean paripriv.h then that belongs to pari, i.e.
>>> is upstream.  But sage/ext/fast_callable.c will have been written by
>>> someone who subscribes to this list, I hope!
>>>
>>> John
>> But the build of pari works fine, including the lines in paripriv.h. If
>> the code is commented out, pari will not build. Hence I personally don't
>> feel happy to report this to the pari developers, as I don't understand
>> why the code is implemented in the first place. The person(s) that wrote
>> this code, would be in a much better position than me to make a good
>> statement to the pair developers - if it is their fault at all, which I
>> somewhat doubt myself.
> 
> I don't think I explained well what I meant.  Certainly, the pari code
> is fine as it is.  But when that include file is included by another
> file, it may be that some macros have been defined in that environment
> which change the content of those 3 lines.
> 
> e.g. in line 258:
> GEN  ZY_ZXY_resultant_all(GEN A, GEN B0, long *lambda, GEN *LPRS);
> 
> The macro cannot be GEN or A or B or lambda since they occur on other
> lines which cause no trouble.  It is most unlikely to be the function
> name!  But it could be LPRS.
> 
> I think that to debug this you would need to give the compile command
> which caused the error:
> gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall (etc etc)
> 
> and add the flag "-E" which means " Preprocess only; do not compile,
> assemble or link", pipe the (long) output of that to a file and search
> it for where paripric.h is included.  That might tell you whether the
> file has been corrupted by macro definitions as I suspect.
> 
> If this works, then the next step will be to find out where the
> offending macros are defined and then who wrote that code and then get
> the macros changed...
> 
> John

Is there anyone who feels more confident than me about trying to debug 
this? (i.e. I don't have much a of a clue.)

I just done a rercursive grep (using the GNU version) for 'LPRS' in the 
whole of the contents of the sage-4.1.1.alpha0.spkg file (once extracted 
of course). I don't see a reference to LPRS. Neither is the function 
name 'ZY_ZXY_resultant_all' there.

$ ggrep -R LPRS sage-4.1.1.alpha0
$ ggrep -R ZY_ZXY_resultant_all sage-4.1.1.alpha0

I also did the same for the Solaris header files (/usr/include) and the 
gcc header files (/usr/local/gcc-4.2.4-sun-linker/include), and don't 
see LPRS there either.

In fact, greping the contents of $SAGE_HOME/spkg/build, the only 
references to them is in pari and maxima. Maxima has not been built yet, 
as I can't get ecl to build (another issue altogether). I have kept the 
intermediate files. So it's not clear to me where anything outside of 
pari might define something that causes the conflict.



Dave


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Catalan Numbers

2009-07-23 Thread Franco Saliola

On Thu, Jul 23, 2009 at 8:20 AM, Tom Boothby wrote:
> Richard Stanley currently lists 172 combinatorial interpretations of
> the Catalan numbers.  I've been doing some research on Coxeter groups
> this summer, and we recently found that a class of permutations in S_n
> which are counted by the Catalan numbers.  Turns out, the permutations
> are just the 321-avoiding permutations.  A research partner, Matt
> Macauley noted that when one finds objects counted by the Catalan
> numbers, that it can be interesting to see what other objects they
> might correspond to.
>
> In particular, we've got a subset of the 321-avoiding permutations
> that we want to investigate.  If there's a nice bijection between
> 321-avoiding permutations, and say, Dyck paths, we'd like to look at
> the Dyck paths which correspond to this special subset.  So, I've
> started going down Stanley's list and hacking up as many bijections as
> I can devise between the objects he's listed.  At the present, I can
> generate the following given, say, a Dyck word (one can generate these
> in Sage), and draw nice pictures of them all.  Further, almost all of
> them are strongly connected -- given almost any object below, I can
> create any of the others. (though my constructions are bijective, I
> haven't coded both ways for a couple of them)
>
> These reference Stanley's numbering scheme, see [1] and [2]
>
> (c) binary trees on n vertices
> (h) lattice paths from (0,0) to (n,n) below x=y
> (i) Dyck paths from (0,0) to (n,0) above x=0
> (o) non-crossing matchings of [2n]
> (r) valid strings of parentheses (description in text differs by '('
> <-> 1, ')' <-> -1)
> (ff) 231-avoiding permutations (hah -- but I don't have 321-avoiding
> permutations yet -- I found these by a lucky guess)
> (pp) non-crossing partitions of [n]
> (tt) non-crossing partitions of [2n+1] into n+1 parts with
> nonconsecutive entries
> (hhh) stacks of coins
> (z^4) non-nesting matchings of [2n]
>
> I'm mostly doing this for research and for pleasure, but since I'm
> doing the research with a few partners, the code is readable.  I'm
> wondering: is there sufficient interest for this to be added to Sage?
> If I manage to construct even a quarter of the bijections listed, it
> will be a rather large amount of code.  I'd like some input from the
> combinat people as to what sort of interface would be appropriate.

It would definitely be cool to have this in Sage. There is a sage-combinat
conference starting on Saturday, which I will be attending, and I'll make
sure to bring this up and ask about interface design.

Take care,
Franco

--

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [sage-release] Re: Sage 4.1.1.alpha0 released

2009-07-23 Thread Minh Nguyen

Hi Kiran,

On Fri, Jul 24, 2009 at 4:02 AM, Kiran Kedlaya wrote:
>
> Running make ptestlong (which I had never tried before on this
> machine), I see the following failures on 64-bit (Opteron) Fedora 10.
>
>sage -t -long devel/sage/sage/interfaces/r.py # 1 doctests
> failed
>sage -t -long devel/sage/sage/schemes/elliptic_curves/
> ell_rational_field.py # 0 doctests failed
>sage -t -long devel/sage/sage/schemes/elliptic_curves/
> sha_tate.py # 0 doctests failed
>sage -t -long devel/sage/sage/groups/perm_gps/partn_ref/
> refinement_matrices.pyx # 0 doctests failed
>
> The three "0 doctests failed" are timeouts; they pass when run
> individually. The R failure gave
> **
> File "/scratch/sage-4.1.1.alpha0/devel/sage-main/sage/interfaces/
> r.py", line 838:
>sage: r.completions('tes')
> Expected:
>['testPlatformEquivalence', 'testVirtual']
> Got:
>
>Building R command completion list (this takes
>a few seconds only the first time you do it).
>To force rebuild later, delete /home/r1/kedlaya/.sage//
> r_commandlist.sobj.
>['testPlatformEquivalence', 'testVirtual']
> **
> but passes if I run it again. However, if I then delete the file
> ~/.sage/r_commandlist.sobj, the failure reappears.

This has been fixed by ticket #6594

http://trac.sagemath.org/sage_trac/ticket/6594

-- 
Regards
Minh Van Nguyen

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Notebook translation tips

2009-07-23 Thread Sergey Semerikov

On Jul 23, 8:32 am, William Stein  wrote:

> (1) What is gettext?  I've never heard of it?

Good describe of gettext we can find in 
http://docs.python.org/library/gettext.html
(23.1.3. Internationalizing your programs and modules). The main
advantage of such
way is an ability to change languages on the fly.

> (2) Thanks for making the list below.  Now we need to figure out how
> to get this into Sage in an incremental way.

I did some steps:

1. First step: simply add

# -*- coding: utf-8 -*-

at first line of every .py-file. In run_notebook.py additionally
encoding
must be at lines 170-172:

config.write(_("""
# -*- coding: utf-8 -*-


Then I rewrite convert_seconds_to_meaningful_time_span (as described
in
first messages).

2. Next step: every string constant, which can be translated, was
converted
from
raise ValueError, 'invalid failure type'
to
raise ValueError, _('invalid failure type')
Before begin of the string add underscore and open bracket, after end
-
close bracket.

Changed files at step 1, 2, please, download from
http://semerikov.googlepages.com/notebook_modify.tar.bz2

3. Then we need to define function "_" as described in 23.1.3.1
in every module (I don't do it yet):

import gettext
t = gettext.translation('modulename', '/usr/local/sage/../locale')
_ = t.lgettext

all.py (or some main module) must contain

import gettext
gettext.install('applicationname', '/usr/local/sage/../locale',
unicode=1)

4. For every changed file running xgettext or Tools/i18n/pygettext.py:

python pygettext.py *.py

Resulting file (http://semerikov.googlepages.com/messages.pot) is an
template for any notebook translation. To do new translation you must
rename messages.pot at LANG_CODE.po (e.g., for Korean - kr.po) and
write translation in msgstr (empty in template):

#: avatars.py:65
msgid "invalid failure type"
msgstr ""


> (3) Somebody else just popped up on the sage list a few days ago who
> is moving all the html generation code to jinja templates.

  Thanks, I don't touch html-templates.

> I don't have a lot of time to work on the notebook now, but will in Sept - 
> Dec.

   Steps 1-4 will produce only minor (cosmetic) code changes. I hope,
it
can be done quickly (the main reason - easy and fast translation: for
example,
try Korean/English notebook at http://math1.skku.ac.kr/).

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Singular and Sage

2009-07-23 Thread Dr. David Kirkby

Willem Jan Palenstijn wrote:
> On Thu, Jul 23, 2009 at 09:28:12PM +0100, Dr. David Kirkby wrote:

>> make[1]: Entering directory
>> `/export/home/drkirkby/sage/sage-4.1/spkg/build/singular-3-1-0-2-20090620/src/kernel'
>> ./mkinstalldirs /export/home/drkirkby/sage/sage-4.1/local/include/singular
>> for file in *.h; do ../.././install-sh -c $file
>> /export/home/drkirkby/sage/sage-4.1/local/include/singular; done
>> /bin/sh: ../.././install-sh: not found
>> /bin/sh: ../.././install-sh: not found
>> /bin/sh: ../.././install-sh: not found
>> /bin/sh: ../.././install-sh: not found
>> /bin/sh: ../.././install-sh: not found
>> /bin/sh: ../.././install-sh: not found
>> /bin/sh: ../.././install-sh: not found
>> /bin/sh: ../.././install-sh: not found
>> /bin/sh: ../.././install-sh: not found
> 
> Note that this usage of $(INSTALL) in kernel/Makefile is patched in by
> sage, so the issue doesn't manifest itself in Singular itself.

OK, thank you for that.

Given there appears to be a lot of things in the patches directory, why 
does the singular package not follow the usual convention of a .p0, .p1 
etc. The name of the .spkg seems a bit odd.

Looking at patches/kernel.Makefile.in.diff, I see:

--- ../Singular-3-1-0/kernel/Makefile.in2009-02-06 
07:54:38.0 +
+++ kernel.Makefile.in  2009-05-12 18:20:10.0 +0100
@@ -292,7 +292,9 @@

  install-libsingular:
 ${MKINSTALLDIRS} ${includedir}/singular
-   cp *.h ${includedir}/singular
+   -for file in *.h; do \
+   ${INSTALL_PROGRAM} $$file ${includedir}/singular; \
+done

  install: all installbin


That looks remarkably similar to the code that is broken. There's 
nothing in SPKG.txt which tells me who made those changes, or why. 
Clearly they have substituted 'cp' for the install program, and messed 
up somewhere.


> It does seem that pointing to a parent directory as done in
> 'AC_OUTPUT([Makefile ../kernel/Makefile])' in Singular/configure.in is
> not really supported by autoconf. Singular avoids problem by using plain 'cp'
> to install files instead of $(INSTALL).
> 
> See my post to the autoconf mailing list at 
> http://lists.gnu.org/archive/html/autoconf/2009-07/msg00057.html
> and the reply at
> http://lists.gnu.org/archive/html/autoconf/2009-07/msg00060.html
> for more details. 
> 
> 
> -Willem Jan

OK, thank you.

That means I should be able to get a better patch to this, than my hack 
of leaving another copy of install-sh lying around. But it would be nice 
to know who patched this and why. Why was 'cp' replaced by $(INSTALL_PROG)?

Dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Linking aged debtors report with MS Access

2009-07-23 Thread John

Hi,

I'm really struggling with this one,
'All' I need is a single line of Aged Debtor analysis to appear on a
form in Access, from a list of outstanding customer transactions,
grouped by Current, 30 days, 60 days 90+ days, as the sage accounts
does in the reports section.
I have been playing around with the ms query on the sales ledger table
but not sure how to get the transactions grouped into the appropriate
30, 60 90+ category.

Any ideas on this one?

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: 4.1.1.alpha0 Installation just 'dying' for no known reason

2009-07-23 Thread Minh Nguyen

Hi David,

On Thu, Jul 23, 2009 at 7:29 PM, Dr. David
Kirkby wrote:



>> Now onto ATLAS.
>
> I won't expect to hear from you for another 8 hours or so then!
>
> I'm trying to add support for the later processors in ATLAS's code. Then
> hopefully I can reduce the time it takes to install, once I have the
> tuning data for the T2+ processor and I have ATLAS understanding what it
> is. Currently it checks for various UltraSPARC CPUs, but the T2+ is not
> one of them.

The ATLAS SPKG atlas-3.8.3.p6 is successfully compiled on t2!

-- 
Regards
Minh Van Nguyen

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Linking aged debtors report with MS Access

2009-07-23 Thread kcrisman

Dear John,

Unfortunately, this is the support list for the mathematics software
Sage (http://www.sagemath.org), not the accounting software Sage.
There seems to be some support at 
http://www.sagenorthamerica.com/support_training/
but that's the best we can direct you.  Good luck!

- kcrisman


On Jul 23, 6:08 pm, John  wrote:
> Hi,
>
> I'm really struggling with this one,
> 'All' I need is a single line of Aged Debtor analysis to appear on a
> form in Access, from a list of outstanding customer transactions,
> grouped by Current, 30 days, 60 days 90+ days, as the sage accounts
> does in the reports section.
> I have been playing around with the ms query on the sales ledger table
> but not sure how to get the transactions grouped into the appropriate
> 30, 60 90+ category.
>
> Any ideas on this one?
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: 4.1.1.alpha0 Installation just 'dying' for no known reason

2009-07-23 Thread Dr. David Kirkby

Minh Nguyen wrote:
> Hi David,
> 
> On Thu, Jul 23, 2009 at 7:29 PM, Dr. David
> Kirkby wrote:
> 
> 
> 
>>> Now onto ATLAS.
>> I won't expect to hear from you for another 8 hours or so then!
>>
>> I'm trying to add support for the later processors in ATLAS's code. Then
>> hopefully I can reduce the time it takes to install, once I have the
>> tuning data for the T2+ processor and I have ATLAS understanding what it
>> is. Currently it checks for various UltraSPARC CPUs, but the T2+ is not
>> one of them.
> 
> The ATLAS SPKG atlas-3.8.3.p6 is successfully compiled on t2!
> 

I thought ATLAS would build! I believe if you should be able to get up 
to the point where the  sage-4.1.1.spkg gets going. I think the 
installation will fail there due to two separate bugs.

At least now the impact of not fully tuning the ATLAS code will only be 
seen on sun4v machines, not all of them. Perhaps you can review the 
atlas patch, which is about as simple as they go.
http://sagetrac.org/sage_trac/ticket/6558

Since polybori-0.5rc.p9 built for you, perhaps you can look at:
http://sagetrac.org/sage_trac/ticket/6437

Perhaps you could try the revised MPFR patch,
http://sagetrac.org/sage_trac/ticket/6453
Note however, the version of gcc you used (4.2.4), did not actually 
exhibit the problem, which is why I changed the default gcc. But I have 
confirmed it passes with the latest gcc now.

It is NOT a bug in gcc 4.4.0, but Sun have admitted this is a bug in 
Solaris. The fix allows MPFR to build on any machine, with any version 
of gcc and pass all tests with no impact on performance except on sun4v 
machines.

I noticed my patch to singular worked for you
http://sagetrac.org/sage_trac/ticket/6563
There is probably a better solution than that one. The singular 
installation appears to be broken by a patch added to Sage to 
patches/kernel.Makefile.in.diff.

I don't know if you can shed any light onto what that patch was supposed 
to fix, as it seems have changed 'cp' for the 'install-sh' program and 
broke the installation in the process.

I seem to be slacking at the minute, as there are only 4 Solaris patches 
needing review!!

Dave



--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Catalan Numbers

2009-07-23 Thread Tom Boothby

Cool to hear that people are interested.

So far, I've implemented a CatalanCatalog class, which keeps lists of
descriptions of Catalan constructions, maps between different
constructions, and functions which enumerate various families of
constructions.  It also maintains a directed graph of which maps have
been established, so one can ask for a mapping from one class of
objects to another.

At some point, I'm thinking to make a CatalanConstruction class which
has a nice interface for which CatalanCatalog is a backend.  The user
would be able to construct a generic object through any number of
means:

sage: s = SymmetricGroup(3)([1,3,2])
sage: c = CatalanConstruction(s,'avoid312')
sage: b = c.binary_tree()
sage: d = CatalanConstruction(b,'binary tree')
sage: c == d
True
sage: d.plot(style='coin stack')
...

similarly, one could enumerate Catalan objects:

sage: for c in CatalanConstructions(3):
...  print c.parentheses(), c.avoid312()
...
()()() ()
(())() (12)
()(()) (23)
(()()) (13)
((())) (123)

Part of my problem is that these objects can have quite verbose
descriptions.  How should they be referenced?  I've been using the
numbering system that Stanley uses, but it's very clumsy.  Also, I can
come up with short names like "avoid312", but that's not really good
enough, because a number of the constructions are rather hard to
summarize in a word or two.  Ideas?

On Thu, Jul 23, 2009 at 2:58 PM, Franco Saliola wrote:
>
> On Thu, Jul 23, 2009 at 8:20 AM, Tom Boothby wrote:
>> Richard Stanley currently lists 172 combinatorial interpretations of
>> the Catalan numbers.  I've been doing some research on Coxeter groups
>> this summer, and we recently found that a class of permutations in S_n
>> which are counted by the Catalan numbers.  Turns out, the permutations
>> are just the 321-avoiding permutations.  A research partner, Matt
>> Macauley noted that when one finds objects counted by the Catalan
>> numbers, that it can be interesting to see what other objects they
>> might correspond to.
>>
>> In particular, we've got a subset of the 321-avoiding permutations
>> that we want to investigate.  If there's a nice bijection between
>> 321-avoiding permutations, and say, Dyck paths, we'd like to look at
>> the Dyck paths which correspond to this special subset.  So, I've
>> started going down Stanley's list and hacking up as many bijections as
>> I can devise between the objects he's listed.  At the present, I can
>> generate the following given, say, a Dyck word (one can generate these
>> in Sage), and draw nice pictures of them all.  Further, almost all of
>> them are strongly connected -- given almost any object below, I can
>> create any of the others. (though my constructions are bijective, I
>> haven't coded both ways for a couple of them)
>>
>> These reference Stanley's numbering scheme, see [1] and [2]
>>
>> (c) binary trees on n vertices
>> (h) lattice paths from (0,0) to (n,n) below x=y
>> (i) Dyck paths from (0,0) to (n,0) above x=0
>> (o) non-crossing matchings of [2n]
>> (r) valid strings of parentheses (description in text differs by '('
>> <-> 1, ')' <-> -1)
>> (ff) 231-avoiding permutations (hah -- but I don't have 321-avoiding
>> permutations yet -- I found these by a lucky guess)
>> (pp) non-crossing partitions of [n]
>> (tt) non-crossing partitions of [2n+1] into n+1 parts with
>> nonconsecutive entries
>> (hhh) stacks of coins
>> (z^4) non-nesting matchings of [2n]
>>
>> I'm mostly doing this for research and for pleasure, but since I'm
>> doing the research with a few partners, the code is readable.  I'm
>> wondering: is there sufficient interest for this to be added to Sage?
>> If I manage to construct even a quarter of the bijections listed, it
>> will be a rather large amount of code.  I'd like some input from the
>> combinat people as to what sort of interface would be appropriate.
>
> It would definitely be cool to have this in Sage. There is a sage-combinat
> conference starting on Saturday, which I will be attending, and I'll make
> sure to bring this up and ask about interface design.
>
> Take care,
> Franco
>
> --
>
> >
>

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: memset() bug which caused MPFR test failures will be fixed by Sun.

2009-07-23 Thread Dr. David Kirkby

William Stein wrote:
> On Thu, Jul 23, 2009 at 5:36 PM, Dr. David
> Kirkby wrote:
>> Many people looked at the reason there were 20 test failures of the MPFR
>> test suite on a Sun T5240. I believe the issue is due to memset).
>>
>> I telephoned Sun a couple of days back to report this officially. They
>> have been extremely efficient at handling this case.
>>
>> I now have some information from Sun. I asked the engineer if I could
>> make it public, and he has said yes. He is in fact going to put some of
>> it on a mailing list, and it will eventually appear in Sunsolve.
>>
>> I'm told the fix will be backported to Solaris 10 and I should have a
>> Interim Diagnostic Relief to test myself in a few weeks, but it wont be
>> a public patch for some time, until it's fully tested.
>>
>> Dave
> 
> Wow, Dave, you are amazingly good at doing things right and being a
> professional!  Thanks!!
> 
> William

Cheers.

>> Your service case regarding memset(3C)'s behaviour on sun4v systems
>> when the size_t argument is nonzero but zero mod 232 has now been
>> transferred to Europe, and I have taken ownership.  And I intend to
>> keep ownership until we've reached a mutually acceptable resolution,
>> barring vacation stand-ins and unforeseen events.

That was supposed to be 2 to the power 32, but my 2^32 appears to come 
out as the number 232 there.


>> Let me quickly recapitulate the facts:
>>
>> + This is on record as a bug under Change Request id 6507249,
>> + it's fixed in the internal development version of (future)
>>   Solaris and thus in OpenSolaris based on builds snv_62 or later,
>> + it affects only
>>   + 32-bit applications
>>   + running on Solaris 10
>>   + on all SPARC sun4v (CoolThreads^TM) platforms,
>> + it originates in the hardware-optimized libc_psr_hwcap[12].so.1
>>   which (by default) get mounted over /platform/sun4v/lib/libc_psr.so.1
>>   during the Solaris boot sequence,
>> + it affects invocations of memset(3C) where the third (size_t)
>>   argument is nonzero but its low-order 32 bits are zero  (thus
>>   it ought to be zero considered as a size_t).
>>
>> (A subtle point is that it won't affect the *first* call to memset()
>> after exec, as the runtime loader processing for lazy symbol binding
>> will clear the upper 32 bits as a side effect before passing control
>> to the newly-bound function entry point.)
>>
>> The bugfix has not (yet) been beackported to Solaris 10 because there
>> has not (yet) been any tangible demand for such a backport.  Until
>> just now, there had not yet been a single external customer record
>> on CR#6507249!
>>
>> I am adding one for this present service request now.
>>
>> In fact, the vast majority of application code would not be at risk
>> of being affected by this bug.  Most uses of memset() pass a compile-
>> time constant for the size, often some sizeof(struct such_and_such).
>> Passing a manifest 32-bit int variable for the size will also avoid
>> the bug.  It can only happen when memset() is invoked with some
>> nontrivial arithmetic expression, or some explicit 64-bit variable
>> for the size.  Such code idioms are quite rare.
>>
>> Also, there are a number of workarounds to choose from, depending on
>> the situation:
>>
>> + When the application source code is available for modification:
>>   + store the expression result in a variable and then pass the
>> variable to memset() (though compiler optimizations might
>> subvert this),
>>   + test the variable for being 32-bit-equal-to-zero and bypass
>> memset() if it is,
>>
>> + or at runtime:
>>   + invoke the application with LD_NOAUXFLTR=1 in the environment
>> (cf. man ld.so.1(1), which selectively disables the optimized
>> libc_psr.so.1 just for this process),
>>   + umount the optimized libc_psr.so.1 system-wide,
>>   + interpose a different memset() implementation e.g. via an
>> LD_PRELOAD'ed shared object.
>>
>>  > Since the MPFR library code we are using is open source, we have managed
>>  > to work around this Solaris bug, by sticking an 'if' statement in front
>>  > of the call to macro which calls memset().
>>  >
>>  > Though of course I don't know if it will affect anything else. So I
>>  > guess it is safer to unmount this, but I assume that will have quite a
>>  > performance impact.
>>
>> The performance impact of not using the optimized libc_psr.so.1
>> varies widely among applications, depending on how much memset()ing
>> and memcpy()ing and memmove()ing they do.  It can range all the way
>> from negligible to a few ten percent in benchmarks.
>>
>> But the LD_NOAUXFLTR=1 approach limits the performance impact to
>> those applications which are known or suspected to be affected
>> by the bug.---
>>
>> 
>>
>> Would you be willing to test-drive any future binary fix in the
>> shape of an Interim Diagnostic Relief prior to patch creation,
>> as well as a release-candidate patch at the T-Patch stage prior
>> to patch release?  For background information on IDRs, ple

[sage-devel] memset() bug which caused MPFR test failures will be fixed by Sun.

2009-07-23 Thread Dr. David Kirkby

Many people looked at the reason there were 20 test failures of the MPFR 
test suite on a Sun T5240. I believe the issue is due to memset).

I telephoned Sun a couple of days back to report this officially. They 
have been extremely efficient at handling this case.

I now have some information from Sun. I asked the engineer if I could 
make it public, and he has said yes. He is in fact going to put some of 
it on a mailing list, and it will eventually appear in Sunsolve.

I'm told the fix will be backported to Solaris 10 and I should have a 
Interim Diagnostic Relief to test myself in a few weeks, but it wont be 
a public patch for some time, until it's fully tested.

Dave


Your service case regarding memset(3C)'s behaviour on sun4v systems
when the size_t argument is nonzero but zero mod 232 has now been
transferred to Europe, and I have taken ownership.  And I intend to
keep ownership until we've reached a mutually acceptable resolution,
barring vacation stand-ins and unforeseen events.

Let me quickly recapitulate the facts:

+ This is on record as a bug under Change Request id 6507249,
+ it's fixed in the internal development version of (future)
   Solaris and thus in OpenSolaris based on builds snv_62 or later,
+ it affects only
   + 32-bit applications
   + running on Solaris 10
   + on all SPARC sun4v (CoolThreads^TM) platforms,
+ it originates in the hardware-optimized libc_psr_hwcap[12].so.1
   which (by default) get mounted over /platform/sun4v/lib/libc_psr.so.1
   during the Solaris boot sequence,
+ it affects invocations of memset(3C) where the third (size_t)
   argument is nonzero but its low-order 32 bits are zero  (thus
   it ought to be zero considered as a size_t).

(A subtle point is that it won't affect the *first* call to memset()
after exec, as the runtime loader processing for lazy symbol binding
will clear the upper 32 bits as a side effect before passing control
to the newly-bound function entry point.)

The bugfix has not (yet) been beackported to Solaris 10 because there
has not (yet) been any tangible demand for such a backport.  Until
just now, there had not yet been a single external customer record
on CR#6507249!

I am adding one for this present service request now.

In fact, the vast majority of application code would not be at risk
of being affected by this bug.  Most uses of memset() pass a compile-
time constant for the size, often some sizeof(struct such_and_such).
Passing a manifest 32-bit int variable for the size will also avoid
the bug.  It can only happen when memset() is invoked with some
nontrivial arithmetic expression, or some explicit 64-bit variable
for the size.  Such code idioms are quite rare.

Also, there are a number of workarounds to choose from, depending on
the situation:

+ When the application source code is available for modification:
   + store the expression result in a variable and then pass the
 variable to memset() (though compiler optimizations might
 subvert this),
   + test the variable for being 32-bit-equal-to-zero and bypass
 memset() if it is,

+ or at runtime:
   + invoke the application with LD_NOAUXFLTR=1 in the environment
 (cf. man ld.so.1(1), which selectively disables the optimized
 libc_psr.so.1 just for this process),
   + umount the optimized libc_psr.so.1 system-wide,
   + interpose a different memset() implementation e.g. via an
 LD_PRELOAD'ed shared object.

 > Since the MPFR library code we are using is open source, we have managed
 > to work around this Solaris bug, by sticking an 'if' statement in front
 > of the call to macro which calls memset().
 >
 > Though of course I don't know if it will affect anything else. So I
 > guess it is safer to unmount this, but I assume that will have quite a
 > performance impact.

The performance impact of not using the optimized libc_psr.so.1
varies widely among applications, depending on how much memset()ing
and memcpy()ing and memmove()ing they do.  It can range all the way
from negligible to a few ten percent in benchmarks.

But the LD_NOAUXFLTR=1 approach limits the performance impact to
those applications which are known or suspected to be affected
by the bug.---



Would you be willing to test-drive any future binary fix in the
shape of an Interim Diagnostic Relief prior to patch creation,
as well as a release-candidate patch at the T-Patch stage prior
to patch release?  For background information on IDRs, please see:

   http://sunsolve.sun.com/show.do?target=IDR

Since the affected deliverables (libc_psr_hwcap1.so.1) have also
been modified by existing patches including some Kernel Update
patches, any such IDR would (have to) be built to fit onto a
particular set of patch revisions.  The most recent change had
come in Kernel Update patch 127127-11, thus the easiest would
be an IDR with a hard dependency on this patch.  Should you have
need for an IDR against older patch levels than this, please do
let me know!

--~--~-~--~~

[sage-devel] Re: Is new symbolic derivative really worth the efforts?

2009-07-23 Thread Golam Mortuza Hossain

Hi,

On Thu, Jul 23, 2009 at 3:06 PM, Burcin Erocal wrote:

> I am not opposed to having the unevaluated diff as an alternative
> operator.

Thanks Burcin.  Surely, it helps to have both derivatives available to
Sage users. As Tim said, similar options are available to Maple users.

It is easy to put a flag that will instruct which derivative to use.

For example, in my prototype I could add another condition

 // No derivative defined and user wants diff format? Then dont apply chain rule
       if (opt.derivative_f == NULL && use_diff_format) {
   .
   ...
   }

The next question is then whether we evaluate symbolic derivative
using "D" by default or we store them un-evaluated using "diff"
and  evaluate them in terms of "D" only on-demand?

Mock-up usage could look like
--
sage:  diff( f(x), x)
diff( f(x), x, 1)

sage: diff( f(x), x, D_format=True)
D[0](f)(x)
--

Given pynac "D" construct doesn't store enough information
for guaranteed conversion to "diff" format, personally I don't
see any way out other than storing symbolic derivative
un-evaluated by default.


Cheers,
Golam,

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: memset() bug which caused MPFR test failures will be fixed by Sun.

2009-07-23 Thread William Stein

On Thu, Jul 23, 2009 at 5:36 PM, Dr. David
Kirkby wrote:
>
> Many people looked at the reason there were 20 test failures of the MPFR
> test suite on a Sun T5240. I believe the issue is due to memset).
>
> I telephoned Sun a couple of days back to report this officially. They
> have been extremely efficient at handling this case.
>
> I now have some information from Sun. I asked the engineer if I could
> make it public, and he has said yes. He is in fact going to put some of
> it on a mailing list, and it will eventually appear in Sunsolve.
>
> I'm told the fix will be backported to Solaris 10 and I should have a
> Interim Diagnostic Relief to test myself in a few weeks, but it wont be
> a public patch for some time, until it's fully tested.
>
> Dave

Wow, Dave, you are amazingly good at doing things right and being a
professional!  Thanks!!

William

>
> 
> Your service case regarding memset(3C)'s behaviour on sun4v systems
> when the size_t argument is nonzero but zero mod 232 has now been
> transferred to Europe, and I have taken ownership.  And I intend to
> keep ownership until we've reached a mutually acceptable resolution,
> barring vacation stand-ins and unforeseen events.
>
> Let me quickly recapitulate the facts:
>
> + This is on record as a bug under Change Request id 6507249,
> + it's fixed in the internal development version of (future)
>   Solaris and thus in OpenSolaris based on builds snv_62 or later,
> + it affects only
>   + 32-bit applications
>   + running on Solaris 10
>   + on all SPARC sun4v (CoolThreads^TM) platforms,
> + it originates in the hardware-optimized libc_psr_hwcap[12].so.1
>   which (by default) get mounted over /platform/sun4v/lib/libc_psr.so.1
>   during the Solaris boot sequence,
> + it affects invocations of memset(3C) where the third (size_t)
>   argument is nonzero but its low-order 32 bits are zero  (thus
>   it ought to be zero considered as a size_t).
>
> (A subtle point is that it won't affect the *first* call to memset()
> after exec, as the runtime loader processing for lazy symbol binding
> will clear the upper 32 bits as a side effect before passing control
> to the newly-bound function entry point.)
>
> The bugfix has not (yet) been beackported to Solaris 10 because there
> has not (yet) been any tangible demand for such a backport.  Until
> just now, there had not yet been a single external customer record
> on CR#6507249!
>
> I am adding one for this present service request now.
>
> In fact, the vast majority of application code would not be at risk
> of being affected by this bug.  Most uses of memset() pass a compile-
> time constant for the size, often some sizeof(struct such_and_such).
> Passing a manifest 32-bit int variable for the size will also avoid
> the bug.  It can only happen when memset() is invoked with some
> nontrivial arithmetic expression, or some explicit 64-bit variable
> for the size.  Such code idioms are quite rare.
>
> Also, there are a number of workarounds to choose from, depending on
> the situation:
>
> + When the application source code is available for modification:
>   + store the expression result in a variable and then pass the
>     variable to memset() (though compiler optimizations might
>     subvert this),
>   + test the variable for being 32-bit-equal-to-zero and bypass
>     memset() if it is,
>
> + or at runtime:
>   + invoke the application with LD_NOAUXFLTR=1 in the environment
>     (cf. man ld.so.1(1), which selectively disables the optimized
>     libc_psr.so.1 just for this process),
>   + umount the optimized libc_psr.so.1 system-wide,
>   + interpose a different memset() implementation e.g. via an
>     LD_PRELOAD'ed shared object.
>
>  > Since the MPFR library code we are using is open source, we have managed
>  > to work around this Solaris bug, by sticking an 'if' statement in front
>  > of the call to macro which calls memset().
>  >
>  > Though of course I don't know if it will affect anything else. So I
>  > guess it is safer to unmount this, but I assume that will have quite a
>  > performance impact.
>
> The performance impact of not using the optimized libc_psr.so.1
> varies widely among applications, depending on how much memset()ing
> and memcpy()ing and memmove()ing they do.  It can range all the way
> from negligible to a few ten percent in benchmarks.
>
> But the LD_NOAUXFLTR=1 approach limits the performance impact to
> those applications which are known or suspected to be affected
> by the bug.---
>
> 
>
> Would you be willing to test-drive any future binary fix in the
> shape of an Interim Diagnostic Relief prior to patch creation,
> as well as a release-candidate patch at the T-Patch stage prior
> to patch release?  For background information on IDRs, please see:
>
>   http://sunsolve.sun.com/show.do?target=IDR
>
> Since the affected deliverables (libc_psr_hwcap1.so.1) have also
> been modified by existing patches including some Kernel Update
> patches, any such IDR would (have to) 

[sage-devel] scipy_sandbox gives ominous looking errors, but still installs. Is this a bug?

2009-07-23 Thread Dr. David Kirkby

I've been trying to build some of the other packages for Sage on Solaris 
- I seem to have got a bit stuck on a couple of the bugs, so thought I'd 
leave them (hoping for a bit of help in some cases).

I tried installing scipy_sandbox-20071020.p4 and get what looks like 
some serious errors, which I suspect should abort the build process, 
though perhaps I am mistaken.

scipy_sandbox-20071020.p4/patches/setup.py~
scipy_sandbox-20071020.p4/patches/setup.py.spline
Finished extraction

Host system
uname -a:
SunOS t2 5.10 Generic_141414-02 sun4v sparc SUNW,T5240


GCC Version
gcc -v
Using built-in specs.
Target: sparc-sun-solaris2.10
Configured with: ../gcc-4.2.4/configure 
--prefix=/usr/local/gcc-4.2.4-sun-linker/ --with-as=/usr/ccs/bin/as 
--without-gnu-as --with-ld=/usr/ccs/bin/ld --without-gnu-ld 
--enable-languages=c,c++,fortran --with-mpfr-include=/usr/local/include 
--with-mpfr-lib=/usr/local/lib --with-gmp-include=/usr/local/include 
--with-gmp-lib=/usr/local/lib
Thread model: posix
gcc version 4.2.4

/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/python2.6/site-packages/numpy/distutils/command/config.py:361:
 
DeprecationWarning:
+
Usage of get_output is deprecated: please do not
use it anymore, and avoid configuration checks
involving running executable on the target machine.
+

   DeprecationWarning)
Undefined   first referenced
  symbol in file
_gfortran_transfer_integer 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
_gfortran_transfer_character 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
_gfortran_stop_numeric 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
_gfortran_st_write 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
_gfortran_st_write_done 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
ld: fatal: Symbol referencing errors. No output written to _configtest
collect2: ld returned 1 exit status
compiling '_configtest.c':

/* This file is generated from numpy/distutils/system_info.py */
void ATL_buildinfo(void);
int main(void) {
   ATL_buildinfo();
   return 0;
}
Undefined   first referenced
  symbol in file
_gfortran_transfer_integer 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
_gfortran_transfer_character 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
_gfortran_stop_numeric 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
_gfortran_st_write 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
_gfortran_st_write_done 
/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib/libf77blas.so
ld: fatal: Symbol referencing errors. No output written to _configtest
collect2: ld returned 1 exit status
running install
running build


Then finally we get:

Successfully installed scipy_sandbox-20071020.p4

Somehow that does not seem right to me. If these 'undefined symbol 
errors' are acceptable, then perhaps there needs to be a few notes 
output to say, "Don't be spooked by some error messages", which is what 
the ATLAS code says in one place.



Dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] GNUism in lcalc-20080205.p2 passing GNU flags directly to the Sun assembler.

2009-07-23 Thread Dr. David Kirkby

After purging out some of the cases where GNU-specific flags like 
-soname are passed directly to the Sun linker, I now find 
lcalc-20080205.p2 is passing GNU specific flags directly to the Sun 
linker, by using the -Wa flag to g++, which means the next item gets 
passed directly to the assembler.

g++  -O2 -g -Wa,-W -fno-exceptions -Wno-deprecated  -DINCLUDE_PARI   \
   -I/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/include/pari 
-I/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/include\
   -I ../include/ 
-L/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib \
   cmdline.c \
   Lcommandline.cc Lcommandline_elliptic.cc Lcommandline_globals.cc \
   Lcommandline_misc.cc Lcommandline_numbertheory.cc \
   Lcommandline_twist.cc Lcommandline_values_zeros.cc \
   Lgamma.cc Lglobals.cc Lmisc.cc Lriemannsiegel.cc \
 -o lcalc -lpari -lmpfr -lgmpxx -lgmp -liberty
/usr/ccs/bin/as: error: unknown option 'W'
usage: /usr/ccs/bin/as [-V] [-Q{y,n}] [-q] [-s]
 [-S] [-K {pic,PIC}] [-o objfile] [-L] [-T]
 [-P [[-Yc,path] [-Ipath] [-Dname] [-Dname=def] [-Uname]]...]
 [-m [-Ym,path]] [-n] [-ul] [-xF]
 [-m32] [-m64]
 
[-xarch={v7,v8,v8a,v8plus,v8plusa,v8plusb,v9,v9a,v9b,sparc,sparcvis, 
sparcvis2,sparcfmaf,sparcima}]
 [-xcode={pic13,pic32}] file.s...



This is now.

http://sagetrac.org/sage_trac/ticket/6609

Dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: GNUism in lcalc-20080205.p2 passing GNU flags directly to the Sun assembler.

2009-07-23 Thread Dr. David Kirkby

Dr. David Kirkby wrote:
> After purging out some of the cases where GNU-specific flags like 
> -soname are passed directly to the Sun linker, I now find 
> lcalc-20080205.p2 is passing GNU specific flags directly to the Sun 
> linker, by using the -Wa flag to g++, which means the next item gets 
> passed directly to the assembler.
> 
> g++  -O2 -g -Wa,-W -fno-exceptions -Wno-deprecated  -DINCLUDE_PARI   \
>-I/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/include/pari 
> -I/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/include\
>-I ../include/ 
> -L/rootpool2/local/kirkby/sage-4.1.1.alpha0/local/lib \
>cmdline.c \
>Lcommandline.cc Lcommandline_elliptic.cc Lcommandline_globals.cc \
>Lcommandline_misc.cc Lcommandline_numbertheory.cc \
>Lcommandline_twist.cc Lcommandline_values_zeros.cc \
>Lgamma.cc Lglobals.cc Lmisc.cc Lriemannsiegel.cc \
>  -o lcalc -lpari -lmpfr -lgmpxx -lgmp -liberty
> /usr/ccs/bin/as: error: unknown option 'W'
> usage: /usr/ccs/bin/as [-V] [-Q{y,n}] [-q] [-s]
>  [-S] [-K {pic,PIC}] [-o objfile] [-L] [-T]
>  [-P [[-Yc,path] [-Ipath] [-Dname] [-Dname=def] [-Uname]]...]
>  [-m [-Ym,path]] [-n] [-ul] [-xF]
>  [-m32] [-m64]
>  
> [-xarch={v7,v8,v8a,v8plus,v8plusa,v8plusb,v9,v9a,v9b,sparc,sparcvis, 
> sparcvis2,sparcfmaf,sparcima}]
>  [-xcode={pic13,pic32}] file.s...
> 
> 
> 
> This is now.
> 
> http://sagetrac.org/sage_trac/ticket/6609
> 
> Dave


Looking at the man page for the assembler on sage.math, I see that the 
-W option to the GNU assembler just removes warning messages. Under the 
circumstances, I think it will be better to change the code the warnings 
are output. I can't really find much excuse for hiding warning messages, 
especially when the attempts to hide them is causing problems.

Dave

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Suppressing warning messages - not a good idea IMHO

2009-07-23 Thread Dr. David Kirkby

Looking at the CFLAGS in the spkg-install of lcalc-20080205.p2, I see:

CFLAGS="$CFLAGS -O2 -g -Wa,-W -fno-exceptions -Wno-deprecated"

-Wal,-W will suppress warnings from the assembler (IF the GNU assembler 
is used).

-Wno-deprecated is a gcc flag to remove warnings about deprecated headers.

What excuse is there really for suppressing warnings like this? None of 
us like seeing warnings messages, but hiding them is not a good idea.

Dave


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Suppressing warning messages - not a good idea IMHO

2009-07-23 Thread William Stein

Hi David,

I'm cc'ing this on to Mike Rubinstein, the author of lcalc, in case he
has any comments.

William

On Thu, Jul 23, 2009 at 8:46 PM, Dr. David
Kirkby wrote:
>
> Looking at the CFLAGS in the spkg-install of lcalc-20080205.p2, I see:
>
> CFLAGS="$CFLAGS -O2 -g -Wa,-W -fno-exceptions -Wno-deprecated"
>
> -Wal,-W will suppress warnings from the assembler (IF the GNU assembler
> is used).
>
> -Wno-deprecated is a gcc flag to remove warnings about deprecated headers.
>
> What excuse is there really for suppressing warnings like this? None of
> us like seeing warnings messages, but hiding them is not a good idea.
>
> Dave
>
>
> >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Sagemath with Phone

2009-07-23 Thread NoSyu

  Now I make the WAP Page in Sagemath notebook.

http://nosyu.pe.kr/attach/1/3770095285.png

http://math1.skku.ac.kr/wap_html

  You can write the sage code in textbox. 예제 1 means example 1. So
click the 예제 3, you can see example sage code like this.

http://nosyu.pe.kr/attach/1/6037209279.png

  Example code is 'plot(sin(x), xmin=-2*pi, xmax=2*pi)'. Click the '실행
(Evaluate)' Button. Then you can see the code and result.

http://nosyu.pe.kr/attach/1/5078779878.png

  I said it is for phone. So Dr Kim tested this his phone. His phone
is Samsung SPH-W5000.

http://nosyu.pe.kr/attach/1/6834600582.png

http://nosyu.pe.kr/attach/1/9329232708.png

  We can see right result on the phone. We test this on phone that is
sold in Korea such as Samsung Anycall, LG CYON.

  And I test this on phone emulator also.

http://nosyu.pe.kr/attach/1/1601193836.png
http://nosyu.pe.kr/attach/1/4458016426.png

http://www.opera.com/mini/demo/

http://nosyu.pe.kr/attach/1/1792769303.png
http://nosyu.pe.kr/attach/1/7577281903.png

http://emulator.mtld.mobi/emulator.php

  It works fine.

  It works good on the phone that is sold in Korea. So we make this
Korean interface. Then Korean people use sagemath on the phone easily.

  Now we imporve and expand this. So test it and report bug or bad
things.

http://math1.skku.ac.kr/wap_html


You can this post with image on this page.

http://nosyu.pe.kr/2065




누구나가 다, 자기 옆에서 눈물을 흘리며 신음하는 불행한 사람들에 비해 자기가 훨씬 더 불행하다고 생각하지요. 이게 바로 우리
가련한 인간들의 오만 중 하나입니다.
- 몬테크리스토 백작
it is the infirmity of our nature always to believe ourselves much
more unhappy than those who groan by our sides!
- The Count of Monte Cristo
c'est un des orgueils de notre pauvre humanité, que chaque homme se
croie plus malheureux qu'un autre malheureux qui pleure et qui gémit à
côté de lui
- Le Comte de Monte-Cristo

박진영 - Bak JinYeong
학부재학생 - Undergraduate
컴퓨터공학전공 - Department of Computer Engineering
정보통신공학부 - School of Information & Communication Engineering
성균관대학교 - SungKyunKwan University
블로그 - http://nosyu.pe.kr
이메일 - don...@skku.edu
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---