Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#2565 closed user story (fixed)

Support PETSc 3.5, and add citation reporting

Reported by: GaryM Owned by:
Priority: normal Milestone: Iteration I3
Component: infrastructure Keywords:
Cc: Estimated pair-hours remaining: 0
Pair-hours expended on ticket: 13.5 Initial estimate of effort: 4
Editable by public: yes

Description

Released on 3rd July 2014: http://www.mcs.anl.gov/petsc/documentation/changes/35.html

Nothing too major this time for us?

See also InstallGuides/DependencyVersions

Attachments (1)

2565.patch (24.1 KB) - added by louiecn 6 years ago.

Download all attachments as: .zip

Change History (24)

comment:1 Changed 6 years ago by jmpf@…

From cigari:

compiling chaste with PETSc's latest 3.5 version failed with /home/scratch/chaste-libs/petsc-3.5.0/linux-gnu/lib/libpetsc.so: undefined reference to `PetscTextBelt' 

No reports of interface changes.

comment:2 Changed 6 years ago by GaryM

Got this e-mail on petsc-announce http://www.mcs.anl.gov/petsc/download/index.html

The patch release petsc-3.5.1 is now available for download.
http://www.mcs.anl.gov/petsc/download/index.html

Some of the changes include:

* PCApplyRichardson_MG() did not properly set operators for all levels for residual computation Needed the same code as PCApply_MG() had

* if vector is of length 0 then VecSet() should set all norms to zero instead of triggering a divide by zero

* allow complex numbers to be used from both C and C++ (when supported) not only the language PETSc was built with

* improve the memory usage of PCGAMGCreateGraph()

* did not mirror 1d DMDA values correctly due to previous change consulidating block size -options_table should have been -options_view twenty years ago

* mpi4py: use current tarball mpi4py-1.3.1.tar.gz

* bugfix for memory leak with >1 processes and calling KSPSetOperators(A) twice with same A (see Jose Roman's email on Jul 11, 2014)

* At configure time determine if MPICH_NUMVERSION or OMPI_MAJOR/MINOR_VERSION or MPI-Uni, then at compile time make sure versions match to determine if incorrect mpi.h is being included

* petsc4py.py: look for python dynamic library in correct locations on Apple based on python version Test did not work correctly for anaconda installed python on Apple since that does not install a generic libpython.dylib

* Added code to properly preallocate "diagonal" portion of scalar matrix derived from vector matrix in PCGAMGCreateGraph()

* KSPCreate() for TAO GPCG solver is now done at TaoCreate_GPCG() instead of TaoSetUp() this allows users to change KSP options from the code easily and matches the style of other Tao solvers that use KSP

* TAO: Enable interface for complex scalar builds

comment:3 Changed 6 years ago by jonc@…

As of 3.5 PETSc supports a -citations command line flag, and applications using PETSc can add their own citation information (see e.g. http://www.software.ac.uk/blog/2014-07-30-oh-research-software-how-shalt-i-cite-thee). It might be worth supporting this for Chaste!

Instructions at http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscCitationsRegister.html; paper with more info at http://www.mcs.anl.gov/papers/P5010-0913_1.pdf.

Changed 6 years ago by louiecn

comment:4 Changed 6 years ago by louiecn

  • Estimated pair-hours remaining changed from 4 to 2
  • Pair-hours expended on ticket changed from 0 to 4

Patch attached that compiles for linalg but with failing tests.

Might be to do with losing SAME_NONZERO_PATTERN in KSPSetOperators. Does the Mat need to know this somehow?

Or, maybe the user-provided ComputeTestJacobian in the test isn't setting values correctly. Note the change in signature.

comment:5 Changed 6 years ago by GaryM

  • Estimated pair-hours remaining changed from 2 to 0.5
  • Pair-hours expended on ticket changed from 4 to 6

r22721 gets this all working, and finishes adapting stuff in pde and continuum_mechanics. The problem we were having with the NULL thing was in nonlinear not linear system, so the SAME_NONZERO_PATTERN was a bit of a red herring. Turned out that explicitly setting the preconditioner to type PCNONE sorted that out.

There is a fair amount of vandalism of the code involved in this though. If anyone has written their own Jacobians for nonlinear systems, then they will need updating to work with PETSc3.5. I'll make a note in LatestNews and ReleaseNotes.

Todo:

  • Add this to the test rotation
  • Add the -citation handling referred to above. We might want to make this work with Petsc's version for >= 3.5, and in a standalone Chaste way for <3.5 ?
Last edited 6 years ago by GaryM (previous) (diff)

comment:6 Changed 6 years ago by louiecn

  • Pair-hours expended on ticket changed from 6 to 9.5

r22749 is mainly about making CommandLineArguments::GetNumberOfArgumentsForOption public, and allowing it to return 0 if the flag exists but has no arguments (previously this would lead to an exception). This sets the scene for using either a -citations flag with no arguments and getting citations to std::cout, or adding a path to a text file e.g. -citations foo.txt.

r22750 gets citations working. If PETSc 3.5+ is used and the flag is given then all citations are handled by PETSc, which for the new test prints two of its own citations and the one we've included (so far) for Chaste.

We mimic this with our own machinery for PETSc versions older than 3.5. The two PETSc citations have been copied over so that the test only needs to compare against one citations.txt regardless of the PETSc version used.

To do: add more citations! See e.g. https://chaste.cs.ox.ac.uk/trac/changeset/22750#file4

comment:7 Changed 6 years ago by louiecn

Small tweaks in r22753.

comment:8 Changed 6 years ago by GaryM

r22759 actually testing something! And a simple example commit in r22760 as an example for LatestNews and ReleaseNotes etc.

comment:9 follow-up: Changed 6 years ago by jonc@…

You broke doxygen!

comment:10 in reply to: ↑ 9 Changed 6 years ago by louiecn

Replying to jonc@…:

You broke doxygen!

r22768 ?

comment:11 Changed 6 years ago by jonc@…

Also fails sometimes in parallel, and on OS X Mavericks:

Running 1 test

 ***** TestCitations.hpp *****


Entering TestChasteCitation
[Markuss-MacBook-Air-2014:66266] *** Process received signal ***
[Markuss-MacBook-Air-2014:66266] Signal: Segmentation fault: 11 (11)
[Markuss-MacBook-Air-2014:66266] Signal code:  (0)
[Markuss-MacBook-Air-2014:66266] Failing at address: 0x0
[Markuss-MacBook-Air-2014:66266] [ 0] 0   libsystem_platform.dylib            0x00007fff98a855aa _sigtramp + 26
[Markuss-MacBook-Air-2014:66266] [ 1] 0   ???                                 0x00007fff5c3aa918 0x0 + 140734740736280
[Markuss-MacBook-Air-2014:66266] [ 2] 0   libopen-pal.6.dylib                 0x000000010611e477 opal_argv_join + 59
[Markuss-MacBook-Air-2014:66266] [ 3] 0   libmpi.1.dylib                      0x0000000105d28faa ompi_mpi_init + 408
[Markuss-MacBook-Air-2014:66266] [ 4] 0   libmpi.1.dylib                      0x0000000105d43665 MPI_Init_thread + 286
[Markuss-MacBook-Air-2014:66266] [ 5] 0   libpetsc.dylib                      0x0000000103d076f9 PetscInitialize + 363
[Markuss-MacBook-Air-2014:66266] [ 6] 0   TestCitationsRunner                 0x00000001038b20f2 _ZN15PetscSetupUtils15InitialisePetscEv + 50
[Markuss-MacBook-Air-2014:66266] [ 7] 0   TestCitationsRunner                 0x00000001038b2130 _ZN15PetscSetupUtils11CommonSetupEv + 16
[Markuss-MacBook-Air-2014:66266] [ 8] 0   TestCitationsRunner                 0x000000010385c0de _ZN13TestCitations18TestChasteCitationEv + 494
[Markuss-MacBook-Air-2014:66266] [ 9] 0   TestCitationsRunner                 0x000000010385bedb _ZN48TestDescription_TestCitations_TestChasteCitation7runTestEv + 27
[Markuss-MacBook-Air-2014:66266] [10] 0   TestCitationsRunner                 0x0000000103857552 _ZN7CxxTest19RealTestDescription3runEv + 34
[Markuss-MacBook-Air-2014:66266] [11] 0   TestCitationsRunner                 0x00000001038701c8 _ZN7CxxTest10TestRunner7runTestERNS_15TestDescriptionE + 120
[Markuss-MacBook-Air-2014:66266] [12] 0   TestCitationsRunner                 0x000000010386ffe3 _ZN7CxxTest10TestRunner8runSuiteERNS_16SuiteDescriptionE + 211
[Markuss-MacBook-Air-2014:66266] [13] 0   TestCitationsRunner                 0x000000010386fdfb _ZN7CxxTest10TestRunner8runWorldEv + 203
[Markuss-MacBook-Air-2014:66266] [14] 0   TestCitationsRunner                 0x000000010386fc66 _ZN7CxxTest10TestRunner11runAllTestsERNS_12TestListenerE + 38
[Markuss-MacBook-Air-2014:66266] [15] 0   TestCitationsRunner                 0x000000010385a3f5 _ZN7CxxTest14ErrorFormatter3runEv + 21
[Markuss-MacBook-Air-2014:66266] [16] 0   TestCitationsRunner                 0x0000000103855b8d main + 93
[Markuss-MacBook-Air-2014:66266] [17] 0   libdyld.dylib                       0x00007fff933af5fd start + 1
[Markuss-MacBook-Air-2014:66266] *** End of error message ***

comment:12 Changed 6 years ago by louiecn

  • Estimated pair-hours remaining changed from 0.5 to 0.1
  • Pair-hours expended on ticket changed from 9.5 to 11

r22851 gets the layout of the reference citations.txt file correct so that the test passes with PETSc 3.5 (the test wasn't doing anything before!). Note that each citation is responsible for its final new line.

r22852 should make the parallel failures go away by making the output directory after PETSc setup. We suspect that previously on some implementations there were several threads doing this independently and fighting. Also put in an exception if the file can't be written to.

Todo: add 3.5 to regular rotation.

comment:13 Changed 6 years ago by GaryM

  • Editable by public set

comment:14 Changed 6 years ago by jonc@…

  • Estimated pair-hours remaining changed from 0.1 to 0
  • Pair-hours expended on ticket changed from 11 to 11.5
  • Resolution set to fixed
  • Status changed from new to closed

Added to rotation in r23339. I'll assume it's fine unless we see a nightly failure, in which case we can re-open the ticket!

comment:15 Changed 6 years ago by jonc@…

  • Pair-hours expended on ticket changed from 11.5 to 12.5

r23349 and r23351 fix some issues with the citation support.

comment:16 Changed 6 years ago by jonc@…

  • Estimated pair-hours remaining changed from 0 to 0.5
  • Resolution fixed deleted
  • Status changed from closed to reopened

Due to r23351 we're seeing some nightly and project tests failing due to the new exception being thrown. While really they should either initialise or fake-initialise PETSc, we should probably change the citation code so it falls back to the Chaste implementation if PETSc hasn't been initialised, rather than throwing. (Although it should perhaps warn on PETSc 3.5?)

comment:17 Changed 6 years ago by jonc@…

  • Estimated pair-hours remaining changed from 0.5 to 0
  • Pair-hours expended on ticket changed from 12.5 to 13.5
  • Resolution set to fixed
  • Status changed from reopened to closed
  • Summary changed from Support PETSc 3.5 to Support PETSc 3.5, and add citation reporting

r23361 fixes the parallel nightly failures by fixing the cached PETSc status when using FakePetscSetup. r23362 removes the citation exception, instead falling back to the Chaste implementation. No warning is given.

comment:18 follow-up: Changed 6 years ago by robinsonm

  • Resolution fixed deleted
  • Status changed from closed to reopened

Found PETSC ERRORS in linalg test TestLinearSystem.hpp, occurs for PETSc version = 3.5.2, and 3.4.2 is ok, so seems to be a PETSc 3.5 issue. The test actually passes, despite the error.

Test output is:

43:  ***** TestLinearSystem.hpp *****
43: 
43: 
43: Entering TestLinearSystem1
43: %Mat Object: 1 MPI processes
43: %  type: seqaij
43: % Size = 3 3 
43: % Nonzeros = 9 
43: zzz = zeros(9,3);
43: zzz = [
43: 1 1  1.0000000000000000e+00
43: 1 2  2.0000000000000000e+00
43: 1 3  3.0000000000000000e+00
43: 2 1  4.0000000000000000e+00
43: 2 2  5.0000000000000000e+00
43: 2 3  6.0000000000000000e+00
43: 3 1  7.0000000000000000e+00
43: 3 2  8.0000000000000000e+00
43: 3 3  9.0000000000000000e+00
43: ];
43:  Mat_0000000084000000_0 = spconvert(zzz);
43: %Vec Object: 1 MPI processes
43: %  type: seq
43: Vec_0000000084000000_1 = [
43: 1.4000000000000000e+06
43: 3.2000000000000000e+06
43: 5.0000000000000000e+06
43: ];
43: [0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
43: [0]PETSC ERROR: Null argument, when expecting valid pointer
43: [0]PETSC ERROR: Null Object: Parameter # 1
43: [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
43: [0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014 
43: [0]PETSC ERROR: D:/chaste_windows/robinsonm/build_petsc_for_windows_release6/linalg/test/Debug/TestLinearSystemRunner.exe on a arch-mswin-c-debug named SCRATCH by chaste Thu Mar 26 14:02:17 2015
43: [0]PETSC ERROR: Configure options --with-cc="win32fe icl" --with-cxx="win32fe icl" --with-fc="win32fe ifort" --with-blas-lapack-dir=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl --with-mpi-include=/cygdrive/d/HardLinks/MSMPI2012R2/Inc/ --with-mpi-lib="[/cygdrive/d/HardLinks/MSMPI2012R2/Lib/amd64/msmpi.lib,/cygdrive/d/HardLinks/MSMPI2012R2/Lib/amd64/msmpifec.lib]" --with-hypre-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/HYPRE --with-hypre-lib=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/HYPRE.lib --with-scalapack-include=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/include --with-scalapack-lib="[/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/lib/intel64/mkl_scalapack_lp64_dll.lib,/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/lib/intel64/mkl_blacs_msmpi_lp64.lib]" --with-metis-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/parametis --with-metis-lib=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/metis.lib --with-parmetis-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/parametis --with-parmetis-lib="[/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/parmetis.lib,/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/metis.lib]" --with-mkl_pardiso --with-mkl_pardiso-dir=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl --with-shared-libraries --with-debugging=yes --useThreads=0 --useThreads=0
43: [0]PETSC ERROR: #1 PCSetReusePreconditioner() line 1126 in D:\WorkDir\PETSC-~1.2\src\ksp\pc\INTERF~1\precon.c
43: [0]PETSC ERROR: #2 KSPSetReusePreconditioner() line 193 in D:\WorkDir\PETSC-~1.2\src\ksp\ksp\INTERF~1\itfunc.c
43: [0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
43: [0]PETSC ERROR: Null argument, when expecting valid pointer
43: [0]PETSC ERROR: Null Object: Parameter # 1
43: [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
43: [0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014 
43: [0]PETSC ERROR: D:/chaste_windows/robinsonm/build_petsc_for_windows_release6/linalg/test/Debug/TestLinearSystemRunner.exe on a arch-mswin-c-debug named SCRATCH by chaste Thu Mar 26 14:02:17 2015
43: [0]PETSC ERROR: Configure options --with-cc="win32fe icl" --with-cxx="win32fe icl" --with-fc="win32fe ifort" --with-blas-lapack-dir=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl --with-mpi-include=/cygdrive/d/HardLinks/MSMPI2012R2/Inc/ --with-mpi-lib="[/cygdrive/d/HardLinks/MSMPI2012R2/Lib/amd64/msmpi.lib,/cygdrive/d/HardLinks/MSMPI2012R2/Lib/amd64/msmpifec.lib]" --with-hypre-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/HYPRE --with-hypre-lib=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/HYPRE.lib --with-scalapack-include=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/include --with-scalapack-lib="[/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/lib/intel64/mkl_scalapack_lp64_dll.lib,/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/lib/intel64/mkl_blacs_msmpi_lp64.lib]" --with-metis-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/parametis --with-metis-lib=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/metis.lib --with-parmetis-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/parametis --with-parmetis-lib="[/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/parmetis.lib,/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/metis.lib]" --with-mkl_pardiso --with-mkl_pardiso-dir=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl --with-shared-libraries --with-debugging=yes --useThreads=0 --useThreads=0
43: [0]PETSC ERROR: #3 PCSetReusePreconditioner() line 1126 in D:\WorkDir\PETSC-~1.2\src\ksp\pc\INTERF~1\precon.c
43: [0]PETSC ERROR: #4 KSPSetReusePreconditioner() line 193 in D:\WorkDir\PETSC-~1.2\src\ksp\ksp\INTERF~1\itfunc.c
43: Passed
43: Entering TestZeroingLinearSystem
43: Passed
43: Entering TestZeroMatrixRowsWithValueOnDiagonal
43: Passed
43: Entering TestAddingNonzeroesLater
43: Passed
43: Entering TestZeroingLinearSystemByColumn
43: Passed
43: Entering TestZeroMatrixRowsAndColumnsWithValueOnDiagonal
43: Passed
43: Entering TestGetMatrixRowDistributed
43: Passed
43: Entering TestCreateFromVector
43: Passed
43: Entering TestLinearSystem2
43: Passed
43: Entering TestNullBasis
43: Passed
43: Entering TestRemoveNullSpace
43: [0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
43: [0]PETSC ERROR: Null argument, when expecting valid pointer
43: [0]PETSC ERROR: Null Object: Parameter # 1
43: [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
43: [0]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014 
43: [0]PETSC ERROR: D:/chaste_windows/robinsonm/build_petsc_for_windows_release6/linalg/test/Debug/TestLinearSystemRunner.exe on a arch-mswin-c-debug named SCRATCH by chaste Thu Mar 26 14:02:17 2015
43: [0]PETSC ERROR: Configure options --with-cc="win32fe icl" --with-cxx="win32fe icl" --with-fc="win32fe ifort" --with-blas-lapack-dir=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl --with-mpi-include=/cygdrive/d/HardLinks/MSMPI2012R2/Inc/ --with-mpi-lib="[/cygdrive/d/HardLinks/MSMPI2012R2/Lib/amd64/msmpi.lib,/cygdrive/d/HardLinks/MSMPI2012R2/Lib/amd64/msmpifec.lib]" --with-hypre-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/HYPRE --with-hypre-lib=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/HYPRE.lib --with-scalapack-include=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/include --with-scalapack-lib="[/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/lib/intel64/mkl_scalapack_lp64_dll.lib,/cygdrive/d/HardLinks/PETSc/Intel2015/mkl/lib/intel64/mkl_blacs_msmpi_lp64.lib]" --with-metis-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/parametis --with-metis-lib=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/metis.lib --with-parmetis-include=/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/include/parametis --with-parmetis-lib="[/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/parmetis.lib,/cygdrive/d/WorkDir/petsc-3.5.2/externalpackages/lib/metis.lib]" --with-mkl_pardiso --with-mkl_pardiso-dir=/cygdrive/d/HardLinks/PETSc/Intel2015/mkl --with-shared-libraries --with-debugging=yes --useThreads=0 --useThreads=0
43: [0]PETSC ERROR: #5 PCSetReusePreconditioner() line 1126 in D:\WorkDir\PETSC-~1.2\src\ksp\pc\INTERF~1\precon.c
43: [0]PETSC ERROR: #6 KSPSetReusePreconditioner() line 193 in D:\WorkDir\PETSC-~1.2\src\ksp\ksp\INTERF~1\itfunc.c
43: Passed

comment:19 in reply to: ↑ 18 ; follow-up: Changed 6 years ago by jmpf@…

Replying to robinsonm:

Found PETSC ERRORS in linalg test TestLinearSystem.hpp, occurs for PETSc version = 3.5.2, and 3.4.2 is ok, so seems to be a PETSc 3.5 issue. The test actually passes, despite the error.

This looks like https://chaste.cs.ox.ac.uk/trac/browser/trunk/linalg/src/LinearSystem.cpp#L687 which was committed as part of r22721. See comments 4 and 5 above.

comment:20 in reply to: ↑ 19 Changed 6 years ago by robinsonm

Replying to jmpf@…:

Replying to robinsonm:

Found PETSC ERRORS in linalg test TestLinearSystem.hpp, occurs for PETSc version = 3.5.2, and 3.4.2 is ok, so seems to be a PETSc 3.5 issue. The test actually passes, despite the error.

This looks like https://chaste.cs.ox.ac.uk/trac/browser/trunk/linalg/src/LinearSystem.cpp#L687 which was committed as part of r22721. See comments 4 and 5 above.

Think you are right. I think that PETSc doesn't like the combination of:

#if ( PETSC_VERSION_MAJOR==3 && PETSC_VERSION_MINOR>=5 )
      if (mMatrixIsConstant)
      {
            // Attempt to emulate SAME_PRECONDITIONER below
	    KSPSetReusePreconditioner(mKspSolver, PETSC_TRUE);
      }
#else

and

 // Turn off pre-conditioning if the system size is very small
 if (mSize <= 6) ///\todo This is a magic number.  Do we want a warning here?
 {
    PCSetType(prec, PCNONE);
 }

only using KSPSetReusePreconditioner(mKspSolver, PETSC_TRUE); for mSize > 6 fixes the problem for TestLinearSystem.hpp.

Fixed in r23970.

Last edited 6 years ago by robinsonm (previous) (diff)

comment:21 Changed 6 years ago by robinsonm

  • Resolution set to fixed
  • Status changed from reopened to closed

comment:22 follow-up: Changed 6 years ago by jonc@…

The naming convention says we should call the variable is_small not isSmall.

comment:23 in reply to: ↑ 22 Changed 6 years ago by robinsonm

Replying to jonc@…:

The naming convention says we should call the variable is_small not isSmall.

whoops :( thanks, fixed now.

Note: See TracTickets for help on using tickets.