Send Beginners mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1. Re:  Check constructor's field numeric value at compile time
      (Kim-Ee Yeoh)
   2. Re:  Stackage latest snapshot (Michael Snoyman)
   3. Re:  Stackage latest snapshot (Peter)
   4. Re:  Stackage latest snapshot (Michael Snoyman)
   5. Re:  Stackage latest snapshot (Peter)


----------------------------------------------------------------------

Message: 1
Date: Wed, 3 Sep 2014 10:07:53 +0700
From: Kim-Ee Yeoh <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Check constructor's field numeric
        value at compile time
Message-ID:
        <CAPY+ZdQcNhUoh39Xh6A7wNQAj_KBDM4hF8Zdoan=fgrbsws...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

On Wed, Sep 3, 2014 at 2:32 AM, Dmitriy Matrosov <[email protected]> wrote:

> How can i write this constraints so they're checked at compile time, not
> at runtime?


Smart constructors won't check them at compile time but it does the next
best thing, which is validate at the earliest possible moment.



-- Kim-Ee
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20140903/9f6c7331/attachment-0001.html>

------------------------------

Message: 2
Date: Wed, 3 Sep 2014 07:50:09 +0300
From: Michael Snoyman <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Stackage latest snapshot
Message-ID:
        <caka2jg+ywhonfc1wemars4onxncpur7papay_nvaf9_oln7...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

On Tue, Sep 2, 2014 at 10:27 AM, Jeremy <[email protected]> wrote:

> I would like to point my cabal file to the latest Stackage snapshot. I seem
> to recall that there is a link which will automatically resolve to this,
> but
> I can no longer find it.
>
> Does this link still exist? Is there a good reason for not doing so? I
> understand that this will introduce a little instability, but I'm OK
> dealing
> with that in return for not getting stuck on the same package versions
> forever.
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>


The preparing your system for Stackage page[1] has those auto-updated links
available (e.g., GHC 7.8 exclusive is [2]). You already identified the
downside with this: you may magically be upgraded to a new version of a
package. If you really want to do this, you can, but my recommendation is
to manually decide to upgrade your Stackage snapshot consciously instead of
letter an arbitrary Jenkins build server make the decision for you.

Michael

[1]
https://github.com/fpco/stackage/wiki/Preparing-your-system-to-use-Stackage
[2] http://www.stackage.org/alias/fpcomplete/unstable-ghc78-exclusive
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20140903/935540b3/attachment-0001.html>

------------------------------

Message: 3
Date: Wed, 3 Sep 2014 07:52:24 +0000 (UTC)
From: Peter <[email protected]>
To: [email protected]
Subject: Re: [Haskell-beginners] Stackage latest snapshot
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

Michael Snoyman <michael <at> snoyman.com> writes:

> The preparing your system for Stackage page[1] has those auto-updated
links available (e.g., GHC 7.8 exclusive is [2]).

Thank you. I read the page at least 3 times, but missed that because the
links redirected to the latest snapshot, and the Stackage server only has
static snapshot links. Perhaps it should be made clearer that these links
will redirect to the current snapshot, and add them to
http://www.stackage.org/snapshots as well?

> You already identified the downside with this: you may magically be
upgraded to a new version of a package. If you really want to do this, you
can, but my recommendation is to manually decide to upgrade your Stackage
snapshot consciously instead of letter an arbitrary Jenkins build server
make the decision for you.

I'm using Stackage as a QA'd Hackage. It sounds like you see it more as a
server-side cabal freeze.



------------------------------

Message: 4
Date: Wed, 3 Sep 2014 11:02:55 +0300
From: Michael Snoyman <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Stackage latest snapshot
Message-ID:
        <CAKA2Jg+riW8hBATxTnpHPFYHZsZ-HLtqo=hoAp=u990kdp6...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

On Wed, Sep 3, 2014 at 10:52 AM, Peter <[email protected]> wrote:

> Michael Snoyman <michael <at> snoyman.com> writes:
>
> > The preparing your system for Stackage page[1] has those auto-updated
> links available (e.g., GHC 7.8 exclusive is [2]).
>
> Thank you. I read the page at least 3 times, but missed that because the
> links redirected to the latest snapshot, and the Stackage server only has
> static snapshot links. Perhaps it should be made clearer that these links
> will redirect to the current snapshot, and add them to
> http://www.stackage.org/snapshots as well?
>
>
That would be a good idea if I wanted people to directly use those URLs,
which I think is generally a bad idea. The lack of explicitness about the
presence of a redirect there is a feature, not a bug ;).


> > You already identified the downside with this: you may magically be
> upgraded to a new version of a package. If you really want to do this, you
> can, but my recommendation is to manually decide to upgrade your Stackage
> snapshot consciously instead of letter an arbitrary Jenkins build server
> make the decision for you.
>
> I'm using Stackage as a QA'd Hackage. It sounds like you see it more as a
> server-side cabal freeze.
>
>
I'm not sure what distinction you're going for in this. Imagine the
following sequence of events:

* You set up your system to use Stackage, with September 1's snapshot being
active at the time.
* You install foo-1.1, with bar-1.1 depending on it.
* A new Stackage snapshot comes out, providing foo-1.2.
* You now try to install something depending on foo, and depending on the
alignment of the stars, cabal will either download a new foo or use the
already installed one.

In other words, the usage you seem to be implying is highly
non-deterministic, which I'd be very careful about using.

Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20140903/66866ace/attachment-0001.html>

------------------------------

Message: 5
Date: Wed, 3 Sep 2014 08:37:47 +0000 (UTC)
From: Peter <[email protected]>
To: [email protected]
Subject: Re: [Haskell-beginners] Stackage latest snapshot
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

Michael Snoyman <michael <at> snoyman.com> writes:

> > You already identified the downside with this: you may magically be
> upgraded to a new version of a package. If you really want to do this, you
> can, but my recommendation is to manually decide to upgrade your Stackage
> snapshot consciously instead of letter an arbitrary Jenkins build server
> make the decision for you.
> I'm using Stackage as a QA'd Hackage. It sounds like you see it more as a
> server-side cabal freeze.
> 
> 
> I'm not sure what distinction you're going for in this. Imagine the
following sequence of events:
> 
> * You set up your system to use Stackage, with September 1's snapshot
being active at the time.
> 
> * You install foo-1.1, with bar-1.1 depending on it.
> 
> * A new Stackage snapshot comes out, providing foo-1.2.
> 
> * You now try to install something depending on foo, and depending on the
alignment of the stars, cabal will either download a new foo or use the
already installed one.
> 
> In other words, the usage you seem to be implying is highly
non-deterministic, which I'd be very careful about using.

There are 3 levels of stability:

 1. Hackage, where any package may fail to compile, even by itself.
 2. Stackage latest, where at any one time, all packages will compile
together. New packages won't get in until they meet this stability criteria.
 3. Stackage snapshot, where all packages will compile together, and never
change.

All of these have legitimate uses. I prefer developing with 2, to avoid
being stuck with the same package versions until I change the snapshot, and
I'm prepared to fix up the example you gave manually if need be.

I guess it's similar to the difference between yum, which automatically
updates the package list on a fairly frequent basis, and apt-get, which
requires an explicit update. I personally prefer yum's approach (as do Red
Hat / Fedora), but I haven't seen any Debian folks calling to change apt.



------------------------------

Subject: Digest Footer

_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners


------------------------------

End of Beginners Digest, Vol 75, Issue 3
****************************************

Reply via email to