Comments (13)
Looks a bug of f2c, tcc, or a combination of them, because QR.f outputs a broken QR.f90.
Did you update f2c recently? I guess this is a trigger. Can you try an old f2c?
from quine-relay.
I've built and tried AUR's f2c source tarball in Ubuntu.
It compiles QR.f successfully, but the executable writes the output to stderr instead of stdout.
I don't read the discussion of AUR, but I doubt if we can trust the tarball.
from quine-relay.
I'm the maintainer of the AUR package for f2c. On my system, the F77 -> F90 step segfaults when I use the default tcc for that step. However, the entire quine-relay runs all the way through with no errors at any step if I use gcc or clang instead. The programs that gcc and clang produce from the f2c'd source do not write anything to stderr, either.
Do you two still have problems if you use gcc or clang? If so, I'll look into them as potential bugs in the f2c package.
from quine-relay.
The quine-relay-git package installs and runs fine now, using gcc instead of tcc. tcc has not changed lately.
from quine-relay.
Hmm, then, f2c is innocent and the recent change of f2c may hit tcc's bug?
I wonder if we should use gcc instead of tcc. The reason why it uses tcc is because gcc (gfortran) seems to require huge memory to compile QR.f on some platforms. (#2)
from quine-relay.
Sounds like the recent change of f2c hit tcc's bug, yes.
Perhaps clang uses less memory than gcc and resolves both #2 and this? Would need to be tested.
from quine-relay.
Another option is to simply use
from quine-relay.
Unfortunately clang seems not to work so well.
$ /usr/bin/time -f "%M KB" gcc -o QR QR.c /usr/lib/libf2c.a
702572 KB
$ /usr/bin/time -f "%M KB" clang -o QR QR.c /usr/lib/libf2c.a
525980 KB
$ /usr/bin/time -f "%M KB" tcc -o QR QR.c /usr/lib/libf2c.a
43872 KB
I guess it is a good idea to use $(CC) and to add to the document something like "try make CC=tcc if you have no enough memory."
But I have to check if $(CC) does not affect other compilation processes. In particular, gcc was very very slow to compile INTERCAL code, if I recall. I will do later.
from quine-relay.
Thanks for testing, the memory usage information is interesting.
from quine-relay.
It appears that passing -bfO to the intercal compiler (ick) causes it to "optimize" the C code it produces, in such a way that GCC takes less time to compile it. I haven't tested this rigorously yet.
from quine-relay.
Using -bfO and gcc is slightly faster than tcc without -bfO here, while gcc without -bfO is almost three times as slow.
Confirmed that gcc + -bfO is a viable alternative to tcc.
from quine-relay.
I think this is already fixed by #38. Closing.
Please let me know if I misunderstand. Thank you.
from quine-relay.
Sounds right! Thanks.
from quine-relay.
Related Issues (20)
- Guile Error HOT 2
- Thue.rb HOT 3
- What is your Daily Routine?
- Include TεX in the loop HOT 2
- god is dead and we killed him with quines HOT 4
- dhall error HOT 1
- Language request Q. Was: Q# (quantum programming language) or other representing letter Q, e.g. Arabic Qualb (قلب) HOT 3
- It's not making the vendor dir. HOT 4
- HOW HOT 2
- Consider using dotnet compiler for C# instead of outdated mono HOT 1
- Compilation for Shakespeare Failed HOT 1
- Why not have an issue that questions why or why not why or why not, "Why or why not should we have the repo?" HOT 2
- 3 Language Requests HOT 1
- Error when running through Docker HOT 11
- Language Request - Modula 2 HOT 2
- Emojis HOT 6
- Image missing fonts HOT 1
- Statistics of quine-relay HOT 1
- Package Install Issue HOT 1
- Vlang HOT 2
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 quine-relay.