Euphoria Ticket #953: symbolic link ecp.dat is not getting put in tests directory in some situations.

Configuring to build for target: WINDOWS / default platform  
ln: creating symbolic link `../tests/ecp.dat' to `../eu4/nb/build40/ecp.dat': No such file or directory 

Details

Type: Bug Report Severity: Minor Category: Build System
Assigned To: SDPringle Status: Fixed, Please Confirm Reported Release: 4.0.6dev
Fixed in SVN #: View VCS: none Milestone: 4.0.6

1. Comment by SDPringle Feb 03, 2016

See: hg:euphoria/rev/33e5651f0b92

changeset: 6417:33e5651f0b92 branch: 4.0 tag: tip user: Shawn David Pringle B.Sc. <shawn.pringle@gmail.com> date: Wed Feb 03 20:01:33 2016 -0300 files: source/Makefile.gnu description:

  • maybe fixes ticket 953

2. Comment by ne1uno Feb 04, 2016

no change. I tried to copy manually, then realized, ln failed because there is no ecp.dat

cp: cannot stat `../tests/ecp.dat': No such file or directory 
looking into it with Hg, I see /.hgignore has tests/ecp.dat listed.

is that some local problem of mine? was this file being generated at some point, now it should exist?

3. Comment by SDPringle Feb 04, 2016

The contents of the ignore file indicate files that should not be committed to the repository. That's all.

Try 'rm ../tests/ecp.dat' from the source directory. Then 'make all test' or maybe it is 'make all tests'.

ecp.dat is like the library files eu.a and eudbg.a. They are used by the binaries. For testing we want the binaries to use the ecp.dat generated rather than the system wide ecp.datThe new binaries will not use the new ecp.dat unless it is in the current directory which during unit tests is the tests directory. That is why I am trying to keep a copy of it in tests.

What OS are you using?

4. Comment by ne1uno Feb 05, 2016

using Xp Sp2 and minGW msys tools. I did find a few different dated ecp.dat in bin directories. nothing in tests/ or source/

I copied /bin/ecp.dat to ../builddir and the ln worked (think it's actually a copy)

tldr:
is there one command that creates ecp.dat? would rather not have to run tests twice. make & test take several hours here.

your suggestion to run make test seems like a chicken and egg problem. I don't have a fresh ecp.dat needed to run configure w/o error, so I should first run make test? which, as you know, first needs to run make all which won't run in any case until you configure. though I guess I could just ignore the ln error, it will still build ok.

the other problem is, building on an msys terminal or the better mintty, make test doesn't work right in msys because some tests expect backslashes. I once lobbied in vain we should get to decide the slash direction maybe with a define or env var, but cooler heads prevailed and it's the OS default now for better or worse. some msys tools can handle forward or back slashes but most can't. just switching backslashes to forward slashes doesn't create a proper msys path either.

make docs does work when I remember to add the creole & eudoc lines. I haven't been able to get coverage to do more than all zeros in over a year. it seems to run ok, but slips up somewhere in creating or using the db. I have a bat file that I run the tests from, using the make command lines.

there is also a more dos compatible bash shell in msys that can run some or all of the tests & make but I haven't tried in awhile.

I have no idea how others build on windows. from the lack of feedback over the years, I'm guessing not too many have. or not too many use msys at any rate. maybe cygwin? I never tried it.

5. Comment by SDPringle Feb 05, 2016

See: hg:euphoria/rev/46aa06e1c6c2

changeset: 6420:46aa06e1c6c2 branch: 4.0 user: Shawn David Pringle B.Sc. <shawn.pringle@gmail.com> date: Fri Feb 05 12:58:45 2016 -0300 files: source/configure description:

  • remove creation of symlink. ticket 953

6. Comment by SDPringle Feb 05, 2016

See: hg:euphoria/rev/13f5cc8e71a1

changeset: 6422:13f5cc8e71a1 branch: 4.0 tag: tip user: Shawn David Pringle B.Sc. <shawn.pringle@gmail.com> date: Fri Feb 05 13:00:55 2016 -0300 files: source/Makefile.gnu description:

  • added code-page-db to all target: ticket:953

7. Comment by SDPringle Feb 05, 2016

For your 'chicken and egg problem', I will remove the offending line that causes the error. Instead the Makefile.gnu now creates a copy from the build directory and has the ecp.dat in the build directory as a dependency. This ecp.dat in the tests directory is a dependency for tests. In order to create ecp.dat the command is 'make code-page-db'. That should create ecp.dat in the build directory not, the source directory.

8. Comment by ne1uno Feb 05, 2016

got error: 
make[1]: ../build40/eui.exe: Command not found 
 
should be? 
make interpreter code-page-db translator library debug-library backend 

9. Comment by SDPringle Feb 06, 2016

See hg:euphoria/rev/245d0f407dea. Change set added a dependency to code-page-db. Now, 'make all' should work without problems. I don't see why make should use the built interpreter to create ecp.dat rather than the system interpreter.

10. Comment by ne1uno Feb 06, 2016

> SDPringle
> I don't see why make should use the built interpreter to create ecp.dat rather than the system interpreter

if it fails. it's an early warning you might not have a working executable. would probably be better to run some limited subset of tests, but not bad as a quick early check,

Search



Quick Links

User menu

Not signed in.

Misc Menu