Bug#1005887: unixodbc-dev does not contain unixodbc_conf.h

2022-02-21 Thread Jan Wielemaker

Hi Hugh,

Thanks for your answer.  I'm not convinced.  You are telling that we 
must define macros to make sql.h get the right type for SQLBIGINT.

Getting the right type (some alias for int64_t or a struct) is IMO
something that should be done by unixodb such that the application
gets a working SQLBIGINT that matches the library.  That is how it
used to be as long as we use unixodbc.   sql.h used to do so by 
including the platform dependent type configuration file.  As it

is working now, we actually have to know which of the HAVE_* and
SIZEOF_* macros we must define before including sql.h.

If this is no longer how it works, do you happen to know the
motivation why not?

Thanks --- Jan



Bug#959027: Bug#958419: swi-prolog-nox: compiler and runtime execution shipped in same package

2020-05-04 Thread Jan Wielemaker

On 5/4/20 11:07 AM, Jonas Smedegaard wrote:
> If perhaps your reason for fusing ABIs is that you are not a fan of
> perl, then I would be happy to help write the perl code for a dh_* tool
> which handles all 4 ABIs.

It was a theoretical exercise. I'm not a fan of four virtual packages.
One is already close to an overkill, surely at this point in time.

There could be some point in two, one taking the first number and a
second to join the rest or all four. The first is enough for packages
that provide foreign extensions to SWI-Prolog. This allows creating
Debian packages for most of the add-ons. The second is needed for saved
states. Omitting the first number is possible for states that do not
contain foreign extensions. It is very unlikely there will ever be a
version update that changes the first number and leaves the others
intact though: the stability goes down from left to right (which is why
the last two are fingerprints rather than version numbers: I forgot to
update them too often).

Cheers --- Jan



Bug#959027: Bug#958419: swi-prolog-nox: compiler and runtime execution shipped in same package

2020-05-04 Thread Jan Wielemaker

Hi Lev,

On 5/3/20 6:32 PM, Lev Lamberov wrote:

Hi Jan and Jonas,

Чт 30 апр 2020 @ 20:36 Lev Lamberov :


So, my proposal is to have to following packages:

1. swi-prolog-core (with Core_system)

2. swi-prolog-core-packages (with Core_packages), depends on
swi-prolog-core

3. swi-prolog-nox (original swi-prolog-nox, but without
swi-prolog-{core,core-packages}), depends on
swi-prolog-{core,core-packages}

4. swi-prolog-x (without changes at the moment)

5. swi-prolog-java (without changes at the moment)

6. swi-prolog-bdb (without changes at the moment)

7. swi-prolog-odbc (without changes at the moment)

8. swi-prolog-doc (without changes at the moment)

9. swi-prolog-test (without changes at the moment)

10. swi-prolog, depends on swi-prolog-{nox,x} as we have now

11. swi-prolog-full, depends on swi-prolog and
swi-prolog-{java,odbc,bdb}, that is all swi-prolog packages (maybe
except swi-prolog-test)


I've just uploaded 8.1.30 to experimental. swi-prolog source package
builds 11 packages as in the quotation above. swi-prolog-core provides
virtual package swi-prolog-abi-$(swi-prolog:ABI), the value of
$(swi-prolog:ABI) is based on the output of swipl --abi_version and
massaged as follows:

$(shell LD_LIBRARY_PATH=debian/swi-prolog-core/usr/lib 
debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/swipl-abi//' | tr 
-d '-')


I suggest 's/.*-abi-//' as the first part is basically flexible and may 
vary with the name of SWI-Prolog.   Personally I'd also be in favor of

not deleting the '-'.  Jonas doesn't see the need for that either.
There is a logical structure in that.  If you do it really correctly
you actually would have four virtual packages.  eye, not relying on
foreign extensions (except bundled with SWI-Prolog) could than drop
dependency on this part.   This is mostly theory though as this is
the most stable of the binary interfaces.

Cheers --- Jan



That is, for 8.1.30+dfsg-1 it gives 267792e14f8de23899e, since the
output of swipl --abi_version is swipl-abi-2-67-792e14f8-de23899e. So,
other packages may depend on swi-prolog-abi-267792e14f8de23899e in case
they need this particular version of ABI.

Jonas, I did some tweaks to dependencies, so this part should be cleaner
now.

Also, I looked into the eye package. It need pcre swi-prolog package,
which is in swi-prolog-nox (as before), so you still need to at least
Build-Depend on it.

Cheers!
Lev Lamberov





Bug#958419: swi-prolog 8.1.29 in Debian

2020-05-01 Thread Jan Wielemaker

Hi Lev, Jonas,

I've uploaded 8.1.30.  We should be getting really close to 8.2
now.  There are a couple of outstanding issues, notably for the
development tools.

Cheers --- Jan

On 4/30/20 3:13 PM, Lev Lamberov wrote:

Sure, that's what we need. Thanks, Jan!




Bug#959027: Bug#958419: swi-prolog-nox: compiler and runtime execution shipped in same package

2020-04-30 Thread Jan Wielemaker

Hi Lev,

On 4/30/20 3:10 PM, Lev Lamberov wrote:
> Recently I was (again!) approached by some embedded developers who asked
> to provide Core_system as a separate package and try to break
> swi-prolog-nox into several smaller packages.
>
> Currently, I'm thinking about breaking it into swi-prolog-core
> (containing Core_system), swi-prolog-core-packages (containing
> Core_packagse; depends on swi-prolog-core) and swi-prolog-nox
> (containing other components from the original swi-prolog-nox; depends
> on swi-prolog-core and swi-prolog-core-packages). What do you think
> about it?

As long as swi-prolog-nox still provides a useable Prolog system I'm
happy. I would go with Jonas in that case though and have yet another
basic package that just contains the shared object and possibly the main
executable and boot file (swipl.prc)

Just the shared object is enough to create runtimes when using
--stand-alone as this creates a file that starts with the swipl
executable. Adding the swipl executable to the base package allows to
start the state with some option and makes the state smaller (but not
much, `swipl` is really short). Adding the boot.prc file adds only 90Kb
and actually allows running Prolog. Without libraries, but you could
distribute the essentials with some application as .pl or .qlf files.

If we rethink from the start, my ideal is that "swi-prolog" creates a
pretty much complete installation, including xpce (gui, ide). Yes, there
are quit a few dependencies, but virtually every desktop installation
has most of these installed anyway.

Then we can have some hierarchy below that. Some parts are clear, but
the real dependencies between the various packages is largely unknown
and easily varies between versions. If you are interested I could come
up with some meaningful splits.

Bottom line should be just the real core (as above), which is enough to
run saved states.  You than have two options for saved states relying
on foreign packages: include the package in the saved state or install
the package.

Cheers --- Jan

>
> Cheers!
> Lev
>



Bug#958419: swi-prolog 8.1.29 in Debian

2020-04-30 Thread Jan Wielemaker

On 4/30/20 2:50 PM, Jonas Smedegaard wrote:

Quoting Lev Lamberov (2020-04-30 14:40:53)

Чт 30 апр 2020 @ 14:06 Jan Wielemaker :


On 4/30/20 1:41 PM, Jonas Smedegaard wrote:

I think we can use the format almost as-is - just replacing the
leading "swipl-" with "swi-prolog-abi-".


I think adding "abi" makes sense.  I can replace "swipl" with the
package name, which is "swi-prolog" for Debian.


I'm thinking about something like as follows:

Provides: swi-prolog-abi-$(swipl:ABI)

where $(swipl:ABI) will be set in d/rules in override_dh_gencontrol
target, so actually it doesn't matter what is the original output of
swipl --abi_version, since we have sed and other tools to make it as
we like. What do you think, Jonas?


I agree with Lev.  That is what I tried to say above as well (that we
can _take_ it as-is and will need to massage it only slightly), but I
see now that it can just as easily be read as meaning the opposite (that
we would need a slightly different format).

So to (try) clarify: I think it is *perfect* usable for Debian that
upstream code emits "swipl-2-67-792e14f8-de23899e" when asked for its
ABI.


I did change it now to be $SWIPL_PKG_NAME-abi-*, where the default
SWIPL_PKG_NAME is derived from $SWIPL_INSTALL_DIR if it contains
something usable and "swipl" otherwise (some installations set this
to ".").

I don't think you care too much.  Unless there is a real need to
change I'll keep it that way.  It is nicely informative.  If you
just want the numbers you can delete `^.*-abi-`.

Cheers --- Jan



Sorry for the confusion.

  - Jonas





Bug#958419: swi-prolog-nox: compiler and runtime execution shipped in same package

2020-04-30 Thread Jan Wielemaker

Hi Jonas,

In theory we could have a package that merely contains /usr/bin/swipl
and /usr/lib/libswipl.so.8.2.0. That is enough to run saved states
(provided they have been built such that no dependencies need to be
loaded at runtime) and is indeed a lot smaller than swi-prolog-nox.
Possibly bundle these two as swi-prolog-runtime and make swi-prolog-nox
depend on it?

A small problem is that running `swipl` will result in a big ugly error
message that it cannot find its startup resources. One could add
boot.prc to the runtime package which would allow running Prolog (but
without any library).

I'm pretty neutral in this.  Eye is for the time being the only
use case, but who knows there will be more :)

--- Jan



Bug#958419: swi-prolog 8.1.29 in Debian

2020-04-30 Thread Jan Wielemaker

On 4/30/20 1:41 PM, Jonas Smedegaard wrote:

I think we can use the format almost as-is - just replacing the leading
"swipl-" with "swi-prolog-abi-".


I think adding "abi" makes sense.  I can replace "swipl" with the 
package name, which is "swi-prolog" for Debian.


--- Jan



Bug#958419: swi-prolog 8.1.29 in Debian

2020-04-30 Thread Jan Wielemaker

Hi Jonas,

On 4/28/20 5:26 PM, Jonas Smedegaard wrote:

Quoting Jan Wielemaker (2020-04-28 16:56:30)



That is worth a try.  I guess that implies that generating SWI-Prolog
(as package) also generates this hash.  What kind of support would be
needed from SWI-Prolog to make this work?  Some script/command to
create this hash for a particular system?


Thanks for your interest in this challenge :-)

Yes, if ABI is computed during build then what would be helpful is to
extend that to expose the computed ABI as a single string.  Maybe add it
as an additional note in output of "swipl --version"?

Or if possible to (re)compute at runtime then just document that, for us
distribution maintainers to integrate into our packaging routines.


I think I cover this nicely now:

janw (linux; master) 68_> swipl --abi_version
swipl-2-67-792e14f8-de23899e

There is a section in the docs explaining the various binary ABIs
and what aspects rely on them.  There is a new function PL_version()
in the C api that can be used to query the versions individually.
The above says:

  - Backward compatibility version of the foreign interface is 2
  - Saved state file format can be loaded when not older than 67
  - 792e14f8 is a fingerprint for the C-defined foreign predicate
signatures.
  - de23899e is a fingerprint of the VM instructions and their
signatures.

Does this adequately solve your problems?  Do you see other
requirements?

Can you test on this, or would you rather wait for an official
8.1.30?  I can create that now if that is useful to speedup
stabilizing stuff to get at 8.2.0.

Thanks --- Jan



Bug#958419: swi-prolog 8.1.29 in Debian

2020-04-28 Thread Jan Wielemaker

Hi Jonas,

On 4/28/20 4:42 PM, Jonas Smedegaard wrote:

Hi Jan,

Quoting Jan Wielemaker (2020-04-28 16:12:32)

A saved state makes sense for this scenario. Now I do not really
understand what the problem is. The eye package depends on some exact
version of SWI-Prolog, but it is not uncommon for one package to
require some specific version of a library, no?

Is the real problem that we cannot two versions of SWI-Prolog
installed side-by-side, so eye can depend on a specific version? That
can be fixed using -DSWIPL_VERSIONED_DIR=ON to the CMake configure,
which installs swi-prolog in /usr/lib/swi-prolog-.  Now we
get the problem that Debian likes -DSWIPL_INSTALL_IN_LIB=ON,
installing the shared object in /usr/lib, but this too should be
versioned, no?

The above seems one way out (but probably requires some work). Another
is to have the post-install script of eye create the saved state.

Finally, we could use caching by having eye.sh test for a state at
some cache location (e.g., ~/.cache/swi-prolog/states/eye.pvm) and
using this if available or first call swipl to create the saved state.

Would be nice to have an overall preferred solution for package
managers to deal with SWI-Prolog saved states. I think all three above
are viable, each with pros and cons and no clear winner.


The problem - which I consider a minor one - is to know for certain when
it is needed to regenerate an image.

I prefer that the binary package for eye contains only the generated
image (i.e. the eye source to generate that image is part of the Debian
_source_ package but not included in the _binary_ *.deb). What I would
then see as ideal would be if the binary package could know which exact
ABI of SWI Prolog it was tied to, so that it was known when it was
needed to regenerate the package.

You mentioned in a precviously quoted email that the ABI consist of two
parts, one of them being a hash of a VM and the other being a set of
variables.  I would gues that an ABI could then be some chars of the VM
hash + some chars of a hash of those variables.

Debian packaging of Asterisk and uWSGI uses such ABI hash towards third
party plugins, to alow them to be rebuilt as infrequently as possible.
See e.g. https://packages.debian.org/buster/uwsgi-plugin-php and
https://packages.debian.org/buster/asterisk-espeak (notice they depend
only indirectly on uwsgi/asterisk through a virtual ABI package name).


That is worth a try.  I guess that implies that generating SWI-Prolog
(as package) also generates this hash.  What kind of support would be
needed from SWI-Prolog to make this work?  Some script/command to create
this hash for a particular system?


Let me emphasize that I do *not* consider this an important issue: Makes
sense if you simply consider your upstream official release version _is_
the "ABI", and if we in Debian choose to carry a patch which breaks that
"ABI" then that's our headache, not yours.


In practice, surely for now, this is just as good.  The next version
packaged with Debian is typically the next stable release, which almost
always breaks full compatibility of the ABI wrt the previous stable.

It would make sense if we could establish a working series of patches
on a stable release that is guaranteed not to break the ABI.  I'm
afraid the project never managed to make this work.  Projects that
must rely on a stable version typically backport relevant fixes
themselves or found some other way to ensure access to a version
that is (for the project) the right mix between stability, features
and bugs.

Cheers --- Jan



Bug#958419: swi-prolog 8.1.29 in Debian

2020-04-28 Thread Jan Wielemaker

Hi Jos, Lev, Jonas,

A saved state makes sense for this scenario. Now I do not really
understand what the problem is. The eye package depends on some exact
version of SWI-Prolog, but it is not uncommon for one package to
require some specific version of a library, no?

Is the real problem that we cannot two versions of SWI-Prolog installed
side-by-side, so eye can depend on a specific version? That can be fixed
using -DSWIPL_VERSIONED_DIR=ON to the CMake configure, which installs
swi-prolog in /usr/lib/swi-prolog-.  Now we get the problem
that Debian likes -DSWIPL_INSTALL_IN_LIB=ON, installing the shared
object in /usr/lib, but this too should be versioned, no?

The above seems one way out (but probably requires some work). Another
is to have the post-install script of eye create the saved state.

Finally, we could use caching by having eye.sh test for a state at some
cache location (e.g., ~/.cache/swi-prolog/states/eye.pvm) and using this
if available or first call swipl to create the saved state.

Would be nice to have an overall preferred solution for package managers
to deal with SWI-Prolog saved states. I think all three above are
viable, each with pros and cons and no clear winner.

Cheers --- Jan

On 4/28/20 3:11 PM, Jos De Roo wrote:
> Hi Lev,
>
> Yes indeed, eye is using a saved state to have it started 10 times
> faster than normal:
>
> $ time swipl -x /opt/eye/lib/eye.pvm -- --version
> eye --version
> EYE v20.0423.1748 josd
> SWI-Prolog version 8.1.29
> starting 31 [msec cputime] 37 [msec walltime]
>
> real 0m0.041s
> user 0m0.037s
> sys 0m0.004s
>
> $ time swipl -f /opt/eye/src/eye.pl <http://eye.pl> -g main -- --version
> eye --version
> EYE v20.0423.1748 josd
> SWI-Prolog version 8.1.29
> starting 344 [msec cputime] 393 [msec walltime]
>
> real 0m0.401s
> user 0m0.343s
> sys 0m0.015s
>
> and this is quite crucial as eye is typically used as a short running
> process
> which is getting data/rules/query from the web, returning answers/proofs
> for the query and then closing the process as the internal state 
(e.g. the

> deductive closure of the forward reasoning run) is of no use to the next
> run.
>
> Kind regards,
> Jos
>
> -- https://josd.github.io/ <http://josd.github.io/>
>
>
> On Tue, Apr 28, 2020 at 1:30 PM Lev Lamberov  <mailto:dogs...@debian.org>> wrote:
>
> Вт 28 апр 2020 @ 13:11 Jan Wielemaker  <mailto:j.wielema...@vu.nl>>:
>
>  > Hi Lev,
>  >
>  > I most wanted to get Jos in the loop as the developer of eye.
> Packagers
>  > working together with developers/maintainers saves a lot of 
work :)

>
> Awww... so, CCing Jos De Roo.
>
> Jos, could you be so kind to take a look at the #958561 Debian bug
> report concerning swi-prolog and eye. You can find it there:
>
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=958561
>
>  > On 4/28/20 12:49 PM, Lev Lamberov wrote:
>  >> Hi Jan,
>  >>
>  >> Вт 28 апр 2020 @ 11:22 Jan Wielemaker  <mailto:j.wielema...@vu.nl>>:
>  >>
>  >>> Hi Lev, Jos,
>  >>>
>  >>> For Jos, the problem is that eye installs as a SWI-Prolog saved
> state,
>  >>> which is highly version dependent and this is difficult to deal
> with
>  >>> given the Debian dependency and upgrade policy (Lev, hope this
> is the
>  >>> right summary, please correct if not).
>  >>>
>  >>> I has a little look at eye and I wonder why we need the state.
> eye.pl <http://eye.pl>
>  >>> isn't that big and loads in about 0.12 sec on my machine.
> Without a
>  >>> state, eye seems to run easily using the simple script
>  >>>
>  >>> swipl -g main /path/to/eye.pl <http://eye.pl> "$@"
>  >>>
>  >>> Or by installing eye.pl <http://eye.pl> as the actual
> executable and start is using
>  >>>
>  >>> #!/bin/env swipl
>  >>>
>  >>> and use somewhere in the file
>  >>>
>  >>> :- initialization(main,main).
>  >>>
>  >>> Would it make sense to go this route?  If not, why not?  Is the
>  >>> somewhat longer startup time an issue?
>  >>>
>  >>> Thanks --- Jan
>  >>
>  >> I'm sending your message to the bug report and to Jonas 
Smedegaard.

>  >> Please, send your further replies to 958...@bugs.debian.org
> <mailto:958...@bugs.debian.org>
>  >>
>  >> Cheers!
>  >> Lev
>



Bug#958419: swi-prolog 8.1.29 in Debian

2020-04-28 Thread Jan Wielemaker

On 4/28/20 5:06 PM, Lev Lamberov wrote:

Hi Jan,

Вт 28 апр 2020 @ 16:56 Jan Wielemaker :


Debian packaging of Asterisk and uWSGI uses such ABI hash towards third
party plugins, to alow them to be rebuilt as infrequently as possible.
See e.g. https://packages.debian.org/buster/uwsgi-plugin-php and
https://packages.debian.org/buster/asterisk-espeak (notice they depend
only indirectly on uwsgi/asterisk through a virtual ABI package name).


That is worth a try.  I guess that implies that generating SWI-Prolog
(as package) also generates this hash.  What kind of support would be
needed from SWI-Prolog to make this work?  Some script/command to create
this hash for a particular system?


Let me emphasize that I do *not* consider this an important issue: Makes
sense if you simply consider your upstream official release version _is_
the "ABI", and if we in Debian choose to carry a patch which breaks that
"ABI" then that's our headache, not yours.


In practice, surely for now, this is just as good.  The next version
packaged with Debian is typically the next stable release, which almost
always breaks full compatibility of the ABI wrt the previous stable.


Do you mean stable branches (like 8.0.x vs. 8.2.x) or revisions of a
given stable branch (8.0.1 vs. 8.0.2 vs. 8.0.3)? I personally would
expect no changes of ABI in a given stable branch and I think it is what
is typically expected. I mean no new features => no ABI change, no?


In most cases patch levels should not affect the ABI, but we have not
always been completely strict in this.  A bug that requires an ABI 
change (which happens) can happen in a patch level release.  The

only real guarantee is that source code is fully compatible between
patch levels in the stable branch.   We try to maintain as much as
possible binary compatibility and 99% of the cases we succeed in
that.

Cheers --- Jan



Cheers!
Lev





Bug#958419: swi-prolog 8.1.29 in Debian

2020-04-28 Thread Jan Wielemaker

Hi Lev,

I most wanted to get Jos in the loop as the developer of eye.  Packagers
working together with developers/maintainers saves a lot of work :)

Cheers --- Jan

On 4/28/20 12:49 PM, Lev Lamberov wrote:

Hi Jan,

Вт 28 апр 2020 @ 11:22 Jan Wielemaker :


Hi Lev, Jos,

For Jos, the problem is that eye installs as a SWI-Prolog saved state,
which is highly version dependent and this is difficult to deal with
given the Debian dependency and upgrade policy (Lev, hope this is the
right summary, please correct if not).

I has a little look at eye and I wonder why we need the state.  eye.pl
isn't that big and loads in about 0.12 sec on my machine.  Without a
state, eye seems to run easily using the simple script

swipl -g main /path/to/eye.pl "$@"

Or by installing eye.pl as the actual executable and start is using

#!/bin/env swipl

and use somewhere in the file

:- initialization(main,main).

Would it make sense to go this route?  If not, why not?  Is the
somewhat longer startup time an issue?

Thanks --- Jan


I'm sending your message to the bug report and to Jonas Smedegaard.
Please, send your further replies to 958...@bugs.debian.org

Cheers!
Lev





Bug#793211: swi-prolog 7.2 breaks the ppl prolog bindings

2015-08-14 Thread Jan Wielemaker

Hi Eugeniy,

On 08/14/2015 10:15 AM, Eugeniy Meshcheryakov wrote:

Hi Jan,

The test suite was disabled in ppl so swi-prolog did migrate to testing.
I see Ubuntu also got this version. So it is not so bad anymore.


Great!


It would be good to fix this some time anyway. I may look at it this
weekend.


If I can help, just ask.  There is a 7.2.3 ready to be created.  I
considered creating it yesterday, but decided to see whether we could
resolve this first.

Cheers --- Jan



Bug#793211: swi-prolog 7.2 breaks the ppl prolog bindings

2015-08-14 Thread Jan Wielemaker

Dear all,

I've returned from holidays.  This issue seems a show stopper getting
SWI-Prolog 7.2 into Debian and its offspring.  What is the status?
Can I help?  Concerning the build fails on amd64, I guess I
can reproduce this.

Cheers -- Jan


On 07/23/2015 09:18 PM, Eugeniy Meshcheryakov wrote:

Hello Jan,

I've got the following bug report from a Debian developer. Do you have
any idea how to fix it? This issue prevents swi-prolog from migrating to
Debian testing.

The original bug report for PPL is available here:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787486

This bug report is archived here (also contains the log file):

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=793211

Regards,
Eugeniy Meshcheryakov

22 липня 2015 о 15:09 +0200 Matthias Klose написав(-ла):

Package: src:swi-prolog
Version: 7.2.0-2
Severity: important

swi-prolog 7.2 breaks the ppl prolog bindings, such that ppl has to be built
with -fpermissive.  However running the tests reveals that these are then
broken. swi-prolog 6 works fine.

See #787486 for the ppl issue.




[...]
Making check in Prolog
make[4]: Entering directory '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog'
/usr/bin/make  check-recursive
make[5]: Entering directory '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog'
Making check in .
make[6]: Entering directory '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog'
make[6]: Nothing to be done for 'check-am'.
make[6]: Leaving directory '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog'
Making check in tests
make[6]: Entering directory 
'/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests'
/usr/bin/make  check-local
make[7]: Entering directory 
'/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests'
/usr/bin/m4 --prefix-builtin -I../.. \
-I. -I./.. -I./../.. \
./ppl_interface_generator_prolog_generated_test_pl.m4 \
 ppl_prolog_generated_test_blob
../../../utils/cm_cleaner.sh ./ppl_prolog_generated_test_blob
../../../utils/cm_splitter.sh ./ppl_prolog_generated_test_blob
rm -f ppl_prolog_generated_test_blob
echo timestamp ppl_prolog_generated_test.stamp
make[7]: Leaving directory 
'/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests'
make[6]: Leaving directory 
'/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests'
Making check in SWI
make[6]: Entering directory 
'/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/SWI'
/usr/bin/make  ppl_pl pl_clpq pl_clpq2
make[7]: Entering directory 
'/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/SWI'
x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../interfaces 
-I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src 
-I/usr/lib/swi-prolog/include -I/usr/include/pl  -D_FORTIFY_SOURCE=2  -g -O2 
-frounding-math -g -O2 -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -g -fpermissive -W -Wall -MT ppl_pl.o -MD -MP -MF 
.deps/ppl_pl.Tpo -c -o ppl_pl.o ppl_pl.cc
x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../interfaces 
-I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src 
-I/usr/lib/swi-prolog/include -I/usr/include/pl  -D_FORTIFY_SOURCE=2  -g -O2 
-frounding-math -g -O2 -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -g -fpermissive -W -Wall -MT pl_clpq.o -MD -MP 
-MF .deps/pl_clpq.Tpo -c -o pl_clpq.o pl_clpq.cc
mv -f .deps/ppl_pl.Tpo .deps/ppl_pl.Po
mv -f .deps/pl_clpq.Tpo .deps/pl_clpq.Po
/usr/bin/swipl-ld -pl /usr/bin/swipl -cc x86_64-linux-gnu-gcc -c++ 
x86_64-linux-gnu-g++ -ld x86_64-linux-gnu-g++ \
-ld-options`echo ''  -g -O2 -frounding-math -g -O2 -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -g -fpermissive -W -Wall | tr   /` \
-o ppl_pl .libs/libppl_swiprolog.a ppl_pl.o \
-L../../../src/.libs \
-lppl  -lgmpxx -lgmp
/usr/bin/swipl-ld -pl /usr/bin/swipl -cc x86_64-linux-gnu-gcc -c++ 
x86_64-linux-gnu-g++ -ld x86_64-linux-gnu-g++ \
-ld-options`echo ''  -g -O2 -frounding-math -g -O2 -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -g -fpermissive -W -Wall | tr   /` \
-o pl_clpq .libs/libppl_swiprolog.a pl_clpq.o \
 ./pl_clpq.pl ./../tests/clpq.pl \
-L../../../src/.libs \
-lppl  -lgmpxx -lgmp
/usr/bin/swipl-ld -pl /usr/bin/swipl -cc x86_64-linux-gnu-gcc -c++ 
x86_64-linux-gnu-g++ -ld x86_64-linux-gnu-g++ \
-ld-options`echo ''  -g -O2 -frounding-math -g -O2 -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -g -fpermissive -W -Wall | tr   /` \
-o pl_clpq2 .libs/libppl_swiprolog.a pl_clpq.o \
 ./pl_clpq.pl ./../tests/clpq2.pl \
-L../../../src/.libs \
-lppl  -lgmpxx -lgmp
Warning: /scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests/clpq.pl:208:
Singleton variable in branch: File_Name
Warning: /scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests/clpq2.pl:293:
Singleton variable in branch: File_Name
Warning: 

Bug#793211: swi-prolog 7.2 breaks the ppl prolog bindings

2015-07-26 Thread Jan Wielemaker
Hi Eugeniy,

No real clue.  The stacktrace is definitely completely broken, I guess
because too much symbol data is missing.  I guess the simplest step is
to make sure the compile flags include -g and possibly drop -O2 and
symbols are not stripped.  Then we might get a stacktrace that indicates
the real problem.

The type of error is typically caused by calls from C to Prolog that
ignore the (FALSE) return value.  The vital API functions do have the
gcc attribute that causes gcc to warn on ignored return values, so
inspecting the build log may give a clue.

I can't do much right now as I'm travelling with only a small chromebook

If you manage to produce a proper stack trace, please sent it.  Might
take a few days for me to respond.  I'm back at the office as of August 10.

Cheers --- Jan


On 07/23/15 21:18, Eugeniy Meshcheryakov wrote:
 Hello Jan,
 
 I've got the following bug report from a Debian developer. Do you have
 any idea how to fix it? This issue prevents swi-prolog from migrating to
 Debian testing.
 
 The original bug report for PPL is available here:
 
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787486
 
 This bug report is archived here (also contains the log file):
 
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=793211
 
 Regards,
 Eugeniy Meshcheryakov
 
 22 липня 2015 о 15:09 +0200 Matthias Klose написав(-ла):
 Package: src:swi-prolog
 Version: 7.2.0-2
 Severity: important

 swi-prolog 7.2 breaks the ppl prolog bindings, such that ppl has to be built
 with -fpermissive.  However running the tests reveals that these are then
 broken. swi-prolog 6 works fine.

 See #787486 for the ppl issue.

 
 [...]
 Making check in Prolog
 make[4]: Entering directory '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog'
 /usr/bin/make  check-recursive
 make[5]: Entering directory '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog'
 Making check in .
 make[6]: Entering directory '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog'
 make[6]: Nothing to be done for 'check-am'.
 make[6]: Leaving directory '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog'
 Making check in tests
 make[6]: Entering directory 
 '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests'
 /usr/bin/make  check-local
 make[7]: Entering directory 
 '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests'
 /usr/bin/m4 --prefix-builtin -I../.. \
  -I. -I./.. -I./../.. \
  ./ppl_interface_generator_prolog_generated_test_pl.m4 \
   ppl_prolog_generated_test_blob
 ../../../utils/cm_cleaner.sh ./ppl_prolog_generated_test_blob
 ../../../utils/cm_splitter.sh ./ppl_prolog_generated_test_blob
 rm -f ppl_prolog_generated_test_blob
 echo timestamp ppl_prolog_generated_test.stamp
 make[7]: Leaving directory 
 '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests'
 make[6]: Leaving directory 
 '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/tests'
 Making check in SWI
 make[6]: Entering directory 
 '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/SWI'
 /usr/bin/make  ppl_pl pl_clpq pl_clpq2
 make[7]: Entering directory 
 '/scratch/packages/tmp/ppl-1.1/interfaces/Prolog/SWI'
 x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../interfaces 
 -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src 
 -I/usr/lib/swi-prolog/include -I/usr/include/pl  -D_FORTIFY_SOURCE=2  -g -O2 
 -frounding-math -g -O2 -fstack-protector-strong -Wformat 
 -Werror=format-security -Wall -g -fpermissive -W -Wall -MT ppl_pl.o -MD -MP 
 -MF .deps/ppl_pl.Tpo -c -o ppl_pl.o ppl_pl.cc
 x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../interfaces 
 -I../../../interfaces/Prolog -I/interfaces/Prolog -I../../../src 
 -I/usr/lib/swi-prolog/include -I/usr/include/pl  -D_FORTIFY_SOURCE=2  -g -O2 
 -frounding-math -g -O2 -fstack-protector-strong -Wformat 
 -Werror=format-security -Wall -g -fpermissive -W -Wall -MT pl_clpq.o -MD -MP 
 -MF .deps/pl_clpq.Tpo -c -o pl_clpq.o pl_clpq.cc
 mv -f .deps/ppl_pl.Tpo .deps/ppl_pl.Po
 mv -f .deps/pl_clpq.Tpo .deps/pl_clpq.Po
 /usr/bin/swipl-ld -pl /usr/bin/swipl -cc x86_64-linux-gnu-gcc -c++ 
 x86_64-linux-gnu-g++ -ld x86_64-linux-gnu-g++ \
  -ld-options`echo ''  -g -O2 -frounding-math -g -O2 
 -fstack-protector-strong -Wformat -Werror=format-security -Wall -g 
 -fpermissive -W -Wall | tr   /` \
  -o ppl_pl .libs/libppl_swiprolog.a ppl_pl.o \
  -L../../../src/.libs \
  -lppl  -lgmpxx -lgmp 
 /usr/bin/swipl-ld -pl /usr/bin/swipl -cc x86_64-linux-gnu-gcc -c++ 
 x86_64-linux-gnu-g++ -ld x86_64-linux-gnu-g++ \
  -ld-options`echo ''  -g -O2 -frounding-math -g -O2 
 -fstack-protector-strong -Wformat -Werror=format-security -Wall -g 
 -fpermissive -W -Wall | tr   /` \
  -o pl_clpq .libs/libppl_swiprolog.a pl_clpq.o \
 ./pl_clpq.pl ./../tests/clpq.pl \
  -L../../../src/.libs \
  -lppl  -lgmpxx -lgmp 
 /usr/bin/swipl-ld -pl /usr/bin/swipl -cc x86_64-linux-gnu-gcc -c++ 
 x86_64-linux-gnu-g++ -ld x86_64-linux-gnu-g++ \
  -ld-options`echo '' 

Bug#606250: System map of 2.6.32-5-amd64 does not match kernel

2010-12-08 Thread Jan Wielemaker
Dear Ben,

Thanks for looking into this.

On Wed, 2010-12-08 at 01:30 +, Ben Hutchings wrote:
 On Wed, 2010-12-08 at 00:11 +, Ben Hutchings wrote:
  On Tue, 2010-12-07 at 21:13 +0100, Jan Wielemaker wrote:
 [...]
   Looks like a trivial bug, but I cannot find a report that indicates
   it has been filed before.  Is there a way to fix this without
   recompiling the kernel from scratch myself?
  
  This is a bug in procps.  It's relying on some version information which
  is only present in System.map if the kernel was configured without
  CONFIG_KALLSYMS set.
 
 Actually this is not so clear.  The error message ps shows when you set
 PS_SYSTEM_MAP is incorrect, but then ps shouldn't even need System.map
 when the kernel is configured with CONFIG_KALLSYMS!

This is just the Debian testing generic kernel for AMD64.  I see there
is an entry /proc/kallsyms that exports the symbols.  That looks just
fine.

 However, wchan cannot be provided when the 'omit frame pointer'
 optimisation is used in the kernel.  We enable that optimisation on x86
 kernels, and have done for some time.

Hmmm.  I though omit frame pointer only makes sense on x86.  This is
AMD64.

When I run ps under strace, it neither tries to open /proc/kallsyms,
nor /boot/System.map*!?

Regards --- Jan




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#606250: System map of 2.6.32-5-amd64 does not match kernel

2010-12-07 Thread Jan Wielemaker
Package: linux-image
Version: 2.6.32-5-amd64

Hi,  Trying to debug ocfs2 issues, I noticed that the system.map file
doesn't match the kernel in the latest Squeeze version.  Here are my
findings:

# dpkg -S /boot/System.map-2.6.32-5-amd64 
linux-image-2.6.32-5-amd64: /boot/System.map-2.6.32-5-amd64
# dpkg -S /boot/vmlinuz-2.6.32-5-amd64 
linux-image-2.6.32-5-amd64: /boot/vmlinuz-2.6.32-5-amd64

So, both come from the same package.  The (2) machines have been
rebooted after the last kernel upgrade.  But ps -o
pid,wchan=WIDE-WCHAN-COLUMN only gives - or ? as wchan.  Telling
it explicitly which map to use gives:

# PS_SYSTEM_MAP=/boot/System.map-2.6.32-5-amd64 ps -o
pid,wchan=WIDE-WCHAN-COLUMN
Warning: /boot/System.map-2.6.32-5-amd64 has an incorrect kernel
version.
  PID WIDE-WCHAN-COLUMN
18887 -

Looks like a trivial bug, but I cannot find a report that indicates
it has been filed before.  Is there a way to fix this without
recompiling the kernel from scratch myself?

Thanks --- Jan




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org