Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hilbert schemes #37

Open
wants to merge 4,267 commits into
base: hilbert-schemes
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4267 commits
Select commit Hold shift + click to select a range
bdb3806
Merge pull request #2772 from d-torrance/tests
DanGrayson Mar 11, 2023
fefb3fa
Merge pull request #2775 from d-torrance/test-locate
DanGrayson Mar 11, 2023
b42a0c4
Merge pull request #2776 from d-torrance/programs
DanGrayson Mar 11, 2023
c77e1c0
Merge pull request #2778 from giovannistagliano/development
DanGrayson Mar 11, 2023
c65de53
Merge pull request #2781 from d-torrance/startup
DanGrayson Mar 11, 2023
f33935d
Merge pull request #2788 from d-torrance/ffi-texmath
DanGrayson Mar 11, 2023
5a5aef6
LieTypes major update, MergeTex and OnlineLookup minor fixes
pzinn Mar 11, 2023
6fd0832
fix #2713 and assorted alphanum clarifications
pzinn Jan 26, 2023
1cca367
Merge pull request #2790 from d-torrance/prismjs
DanGrayson Mar 13, 2023
e7128c9
Merge pull request #2793 from pzinn/lietypes
DanGrayson Mar 13, 2023
603b30c
Merge pull request #2794 from pzinn/main
DanGrayson Mar 13, 2023
3429992
replaced intarray with gc_vector<int>
mahrud Dec 21, 2022
4af767c
combined varpower types into ExponentList<T>
mahrud Dec 20, 2022
59e56c5
switched to range-based loops for Nterms
mahrud Jan 5, 2023
3f00e40
renamed and moved IM2_kernel_of_GB -> rawKernelOfGB
mahrud Jan 11, 2023
6968ab3
declare gc_vector outside loop
mahrud Mar 12, 2023
404fd49
Update M2-emacs commit
d-torrance Mar 13, 2023
dcc230a
Only copy editor files to build directory in out-of-tree builds
d-torrance Mar 14, 2023
aaf6401
Only clean generated files in editors directory with in-tree builds
d-torrance Mar 14, 2023
64d4b0d
Bump "checkout" GitHub action to v3
d-torrance Mar 14, 2023
469652c
Bump "cache" GitHub action to v3
d-torrance Mar 15, 2023
4db2604
Bump "upload-artifact" GitHub action to v3
d-torrance Mar 15, 2023
ff9bb2a
Change T#1 from unit element to function that returns unit element
d-torrance Mar 18, 2023
f3e5b3d
Add support for concatenating matrices w/ numbers (not just ZZ)
d-torrance Mar 25, 2023
9f2c6ad
Update docs for matrix concatenation w/ numbers
d-torrance Mar 25, 2023
8c58d85
Add unit tests for matrix concatenation w/ numbers & ring elements
d-torrance Mar 25, 2023
e08375a
Added some error messages.
kschwede Mar 25, 2023
aeb2170
[Polyhedra.m2] affineImage should take lineality into account
lkastner Mar 29, 2023
960fc86
[Polyhedra.m2] check that affineImage respects lineality
lkastner Mar 29, 2023
8e78fce
minor update to SpecialFanoFourfolds
giovannistagliano Apr 2, 2023
1eccf5c
Merge pull request #2796 from d-torrance/update-emacs
DanGrayson Apr 4, 2023
38f0a0d
Merge pull request #2798 from d-torrance/checkout-v3
DanGrayson Apr 4, 2023
826bb98
Merge pull request #2802 from d-torrance/matrix-concat
DanGrayson Apr 4, 2023
3ba59c8
Merge pull request #2805 from lkastner/lk/affineImage/lineality
DanGrayson Apr 4, 2023
f2f6640
Merge pull request #2807 from giovannistagliano/development
DanGrayson Apr 4, 2023
d29b107
fixed warning that showed upon package installation
mgacummings Apr 14, 2023
3764b21
Sets of rational maps between varieties
giovannistagliano Apr 15, 2023
90bfd34
nothing
giovannistagliano Apr 15, 2023
bcf9e62
configure: Port numeric getaddrinfo check to C99
fweimer-rh Apr 15, 2023
c23ca68
add sets of dominant maps
giovannistagliano Apr 16, 2023
75694e6
replace Rat with Hom
giovannistagliano Apr 18, 2023
559dea9
Replace "member" in Core with "isMember" (w/ "member" as a synonym)
d-torrance Apr 17, 2023
8b27280
Update documentation for "member" -> "isMember" change
d-torrance Apr 17, 2023
9d020c4
Update names unit test after member -> isMember change
d-torrance Apr 18, 2023
31e21cd
Replace "mutable" with "isMutable" to match other predicates in M2
d-torrance Apr 19, 2023
f7d497d
Fix display bug for synonym error
d-torrance Apr 19, 2023
a99b4b4
Update docs after "mutable" -> "isMutable" switch
d-torrance Apr 19, 2023
373669f
Update names unit test after "mutable" -> "isMutable" switch
d-torrance Apr 19, 2023
1de0584
Update basic tests after "mutable" -> "isMutable" switch
d-torrance Apr 20, 2023
d0d1c68
Remove Py_SetProgramName call (optional & deprecated in Python 3.11)
d-torrance Apr 23, 2023
ba3d6c9
make net OL start at zero, various minor output fixes
pzinn Apr 28, 2023
ee40a56
fix #2811
pzinn Apr 28, 2023
46fa890
Bump copyright year for Pygments lexer
d-torrance May 5, 2023
ebdf846
increase version number
giovannistagliano May 10, 2023
082c200
Merge pull request #2756 from antonleykin/ReactionNetworks
DanGrayson May 10, 2023
b3366c7
Merge pull request #2797 from d-torrance/editors-makefile
DanGrayson May 10, 2023
6d2882c
Merge pull request #2803 from kschwede/master
DanGrayson May 10, 2023
95c6d56
Merge pull request #2812 from mgacummings/master
DanGrayson May 10, 2023
4c57008
Merge pull request #2813 from giovannistagliano/development
DanGrayson May 10, 2023
401d742
Merge pull request #2814 from fweimer-rh/c99
DanGrayson May 10, 2023
2177517
Merge pull request #2816 from d-torrance/python
DanGrayson May 10, 2023
e4439bb
Merge pull request #2818 from pzinn/main
DanGrayson May 10, 2023
4677036
Merge pull request #2821 from d-torrance/pygments
DanGrayson May 10, 2023
3d29c08
switched to llvm@14 for Github Actions
mahrud Apr 21, 2023
b12873c
keywords for NumericalSchubertCalculus
May 11, 2023
b1d6689
Add unit element for ring maps to support 0th powers
d-torrance Mar 18, 2023
ed72f83
Add some unit tests for RingMap^ZZ
d-torrance Mar 18, 2023
a056f0f
Install unit element for Matrix
d-torrance Mar 18, 2023
af99461
Install unit element for MonomialIdeal
d-torrance Mar 18, 2023
cdb4ba0
Remove unused CC^ZZ method
d-torrance Mar 18, 2023
3c8719c
Update hash table test to use BinaryPowerMethod
d-torrance Mar 18, 2023
0f02f48
Raise error for 0th powers of matrices when source/target disagree
d-torrance May 12, 2023
12ca94e
Remove tests that fails with new matrix power behavior
d-torrance May 12, 2023
69417e8
fix #2825
pzinn May 13, 2023
c7c9469
Bump ForeignFunctions package to version 0.2
d-torrance May 13, 2023
abb7ff9
Bump Python package to version 0.5
d-torrance May 13, 2023
adc03b1
add MatchingFields package
ollieclarke8787 May 13, 2023
6494888
added MatchingFields to dist-package
ollieclarke8787 May 13, 2023
32898da
Merge pull request #2824 from antonleykin/NumericalSchubertCalculus
DanGrayson May 13, 2023
34dbdd8
Merge pull request #2827 from pzinn/main
DanGrayson May 13, 2023
aa57f7d
Merge pull request #2829 from d-torrance/bump-versions
DanGrayson May 13, 2023
cb6c84a
Merge pull request #2830 from ollieclarke8787/master
DanGrayson May 13, 2023
6914978
Merge pull request #2815 from d-torrance/member
DanGrayson May 13, 2023
35f628b
Merge pull request #2799 from d-torrance/ring-map-power
DanGrayson May 13, 2023
23c0f53
minor changes in a function
goelKriti May 14, 2023
a60c877
Add a CellularResolutions package.
jkyang92 May 15, 2023
f7df987
fix MatchingFields typos
ollieclarke8787 May 15, 2023
732963c
update version and date
mahrud Nov 15, 2021
7016060
moved tests in module-ops.tst to Dbasics.m2 and added some assertions
patriciajklein Jan 31, 2020
a2a5213
Expanded Fourier in Dbasics
patriciajklein Jun 8, 2022
2687416
Fixed typos in GKZ in Dsystems
patriciajklein Jun 8, 2022
d1a5a83
Replacing toricIdealPartials in Dsystems docs
patriciajklein Jun 9, 2022
eba4f0c
Update Dsystems.m2
patriciajklein Jun 9, 2022
b6f0cad
Added documentation to annFs and exported diffRatFun
patriciajklein Jun 9, 2022
8d5bad9
added an example and doc note
christineBerkesch Jun 9, 2022
a6b0638
finished solveFrobeniusIdeal
mahrud Jun 9, 2022
329c23a
small notes
christineBerkesch Jan 11, 2023
a03bd0f
split Dmodules into several parts
mahrud Aug 25, 2022
86cdd8a
added cssLeadTerm
mahrud Jan 11, 2023
dac8076
zero modules are holonomic
mahrud Jan 11, 2023
361bf7f
The Great Schism
mahrud Feb 10, 2023
be81532
changes in other packages
mahrud Feb 10, 2023
2c3cda7
move a D-modules test
mahrud Feb 13, 2023
67c81de
changed package name in ComputationsBook/d-modules
mahrud Feb 13, 2023
7024d8c
fixme: disable a canonical series test
mahrud Feb 10, 2023
78327f1
added an error message to Dtransposition
AviSteiner Feb 18, 2023
6807f5f
added missing documentation files
mahrud Feb 18, 2023
1008209
AnnIFs doc
Feb 18, 2023
694edc6
Changed the name of charIdeal to characteristicIdeal, keeping the old…
AviSteiner Feb 18, 2023
43c78f4
Forgot to export a symbol. Fixed now.
AviSteiner Feb 18, 2023
998cc36
Renamed BMM
AviSteiner Feb 18, 2023
7cb388e
added missing documentation for HolonomicSystems
mahrud Feb 18, 2023
a9edfec
paramBpoly cleaned up and documented; now it outputs the stratificati…
Feb 18, 2023
295aba6
exporting paramBpoly
Feb 18, 2023
08e0773
Added doc for eulerOperators
patriciajklein Feb 18, 2023
e307c37
Renamed singLocus to DsingularLocus
AviSteiner Feb 18, 2023
784e5d5
Update Dsystems.m2
patriciajklein Feb 19, 2023
f5f86c7
Renamed RatAnn and PolyAnn
AviSteiner Feb 18, 2023
387ef94
Finished renaming RatAnn and PolyAnn
AviSteiner Feb 18, 2023
0264ec9
re-renamed polyann and ratann
AviSteiner Feb 18, 2023
823bb10
renamed PolyExt
AviSteiner Feb 18, 2023
ebce567
renamed PolySols
AviSteiner Feb 19, 2023
e913c59
Update Dbasic.m2
patriciajklein Feb 19, 2023
a32cd26
Update Dbasic.m2
patriciajklein Feb 19, 2023
1f5c59e
Update main.m2
patriciajklein Feb 19, 2023
98de48e
updated some stuff with the documentation of DlocalizeAll. Fixed some…
AviSteiner Feb 19, 2023
9c11562
renamed some things.
AviSteiner Feb 19, 2023
9f2624c
updating intersectionCohomology
lorinczandras Feb 19, 2023
fef24f6
fixed a bug in makeLogMonomial
mahrud Feb 18, 2023
61758e1
rename [Dprune, optGB] to [Dprune, MinimalGenerators]
mahrud Feb 20, 2023
d175b73
fixed Gröbner in the documentation
mahrud Feb 20, 2023
59fb602
fixed documentation of makeWA
mahrud Feb 20, 2023
a0117d0
fixed bug in processing WeylAlgebra => { (x, y) => (dx, dy) }
mahrud Feb 20, 2023
d1ae084
Update canonicalSeries.m2
christineBerkesch Feb 27, 2023
c3bb50a
added start of nilssonSupportTruncated
christineBerkesch Mar 22, 2023
15373c8
proof of concept of finding truncated canonical series
mahrud May 9, 2023
8d637c3
updated nilsson support truncated
christineBerkesch May 9, 2023
ec0fbfc
cleaned up nilssonSupportCone and fixed nilssonSupportTruncated
mahrud May 11, 2023
c58ad46
added nonpositiveWeightGens
christineBerkesch May 12, 2023
5f59ebe
cleaned up more
christineBerkesch May 12, 2023
9862b9c
implemented first version of truncatedCanonicalSeries
mahrud May 13, 2023
e708751
expanded a truncated canonical series test
mahrud May 15, 2023
81db72c
Dmodules installs and passes all tests
mahrud Feb 20, 2023
5019084
HolonomicSystems installs and passes all tests
mahrud Feb 20, 2023
61c869b
BernsteinSato installs and passes all tests
mahrud Feb 20, 2023
329a8e5
Merge pull request #2832 from goelKriti/master
DanGrayson May 15, 2023
087d94b
Merge pull request #2833 from jkyang92/cellularres
DanGrayson May 15, 2023
1368ff8
Merge pull request #2834 from ollieclarke8787/development
DanGrayson May 15, 2023
1150d48
renamed nilssonStart to cssLeadTerm again
mahrud May 15, 2023
5fb125c
fixed a broken test
mahrud May 15, 2023
3603628
Update M2-emacs commit
d-torrance May 15, 2023
a132e57
merge development
timduff35 May 16, 2023
14c6606
add SagbiGBdetection package, minor MonodromySolver changes
timduff35 May 16, 2023
325f302
update package list
timduff35 May 16, 2023
7fb28b1
resolutionByHomogenization added, still needs some testing.
mikestillman May 19, 2022
62b0b19
minor changes to test
mikestillman Jun 20, 2022
8dcdde6
Fix some bugs, clean up some test code, and add in resolutions of ZZ-…
mikestillman Jun 20, 2022
e14889e
added in last changes from July 2022
mikestillman Jan 5, 2023
3828da6
Include ResolutionObject.m2 from the main Complexes.m2 file, changes …
mikestillman Jan 10, 2023
f854a79
Change name ResolutionObject.m2 to FreeResolutions.m2
mikestillman Jan 10, 2023
77aaa94
moved truncation code to Truncations package
mikestillman Jan 31, 2023
5634b9a
started adding in tests for free resolutions
mikestillman Jan 31, 2023
98a314d
separate dependencies if Truncations and Complexes. Required moving…
mikestillman Feb 7, 2023
14d02d0
changes to Complexes doc+tests, plus some bug fixes found during that…
mikestillman Feb 15, 2023
18e54c5
added tests and fixed a couple of bugs
mikestillman Mar 7, 2023
6c67d07
cleaned up and moved around free resolution test code (from 3 weeks ago)
mikestillman Apr 11, 2023
7338e61
Finish cleaning/moving free resolution tests
mikestillman Apr 12, 2023
26d1f89
Add in the basic free resolution documentation
mikestillman May 1, 2023
ab5be66
More doc of freeResolution
mikestillman May 17, 2023
c4a355d
print list of optional libraries in cmake
mahrud Apr 30, 2023
9454291
minor addition in INSTALL-CMake.md
mahrud Apr 30, 2023
c842716
address warnings
timduff35 May 17, 2023
2849674
remove typo
timduff35 May 17, 2023
6fc0265
Merge pull request #2836 from mahrud/Dmodules
DanGrayson May 17, 2023
74c417b
Merge pull request #2837 from d-torrance/update-emacs
DanGrayson May 17, 2023
509b00f
RemakeDocumentation working for both packages
timduff35 May 17, 2023
6ad1c2e
resolve conflicts
timduff35 May 17, 2023
0b15cee
Fix a bug in scarfComplex
jkyang92 May 18, 2023
871d6f8
Switch member -> isMember in Python package
d-torrance May 18, 2023
ec7a273
Add keyword to Python package (Interfaces)
d-torrance May 18, 2023
7e77f7a
Update date and changelog for Python 0.5
d-torrance May 18, 2023
e55858a
added msolve as a library for cmake
mahrud Jun 27, 2021
2ffa095
added build-msolve target for cmake
mahrud Dec 11, 2021
0fe19b9
added build-msolve to ISNTALL-CMake.md
mahrud May 18, 2023
a9f5311
Merge pull request #2840 from timduff35/master
DanGrayson May 18, 2023
16c277a
Merge pull request #2842 from mahrud/feature/cmake
DanGrayson May 18, 2023
9705b10
Merge pull request #2843 from d-torrance/python
DanGrayson May 18, 2023
7da5a50
Merge pull request #2844 from jkyang92/cellularres
DanGrayson May 18, 2023
52f3a8d
added docker image for testbot
mahrud May 18, 2023
daa03c9
Merge pull request #2845 from mahrud/feature/docker
DanGrayson May 19, 2023
4a367a7
tell msolve how to find gmp, mpfr, flint
mahrud May 19, 2023
8a8f3ed
tell msolve to build with openmp
mahrud May 19, 2023
7ad4a2c
disabled automatically building msolve
mahrud May 19, 2023
f38c3dc
Begin 1.22 changelog
d-torrance May 19, 2023
8d7d0f7
Merge pull request #2846 from mahrud/feature/cmake
DanGrayson May 19, 2023
862517c
Merge pull request #2848 from d-torrance/changelog
DanGrayson May 19, 2023
6661dff
Use CSS counters to mimic "start" attribute for <ol> tags
d-torrance Mar 12, 2023
30ada6b
Merge pull request #2795 from d-torrance/xhtml-ol-start
DanGrayson May 21, 2023
fe6dafe
Revert "Use CSS counters to mimic "start" attribute for <ol> tags"
DanGrayson May 21, 2023
6027acf
Begin XHTML 1.1 -> HTML 5 transition; update <!DOCTYPE> and <html>
d-torrance May 22, 2023
789bcc5
Add additional attributes for SCRIPT objects
d-torrance May 22, 2023
a4b84de
Drop trailing slash in html from HypertextVoid objects
d-torrance May 22, 2023
83557d0
Drop "text/javascript" from Prism SCRIPT tag; unnecessary in HTML 5
d-torrance May 22, 2023
6b64485
Make STYLE a child of HypertextParagraph
d-torrance May 22, 2023
dcd28c1
Add KBD, SAMP, and VAR to eventually replace TT
d-torrance May 22, 2023
0be6d50
Update html(TT) for HTML5 validation
d-torrance May 22, 2023
78cc76e
Update formatting unit tests for new html(TT) behavior
d-torrance May 22, 2023
302a85d
Add tex and texMath methods for KBD, SAMP, and VAR
d-torrance May 22, 2023
3075c62
Remove urlEncode from OnlineLookup (will move to Core)
d-torrance May 23, 2023
a74a654
Add urlEncode to Core
d-torrance May 23, 2023
164a1a5
Use urlEncode on output of toURL
d-torrance May 23, 2023
4614a50
HTML5 validation updates for KaTeX code
d-torrance May 23, 2023
3e11243
Remove unnecessary "type" attribute from <script> tag in Text docs
d-torrance May 23, 2023
0bfe345
We changed Ext to not immediately prune its results. So the test and…
mikestillman May 23, 2023
d8887f2
Update "make validate-html" for HTML5
d-torrance May 23, 2023
792ec14
Remove unnecessary "type" attribute from <script> tag in Complexes
d-torrance May 23, 2023
c7cd6c6
Document KBD, SAMP, and VAR
d-torrance May 23, 2023
05be27e
Add KBD, SAMP, and VAR to validContent hash table for validate()
d-torrance May 23, 2023
f85d104
Document urlEncode
d-torrance May 24, 2023
2bb081f
Add CSS for <kbd> tags (inspired by GitHub's CSS)
d-torrance May 24, 2023
c4bf533
Add unit test for urlEncode
d-torrance May 24, 2023
048f624
TT -> SAMP
pzinn Mar 22, 2023
2d1cdc8
Fix bug found during testing: computing the free resolution of the ze…
mikestillman May 24, 2023
3a6ad44
Add GitHub workflow for validating HTML documentation
d-torrance May 25, 2023
c10ee14
Use arXiv method for link in threeDimSklyanin docs
d-torrance May 26, 2023
58d72ab
Merge pull request #2850 from d-torrance/html5
DanGrayson May 26, 2023
8e155a0
Added code to easily see the differential of a DGAlgebra as block mat…
moorewf May 26, 2023
2739555
Mention HTML5-related changes in 1.22 changelog
d-torrance May 26, 2023
3847143
Merge development
moorewf May 26, 2023
1074ce3
Fix some spelling errors.
moorewf May 26, 2023
c8a8374
Quote string hash table keys
d-torrance May 27, 2023
a68bfb5
minor HTML/CSS, doc
pzinn May 27, 2023
13fc4cb
stash complex of a module, and fix free resolution for zero modules
mikestillman May 29, 2023
e7c9765
Merge pull request #2841 from mikestillman/complexes-for-1-22-rebased
DanGrayson May 31, 2023
5053233
Merge pull request #2851 from d-torrance/html5
DanGrayson May 31, 2023
d33a2ef
Merge pull request #2852 from moorewf/DGAlgebrasUpdate
DanGrayson May 31, 2023
a26e806
Merge pull request #2853 from d-torrance/hash-table-string-keys
DanGrayson May 31, 2023
6cba559
Merge pull request #2854 from pzinn/main
DanGrayson May 31, 2023
6f30747
bug fix from Mike
DanGrayson Jun 6, 2023
1aca311
bug fix from Mike
DanGrayson Jun 6, 2023
8df01f4
Merge branch 'pre-master'
DanGrayson Jun 7, 2023
78b1482
fix github issue #2865
mikestillman Jun 7, 2023
e08f5f1
get ready for next release
DanGrayson Jun 13, 2023
5572c8a
Merge branch 'pre-master'
DanGrayson Jun 14, 2023
d55ea7c
Converted mutable matrices to matrices in instances of `sub()`
Jun 27, 2023
379c963
Merge pull request #2892 from bstone/master
DanGrayson Aug 12, 2023
b0c7791
Updated keywords as per the issue #2935
dr-rizwanj Oct 18, 2023
86d6c70
Merge pull request #2966 from j-rizwan/fix-keywords
DanGrayson Oct 26, 2023
28bbd10
Merge branch 'hilbert-schemes' of https://github.com/mikestillman/M2 …
aalmousa Mar 19, 2024
0d13313
updating HilbertSchemes package to match local files
aalmousa Mar 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
73 changes: 73 additions & 0 deletions .codespell_ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
afterwords
alledges
allready
alot
alph
ans
anumber
archiv
assasin
ba
bloks
braket
bu
comon
coo
damon
debugg
dorder
egal
enew
euclidian
exitance
falsy
falt
firsth
fo
formes
freee
froms
fullfil
geometrie
hart
includee
independant
inh
inot
inout
intall
ist
ket
lamda
lod
lond
lsat
methd
mor
multidimension
nam
nd
nin
numer
openin
ore
ot
packge
pres
pring
projet
reseting
returne
ser
singl
skelton
sring
strat
sur
te
thets
toom
translater
tring
trough
ue
20 changes: 20 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Lint
on:
push: { branches: [ "development" ] }
pull_request: { branches: [ "development" ] }

jobs:
codespell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
shell: bash -l {0}
run: |
sudo apt-get install -y codespell
- name: Run codespell
shell: bash -l {0}
run: codespell --ignore-words=.codespell_ignore M2/Macaulay2/packages

env:
MAKEFLAGS: -j2
167 changes: 110 additions & 57 deletions .github/workflows/test_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,14 @@
name: Build and Test Macaulay2

on:
workflow_dispatch:
push:
branches:
- release-1.17
- pre-master # when we're ready to merge 'development' into 'master', we merge it first into 'pre-master', so it can be tested
pull_request:
branches:
- master
- development
- release-1.17
schedule:
# cron time in UTC
# a scheduled job runs on the default branch: 'master'
Expand All @@ -33,36 +32,37 @@ jobs:
name: ${{ matrix.build-system }}-${{ matrix.os }}-${{ matrix.compiler }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false # eventually make this true
fail-fast: false
matrix:
build-system:
- cmake
- autotools
os:
- ubuntu-latest
- macos-latest
- ubuntu-22.04
- macos-12
compiler:
- gcc9
- default
include:
- build-system: cmake
compiler: gcc9
cxx: g++-9
cc: gcc-9
os: ubuntu-22.04
compiler: clang-14
cxx: clang++-14
cc: clang-14
# This build tests Clang rather than AppleClang (keep)
- build-system: cmake
os: ubuntu-latest
compiler: clang10
cxx: clang++-10
cc: clang-10
os: macos-12
compiler: clang-15
cxx: clang++
cc: clang
exclude:
- build-system: autotools
compiler: gcc9
- build-system: cmake
os: macos-latest
compiler: gcc9
os: macos-12
compiler: default
env:
VERBOSE: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

# ----------------------
# Install missing tools and libraries for macOS
Expand All @@ -72,9 +72,9 @@ jobs:
if: runner.os == 'macOS'
run: |
brew config
# autoconf, libtool are already in the virtual env
brew install automake ccache gnu-tar make ninja pkg-config yasm
brew install bdw-gc boost cddlib eigen flint glpk libatomic_ops libomp mpfr mpir ncurses ntl tbb
brew tap macaulay2/tap
brew install automake boost tbb ccache ctags llvm@14 make ninja yasm libffi
brew install --only-dependencies macaulay2/tap/M2

# ----------------------
# Install missing tools and libraries for Linux
Expand All @@ -83,44 +83,43 @@ jobs:
- name: Install requirements for Linux
if: runner.os == 'Linux'
run: |
sudo add-apt-repository -y ppa:profzoom/macaulay2
sudo add-apt-repository -y -n ppa:macaulay2/macaulay2
sudo apt-get update
sudo apt-get install -y -q --no-install-recommends clang-10 gfortran libtool-bin ninja-build yasm ccache
sudo apt-get install -y -q --no-install-recommends clang-14 gfortran libtool-bin ninja-build yasm ccache
sudo apt-get install -y -q --no-install-recommends libatomic-ops-dev libboost-stacktrace-dev \
libncurses-dev libncurses5-dev libreadline-dev libeigen3-dev liblapack-dev libxml2-dev \
libgc-dev libgdbm-dev libglpk-dev libgmp3-dev libgtest-dev libmpfr-dev libntl-dev gfan \
libcdd-dev libgivaro-dev libboost-regex-dev fflas-ffpack w3c-markup-validator \
cohomcalg libflint-dev libmps-dev topcom \
libsingular-dev libfrobby-dev libgtest-dev libmemtailor-dev libmathic-dev \
libmathicgb-dev 4ti2 normaliz coinor-csdp nauty lrslib singular-data
libgc-dev libgdbm-dev libglpk-dev libgmp3-dev libgtest-dev libmpfr-dev libmpfi-dev libntl-dev gfan \
libgivaro-dev libboost-regex-dev fflas-ffpack libflint-dev libmps-dev libfrobby-dev \
libsingular-dev singular-data libcdd-dev cohomcalg topcom 4ti2 normaliz coinor-csdp \
nauty lrslib polymake phcpack w3c-markup-validator libtbb-dev qepcad libomp-14-dev

# ----------------------
# Steps common to all build variants
# ----------------------

- name: Prepare build environment
run: |
echo "CC=${{ matrix.cc }}" >> $GITHUB_ENV
echo "CC=${{ matrix.cc }}" >> $GITHUB_ENV
echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=`brew --prefix`/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
if [[ "${{ runner.os }}" == "Linux" ]]
then echo "/usr/lib/ccache" >> $GITHUB_PATH
then alias llvm-config="llvm-config-14"
echo "/usr/lib/ccache" >> $GITHUB_PATH
else echo `brew --prefix ccache`/libexec >> $GITHUB_PATH
echo `brew --prefix make `/libexec/gnubin >> $GITHUB_PATH
echo `brew --prefix llvm@14`/bin >> $GITHUB_PATH
PATH=`brew --prefix llvm@14`/bin:$PATH
fi
# Necessary for clang to find the right libomp
echo "LIBRARY_PATH=`llvm-config --libdir`" >> $GITHUB_ENV

- uses: actions/cache@v2
if: matrix.build-system == 'cmake' # TODO: remove when autotools is more efficient with space
- uses: actions/cache@v3
if: matrix.build-system == 'cmake'
id: restore-cache
with:
path: |
~/.ccache
~/M2/BUILD/build/usr-host
key: build-cache-${{ runner.os }}-${{ matrix.compiler }}-${{ matrix.build-system }}-${{ hashFiles('**/cmake/*-libraries.cmake') }}
restore-keys: |
build-cache-${{ runner.os }}-${{ matrix.compiler }}-${{ matrix.build-system }}-
build-cache-${{ runner.os }}-${{ matrix.compiler }}-
build-cache-${{ runner.os }}-
~/work/M2/M2/M2/BUILD/build/usr-host
key: build-cache-${{ runner.os }}-${{ matrix.compiler }}-${{ matrix.build-system }}-${{ hashFiles('**/cmake/*-libraries.cmake', '.github/workflows/test_build.yml') }}


# ----------------------
Expand All @@ -131,18 +130,26 @@ jobs:
if: matrix.build-system == 'cmake'
run: |
cmake -S../.. -B. -GNinja \
-DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_SYSTEM_PREFIX_PATH=`brew --prefix` \
-DBUILD_NATIVE=OFF -DBUILD_LIBRARIES="Givaro;FFLAS_FFPACK" # TODO: remove when the packages are updated
-DCMAKE_BUILD_TYPE=Release -DBUILD_NATIVE=OFF \
-DCMAKE_PREFIX_PATH="`brew --prefix`;`brew --prefix libffi`" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DWITH_PYTHON=ON \
--debug-trycompile

- name: Build libraries using Ninja
if: matrix.build-system == 'cmake' # && steps.restore-cache.outputs.cache-hit != 'true'
if: matrix.build-system == 'cmake'
run: |
cmake --build . --target build-libraries build-programs

- name: Build Macaulay2 using Ninja
if: matrix.build-system == 'cmake'
run: |
cmake --build . --target M2-core install-packages
cmake --build . --target M2-core M2-emacs install-packages
if [[ "${{ runner.os }}" == "Linux" ]] && [[ "${{ matrix.compiler }}" == "clang-14" ]]; then
sudo apt-get install -y -q --no-install-recommends dpkg-dev
echo "GIT_COMMIT=`git describe --dirty --always --match HEAD`" >> $GITHUB_ENV
cpack -G DEB
fi

# ----------------------
# Configure and build M2 using Autotools
Expand All @@ -153,7 +160,12 @@ jobs:
run: |
make -C ../.. get-libtool get-automake get-autoconf
make -C ../.. all
../../configure --enable-download
export PYVERSION=`python3 -c "from sys import version_info; \
print(f'{version_info.major}.{version_info.minor}')"`
export CPPFLAGS="-I`brew --prefix`/include -I`brew --prefix libomp`/include"
export LDFLAGS="-L`brew --prefix`/lib -L`brew --prefix libomp`/lib \
-L/Library/Frameworks/Python.framework/Versions/${PYVERSION}/lib"
../../configure --enable-download --with-python --with-system-gc

- name: Build Macaulay2 using Make
if: matrix.build-system == 'autotools'
Expand All @@ -165,37 +177,78 @@ jobs:
# ----------------------

- name: Run Tests using CTest
if: matrix.build-system == 'cmake' && matrix.compiler == 'default'
if: matrix.build-system == 'cmake' && runner.os == 'Linux' && matrix.compiler == 'clang-14'
run: |
# cmake --build . --target M2-unit-tests
# ctest -R "unit-tests"
# TODO: remove the excluded normal tests
ctest -R "normal/" -E "command|program|schenck|threads|doc-links" -j4 --output-on-failure
# TODO: add engine tests
set -xe
./M2 -q --check 1 -e 'exit 0'
./M2 -q --check 2 -e 'exit 0'
./M2 -q --check 3 -e 'exit 0'
cmake --build . --target M2-tests
cmake --build . --target M2-unit-tests
cmake --build . --target memtailor-unit-tests mathic-unit-tests mathicgb-unit-tests
ctest -j1 --output-on-failure -R "unit-tests"
ctest -j4 --output-on-failure -R "ComputationsBook"
# TODO: add Macaulay2/tests/engine when https://github.com/Macaulay2/M2/issues/1213 is fixed

- name: Run Tests using Autotools
if: matrix.build-system == 'autotools' && matrix.os == 'ubuntu-latest' && matrix.compiler == 'default'
if: matrix.build-system == 'autotools' && runner.os == 'Linux' && matrix.compiler == 'default'
run: |
make check -o check-in-libraries
make -C Macaulay2/html-check-links check
make validate-html

- name: Validate HTML documentation
if: matrix.build-system == 'autotools' && runner.os == 'Linux'
run: |
python3 -m pip install html5validator
if test ${{ github.event_name }} = pull_request
then
git fetch --depth=1 origin development
# validate everything if any changes to Core
if test "$(git diff --stat origin/development HEAD -- ../../Macaulay2/m2)"
then
make validate-html
else
# otherwise, just validate HTML docs for packages that have been updated
PACKAGES=$(git diff --stat origin/development HEAD -- ../../Macaulay2/packages/ | grep -Po "(?<=Macaulay2/packages/)[^/\.]*(?=\.m2|/)" | uniq)
make validate-html PACKAGES="$PACKAGES"
fi
else
# if not a pull request (scheduled or pre-master builds), then validate everything
make validate-html
fi

# ----------------------
# Upload build logs
# Upload build artifacts
# ----------------------

- name: Upload build logs
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.build-system }}-${{ matrix.os }}-${{ matrix.compiler }}-logs
path: |
# Autotools
M2/BUILD/build/config.log
M2/BUILD/build/include/*
M2/BUILD/build/libraries/*/build/*/config.log
# CMake
M2/BUILD/build/CMakeFiles/CMakeCache.txt
M2/BUILD/build/CMakeFiles/CMake(Error|Output).log
M2/BUILD/build/CMakeCache.txt
M2/BUILD/build/CMakeFiles/CMakeError.log
M2/BUILD/build/CMakeFiles/CMakeOutput.log
M2/BUILD/build/libraries/*/build/config.log
# Example errors
# package example errors
M2/BUILD/build/usr-dist/common/share/doc/Macaulay2/*/example-output/*.errors
# package test errors under Ubuntu
/tmp/M2-*/*.tmp
/tmp/M2-*/*.m2
# Test errors
M2/BUILD/build/Macaulay2/tests/*/*.errors

- name: Upload Macaulay2 package for Ubuntu (x86_64)
if: matrix.build-system == 'cmake' && runner.os == 'Linux' && matrix.compiler == 'clang-14' && success()
uses: actions/upload-artifact@v3
with:
name: Macaulay2-${{ env.GIT_COMMIT }}-ubuntu-x86_64
path: |
M2/BUILD/build/Macaulay2-*
retention-days: 1
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@
/M2/Macaulay2/m2/TAGS.doc
/M2/build-vscode
/M2/BUILD/dan/builds.tmp
/M2/BUILD/frank
/M2/autom4te.cache
/M2/configure
/M2/include/M2/config.h.in
/M2/include/M2/config.h.in~
/M2/include/M2/config.h
/M2/include/M2/config.h.in.stamp
/M2/.idea
/M2/tmp
/builds
.DS_Store
.#*
Expand Down
Loading