Re: Euphoria development workflow
- Posted by mattlewis (admin) Feb 13, 2011
- 1709 views
But I digress. I would like to know the "best practices" for working with the source.
So I clone the repository and I start making changes. Now, before I upload any changes I want to test them, right? I mean, code changes, not documentation changes.
If I build a modified interpreter, should I just "make install" and let it overwrite my regular interpreter? Or should I change PREFIX and let it install to a subdirectory in home?
And then "make test" will run all of the unit tests/regression tests, right? And what is "coverage analysis"?
You should run the tests prior to installing. I'd recommend only installing if you're pretty confident that it's all fairly stable. During development, that's often not the case (and it definitely seems not to be the case right now).
A simple "make test" runs the full suite of unit tests, interpreted, bound and translated.
"make coverage" runs the unit tests interpreted, and collects coverage metrics for the standard library. It allows us to get an idea of which parts of the standard library have not been tested by the unit tests. I think we're somewhere around 86% at this point. A lot of the uncovered code is error checking and crashing upon bad data or whatever. After building try running it, and it will generate some html reports in your build directory, in a unit-test subdirectory.
Of course, it looks like it doesn't matter much. I can't build the current source because it is choking on the "eu:poke8" and other references.
Yes, there have been some additions in the trunk (i.e., the 4.1 code base) lately as I've been working on the 64-bit version.
Tried to download the most current eubins, at least the one which seems to have actual executables in it, and that doesn't work either.
What I tried was this:
./configure --prefix ~/eubin --eubins ~/eubins-linux makeand
./configure -without-euphoria --prefix ~/eubin make
eubin is where I want Euphoria to go. eubins-linux is the stuff I downloaded from eubins.
The --without-euphoria option is for when you've got pre-translated source code. I don't think that's what you want to do.
Edit2: Has anyone looked at binding a bleeding-edge interpreter and translator instead of making a whole eubin package? And then that bound executable could be kept with the bleeding edge versions.
I'm not sure how well that would work. The eubin stuff is automated (and currently needs to be gotten back on track). The repository in general is in a bit of disarray. A couple of weeks ago, I was doing some pretty heavy development, but then I got sick, so I've been out of it for a while, and over the next week or so, I expect it to be in much better shape, hopefully including getting the eubins process back on track.
Matt