Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-13 Thread Lubos Lunak
On Thursday 12 of April 2012, Matúš Kukan wrote:
 Maybe it is better to just let check target depend on build target ?
 In general.

 Do you mean making the toplevel targets depend on each other, or also in each 
module?

 If this is meant to be also for all modules, wouldn't this possibly still 
miss some problems? I.e. if e.g. sw links the i18npool library, does or does 
not sw depend on i18npool/ build target? If sw depends only on the library 
itself, then localedata_en still might not be built by the time sw unittests 
are run (in this example sw is far too late after i18npool for this to be 
realistic, but consider whatever is more realistic).

 Requiring everything be built before running any checks would avoid the 
problem, but I doubt anybody would want to rebuild everything just in order 
to run checks in sal/ . So unless the first case would work reliably, there 
does not seem to be any way other than finding all such dependencies, as much 
as doing that is painful, with such problems being random race conditions.

 Or do people use make check with demand to build only what is
 necessary for tests and nothing more ?

 I would expect that most of what the build target builds in each module is 
already a prerequisite for the module's checks (and it'd definitely be so in 
an ideal world where everything is tested).

-- 
 Lubos Lunak
 l.lu...@suse.cz
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-13 Thread Lubos Lunak
On Thursday 12 of April 2012, Rene Engelhard wrote:
 On Thu, Apr 12, 2012 at 09:13:30PM +0200, Matúš Kukan wrote:
  Or do people use make check with demand to build only what is
  necessary for tests and nothing more ?

 Well, make check is for after a successful build to check the result, no?

 That's correct. So the next build will be almost a no-op, right? And there's 
not much point in checking something that is not up to date, so if something 
needs rebuilding, it should be rebuilt (and finally, make has this -o 
option).

 What especially is  bad is when make install (thankfully gone) or make
 check rebuild unneeded stuff which gets rebuilt on every pass.

 What especially is bad is when unneeded stuff gets rebuilt on every pass.

 Fixed that for ya :).

-- 
 Lubos Lunak
 l.lu...@suse.cz
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-13 Thread Rene Engelhard
On Fri, Apr 13, 2012 at 04:35:27PM +0200, Lubos Lunak wrote:
 On Thursday 12 of April 2012, Rene Engelhard wrote:
  On Thu, Apr 12, 2012 at 09:13:30PM +0200, Matúš Kukan wrote:
   Or do people use make check with demand to build only what is
   necessary for tests and nothing more ?
 
  Well, make check is for after a successful build to check the result, no?
 
  That's correct. So the next build will be almost a no-op, right? And there's 

Not right now :)
Especially bad on slow archs.

 not much point in checking something that is not up to date, so if something 

True. But make check is ran after a normal make (build), so...

  Fixed that for ya :).

When/how? (I don't see anything obvious from you on libreoffice-commits,
but I might be blind)

Regards,

Rene
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-13 Thread Matúš Kukan
On 13 April 2012 16:32, Lubos Lunak l.lu...@suse.cz wrote:
 On Thursday 12 of April 2012, Matúš Kukan wrote:
 Maybe it is better to just let check target depend on build target ?
 In general.

  Do you mean making the toplevel targets depend on each other, or also in each
 module?

I mean to add into gbuild/Module.mk:
unitcheck slowcheck : build

So if you run make in sal it's for sal only.
If you run make in tail_build, first everything is built and then tested.

Note that the modules' dependencies (in the sense: first build sal then cppu)
are written in module/prj/build.lst and build.pl reads them.

  If this is meant to be also for all modules, wouldn't this possibly still
 miss some problems? I.e. if e.g. sw links the i18npool library, does or does
 not sw depend on i18npool/ build target? If sw depends only on the library
 itself, then localedata_en still might not be built by the time sw unittests
 are run (in this example sw is far too late after i18npool for this to be
 realistic, but consider whatever is more realistic).

Now i18npool is not yet in tail_build so when the time comes for sw
everything is there.
When everything will be in tail_build (or Makefile.post) sw/ won't
depend on i18npool/
but with *check : build dependency all tests from all modules will be
executed after everything is built.

  Requiring everything be built before running any checks would avoid the
 problem, but I doubt anybody would want to rebuild everything just in order
 to run checks in sal/

You can still do: cd sal/  make check
Only sal is considered in that case, nothing before (solenv..) nor after (sw..)

  I would expect that most of what the build target builds in each module is
 already a prerequisite for the module's checks (and it'd definitely be so in
 an ideal world where everything is tested).

Right, so it is good.

Bjoern, what do you think about attached patch ?
I left subsequentcheck untouched for now.
(Sorry to involve you here but you can best understand)

All the best,
Matus


0001-gbuild-add-check-build-dependency.patch
Description: Binary data
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-13 Thread Lubos Lunak
On Friday 13 of April 2012, Rene Engelhard wrote:
 On Fri, Apr 13, 2012 at 04:35:27PM +0200, Lubos Lunak wrote:
  On Thursday 12 of April 2012, Rene Engelhard wrote:
   On Thu, Apr 12, 2012 at 09:13:30PM +0200, Matúš Kukan wrote:
Or do people use make check with demand to build only what is
necessary for tests and nothing more ?
  
   Well, make check is for after a successful build to check the result,
   no?
 
   That's correct. So the next build will be almost a no-op, right? And
  there's

 Not right now :)
 Especially bad on slow archs.

 There's always the -o option to make. And, assuming this would avoid all the 
build breakages because of race conditions, I'd assume the time spent on this 
still worth the time not spent hunting random breakages.

   Fixed that for ya :).

 When/how? (I don't see anything obvious from you on libreoffice-commits,
 but I might be blind)

=
 What especially is  bad is when make install (thankfully gone) or make
 check rebuild unneeded stuff which gets rebuilt on every pass.

 What especially is bad is when unneeded stuff gets rebuilt on every pass.
=

-- 
 Lubos Lunak
 l.lu...@suse.cz
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-13 Thread Lubos Lunak
On Friday 13 of April 2012, Matúš Kukan wrote:
 On 13 April 2012 16:32, Lubos Lunak l.lu...@suse.cz wrote:
  On Thursday 12 of April 2012, Matúš Kukan wrote:
  Maybe it is better to just let check target depend on build target ?
  In general.
 
   Do you mean making the toplevel targets depend on each other, or also in
  each module?

 I mean to add into gbuild/Module.mk:
 unitcheck slowcheck : build

 So if you run make in sal it's for sal only.
 If you run make in tail_build, first everything is built and then tested.

 Note that the modules' dependencies (in the sense: first build sal then
 cppu) are written in module/prj/build.lst and build.pl reads them.

 Does this mean that if there is a build race condition in check because of a 
missing runtime dependency, the problem is always inside the module? If 
that's the case, it does not seem it should be that hard to find such 
problems, I've assumed the broken dependency can be on anything.

-- 
 Lubos Lunak
 l.lu...@suse.cz
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-13 Thread Matúš Kukan
On 13 April 2012 18:38, Lubos Lunak l.lu...@suse.cz wrote:
 On Friday 13 of April 2012, Matúš Kukan wrote:
 Note that the modules' dependencies (in the sense: first build sal then
 cppu) are written in module/prj/build.lst and build.pl reads them.

  Does this mean that if there is a build race condition in check because of a
 missing runtime dependency, the problem is always inside the module?

In the sense that also tail_build is module, yes.
But in tail_build it can be missing from any module listed in
Module_tail_build.mk

So far I've seen these runtime dependency problems only in sal and i18npool.
I don't remember any from taill_build.
I just think they are not necessary and we need to build things before
testing anyway.

The difference is:
if you remove not tested library from module and run make check there
now: nothing happens, only tests are executed
after: it will get build first and then the tests are executed

Best,
Matus
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-13 Thread Matúš Kukan
Hi all,

On 13 April 2012 18:21, Matúš Kukan matus.ku...@gmail.com wrote:
 Bjoern, what do you think about attached patch ?
 I left subsequentcheck untouched for now.

Oh no, it won't work in new gbuild world where we can do:
make -rs -j 4 $(WORKDIR)/Module/check/sw
or anything, from clean.
That's something as Lubos was trying to tell me but I did not see it this way.
So if we want to be able to do that (I think yes)
this *check : build dependency thing is nonsense.

I am really sorry for this thread. It now looks to me as wasted.
I did not realize that before.

All the best,
Matus
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-12 Thread Rene Engelhard
On Thu, Apr 12, 2012 at 09:13:30PM +0200, Matúš Kukan wrote:
 Maybe it is better to just let check target depend on build target ?

No?

 Or do people use make check with demand to build only what is
 necessary for tests and nothing more ?

Well, make check is for after a successful build to check the result, no?

What especially is  bad is when make install (thankfully gone) or make check
rebuild unneeded stuff which gets rebuilt on every pass.

IMHO it should just do what it does. Run the tests (yes, I know this involves
some other round of going over all modules, but...)

Regards,

Rene
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: what exactly needs localedata_en library ?

2012-04-12 Thread Stephan Bergmann

On 04/12/2012 04:14 PM, Eike Rathke wrote:

On Thursday, 2012-04-12 13:33:38 +0200, Lubos Lunak wrote:

  As far as I can see, it is the i18npool library that dlopens localedata_en
(i18npool/source/localedata/localedata.cxx), so I think the best way to
express this dependency is to make i18npool depend on localedata_en (and
localedata_es, localedata_euro and localedata_others).


Might be an approach. While at it, dependencies on the various libdict_*
and lib*_data* that are dlopen'ed by i18npool could be added as well.


...as long as it does not take away too much opportunity for 
parallelization...


Stephan
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: what exactly needs localedata_en library ?

2012-04-12 Thread Lubos Lunak
On Wednesday 11 of April 2012, Matúš Kukan wrote:
 Hi,

 I was investigating which dependency is missing for sometimes failing
 i18npool_test_breakiterator and it is localedata_en.

 The dependency was often explicitly written in sc's makefiles (but
 i18npool is not yet in tail_build, so not needed) and I think:
 gb_CppunitTest_use_ure,foo = foo requires localedata_en
 is true, so I created attached patch where the dependency is moved to
 gb_CppunitTest_use_ure definition.
 But I don't know if also the other implication is true:
 gb_CppunitTest_use_ure,foo = foo requires localedata_en

 I did not push yet but if no one is against I will do so soon because
 it is safe and maybe also the right thing to do ?

 As far as I can see, it is the i18npool library that dlopens localedata_en 
(i18npool/source/localedata/localedata.cxx), so I think the best way to 
express this dependency is to make i18npool depend on localedata_en (and 
localedata_es, localedata_euro and localedata_others). While this is not 100% 
technically correct, as it is only a runtime dependency and not a build 
dependency, there's no cycle and it should make sure that anything that does 
or will need localedata_en will have it ready.

-- 
 Lubos Lunak
 l.lu...@suse.cz
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: what exactly needs localedata_en library ?

2012-04-12 Thread Eike Rathke
Hi,

On Thursday, 2012-04-12 13:33:38 +0200, Lubos Lunak wrote:

  As far as I can see, it is the i18npool library that dlopens localedata_en 
 (i18npool/source/localedata/localedata.cxx), so I think the best way to 
 express this dependency is to make i18npool depend on localedata_en (and 
 localedata_es, localedata_euro and localedata_others).

Might be an approach. While at it, dependencies on the various libdict_*
and lib*_data* that are dlopen'ed by i18npool could be added as well.

  Eike

-- 
LibreOffice Calc developer. Number formatter stricken i18n transpositionizer.
GnuPG key 0x293C05FD : 997A 4C60 CE41 0149 0DB3  9E96 2F1A D073 293C 05FD


pgplfG7IEcaDa.pgp
Description: PGP signature
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


check : build dependency (was: Re: what exactly needs localedata_en library ?)

2012-04-12 Thread Matúš Kukan
On 12 April 2012 16:14, Eike Rathke er...@redhat.com wrote:
 On Thursday, 2012-04-12 13:33:38 +0200, Lubos Lunak wrote:

  As far as I can see, it is the i18npool library that dlopens localedata_en
 (i18npool/source/localedata/localedata.cxx), so I think the best way to
 express this dependency is to make i18npool depend on localedata_en (and
 localedata_es, localedata_euro and localedata_others).

 Might be an approach. While at it, dependencies on the various libdict_*
 and lib*_data* that are dlopen'ed by i18npool could be added as well.

Hmm, for now I created:
http://cgit.freedesktop.org/libreoffice/core/commit/?id=5dce272584cc79da727bdd4887d60cec04cbce11
I did not put there libdict_* and lib*_data*

Maybe it is better to just let check target depend on build target ?
In general.
It could prevent more missing dependencies in future.

In tail_build, all tests would run in the end, so no chance to stop
the build process if there is something wrong
and _maybe_ it would take more time because of less effective ordering.
But there is no guarantee for ordering anyway and I can't see any
problem with this.

Does it make sense to add:
check : build dependency ?

Or do people use make check with demand to build only what is
necessary for tests and nothing more ?

--
Matus
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


what exactly needs localedata_en library ?

2012-04-11 Thread Matúš Kukan
Hi,

I was investigating which dependency is missing for sometimes failing
i18npool_test_breakiterator and it is localedata_en.

The dependency was often explicitly written in sc's makefiles (but
i18npool is not yet in tail_build, so not needed) and I think:
gb_CppunitTest_use_ure,foo = foo requires localedata_en
is true, so I created attached patch where the dependency is moved to
gb_CppunitTest_use_ure definition.
But I don't know if also the other implication is true:
gb_CppunitTest_use_ure,foo = foo requires localedata_en

I did not push yet but if no one is against I will do so soon because
it is safe and maybe also the right thing to do ?

Best,
Matus


0001-add-dependency-on-localedata_en-to-gb_CppunitTest_us.patch
Description: Binary data
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: what exactly needs localedata_en library ?

2012-04-11 Thread Stephan Bergmann

On 04/11/2012 05:17 PM, Matúš Kukan wrote:

I was investigating which dependency is missing for sometimes failing
i18npool_test_breakiterator and it is localedata_en.

The dependency was often explicitly written in sc's makefiles (but
i18npool is not yet in tail_build, so not needed) and I think:
gb_CppunitTest_use_ure,foo =  foo requires localedata_en
is true, so I created attached patch where the dependency is moved to
gb_CppunitTest_use_ure definition.
But I don't know if also the other implication is true:
gb_CppunitTest_use_ure,foo= foo requires localedata_en

I did not push yet but if no one is against I will do so soon because
it is safe and maybe also the right thing to do ?


Safe: at least as long as people do not want to use the other features 
of gb_CppunitTest_use_ure (like specifying UNO_TYPES and UNO_SERVICES) 
in a test that should be runnable before i18npool is built.


The right thing: probably not.  Rather, a consequence of too fat (unit) 
test dependencies hidden with a sledgehammer.  At any rate, it makes 
gb_CppunitTest_use_ure even more of a misnomer.


That said, probably a sufficiently pragmatic solution, anyway.  ;)

Stephan
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice