Opened 10 years ago
Closed 10 years ago
#12975 closed defect (fixed)
Fix misleading typo in the doc of "cython"
Reported by: | SimonKing | Owned by: | mvngu |
---|---|---|---|
Priority: | trivial | Milestone: | sage-5.1 |
Component: | interfaces | Keywords: | |
Cc: | burcin | Merged in: | sage-5.1.beta1 |
Authors: | Burcin Erocal | Reviewers: | Simon King |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
sage: cython? ... For example: #clang C++ #clib givaro #cinclude /usr/local/include/ #cargs -ggdb #cfile foo.c ...
That's misleading, as Cython does only accept #clang c++
but not #clang C++
. Thank you, Burcin, for pointing that out!
Apply
Attachments (2)
Change History (11)
comment:1 Changed 10 years ago by
- Cc burcin added
- Status changed from new to needs_review
comment:2 Changed 10 years ago by
I attached a new patch which should allow cython()
to accept #clang C++
as well as #clang c++
. I have no clue how to doctest this.
comment:3 Changed 10 years ago by
With your patch, the following still does not work
sage: cython("""#clang C++ ....: #cinclude /home/simon/SAGE/sage-5.0/local/include/singular /home/simon/SAGE/sage-5.0/local/include/factory ....: #clib m readline singular givaro ntl gmpxx gmp ....: from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomial_libsingular ....: """) --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) /home/simon/SAGE/sage-5.0/devel/sage-main/<ipython console> in <module>() /home/simon/SAGE/sage-5.0/local/lib/python2.7/site-packages/sage/misc/cython_c.so in sage.misc.cython_c.cython (sage/misc/cython_c.c:688)() /home/simon/SAGE/sage-5.0/local/lib/python2.7/site-packages/sage/server/support.pyc in cython_import_all(filename, globals, verbose, compile_message, use_cache, create_local_c_file) 471 m = cython_import(filename, verbose=verbose, compile_message=compile_message, 472 use_cache=use_cache, --> 473 create_local_c_file=create_local_c_file) 474 for k, x in m.__dict__.iteritems(): 475 if k[0] != '_': /home/simon/SAGE/sage-5.0/local/lib/python2.7/site-packages/sage/server/support.pyc in cython_import(filename, verbose, compile_message, use_cache, create_local_c_file, **kwds) 448 use_cache=use_cache, 449 create_local_c_file=create_local_c_file, --> 450 **kwds) 451 sys.path.append(build_dir) 452 return __builtin__.__import__(name) /home/simon/SAGE/sage-5.0/local/lib/python2.7/site-packages/sage/misc/cython.pyc in cython(filename, verbose, compile_message, use_cache, create_local_c_file, annotate, sage_namespace, create_local_so_file) 529 log = open('%s/log'%build_dir).read() 530 err = open('%s/err'%build_dir).read() --> 531 raise RuntimeError, "Error compiling %s:\n%s\n%s"%(filename, log, err) 532 533 # Move from lib directory. RuntimeError: Error compiling /home/simon/.sage//temp/linux_sqwp.site/5382//tmp_2.spyx: running build running build_ext building '_home_simon__sage_temp_linux_sqwp_site_5382_tmp_2_spyx_0' extension creating build creating build/temp.linux-x86_64-2.7 gcc -fno-strict-aliasing -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/simon/SAGE/sage-5.0/local/include/singular -I/home/simon/SAGE/sage-5.0/local/include/factory -I/home/simon/SAGE/sage-5.0/local/include/csage/ -I/home/simon/SAGE/sage-5.0/local/include/ -I/home/simon/SAGE/sage-5.0/local/include/python2.7/ -I/home/simon/SAGE/sage-5.0/local/lib/python2.7/site-packages/numpy/core/include -I/home/simon/SAGE/sage-5.0/devel/sage/sage/ext/ -I/home/simon/SAGE/sage-5.0/devel/sage/ -I/home/simon/SAGE/sage-5.0/devel/sage/sage/gsl/ -I/home/simon/.sage//temp/linux_sqwp.site/5382 -I/home/simon/SAGE/sage-5.0/local/include/python2.7 -c _home_simon__sage_temp_linux_sqwp_site_5382_tmp_2_spyx_0.cpp -o build/temp.linux-x86_64-2.7/_home_simon__sage_temp_linux_sqwp_site_5382_tmp_2_spyx_0.o -w -O2 gcc: error: _home_simon__sage_temp_linux_sqwp_site_5382_tmp_2_spyx_0.cpp: Datei oder Verzeichnis nicht gefunden gcc: fatal error: no input files compilation terminated. error: command 'gcc' failed with exit status 1
Hence, one still needs
sage: cython("""#clang c++ #cinclude /home/simon/SAGE/sage-5.0/local/include/singular /home/simon/SAGE/sage-5.0/local/include/factory #clib m readline singular givaro ntl gmpxx gmp from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomial_libsingular """)
comment:4 Changed 10 years ago by
My reviewer patch will contain a test such as this:
TESTS: Before :trac:`12975`, it would have beeen needed to write ``#clang c++``, but upper case ``C++`` has resulted in an error:: sage: from sage.all import SAGE_ROOT sage: code = [ ... "#clang C++", ... "#cinclude %s/local/include/singular %s/local/include/factory"%(SAGE_ROOT,SAGE_ROOT), ... "#clib m readline singular givaro ntl gmpxx gmp", ... "from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomial_libsingular", ... "from sage.libs.singular.polynomial cimport singular_polynomial_pow", ... "def test(MPolynomial_libsingular p):", ... " singular_polynomial_pow(&p._poly, p._poly, 2, p._parent_ring)"] sage: cython(os.linesep.join(code)) The function ``test`` now manipulates internal C data of polynomials, squaring them:: sage: P.<x,y>=QQ[] sage: test(x) sage: x x^2
But with your current patch, one would still need c++, not C++.
Changed 10 years ago by
comment:6 Changed 10 years ago by
- Description modified (diff)
- Reviewers set to Simon King
I have successfully run the tests in sage/misc with your patch and my reviewer patch. I will wait for a full test run (either by myself or the patchbot) before giving a positive review.
Apply trac_12975-cython_cpp_pragma.patch trac_12975_reviewer.patch
comment:7 Changed 10 years ago by
- Status changed from needs_review to positive_review
make ptest passes, and thus I give it a positive review.
comment:8 Changed 10 years ago by
- Component changed from documentation to interfaces
I changed the component into "interfaces" (to cython), since the fix was not just modifying the documentation, after all.
comment:9 Changed 10 years ago by
- Merged in set to sage-5.1.beta1
- Resolution set to fixed
- Status changed from positive_review to closed
C++ typo fixed.