Comments (22)
I just used make -e CCOMP=clang
in the c/
subdirectory, on OSX anyway. (Also, notes to this effect at http://johnkerl.org/miller/doc/build.html.) Can you verify?
from miller.
Hello,
% make -e CCOMP=clang
make -C dsls put_dsl_parse.o
gcc -o lemon lemon.c
make[1]: exec(gcc) failed (No such file or directory)
*** Error code 1
Stop.
make[1]: stopped in /usr/home/sean/bin/miller/c/dsls
*** Error code 1
Stop.
make: stopped in /usr/home/sean/bin/miller/
Is this too dependent on gcc to work?
from miller.
I edited c/Makefile and just changed CCOMP=gcc to CCOMP=clang.
Compiles with clang and runs all regression tests fine here.
from miller.
Hi @technion,
What's your OS and clang version?
Thanks!
from miller.
Hello,
If anyone is familiar with vagrant, here's the freebsd page for 10.2-release:
https://atlas.hashicorp.com/freebsd/boxes/FreeBSD-10.2-RELEASE
from miller.
I am running Arch Linux with clang version 3.6.2.
from miller.
Unfortunately I have not made any more progress on installing miller.
from miller.
@jungle-boogie have you tried the change I referred to?
The error you pasted suggests your command line simply never passed the variable through (as was the case on my system, hence the edit).
from miller.
@jungle-boogie See the patch I've just submitted. If you can confirm that resolves things for you I'll make a PR.
Note that it allows you to overwrite the compiler from the make command, but you still need to use that command as per the notes.
from miller.
I got further by first installing and then soft linking gcc from /usr/local/bin/gcc48
to /usr/local/bin/gcc
but still fails:
https://gist.github.com/jungle-boogie/cf75244574102e9661e3
If I run make -e CCOMP=clang
:
https://gist.github.com/jungle-boogie/334cf40130db8c410a03
Then I can run ./mlr
Any idea why gcc is still required if I've told it in the Make file to use clang? Is it because of the lemon.c
file? I'd rather not have to install a second compiler.
Thanks!
from miller.
I don't believe make -e is doing what we think it's supposed to do on all platforms. This is why I wrote the patch above. Can you please try it?
from miller.
Hi @technion,
I tired your patch and the results:
make -C dsls put_dsl_parse.o
gcc -o lemon lemon.c
make[1]: exec(gcc) failed (No such file or directory)
*** Error code 1
Stop.
make[1]: stopped in /home/sean/bin/miller/c/dsls
*** Error code 1
Stop.
make: stopped in /home/sean/bin/miller/c
the patch:
vagrant@:~/bin/miller/c % head Makefile
# ================================================================
CCOMP ?=gcc
CFLAGS=-std=gnu99
IFLAGS=-I.
WFLAGS=-Wall -Werror
LFLAGS=-lm
Does your arch system also happen to have any version of gcc installed?
from miller.
Sorry, my mistake -- yes, the C compiler needs to be propagated to c/dsls
as well as c
, and so when I built with clang to test the mod, it was building in c/dsls
with gcc and in c/
with clang. :/
from miller.
Hi @johnkerl,
So it stands that gcc is definitely a requirement?
Thanks!
from miller.
No, just that you have to spell clang rather than gcc in two different places.
from miller.
Namely, c/Makefile
as well as c/dsls/Makefile
.
from miller.
Hi @johnkerl,
You're getting further!
just some warnings when compiling: https://gist.github.com/jungle-boogie/3eac24667253560f344b
from miller.
Actually, I noted that c/dsls/Makefile has gcc hardcoded in several places, ignoring the use of the CCOMP variable altogether.
I've just pushed a further patch to my branch, can you try it out @jungle-boogie ?
from miller.
Hi @technion,
That didn't work. Your dsls/Makefile doesn't specify the ccompiler.
See johnkerl's commit here: 0b45ff3
The only problem now are the 9 warnings generated that I reported above.
from miller.
Sounds like a fix then - those warnings aren't related to clang support.
from miller.
Created #24 for those warnings (previously only a to-do at https://github.com/johnkerl/miller/blob/master/c/todo.txt).
Thanks for the report!
from miller.
Thank you both for stepping through this problem with me!
Best,
sean
from miller.
Related Issues (20)
- Investigate shutdown latency on `mlr head` HOT 2
- Cryptic fatal error message for nonexistent files since 6.9.0 HOT 2
- Investigate spurious `[]` on JSON output in some cases HOT 4
- `flatten` not working on csv input data
- Bash process substitution not working with `put -f`
- Miller's `strptime` accepts fewer format options than `strptime`
- Inconsistent result when using `$*`
- Double-width characters spoil column alignment HOT 4
- `mlr --icsv --ojson cat < mlr.bug.csv` drops some columns HOT 5
- Add description for "put" verb HOT 1
- 'mlr cut' is very slow HOT 8
- mlr --otsv does not handle broken quotes correctly compared to --ocsv HOT 6
- JSON to CSV Error HOT 8
- exit code = 1 for --csv skip-trivial-records and csv file's last record is blank
- Automated way of clearing down column data HOT 7
- JSON flag documentation question HOT 1
- Equivalent to Excel function "data load from folder" then "combine and load" multiple CSV's finally "apply transformations" HOT 7
- Find and remove "string" retaining all other row data HOT 5
- Find and replace special character & with and using ssub HOT 2
- Add a `stat` DSL function HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from miller.