Discussion:
[m-dev.] I have been making Debian packages
Paul Bone
2017-03-23 04:43:43 UTC
Permalink
I've been packaging Mercury for Debian recently.

http://dl2.mercurylang.org/packages/

So far I have packaged Mercury 14.01.1 for Debian jessie on amd64. Both
others will come soon.

Is this something we want on the main downloads site? dl2 is a computer in
my wardrobe and I turn it off when I'm not using it.

Cheers.
--
Paul Bone
http://paul.bone.id.au
Charles Shuller
2017-03-23 12:23:34 UTC
Permalink
Awesome and Thank You!

My vote is for the package being on the main DL site.


Cheers!

Charles
Post by Paul Bone
I've been packaging Mercury for Debian recently.
http://dl2.mercurylang.org/packages/
So far I have packaged Mercury 14.01.1 for Debian jessie on amd64. Both
others will come soon.
Is this something we want on the main downloads site? dl2 is a computer in
my wardrobe and I turn it off when I'm not using it.
Cheers.
--
Paul Bone
http://paul.bone.id.au
_______________________________________________
developers mailing list
https://lists.mercurylang.org/listinfo/developers
Julien Fischer
2017-03-24 00:41:28 UTC
Permalink
Hi Paul,
Post by Paul Bone
I've been packaging Mercury for Debian recently.
http://dl2.mercurylang.org/packages/
For the benefit of those of without a Debian (based) system to hand,
what packages have you split it up into?
Post by Paul Bone
So far I have packaged Mercury 14.01.1 for Debian jessie on amd64. Both
others will come soon.
Is this something we want on the main downloads site?
Sure.

Julien.
Paul Bone
2017-03-24 05:19:13 UTC
Permalink
Post by Julien Fischer
Hi Paul,
Post by Paul Bone
I've been packaging Mercury for Debian recently.
http://dl2.mercurylang.org/packages/
For the benefit of those of without a Debian (based) system to hand,
what packages have you split it up into?
I'll put this online also.

Grade Package
-------------------------------------------------
hlc.gc mercury-hlc
hlc.par.gc mercury-hlcpar
hlc.gc.trseg mercury-hlctrail
asm_fast.gc mercury-llc
asm_fast.par.gc.stseg mercury-llcpar
asm_fast.gc.trseg mercury-llctrail
asm_fast.gc.decldebug.stseg mercury-devel
asm_fast.gc.profdeep.stseg mercury-devel
asm_fast.gc.memprof.stseg mercury-devel
asm_fast.gc.prof.stseg mercury-devel

For all of these except mercury-devel you will also need the -dev package if
you want to compile programs for that grade. The non -dev packages are just
the shared objects.
Post by Julien Fischer
Post by Paul Bone
others will come soon.
Is this something we want on the main downloads site?
Okay, I'll do that soon.
--
Paul Bone
http://paul.bone.id.au
Zoltan Somogyi
2017-03-24 05:42:57 UTC
Permalink
Post by Paul Bone
Okay, I'll do that soon.
Thanks for that.

While you are at it, you may wish to update the web site to reflect the
changes in the www repository. I added my thesis and made sundry changes
almost two months ago.

Zoltan.
Paul Bone
2017-03-24 06:00:57 UTC
Permalink
Post by Zoltan Somogyi
Post by Paul Bone
Okay, I'll do that soon.
Thanks for that.
While you are at it, you may wish to update the web site to reflect the
changes in the www repository. I added my thesis and made sundry changes
almost two months ago.
I did it straight away because I was already logged in to the server. We
could probably create a cron job for this.
--
Paul Bone
http://paul.bone.id.au
Zoltan Somogyi
2017-03-24 06:03:08 UTC
Permalink
Post by Paul Bone
We
could probably create a cron job for this.
That would be a good idea.

Zoltan.
Paul Bone
2017-03-25 05:35:20 UTC
Permalink
Post by Paul Bone
Post by Paul Bone
Is this something we want on the main downloads site?
Okay, I'll do that soon.
Okay, it's now on the main downloads site

http://dl.mercurylang.org/deb

deb http://dl.mercurylang.org/deb/stable/ jessie main
deb-src http://dl.mercurylang.org/deb/stable/ jessie main

I've also added i386 builds, and I can do some other builds next week.
--
Paul Bone
http://paul.bone.id.au
Sebastian Godelet
2017-03-25 13:31:44 UTC
Permalink
Hello Paul,

When I ran this on Windows 10 1607 “Ubuntu on Windows” (which is Ubuntu 14.01), I got the following error:

sudo apt-get mercury-recommended
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
mercury-recommended : Depends: mercury-hlcpar-dev but it is not going to be installed
Depends: mercury-llcpar-dev but it is not going to be installed

Do you know if there is a way (command line switch, etc.) to say exactly why it couldn’t find those?

sudo apt-get mercury-devel resolved fine.

Are the packaging scripts/instructions open-source?

Thanks,

Sebastian.

From: Paul Bone<mailto:***@bone.id.au>
Sent: Saturday, March 25, 2017 1:35 PM
To: Julien Fischer<mailto:***@opturion.com>
Cc: Mercury Developers<mailto:***@lists.mercurylang.org>
Subject: Re: [m-dev.] I have been making Debian packages
Post by Paul Bone
Post by Paul Bone
Is this something we want on the main downloads site?
Okay, I'll do that soon.
Okay, it's now on the main downloads site

http://dl.mercurylang.org/deb

deb http://dl.mercurylang.org/deb/stable/ jessie main
deb-src http://dl.mercurylang.org/deb/stable/ jessie main

I've also added i386 builds, and I can do some other builds next week.


--
Paul Bone
http://paul.bone.id.au
Paul Bone
2017-03-26 10:45:32 UTC
Permalink
Post by Sebastian Godelet
Hello Paul,
sudo apt-get mercury-recommended
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
mercury-recommended : Depends: mercury-hlcpar-dev but it is not going to be installed
Depends: mercury-llcpar-dev but it is not going to be installed
Do you know if there is a way (command line switch, etc.) to say exactly why it couldn’t find those?
I don't know, I thought it usually says why something "is not going to be
installed". Could it be the difference between "apt-get <packagename>" and
"apt-get install <packagename>"?
Post by Sebastian Godelet
sudo apt-get mercury-devel resolved fine.
Are the packaging scripts/instructions open-source?
They will be, I'll publish them either later this evening or tomorrow.

Whatever you do you may still run into problems with Ubuntu on Windows. At
YesLogic (where we use Mercury commercially) we have received some reports
that Mercury programs crash (we're using the hlc.par.gc grade FWIW).
We have simply instructed our customers to download the windows version if
they're running windows. We suspect that Microsoft's emulation simply isn't
perfect.
--
Paul Bone
http://paul.bone.id.au
Paul Bone
2017-03-27 00:56:33 UTC
Permalink
Post by Paul Bone
Post by Sebastian Godelet
sudo apt-get mercury-devel resolved fine.
Are the packaging scripts/instructions open-source?
They will be, I'll publish them either later this evening or tomorrow.
https://github.com/Mercury-Language/packaging
--
Paul Bone
http://paul.bone.id.au
Paul Bone
2017-03-27 09:56:55 UTC
Permalink
Hi,
Post by Paul Bone
Post by Sebastian Godelet
sudo apt-get mercury-devel resolved fine.
Are the packaging scripts/instructions open-source?
They will be, I'll publish them either later this evening or tomorrow.
Whatever you do you may still run into problems with Ubuntu on Windows.
At YesLogic (where we use Mercury commercially) we have received some
reports that Mercury programs crash (we're using the hlc.par.gc grade FWIW).
We have simply instructed our customers to download the windows version
if they're running windows. We suspect that Microsoft's emulation simply
isn't perfect.
Yes it is still in beta I think. Maybe the next Windows 10 update version will improve on that part.
I'll try this new package with docker next, that should work much better.
Having a pre-packaged version vastly improves support for CI tools such as Jenkins so one doesn't have bootstrap Mercury during a full CI rebuild,
Let's say a service such as Travis CI works best with pre-build packages.
Now the only trouble is that 14.01.1 is too old to compile a DEV compiler.
I guess there will eventually be a next release :-)
Definitely! That's the main reason why I built it. So that at YesLogic we
can setup CI or other testing things easily.

Yes, 14.01.1 is quite old, I'll be making packages based on a recent ROTD
also. I don't know when there will be a release, we started to plan one,
maybe 12 months ago, but I guess everyone forgot or lost interest.

All the best.
--
Paul Bone
http://paul.bone.id.au
Julien Fischer
2017-03-27 23:39:11 UTC
Permalink
Hi Paul,
Post by Paul Bone
Post by Julien Fischer
Hi Paul,
Post by Paul Bone
I've been packaging Mercury for Debian recently.
http://dl2.mercurylang.org/packages/
For the benefit of those of without a Debian (based) system to hand,
what packages have you split it up into?
I'll put this online also.
Grade Package
-------------------------------------------------
hlc.gc mercury-hlc
hlc.par.gc mercury-hlcpar
hlc.gc.trseg mercury-hlctrail
asm_fast.gc mercury-llc
asm_fast.par.gc.stseg mercury-llcpar
asm_fast.gc.trseg mercury-llctrail
asm_fast.gc.decldebug.stseg mercury-devel
asm_fast.gc.profdeep.stseg mercury-devel
asm_fast.gc.memprof.stseg mercury-devel
asm_fast.gc.prof.stseg mercury-devel
For all of these except mercury-devel you will also need the -dev package if
you want to compile programs for that grade. The non -dev packages are just
the shared objects.
Good, that's what I was hoping you'd done with the shared objects.

I think the above set of packages is too fine-grained; I have an alternative
suggestion:

Package: mercury-runtime
Contents: shared objects for all the (useful) "production" C grades, namely:
hlc.gc, hlc.par.gc hlc.gc.trseg, asm_fast.gc.stseg, asm_fast.par.gc.trseg.stseg
and asm_fast.par.gc.stseg.

Given that the .so files are fairly small I'm not sure there is much to be gained
by the fine-grained packaging.

Package: mercury-java-runtime
Contents: .jar files for the Java grade

Package: mercury-csharp-runtime
Contents: .dll files for the C# grade.

Package: mercury-devel
Depends: mercury-runtime
Contents: the Mercury compiler + the rest of the files required to build
things in the grades in the mercury-runtime package. This might also include
the debug and profiling grades (as you have above) if they aren't split
out into their own packages.

Package: mercury-java-devel
Depends: the underlying system needs a Java compiler and runtime.
Contents: remaining files needed for compiling in the Java grade.

Package: mercury-csharp-devel
Depends: the underlying system will need a C# compiler and CLR runtime.
Contents: remaining files needed for compiling in the C# grade.

Julien.

Loading...