openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
October 2024
- 1 participants
- 1410 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package hledger for openSUSE:Factory checked in at 2024-10-28 15:19:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hledger (Old)
and /work/SRC/openSUSE:Factory/.hledger.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hledger"
Mon Oct 28 15:19:54 2024 rev:30 rq:1218582 version:1.40
Changes:
--------
--- /work/SRC/openSUSE:Factory/hledger/hledger.changes 2024-06-11 18:28:58.712179368 +0200
+++ /work/SRC/openSUSE:Factory/.hledger.new.2020/hledger.changes 2024-10-28 15:22:40.161323681 +0100
@@ -1,0 +2,9 @@
+Mon Sep 9 21:16:33 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update hledger to version 1.40.
+ Upstream has edited the change log file since the last release in
+ a non-trivial way, i.e. they did more than just add a new entry
+ at the top. You can review the file at:
+ http://hackage.haskell.org/package/hledger-1.40/src/CHANGES.md
+
+-------------------------------------------------------------------
Old:
----
hledger-1.34.tar.gz
New:
----
hledger-1.40.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hledger.spec ++++++
--- /var/tmp/diff_new_pack.nSRlfF/_old 2024-10-28 15:22:42.001400547 +0100
+++ /var/tmp/diff_new_pack.nSRlfF/_new 2024-10-28 15:22:42.017401215 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: %{pkg_name}
-Version: 1.34
+Version: 1.40
Release: 0
Summary: Command-line interface for the hledger accounting system
License: GPL-3.0-or-later
++++++ hledger-1.34.tar.gz -> hledger-1.40.tar.gz ++++++
++++ 13657 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-vector-stream for openSUSE:Factory checked in at 2024-10-28 15:19:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-vector-stream (Old)
and /work/SRC/openSUSE:Factory/.ghc-vector-stream.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-vector-stream"
Mon Oct 28 15:19:37 2024 rev:6 rq:1218577 version:0.1.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-vector-stream/ghc-vector-stream.changes 2024-03-27 20:44:04.436452561 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-vector-stream.new.2020/ghc-vector-stream.changes 2024-10-28 15:22:19.856475487 +0100
@@ -1,0 +2,6 @@
+Sat Oct 19 17:27:19 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update vector-stream to version 0.1.0.1 revision 2.
+ Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-vector-stream.spec ++++++
--- /var/tmp/diff_new_pack.EjlQz6/_old 2024-10-28 15:22:21.864559371 +0100
+++ /var/tmp/diff_new_pack.EjlQz6/_new 2024-10-28 15:22:21.864559371 +0100
@@ -25,7 +25,7 @@
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
-Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal…
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal…
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-base-devel
BuildRequires: ghc-base-prof
++++++ vector-stream.cabal ++++++
--- /var/tmp/diff_new_pack.EjlQz6/_old 2024-10-28 15:22:21.904561041 +0100
+++ /var/tmp/diff_new_pack.EjlQz6/_new 2024-10-28 15:22:21.908561208 +0100
@@ -1,60 +1,60 @@
-Name: vector-stream
-Version: 0.1.0.1
-x-revision: 1
--- don't forget to update the changelog file!
-License: BSD3
-License-File: LICENSE
-Author: Roman Leshchinskiy <rl(a)cse.unsw.edu.au>
-Maintainer: Haskell Libraries Team <libraries(a)haskell.org>
- Alexey Kuleshevich <alexey(a)kuleshevi.ch>,
- Aleksey Khudyakov <alexey.skladnoy(a)gmail.com>,
- Andrew Lelechenko <andrew.lelechenko(a)gmail.com>
-Copyright: (c) Roman Leshchinskiy 2008-2012
- Alexey Kuleshevich 2020-2022,
- Aleksey Khudyakov 2020-2022,
- Andrew Lelechenko 2020-2022
-Homepage: https://github.com/haskell/vector
-Bug-Reports: https://github.com/haskell/vector/issues
-Category: Data, Data Structures
-Synopsis: Efficient Streams
-Description:
- Simple yet powerful monadic streams that are used
- as a backbone for vector package fusion functionality.
-
-Tested-With:
- GHC == 8.0.2,
- GHC == 8.2.2,
- GHC == 8.4.4,
- GHC == 8.6.5,
- GHC == 8.8.4,
- GHC == 8.10.4,
- GHC == 9.0.2,
- GHC == 9.2.8,
- GHC == 9.4.6,
- GHC == 9.6.2
- GHC == 9.8.1
-
-Cabal-Version: >=1.10
-Build-Type: Simple
-
-Extra-Source-Files:
- changelog.md
- README.md
-
-Library
- Default-Language: Haskell2010
-
- Exposed-Modules:
- Data.Stream.Monadic
-
- Hs-Source-Dirs:
- src
-
- Build-Depends: base >= 4.9 && < 4.21
- , ghc-prim >= 0.2 && < 0.12
-
-source-repository head
- type: git
- location: https://github.com/haskell/vector.git
- subdir: vector-stream
+Name: vector-stream
+Version: 0.1.0.1
+x-revision: 2
+-- don't forget to update the changelog file!
+License: BSD3
+License-File: LICENSE
+Author: Roman Leshchinskiy <rl(a)cse.unsw.edu.au>
+Maintainer: Haskell Libraries Team <libraries(a)haskell.org>
+ Alexey Kuleshevich <alexey(a)kuleshevi.ch>,
+ Aleksey Khudyakov <alexey.skladnoy(a)gmail.com>,
+ Andrew Lelechenko <andrew.lelechenko(a)gmail.com>
+Copyright: (c) Roman Leshchinskiy 2008-2012
+ Alexey Kuleshevich 2020-2022,
+ Aleksey Khudyakov 2020-2022,
+ Andrew Lelechenko 2020-2022
+Homepage: https://github.com/haskell/vector
+Bug-Reports: https://github.com/haskell/vector/issues
+Category: Data, Data Structures
+Synopsis: Efficient Streams
+Description:
+ Simple yet powerful monadic streams that are used
+ as a backbone for vector package fusion functionality.
+
+Tested-With:
+ GHC == 8.0.2,
+ GHC == 8.2.2,
+ GHC == 8.4.4,
+ GHC == 8.6.5,
+ GHC == 8.8.4,
+ GHC == 8.10.4,
+ GHC == 9.0.2,
+ GHC == 9.2.8,
+ GHC == 9.4.6,
+ GHC == 9.6.2
+ GHC == 9.8.1
+
+Cabal-Version: >=1.10
+Build-Type: Simple
+
+Extra-Source-Files:
+ changelog.md
+ README.md
+
+Library
+ Default-Language: Haskell2010
+
+ Exposed-Modules:
+ Data.Stream.Monadic
+
+ Hs-Source-Dirs:
+ src
+
+ Build-Depends: base >= 4.9 && < 4.22
+ , ghc-prim >= 0.2 && < 0.12
+
+source-repository head
+ type: git
+ location: https://github.com/haskell/vector.git
+ subdir: vector-stream
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-vector for openSUSE:Factory checked in at 2024-10-28 15:19:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-vector (Old)
and /work/SRC/openSUSE:Factory/.ghc-vector.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-vector"
Mon Oct 28 15:19:32 2024 rev:37 rq:1218576 version:0.13.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-vector/ghc-vector.changes 2024-03-27 20:44:03.780428374 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-vector.new.2020/ghc-vector.changes 2024-10-28 15:22:16.620340315 +0100
@@ -1,0 +2,6 @@
+Sat Oct 19 17:27:17 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update vector to version 0.13.1.0 revision 2.
+ Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-vector.spec ++++++
--- /var/tmp/diff_new_pack.j3cXXU/_old 2024-10-28 15:22:18.248408313 +0100
+++ /var/tmp/diff_new_pack.j3cXXU/_new 2024-10-28 15:22:18.252408480 +0100
@@ -26,7 +26,7 @@
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
-Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal…
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal…
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-base-devel
BuildRequires: ghc-base-prof
++++++ vector.cabal ++++++
++++ 666 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/ghc-vector/vector.cabal
++++ and /work/SRC/openSUSE:Factory/.ghc-vector.new.2020/vector.cabal
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-unix-compat for openSUSE:Factory checked in at 2024-10-28 15:19:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-unix-compat (Old)
and /work/SRC/openSUSE:Factory/.ghc-unix-compat.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-unix-compat"
Mon Oct 28 15:19:28 2024 rev:29 rq:1218575 version:0.7.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-unix-compat/ghc-unix-compat.changes 2024-07-22 17:18:01.801341008 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-unix-compat.new.2020/ghc-unix-compat.changes 2024-10-28 15:22:09.428040790 +0100
@@ -1,0 +2,10 @@
+Fri Oct 11 16:49:31 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update unix-compat to version 0.7.3.
+ ## Version 0.7.3 (2024-10-11)
+
+ - Fix `sysmacros.h` include for GNU/Hurd
+ ([PR #12](https://github.com/haskell-pkg-janitors/unix-compat/pull/12)).
+ - Tested with GHC 8.0 - 9.10.
+
+-------------------------------------------------------------------
Old:
----
unix-compat-0.7.2.tar.gz
New:
----
unix-compat-0.7.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-unix-compat.spec ++++++
--- /var/tmp/diff_new_pack.3neLoT/_old 2024-10-28 15:22:11.904143908 +0100
+++ /var/tmp/diff_new_pack.3neLoT/_new 2024-10-28 15:22:11.920144574 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.7.2
+Version: 0.7.3
Release: 0
Summary: Portable POSIX-compatibility layer
License: BSD-3-Clause
++++++ unix-compat-0.7.2.tar.gz -> unix-compat-0.7.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unix-compat-0.7.2/CHANGELOG.md new/unix-compat-0.7.3/CHANGELOG.md
--- old/unix-compat-0.7.2/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200
+++ new/unix-compat-0.7.3/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200
@@ -1,3 +1,9 @@
+## Version 0.7.3 (2024-10-11)
+
+- Fix `sysmacros.h` include for GNU/Hurd
+ ([PR #12](https://github.com/haskell-pkg-janitors/unix-compat/pull/12)).
+- Tested with GHC 8.0 - 9.10.
+
## Version 0.7.2 (2024-06-25)
- Remove flag `old-time` and drop support for `old-time`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unix-compat-0.7.2/cbits/HsUnixCompat.c new/unix-compat-0.7.3/cbits/HsUnixCompat.c
--- old/unix-compat-0.7.2/cbits/HsUnixCompat.c 2001-09-09 03:46:40.000000000 +0200
+++ new/unix-compat-0.7.3/cbits/HsUnixCompat.c 2001-09-09 03:46:40.000000000 +0200
@@ -2,7 +2,7 @@
#ifdef SOLARIS
#include <sys/mkdev.h>
-#elif defined(__linux__)
+#elif defined(__linux__) || defined(__GNU__)
#include <sys/sysmacros.h>
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unix-compat-0.7.2/unix-compat.cabal new/unix-compat-0.7.3/unix-compat.cabal
--- old/unix-compat-0.7.2/unix-compat.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/unix-compat-0.7.3/unix-compat.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: >= 1.10
name: unix-compat
-version: 0.7.2
+version: 0.7.3
synopsis: Portable POSIX-compatibility layer.
description: This package provides portable implementations of parts
of the unix package. This package re-exports the unix
@@ -18,7 +18,7 @@
tested-with:
GHC == 9.10.1
GHC == 9.8.2
- GHC == 9.6.5
+ GHC == 9.6.6
GHC == 9.4.8
GHC == 9.2.8
GHC == 9.0.2
@@ -57,16 +57,16 @@
cbits/mktemp.c
extra-libraries: msvcrt
- build-depends: Win32 >= 2.5.0.0
+ build-depends: Win32 >= 2.5.0.0 && < 3
build-depends: directory >= 1.3.1 && < 1.4
- build-depends: filepath >= 1.0 && < 1.6
- build-depends: time >= 1.0 && < 1.13
+ build-depends: filepath >= 1.4.1.0 && < 1.6
+ build-depends: time >= 1.6.0.1 && < 1.13
other-modules:
System.PosixCompat.Internal.Time
else
- build-depends: unix >= 2.6 && < 2.9
+ build-depends: unix >= 2.7.2.0 && < 2.9
include-dirs: include
includes: HsUnixCompat.h
install-includes: HsUnixCompat.h
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-typst for openSUSE:Factory checked in at 2024-10-28 15:19:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-typst (Old)
and /work/SRC/openSUSE:Factory/.ghc-typst.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-typst"
Mon Oct 28 15:19:24 2024 rev:9 rq:1218574 version:0.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-typst/ghc-typst.changes 2024-08-05 17:22:24.173896195 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-typst.new.2020/ghc-typst.changes 2024-10-28 15:22:06.295910352 +0100
@@ -1,0 +2,21 @@
+Tue Sep 10 01:23:44 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update typst to version 0.6.
+ ## 0.6
+
+ * Recognize figure.caption function (#52).
+
+ * Allow defined identifiers to override math defaults (#51).
+ Previously we evaluated all math in a special environment that
+ shadowed any user-defined functions with the same-named functions
+ from the math or sym modules. This change gives user-defined identifiers
+ priority over the math defaults, allowing things like `bb` to be
+ overridden.
+
+ * Typst.Types: EvalState now has two new fields, `evalMathIdentifiers` and
+ `evalStandardIdentifiers`. `evalIdentifiers` is now just for user-defined
+ identifiers. [API change]
+
+ * Don't implicitly load sys module for math.
+
+-------------------------------------------------------------------
Old:
----
typst-0.5.0.5.tar.gz
New:
----
typst-0.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-typst.spec ++++++
--- /var/tmp/diff_new_pack.SKWkPX/_old 2024-10-28 15:22:07.607964993 +0100
+++ /var/tmp/diff_new_pack.SKWkPX/_new 2024-10-28 15:22:07.607964993 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.5.0.5
+Version: 0.6
Release: 0
Summary: Parsing and evaluating typst syntax
License: BSD-3-Clause
++++++ typst-0.5.0.5.tar.gz -> typst-0.6.tar.gz ++++++
/work/SRC/openSUSE:Factory/ghc-typst/typst-0.5.0.5.tar.gz /work/SRC/openSUSE:Factory/.ghc-typst.new.2020/typst-0.6.tar.gz differ: char 65, line 2
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-pandoc-server for openSUSE:Factory checked in at 2024-10-28 15:19:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-pandoc-server (Old)
and /work/SRC/openSUSE:Factory/.ghc-pandoc-server.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-pandoc-server"
Mon Oct 28 15:19:08 2024 rev:9 rq:1218568 version:0.1.0.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-pandoc-server/ghc-pandoc-server.changes 2024-08-06 09:08:44.710731734 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-pandoc-server.new.2020/ghc-pandoc-server.changes 2024-10-28 15:21:38.134737573 +0100
@@ -1,0 +2,12 @@
+Sat Oct 5 21:06:13 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update pandoc-server to version 0.1.0.9.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
+Tue Sep 10 17:25:51 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update pandoc-server to version 0.1.0.8.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
Old:
----
pandoc-server-0.1.0.7.tar.gz
New:
----
pandoc-server-0.1.0.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-pandoc-server.spec ++++++
--- /var/tmp/diff_new_pack.gN7B2f/_old 2024-10-28 15:21:39.498794379 +0100
+++ /var/tmp/diff_new_pack.gN7B2f/_new 2024-10-28 15:21:39.498794379 +0100
@@ -19,7 +19,7 @@
%global pkg_name pandoc-server
%global pkgver %{pkg_name}-%{version}
Name: ghc-%{pkg_name}
-Version: 0.1.0.7
+Version: 0.1.0.9
Release: 0
Summary: Pandoc document conversion as an HTTP servant-server
License: GPL-2.0-or-later
++++++ pandoc-server-0.1.0.7.tar.gz -> pandoc-server-0.1.0.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-server-0.1.0.7/pandoc-server.cabal new/pandoc-server-0.1.0.9/pandoc-server.cabal
--- old/pandoc-server-0.1.0.7/pandoc-server.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/pandoc-server-0.1.0.9/pandoc-server.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: 2.4
name: pandoc-server
-version: 0.1.0.7
+version: 0.1.0.9
build-type: Simple
license: GPL-2.0-or-later
license-file: COPYING.md
@@ -49,7 +49,7 @@
library
import: common-options
- build-depends: pandoc >= 3.3 && < 3.4,
+ build-depends: pandoc >= 3.5 && < 3.6,
pandoc-types >= 1.22 && < 1.24,
containers >= 0.6.0.1 && < 0.8,
aeson >= 2.0 && < 2.3,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-server-0.1.0.7/src/Text/Pandoc/Server.hs new/pandoc-server-0.1.0.9/src/Text/Pandoc/Server.hs
--- old/pandoc-server-0.1.0.7/src/Text/Pandoc/Server.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/pandoc-server-0.1.0.9/src/Text/Pandoc/Server.hs 2001-09-09 03:46:40.000000000 +0200
@@ -21,6 +21,7 @@
import Text.Pandoc.Writers.Shared (lookupMetaString)
import Text.Pandoc.Citeproc (processCitations)
import Text.Pandoc.Highlighting (lookupHighlightingStyle)
+import Text.Pandoc.Chunks (PathTemplate(..))
import qualified Text.Pandoc.UTF8 as UTF8
import Data.Text (Text)
import qualified Data.Text as T
@@ -302,8 +303,8 @@
, readerStripComments = optStripComments opts
}
- let writeropts =
- def{ writerExtensions = writerExts
+ let writeropts = WriterOptions
+ { writerExtensions = writerExts
, writerTabStop = optTabStop opts
, writerWrapText = optWrap opts
, writerColumns = optColumns opts
@@ -311,6 +312,8 @@
, writerSyntaxMap = defaultSyntaxMap
, writerVariables = optVariables opts
, writerTableOfContents = optTableOfContents opts
+ , writerListOfFigures = optListOfFigures opts
+ , writerListOfTables = optListOfTables opts
, writerIncremental = optIncremental opts
, writerHTMLMathMethod = optHTMLMathMethod opts
, writerNumberSections = optNumberSections opts
@@ -327,14 +330,22 @@
, writerListings = optListings opts
, writerHighlightStyle = hlStyle
, writerSetextHeaders = optSetextHeaders opts
+ , writerListTables = optListTables opts
, writerEpubSubdirectory = T.pack $ optEpubSubdirectory opts
, writerEpubMetadata = T.pack <$> optEpubMetadata opts
, writerEpubFonts = optEpubFonts opts
+ , writerEpubTitlePage = optEpubTitlePage opts
, writerSplitLevel = optSplitLevel opts
+ , writerChunkTemplate = maybe (PathTemplate "%s-%i.html")
+ PathTemplate
+ (optChunkTemplate opts)
, writerTOCDepth = optTOCDepth opts
, writerReferenceDoc = optReferenceDoc opts
, writerReferenceLocation = optReferenceLocation opts
+ , writerFigureCaptionPosition = optFigureCaptionPosition opts
+ , writerTableCaptionPosition = optTableCaptionPosition opts
, writerPreferAscii = optAscii opts
+ , writerLinkImages = optLinkImages opts
}
let reader = case readerSpec of
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-pandoc-lua-engine for openSUSE:Factory checked in at 2024-10-28 15:19:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-pandoc-lua-engine (Old)
and /work/SRC/openSUSE:Factory/.ghc-pandoc-lua-engine.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-pandoc-lua-engine"
Mon Oct 28 15:19:02 2024 rev:10 rq:1218566 version:0.3.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-pandoc-lua-engine/ghc-pandoc-lua-engine.changes 2024-08-06 09:08:43.678689234 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-pandoc-lua-engine.new.2020/ghc-pandoc-lua-engine.changes 2024-10-28 15:21:28.978356253 +0100
@@ -1,0 +2,12 @@
+Sat Oct 5 21:05:45 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update pandoc-lua-engine to version 0.3.3.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
+Tue Sep 10 17:25:21 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update pandoc-lua-engine to version 0.3.2.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
Old:
----
pandoc-lua-engine-0.3.1.tar.gz
New:
----
pandoc-lua-engine-0.3.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-pandoc-lua-engine.spec ++++++
--- /var/tmp/diff_new_pack.HZruk4/_old 2024-10-28 15:21:30.530420890 +0100
+++ /var/tmp/diff_new_pack.HZruk4/_new 2024-10-28 15:21:30.534421056 +0100
@@ -20,15 +20,13 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.3.1
+Version: 0.3.3
Release: 0
Summary: Lua engine to power custom pandoc conversions
License: GPL-2.0-or-later
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
-BuildRequires: ghc-SHA-devel
-BuildRequires: ghc-SHA-prof
BuildRequires: ghc-aeson-devel
BuildRequires: ghc-aeson-prof
BuildRequires: ghc-base-devel
@@ -39,6 +37,8 @@
BuildRequires: ghc-citeproc-prof
BuildRequires: ghc-containers-devel
BuildRequires: ghc-containers-prof
+BuildRequires: ghc-crypton-devel
+BuildRequires: ghc-crypton-prof
BuildRequires: ghc-data-default-devel
BuildRequires: ghc-data-default-prof
BuildRequires: ghc-doclayout-devel
++++++ pandoc-lua-engine-0.3.1.tar.gz -> pandoc-lua-engine-0.3.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-lua-engine-0.3.1/pandoc-lua-engine.cabal new/pandoc-lua-engine-0.3.3/pandoc-lua-engine.cabal
--- old/pandoc-lua-engine-0.3.1/pandoc-lua-engine.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/pandoc-lua-engine-0.3.3/pandoc-lua-engine.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: 2.4
name: pandoc-lua-engine
-version: 0.3.1
+version: 0.3.3
build-type: Simple
license: GPL-2.0-or-later
license-file: COPYING.md
@@ -105,17 +105,17 @@
, Text.Pandoc.Lua.Writer.Classic
, Text.Pandoc.Lua.Writer.Scaffolding
- build-depends: SHA >= 1.6 && < 1.7
- , aeson
+ build-depends: aeson
, bytestring >= 0.9 && < 0.13
+ , crypton >= 0.30 && < 1.1
, citeproc >= 0.8 && < 0.9
, containers >= 0.6.0.1 && < 0.8
, data-default >= 0.4 && < 0.8
- , doclayout >= 0.4 && < 0.5
+ , doclayout >= 0.5 && < 0.6
, doctemplates >= 0.11 && < 0.12
, exceptions >= 0.8 && < 0.11
, hslua >= 2.3 && < 2.4
- , hslua-module-doclayout>= 1.1 && < 1.2
+ , hslua-module-doclayout>= 1.2 && < 1.3
, hslua-module-path >= 1.1 && < 1.2
, hslua-module-system >= 1.1 && < 1.2
, hslua-module-text >= 1.1 && < 1.2
@@ -124,8 +124,8 @@
, hslua-repl >= 0.1.1 && < 0.2
, lpeg >= 1.1 && < 1.2
, mtl >= 2.2 && < 2.4
- , pandoc >= 3.3 && < 3.4
- , pandoc-lua-marshal >= 0.2.7 && < 0.3
+ , pandoc >= 3.5 && < 3.6
+ , pandoc-lua-marshal >= 0.2.9 && < 0.3
, pandoc-types >= 1.22 && < 1.24
, parsec >= 3.1 && < 3.2
, text >= 1.1.1 && < 2.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-lua-engine-0.3.1/src/Text/Pandoc/Lua/Filter.hs new/pandoc-lua-engine-0.3.3/src/Text/Pandoc/Lua/Filter.hs
--- old/pandoc-lua-engine-0.3.1/src/Text/Pandoc/Lua/Filter.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/pandoc-lua-engine-0.3.3/src/Text/Pandoc/Lua/Filter.hs 2001-09-09 03:46:40.000000000 +0200
@@ -43,7 +43,10 @@
-- filter if nothing was returned.
luaFilters <- forcePeek $
if newtop - oldtop >= 1
- then peekList peekFilter top -- get from explicit filter table
+ then liftLua (rawlen top) >>= \case
+ -- explicitly returned filter, either a single one or a list
+ 0 -> (:[]) <$!> peekFilter top -- single filter
+ _ -> peekList peekFilter top -- list of explicit filters
else (:[]) <$!> peekFilter envIdx -- get the implicit filter in _ENV
settop oldtop
runAll luaFilters doc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-lua-engine-0.3.1/src/Text/Pandoc/Lua/Marshal/WriterOptions.hs new/pandoc-lua-engine-0.3.3/src/Text/Pandoc/Lua/Marshal/WriterOptions.hs
--- old/pandoc-lua-engine-0.3.1/src/Text/Pandoc/Lua/Marshal/WriterOptions.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/pandoc-lua-engine-0.3.3/src/Text/Pandoc/Lua/Marshal/WriterOptions.hs 2001-09-09 03:46:40.000000000 +0200
@@ -95,6 +95,11 @@
(pushPandocList pushString, writerEpubFonts)
(peekList peekString, \opts x -> opts{ writerEpubFonts = x })
+ , property "epub_title_page"
+ "Determines whether a title page is included in EPUB"
+ (pushBool, writerEpubTitlePage)
+ (peekBool, \opts x -> opts{ writerEpubTitlePage = x })
+
, property "epub_metadata"
"Metadata to include in EPUB"
(maybe pushnil pushText, writerEpubMetadata)
@@ -120,6 +125,11 @@
(pushViaJSON, writerHTMLMathMethod)
(peekViaJSON, \opts x -> opts{ writerHTMLMathMethod = x })
+ , property "link_images"
+ "Include links to images instead of embedding in ODT"
+ (pushBool, writerLinkImages)
+ (peekBool, \opts x -> opts{ writerLinkImages = x })
+
, property "html_q_tags"
"Use @<q>@ tags for quotes in HTML"
(pushBool, writerHtmlQTags)
@@ -135,6 +145,16 @@
(pushBool, writerIncremental)
(peekBool, \opts x -> opts{ writerIncremental = x })
+ , property "list_of_figures"
+ "Include list of figures"
+ (pushBool, writerListOfFigures)
+ (peekBool, \opts x -> opts{ writerListOfFigures = x })
+
+ , property "list_of_tables"
+ "Include list of tables"
+ (pushBool, writerListOfTables)
+ (peekBool, \opts x -> opts{ writerListOfTables = x })
+
, property "listings"
"Use listings package for code"
(pushBool, writerListings)
@@ -170,6 +190,16 @@
(pushViaJSON, writerReferenceLocation)
(peekViaJSON, \opts x -> opts{ writerReferenceLocation = x })
+ , property "figure_caption_position"
+ "Location of caption relative to the figure"
+ (pushViaJSON, writerFigureCaptionPosition)
+ (peekViaJSON, \opts x -> opts{ writerFigureCaptionPosition = x })
+
+ , property "table_caption_position"
+ "Location of caption relative to the table"
+ (pushViaJSON, writerTableCaptionPosition)
+ (peekViaJSON, \opts x -> opts{ writerTableCaptionPosition = x })
+
, property "section_divs"
"Put sections in div tags in HTML"
(pushBool, writerSectionDivs)
@@ -180,6 +210,11 @@
(pushBool, writerSetextHeaders)
(peekBool, \opts x -> opts{ writerSetextHeaders = x })
+ , property "list_tables"
+ "Render tables using list tables in RST output"
+ (pushBool, writerListTables)
+ (peekBool, \opts x -> opts{ writerListTables = x })
+
, property "slide_level"
"Force header level of slides"
(maybe pushnil pushIntegral, writerSlideLevel)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-lua-engine-0.3.1/src/Text/Pandoc/Lua/Module/Utils.hs new/pandoc-lua-engine-0.3.3/src/Text/Pandoc/Lua/Module/Utils.hs
--- old/pandoc-lua-engine-0.3.1/src/Text/Pandoc/Lua/Module/Utils.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/pandoc-lua-engine-0.3.3/src/Text/Pandoc/Lua/Module/Utils.hs 2001-09-09 03:46:40.000000000 +0200
@@ -19,6 +19,7 @@
import Control.Applicative ((<|>))
import Control.Monad ((<$!>))
+import Crypto.Hash (hashWith, SHA1(SHA1))
import Data.Data (showConstr, toConstr)
import Data.Default (def)
import Data.Maybe (fromMaybe)
@@ -34,8 +35,6 @@
import Text.Pandoc.Lua.Marshal.Reference
import Text.Pandoc.Lua.PandocLua (PandocLua (unPandocLua))
-import qualified Data.Digest.Pure.SHA as SHA
-import qualified Data.ByteString.Lazy as BSL
import qualified Data.Map as Map
import qualified Data.Text as T
import qualified Text.Pandoc.Builder as B
@@ -54,16 +53,16 @@
, moduleFields = []
, moduleOperations = []
, moduleTypeInitializers = []
- , moduleFunctions = -- FIXME: order alphabetically
+ , moduleFunctions =
[ blocks_to_inlines `since` v[2,2,3]
, citeproc `since` v[2,19,1]
, equals `since` v[2,5]
, from_simple_table `since` v[2,11]
, make_sections `since` v[2,8]
+ , normalize_date `since` v[2,0,6]
, references `since` v[2,17]
- , run_lua_filter `since` v[3,2,1]
, run_json_filter `since` v[2,1,1]
- , normalize_date `since` v[2,0,6]
+ , run_lua_filter `since` v[3,2,1]
, sha1 `since` v[2,0,6]
, stringify `since` v[2,0,6]
, to_roman_numeral `since` v[2,0,6]
@@ -301,8 +300,8 @@
-- | Documented Lua function to compute the hash of a string.
sha1 :: DocumentedFunction e
sha1 = defun "sha1"
- ### liftPure (SHA.showDigest . SHA.sha1)
- <#> parameter (fmap BSL.fromStrict . peekByteString) "string" "input" ""
+ ### liftPure (show . hashWith SHA1)
+ <#> parameter peekByteString "string" "input" ""
=#> functionResult pushString "string" "hexadecimal hash value"
#? "Computes the SHA1 hash of the given string input."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-lua-engine-0.3.1/src/Text/Pandoc/Lua/Module.hs new/pandoc-lua-engine-0.3.3/src/Text/Pandoc/Lua/Module.hs
--- old/pandoc-lua-engine-0.3.1/src/Text/Pandoc/Lua/Module.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/pandoc-lua-engine-0.3.3/src/Text/Pandoc/Lua/Module.hs 2001-09-09 03:46:40.000000000 +0200
@@ -91,8 +91,10 @@
, Pandoc.Text.documentedModule
, Pandoc.Types.documentedModule
, Pandoc.Utils.documentedModule
- , Module.Layout.documentedModule { moduleName = "pandoc.layout" }
- `allSince` [2,18]
+ , ((Module.Layout.documentedModule { moduleName = "pandoc.layout" }
+ `allSince` [2,18])
+ `functionsSince` ["bold", "italic", "underlined", "strikeout", "fg", "bg"])
+ [3, 4, 1]
, Module.Path.documentedModule { moduleName = "pandoc.path" }
`allSince` [2,12]
, Module.Zip.documentedModule { moduleName = "pandoc.zip" }
@@ -102,6 +104,12 @@
allSince mdl version = mdl
{ moduleFunctions = map (`since` makeVersion version) $ moduleFunctions mdl
}
+ functionsSince mdl fns version = mdl
+ { moduleFunctions = map (\fn ->
+ if (functionName fn) `elem` fns
+ then fn `since` makeVersion version
+ else fn) $ moduleFunctions mdl
+ }
-- | Load all global modules and set them to their global variables.
setGlobalModules :: PandocLua ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-lua-engine-0.3.1/test/lua/single-to-double-quoted.lua new/pandoc-lua-engine-0.3.3/test/lua/single-to-double-quoted.lua
--- old/pandoc-lua-engine-0.3.1/test/lua/single-to-double-quoted.lua 2001-09-09 03:46:40.000000000 +0200
+++ new/pandoc-lua-engine-0.3.3/test/lua/single-to-double-quoted.lua 2001-09-09 03:46:40.000000000 +0200
@@ -1,10 +1,8 @@
return {
- {
Quoted = function (elem)
if elem.quotetype == "SingleQuote" then
elem.quotetype = "DoubleQuote"
end
return elem
end,
- }
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-pandoc for openSUSE:Factory checked in at 2024-10-28 15:19:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-pandoc (Old)
and /work/SRC/openSUSE:Factory/.ghc-pandoc.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-pandoc"
Mon Oct 28 15:19:00 2024 rev:15 rq:1218565 version:3.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-pandoc/ghc-pandoc.changes 2024-08-06 09:08:42.562643274 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-pandoc.new.2020/ghc-pandoc.changes 2024-10-28 15:21:23.698136358 +0100
@@ -1,0 +2,220 @@
+Sat Oct 5 21:05:20 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update pandoc to version 3.5.
+ Upstream has edited the change log file since the last release in
+ a non-trivial way, i.e. they did more than just add a new entry
+ at the top. You can review the file at:
+ http://hackage.haskell.org/package/pandoc-3.5/src/changelog.md
+
+-------------------------------------------------------------------
+Tue Sep 10 17:24:58 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update pandoc to version 3.4.
+ ## pandoc 3.4 (2024-09-09)
+
+ * New output format: `ansi` (for formatted console output) (Evan Silberman).
+ Most Pandoc elements are supported and printed in a reasonable way, if
+ not always ideally. This version does no detection of terminal
+ capabilities, nor does it fall back to different output styles for
+ less-capable terminals.
+
+ * Add command line options `--table-caption-position` and
+ `--figure-caption-position`. These allow the user to specify whether
+ to put captions above or below tables and figures, respectively.
+ The following output formats are supported: HTML (and related such
+ as EPUB), LaTeX (and Beamer), Docx, ODT/OpenDocument, Typst.
+
+ * Change default `--pdf-engine` via HTML to WeasyPrint (#10142).
+ `wkhtmltopdf` is deprecated. `weasyprint` is the easiest-to-install,
+ maintained alternative. For better results, one might prefer
+ `pagedjs-cli`.
+
+ * Org reader:
+
+ + Fix parsing of src blocks with an `-i` flag (#10071, Albert Krewinkel).
+ Tabs are now preserved in the contents of *src* blocks if the the block
+ has the `-i` flag.
+
+ * RTF reader:
+
+ + Handle images inside `shp` contexts (#10145).
+
+ * RST reader:
+
+ + Improve simple table support (#10093). Multiline rows occur
+ only when the *first* cell is empty; we were previously treating
+ lines with *any* empty cell as row continuations. In addition, we
+ no longer wrap multiline cells in Para if they can be represented
+ as Plain. This is consistent with docutils behavior.
+
+ * LaTeX reader:
+
+ + Math environments don't have bracketed options (#10160).
+ + Parse nested tabular environments (#4746).
+
+ * Typst reader:
+
+ + Change how "block" elements are handled. Previously they were
+ always parsed as divs. But actually they can occur in some "inline"
+ contexts. Now we first try to parse them as inlines, and only as
+ blocks if that fails. A surrounding Div or Span element is added
+ only if there is an identifier.
+
+ * HTML reader:
+
+ + Only parse main element's contents (if present) (#10140).
+ If main has an id or class, we include a div with that id or class;
+ otherwise just the contents.
+ + Read TeX annotation in MathML content if present (#9971).
+ + Better handle KaTeX-generated math (#9971). KaTeX emits the mathml
+ followed by a span with an HTML fallback. Previously pandoc was
+ converting both. We now ignore the HTML fallback span, marked
+ with class `katex-html`.
+
+ * New module: Text.Pandoc.Writers.ANSI [API change] (Evan Silberman).
+
+ * Docx writer:
+
+ + Add "SuppressAuthor" and "AuthorOnly" to citationMode
+ when `+citations` is used (thomjur).
+ + Support `custom-style` attribute for docx table (Sebbones).
+ + Support `--number-offsets`.
+ + Make table/figure rendering sensitive to caption position settings.
+
+ * OpenDocument writer:
+
+ + Make table/figure rendering sensitive to caption position settings.
+
+ * Typst writer/template:
+
+ + Implement figure caption positions by triggering a show rule in
+ the default template, which determines caption positions for
+ figures and tables globally.
+ + Don't include trailing semicolon after `@` style citations with suffixes
+ (#10148).
+ + Template: move header-includes before show doc (#9996, Gordon Woodhull).
+
+ * LaTeX writer:
+
+ + Make table/figure rendering sensitive to caption position settings (#5116).
+ + Preserve locator labels with `--natbib` (#10057).
+
+ * HTML writer/template:
+
+ + Make `<figcaption>` placement sensitive to caption position
+ settings. For tables, `<caption>` must be the first element, and
+ positioning is determined by CSS, for here we set a variable
+ which the default template is sensitive to.
+ + Use `makeSectionsWithOffsets` for `writerNumberOffsets`,
+ instead of the old, inefficient code.
+ + Don't add doc-biblioref role to every link in a citation;
+ only to links to the bibliography (#10156).
+ + Add `data-` when rendering `label` attribute (#10048).
+
+ * Markdown writer:
+
+ + Avoid emitting markdown caption if table has fallen back to raw HTML,
+ which will then contain a `<caption>` tag (#10094).
+ + Make math sensitive to `tex_math_gfm` extension (#9121).
+ This means that in GFM output, the "new style" math will be used
+ by default, e.g.
+
+ $`x=y`$
+
+ ```math
+ x = y
+ ```
+
+ To defeat this and get the older behavior, namely
+
+ $x=y$
+
+ $$x=y$$
+
+ one could use `-t gfm-tex_math_gfm`.
+
+ * AsciiDoc writer:
+
+ + Add `link:` prefix when needed (#10105). AsciiDoc requires it
+ except for `http`, `https`, `irc`, `mailto`, `ftp` schemes (#10105).
+ + Preserve original base level (#10062). We used to normalize so
+ that the base level is always 1, but asciidoc no longer seems
+ to care about that, and the behavior creates difficulties when
+ we are converting fragments.
+ + Don't emit empty figure caption (#10047).
+
+ * ODT writer:
+
+ + Add TableCaption to styles.xml (#10058, Ian Max Andolina).
+
+ * LaTeX template:
+
+ + Fix wrong beamer color in (sub)section page (Jonathan).
+
+ * Text.Pandoc.Options:
+
+ + Add `CaptionPosition` and new `WriterOptions` fields
+ `writerFigureCaptionPosition` and `writerTableCaptionPosition`
+ [API change].
+
+ * Text.Pandoc.Opt:
+
+ + Change default for optNumberOffset to `[]`. This behaves the same as
+ `[0,0,0,0,0]`.
+ + Add `Opt` fields `optFigureCaptionPosition` and
+ `optTableCaptionPosition` [API change].
+
+ * Text.Pandoc.Format: change `formatFromFilePaths` so that it is
+ smarter about URLs. URLs are parsed, and we take the format from
+ the path component, if present (#10141). This means that
+ `https://emacs.org/` will be treated as HTML, while
+ `https://emacs.org/sample.org` will be treated as Org.
+
+ * Text.Pandoc.URI:
+
+ + Add unofficial `gemini:` to list of URI schemes (Pau RE).
+
+ * Text.Pandoc.Shared:
+
+ + Add `makeSectionsWithOffsets` [API change].
+ + Remove `stripEmptyParagraphs [API change] (Albert Krewinkel).
+ This function is no longer used.
+
+ * Text.Pandoc.Highlighting: Expose `formatANSI` [API change]
+ (Evan Silberman).
+
+ * Text.Pandoc.Writers.Shared: export `to{Sub,Super}scriptInline`
+ [API change] (Evan Silberman).
+
+ * Remove use of partial functions (e.g. `head`) in code.
+
+ * Use latest skylighting-core, skylighting, doclayout, texmath, typst.
+
+ * pandoc-lua-engine: Add accessors for several writer options, including
+ some that were added in previous releases.
+
+ * pandoc-server: Initialize some missing fields in WriterOptions:
+ `writerEpubTitlePage`, `writerChunkTemplate`, `writerListTables`,
+ `writerFigureCaptionPosition`, `writerTableCaptionPosition`.
+
+ * CONTRIBUTING.md: Summarize steps for adding a new cli option.
+
+ * MANUAL.txt:
+
+ + Clarify that the `--number-offset` option should only
+ directly affect numbering of the first section heading in
+ a document; subsequent headings will increment normally.
+ + Fix asciidoc link (#10039).
+ + Fix CSL Docs broken link (#10100, Tristano Ajmone).
+ + Document the use of `luatexja` when CJKmainfont is used with lualatex
+ (#3873, Kolen Cheung).
+ + Add a `citations` (typst) section to the manual (#9127).
+ + Clarify that `citations` affects both input and output for `org`.
+ + Add note on `--citeproc` that you may need to disable `citations`
+ extension on the output format (e.g., `-t markdown-citations`) to
+ see the rendered citation (#9127, #10012).
+
+ * INSTALL.md — reorganise info on static binaries and add conda-forge
+ install options (#10098, #10069, Ian Max Andolina).
+
+-------------------------------------------------------------------
Old:
----
pandoc-3.3.tar.gz
New:
----
pandoc-3.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-pandoc.spec ++++++
--- /var/tmp/diff_new_pack.hl828x/_old 2024-10-28 15:21:26.266243307 +0100
+++ /var/tmp/diff_new_pack.hl828x/_new 2024-10-28 15:21:26.286244140 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 3.3
+Version: 3.5
Release: 0
Summary: Conversion between markup formats
License: GPL-2.0-or-later
@@ -31,8 +31,6 @@
BuildRequires: ghc-Glob-prof
BuildRequires: ghc-JuicyPixels-devel
BuildRequires: ghc-JuicyPixels-prof
-BuildRequires: ghc-SHA-devel
-BuildRequires: ghc-SHA-prof
BuildRequires: ghc-aeson-devel
BuildRequires: ghc-aeson-pretty-devel
BuildRequires: ghc-aeson-pretty-prof
@@ -67,6 +65,8 @@
BuildRequires: ghc-containers-prof
BuildRequires: ghc-crypton-connection-devel
BuildRequires: ghc-crypton-connection-prof
+BuildRequires: ghc-crypton-devel
+BuildRequires: ghc-crypton-prof
BuildRequires: ghc-crypton-x509-system-devel
BuildRequires: ghc-crypton-x509-system-prof
BuildRequires: ghc-data-default-devel
@@ -370,8 +370,12 @@
%{_datadir}/%{pkg_name}-%{version}/data/pptx/ppt/theme/theme2.xml
%{_datadir}/%{pkg_name}-%{version}/data/pptx/ppt/viewProps.xml
%{_datadir}/%{pkg_name}-%{version}/data/templates/affiliations.jats
+%{_datadir}/%{pkg_name}-%{version}/data/templates/after-header-includes.latex
%{_datadir}/%{pkg_name}-%{version}/data/templates/article.jats_publishing
+%{_datadir}/%{pkg_name}-%{version}/data/templates/common.latex
+%{_datadir}/%{pkg_name}-%{version}/data/templates/default.ansi
%{_datadir}/%{pkg_name}-%{version}/data/templates/default.asciidoc
+%{_datadir}/%{pkg_name}-%{version}/data/templates/default.beamer
%{_datadir}/%{pkg_name}-%{version}/data/templates/default.biblatex
%{_datadir}/%{pkg_name}-%{version}/data/templates/default.bibtex
%{_datadir}/%{pkg_name}-%{version}/data/templates/default.chunkedhtml
@@ -417,6 +421,9 @@
%{_datadir}/%{pkg_name}-%{version}/data/templates/default.xwiki
%{_datadir}/%{pkg_name}-%{version}/data/templates/default.zimwiki
%{_datadir}/%{pkg_name}-%{version}/data/templates/definitions.typst
+%{_datadir}/%{pkg_name}-%{version}/data/templates/fonts.latex
+%{_datadir}/%{pkg_name}-%{version}/data/templates/hypersetup.latex
+%{_datadir}/%{pkg_name}-%{version}/data/templates/passoptions.latex
%{_datadir}/%{pkg_name}-%{version}/data/templates/styles.citations.html
%{_datadir}/%{pkg_name}-%{version}/data/templates/styles.html
%{_datadir}/%{pkg_name}-%{version}/data/templates/template.typst
++++++ pandoc-3.3.tar.gz -> pandoc-3.5.tar.gz ++++++
/work/SRC/openSUSE:Factory/ghc-pandoc/pandoc-3.3.tar.gz /work/SRC/openSUSE:Factory/.ghc-pandoc.new.2020/pandoc-3.5.tar.gz differ: char 16, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-mono-traversable for openSUSE:Factory checked in at 2024-10-28 15:18:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-mono-traversable (Old)
and /work/SRC/openSUSE:Factory/.ghc-mono-traversable.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-mono-traversable"
Mon Oct 28 15:18:56 2024 rev:29 rq:1218564 version:1.0.20.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-mono-traversable/ghc-mono-traversable.changes 2024-03-20 21:16:16.378264540 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-mono-traversable.new.2020/ghc-mono-traversable.changes 2024-10-28 15:21:19.833975434 +0100
@@ -1,0 +2,22 @@
+Fri Sep 13 07:56:38 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update mono-traversable to version 1.0.20.0.
+ ## 1.0.20.0
+
+ * Added instances for [`Reverse`](https://hackage.haskell.org/package/transformers-0.6.1.1/docs/Data-Functor-Reverse.html#t:Reverse) data structure.
+
+ ## 1.0.19.1
+
+ * Removed 'highly experimental' warning haddock comment from Data.Containers.
+
+ ## 1.0.19.0
+
+ * Added `filterWithKey` to `IsMap`.
+ [#232](https://github.com/snoyberg/mono-traversable/pull/232)
+
+ ## 1.0.18.0
+
+ * Added MonoPointed instance for text Builder
+ [#225](https://github.com/snoyberg/mono-traversable/pull/225)
+
+-------------------------------------------------------------------
Old:
----
mono-traversable-1.0.17.0.tar.gz
New:
----
mono-traversable-1.0.20.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-mono-traversable.spec ++++++
--- /var/tmp/diff_new_pack.dvyXNb/_old 2024-10-28 15:21:21.202032407 +0100
+++ /var/tmp/diff_new_pack.dvyXNb/_new 2024-10-28 15:21:21.202032407 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.0.17.0
+Version: 1.0.20.0
Release: 0
Summary: Type classes for mapping, folding, and traversing monomorphic containers
License: MIT
++++++ mono-traversable-1.0.17.0.tar.gz -> mono-traversable-1.0.20.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-1.0.17.0/ChangeLog.md new/mono-traversable-1.0.20.0/ChangeLog.md
--- old/mono-traversable-1.0.17.0/ChangeLog.md 2024-02-28 11:35:03.000000000 +0100
+++ new/mono-traversable-1.0.20.0/ChangeLog.md 2024-09-13 09:56:31.000000000 +0200
@@ -1,5 +1,23 @@
# ChangeLog for mono-traversable
+## 1.0.20.0
+
+* Added instances for [`Reverse`](https://hackage.haskell.org/package/transformers-0.6.1.1/docs/Data-Functor-Reverse.html#t:Reverse) data structure.
+
+## 1.0.19.1
+
+* Removed 'highly experimental' warning haddock comment from Data.Containers.
+
+## 1.0.19.0
+
+* Added `filterWithKey` to `IsMap`.
+ [#232](https://github.com/snoyberg/mono-traversable/pull/232)
+
+## 1.0.18.0
+
+* Added MonoPointed instance for text Builder
+ [#225](https://github.com/snoyberg/mono-traversable/pull/225)
+
## 1.0.17.0
* Added `inits`, `tails`, `initTails` to class `IsSequence` with tests and benchmarks for `initTails`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-1.0.17.0/mono-traversable.cabal new/mono-traversable-1.0.20.0/mono-traversable.cabal
--- old/mono-traversable-1.0.17.0/mono-traversable.cabal 2024-02-28 11:35:03.000000000 +0100
+++ new/mono-traversable-1.0.20.0/mono-traversable.cabal 2024-09-13 09:56:37.000000000 +0200
@@ -1,11 +1,11 @@
cabal-version: 1.12
--- This file has been generated from package.yaml by hpack version 0.36.0.
+-- This file has been generated from package.yaml by hpack version 0.37.0.
--
-- see: https://github.com/sol/hpack
name: mono-traversable
-version: 1.0.17.0
+version: 1.0.20.0
synopsis: Type classes for mapping, folding, and traversing monomorphic containers
description: Please see the README at <https://www.stackage.org/package/mono-traversable>
category: Data
@@ -57,6 +57,8 @@
hs-source-dirs:
test
ghc-options: -O0
+ build-tool-depends:
+ hspec-discover:hspec-discover
build-depends:
HUnit
, QuickCheck
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-1.0.17.0/src/Data/Containers.hs new/mono-traversable-1.0.20.0/src/Data/Containers.hs
--- old/mono-traversable-1.0.17.0/src/Data/Containers.hs 2023-08-01 15:01:06.000000000 +0200
+++ new/mono-traversable-1.0.20.0/src/Data/Containers.hs 2024-09-13 09:56:31.000000000 +0200
@@ -4,7 +4,7 @@
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE CPP #-}
--- | Warning: This module should be considered highly experimental.
+{-# LANGUAGE TypeOperators #-}
module Data.Containers where
import Prelude hiding (lookup)
@@ -547,8 +547,15 @@
-- | Filter values in a map.
--
-- @since 1.0.9.0
- filterMap :: IsMap map => (MapValue map -> Bool) -> map -> map
- filterMap p = mapFromList . filter (p . snd) . mapToList
+ filterMap :: (MapValue map -> Bool) -> map -> map
+ filterMap = filterWithKey . const
+
+ -- | Equivalent to 'filterMap', but the function accepts the key,
+ -- as well as the value.
+ --
+ -- @since 1.0.19.0
+ filterWithKey :: (ContainerKey map -> MapValue map -> Bool) -> map -> map
+ filterWithKey p = mapFromList . filter (uncurry p) . mapToList
-- | This instance uses the functions from "Data.Map.Strict".
instance Ord key => IsMap (Map.Map key value) where
@@ -598,6 +605,8 @@
{-# INLINE omapKeysWith #-}
filterMap = Map.filter
{-# INLINE filterMap #-}
+ filterWithKey = Map.filterWithKey
+ {-# INLINE filterWithKey #-}
-- | This instance uses the functions from "Data.HashMap.Strict".
instance (Eq key, Hashable key) => IsMap (HashMap.HashMap key value) where
@@ -635,6 +644,8 @@
--mapKeysWith = HashMap.mapKeysWith
filterMap = HashMap.filter
{-# INLINE filterMap #-}
+ filterWithKey = HashMap.filterWithKey
+ {-# INLINE filterWithKey #-}
-- | This instance uses the functions from "Data.IntMap.Strict".
instance IsMap (IntMap.IntMap value) where
@@ -683,6 +694,8 @@
{-# INLINE omapKeysWith #-}
filterMap = IntMap.filter
{-# INLINE filterMap #-}
+ filterWithKey = IntMap.filterWithKey
+ {-# INLINE filterWithKey #-}
instance Eq key => IsMap [(key, value)] where
type MapValue [(key, value)] = value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-1.0.17.0/src/Data/MonoTraversable/Unprefixed.hs new/mono-traversable-1.0.20.0/src/Data/MonoTraversable/Unprefixed.hs
--- old/mono-traversable-1.0.17.0/src/Data/MonoTraversable/Unprefixed.hs 2023-08-01 15:01:06.000000000 +0200
+++ new/mono-traversable-1.0.20.0/src/Data/MonoTraversable/Unprefixed.hs 2024-09-13 09:56:31.000000000 +0200
@@ -1,6 +1,7 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
-- | The functions in "Data.MonoTraversable" are all prefixed with the letter
-- @o@ to avoid conflicts with their polymorphic counterparts. This module
-- exports the same identifiers without the prefix, for all cases where the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-1.0.17.0/src/Data/MonoTraversable.hs new/mono-traversable-1.0.20.0/src/Data/MonoTraversable.hs
--- old/mono-traversable-1.0.17.0/src/Data/MonoTraversable.hs 2024-02-28 11:35:03.000000000 +0100
+++ new/mono-traversable-1.0.20.0/src/Data/MonoTraversable.hs 2024-09-13 09:56:31.000000000 +0200
@@ -37,10 +37,11 @@
import qualified Data.Foldable as F
import Data.Functor
import Data.Maybe (fromMaybe)
-import Data.Monoid (Monoid (..), Any (..), All (..))
+import Data.Monoid (Dual(..), Monoid (..), Any (..), All (..))
import Data.Proxy
import qualified Data.Text as T
import qualified Data.Text.Lazy as TL
+import qualified Data.Text.Lazy.Builder as TB
import Data.Traversable
import Data.Word (Word8)
import Data.Int (Int, Int64)
@@ -55,6 +56,7 @@
import Foreign.Ptr (plusPtr)
import Foreign.ForeignPtr (touchForeignPtr)
import Foreign.Storable (peek)
+import Control.Applicative.Backwards (Backwards (..))
import Control.Arrow (Arrow)
import Data.Tree (Tree (..))
import Data.Sequence (Seq, ViewL (..), ViewR (..))
@@ -64,6 +66,7 @@
import qualified Data.List as List
import Data.List.NonEmpty (NonEmpty)
import Data.Functor.Identity (Identity)
+import Data.Functor.Reverse (Reverse (..))
import Data.Map (Map)
import qualified Data.Map.Strict as Map
import Data.HashMap.Strict (HashMap)
@@ -111,6 +114,8 @@
type instance Element B.Builder = Word8
type instance Element T.Text = Char
type instance Element TL.Text = Char
+-- | @since 1.0.18.0
+type instance Element TB.Builder = Char
type instance Element [a] = a
type instance Element (IO a) = a
type instance Element (ZipList a) = a
@@ -165,6 +170,7 @@
type instance Element (U1 a) = a
type instance Element (V1 a) = a
type instance Element (Proxy a) = a
+type instance Element (Reverse f a) = Element (f a)
-- | Monomorphic containers that can be mapped over.
class MonoFunctor mono where
@@ -252,6 +258,9 @@
instance VS.Storable a => MonoFunctor (VS.Vector a) where
omap = VS.map
{-# INLINE omap #-}
+-- | @since 1.0.20.0
+instance MonoFunctor (f a) => MonoFunctor (Reverse f a) where
+ omap f (Reverse t) = Reverse (omap f t)
-- | @'replaceElem' old new@ replaces all @old@ elements with @new@.
--
@@ -820,6 +829,13 @@
instance MonoFoldable (V1 a)
-- | @since 1.0.11.0
instance MonoFoldable (Proxy a)
+-- | @since 1.0.20.0
+instance MonoFoldable (f a) => MonoFoldable (Reverse f a) where
+ ofoldMap f (Reverse t) = getDual (ofoldMap (Dual . f) t)
+ ofoldr f z (Reverse t) = ofoldl' (flip f) z t
+ ofoldl' f z (Reverse t) = ofoldr (flip f) z t
+ ofoldr1Ex f (Reverse t) = ofoldl1Ex' (flip f) t
+ ofoldl1Ex' f (Reverse t) = ofoldr1Ex (flip f) t
-- | Safe version of 'headEx'.
--
@@ -1083,6 +1099,9 @@
instance MonoTraversable (V1 a)
-- | @since 1.0.11.0
instance MonoTraversable (Proxy a)
+-- | @since 1.0.20.0
+instance (MonoTraversable (f a)) => MonoTraversable (Reverse f a) where
+ otraverse f (Reverse t) = (fmap Reverse . forwards) (otraverse (Backwards . f) t)
-- | 'ofor' is 'otraverse' with its arguments flipped.
ofor :: (MonoTraversable mono, Applicative f) => mono -> (Element mono -> f (Element mono)) -> f mono
@@ -1153,6 +1172,10 @@
instance MonoPointed TL.Text where
opoint = TL.singleton
{-# INLINE opoint #-}
+-- | @since 1.0.18.0
+instance MonoPointed TB.Builder where
+ opoint = TB.singleton
+ {-# INLINE opoint #-}
-- Applicative
instance MonoPointed [a]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mono-traversable-1.0.17.0/src/Data/Sequences.hs new/mono-traversable-1.0.20.0/src/Data/Sequences.hs
--- old/mono-traversable-1.0.17.0/src/Data/Sequences.hs 2024-02-28 11:35:03.000000000 +0100
+++ new/mono-traversable-1.0.20.0/src/Data/Sequences.hs 2024-09-13 09:56:31.000000000 +0200
@@ -5,6 +5,7 @@
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE TypeOperators #-}
-- | Abstractions over sequential data structures, like lists and vectors.
module Data.Sequences where
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-lucid for openSUSE:Factory checked in at 2024-10-28 15:18:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-lucid (Old)
and /work/SRC/openSUSE:Factory/.ghc-lucid.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-lucid"
Mon Oct 28 15:18:53 2024 rev:13 rq:1218563 version:2.11.20230408
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-lucid/ghc-lucid.changes 2023-11-08 22:18:00.955808048 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-lucid.new.2020/ghc-lucid.changes 2024-10-28 15:21:15.217783191 +0100
@@ -1,0 +2,6 @@
+Thu Sep 19 08:06:09 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update lucid to version 2.11.20230408 revision 2.
+ Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-lucid.spec ++++++
--- /var/tmp/diff_new_pack.wfDxct/_old 2024-10-28 15:21:16.961855823 +0100
+++ /var/tmp/diff_new_pack.wfDxct/_new 2024-10-28 15:21:16.965855990 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-lucid
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -26,7 +26,7 @@
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
-Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal…
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal…
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-base-devel
BuildRequires: ghc-base-prof
++++++ lucid.cabal ++++++
--- /var/tmp/diff_new_pack.wfDxct/_old 2024-10-28 15:21:17.009857823 +0100
+++ /var/tmp/diff_new_pack.wfDxct/_new 2024-10-28 15:21:17.013857989 +0100
@@ -1,6 +1,6 @@
name: lucid
version: 2.11.20230408
-x-revision: 1
+x-revision: 2
synopsis: Clear to write, read and edit DSL for HTML
description:
Clear to write, read and edit DSL for HTML.
@@ -22,7 +22,7 @@
build-type: Simple
cabal-version: >=1.10
extra-source-files: README.md, CHANGELOG.md
-tested-with: GHC==7.10.3,GHC==8.0.2,GHC==8.2.2,GHC==8.4.4,GHC==8.6.5,GHC==8.8.4,GHC==8.10.7,GHC==9.0.1,GHC==9.2.1, GHC==9.4.1, GHC==9.8
+tested-with: GHC==7.10.3,GHC==8.0.2,GHC==8.2.2,GHC==8.4.4,GHC==8.6.5,GHC==8.8.4,GHC==8.10.7,GHC==9.0.1,GHC==9.2.1, GHC==9.4.1, GHC==9.8, GHC==9.10
library
default-language: Haskell2010
@@ -34,7 +34,7 @@
Lucid.Bootstrap
-- GHC boot libraries
- build-depends: base >=4.8 && <4.20
+ build-depends: base >=4.8 && <4.21
, bytestring >=0.10.6.0
, containers >=0.5.6.2
, transformers >=0.4.2.0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package baresip for openSUSE:Factory checked in at 2024-10-28 15:18:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/baresip (Old)
and /work/SRC/openSUSE:Factory/.baresip.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "baresip"
Mon Oct 28 15:18:50 2024 rev:10 rq:1218512 version:3.16.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/baresip/baresip.changes 2024-10-25 19:22:58.542968032 +0200
+++ /work/SRC/openSUSE:Factory/.baresip.new.2020/baresip.changes 2024-10-28 15:21:12.765681072 +0100
@@ -4 +4 @@
-- Do not hardcode the openssl version [bsc#1210879]
+- Do not hardcode the openssl version [bsc#1219879]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-iproute for openSUSE:Factory checked in at 2024-10-28 15:18:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-iproute (Old)
and /work/SRC/openSUSE:Factory/.ghc-iproute.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-iproute"
Mon Oct 28 15:18:46 2024 rev:11 rq:1218561 version:1.7.15
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-iproute/ghc-iproute.changes 2024-07-22 17:17:21.763744896 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-iproute.new.2020/ghc-iproute.changes 2024-10-28 15:21:03.649301417 +0100
@@ -1,0 +2,6 @@
+Thu Oct 24 05:58:23 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update iproute to version 1.7.15.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
Old:
----
iproute-1.7.14.tar.gz
New:
----
iproute-1.7.15.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-iproute.spec ++++++
--- /var/tmp/diff_new_pack.hHlieV/_old 2024-10-28 15:21:05.013358225 +0100
+++ /var/tmp/diff_new_pack.hHlieV/_new 2024-10-28 15:21:05.013358225 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.7.14
+Version: 1.7.15
Release: 0
Summary: IP Routing Table
License: BSD-3-Clause
++++++ iproute-1.7.14.tar.gz -> iproute-1.7.15.tar.gz ++++++
++++ 2570 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-hledger-lib for openSUSE:Factory checked in at 2024-10-28 15:18:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-hledger-lib (Old)
and /work/SRC/openSUSE:Factory/.ghc-hledger-lib.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-hledger-lib"
Mon Oct 28 15:18:41 2024 rev:31 rq:1218558 version:1.40
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-hledger-lib/ghc-hledger-lib.changes 2024-06-11 18:28:44.839673108 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-hledger-lib.new.2020/ghc-hledger-lib.changes 2024-10-28 15:20:48.680678046 +0100
@@ -1,0 +2,9 @@
+Mon Sep 9 21:16:31 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update hledger-lib to version 1.40.
+ Upstream has edited the change log file since the last release in
+ a non-trivial way, i.e. they did more than just add a new entry
+ at the top. You can review the file at:
+ http://hackage.haskell.org/package/hledger-lib-1.40/src/CHANGES.md
+
+-------------------------------------------------------------------
Old:
----
hledger-lib-1.34.tar.gz
New:
----
hledger-lib-1.40.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-hledger-lib.spec ++++++
--- /var/tmp/diff_new_pack.Z4sGbC/_old 2024-10-28 15:20:50.332746847 +0100
+++ /var/tmp/diff_new_pack.Z4sGbC/_new 2024-10-28 15:20:50.336747013 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.34
+Version: 1.40
Release: 0
Summary: A library providing the core functionality of hledger
License: GPL-3.0-or-later
@@ -75,6 +75,8 @@
BuildRequires: ghc-filepath-prof
BuildRequires: ghc-hashtables-devel
BuildRequires: ghc-hashtables-prof
+BuildRequires: ghc-lucid-devel
+BuildRequires: ghc-lucid-prof
BuildRequires: ghc-megaparsec-devel
BuildRequires: ghc-megaparsec-prof
BuildRequires: ghc-microlens-devel
++++++ hledger-lib-1.34.tar.gz -> hledger-lib-1.40.tar.gz ++++++
++++ 3331 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package mutter for openSUSE:Factory checked in at 2024-10-28 15:18:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mutter (Old)
and /work/SRC/openSUSE:Factory/.mutter.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mutter"
Mon Oct 28 15:18:41 2024 rev:239 rq:1218496 version:47.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/mutter/mutter.changes 2024-10-22 14:51:00.443106415 +0200
+++ /work/SRC/openSUSE:Factory/.mutter.new.2020/mutter.changes 2024-10-28 15:20:45.588549273 +0100
@@ -76 +76 @@
-- Update to version 47.rc:
+- Update to version 47.rc (bsc#1223393):
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-ghc-lib-parser for openSUSE:Factory checked in at 2024-10-28 15:18:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-ghc-lib-parser (Old)
and /work/SRC/openSUSE:Factory/.ghc-ghc-lib-parser.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-ghc-lib-parser"
Mon Oct 28 15:18:37 2024 rev:9 rq:1218556 version:9.8.3.20241022
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-ghc-lib-parser/ghc-ghc-lib-parser.changes 2024-03-20 21:16:04.669825742 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-ghc-lib-parser.new.2020/ghc-ghc-lib-parser.changes 2024-10-28 15:20:37.680219929 +0100
@@ -1,0 +2,6 @@
+Tue Oct 22 22:22:46 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update ghc-lib-parser to version 9.8.3.20241022 revision 2.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
Old:
----
ghc-lib-parser-9.8.2.20240223.tar.gz
New:
----
ghc-lib-parser-9.8.3.20241022.tar.gz
ghc-lib-parser.cabal
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-ghc-lib-parser.spec ++++++
--- /var/tmp/diff_new_pack.0B7u43/_old 2024-10-28 15:20:39.300287397 +0100
+++ /var/tmp/diff_new_pack.0B7u43/_new 2024-10-28 15:20:39.304287563 +0100
@@ -19,12 +19,13 @@
%global pkg_name ghc-lib-parser
%global pkgver %{pkg_name}-%{version}
Name: ghc-%{pkg_name}
-Version: 9.8.2.20240223
+Version: 9.8.3.20241022
Release: 0
Summary: The GHC API, decoupled from GHC versions
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal…
BuildRequires: alex
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-array-devel
@@ -93,6 +94,7 @@
%prep
%autosetup -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ ghc-lib-parser-9.8.2.20240223.tar.gz -> ghc-lib-parser-9.8.3.20241022.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Opt/Arity.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Opt/Arity.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Opt/Arity.hs 2024-02-23 14:35:49.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Opt/Arity.hs 2001-09-09 03:46:40.000000000 +0200
@@ -855,7 +855,7 @@
-- | The Arity returned is the number of value args the
-- expression can be applied to without doing much work
-exprEtaExpandArity :: ArityOpts -> CoreExpr -> Maybe SafeArityType
+exprEtaExpandArity :: HasDebugCallStack => ArityOpts -> CoreExpr -> Maybe SafeArityType
-- exprEtaExpandArity is used when eta expanding
-- e ==> \xy -> e x y
-- Nothing if the expression has arity 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Opt/Simplify/Iteration.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Opt/Simplify/Iteration.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Opt/Simplify/Iteration.hs 2024-02-23 14:35:49.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Opt/Simplify/Iteration.hs 2001-09-09 03:46:40.000000000 +0200
@@ -2251,34 +2251,44 @@
(ApplyToVal { sc_arg = arg, sc_env = arg_se
, sc_cont = cont, sc_hole_ty = fun_ty })
| fun_id `hasKey` runRWKey
- , [ TyArg {}, TyArg {} ] <- rev_args
- -- Do this even if (contIsStop cont)
+ , [ TyArg { as_arg_ty = hole_ty }, TyArg {} ] <- rev_args
+ -- Do this even if (contIsStop cont), or if seCaseCase is off.
-- See Note [No eta-expansion in runRW#]
= do { let arg_env = arg_se `setInScopeFromE` env
- ty' = contResultType cont
+
+ overall_res_ty = contResultType cont
+ -- hole_ty is the type of the current runRW# application
+ (outer_cont, new_runrw_res_ty, inner_cont)
+ | seCaseCase env = (mkBoringStop overall_res_ty, overall_res_ty, cont)
+ | otherwise = (cont, hole_ty, mkBoringStop hole_ty)
+ -- Only when case-of-case is on. See GHC.Driver.Config.Core.Opt.Simplify
+ -- Note [Case-of-case and full laziness]
-- If the argument is a literal lambda already, take a short cut
- -- This isn't just efficiency; if we don't do this we get a beta-redex
- -- every time, so the simplifier keeps doing more iterations.
+ -- This isn't just efficiency:
+ -- * If we don't do this we get a beta-redex every time, so the
+ -- simplifier keeps doing more iterations.
+ -- * Even more important: see Note [No eta-expansion in runRW#]
; arg' <- case arg of
Lam s body -> do { (env', s') <- simplBinder arg_env s
- ; body' <- simplExprC env' body cont
+ ; body' <- simplExprC env' body inner_cont
; return (Lam s' body') }
-- Important: do not try to eta-expand this lambda
-- See Note [No eta-expansion in runRW#]
+
_ -> do { s' <- newId (fsLit "s") ManyTy realWorldStatePrimTy
; let (m,_,_) = splitFunTy fun_ty
env' = arg_env `addNewInScopeIds` [s']
cont' = ApplyToVal { sc_dup = Simplified, sc_arg = Var s'
- , sc_env = env', sc_cont = cont
- , sc_hole_ty = mkVisFunTy m realWorldStatePrimTy ty' }
+ , sc_env = env', sc_cont = inner_cont
+ , sc_hole_ty = mkVisFunTy m realWorldStatePrimTy new_runrw_res_ty }
-- cont' applies to s', then K
; body' <- simplExprC env' arg cont'
; return (Lam s' body') }
- ; let rr' = getRuntimeRep ty'
- call' = mkApps (Var fun_id) [mkTyArg rr', mkTyArg ty', arg']
- ; return (emptyFloats env, call') }
+ ; let rr' = getRuntimeRep new_runrw_res_ty
+ call' = mkApps (Var fun_id) [mkTyArg rr', mkTyArg new_runrw_res_ty, arg']
+ ; rebuild env call' outer_cont }
---------- Simplify value arguments --------------------
rebuildCall env fun_info
@@ -2291,7 +2301,8 @@
-- Strict arguments
| isStrictArgInfo fun_info
- , seCaseCase env
+ , seCaseCase env -- Only when case-of-case is on. See GHC.Driver.Config.Core.Opt.Simplify
+ -- Note [Case-of-case and full laziness]
= -- pprTrace "Strict Arg" (ppr arg $$ ppr (seIdSubst env) $$ ppr (seInScope env)) $
simplExprF (arg_se `setInScopeFromE` env) arg
(StrictArg { sc_fun = fun_info, sc_fun_ty = fun_ty
@@ -3110,7 +3121,9 @@
--------------------------------------------------
reallyRebuildCase env scrut case_bndr alts cont
- | not (seCaseCase env)
+ | not (seCaseCase env) -- Only when case-of-case is on.
+ -- See GHC.Driver.Config.Core.Opt.Simplify
+ -- Note [Case-of-case and full laziness]
= do { case_expr <- simplAlts env scrut case_bndr alts
(mkBoringStop (contHoleType cont))
; rebuild env case_expr cont }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Rules.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Rules.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Rules.hs 2024-02-23 14:35:49.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Rules.hs 2001-09-09 03:46:40.000000000 +0200
@@ -47,7 +47,7 @@
import GHC.Core -- All of it
import GHC.Core.Subst
import GHC.Core.SimpleOpt ( exprIsLambda_maybe )
-import GHC.Core.FVs ( exprFreeVars, exprsFreeVars, bindFreeVars
+import GHC.Core.FVs ( exprFreeVars, bindFreeVars
, rulesFreeVarsDSet, exprsOrphNames )
import GHC.Core.Utils ( exprType, mkTick, mkTicks
, stripTicksTopT, stripTicksTopE
@@ -1805,41 +1805,59 @@
vcat [ p $$ line | p <- bagToList results ]
]
where
+ line = text (replicate 20 '-')
env = RuleCheckEnv { rc_is_active = isActive phase
, rc_id_unf = idUnfolding -- Not quite right
-- Should use activeUnfolding
, rc_pattern = rule_pat
, rc_rules = rules
, rc_ropts = ropts
- }
- results = unionManyBags (map (ruleCheckBind env) binds)
- line = text (replicate 20 '-')
+ , rc_in_scope = emptyInScopeSet }
+
+ results = go env binds
-data RuleCheckEnv = RuleCheckEnv {
- rc_is_active :: Activation -> Bool,
- rc_id_unf :: IdUnfoldingFun,
- rc_pattern :: String,
- rc_rules :: Id -> [CoreRule],
- rc_ropts :: RuleOpts
-}
+ go _ [] = emptyBag
+ go env (bind:binds) = let (env', ds) = ruleCheckBind env bind
+ in ds `unionBags` go env' binds
+
+data RuleCheckEnv = RuleCheckEnv
+ { rc_is_active :: Activation -> Bool
+ , rc_id_unf :: IdUnfoldingFun
+ , rc_pattern :: String
+ , rc_rules :: Id -> [CoreRule]
+ , rc_ropts :: RuleOpts
+ , rc_in_scope :: InScopeSet }
+
+extendInScopeRC :: RuleCheckEnv -> Var -> RuleCheckEnv
+extendInScopeRC env@(RuleCheckEnv { rc_in_scope = in_scope }) v
+ = env { rc_in_scope = in_scope `extendInScopeSet` v }
+
+extendInScopeListRC :: RuleCheckEnv -> [Var] -> RuleCheckEnv
+extendInScopeListRC env@(RuleCheckEnv { rc_in_scope = in_scope }) vs
+ = env { rc_in_scope = in_scope `extendInScopeSetList` vs }
-ruleCheckBind :: RuleCheckEnv -> CoreBind -> Bag SDoc
+ruleCheckBind :: RuleCheckEnv -> CoreBind -> (RuleCheckEnv, Bag SDoc)
-- The Bag returned has one SDoc for each call site found
-ruleCheckBind env (NonRec _ r) = ruleCheck env r
-ruleCheckBind env (Rec prs) = unionManyBags [ruleCheck env r | (_,r) <- prs]
+ruleCheckBind env (NonRec b r) = (env `extendInScopeRC` b, ruleCheck env r)
+ruleCheckBind env (Rec prs) = (env', unionManyBags (map (ruleCheck env') rhss))
+ where
+ (bs, rhss) = unzip prs
+ env' = env `extendInScopeListRC` bs
ruleCheck :: RuleCheckEnv -> CoreExpr -> Bag SDoc
-ruleCheck _ (Var _) = emptyBag
-ruleCheck _ (Lit _) = emptyBag
-ruleCheck _ (Type _) = emptyBag
-ruleCheck _ (Coercion _) = emptyBag
-ruleCheck env (App f a) = ruleCheckApp env (App f a) []
-ruleCheck env (Tick _ e) = ruleCheck env e
-ruleCheck env (Cast e _) = ruleCheck env e
-ruleCheck env (Let bd e) = ruleCheckBind env bd `unionBags` ruleCheck env e
-ruleCheck env (Lam _ e) = ruleCheck env e
-ruleCheck env (Case e _ _ as) = ruleCheck env e `unionBags`
- unionManyBags [ruleCheck env r | Alt _ _ r <- as]
+ruleCheck _ (Var _) = emptyBag
+ruleCheck _ (Lit _) = emptyBag
+ruleCheck _ (Type _) = emptyBag
+ruleCheck _ (Coercion _) = emptyBag
+ruleCheck env (App f a) = ruleCheckApp env (App f a) []
+ruleCheck env (Tick _ e) = ruleCheck env e
+ruleCheck env (Cast e _) = ruleCheck env e
+ruleCheck env (Let bd e) = let (env', ds) = ruleCheckBind env bd
+ in ds `unionBags` ruleCheck env' e
+ruleCheck env (Lam b e) = ruleCheck (env `extendInScopeRC` b) e
+ruleCheck env (Case e b _ as) = ruleCheck env e `unionBags`
+ unionManyBags [ruleCheck (env `extendInScopeListRC` (b:bs)) r
+ | Alt _ bs r <- as]
ruleCheckApp :: RuleCheckEnv -> Expr CoreBndr -> [Arg CoreBndr] -> Bag SDoc
ruleCheckApp env (App f a) as = ruleCheck env a `unionBags` ruleCheckApp env f (a:as)
@@ -1863,8 +1881,9 @@
vcat [text "Expression:" <+> ppr (mkApps (Var fn) args),
vcat (map check_rule rules)]
where
- n_args = length args
- i_args = args `zip` [1::Int ..]
+ in_scope = rc_in_scope env
+ n_args = length args
+ i_args = args `zip` [1::Int ..]
rough_args = map roughTopName args
check_rule rule = rule_herald rule <> colon <+> rule_info (rc_ropts env) rule
@@ -1894,10 +1913,8 @@
mismatches = [i | (rule_arg, (arg,i)) <- rule_args `zip` i_args,
not (isJust (match_fn rule_arg arg))]
- lhs_fvs = exprsFreeVars rule_args -- Includes template tyvars
match_fn rule_arg arg = match renv emptyRuleSubst rule_arg arg MRefl
where
- in_scope = mkInScopeSet (lhs_fvs `unionVarSet` exprFreeVars arg)
renv = RV { rv_lcl = mkRnEnv2 in_scope
, rv_tmpls = mkVarSet rule_bndrs
, rv_fltR = mkEmptySubst in_scope
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/SimpleOpt.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/SimpleOpt.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/SimpleOpt.hs 2024-02-23 14:35:49.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/SimpleOpt.hs 2001-09-09 03:46:40.000000000 +0200
@@ -229,13 +229,14 @@
(env', r) = k env{soe_rec_ids = extendUnVarSetList bndrs (soe_rec_ids env)}
---------------
-simple_opt_clo :: InScopeSet
+simple_opt_clo :: HasCallStack
+ => InScopeSet
-> SimpleClo
-> OutExpr
simple_opt_clo in_scope (e_env, e)
= simple_opt_expr (soeSetInScope in_scope e_env) e
-simple_opt_expr :: HasCallStack => SimpleOptEnv -> InExpr -> OutExpr
+simple_opt_expr :: HasDebugCallStack => SimpleOptEnv -> InExpr -> OutExpr
simple_opt_expr env expr
= go expr
where
@@ -399,7 +400,8 @@
simple_app env e as
= finish_app env (simple_opt_expr env e) as
-finish_app :: SimpleOptEnv -> OutExpr -> [SimpleClo] -> OutExpr
+finish_app :: HasCallStack
+ => SimpleOptEnv -> OutExpr -> [SimpleClo] -> OutExpr
-- See Note [Eliminate casts in function position]
finish_app env (Cast (Lam x e) co) as@(_:_)
| not (isTyVar x) && not (isCoVar x)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Type.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Type.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Type.hs 2024-02-23 14:35:49.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Type.hs 2001-09-09 03:46:40.000000000 +0200
@@ -1587,7 +1587,7 @@
Just (_, tys) -> Just tys
Nothing -> Nothing
-tyConAppArgs :: HasCallStack => Type -> [Type]
+tyConAppArgs :: HasDebugCallStack => Type -> [Type]
tyConAppArgs ty = tyConAppArgs_maybe ty `orElse` pprPanic "tyConAppArgs" (ppr ty)
-- | Attempts to tease a type apart into a type constructor and the application
@@ -1627,7 +1627,7 @@
--
-- Consequently, you may need to zonk your type before
-- using this function.
-tcSplitTyConApp_maybe :: HasCallStack => Type -> Maybe (TyCon, [Type])
+tcSplitTyConApp_maybe :: HasDebugCallStack => Type -> Maybe (TyCon, [Type])
-- Defined here to avoid module loops between Unify and TcType.
tcSplitTyConApp_maybe ty
= case coreFullView ty of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Utils.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Utils.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Core/Utils.hs 2024-02-23 14:35:49.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Core/Utils.hs 2001-09-09 03:46:40.000000000 +0200
@@ -23,9 +23,9 @@
-- * Properties of expressions
exprType, coreAltType, coreAltsType, mkLamType, mkLamTypes,
mkFunctionType,
- exprIsDupable, exprIsTrivial, getIdFromTrivialExpr,
- getIdFromTrivialExpr_maybe,
- exprIsCheap, exprIsExpandable, exprIsCheapX, CheapAppFun,
+ exprIsTrivial, getIdFromTrivialExpr, getIdFromTrivialExpr_maybe,
+ trivial_expr_fold,
+ exprIsDupable, exprIsCheap, exprIsExpandable, exprIsCheapX, CheapAppFun,
exprIsHNF, exprOkForSpeculation, exprOkForSideEffects, exprOkForSpecEval,
exprIsWorkFree, exprIsConLike,
isCheapApp, isExpandableApp, isSaturatedConApp,
@@ -1046,20 +1046,37 @@
it off at source.
-}
+{-# INLINE trivial_expr_fold #-}
+trivial_expr_fold :: (Id -> r) -> (Literal -> r) -> r -> r -> CoreExpr -> r
+-- ^ The worker function for Note [exprIsTrivial] and Note [getIdFromTrivialExpr]
+-- This is meant to have the code of both functions in one place and make it
+-- easy to derive custom predicates.
+--
+-- (trivial_expr_fold k_id k_triv k_not_triv e)
+-- * returns (k_id x) if `e` is a variable `x` (with trivial wrapping)
+-- * returns (k_lit x) if `e` is a trivial literal `l` (with trivial wrapping)
+-- * returns k_triv if `e` is a literal, type, or coercion (with trivial wrapping)
+-- * returns k_not_triv otherwise
+--
+-- where "trivial wrapping" is
+-- * Type application or abstraction
+-- * Ticks other than `tickishIsCode`
+-- * `case e of {}` an empty case
+trivial_expr_fold k_id k_lit k_triv k_not_triv = go
+ where
+ go (Var v) = k_id v -- See Note [Variables are trivial]
+ go (Lit l) | litIsTrivial l = k_lit l
+ go (Type _) = k_triv
+ go (Coercion _) = k_triv
+ go (App f t) | not (isRuntimeArg t) = go f
+ go (Lam b e) | not (isRuntimeVar b) = go e
+ go (Tick t e) | not (tickishIsCode t) = go e -- See Note [Tick trivial]
+ go (Cast e _) = go e
+ go (Case e _ _ []) = go e -- See Note [Empty case is trivial]
+ go _ = k_not_triv
+
exprIsTrivial :: CoreExpr -> Bool
--- If you modify this function, you may also
--- need to modify getIdFromTrivialExpr
-exprIsTrivial (Var _) = True -- See Note [Variables are trivial]
-exprIsTrivial (Type _) = True
-exprIsTrivial (Coercion _) = True
-exprIsTrivial (Lit lit) = litIsTrivial lit
-exprIsTrivial (App e arg) = not (isRuntimeArg arg) && exprIsTrivial e
-exprIsTrivial (Lam b e) = not (isRuntimeVar b) && exprIsTrivial e
-exprIsTrivial (Tick t e) = not (tickishIsCode t) && exprIsTrivial e
- -- See Note [Tick trivial]
-exprIsTrivial (Cast e _) = exprIsTrivial e
-exprIsTrivial (Case e _ _ []) = exprIsTrivial e -- See Note [Empty case is trivial]
-exprIsTrivial _ = False
+exprIsTrivial e = trivial_expr_fold (const True) (const True) True False e
{-
Note [getIdFromTrivialExpr]
@@ -1079,24 +1096,13 @@
-}
getIdFromTrivialExpr :: HasDebugCallStack => CoreExpr -> Id
-getIdFromTrivialExpr e
- = fromMaybe (pprPanic "getIdFromTrivialExpr" (ppr e))
- (getIdFromTrivialExpr_maybe e)
-
-getIdFromTrivialExpr_maybe :: CoreExpr -> Maybe Id
-- See Note [getIdFromTrivialExpr]
--- Th equations for this should line up with those for exprIsTrivial
-getIdFromTrivialExpr_maybe e
- = go e
+getIdFromTrivialExpr e = trivial_expr_fold id (const panic) panic panic e
where
- go (App f t) | not (isRuntimeArg t) = go f
- go (Tick t e) | not (tickishIsCode t) = go e
- go (Cast e _) = go e
- go (Lam b e) | not (isRuntimeVar b) = go e
- go (Case e _ _ []) = go e
- go (Var v) = Just v
- go _ = Nothing
+ panic = pprPanic "getIdFromTrivialExpr" (ppr e)
+getIdFromTrivialExpr_maybe :: CoreExpr -> Maybe Id
+getIdFromTrivialExpr_maybe e = trivial_expr_fold Just (const Nothing) Nothing Nothing e
{- *********************************************************************
* *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Data/Maybe.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Data/Maybe.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Data/Maybe.hs 2024-02-23 14:35:49.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Data/Maybe.hs 2001-09-09 03:46:40.000000000 +0200
@@ -33,7 +33,7 @@
import Control.Exception (SomeException(..))
import Data.Maybe
import Data.Foldable ( foldlM, for_ )
-import GHC.Utils.Misc (HasCallStack)
+import GHC.Utils.Misc (HasDebugCallStack)
import Data.List.NonEmpty ( NonEmpty )
import Control.Applicative( Alternative( (<|>) ) )
@@ -66,7 +66,7 @@
go Nothing action = action
go result@(Just _) _action = return result
-expectJust :: HasCallStack => String -> Maybe a -> a
+expectJust :: HasDebugCallStack => String -> Maybe a -> a
{-# INLINE expectJust #-}
expectJust _ (Just x) = x
expectJust err Nothing = error ("expectJust " ++ err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Driver/Plugins.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Driver/Plugins.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Driver/Plugins.hs 2024-02-23 14:35:49.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Driver/Plugins.hs 2001-09-09 03:46:40.000000000 +0200
@@ -405,12 +405,12 @@
loadExternalPluginLib path = do
-- load library
loadDLL path >>= \case
- Just errmsg -> pprPanic "loadExternalPluginLib"
- (vcat [ text "Can't load plugin library"
- , text " Library path: " <> text path
- , text " Error : " <> text errmsg
- ])
- Nothing -> do
+ Left errmsg -> pprPanic "loadExternalPluginLib"
+ (vcat [ text "Can't load plugin library"
+ , text " Library path: " <> text path
+ , text " Error : " <> text errmsg
+ ])
+ Right _ -> do
-- resolve objects
resolveObjs >>= \case
True -> return ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Linker/Types.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Linker/Types.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Linker/Types.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Linker/Types.hs 2001-09-09 03:46:40.000000000 +0200
@@ -40,7 +40,8 @@
import GHC.Unit ( UnitId, Module )
import GHC.ByteCode.Types ( ItblEnv, AddrEnv, CompiledByteCode )
import GHC.Fingerprint.Type ( Fingerprint )
-import GHCi.RemoteTypes ( ForeignHValue )
+import GHCi.RemoteTypes ( ForeignHValue, RemotePtr )
+import GHCi.Message ( LoadedDLL )
import GHC.Types.Var ( Id )
import GHC.Types.Name.Env ( NameEnv, emptyNameEnv, extendNameEnvList, filterNameEnv )
@@ -75,6 +76,53 @@
The LinkerEnv maps Names to actual closures (for interpreted code only), for
use during linking.
+
+Note [Looking up symbols in the relevant objects]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In #23415, we determined that a lot of time (>10s, or even up to >35s!) was
+being spent on dynamically loading symbols before actually interpreting code
+when `:main` was run in GHCi. The root cause was that for each symbol we wanted
+to lookup, we would traverse the list of loaded objects and try find the symbol
+in each of them with dlsym (i.e. looking up a symbol was, worst case, linear in
+the amount of loaded objects).
+
+To drastically improve load time (from +-38 seconds down to +-2s), we now:
+
+1. For every of the native objects loaded for a given unit, store the handles returned by `dlopen`.
+ - In `pkgs_loaded` of the `LoaderState`, which maps `UnitId`s to
+ `LoadedPkgInfo`s, where the handles live in its field `loaded_pkg_hs_dlls`.
+
+2. When looking up a Name (e.g. `lookupHsSymbol`), find that name's `UnitId` in
+ the `pkgs_loaded` mapping,
+
+3. And only look for the symbol (with `dlsym`) on the /handles relevant to that
+ unit/, rather than in every loaded object.
+
+Note [Symbols may not be found in pkgs_loaded]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Currently the `pkgs_loaded` mapping only contains the dynamic objects
+associated with loaded units. Symbols defined in a static object (e.g. from a
+statically-linked Haskell library) are found via the generic `lookupSymbol`
+function call by `lookupHsSymbol` when the symbol is not found in any of the
+dynamic objects of `pkgs_loaded`.
+
+The rationale here is two-fold:
+
+ * we have only observed major link-time issues in dynamic linking; lookups in
+ the RTS linker's static symbol table seem to be fast enough
+
+ * allowing symbol lookups restricted to a single ObjectCode would require the
+ maintenance of a symbol table per `ObjectCode`, which would introduce time and
+ space overhead
+
+This fallback is further needed because we don't look in the haskell objects
+loaded for the home units (see the call to `loadModuleLinkables` in
+`loadDependencies`, as opposed to the call to `loadPackages'` in the same
+function which updates `pkgs_loaded`). We should ultimately keep track of the
+objects loaded (probably in `objs_loaded`, for which `LinkableSet` is a bit
+unsatisfactory, see a suggestion in 51c5c4eb1f2a33e4dc88e6a37b7b7c135234ce9b)
+and be able to lookup symbols specifically in them too (similarly to
+`lookupSymbolInDLL`).
-}
newtype Loader = Loader { loader_state :: MVar (Maybe LoaderState) }
@@ -146,11 +194,13 @@
{ loaded_pkg_uid :: !UnitId
, loaded_pkg_hs_objs :: ![LibrarySpec]
, loaded_pkg_non_hs_objs :: ![LibrarySpec]
+ , loaded_pkg_hs_dlls :: ![RemotePtr LoadedDLL]
+ -- ^ See Note [Looking up symbols in the relevant objects]
, loaded_pkg_trans_deps :: UniqDSet UnitId
}
instance Outputable LoadedPkgInfo where
- ppr (LoadedPkgInfo uid hs_objs non_hs_objs trans_deps) =
+ ppr (LoadedPkgInfo uid hs_objs non_hs_objs _ trans_deps) =
vcat [ppr uid
, ppr hs_objs
, ppr non_hs_objs
@@ -159,10 +209,10 @@
-- | Information we can use to dynamically link modules into the compiler
data Linkable = LM {
- linkableTime :: !UTCTime, -- ^ Time at which this linkable was built
+ linkableTime :: !UTCTime, -- ^ Time at which this linkable was built
-- (i.e. when the bytecodes were produced,
-- or the mod date on the files)
- linkableModule :: !Module, -- ^ The linkable module itself
+ linkableModule :: !Module, -- ^ The linkable module itself
linkableUnlinked :: [Unlinked]
-- ^ Those files and chunks of code we have yet to link.
--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Runtime/Interpreter/Types.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Runtime/Interpreter/Types.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Runtime/Interpreter/Types.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Runtime/Interpreter/Types.hs 2001-09-09 03:46:40.000000000 +0200
@@ -51,6 +51,9 @@
, interpLoader :: !Loader
-- ^ Interpreter loader
+
+ , interpLookupSymbolCache :: !(MVar (UniqFM FastString (Ptr ())))
+ -- ^ LookupSymbol cache
}
data InterpInstance
@@ -108,9 +111,6 @@
-- Finalizers for ForeignRefs can append values to this list
-- asynchronously.
- , instLookupSymbolCache :: !(MVar (UniqFM FastString (Ptr ())))
- -- ^ LookupSymbol cache
-
, instExtra :: !c
-- ^ Instance specific extra fields
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Types/Constraint.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Types/Constraint.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Types/Constraint.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Types/Constraint.hs 2001-09-09 03:46:40.000000000 +0200
@@ -83,7 +83,7 @@
ctEvExpr, ctEvTerm, ctEvCoercion, ctEvEvId,
ctEvRewriters, ctEvUnique, tcEvDestUnique,
mkKindEqLoc, toKindLoc, toInvisibleLoc, mkGivenLoc,
- ctEvRole, setCtEvPredType, setCtEvLoc, arisesFromGivens,
+ ctEvRole, setCtEvPredType, setCtEvLoc,
tyCoVarsOfCtEvList, tyCoVarsOfCtEv, tyCoVarsOfCtEvsList,
-- RewriterSet
@@ -1312,25 +1312,51 @@
insolubleWC :: WantedConstraints -> Bool
insolubleWC (WC { wc_impl = implics, wc_simple = simples, wc_errors = errors })
= anyBag insolubleWantedCt simples
+ -- insolubleWantedCt: wanteds only: see Note [Given insolubles]
|| anyBag insolubleImplic implics
|| anyBag is_insoluble errors
-
- where
+ where
is_insoluble (DE_Hole hole) = isOutOfScopeHole hole -- See Note [Insoluble holes]
is_insoluble (DE_NotConcrete {}) = True
insolubleWantedCt :: Ct -> Bool
-- Definitely insoluble, in particular /excluding/ type-hole constraints
-- Namely:
--- a) an insoluble constraint as per 'insolubleCt', i.e. either
+-- a) an insoluble constraint as per 'insolubleIrredCt', i.e. either
-- - an insoluble equality constraint (e.g. Int ~ Bool), or
-- - a custom type error constraint, TypeError msg :: Constraint
-- b) that does not arise from a Given or a Wanted/Wanted fundep interaction
+-- See Note [Insoluble Wanteds]
+insolubleWantedCt ct
+ | CIrredCan ir_ct <- ct
+ -- CIrredCan: see (IW1) in Note [Insoluble Wanteds]
+ , IrredCt { ir_ev = ev } <- ir_ct
+ , CtWanted { ctev_loc = loc, ctev_rewriters = rewriters } <- ev
+ -- It's a Wanted
+ , insolubleIrredCt ir_ct
+ -- It's insoluble
+ , isEmptyRewriterSet rewriters
+ -- It has no rewriters; see (IW2) in Note [Insoluble Wanteds]
+ , not (isGivenLoc loc)
+ -- isGivenLoc: see (IW3) in Note [Insoluble Wanteds]
+ , not (isWantedWantedFunDepOrigin (ctLocOrigin loc))
+ -- origin check: see (IW4) in Note [Insoluble Wanteds]
+ = True
+
+ | otherwise
+ = False
+
+-- | Returns True of constraints that are definitely insoluble,
+-- as well as TypeError constraints.
+-- Can return 'True' for Given constraints, unlike 'insolubleWantedCt'.
--
--- See Note [Given insolubles].
-insolubleWantedCt ct = insolubleCt ct &&
- not (arisesFromGivens ct) &&
- not (isWantedWantedFunDepOrigin (ctOrigin ct))
+-- The function is tuned for application /after/ constraint solving
+-- i.e. assuming canonicalisation has been done
+-- That's why it looks only for IrredCt; all insoluble constraints
+-- are put into CIrredCan
+insolubleCt :: Ct -> Bool
+insolubleCt (CIrredCan ir_ct) = insolubleIrredCt ir_ct
+insolubleCt _ = False
insolubleIrredCt :: IrredCt -> Bool
-- Returns True of Irred constraints that are /definitely/ insoluble
@@ -1360,18 +1386,6 @@
-- > Assert 'True _errMsg = ()
-- > Assert _check errMsg = errMsg
--- | Returns True of constraints that are definitely insoluble,
--- as well as TypeError constraints.
--- Can return 'True' for Given constraints, unlike 'insolubleWantedCt'.
---
--- The function is tuned for application /after/ constraint solving
--- i.e. assuming canonicalisation has been done
--- That's why it looks only for IrredCt; all insoluble constraints
--- are put into CIrredCan
-insolubleCt :: Ct -> Bool
-insolubleCt (CIrredCan ir_ct) = insolubleIrredCt ir_ct
-insolubleCt _ = False
-
-- | Does this hole represent an "out of scope" error?
-- See Note [Insoluble holes]
isOutOfScopeHole :: Hole -> Bool
@@ -1415,6 +1429,31 @@
Bottom line: insolubleWC (called in GHC.Tc.Solver.setImplicationStatus)
should ignore givens even if they are insoluble.
+Note [Insoluble Wanteds]
+~~~~~~~~~~~~~~~~~~~~~~~~
+insolubleWantedCt returns True of a Wanted constraint that definitely
+can't be solved. But not quite all such constraints; see wrinkles.
+
+(IW1) insolubleWantedCt is tuned for application /after/ constraint
+ solving i.e. assuming canonicalisation has been done. That's why
+ it looks only for IrredCt; all insoluble constraints are put into
+ CIrredCan
+
+(IW2) We only treat it as insoluble if it has an empty rewriter set. (See Note
+ [Wanteds rewrite Wanteds].) Otherwise #25325 happens: a Wanted constraint A
+ that is /not/ insoluble rewrites some other Wanted constraint B, so B has A
+ in its rewriter set. Now B looks insoluble. The danger is that we'll
+ suppress reporting B because of its empty rewriter set; and suppress
+ reporting A because there is an insoluble B lying around. (This suppression
+ happens in GHC.Tc.Errors.mkErrorItem.) Solution: don't treat B as insoluble.
+
+(IW3) If the Wanted arises from a Given (how can that happen?), don't
+ treat it as a Wanted insoluble (obviously).
+
+(IW4) If the Wanted came from a Wanted/Wanted fundep interaction, don't
+ treat the constraint as insoluble. See Note [Suppressing confusing errors]
+ in GHC.Tc.Errors
+
Note [Insoluble holes]
~~~~~~~~~~~~~~~~~~~~~~
Hole constraints that ARE NOT treated as truly insoluble:
@@ -2056,9 +2095,6 @@
setCtEvLoc :: CtEvidence -> CtLoc -> CtEvidence
setCtEvLoc ctev loc = ctev { ctev_loc = loc }
-arisesFromGivens :: Ct -> Bool
-arisesFromGivens ct = isGivenCt ct || isGivenLoc (ctLoc ct)
-
-- | Set the type of CtEvidence.
--
-- This function ensures that the invariants on 'CtEvidence' hold, by updating
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Types/Origin.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Types/Origin.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Types/Origin.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Types/Origin.hs 2001-09-09 03:46:40.000000000 +0200
@@ -67,6 +67,7 @@
import GHC.Utils.Panic
import GHC.Stack
import GHC.Utils.Monad
+import GHC.Utils.Misc( HasDebugCallStack )
import GHC.Types.Unique
import GHC.Types.Unique.Supply
@@ -311,10 +312,10 @@
--
-- We're hoping to be able to get rid of this entirely, but for the moment
-- it's still needed.
-unkSkol :: HasCallStack => SkolemInfo
+unkSkol :: HasDebugCallStack => SkolemInfo
unkSkol = SkolemInfo (mkUniqueGrimily 0) unkSkolAnon
-unkSkolAnon :: HasCallStack => SkolemInfoAnon
+unkSkolAnon :: HasDebugCallStack => SkolemInfoAnon
unkSkolAnon = UnkSkol callStack
-- | Wrap up the origin of a skolem type variable with a new 'Unique',
@@ -864,7 +865,7 @@
= ctoHerald <+> pprCtO simple_origin
-- | Short one-liners
-pprCtO :: HasCallStack => CtOrigin -> SDoc
+pprCtO :: HasDebugCallStack => CtOrigin -> SDoc
pprCtO (OccurrenceOf name) = hsep [text "a use of", quotes (ppr name)]
pprCtO (OccurrenceOfRecSel name) = hsep [text "a use of", quotes (ppr name)]
pprCtO AppOrigin = text "an application"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Types/Origin.hs-boot new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Types/Origin.hs-boot
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Types/Origin.hs-boot 2024-02-23 14:32:58.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Types/Origin.hs-boot 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
module GHC.Tc.Types.Origin where
-import GHC.Stack ( HasCallStack )
+import GHC.Utils.Misc ( HasDebugCallStack )
data SkolemInfoAnon
data SkolemInfo
@@ -11,4 +11,4 @@
data ClsInstOrQC = IsClsInst
| IsQC CtOrigin
-unkSkol :: HasCallStack => SkolemInfo
+unkSkol :: HasDebugCallStack => SkolemInfo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Utils/TcType.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Utils/TcType.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Utils/TcType.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Utils/TcType.hs 2001-09-09 03:46:40.000000000 +0200
@@ -580,7 +580,7 @@
, mtv_ref :: IORef MetaDetails
, mtv_tclvl :: TcLevel } -- See Note [TcLevel invariants]
-vanillaSkolemTvUnk :: HasCallStack => TcTyVarDetails
+vanillaSkolemTvUnk :: HasDebugCallStack => TcTyVarDetails
vanillaSkolemTvUnk = SkolemTv unkSkol topTcLevel False
instance Outputable TcTyVarDetails where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Utils/TcType.hs-boot new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Utils/TcType.hs-boot
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Tc/Utils/TcType.hs-boot 2024-02-23 14:32:58.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Tc/Utils/TcType.hs-boot 2001-09-09 03:46:40.000000000 +0200
@@ -2,13 +2,13 @@
import GHC.Utils.Outputable( SDoc )
import GHC.Prelude ( Bool )
import {-# SOURCE #-} GHC.Types.Var ( TcTyVar )
-import GHC.Stack
+import GHC.Utils.Misc( HasDebugCallStack )
data MetaDetails
data TcTyVarDetails
pprTcTyVarDetails :: TcTyVarDetails -> SDoc
-vanillaSkolemTvUnk :: HasCallStack => TcTyVarDetails
+vanillaSkolemTvUnk :: HasDebugCallStack => TcTyVarDetails
isMetaTyVar :: TcTyVar -> Bool
isTyConableTyVar :: TcTyVar -> Bool
isConcreteTyVar :: TcTyVar -> Bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Types/Id/Make.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Types/Id/Make.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Types/Id/Make.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Types/Id/Make.hs 2001-09-09 03:46:40.000000000 +0200
@@ -899,15 +899,25 @@
-- needs a wrapper. This wrapper is injected into the program later in the
-- CoreTidy pass. See Note [Injecting implicit bindings] in GHC.Iface.Tidy,
-- along with the accompanying implementation in getTyConImplicitBinds.
- wrapper_reqd =
- (not new_tycon
+ wrapper_reqd
+ | isTypeDataTyCon tycon
+ -- `type data` declarations never have data-constructor wrappers
+ -- Their data constructors only live at the type level, in the
+ -- form of PromotedDataCon, and therefore do not need wrappers.
+ -- See wrinkle (W0) in Note [Type data declarations] in GHC.Rename.Module.
+ = False
+
+ | otherwise
+ = (not new_tycon
-- (Most) newtypes have only a worker, with the exception
-- of some newtypes written with GADT syntax.
-- See dataConUserTyVarsNeedWrapper below.
&& (any isBanged (ev_ibangs ++ arg_ibangs)))
-- Some forcing/unboxing (includes eq_spec)
+
|| isFamInstTyCon tycon -- Cast result
- || (dataConUserTyVarsNeedWrapper data_con
+
+ || dataConUserTyVarsNeedWrapper data_con
-- If the data type was written with GADT syntax and
-- orders the type variables differently from what the
-- worker expects, it needs a data con wrapper to reorder
@@ -916,19 +926,7 @@
--
-- NB: All GADTs return true from this function, but there
-- is one exception that we must check below.
- && not (isTypeDataTyCon tycon))
- -- An exception to this rule is `type data` declarations.
- -- Their data constructors only live at the type level and
- -- therefore do not need wrappers.
- -- See Note [Type data declarations] in GHC.Rename.Module.
- --
- -- Note that the other checks in this definition will
- -- return False for `type data` declarations, as:
- --
- -- - They cannot be newtypes
- -- - They cannot have strict fields
- -- - They cannot be data family instances
- -- - They cannot have datatype contexts
+
|| not (null stupid_theta)
-- If the data constructor has a datatype context,
-- we need a wrapper in order to drop the stupid arguments.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Types/Id.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Types/Id.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Types/Id.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Types/Id.hs 2001-09-09 03:46:40.000000000 +0200
@@ -296,26 +296,28 @@
mkGlobalId = Var.mkGlobalVar
-- | Make a global 'Id' without any extra information at all
-mkVanillaGlobal :: Name -> Type -> Id
+mkVanillaGlobal :: HasDebugCallStack => Name -> Type -> Id
mkVanillaGlobal name ty = mkVanillaGlobalWithInfo name ty vanillaIdInfo
-- | Make a global 'Id' with no global information but some generic 'IdInfo'
-mkVanillaGlobalWithInfo :: Name -> Type -> IdInfo -> Id
-mkVanillaGlobalWithInfo = mkGlobalId VanillaId
-
+mkVanillaGlobalWithInfo :: HasDebugCallStack => Name -> Type -> IdInfo -> Id
+mkVanillaGlobalWithInfo nm =
+ assertPpr (not $ isFieldNameSpace $ nameNameSpace nm)
+ (text "mkVanillaGlobalWithInfo called on record field:" <+> ppr nm) $
+ mkGlobalId VanillaId nm
-- | For an explanation of global vs. local 'Id's, see "GHC.Types.Var#globalvslocal"
mkLocalId :: HasDebugCallStack => Name -> Mult -> Type -> Id
mkLocalId name w ty = mkLocalIdWithInfo name w (assert (not (isCoVarType ty)) ty) vanillaIdInfo
-- | Make a local CoVar
-mkLocalCoVar :: Name -> Type -> CoVar
+mkLocalCoVar :: HasDebugCallStack => Name -> Type -> CoVar
mkLocalCoVar name ty
= assert (isCoVarType ty) $
Var.mkLocalVar CoVarId name ManyTy ty vanillaIdInfo
-- | Like 'mkLocalId', but checks the type to see if it should make a covar
-mkLocalIdOrCoVar :: Name -> Mult -> Type -> Id
+mkLocalIdOrCoVar :: HasDebugCallStack => Name -> Mult -> Type -> Id
mkLocalIdOrCoVar name w ty
-- We should assert (eqType w Many) in the isCoVarType case.
-- However, currently this assertion does not hold.
@@ -339,7 +341,10 @@
-- Note [Free type variables]
mkExportedVanillaId :: Name -> Type -> Id
-mkExportedVanillaId name ty = Var.mkExportedLocalVar VanillaId name ty vanillaIdInfo
+mkExportedVanillaId name ty =
+ assertPpr (not $ isFieldNameSpace $ nameNameSpace name)
+ (text "mkExportedVanillaId called on record field:" <+> ppr name) $
+ Var.mkExportedLocalVar VanillaId name ty vanillaIdInfo
-- Note [Free type variables]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Unit/Types.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Unit/Types.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Unit/Types.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Unit/Types.hs 2001-09-09 03:46:40.000000000 +0200
@@ -101,9 +101,9 @@
import GHC.Utils.Misc
import GHC.Settings.Config (cProjectUnitId)
-import Control.DeepSeq
+import Control.DeepSeq (NFData(..))
import Data.Data
-import Data.List (sortBy )
+import Data.List (sortBy)
import Data.Function
import Data.Bifunctor
import qualified Data.ByteString as BS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Utils/Binary.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Utils/Binary.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Utils/Binary.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Utils/Binary.hs 2001-09-09 03:46:40.000000000 +0200
@@ -249,15 +249,18 @@
seekBin :: BinHandle -> Bin a -> IO ()
seekBin h@(BinMem _ ix_r sz_r _) (BinPtr !p) = do
sz <- readFastMutInt sz_r
- if (p >= sz)
+ if (p > sz)
then do expandBin h p; writeFastMutInt ix_r p
else writeFastMutInt ix_r p
--- | SeekBin but without calling expandBin
+-- | 'seekBinNoExpand' moves the index pointer to the location pointed to
+-- by 'Bin a'.
+-- This operation may 'panic', if the pointer location is out of bounds of the
+-- buffer of 'BinHandle'.
seekBinNoExpand :: BinHandle -> Bin a -> IO ()
seekBinNoExpand (BinMem _ ix_r sz_r _) (BinPtr !p) = do
sz <- readFastMutInt sz_r
- if (p >= sz)
+ if (p > sz)
then panic "seekBinNoExpand: seek out of range"
else writeFastMutInt ix_r p
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Utils/Lexeme.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Utils/Lexeme.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Utils/Lexeme.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Utils/Lexeme.hs 2001-09-09 03:46:40.000000000 +0200
@@ -227,10 +227,11 @@
, "module", "newtype", "of", "then", "type", "where"
, "_" ]
--- | All reserved operators. Taken from section 2.4 of the 2010 Report.
+-- | All reserved operators. Taken from section 2.4 of the 2010 Report,
+-- excluding @\@@ and @~@ that are allowed by GHC (see GHC Proposal #229).
reservedOps :: Set.Set String
reservedOps = Set.fromList [ "..", ":", "::", "=", "\\", "|", "<-", "->"
- , "@", "~", "=>" ]
+ , "=>" ]
-- | Does this string contain only dashes and has at least 2 of them?
isDashes :: String -> Bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Utils/Misc.hs new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Utils/Misc.hs
--- old/ghc-lib-parser-9.8.2.20240223/compiler/GHC/Utils/Misc.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/GHC/Utils/Misc.hs 2001-09-09 03:46:40.000000000 +0200
@@ -485,7 +485,7 @@
-- | Extract the single element of a list and panic with the given message if
-- there are more elements or the list was empty.
-- Like 'expectJust', but for lists.
-expectOnly :: HasCallStack => String -> [a] -> a
+expectOnly :: HasDebugCallStack => String -> [a] -> a
{-# INLINE expectOnly #-}
#if defined(DEBUG)
expectOnly _ [a] = a
@@ -513,7 +513,7 @@
changeLast (x:xs) x' = x : changeLast xs x'
-- | Like @expectJust msg . nonEmpty@; a better alternative to 'NE.fromList'.
-expectNonEmpty :: HasCallStack => String -> [a] -> NonEmpty a
+expectNonEmpty :: HasDebugCallStack => String -> [a] -> NonEmpty a
{-# INLINE expectNonEmpty #-}
expectNonEmpty _ (x:xs) = x:|xs
expectNonEmpty msg [] = expectNonEmptyPanic msg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/compiler/ghc.cabal new/ghc-lib-parser-9.8.3.20241022/compiler/ghc.cabal
--- old/ghc-lib-parser-9.8.2.20240223/compiler/ghc.cabal 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/compiler/ghc.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -3,7 +3,7 @@
-- ./configure. Make sure you are editing ghc.cabal.in, not ghc.cabal.
Name: ghc
-Version: 9.8.2
+Version: 9.8.3
License: BSD-3-Clause
License-File: LICENSE
Author: The GHC Team
@@ -110,9 +110,9 @@
exceptions == 0.10.*,
semaphore-compat,
stm,
- ghc-boot == 9.8.2,
- ghc-heap == 9.8.2,
- ghci == 9.8.2
+ ghc-boot == 9.8.3,
+ ghc-heap == 9.8.3,
+ ghci == 9.8.3
if os(windows)
Build-Depends: Win32 >= 2.3 && < 2.14
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/ghc/ghc-bin.cabal new/ghc-lib-parser-9.8.3.20241022/ghc/ghc-bin.cabal
--- old/ghc-lib-parser-9.8.2.20240223/ghc/ghc-bin.cabal 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/ghc/ghc-bin.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -2,7 +2,7 @@
-- ./configure. Make sure you are editing ghc-bin.cabal.in, not ghc-bin.cabal.
Name: ghc-bin
-Version: 9.8.2
+Version: 9.8.3
Copyright: XXX
-- License: XXX
-- License-File: XXX
@@ -39,8 +39,8 @@
filepath >= 1 && < 1.5,
containers >= 0.5 && < 0.7,
transformers >= 0.5 && < 0.7,
- ghc-boot == 9.8.2,
- ghc == 9.8.2
+ ghc-boot == 9.8.3,
+ ghc == 9.8.3
if os(windows)
Build-Depends: Win32 >= 2.3 && < 2.14
@@ -58,7 +58,7 @@
Build-depends:
deepseq >= 1.4 && < 1.6,
ghc-prim >= 0.5.0 && < 0.12,
- ghci == 9.8.2,
+ ghci == 9.8.3,
haskeline == 0.8.*,
exceptions == 0.10.*,
time >= 1.8 && < 1.13
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/ghc-lib/stage0/compiler/build/GHC/Settings/Config.hs new/ghc-lib-parser-9.8.3.20241022/ghc-lib/stage0/compiler/build/GHC/Settings/Config.hs
--- old/ghc-lib-parser-9.8.2.20240223/ghc-lib/stage0/compiler/build/GHC/Settings/Config.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/ghc-lib/stage0/compiler/build/GHC/Settings/Config.hs 2001-09-09 03:46:40.000000000 +0200
@@ -22,10 +22,10 @@
cProjectName = "The Glorious Glasgow Haskell Compilation System"
cBooterVersion :: String
-cBooterVersion = "9.4.5"
+cBooterVersion = "9.8.2"
cStage :: String
cStage = show (1 :: Int)
cProjectUnitId :: String
-cProjectUnitId = "ghc-9.8.2-inplace"
+cProjectUnitId = "ghc-9.8.3-inplace"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/ghc-lib/stage0/lib/settings new/ghc-lib-parser-9.8.3.20241022/ghc-lib/stage0/lib/settings
--- old/ghc-lib-parser-9.8.2.20240223/ghc-lib/stage0/lib/settings 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/ghc-lib/stage0/lib/settings 2001-09-09 03:46:40.000000000 +0200
@@ -2,7 +2,7 @@
,("C compiler flags", "--target=x86_64-apple-darwin -Qunused-arguments")
,("C++ compiler command", "/usr/bin/g++")
,("C++ compiler flags", "--target=x86_64-apple-darwin ")
-,("C compiler link flags", "--target=x86_64-apple-darwin -Wl,-no_fixup_chains -Wl,-no_warn_duplicate_libraries")
+,("C compiler link flags", "--target=x86_64-apple-darwin -Wl,-no_fixup_chains -Wl,-no_warn_duplicate_libraries")
,("C compiler supports -no-pie", "NO")
,("Haskell CPP command", "/usr/bin/gcc")
,("Haskell CPP flags", "-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/ghc-lib/stage0/libraries/ghc-boot/build/GHC/Version.hs new/ghc-lib-parser-9.8.3.20241022/ghc-lib/stage0/libraries/ghc-boot/build/GHC/Version.hs
--- old/ghc-lib-parser-9.8.2.20240223/ghc-lib/stage0/libraries/ghc-boot/build/GHC/Version.hs 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/ghc-lib/stage0/libraries/ghc-boot/build/GHC/Version.hs 2001-09-09 03:46:40.000000000 +0200
@@ -3,19 +3,19 @@
import Prelude -- See Note [Why do we import Prelude here?]
cProjectGitCommitId :: String
-cProjectGitCommitId = "f3225ed4b3f3c4309f9342c5e40643eeb0cc45da"
+cProjectGitCommitId = "72e041753f8d2c5b1fae0465277b187c61f17634"
cProjectVersion :: String
-cProjectVersion = "9.8.2"
+cProjectVersion = "9.8.3"
cProjectVersionInt :: String
cProjectVersionInt = "908"
cProjectPatchLevel :: String
-cProjectPatchLevel = "2"
+cProjectPatchLevel = "3"
cProjectPatchLevel1 :: String
-cProjectPatchLevel1 = "2"
+cProjectPatchLevel1 = "3"
cProjectPatchLevel2 :: String
cProjectPatchLevel2 = "0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/ghc-lib-parser.cabal new/ghc-lib-parser-9.8.3.20241022/ghc-lib-parser.cabal
--- old/ghc-lib-parser-9.8.2.20240223/ghc-lib-parser.cabal 2024-02-23 14:36:05.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/ghc-lib-parser.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,7 +1,7 @@
cabal-version: 3.0
build-type: Simple
name: ghc-lib-parser
-version: 9.8.2.20240223
+version: 9.8.3.20241022
license: BSD-3-Clause
license-file: LICENSE
category: Development
@@ -68,7 +68,7 @@
manual: True
description: Pass -DTHREADED_RTS to the C toolchain
library
- default-language: Haskell2010
+ default-language: Haskell2010
exposed: False
include-dirs:
rts/include
@@ -76,6 +76,8 @@
ghc-lib/stage0/compiler/build
compiler
libraries/containers/containers/include
+ if impl(ghc >= 8.8.1)
+ ghc-options: -fno-safe-haskell
if flag(threaded-rts)
ghc-options: -fobject-code -package=ghc-boot-th -optc-DTHREADED_RTS
cc-options: -DTHREADED_RTS
@@ -93,17 +95,19 @@
containers >= 0.6.2.1 && < 0.7,
bytestring >= 0.11.4 && < 0.13,
time >= 1.4 && < 1.13,
+ filepath >= 1 && < 1.5,
exceptions == 0.10.*,
parsec,
binary == 0.8.*,
- filepath >= 1 && < 1.5,
directory >= 1 && < 1.4,
array >= 0.1 && < 0.6,
deepseq >= 1.4 && < 1.6,
pretty == 1.1.*,
transformers >= 0.5 && < 0.7,
process >= 1 && < 1.7
- build-tool-depends: alex:alex >= 3.1, happy:happy >= 1.19.4
+ if impl(ghc >= 9.10)
+ build-depends: ghc-internal
+ build-tool-depends: alex:alex >= 3.1, happy:happy > 1.20 && < 2.0
other-extensions:
BangPatterns
CPP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/libraries/ghc-boot/ghc-boot.cabal new/ghc-lib-parser-9.8.3.20241022/libraries/ghc-boot/ghc-boot.cabal
--- old/ghc-lib-parser-9.8.2.20240223/libraries/ghc-boot/ghc-boot.cabal 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/libraries/ghc-boot/ghc-boot.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -5,7 +5,7 @@
-- ghc-boot.cabal.
name: ghc-boot
-version: 9.8.2
+version: 9.8.3
license: BSD-3-Clause
license-file: LICENSE
category: GHC
@@ -77,7 +77,7 @@
directory >= 1.2 && < 1.4,
filepath >= 1.3 && < 1.5,
deepseq >= 1.4 && < 1.6,
- ghc-boot-th == 9.8.2
+ ghc-boot-th == 9.8.3
if !os(windows)
build-depends:
unix >= 2.7 && < 2.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/libraries/ghc-boot-th/ghc-boot-th.cabal new/ghc-lib-parser-9.8.3.20241022/libraries/ghc-boot-th/ghc-boot-th.cabal
--- old/ghc-lib-parser-9.8.2.20240223/libraries/ghc-boot-th/ghc-boot-th.cabal 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/libraries/ghc-boot-th/ghc-boot-th.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -3,7 +3,7 @@
-- ghc-boot-th.cabal.in, not ghc-boot-th.cabal.
name: ghc-boot-th
-version: 9.8.2
+version: 9.8.3
license: BSD3
license-file: LICENSE
category: GHC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/libraries/ghc-heap/ghc-heap.cabal new/ghc-lib-parser-9.8.3.20241022/libraries/ghc-heap/ghc-heap.cabal
--- old/ghc-lib-parser-9.8.2.20240223/libraries/ghc-heap/ghc-heap.cabal 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/libraries/ghc-heap/ghc-heap.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ghc-heap
-version: 9.8.2
+version: 9.8.3
license: BSD-3-Clause
license-file: LICENSE
maintainer: libraries(a)haskell.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/libraries/ghci/GHCi/Message.hs new/ghc-lib-parser-9.8.3.20241022/libraries/ghci/GHCi/Message.hs
--- old/ghc-lib-parser-9.8.2.20240223/libraries/ghci/GHCi/Message.hs 2024-02-23 14:35:50.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/libraries/ghci/GHCi/Message.hs 2001-09-09 03:46:40.000000000 +0200
@@ -21,6 +21,7 @@
, QState(..)
, getMessage, putMessage, getTHMessage, putTHMessage
, Pipe(..), remoteCall, remoteTHCall, readPipe, writePipe
+ , LoadedDLL
) where
import Prelude -- See note [Why do we import Prelude here?]
@@ -69,8 +70,9 @@
-- These all invoke the corresponding functions in the RTS Linker API.
InitLinker :: Message ()
LookupSymbol :: String -> Message (Maybe (RemotePtr ()))
+ LookupSymbolInDLL :: RemotePtr LoadedDLL -> String -> Message (Maybe (RemotePtr ()))
LookupClosure :: String -> Message (Maybe HValueRef)
- LoadDLL :: String -> Message (Maybe String)
+ LoadDLL :: String -> Message (Either String (RemotePtr LoadedDLL))
LoadArchive :: String -> Message () -- error?
LoadObj :: String -> Message () -- error?
UnloadObj :: String -> Message () -- error?
@@ -394,6 +396,9 @@
instance Binary a => Binary (EvalResult a)
+-- | A dummy type that tags pointers returned by 'LoadDLL'.
+data LoadedDLL
+
-- SomeException can't be serialized because it contains dynamic
-- types. However, we do very limited things with the exceptions that
-- are thrown by interpreted computations:
@@ -465,7 +470,7 @@
#define MIN_VERSION_ghc_heap(major1,major2,minor) (\
(major1) < 9 || \
(major1) == 9 && (major2) < 8 || \
- (major1) == 9 && (major2) == 8 && (minor) <= 2)
+ (major1) == 9 && (major2) == 8 && (minor) <= 3)
#endif /* MIN_VERSION_ghc_heap */
#if MIN_VERSION_ghc_heap(8,11,0)
instance Binary Heap.StgTSOProfInfo
@@ -527,6 +532,7 @@
36 -> Msg <$> (Seq <$> get)
37 -> Msg <$> return RtsRevertCAFs
38 -> Msg <$> (ResumeSeq <$> get)
+ 40 -> Msg <$> (LookupSymbolInDLL <$> get <*> get)
_ -> error $ "Unknown Message code " ++ (show b)
putMessage :: Message a -> Put
@@ -570,6 +576,7 @@
Seq a -> putWord8 36 >> put a
RtsRevertCAFs -> putWord8 37
ResumeSeq a -> putWord8 38 >> put a
+ LookupSymbolInDLL dll str -> putWord8 40 >> put dll >> put str
-- -----------------------------------------------------------------------------
-- Reading/writing messages
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/libraries/ghci/ghci.cabal new/ghc-lib-parser-9.8.3.20241022/libraries/ghci/ghci.cabal
--- old/ghc-lib-parser-9.8.2.20240223/libraries/ghci/ghci.cabal 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/libraries/ghci/ghci.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -2,7 +2,7 @@
-- ../../configure. Make sure you are editing ghci.cabal.in, not ghci.cabal.
name: ghci
-version: 9.8.2
+version: 9.8.3
license: BSD3
license-file: LICENSE
category: GHC
@@ -82,8 +82,8 @@
containers >= 0.5 && < 0.7,
deepseq >= 1.4 && < 1.6,
filepath == 1.4.*,
- ghc-boot == 9.8.2,
- ghc-heap == 9.8.2,
+ ghc-boot == 9.8.3,
+ ghc-heap == 9.8.3,
template-haskell == 2.21.*,
transformers >= 0.5 && < 0.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghc-lib-parser-9.8.2.20240223/libraries/template-haskell/template-haskell.cabal new/ghc-lib-parser-9.8.3.20241022/libraries/template-haskell/template-haskell.cabal
--- old/ghc-lib-parser-9.8.2.20240223/libraries/template-haskell/template-haskell.cabal 2024-02-23 14:35:31.000000000 +0100
+++ new/ghc-lib-parser-9.8.3.20241022/libraries/template-haskell/template-haskell.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -56,7 +56,7 @@
build-depends:
base >= 4.11 && < 4.20,
- ghc-boot-th == 9.8.2,
+ ghc-boot-th == 9.8.3,
ghc-prim,
pretty == 1.1.*
++++++ ghc-lib-parser.cabal ++++++
cabal-version: 3.0
build-type: Simple
name: ghc-lib-parser
version: 9.8.3.20241022
x-revision: 2
license: BSD-3-Clause
license-file: LICENSE
category: Development
author: The GHC Team and Digital Asset
maintainer: Digital Asset
synopsis: The GHC API, decoupled from GHC versions
description: A package equivalent to the @ghc@ package, but which can be loaded on many compiler versions.
homepage: https://github.com/digital-asset/ghc-lib
bug-reports: https://github.com/digital-asset/ghc-lib/issues
data-dir: ghc-lib/stage0/lib
data-files:
settings
llvm-targets
llvm-passes
extra-source-files:
ghc/ghc-bin.cabal
libraries/template-haskell/template-haskell.cabal
libraries/ghc-heap/ghc-heap.cabal
libraries/ghc-boot-th/ghc-boot-th.cabal
libraries/ghc-boot/ghc-boot.cabal
libraries/ghci/ghci.cabal
compiler/ghc.cabal
ghc-lib/stage0/rts/build/include/ghcautoconf.h
ghc-lib/stage0/rts/build/include/ghcplatform.h
ghc-lib/stage0/rts/build/include/GhclibDerivedConstants.h
ghc-lib/stage0/compiler/build/primop-can-fail.hs-incl
ghc-lib/stage0/compiler/build/primop-code-size.hs-incl
ghc-lib/stage0/compiler/build/primop-commutable.hs-incl
ghc-lib/stage0/compiler/build/primop-data-decl.hs-incl
ghc-lib/stage0/compiler/build/primop-fixity.hs-incl
ghc-lib/stage0/compiler/build/primop-has-side-effects.hs-incl
ghc-lib/stage0/compiler/build/primop-list.hs-incl
ghc-lib/stage0/compiler/build/primop-out-of-line.hs-incl
ghc-lib/stage0/compiler/build/primop-primop-info.hs-incl
ghc-lib/stage0/compiler/build/primop-strictness.hs-incl
ghc-lib/stage0/compiler/build/primop-tag.hs-incl
ghc-lib/stage0/compiler/build/primop-vector-tycons.hs-incl
ghc-lib/stage0/compiler/build/primop-vector-tys-exports.hs-incl
ghc-lib/stage0/compiler/build/primop-vector-tys.hs-incl
ghc-lib/stage0/compiler/build/primop-vector-uniques.hs-incl
ghc-lib/stage0/compiler/build/primop-docs.hs-incl
ghc-lib/stage0/compiler/build/GHC/Platform/Constants.hs
ghc-lib/stage0/compiler/build/GHC/Settings/Config.hs
ghc-lib/stage0/libraries/ghc-boot/build/GHC/Version.hs
ghc-lib/stage0/libraries/ghc-boot/build/GHC/Platform/Host.hs
compiler/GHC/Parser.y
compiler/GHC/Parser/Lexer.x
compiler/GHC/Parser/HaddockLex.x
compiler/GHC/Parser.hs-boot
libraries/containers/containers/include/containers.h
compiler/ghc-llvm-version.h
rts/include/ghcconfig.h
compiler/MachRegs.h
compiler/CodeGen.Platform.h
compiler/Bytecodes.h
compiler/ClosureTypes.h
compiler/FunTypes.h
compiler/Unique.h
source-repository head
type: git
location: git@github.com:digital-asset/ghc-lib.git
flag threaded-rts
default: True
manual: True
description: Pass -DTHREADED_RTS to the C toolchain
library
default-language: Haskell2010
exposed: False
include-dirs:
rts/include
ghc-lib/stage0/lib
ghc-lib/stage0/compiler/build
compiler
libraries/containers/containers/include
if impl(ghc >= 8.8.1)
ghc-options: -fno-safe-haskell
if flag(threaded-rts)
ghc-options: -fobject-code -package=ghc-boot-th -optc-DTHREADED_RTS
cc-options: -DTHREADED_RTS
cpp-options: -DTHREADED_RTS
else
ghc-options: -fobject-code -package=ghc-boot-th
cpp-options:
if !os(windows)
build-depends: unix
else
build-depends: Win32
build-depends:
base >= 4.17 && < 4.20,
ghc-prim > 0.2 && < 0.12,
containers >= 0.6.2.1 && < 0.7,
bytestring >= 0.11.4 && < 0.13,
time >= 1.4 && < 1.13,
filepath >= 1 && < 1.5,
exceptions == 0.10.*,
parsec,
binary == 0.8.*,
directory >= 1 && < 1.4,
array >= 0.1 && < 0.6,
deepseq >= 1.4 && < 1.6,
pretty == 1.1.*,
transformers >= 0.5 && < 0.7,
process >= 1 && < 1.7
if impl(ghc >= 9.10)
build-depends: ghc-internal
build-tool-depends: alex:alex >= 3.1, happy:happy == 1.20.* || >= 2.0.2 && < 2.1
other-extensions:
BangPatterns
CPP
DataKinds
DefaultSignatures
DeriveDataTypeable
DeriveFoldable
DeriveFunctor
DeriveGeneric
DeriveTraversable
DisambiguateRecordFields
ExistentialQuantification
ExplicitForAll
FlexibleContexts
FlexibleInstances
GADTs
GeneralizedNewtypeDeriving
InstanceSigs
MagicHash
MultiParamTypeClasses
NamedFieldPuns
NondecreasingIndentation
RankNTypes
RecordWildCards
RoleAnnotations
ScopedTypeVariables
StandaloneDeriving
Trustworthy
TupleSections
TypeFamilies
TypeSynonymInstances
UnboxedTuples
UndecidableInstances
default-extensions:
BangPatterns
ImplicitPrelude
MonoLocalBinds
NoImplicitPrelude
ScopedTypeVariables
TypeOperators
if impl(ghc >= 9.2.2)
cmm-sources:
libraries/ghc-heap/cbits/HeapPrim.cmm
else
c-sources:
libraries/ghc-heap/cbits/HeapPrim.cmm
c-sources:
compiler/cbits/genSym.c
compiler/cbits/cutils.c
compiler/cbits/keepCAFsForGHCi.c
hs-source-dirs:
ghc-lib/stage0/libraries/ghc-boot/build
ghc-lib/stage0/compiler/build
libraries/template-haskell
libraries/ghc-boot-th
libraries/ghc-boot
libraries/ghc-heap
libraries/ghci
compiler
autogen-modules:
GHC.Parser.Lexer
GHC.Parser
exposed-modules:
GHC.BaseDir
GHC.Builtin.Names
GHC.Builtin.PrimOps
GHC.Builtin.PrimOps.Ids
GHC.Builtin.Types
GHC.Builtin.Types.Prim
GHC.Builtin.Uniques
GHC.ByteCode.Types
GHC.Cmm
GHC.Cmm.BlockId
GHC.Cmm.CLabel
GHC.Cmm.Dataflow.Block
GHC.Cmm.Dataflow.Collections
GHC.Cmm.Dataflow.Graph
GHC.Cmm.Dataflow.Label
GHC.Cmm.Expr
GHC.Cmm.MachOp
GHC.Cmm.Node
GHC.Cmm.Reg
GHC.Cmm.Switch
GHC.Cmm.Type
GHC.CmmToAsm.CFG.Weight
GHC.CmmToLlvm.Config
GHC.Core
GHC.Core.Class
GHC.Core.Coercion
GHC.Core.Coercion.Axiom
GHC.Core.Coercion.Opt
GHC.Core.ConLike
GHC.Core.DataCon
GHC.Core.FVs
GHC.Core.FamInstEnv
GHC.Core.InstEnv
GHC.Core.Lint
GHC.Core.Lint.Interactive
GHC.Core.Make
GHC.Core.Map.Expr
GHC.Core.Map.Type
GHC.Core.Multiplicity
GHC.Core.Opt.Arity
GHC.Core.Opt.CallerCC
GHC.Core.Opt.CallerCC.Types
GHC.Core.Opt.ConstantFold
GHC.Core.Opt.Monad
GHC.Core.Opt.OccurAnal
GHC.Core.Opt.Pipeline.Types
GHC.Core.Opt.Simplify
GHC.Core.Opt.Simplify.Env
GHC.Core.Opt.Simplify.Inline
GHC.Core.Opt.Simplify.Iteration
GHC.Core.Opt.Simplify.Monad
GHC.Core.Opt.Simplify.Utils
GHC.Core.Opt.Stats
GHC.Core.PatSyn
GHC.Core.Ppr
GHC.Core.Predicate
GHC.Core.Reduction
GHC.Core.RoughMap
GHC.Core.Rules
GHC.Core.Rules.Config
GHC.Core.Seq
GHC.Core.SimpleOpt
GHC.Core.Stats
GHC.Core.Subst
GHC.Core.Tidy
GHC.Core.TyCo.Compare
GHC.Core.TyCo.FVs
GHC.Core.TyCo.Ppr
GHC.Core.TyCo.Rep
GHC.Core.TyCo.Subst
GHC.Core.TyCo.Tidy
GHC.Core.TyCon
GHC.Core.TyCon.Env
GHC.Core.TyCon.RecWalk
GHC.Core.Type
GHC.Core.Unfold
GHC.Core.Unfold.Make
GHC.Core.Unify
GHC.Core.UsageEnv
GHC.Core.Utils
GHC.CoreToIface
GHC.Data.Bag
GHC.Data.Bool
GHC.Data.BooleanFormula
GHC.Data.EnumSet
GHC.Data.FastMutInt
GHC.Data.FastString
GHC.Data.FastString.Env
GHC.Data.FiniteMap
GHC.Data.Graph.Directed
GHC.Data.Graph.UnVar
GHC.Data.IOEnv
GHC.Data.List.Infinite
GHC.Data.List.SetOps
GHC.Data.Maybe
GHC.Data.OrdList
GHC.Data.Pair
GHC.Data.ShortText
GHC.Data.SizedSeq
GHC.Data.SmallArray
GHC.Data.Stream
GHC.Data.Strict
GHC.Data.StringBuffer
GHC.Data.TrieMap
GHC.Data.Unboxed
GHC.Driver.Backend
GHC.Driver.Backend.Internal
GHC.Driver.Backpack.Syntax
GHC.Driver.CmdLine
GHC.Driver.Config
GHC.Driver.Config.Core.Lint
GHC.Driver.Config.Diagnostic
GHC.Driver.Config.Logger
GHC.Driver.Config.Parser
GHC.Driver.DynFlags
GHC.Driver.Env
GHC.Driver.Env.KnotVars
GHC.Driver.Env.Types
GHC.Driver.Errors
GHC.Driver.Errors.Ppr
GHC.Driver.Errors.Types
GHC.Driver.Flags
GHC.Driver.Hooks
GHC.Driver.LlvmConfigCache
GHC.Driver.Monad
GHC.Driver.Phases
GHC.Driver.Pipeline.Monad
GHC.Driver.Pipeline.Phases
GHC.Driver.Plugins
GHC.Driver.Plugins.External
GHC.Driver.Ppr
GHC.Driver.Session
GHC.Exts.Heap
GHC.Exts.Heap.ClosureTypes
GHC.Exts.Heap.Closures
GHC.Exts.Heap.Constants
GHC.Exts.Heap.FFIClosures
GHC.Exts.Heap.FFIClosures_ProfilingDisabled
GHC.Exts.Heap.FFIClosures_ProfilingEnabled
GHC.Exts.Heap.InfoTable
GHC.Exts.Heap.InfoTable.Types
GHC.Exts.Heap.InfoTableProf
GHC.Exts.Heap.ProfInfo.PeekProfInfo
GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingDisabled
GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingEnabled
GHC.Exts.Heap.ProfInfo.Types
GHC.Exts.Heap.Utils
GHC.ForeignSrcLang
GHC.ForeignSrcLang.Type
GHC.Hs
GHC.Hs.Binds
GHC.Hs.Decls
GHC.Hs.Doc
GHC.Hs.DocString
GHC.Hs.Dump
GHC.Hs.Expr
GHC.Hs.Extension
GHC.Hs.ImpExp
GHC.Hs.Instances
GHC.Hs.Lit
GHC.Hs.Pat
GHC.Hs.Type
GHC.Hs.Utils
GHC.HsToCore.Errors.Ppr
GHC.HsToCore.Errors.Types
GHC.HsToCore.Pmc.Ppr
GHC.HsToCore.Pmc.Solver.Types
GHC.HsToCore.Pmc.Types
GHC.Iface.Decl
GHC.Iface.Errors.Ppr
GHC.Iface.Errors.Types
GHC.Iface.Ext.Fields
GHC.Iface.Recomp.Binary
GHC.Iface.Syntax
GHC.Iface.Type
GHC.JS.Make
GHC.JS.Ppr
GHC.JS.Syntax
GHC.JS.Transform
GHC.JS.Unsat.Syntax
GHC.LanguageExtensions
GHC.LanguageExtensions.Type
GHC.Lexeme
GHC.Linker.Static.Utils
GHC.Linker.Types
GHC.Parser
GHC.Parser.Annotation
GHC.Parser.CharClass
GHC.Parser.Errors.Basic
GHC.Parser.Errors.Ppr
GHC.Parser.Errors.Types
GHC.Parser.HaddockLex
GHC.Parser.Header
GHC.Parser.Lexer
GHC.Parser.PostProcess
GHC.Parser.PostProcess.Haddock
GHC.Parser.Types
GHC.Platform
GHC.Platform.AArch64
GHC.Platform.ARM
GHC.Platform.ArchOS
GHC.Platform.Constants
GHC.Platform.LoongArch64
GHC.Platform.NoRegs
GHC.Platform.PPC
GHC.Platform.Profile
GHC.Platform.RISCV64
GHC.Platform.Reg
GHC.Platform.Reg.Class
GHC.Platform.Regs
GHC.Platform.S390X
GHC.Platform.Wasm32
GHC.Platform.Ways
GHC.Platform.X86
GHC.Platform.X86_64
GHC.Prelude
GHC.Prelude.Basic
GHC.Runtime.Context
GHC.Runtime.Eval.Types
GHC.Runtime.Heap.Layout
GHC.Runtime.Interpreter.Types
GHC.Serialized
GHC.Settings
GHC.Settings.Config
GHC.Settings.Constants
GHC.Settings.Utils
GHC.Stg.InferTags.TagSig
GHC.Stg.Lift.Types
GHC.Stg.Syntax
GHC.StgToCmm.Config
GHC.StgToCmm.Types
GHC.StgToJS.Linker.Types
GHC.StgToJS.Object
GHC.StgToJS.Types
GHC.SysTools.BaseDir
GHC.SysTools.Terminal
GHC.Tc.Errors.Hole.FitTypes
GHC.Tc.Errors.Hole.Plugin
GHC.Tc.Errors.Ppr
GHC.Tc.Errors.Types
GHC.Tc.Errors.Types.PromotionErr
GHC.Tc.Solver.InertSet
GHC.Tc.Solver.Types
GHC.Tc.Types
GHC.Tc.Types.BasicTypes
GHC.Tc.Types.Constraint
GHC.Tc.Types.CtLocEnv
GHC.Tc.Types.ErrCtxt
GHC.Tc.Types.Evidence
GHC.Tc.Types.LclEnv
GHC.Tc.Types.Origin
GHC.Tc.Types.Rank
GHC.Tc.Types.TH
GHC.Tc.Types.TcRef
GHC.Tc.Utils.TcType
GHC.Tc.Zonk.Monad
GHC.Types.Annotations
GHC.Types.Avail
GHC.Types.Basic
GHC.Types.BreakInfo
GHC.Types.CompleteMatch
GHC.Types.CostCentre
GHC.Types.CostCentre.State
GHC.Types.Cpr
GHC.Types.Demand
GHC.Types.Error
GHC.Types.Error.Codes
GHC.Types.FieldLabel
GHC.Types.Fixity
GHC.Types.Fixity.Env
GHC.Types.ForeignCall
GHC.Types.ForeignStubs
GHC.Types.GREInfo
GHC.Types.Hint
GHC.Types.Hint.Ppr
GHC.Types.HpcInfo
GHC.Types.IPE
GHC.Types.Id
GHC.Types.Id.Info
GHC.Types.Id.Make
GHC.Types.Literal
GHC.Types.Meta
GHC.Types.Name
GHC.Types.Name.Cache
GHC.Types.Name.Env
GHC.Types.Name.Occurrence
GHC.Types.Name.Ppr
GHC.Types.Name.Reader
GHC.Types.Name.Set
GHC.Types.PkgQual
GHC.Types.ProfAuto
GHC.Types.RepType
GHC.Types.SafeHaskell
GHC.Types.SaneDouble
GHC.Types.SourceError
GHC.Types.SourceFile
GHC.Types.SourceText
GHC.Types.SrcLoc
GHC.Types.Target
GHC.Types.Tickish
GHC.Types.TyThing
GHC.Types.TyThing.Ppr
GHC.Types.TypeEnv
GHC.Types.Unique
GHC.Types.Unique.DFM
GHC.Types.Unique.DSet
GHC.Types.Unique.FM
GHC.Types.Unique.Map
GHC.Types.Unique.SDFM
GHC.Types.Unique.Set
GHC.Types.Unique.Supply
GHC.Types.Var
GHC.Types.Var.Env
GHC.Types.Var.Set
GHC.UniqueSubdir
GHC.Unit
GHC.Unit.Database
GHC.Unit.Env
GHC.Unit.External
GHC.Unit.Finder.Types
GHC.Unit.Home
GHC.Unit.Home.ModInfo
GHC.Unit.Info
GHC.Unit.Module
GHC.Unit.Module.Deps
GHC.Unit.Module.Env
GHC.Unit.Module.Graph
GHC.Unit.Module.Imported
GHC.Unit.Module.Location
GHC.Unit.Module.ModDetails
GHC.Unit.Module.ModGuts
GHC.Unit.Module.ModIface
GHC.Unit.Module.ModSummary
GHC.Unit.Module.Status
GHC.Unit.Module.Warnings
GHC.Unit.Module.WholeCoreBindings
GHC.Unit.Parser
GHC.Unit.Ppr
GHC.Unit.State
GHC.Unit.Types
GHC.Utils.Binary
GHC.Utils.Binary.Typeable
GHC.Utils.BufHandle
GHC.Utils.CliOption
GHC.Utils.Constants
GHC.Utils.Encoding
GHC.Utils.Encoding.UTF8
GHC.Utils.Error
GHC.Utils.Exception
GHC.Utils.FV
GHC.Utils.Fingerprint
GHC.Utils.GlobalVars
GHC.Utils.IO.Unsafe
GHC.Utils.Json
GHC.Utils.Lexeme
GHC.Utils.Logger
GHC.Utils.Misc
GHC.Utils.Monad
GHC.Utils.Monad.State.Strict
GHC.Utils.Outputable
GHC.Utils.Panic
GHC.Utils.Panic.Plain
GHC.Utils.Ppr
GHC.Utils.Ppr.Colour
GHC.Utils.TmpFs
GHC.Utils.Trace
GHC.Version
GHCi.BreakArray
GHCi.FFI
GHCi.Message
GHCi.RemoteTypes
GHCi.TH.Binary
Language.Haskell.Syntax
Language.Haskell.Syntax.Basic
Language.Haskell.Syntax.Binds
Language.Haskell.Syntax.Concrete
Language.Haskell.Syntax.Decls
Language.Haskell.Syntax.Expr
Language.Haskell.Syntax.Extension
Language.Haskell.Syntax.ImpExp
Language.Haskell.Syntax.Lit
Language.Haskell.Syntax.Module.Name
Language.Haskell.Syntax.Pat
Language.Haskell.Syntax.Type
Language.Haskell.TH
Language.Haskell.TH.LanguageExtensions
Language.Haskell.TH.Lib
Language.Haskell.TH.Lib.Internal
Language.Haskell.TH.Lib.Map
Language.Haskell.TH.Ppr
Language.Haskell.TH.PprLib
Language.Haskell.TH.Syntax
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-fgl for openSUSE:Factory checked in at 2024-10-28 15:18:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-fgl (Old)
and /work/SRC/openSUSE:Factory/.ghc-fgl.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-fgl"
Mon Oct 28 15:18:34 2024 rev:10 rq:1218555 version:5.8.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-fgl/ghc-fgl.changes 2023-11-23 21:41:53.498239367 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-fgl.new.2020/ghc-fgl.changes 2024-10-28 15:20:35.544130971 +0100
@@ -1,0 +2,11 @@
+Mon Sep 30 06:53:01 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update fgl to version 5.8.3.0.
+ 5.8.3.0
+ -------
+
+ * Data.Graph.Inductive.NodeMap now has functions mkLookupNode,
+ insMapLookupNode, memberNode, and lookupNode for detecting whether a
+ graph already contains a node (issue #72, PR #77).
+
+-------------------------------------------------------------------
Old:
----
fgl-5.8.2.0.tar.gz
New:
----
fgl-5.8.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-fgl.spec ++++++
--- /var/tmp/diff_new_pack.aQ81ST/_old 2024-10-28 15:20:36.324163456 +0100
+++ /var/tmp/diff_new_pack.aQ81ST/_new 2024-10-28 15:20:36.324163456 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-fgl
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 5.8.2.0
+Version: 5.8.3.0
Release: 0
Summary: Martin Erwig's Functional Graph Library
License: BSD-3-Clause
++++++ fgl-5.8.2.0.tar.gz -> fgl-5.8.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fgl-5.8.2.0/ChangeLog new/fgl-5.8.3.0/ChangeLog
--- old/fgl-5.8.2.0/ChangeLog 2001-09-09 03:46:40.000000000 +0200
+++ new/fgl-5.8.3.0/ChangeLog 2001-09-09 03:46:40.000000000 +0200
@@ -1,3 +1,10 @@
+5.8.3.0
+-------
+
+* Data.Graph.Inductive.NodeMap now has functions mkLookupNode,
+ insMapLookupNode, memberNode, and lookupNode for detecting whether a
+ graph already contains a node (issue #72, PR #77).
+
5.8.2.0
-------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fgl-5.8.2.0/Data/Graph/Inductive/NodeMap.hs new/fgl-5.8.3.0/Data/Graph/Inductive/NodeMap.hs
--- old/fgl-5.8.2.0/Data/Graph/Inductive/NodeMap.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/fgl-5.8.3.0/Data/Graph/Inductive/NodeMap.hs 2001-09-09 03:46:40.000000000 +0200
@@ -6,13 +6,13 @@
-- * Functional Construction
NodeMap,
-- ** Map Construction
- new, fromGraph, mkNode, mkNode_, mkNodes, mkNodes_, mkEdge, mkEdges,
+ new, fromGraph, mkNode, mkNode_, mkNodes, mkLookupNode, mkNodes_, mkEdge, mkEdges,
-- ** Graph Construction
-- | These functions mirror the construction and destruction functions in
-- 'Data.Graph.Inductive.Graph', but use the given 'NodeMap' to look up
-- the appropriate 'Node's. Note that the 'insMapNode' family of functions
-- will create new nodes as needed, but the other functions will not.
- insMapNode, insMapNode_, insMapEdge, delMapNode, delMapEdge, insMapNodes,
+ insMapNode, insMapLookupNode, insMapNode_, insMapEdge, delMapNode, delMapEdge, insMapNodes,
insMapNodes_, insMapEdges, delMapNodes, delMapEdges, mkMapGraph,
-- * Monadic Construction
NodeMapM,
@@ -23,7 +23,10 @@
run, run_, mkNodeM, mkNodesM, mkEdgeM, mkEdgesM,
-- ** Graph Construction
insMapNodeM, insMapEdgeM, delMapNodeM, delMapEdgeM, insMapNodesM,
- insMapEdgesM, delMapNodesM, delMapEdgesM
+ insMapEdgesM, delMapNodesM, delMapEdgesM,
+
+ -- ** Map inspection
+ memberNode, lookupNode
) where
import Control.Monad.Trans.State
@@ -62,15 +65,30 @@
(m, k) = foldr aux (M.empty, 0) ns
in NodeMap { map = m, key = k+1 }
+-- | Is the node in the map ?
+memberNode :: (Ord a) => a -> NodeMap a -> Bool
+memberNode a = M.member a . map
+
+-- | Lookup for the node in the map.
+lookupNode :: (Ord a) => a -> NodeMap a -> Maybe Node
+lookupNode a = M.lookup a . map
+
-- | Generate a labelled node from the given label. Will return the same node
-- for the same label.
mkNode :: (Ord a) => NodeMap a -> a -> (LNode a, NodeMap a)
-mkNode m@(NodeMap mp k) a =
+mkNode m = forgetFst . mkLookupNode m
+ where
+ forgetFst (_,x,y)=(x,y)
+
+-- | Act as 'mkNode', but return also a boolean set as @True@ if the node was
+-- already in the map.
+mkLookupNode :: (Ord a) => NodeMap a -> a -> (Bool, LNode a, NodeMap a)
+mkLookupNode m@(NodeMap mp k) a =
case M.lookup a mp of
- Just i -> ((i, a), m)
- Nothing ->
+ Just i -> (True,(i, a), m)
+ Nothing ->
let m' = NodeMap { map = M.insert a k mp, key = k+1 }
- in ((k, a), m')
+ in (False,(k, a), m')
-- | Generate a labelled node and throw away the modified 'NodeMap'.
mkNode_ :: (Ord a) => NodeMap a -> a -> LNode a
@@ -107,6 +125,13 @@
let (n, m') = mkNode m a
in (insNode n g, m', n)
+-- | Act as 'insMapNode', but return also a boolean set as @True@ if the node was
+-- already in the map.
+insMapLookupNode :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> (Bool, g a b, NodeMap a, LNode a)
+insMapLookupNode m a g =
+ let (b, n, m') = mkLookupNode m a
+ in (b, insNode n g, m', n)
+
insMapNode_ :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b
insMapNode_ m a g =
let (g', _, _) = insMapNode m a g
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fgl-5.8.2.0/fgl.cabal new/fgl-5.8.3.0/fgl.cabal
--- old/fgl-5.8.2.0/fgl.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/fgl-5.8.3.0/fgl.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,5 @@
name: fgl
-version: 5.8.2.0
+version: 5.8.3.0
license: BSD3
license-file: LICENSE
author: Martin Erwig, Ivan Lazar Miljenovic
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-extra for openSUSE:Factory checked in at 2024-10-28 15:18:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-extra (Old)
and /work/SRC/openSUSE:Factory/.ghc-extra.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-extra"
Mon Oct 28 15:18:31 2024 rev:37 rq:1218553 version:1.7.16
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-extra/ghc-extra.changes 2024-05-21 18:35:16.171815387 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-extra.new.2020/ghc-extra.changes 2024-10-28 15:20:27.819809290 +0100
@@ -1,0 +2,6 @@
+Tue Oct 22 22:59:37 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update extra to version 1.7.16 revision 1.
+ Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------
New:
----
extra.cabal
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-extra.spec ++++++
--- /var/tmp/diff_new_pack.WBtrMK/_old 2024-10-28 15:20:29.607883755 +0100
+++ /var/tmp/diff_new_pack.WBtrMK/_new 2024-10-28 15:20:29.615884088 +0100
@@ -26,6 +26,7 @@
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal…
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-base-devel
BuildRequires: ghc-base-prof
@@ -89,6 +90,7 @@
%prep
%autosetup -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ extra.cabal ++++++
cabal-version: 1.18
build-type: Simple
name: extra
version: 1.7.16
x-revision: 1
license: BSD3
license-file: LICENSE
category: Development
author: Neil Mitchell <ndmitchell(a)gmail.com>
maintainer: Neil Mitchell <ndmitchell(a)gmail.com>
copyright: Neil Mitchell 2014-2024
synopsis: Extra functions I use.
description:
A library of extra functions for the standard Haskell libraries. Most functions are simple additions, filling out missing functionality. A few functions are available in later versions of GHC, but this package makes them available back to GHC 7.2.
.
The module "Extra" documents all functions provided by this library. Modules such as "Data.List.Extra" provide extra functions over "Data.List" and also reexport "Data.List". Users are recommended to replace "Data.List" imports with "Data.List.Extra" if they need the extra functionality.
homepage: https://github.com/ndmitchell/extra#readme
bug-reports: https://github.com/ndmitchell/extra/issues
tested-with: GHC==9.8, GHC==9.6, GHC==9.4, GHC==9.2, GHC==9.0, GHC==8.10, GHC==8.8
extra-doc-files:
CHANGES.txt
README.md
extra-source-files:
Generate.hs
source-repository head
type: git
location: https://github.com/ndmitchell/extra.git
library
default-language: Haskell2010
hs-source-dirs: src
build-depends:
base >= 4.9 && < 4.21,
directory,
filepath,
process,
clock >= 0.7,
time
if !os(windows)
build-depends: unix
other-modules:
Partial
exposed-modules:
Extra
Control.Concurrent.Extra
Control.Exception.Extra
Control.Monad.Extra
Data.Foldable.Extra
Data.Either.Extra
Data.IORef.Extra
Data.List.Extra
Data.List.NonEmpty.Extra
Data.Monoid.Extra
Data.Tuple.Extra
Data.Typeable.Extra
Data.Version.Extra
Numeric.Extra
System.Directory.Extra
System.Environment.Extra
System.Info.Extra
System.IO.Extra
System.Process.Extra
System.Time.Extra
Text.Read.Extra
test-suite extra-test
type: exitcode-stdio-1.0
default-language: Haskell2010
build-depends:
base == 4.*,
directory,
filepath,
extra,
QuickCheck >= 2.10,
quickcheck-instances >= 0.3.17
if !os(windows)
build-depends: unix
hs-source-dirs: test
ghc-options: -main-is Test -threaded "-with-rtsopts=-N4 -K1K"
main-is: Test.hs
other-modules:
TestCustom
TestGen
TestUtil
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-email-validate for openSUSE:Factory checked in at 2024-10-28 15:18:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-email-validate (Old)
and /work/SRC/openSUSE:Factory/.ghc-email-validate.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-email-validate"
Mon Oct 28 15:18:31 2024 rev:14 rq:1218552 version:2.3.2.21
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-email-validate/ghc-email-validate.changes 2024-03-20 21:15:57.849570139 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-email-validate.new.2020/ghc-email-validate.changes 2024-10-28 15:20:24.935689180 +0100
@@ -1,0 +2,6 @@
+Sat Sep 21 20:46:10 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update email-validate to version 2.3.2.21.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
Old:
----
email-validate-2.3.2.20.tar.gz
New:
----
email-validate-2.3.2.21.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-email-validate.spec ++++++
--- /var/tmp/diff_new_pack.g1acS2/_old 2024-10-28 15:20:25.623717833 +0100
+++ /var/tmp/diff_new_pack.g1acS2/_new 2024-10-28 15:20:25.627718000 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 2.3.2.20
+Version: 2.3.2.21
Release: 0
Summary: Email address validation
License: BSD-3-Clause
++++++ email-validate-2.3.2.20.tar.gz -> email-validate-2.3.2.21.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/email-validate-2.3.2.20/email-validate.cabal new/email-validate-2.3.2.21/email-validate.cabal
--- old/email-validate-2.3.2.20/email-validate.cabal 2024-02-22 20:45:51.000000000 +0100
+++ new/email-validate-2.3.2.21/email-validate.cabal 2024-09-21 22:38:39.000000000 +0200
@@ -1,5 +1,5 @@
name: email-validate
-version: 2.3.2.20
+version: 2.3.2.21
license: BSD3
license-file: LICENSE
author: George Pollard <porges(a)porg.es>
@@ -19,14 +19,14 @@
source-repository this
type: git
location: git://github.com/Porges/email-validate-hs.git
- tag: v2.3.2.20
+ tag: v2.3.2.21
library
build-depends:
base >= 4.4 && < 5,
attoparsec >= 0.10.0 && < 0.15,
bytestring >= 0.9 && < 0.13,
- template-haskell >= 2.10.0.0 && < 2.22
+ template-haskell >= 2.10.0.0 && < 3
default-language: Haskell2010
hs-source-dirs: src
ghc-options: -Wall
@@ -45,5 +45,5 @@
email-validate,
base >= 4 && < 5,
hspec >= 2.2.3 && < 2.12,
- QuickCheck >= 2.4 && < 2.15,
+ QuickCheck >= 2.4 && < 3,
bytestring >= 0.9 && < 0.13
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-doctemplates for openSUSE:Factory checked in at 2024-10-28 15:18:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-doctemplates (Old)
and /work/SRC/openSUSE:Factory/.ghc-doctemplates.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-doctemplates"
Mon Oct 28 15:18:29 2024 rev:17 rq:1218551 version:0.11.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-doctemplates/ghc-doctemplates.changes 2023-04-04 21:19:57.401013008 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-doctemplates.new.2020/ghc-doctemplates.changes 2024-10-28 15:20:22.067569736 +0100
@@ -1,0 +2,16 @@
+Mon Sep 9 06:25:57 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update doctemplates to version 0.11.0.1.
+ # 0.11.0.1
+
+ * Bump version bounds for doclayout.
+
+ * Fix typos.
+
+ # 0.11
+
+ * Remove HsYAML depenedency.
+
+ * Remove upper bound for criterion.
+
+-------------------------------------------------------------------
Old:
----
doctemplates-0.11.tar.gz
New:
----
doctemplates-0.11.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-doctemplates.spec ++++++
--- /var/tmp/diff_new_pack.jFsBta/_old 2024-10-28 15:20:22.879603554 +0100
+++ /var/tmp/diff_new_pack.jFsBta/_new 2024-10-28 15:20:22.879603554 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-doctemplates
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.11
+Version: 0.11.0.1
Release: 0
Summary: Pandoc-style document templates
License: BSD-3-Clause
++++++ doctemplates-0.11.tar.gz -> doctemplates-0.11.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doctemplates-0.11/README.md new/doctemplates-0.11.0.1/README.md
--- old/doctemplates-0.11/README.md 2001-09-09 03:46:40.000000000 +0200
+++ new/doctemplates-0.11.0.1/README.md 2001-09-09 03:46:40.000000000 +0200
@@ -1,4 +1,4 @@
-#( doctemplates
+# doctemplates
[![CI
tests](https://github.com/jgm/doctemplates/workflows/CI%20tests/badge.svg)]…
@@ -194,7 +194,7 @@
A for loop begins with `for(variable)` (enclosed in
matched delimiters) and ends with `endfor` (enclosed in matched
-delimiters.
+delimiters).
- If `variable` is an array, the material inside the loop will
be evaluated repeatedly, with `variable` being set to each
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doctemplates-0.11/changelog.md new/doctemplates-0.11.0.1/changelog.md
--- old/doctemplates-0.11/changelog.md 2001-09-09 03:46:40.000000000 +0200
+++ new/doctemplates-0.11.0.1/changelog.md 2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,17 @@
# doctemplates
+# 0.11.0.1
+
+ * Bump version bounds for doclayout.
+
+ * Fix typos.
+
+# 0.11
+
+ * Remove HsYAML depenedency.
+
+ * Remove upper bound for criterion.
+
## 0.10.0.2
* Use doclayout 0.4.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doctemplates-0.11/doctemplates.cabal new/doctemplates-0.11.0.1/doctemplates.cabal
--- old/doctemplates-0.11/doctemplates.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/doctemplates-0.11.0.1/doctemplates.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,5 @@
name: doctemplates
-version: 0.11
+version: 0.11.0.1
synopsis: Pandoc-style document templates
description: This is the text templating system used by pandoc.
It supports variable interpolation, iteration,
@@ -33,7 +33,7 @@
text-conversions,
aeson,
text,
- doclayout >= 0.4 && < 0.5,
+ doclayout >= 0.4 && < 0.6,
containers,
vector,
filepath,
@@ -51,7 +51,7 @@
main-is: test.hs
build-depends: base,
doctemplates,
- doclayout >= 0.4 && < 0.5,
+ doclayout >= 0.4 && < 0.6,
containers,
aeson,
Glob,
@@ -70,7 +70,7 @@
Main-Is: bench.hs
Hs-Source-Dirs: bench
Build-Depends: doctemplates,
- doclayout >= 0.4 && < 0.5,
+ doclayout >= 0.4 && < 0.6,
base >= 4.8 && < 5,
criterion >= 1.0,
filepath,
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-doclayout for openSUSE:Factory checked in at 2024-10-28 15:18:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-doclayout (Old)
and /work/SRC/openSUSE:Factory/.ghc-doclayout.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-doclayout"
Mon Oct 28 15:18:29 2024 rev:11 rq:1218550 version:0.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-doclayout/ghc-doclayout.changes 2023-04-04 21:19:56.673008367 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-doclayout.new.2020/ghc-doclayout.changes 2024-10-28 15:20:19.675470117 +0100
@@ -1,0 +2,35 @@
+Mon Sep 9 05:57:29 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update doclayout to version 0.5.
+ ## 0.5
+
+ * Extract existing HasChars definition into a module
+ Text.DocLayout.HasChars (Evan Silberman).
+
+ * Add a `build` method to the signature of HasChars [API change]
+ (Evan Silberman). This has a default definition, and is only needed with
+ the ANSI renderer, so existing users should not need to add anything to
+ their HasChars instances.
+
+ * Introduce support for ANSI-styled output (Evan Silberman) [API change].
+ `renderPlain` and `renderANSI` are now exported; the old `render`
+ is a synonym of `renderPlain`. In addition, various functions are
+ exported to add ANSI formatting (including bold, italics,
+ underline, strikeout, links, and colors) to a Doc. The Attributed
+ type is also now exported.
+
+ * Change type of Block constructor, replacing `[a]` with `[Attributed a]`,
+ which carries a Font along with an inner string type [API change]
+ (Evan Silberman).
+
+ * Introduce FlatDocs and use them for rendering (Evan Silberman).
+ This is an internal concept, not part of the public API.
+ FlatDoc is an "intermediate representation" for the Doc "interpreter".
+ The general design is that any Doc can be turned into a list of FlatDocs
+ that carry equivalent information. The main point of doing this
+ is to replace the nested Styled and Linked Docs, which form a more
+ complicated tree structure than previously existed in DocLayout.
+
+ * Deprecate `unfoldD`.
+
+-------------------------------------------------------------------
Old:
----
doclayout-0.4.0.1.tar.gz
New:
----
doclayout-0.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-doclayout.spec ++++++
--- /var/tmp/diff_new_pack.lriC5Y/_old 2024-10-28 15:20:20.631509931 +0100
+++ /var/tmp/diff_new_pack.lriC5Y/_new 2024-10-28 15:20:20.635510098 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-doclayout
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.4.0.1
+Version: 0.5
Release: 0
Summary: A prettyprinting library for laying out text documents
License: BSD-3-Clause
@@ -105,9 +105,9 @@
%license LICENSE
%dir %{_datadir}/%{pkg_name}-%{version}
%{_datadir}/%{pkg_name}-%{version}/README.md
-%{_datadir}/%{pkg_name}-%{version}/changelog.md
%files devel -f %{name}-devel.files
+%doc changelog.md
%files -n ghc-%{pkg_name}-doc -f ghc-%{pkg_name}-doc.files
%license LICENSE
++++++ doclayout-0.4.0.1.tar.gz -> doclayout-0.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doclayout-0.4.0.1/changelog.md new/doclayout-0.5/changelog.md
--- old/doclayout-0.4.0.1/changelog.md 2001-09-09 03:46:40.000000000 +0200
+++ new/doclayout-0.5/changelog.md 2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,36 @@
# doclayout
+## 0.5
+
+ * Extract existing HasChars definition into a module
+ Text.DocLayout.HasChars (Evan Silberman).
+
+ * Add a `build` method to the signature of HasChars [API change]
+ (Evan Silberman). This has a default definition, and is only needed with
+ the ANSI renderer, so existing users should not need to add anything to
+ their HasChars instances.
+
+ * Introduce support for ANSI-styled output (Evan Silberman) [API change].
+ `renderPlain` and `renderANSI` are now exported; the old `render`
+ is a synonym of `renderPlain`. In addition, various functions are
+ exported to add ANSI formatting (including bold, italics,
+ underline, strikeout, links, and colors) to a Doc. The Attributed
+ type is also now exported.
+
+ * Change type of Block constructor, replacing `[a]` with `[Attributed a]`,
+ which carries a Font along with an inner string type [API change]
+ (Evan Silberman).
+
+ * Introduce FlatDocs and use them for rendering (Evan Silberman).
+ This is an internal concept, not part of the public API.
+ FlatDoc is an "intermediate representation" for the Doc "interpreter".
+ The general design is that any Doc can be turned into a list of FlatDocs
+ that carry equivalent information. The main point of doing this
+ is to replace the nested Styled and Linked Docs, which form a more
+ complicated tree structure than previously existed in DocLayout.
+
+ * Deprecate `unfoldD`.
+
## 0.4.0.1
* Add clause for Empty to renderList (#22).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doclayout-0.4.0.1/doclayout.cabal new/doclayout-0.5/doclayout.cabal
--- old/doclayout-0.4.0.1/doclayout.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/doclayout-0.5/doclayout.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,5 @@
name: doclayout
-version: 0.4.0.1
+version: 0.5
synopsis: A prettyprinting library for laying out text documents.
description: doclayout is a prettyprinting library for laying out
text documents, with several features not present
@@ -10,7 +10,7 @@
license-file: LICENSE
author: John MacFarlane
maintainer: jgm(a)berkeley.edu
-copyright: 2016-19 John MacFarlane
+copyright: 2016-24 John MacFarlane
category: Text
build-type: Simple
extra-source-files: udhr/txt/*.txt,
@@ -18,12 +18,15 @@
udhr/languages.txt,
src/Text/unicodeWidth.inc
data-files: README.md
- changelog.md
+extra-source-files: changelog.md
cabal-version: >=1.10
library
hs-source-dirs: src
exposed-modules: Text.DocLayout
+ other-modules: Text.DocLayout.HasChars,
+ Text.DocLayout.ANSIFont,
+ Text.DocLayout.Attributed
build-depends: base >= 4.12 && < 5,
text,
containers,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doclayout-0.4.0.1/src/Text/DocLayout/ANSIFont.hs new/doclayout-0.5/src/Text/DocLayout/ANSIFont.hs
--- old/doclayout-0.4.0.1/src/Text/DocLayout/ANSIFont.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/doclayout-0.5/src/Text/DocLayout/ANSIFont.hs 2001-09-09 03:46:40.000000000 +0200
@@ -0,0 +1,107 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+module Text.DocLayout.ANSIFont
+ ( Font(..)
+ , baseFont
+ , StyleReq(..)
+ , Weight(..)
+ , Shape(..)
+ , Color8(..)
+ , Underline(..)
+ , Strikeout(..)
+ , Foreground(..)
+ , Background(..)
+ , (~>)
+ , renderFont
+ , renderOSC8
+ ) where
+
+import Data.Data (Data)
+import Data.String
+import Data.Text (Text)
+
+data Font = Font
+ { ftWeight :: Weight,
+ ftShape :: Shape,
+ ftUnderline :: Underline,
+ ftStrikeout :: Strikeout,
+ ftForeground :: Foreground,
+ ftBackground :: Background,
+ ftLink :: Maybe Text
+ }
+ deriving (Show, Eq, Read, Data, Ord)
+
+baseFont :: Font
+baseFont = Font Normal Roman ULNone Unstruck FGDefault BGDefault Nothing
+
+data Weight = Normal | Bold deriving (Show, Eq, Read, Data, Ord)
+data Shape = Roman | Italic deriving (Show, Eq, Read, Data, Ord)
+data Color8 = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White deriving (Show, Eq, Enum, Read, Data, Ord)
+data Underline = ULNone | ULSingle | ULDouble | ULCurly deriving (Show, Eq, Read, Data, Ord)
+data Strikeout = Unstruck | Struck deriving (Show, Eq, Read, Data, Ord)
+data Foreground = FGDefault | FG Color8 deriving (Show, Eq, Read, Data, Ord)
+data Background = BGDefault | BG Color8 deriving (Show, Eq, Read, Data, Ord)
+
+data StyleReq
+ = RWeight Weight
+ | RShape Shape
+ | RForeground Foreground
+ | RBackground Background
+ | RUnderline Underline
+ | RStrikeout Strikeout
+ deriving (Show, Eq, Read, Data, Ord)
+
+(~>) :: Font -> StyleReq -> Font
+(~>) f (RWeight w) = f{ftWeight = w}
+(~>) f (RShape s) = f{ftShape = s}
+(~>) f (RForeground c) = f{ftForeground = c}
+(~>) f (RBackground c) = f{ftBackground = c}
+(~>) f (RUnderline u) = f{ftUnderline = u}
+(~>) f (RStrikeout u) = f{ftStrikeout = u}
+
+rawSGR :: (Semigroup a, IsString a) => a -> a
+rawSGR n = "\ESC[" <> n <> "m"
+
+class SGR b where
+ renderSGR :: (Semigroup a, IsString a) => b -> a
+
+instance SGR Weight where
+ renderSGR Normal = rawSGR "22"
+ renderSGR Bold = rawSGR "1"
+
+instance SGR Shape where
+ renderSGR Roman = rawSGR "23"
+ renderSGR Italic = rawSGR "3"
+
+instance SGR Foreground where
+ renderSGR FGDefault = rawSGR "39"
+ renderSGR (FG a) = (rawSGR . fromString . show . (+) 30 . fromEnum) a
+
+instance SGR Background where
+ renderSGR BGDefault = rawSGR "49"
+ renderSGR (BG a) = (rawSGR . fromString . show . (+) 40 . fromEnum) a
+
+instance SGR Underline where
+ renderSGR ULNone = rawSGR "24"
+ renderSGR ULSingle = rawSGR "4"
+ renderSGR ULDouble = rawSGR "21"
+ renderSGR ULCurly = rawSGR "4:3"
+
+instance SGR Strikeout where
+ renderSGR Unstruck = rawSGR "29"
+ renderSGR Struck = rawSGR "9"
+
+renderFont :: (Semigroup a, IsString a) => Font -> a
+renderFont f
+ | f == baseFont = rawSGR "0"
+ | otherwise =
+ renderSGR (ftWeight f)
+ <> renderSGR (ftShape f)
+ <> renderSGR (ftForeground f)
+ <> renderSGR (ftBackground f)
+ <> renderSGR (ftUnderline f)
+ <> renderSGR (ftStrikeout f)
+
+renderOSC8 :: (Semigroup a, IsString a) => Maybe a -> a
+renderOSC8 Nothing = "\ESC]8;;\ESC\\"
+renderOSC8 (Just t) = "\ESC]8;;" <> t <> "\ESC\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doclayout-0.4.0.1/src/Text/DocLayout/Attributed.hs new/doclayout-0.5/src/Text/DocLayout/Attributed.hs
--- old/doclayout-0.4.0.1/src/Text/DocLayout/Attributed.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/doclayout-0.5/src/Text/DocLayout/Attributed.hs 2001-09-09 03:46:40.000000000 +0200
@@ -0,0 +1,50 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DeriveTraversable #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE FlexibleInstances #-}
+module Text.DocLayout.Attributed (Attributed(..), Attr(..), Link, fromList, singleton)
+ where
+
+import Data.String
+import Text.DocLayout.ANSIFont (Font, baseFont)
+import Data.Data (Data, Typeable)
+import GHC.Generics
+import Data.Sequence ((><))
+import qualified Data.Sequence as S
+import Data.Text (Text)
+
+type Link = Maybe Text
+
+-- | Font attributes.
+data Attr a = Attr Link Font a
+ deriving (Show, Read, Eq, Ord, Functor, Foldable, Traversable,
+ Data, Typeable, Generic)
+
+instance Semigroup a => Semigroup (Attr a) where
+ (<>) (Attr l f x) (Attr _ _ y) = Attr l f $ x <> y -- This is arbitrary
+
+instance (IsString a, Monoid a) => Monoid (Attr a) where
+ mempty = Attr Nothing baseFont (fromString "")
+
+-- | A sequence of strings with font attributes.
+newtype Attributed a = Attributed (S.Seq (Attr a))
+ deriving (Show, Read, Eq, Ord, Functor, Foldable, Traversable,
+ Data, Typeable, Generic)
+
+fromList :: [Attr a] -> Attributed a
+fromList = Attributed . S.fromList
+
+singleton :: Attr a -> Attributed a
+singleton = Attributed . S.singleton
+
+instance IsString a => IsString (Attr a) where
+ fromString x = Attr Nothing baseFont (fromString x)
+
+instance IsString a => IsString (Attributed a) where
+ fromString x = Attributed $ S.singleton $ Attr Nothing baseFont (fromString x)
+
+instance Semigroup a => Semigroup (Attributed a) where
+ (<>) (Attributed a) (Attributed b) = Attributed $ a >< b
+
+instance Monoid a => Monoid (Attributed a) where
+ mempty = Attributed S.empty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doclayout-0.4.0.1/src/Text/DocLayout/HasChars.hs new/doclayout-0.5/src/Text/DocLayout/HasChars.hs
--- old/doclayout-0.4.0.1/src/Text/DocLayout/HasChars.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/doclayout-0.5/src/Text/DocLayout/HasChars.hs 2001-09-09 03:46:40.000000000 +0200
@@ -0,0 +1,89 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+module Text.DocLayout.HasChars (HasChars(..)) where
+import Prelude
+import Data.String
+import qualified Data.Text as T
+import qualified Data.Text.Lazy as TL
+import Data.Text (Text)
+import qualified Data.Text.Lazy.Builder as B
+import Data.List (foldl', uncons)
+import Data.Maybe (fromMaybe)
+import Text.DocLayout.Attributed
+import Data.Sequence (Seq(..), (|>))
+import qualified Data.Sequence as S
+
+-- | Class abstracting over various string types that
+-- can fold over characters. Minimal definition is 'foldrChar'
+-- and 'foldlChar', but defining the other methods can give better
+-- performance.
+class (IsString a, Semigroup a, Monoid a, Show a) => HasChars a where
+ foldrChar :: (Char -> b -> b) -> b -> a -> b
+ foldlChar :: (b -> Char -> b) -> b -> a -> b
+ replicateChar :: Int -> Char -> a
+ replicateChar n c = fromString (replicate n c)
+ isNull :: a -> Bool
+ isNull = foldrChar (\_ _ -> False) True
+ splitLines :: a -> [a]
+ splitLines s = (fromString firstline : otherlines)
+ where
+ (firstline, otherlines) = foldrChar go ([],[]) s
+ go '\n' (cur,lns) = ([], fromString cur : lns)
+ go c (cur,lns) = (c:cur, lns)
+ build :: a -> B.Builder
+ build = foldrChar (mappend . B.singleton) (B.fromString "")
+
+instance HasChars Text where
+ foldrChar = T.foldr
+ foldlChar = T.foldl'
+ splitLines = T.splitOn "\n"
+ replicateChar n c = T.replicate n (T.singleton c)
+ isNull = T.null
+ build = B.fromText
+
+instance HasChars String where
+ foldrChar = foldr
+ foldlChar = foldl'
+ splitLines = lines . (++"\n")
+ replicateChar = replicate
+ isNull = null
+ build = B.fromString
+
+instance HasChars TL.Text where
+ foldrChar = TL.foldr
+ foldlChar = TL.foldl'
+ splitLines = TL.splitOn "\n"
+ replicateChar n c = TL.replicate (fromIntegral n) (TL.singleton c)
+ isNull = TL.null
+ build = B.fromLazyText
+
+instance HasChars a => HasChars (Attr a) where
+ foldrChar f a (Attr _ _ x) = foldrChar f a x
+ foldlChar f a (Attr _ _ x) = foldlChar f a x
+ splitLines (Attr l f x) = Attr l f <$> splitLines x
+ build (Attr _ _ x) = build x
+
+instance (HasChars a) => HasChars (Attributed a) where
+ foldrChar _ acc (Attributed S.Empty) = acc
+ foldrChar f acc (Attributed (xs :|> (Attr _ _ x))) =
+ let l = foldrChar f acc x
+ innerFold e a = foldrChar f a e
+ in foldr innerFold l xs
+ foldlChar _ acc (Attributed S.Empty) = acc
+ foldlChar f acc (Attributed ((Attr _ _ x) :<| xs)) =
+ let l = foldlChar f acc x
+ innerFold e a = foldlChar f a e
+ in foldr innerFold l xs
+ splitLines (Attributed s) = fmap Attributed $ reverse $ go ([], S.empty) s
+ where
+ go (lns, cur) S.Empty = cur : lns
+ go (lns, cur) (x :<| xs) =
+ case splitLines x of
+ [] -> go (cur : lns, S.empty) xs
+ [k1] -> go (lns, cur |> k1) xs
+ k1 : ks ->
+ let (end, most) = fromMaybe (S.empty, []) $ uncons $ reverse $ S.singleton <$> ks
+ in go (most ++ (cur |> k1) : lns, end) xs
+ build = foldMap build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doclayout-0.4.0.1/src/Text/DocLayout.hs new/doclayout-0.5/src/Text/DocLayout.hs
--- old/doclayout-0.4.0.1/src/Text/DocLayout.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/doclayout-0.5/src/Text/DocLayout.hs 2001-09-09 03:46:40.000000000 +0200
@@ -27,6 +27,8 @@
module Text.DocLayout (
-- * Rendering
render
+ , renderPlain
+ , renderANSI
-- * Doc constructors
, cr
, blankline
@@ -54,6 +56,22 @@
, parens
, quotes
, doubleQuotes
+ , bold
+ , italic
+ , underlined
+ , strikeout
+ , fg
+ , bg
+ , Color
+ , black
+ , red
+ , green
+ , yellow
+ , blue
+ , magenta
+ , cyan
+ , white
+ , link
, empty
-- * Functions for concatenating documents
, (<+>)
@@ -84,6 +102,7 @@
-- * Types
, Doc(..)
, HasChars(..)
+ , Attributed
)
where
@@ -96,14 +115,21 @@
import Data.Bifunctor (second)
import Data.Char (isSpace, ord)
import Data.List (foldl', intersperse)
+import Data.List.NonEmpty (NonEmpty((:|)))
+import qualified Data.List.NonEmpty as N
import qualified Data.IntMap.Strict as IM
import qualified Data.Map.Strict as M
import qualified Data.Map.Internal as MInt
import Data.Data (Data, Typeable)
+import Data.Foldable (toList)
import Data.String
import qualified Data.Text as T
-import qualified Data.Text.Lazy as TL
import Data.Text (Text)
+import qualified Data.Text.Lazy as TL
+import qualified Data.Text.Lazy.Builder as B
+import Text.DocLayout.HasChars
+import Text.DocLayout.ANSIFont
+import Text.DocLayout.Attributed
#if MIN_VERSION_base(4,11,0)
#else
import Data.Semigroup
@@ -111,51 +137,13 @@
import Text.Emoji (baseEmojis)
--- | Class abstracting over various string types that
--- can fold over characters. Minimal definition is 'foldrChar'
--- and 'foldlChar', but defining the other methods can give better
--- performance.
-class (IsString a, Semigroup a, Monoid a, Show a) => HasChars a where
- foldrChar :: (Char -> b -> b) -> b -> a -> b
- foldlChar :: (b -> Char -> b) -> b -> a -> b
- replicateChar :: Int -> Char -> a
- replicateChar n c = fromString (replicate n c)
- isNull :: a -> Bool
- isNull = foldrChar (\_ _ -> False) True
- splitLines :: a -> [a]
- splitLines s = (fromString firstline : otherlines)
- where
- (firstline, otherlines) = foldrChar go ([],[]) s
- go '\n' (cur,lns) = ([], fromString cur : lns)
- go c (cur,lns) = (c:cur, lns)
-
-instance HasChars Text where
- foldrChar = T.foldr
- foldlChar = T.foldl'
- splitLines = T.splitOn "\n"
- replicateChar n c = T.replicate n (T.singleton c)
- isNull = T.null
-
-instance HasChars String where
- foldrChar = foldr
- foldlChar = foldl'
- splitLines = lines . (++"\n")
- replicateChar = replicate
- isNull = null
-
-instance HasChars TL.Text where
- foldrChar = TL.foldr
- foldlChar = TL.foldl'
- splitLines = TL.splitOn "\n"
- replicateChar n c = TL.replicate (fromIntegral n) (TL.singleton c)
- isNull = TL.null
-
-- | Document, including structure relevant for layout.
data Doc a = Text Int a -- ^ Text with specified width.
- | Block Int [a] -- ^ A block with a width and lines.
+ | Block Int [Attributed a] -- ^ A block with a width and lines.
| VFill Int a -- ^ A vertically expandable block;
-- when concatenated with a block, expands to height
-- of block, with each line containing the specified text.
+ | CookedText Int (Attributed a) -- ^ Text which doesn't need further cooking
| Prefixed Text (Doc a) -- ^ Doc with each line prefixed with text.
-- Note that trailing blanks are omitted from the prefix
-- when the line after it is empty.
@@ -167,10 +155,13 @@
| NewLine -- ^ newline.
| BlankLines Int -- ^ Ensure a number of blank lines.
| Concat (Doc a) (Doc a) -- ^ Two documents concatenated.
+ | Styled StyleReq (Doc a)
+ | Linked Text (Doc a) -- ^ A hyperlink
| Empty
deriving (Show, Read, Eq, Ord, Functor, Foldable, Traversable,
Data, Typeable, Generic)
+
instance Semigroup (Doc a) where
x <> Empty = x
Empty <> x = x
@@ -183,6 +174,7 @@
instance HasChars a => IsString (Doc a) where
fromString = text
+{-# DEPRECATED unfoldD "unfoldD will be removed from the API." #-}
-- | Unfold a 'Doc' into a flat list.
unfoldD :: Doc a -> [Doc a]
unfoldD Empty = []
@@ -268,26 +260,89 @@
z -> x <> z
_ -> d
+-- Elements of a document with Styled and Linked subtrees flattened out into
+-- a linear structure with open and close tags. An implementation detail of
+-- the rendering process.
+data FlatDoc a = FText Int a
+ | FBlock Int [Attributed a]
+ | FVFill Int a
+ | FCookedText Int (Attributed a)
+ | FPrefixed Text (NonEmpty (FlatDoc a))
+ | FBeforeNonBlank (NonEmpty (FlatDoc a))
+ | FFlush (NonEmpty (FlatDoc a))
+ | FBreakingSpace
+ | FAfterBreak (NonEmpty (FlatDoc a))
+ | FCarriageReturn
+ | FNewLine
+ | FBlankLines Int
+ | FStyleOpen StyleReq
+ | FStyleClose
+ | FLinkOpen Text
+ | FLinkClose
+ deriving (Show, Read, Eq, Ord, Functor, Foldable, Traversable,
+ Data, Typeable, Generic)
+
+-- Given a Doc, return an equivalent list of FlatDocs, to be processed by
+-- renderList. Worth noting:
+-- * Treelike docs (Styled, and Linked) are turned into lists beginning
+-- with an "open" tag and ending with a "close" tag, with the flattened
+-- inner content in between.
+-- * Other Docs with inner content are eliminated if the inner content is
+-- empty, otherwise the inner content is itself flattened and made into
+-- a NonEmpty.
+flatten :: HasChars a => Doc a -> [FlatDoc a]
+flatten (Text n a) = [FText n a]
+flatten (Block n a) = [FBlock n a]
+flatten (VFill n a) = [FVFill n a]
+flatten (CookedText n a) = [FCookedText n a]
+flatten (Prefixed p d) | null f = []
+ | otherwise = [FPrefixed p (N.fromList f)]
+ where f = (normalize . flatten) d
+flatten (BeforeNonBlank d) | null f = []
+ | otherwise = [FBeforeNonBlank (N.fromList f)]
+ where f = flatten d
+flatten (Flush d) | null f = []
+ | otherwise = [FFlush (N.fromList f)]
+ where f = flatten d
+flatten BreakingSpace = [FBreakingSpace]
+flatten CarriageReturn = [FCarriageReturn]
+flatten (AfterBreak t) | null f = []
+ | otherwise = [FAfterBreak (N.fromList f)]
+ where f = flatten $ fromString $ T.unpack t
+flatten NewLine = [FNewLine]
+flatten (BlankLines n) = [FBlankLines n]
+flatten Empty = []
+flatten (Concat x y) = flatten x <> flatten y
+flatten (Linked l x) = FLinkOpen l : flatten x <> [FLinkClose]
+flatten (Styled f x) = FStyleOpen f : flatten x <> [FStyleClose]
+
type DocState a = State (RenderState a) ()
data RenderState a = RenderState{
- output :: [a] -- ^ In reverse order
+ output :: [Attr a] -- ^ In reverse order
, prefix :: Text
, usePrefix :: Bool
, lineLength :: Maybe Int -- ^ 'Nothing' means no wrapping
, column :: Int
, newlines :: Int -- ^ Number of preceding newlines
+ , fontStack :: [Font]
+ , linkTarget :: Maybe Text -- ^ Current link target
}
+peekFont :: RenderState a -> Font
+peekFont st = case fontStack st of
+ [] -> baseFont
+ x:_ -> x
+
newline :: HasChars a => DocState a
newline = do
st' <- get
let rawpref = prefix st'
when (column st' == 0 && usePrefix st' && not (T.null rawpref)) $ do
let pref = fromString $ T.unpack $ T.dropWhileEnd isSpace rawpref
- modify $ \st -> st{ output = pref : output st
+ modify $ \st -> st{ output = Attr Nothing baseFont pref : output st
, column = column st + realLength pref }
- modify $ \st -> st { output = "\n" : output st
+ modify $ \st -> st { output = Attr Nothing baseFont "\n" : output st
, column = 0
, newlines = newlines st + 1
}
@@ -295,19 +350,48 @@
outp :: HasChars a => Int -> a -> DocState a
outp off s = do -- offset >= 0 (0 might be combining char)
st' <- get
- let pref = fromString $ T.unpack $ prefix st'
- when (column st' == 0 && usePrefix st' && not (isNull pref)) $
- modify $ \st -> st{ output = pref : output st
+ let pref = if usePrefix st' then fromString $ T.unpack $ prefix st' else mempty
+ let font = peekFont st'
+ when (column st' == 0 && not (isNull pref && font == baseFont)) $
+ modify $ \st -> st{ output = Attr Nothing baseFont pref : output st
, column = column st + realLength pref }
- modify $ \st -> st{ output = s : output st
+ modify $ \st -> st{ output = Attr (linkTarget st) font s : output st
, column = column st + off
, newlines = 0 }
--- | Render a 'Doc'. @render (Just n)@ will use
--- a line length of @n@ to reflow text on breakable spaces.
--- @render Nothing@ will not reflow text.
+-- | Synonym for 'renderPlain'.
render :: HasChars a => Maybe Int -> Doc a -> a
-render linelen doc = mconcat . reverse . output $
+render = renderPlain
+
+-- | Render a 'Doc' with ANSI escapes. @renderANSI (Just n)@ will use
+-- a line length of @n@ to reflow text on breakable spaces.
+-- @renderANSI Nothing@ will not reflow text.
+renderANSI :: HasChars a => Maybe Int -> Doc a -> TL.Text
+renderANSI n d = B.toLazyText $ go $ prerender n d where
+ go s = (\(_,_,o) -> o) (go' s) <> B.fromText (renderFont baseFont) <> B.fromText (renderOSC8 Nothing)
+ go' (Attributed s) = foldl attrRender (Nothing, baseFont, B.fromText "") s
+
+-- | Render a 'Doc' without using ANSI escapes. @renderPlain (Just n)@ will use
+-- a line length of @n@ to reflow text on breakable spaces.
+-- @renderPlain Nothing@ will not reflow text.
+renderPlain :: HasChars a => Maybe Int -> Doc a -> a
+renderPlain n d = go $ prerender n d where
+ go (Attributed s) = foldMap attrStrip s
+
+attrStrip :: HasChars a => Attr a -> a
+attrStrip (Attr _ _ y) | isNull y = ""
+ | otherwise = y
+
+attrRender :: HasChars a => (Link, Font, B.Builder) -> Attr a -> (Link, Font, B.Builder)
+attrRender (l, f, acc) (Attr m g y)
+ | isNull y = (l, f, acc)
+ | otherwise = (m, g, acc <> B.fromText newFont <> B.fromText newLink <> build y)
+ where
+ newLink = if l == m then mempty else renderOSC8 m
+ newFont = if f == g then mempty else renderFont g
+
+prerender :: HasChars a => Maybe Int -> Doc a -> Attributed a
+prerender linelen doc = fromList . reverse . output $
execState (renderDoc doc) startingState
where startingState = RenderState{
output = mempty
@@ -315,38 +399,38 @@
, usePrefix = True
, lineLength = linelen
, column = 0
- , newlines = 2 }
+ , newlines = 2
+ , fontStack = []
+ , linkTarget = Nothing }
renderDoc :: HasChars a => Doc a -> DocState a
-renderDoc = renderList . normalize . unfoldD
+renderDoc = renderList . normalize . flatten
-normalize :: HasChars a => [Doc a] -> [Doc a]
+normalize :: HasChars a => [FlatDoc a] -> [FlatDoc a]
normalize [] = []
-normalize (Concat{} : xs) = normalize xs -- should not happen after unfoldD
-normalize (Empty : xs) = normalize xs -- should not happen after unfoldD
-normalize [NewLine] = normalize [CarriageReturn]
-normalize [BlankLines _] = normalize [CarriageReturn]
-normalize [BreakingSpace] = []
-normalize (BlankLines m : BlankLines n : xs) =
- normalize (BlankLines (max m n) : xs)
-normalize (BlankLines num : BreakingSpace : xs) =
- normalize (BlankLines num : xs)
-normalize (BlankLines m : CarriageReturn : xs) = normalize (BlankLines m : xs)
-normalize (BlankLines m : NewLine : xs) = normalize (BlankLines m : xs)
-normalize (NewLine : BlankLines m : xs) = normalize (BlankLines m : xs)
-normalize (NewLine : BreakingSpace : xs) = normalize (NewLine : xs)
-normalize (NewLine : CarriageReturn : xs) = normalize (NewLine : xs)
-normalize (CarriageReturn : CarriageReturn : xs) =
- normalize (CarriageReturn : xs)
-normalize (CarriageReturn : BlankLines m : xs) = normalize (BlankLines m : xs)
-normalize (CarriageReturn : BreakingSpace : xs) =
- normalize (CarriageReturn : xs)
-normalize (BreakingSpace : CarriageReturn : xs) =
- normalize (CarriageReturn:xs)
-normalize (BreakingSpace : NewLine : xs) = normalize (NewLine:xs)
-normalize (BreakingSpace : BlankLines n : xs) = normalize (BlankLines n:xs)
-normalize (BreakingSpace : BreakingSpace : xs) = normalize (BreakingSpace:xs)
+normalize [FNewLine] = normalize [FCarriageReturn]
+normalize [FBlankLines _] = normalize [FCarriageReturn]
+normalize [FBreakingSpace] = []
+normalize (FBlankLines m : FBlankLines n : xs) =
+ normalize (FBlankLines (max m n) : xs)
+normalize (FBlankLines num : FBreakingSpace : xs) =
+ normalize (FBlankLines num : xs)
+normalize (FBlankLines m : FCarriageReturn : xs) = normalize (FBlankLines m : xs)
+normalize (FBlankLines m : FNewLine : xs) = normalize (FBlankLines m : xs)
+normalize (FNewLine : FBlankLines m : xs) = normalize (FBlankLines m : xs)
+normalize (FNewLine : FBreakingSpace : xs) = normalize (FNewLine : xs)
+normalize (FNewLine : FCarriageReturn : xs) = normalize (FNewLine : xs)
+normalize (FCarriageReturn : FCarriageReturn : xs) =
+ normalize (FCarriageReturn : xs)
+normalize (FCarriageReturn : FBlankLines m : xs) = normalize (FBlankLines m : xs)
+normalize (FCarriageReturn : FBreakingSpace : xs) =
+ normalize (FCarriageReturn : xs)
+normalize (FBreakingSpace : FCarriageReturn : xs) =
+ normalize (FCarriageReturn:xs)
+normalize (FBreakingSpace : FNewLine : xs) = normalize (FNewLine:xs)
+normalize (FBreakingSpace : FBlankLines n : xs) = normalize (FBlankLines n:xs)
+normalize (FBreakingSpace : FBreakingSpace : xs) = normalize (FBreakingSpace:xs)
normalize (x:xs) = x : normalize xs
mergeBlocks :: HasChars a => Int -> (Int, [a]) -> (Int, [a]) -> (Int, [a])
@@ -364,45 +448,93 @@
else take h lns2
pad n s = s <> replicateChar (n - realLength s) ' '
-renderList :: HasChars a => [Doc a] -> DocState a
+renderList :: HasChars a => [FlatDoc a] -> DocState a
renderList [] = return ()
-renderList (Empty : xs) = renderList xs
-
-renderList (Text off s : xs) = do
+renderList (FText off s : xs) = do
outp off s
renderList xs
-renderList (Prefixed pref d : xs) = do
+renderList (FCookedText off s : xs) = do
+ st' <- get
+ let pref = if usePrefix st' then fromString $ T.unpack $ prefix st' else mempty
+ let elems (Attributed x) = reverse $ toList x
+ when (column st' == 0 && not (isNull pref)) $
+ modify $ \st -> st{ output = Attr Nothing baseFont pref : output st
+ , column = column st + realLength pref }
+ modify $ \st -> st{ output = elems s ++ output st
+ , column = column st + off
+ , newlines = 0 }
+ renderList xs
+
+-- FStyleOpen and FStyleClose are balanced by construction when we create
+-- them in `flatten`, so we can just pop the stack when we encounter
+-- FStyleClose
+renderList (FStyleOpen style : xs) = do
+ st <- get
+ let prevFont = peekFont st
+ let nextFont = prevFont ~> style
+ modify $ \s -> s{fontStack = nextFont : fontStack s}
+ renderList xs
+
+renderList (FStyleClose : xs) = do
+ modify $ \s -> s{fontStack = drop 1 $ fontStack s}
+ renderList xs
+
+-- Nested links are nonsensical, we only handle the outermost and
+-- silently ignore any attempts to have a link inside a link
+
+-- Nested links are nonsensical, we only handle the outermost and
+-- silently ignore any attempts to have a link inside a link
+renderList (FLinkOpen target : xs) = do
+ st <- get
+ case linkTarget st of
+ Nothing -> do
+ modify $ \s -> s{linkTarget = Just target}
+ renderList xs
+ _ -> do
+ let (next, rest) = break isLinkClose xs
+ renderList (next <> drop 1 rest)
+ where
+ isLinkClose FLinkClose = True
+ isLinkClose _ = False
+
+renderList (FLinkClose : xs) = do
+ modify $ \s -> s{linkTarget = Nothing}
+ renderList xs
+
+renderList (FPrefixed pref d : xs) = do
st <- get
let oldPref = prefix st
put st{ prefix = prefix st <> pref }
- renderDoc d
+ renderList $ normalize $ N.toList d
modify $ \s -> s{ prefix = oldPref }
-- renderDoc CarriageReturn
renderList xs
-renderList (Flush d : xs) = do
+renderList (FFlush d : xs) = do
st <- get
let oldUsePrefix = usePrefix st
put st{ usePrefix = False }
- renderDoc d
+ renderList $ normalize $ N.toList d
modify $ \s -> s{ usePrefix = oldUsePrefix }
renderList xs
-renderList (BeforeNonBlank d : xs) =
- case xs of
+renderList (FBeforeNonBlank d : xs) = do
+ let next = dropWhile (not . isPrintable) xs
+ case next of
(x:_) | startsBlank x -> renderList xs
- | otherwise -> renderDoc d >> renderList xs
+ | otherwise -> renderList (normalize $ N.toList d) >> renderList xs
[] -> renderList xs
-renderList (BlankLines num : xs) = do
+
+renderList (FBlankLines num : xs) = do
st <- get
case output st of
_ | newlines st > num -> return ()
| otherwise -> replicateM_ (1 + num - newlines st) newline
renderList xs
-renderList (CarriageReturn : xs) = do
+renderList (FCarriageReturn : xs) = do
st <- get
if newlines st > 0
then renderList xs
@@ -410,12 +542,12 @@
newline
renderList xs
-renderList (NewLine : xs) = do
+renderList (FNewLine : xs) = do
newline
renderList xs
-renderList (BreakingSpace : xs) = do
- let isBreakingSpace BreakingSpace = True
+renderList (FBreakingSpace : xs) = do
+ let isBreakingSpace FBreakingSpace = True
isBreakingSpace _ = False
let xs' = dropWhile isBreakingSpace xs
let next = takeWhile (not . isBreakable) xs'
@@ -426,41 +558,39 @@
_ -> when (column st > 0) $ outp 1 " "
renderList xs'
-renderList (AfterBreak t : xs) = do
+renderList (FAfterBreak t : xs) = do
st <- get
if newlines st > 0
- then renderList (fromString (T.unpack t) : xs)
+ then renderList (toList t <> xs)
else renderList xs
-renderList (b : xs) | isBlock b = do
+-- FBlock and FVFill are all that's left
+renderList (b : xs) = do
+ st <- get
+ let font = peekFont st
let (bs, rest) = span isBlock xs
-- ensure we have right padding unless end of line
- let heightOf (Block _ ls) = length ls
+ let heightOf (FBlock _ ls) = length ls
heightOf _ = 1
let maxheight = maximum $ map heightOf (b:bs)
- let toBlockSpec (Block w ls) = (w, ls)
- toBlockSpec (VFill w t) = (w, take maxheight $ repeat t)
+ let toBlockSpec (FBlock w ls) = (w, ls)
+ toBlockSpec (FVFill w t) = (w, map (singleton . (Attr (linkTarget st) font)) (take maxheight $ repeat t))
toBlockSpec _ = (0, [])
let (_, lns') = foldl (mergeBlocks maxheight) (toBlockSpec b)
(map toBlockSpec bs)
- st <- get
let oldPref = prefix st
case column st - realLength oldPref of
n | n > 0 -> modify $ \s -> s{ prefix = oldPref <> T.replicate n " " }
_ -> return ()
- renderList $ intersperse CarriageReturn (map literal lns')
+ renderList $ intersperse FCarriageReturn (mapMaybe cook lns')
modify $ \s -> s{ prefix = oldPref }
renderList rest
-renderList (x:_) = error $ "renderList encountered " ++ show x
-
-isBreakable :: HasChars a => Doc a -> Bool
-isBreakable BreakingSpace = True
-isBreakable CarriageReturn = True
-isBreakable NewLine = True
-isBreakable (BlankLines _) = True
-isBreakable (Concat Empty y) = isBreakable y
-isBreakable (Concat x _) = isBreakable x
+isBreakable :: HasChars a => FlatDoc a -> Bool
+isBreakable FBreakingSpace = True
+isBreakable FCarriageReturn = True
+isBreakable FNewLine = True
+isBreakable (FBlankLines _) = True
isBreakable _ = False
startsBlank' :: HasChars a => a -> Bool
@@ -469,33 +599,43 @@
go Nothing c = Just (isSpace c)
go (Just b) _ = Just b
-startsBlank :: HasChars a => Doc a -> Bool
-startsBlank (Text _ t) = startsBlank' t
-startsBlank (Block n ls) = n > 0 && all startsBlank' ls
-startsBlank (VFill n t) = n > 0 && startsBlank' t
-startsBlank (BeforeNonBlank x) = startsBlank x
-startsBlank (Prefixed _ x) = startsBlank x
-startsBlank (Flush x) = startsBlank x
-startsBlank BreakingSpace = True
-startsBlank (AfterBreak t) = startsBlank (Text 0 t)
-startsBlank CarriageReturn = True
-startsBlank NewLine = True
-startsBlank (BlankLines _) = True
-startsBlank (Concat Empty y) = startsBlank y
-startsBlank (Concat x _) = startsBlank x
-startsBlank Empty = True
-
-isBlock :: Doc a -> Bool
-isBlock Block{} = True
-isBlock VFill{} = True
+startsBlank :: HasChars a => FlatDoc a -> Bool
+startsBlank (FText _ t) = startsBlank' t
+startsBlank (FCookedText _ t) = startsBlank' t
+startsBlank (FBlock n ls) = n > 0 && all startsBlank' ls
+startsBlank (FVFill n t) = n > 0 && startsBlank' t
+startsBlank (FBeforeNonBlank (x :| _)) = startsBlank x
+startsBlank (FPrefixed _ (x :| _)) = startsBlank x
+startsBlank (FFlush (x :| _)) = startsBlank x
+startsBlank FBreakingSpace = True
+startsBlank (FAfterBreak (t :| _)) = startsBlank t
+startsBlank FCarriageReturn = True
+startsBlank FNewLine = True
+startsBlank (FBlankLines _) = True
+startsBlank (FStyleOpen _) = True
+startsBlank (FLinkOpen _) = True
+startsBlank FStyleClose = True
+startsBlank FLinkClose = True
+
+isPrintable :: FlatDoc a -> Bool
+isPrintable FLinkOpen{} = False
+isPrintable FLinkClose{} = False
+isPrintable FStyleOpen{} = False
+isPrintable FStyleClose{} = False
+isPrintable _ = True
+
+isBlock :: FlatDoc a -> Bool
+isBlock FBlock{} = True
+isBlock FVFill{} = True
isBlock _ = False
-offsetOf :: Doc a -> Int
-offsetOf (Text o _) = o
-offsetOf (Block w _) = w
-offsetOf (VFill w _) = w
-offsetOf BreakingSpace = 1
-offsetOf _ = 0
+offsetOf :: FlatDoc a -> Int
+offsetOf (FText o _) = o
+offsetOf (FBlock w _) = w
+offsetOf (FVFill w _) = w
+offsetOf (FCookedText w _) = w
+offsetOf FBreakingSpace = 1
+offsetOf _ = 0
-- | Create a 'Doc' from a stringlike value.
literal :: HasChars a => a -> Doc a
@@ -509,6 +649,10 @@
splitLines x
{-# NOINLINE literal #-}
+cook :: HasChars a => Attributed a -> Maybe (FlatDoc a)
+cook x | isNull x = Nothing
+ | otherwise = let !len = realLength x in Just (FCookedText len x)
+
-- | A literal string. (Like 'literal', but restricted to String.)
text :: HasChars a => String -> Doc a
text = literal . fromString
@@ -592,7 +736,10 @@
Text n _ -> (l, c + n)
Block n _ -> (l, c + n)
VFill n _ -> (l, c + n)
+ CookedText n _ -> (l, c + n)
Empty -> (l, c)
+ Styled _ d -> getOffset breakWhen (l, c) d
+ Linked _ d -> getOffset breakWhen (l, c) d
CarriageReturn -> (max l c, 0)
NewLine -> (max l c, 0)
BlankLines _ -> (max l c, 0)
@@ -646,12 +793,14 @@
height :: HasChars a => Doc a -> Int
height = length . splitLines . render Nothing
-block :: HasChars a => (a -> a) -> Int -> Doc a -> Doc a
+block :: HasChars a => (Attributed a -> Attributed a) -> Int -> Doc a -> Doc a
block filler width d
| width < 1 && not (isEmpty d) = block filler 1 d
| otherwise = Block width ls
where
- ls = map filler $ chop width $ render (Just width) d
+ preimage = prerender (Just width) d
+ reboxed = chop width preimage
+ ls = map filler reboxed
-- | An expandable border that, when placed next to a box,
-- expands to the height of the box. Strings cycle through the
@@ -707,6 +856,69 @@
doubleQuotes :: HasChars a => Doc a -> Doc a
doubleQuotes = inside (char '"') (char '"')
+styled :: HasChars a => StyleReq -> Doc a -> Doc a
+styled _ Empty = Empty
+styled s x = Styled s x
+
+-- | Puts a 'Doc' in boldface.
+bold :: HasChars a => Doc a -> Doc a
+bold = styled (RWeight Bold)
+
+-- | Puts a 'Doc' in italics.
+italic :: HasChars a => Doc a -> Doc a
+italic = styled (RShape Italic)
+
+-- | Underlines a 'Doc'.
+underlined :: HasChars a => Doc a -> Doc a
+underlined = styled (RUnderline ULSingle)
+
+-- | Puts a line through a 'Doc'.
+strikeout :: HasChars a => Doc a -> Doc a
+strikeout = styled (RStrikeout Struck)
+
+-- The Color type is here as an opaque alias to Color8 for the public interface
+-- and there's trivial smart constructors for the individual colors to
+-- hopefully allow for easier extension to supporting indexed and rgb colors in
+-- the future, without dramatically changing the public API.
+
+type Color = Color8
+
+-- | Set foreground color.
+fg :: HasChars a => Color -> Doc a -> Doc a
+fg = styled . RForeground . FG
+
+-- | Set background color.
+bg :: HasChars a => Color -> Doc a -> Doc a
+bg = styled . RBackground . BG
+
+blue :: Color
+blue = Blue
+
+black :: Color
+black = Black
+
+red :: Color
+red = Red
+
+green :: Color
+green = Green
+
+yellow :: Color
+yellow = Yellow
+
+magenta :: Color
+magenta = Magenta
+
+cyan :: Color
+cyan = Cyan
+
+white :: Color
+white = White
+
+-- | Make Doc a hyperlink.
+link :: HasChars a => Text -> Doc a -> Doc a
+link = Linked
+
-- | Returns width of a character in a monospace font: 0 for a combining
-- character, 1 for a regular character, 2 for an East Asian wide character.
-- Ambiguous characters are treated as width 1.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doclayout-0.4.0.1/test/test.hs new/doclayout-0.5/test/test.hs
--- old/doclayout-0.4.0.1/test/test.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/doclayout-0.5/test/test.hs 2001-09-09 03:46:40.000000000 +0200
@@ -287,6 +287,11 @@
(literal "a" <> cr <> literal "\nb" <> cr <> literal "c")
"a\n\nb\nc"
+ , renderTest "breaking within styled text"
+ (Just 5)
+ ("hi" <+> (fg blue ("mom" <+> "and" <+> "dad")))
+ "hi\nmom\nand\ndad"
+
, testCase "length of normal text" $
realLength ("This is going to be too long anyway" :: String) @?= 35
1
0
28 Oct '24
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-data-default-instances-old-locale for openSUSE:Factory checked in at 2024-10-28 15:18:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-data-default-instances-old-locale (Old)
and /work/SRC/openSUSE:Factory/.ghc-data-default-instances-old-locale.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-data-default-instances-old-locale"
Mon Oct 28 15:18:26 2024 rev:12 rq:1218548 version:0.0.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-data-default-instances-old-locale/ghc-data-default-instances-old-locale.changes 2023-04-04 21:19:46.428943055 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-data-default-instances-old-locale.new.2020/ghc-data-default-instances-old-locale.changes 2024-10-28 15:20:16.075320188 +0100
@@ -1,0 +2,6 @@
+Thu Oct 17 19:18:54 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update data-default-instances-old-locale to version 0.0.1.2.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
Old:
----
data-default-instances-old-locale-0.0.1.tar.gz
New:
----
data-default-instances-old-locale-0.0.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-data-default-instances-old-locale.spec ++++++
--- /var/tmp/diff_new_pack.f3kRtx/_old 2024-10-28 15:20:16.715346841 +0100
+++ /var/tmp/diff_new_pack.f3kRtx/_new 2024-10-28 15:20:16.719347009 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-data-default-instances-old-locale
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%global pkg_name data-default-instances-old-locale
%global pkgver %{pkg_name}-%{version}
Name: ghc-%{pkg_name}
-Version: 0.0.1
+Version: 0.0.1.2
Release: 0
Summary: Default instances for types in old-locale
License: BSD-3-Clause
@@ -36,7 +36,7 @@
ExcludeArch: %{ix86}
%description
-Default instances for types in old-locale.
+This module defines a 'Default' instance for the type 'TimeLocale'.
%package devel
Summary: Haskell %{pkg_name} library development files
++++++ data-default-instances-old-locale-0.0.1.tar.gz -> data-default-instances-old-locale-0.0.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-instances-old-locale-0.0.1/Data/Default/Instances/OldLocale.hs new/data-default-instances-old-locale-0.0.1.2/Data/Default/Instances/OldLocale.hs
--- old/data-default-instances-old-locale-0.0.1/Data/Default/Instances/OldLocale.hs 2013-04-03 06:20:20.000000000 +0200
+++ new/data-default-instances-old-locale-0.0.1.2/Data/Default/Instances/OldLocale.hs 2001-09-09 03:46:40.000000000 +0200
@@ -1,37 +1,47 @@
{-
-Copyright (c) 2013 Lukas Mai
+Copyright (c) 2013, Lukas Mai
All rights reserved.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of his contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Lukas Mai nor the names of other
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-}
-module Data.Default.Instances.OldLocale (
--- | This module defines 'Default' instances for the type 'TimeLocale'.
-) where
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
+{-|
+Module : Data.Default.Instances.OldLocale
+Description : 'Default' instances for the type 'TimeLocale'.
+
+This module defines a 'Default' instance for the type 'TimeLocale'.
+-}
+module Data.Default.Instances.OldLocale () where
import Data.Default.Class
import System.Locale
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-instances-old-locale-0.0.1/LICENSE new/data-default-instances-old-locale-0.0.1.2/LICENSE
--- old/data-default-instances-old-locale-0.0.1/LICENSE 2013-04-03 06:20:20.000000000 +0200
+++ new/data-default-instances-old-locale-0.0.1.2/LICENSE 2001-09-09 03:46:40.000000000 +0200
@@ -1,26 +1,30 @@
-Copyright (c) 2013 Lukas Mai
+Copyright (c) 2013, Lukas Mai
All rights reserved.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of his contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Lukas Mai nor the names of other
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-instances-old-locale-0.0.1/data-default-instances-old-locale.cabal new/data-default-instances-old-locale-0.0.1.2/data-default-instances-old-locale.cabal
--- old/data-default-instances-old-locale-0.0.1/data-default-instances-old-locale.cabal 2013-04-03 06:20:20.000000000 +0200
+++ new/data-default-instances-old-locale-0.0.1.2/data-default-instances-old-locale.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,18 +1,22 @@
-Name: data-default-instances-old-locale
-Version: 0.0.1
-Cabal-Version: >= 1.6
-Category: Data
-Synopsis: Default instances for types in old-locale
-Build-Type: Simple
-License: BSD3
-License-File: LICENSE
-Author: Lukas Mai
-Maintainer: <l.mai(a)web.de>
+cabal-version: 3.0
+name: data-default-instances-old-locale
+version: 0.0.1.2
+category: Data
+synopsis: Default instances for types in old-locale
+description:
+ This module defines a 'Default' instance for the type 'TimeLocale'.
+build-type: Simple
+license: BSD-3-Clause
+license-file: LICENSE
+copyright: (c) 2013 Lukas Mai
+author: Lukas Mai
+maintainer: <lukasmai.403+hackage(a)gmail.com>
source-repository head
- type: git
- location: https://github.com/mauke/data-default
+ type: git
+ location: https://github.com/mauke/data-default
-Library
- Build-Depends: base >=2 && <5, data-default-class, old-locale
- Exposed-Modules: Data.Default.Instances.OldLocale
+library
+ build-depends: base >=2 && <5, data-default-class ^>=0.1.2.0, old-locale ^>=1.0
+ exposed-modules: Data.Default.Instances.OldLocale
+ default-language: Haskell98
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-data-default-class for openSUSE:Factory checked in at 2024-10-28 15:18:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-data-default-class (Old)
and /work/SRC/openSUSE:Factory/.ghc-data-default-class.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-data-default-class"
Mon Oct 28 15:18:20 2024 rev:13 rq:1218545 version:0.1.2.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-data-default-class/ghc-data-default-class.changes 2023-04-04 21:19:44.628931578 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-data-default-class.new.2020/ghc-data-default-class.changes 2024-10-28 15:20:10.071070139 +0100
@@ -1,0 +2,6 @@
+Thu Oct 17 19:18:51 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update data-default-class to version 0.1.2.2.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
Old:
----
data-default-class-0.1.2.0.tar.gz
New:
----
data-default-class-0.1.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-data-default-class.spec ++++++
--- /var/tmp/diff_new_pack.RH8qE0/_old 2024-10-28 15:20:10.763098959 +0100
+++ /var/tmp/diff_new_pack.RH8qE0/_new 2024-10-28 15:20:10.763098959 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-data-default-class
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%global pkg_name data-default-class
%global pkgver %{pkg_name}-%{version}
Name: ghc-%{pkg_name}
-Version: 0.1.2.0
+Version: 0.1.2.2
Release: 0
Summary: A class for types with a default value
License: BSD-3-Clause
@@ -32,7 +32,14 @@
ExcludeArch: %{ix86}
%description
-A class for types with a default value.
+This module defines a class for types with a default value. It also defines
+'Default' instances for the types 'Int', 'Int8', 'Int16', 'Int32', 'Int64',
+'Word', 'Word8', 'Word16', 'Word32', 'Word64', 'Integer', 'Float', 'Double',
+'Ratio', 'Complex', 'CShort', 'CUShort', 'CInt', 'CUInt', 'CLong', 'CULong',
+'CLLong', 'CULLong', 'CPtrdiff', 'CSize', 'CSigAtomic', 'CIntPtr', 'CUIntPtr',
+'CIntMax', 'CUIntMax', 'CClock', 'CTime', 'CUSeconds', 'CSUSeconds', 'CFloat',
+'CDouble', '(->)', 'IO', 'Maybe', '()', '[]', 'Ordering', 'Any', 'All', 'Last',
+'First', 'Sum', 'Product', 'Endo', 'Dual', and tuples.
%package devel
Summary: Haskell %{pkg_name} library development files
++++++ data-default-class-0.1.2.0.tar.gz -> data-default-class-0.1.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-class-0.1.2.0/Data/Default/Class.hs new/data-default-class-0.1.2.2/Data/Default/Class.hs
--- old/data-default-class-0.1.2.0/Data/Default/Class.hs 2016-06-26 00:55:15.000000000 +0200
+++ new/data-default-class-0.1.2.2/Data/Default/Class.hs 2001-09-09 03:46:40.000000000 +0200
@@ -1,31 +1,35 @@
{-
-Copyright (c) 2013 Lukas Mai
+Copyright (c) 2013, Lukas Mai
All rights reserved.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of his contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Lukas Mai nor the names of other
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-}
@@ -37,16 +41,21 @@
{-# LANGUAGE DefaultSignatures, TypeOperators, FlexibleContexts #-}
#endif
+{-|
+Module : Data.Default.Class
+Description : A class for types with a default value.
+
+This module defines a class for types with a default value.
+It also defines 'Default' instances for the types 'Int', 'Int8',
+'Int16', 'Int32', 'Int64', 'Word', 'Word8', 'Word16', 'Word32', 'Word64',
+'Integer', 'Float', 'Double', 'Ratio', 'Complex', 'CShort', 'CUShort',
+'CInt', 'CUInt', 'CLong', 'CULong', 'CLLong', 'CULLong', 'CPtrdiff',
+'CSize', 'CSigAtomic', 'CIntPtr', 'CUIntPtr', 'CIntMax', 'CUIntMax',
+'CClock', 'CTime', 'CUSeconds', 'CSUSeconds', 'CFloat', 'CDouble', '(->)',
+'IO', 'Maybe', '()', '[]', 'Ordering', 'Any', 'All', 'Last', 'First', 'Sum',
+'Product', 'Endo', 'Dual', and tuples.
+-}
module Data.Default.Class (
--- | This module defines a class for types with a default value.
--- It also defines 'Default' instances for the types 'Int', 'Int8',
--- 'Int16', 'Int32', 'Int64', 'Word', 'Word8', 'Word16', 'Word32', 'Word64',
--- 'Integer', 'Float', 'Double', 'Ratio', 'Complex', 'CShort', 'CUShort',
--- 'CInt', 'CUInt', 'CLong', 'CULong', 'CLLong', 'CULLong', 'CPtrdiff',
--- 'CSize', 'CSigAtomic', 'CIntPtr', 'CUIntPtr', 'CIntMax', 'CUIntMax',
--- 'CClock', 'CTime', 'CUSeconds', 'CSUSeconds', 'CFloat', 'CDouble', '(->)',
--- 'IO', 'Maybe', '()', '[]', 'Ordering', 'Any', 'All', 'Last', 'First', 'Sum',
--- 'Product', 'Endo', 'Dual', and tuples.
Default(..)
) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-class-0.1.2.0/LICENSE new/data-default-class-0.1.2.2/LICENSE
--- old/data-default-class-0.1.2.0/LICENSE 2016-06-26 00:55:15.000000000 +0200
+++ new/data-default-class-0.1.2.2/LICENSE 2001-09-09 03:46:40.000000000 +0200
@@ -1,26 +1,30 @@
-Copyright (c) 2013 Lukas Mai
+Copyright (c) 2013, Lukas Mai
All rights reserved.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of his contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Lukas Mai nor the names of other
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-class-0.1.2.0/data-default-class.cabal new/data-default-class-0.1.2.2/data-default-class.cabal
--- old/data-default-class-0.1.2.0/data-default-class.cabal 2016-06-26 00:55:15.000000000 +0200
+++ new/data-default-class-0.1.2.2/data-default-class.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,21 +1,33 @@
-Name: data-default-class
-Version: 0.1.2.0
-Cabal-Version: >= 1.6
-Category: Data
-Synopsis: A class for types with a default value
-Build-Type: Simple
-License: BSD3
-License-File: LICENSE
-Author: Lukas Mai
-Maintainer: <l.mai(a)web.de>
+cabal-version: 3.0
+name: data-default-class
+version: 0.1.2.2
+category: Data
+synopsis: A class for types with a default value
+description:
+ This module defines a class for types with a default value.
+ It also defines 'Default' instances for the types 'Int', 'Int8',
+ 'Int16', 'Int32', 'Int64', 'Word', 'Word8', 'Word16', 'Word32', 'Word64',
+ 'Integer', 'Float', 'Double', 'Ratio', 'Complex', 'CShort', 'CUShort',
+ 'CInt', 'CUInt', 'CLong', 'CULong', 'CLLong', 'CULLong', 'CPtrdiff',
+ 'CSize', 'CSigAtomic', 'CIntPtr', 'CUIntPtr', 'CIntMax', 'CUIntMax',
+ 'CClock', 'CTime', 'CUSeconds', 'CSUSeconds', 'CFloat', 'CDouble', '(->)',
+ 'IO', 'Maybe', '()', '[]', 'Ordering', 'Any', 'All', 'Last', 'First', 'Sum',
+ 'Product', 'Endo', 'Dual', and tuples.
+build-type: Simple
+license: BSD-3-Clause
+license-file: LICENSE
+copyright: (c) 2013 Lukas Mai
+author: Lukas Mai
+maintainer: <lukasmai.403+hackage(a)gmail.com>
source-repository head
- type: git
- location: https://github.com/mauke/data-default
+ type: git
+ location: https://github.com/mauke/data-default
-Library
- Build-Depends: base >=2 && <5
- if impl(ghc == 7.4.*)
- -- for GHC.Generics
- Build-Depends: ghc-prim
- Exposed-Modules: Data.Default.Class
+library
+ build-depends: base >=2 && <5
+ if impl(ghc == 7.4.*)
+ -- for GHC.Generics
+ build-depends: ghc-prim ^>=0.2
+ exposed-modules: Data.Default.Class
+ default-language: Haskell98
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-data-default for openSUSE:Factory checked in at 2024-10-28 15:18:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-data-default (Old)
and /work/SRC/openSUSE:Factory/.ghc-data-default.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-data-default"
Mon Oct 28 15:18:18 2024 rev:15 rq:1218544 version:0.7.1.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-data-default/ghc-data-default.changes 2023-04-04 21:19:44.068928007 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-data-default.new.2020/ghc-data-default.changes 2024-10-28 15:20:07.638968853 +0100
@@ -1,0 +2,6 @@
+Thu Oct 17 19:18:51 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update data-default to version 0.7.1.3.
+ Upstream does not provide a change log file.
+
+-------------------------------------------------------------------
Old:
----
data-default-0.7.1.1.tar.gz
New:
----
data-default-0.7.1.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-data-default.spec ++++++
--- /var/tmp/diff_new_pack.N66U3s/_old 2024-10-28 15:20:08.831018496 +0100
+++ /var/tmp/diff_new_pack.N66U3s/_new 2024-10-28 15:20:08.831018496 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-data-default
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,8 +18,9 @@
%global pkg_name data-default
%global pkgver %{pkg_name}-%{version}
+%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.7.1.1
+Version: 0.7.1.3
Release: 0
Summary: A class for types with a default value
License: BSD-3-Clause
@@ -38,9 +39,19 @@
BuildRequires: ghc-data-default-instances-old-locale-prof
BuildRequires: ghc-rpm-macros
ExcludeArch: %{ix86}
+%if %{with tests}
+BuildRequires: ghc-containers-devel
+BuildRequires: ghc-containers-prof
+BuildRequires: ghc-mtl-devel
+BuildRequires: ghc-mtl-prof
+BuildRequires: ghc-old-locale-devel
+BuildRequires: ghc-old-locale-prof
+%endif
%description
-A class for types with a default value.
+This module defines a class for types with a default value. Instances are
+provided for '()', 'Data.Set.Set', 'Data.Map.Map', 'Int', 'Integer', 'Float',
+'Double', and many others.
%package devel
Summary: Haskell %{pkg_name} library development files
@@ -77,6 +88,9 @@
%install
%ghc_lib_install
+%check
+%cabal_test
+
%post devel
%ghc_pkg_recache
++++++ data-default-0.7.1.1.tar.gz -> data-default-0.7.1.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-0.7.1.1/Data/Default.hs new/data-default-0.7.1.3/Data/Default.hs
--- old/data-default-0.7.1.1/Data/Default.hs 2016-06-26 01:01:25.000000000 +0200
+++ new/data-default-0.7.1.3/Data/Default.hs 2001-09-09 03:46:40.000000000 +0200
@@ -1,38 +1,47 @@
{-
-Copyright (c) 2013 Lukas Mai
+Copyright (c) 2013, Lukas Mai
All rights reserved.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of his contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Lukas Mai nor the names of other
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-}
+{-|
+Module : Data.Default
+Description : A class for types with a default value.
+
+This module defines a class for types with a default value. Instances are
+provided for '()', 'Data.Set.Set', 'Data.Map.Map', 'Int', 'Integer',
+'Float', 'Double', and many others (see below).
+-}
module Data.Default (
--- | This module defines a class for types with a default value. Instances are
--- provided for '()', 'Data.Set.Set', 'Data.Map.Map', 'Int', 'Integer',
--- 'Float', 'Double', and many others (see below).
Default(..)
) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-0.7.1.1/LICENSE new/data-default-0.7.1.3/LICENSE
--- old/data-default-0.7.1.1/LICENSE 2016-06-26 01:01:25.000000000 +0200
+++ new/data-default-0.7.1.3/LICENSE 2001-09-09 03:46:40.000000000 +0200
@@ -1,26 +1,30 @@
-Copyright (c) 2013 Lukas Mai
+Copyright (c) 2013, Lukas Mai
All rights reserved.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of his contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Lukas Mai nor the names of other
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-0.7.1.1/data-default.cabal new/data-default-0.7.1.3/data-default.cabal
--- old/data-default-0.7.1.1/data-default.cabal 2016-06-26 01:01:25.000000000 +0200
+++ new/data-default-0.7.1.3/data-default.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,21 +1,34 @@
-Name: data-default
-Version: 0.7.1.1
-Cabal-Version: >= 1.6
-Category: Data
-Synopsis: A class for types with a default value
-Build-Type: Simple
-License: BSD3
-License-File: LICENSE
-Author: Lukas Mai
-Maintainer: <l.mai(a)web.de>
+cabal-version: 3.0
+name: data-default
+version: 0.7.1.3
+category: Data
+synopsis: A class for types with a default value
+description:
+ This module defines a class for types with a default value. Instances are
+ provided for '()', 'Data.Set.Set', 'Data.Map.Map', 'Int', 'Integer',
+ 'Float', 'Double', and many others.
+build-type: Simple
+license: BSD-3-Clause
+license-file: LICENSE
+copyright: (c) 2013 Lukas Mai
+author: Lukas Mai
+maintainer: <lukasmai.403+hackage(a)gmail.com>
source-repository head
- type: git
- location: https://github.com/mauke/data-default
+ type: git
+ location: https://github.com/mauke/data-default
-Library
- Build-Depends: base >=2 && <5, data-default-class >=0.1.2.0,
- data-default-instances-containers,
- data-default-instances-dlist,
- data-default-instances-old-locale
- Exposed-Modules: Data.Default
+library
+ build-depends: base >=2 && <5, data-default-class ^>=0.1.2.1,
+ data-default-instances-containers ^>=0.1.0.2,
+ data-default-instances-dlist ^>=0.0.1.1,
+ data-default-instances-old-locale ^>=0.0.1.1
+ exposed-modules: Data.Default
+ default-language: Haskell98
+
+test-suite test
+ type: exitcode-stdio-1.0
+ main-is: basics.hs
+ build-depends: base >=2 && <5, containers, data-default, mtl, old-locale
+ hs-source-dirs: t
+ default-language: Haskell98
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/data-default-0.7.1.1/t/basics.hs new/data-default-0.7.1.3/t/basics.hs
--- old/data-default-0.7.1.1/t/basics.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/data-default-0.7.1.3/t/basics.hs 2001-09-09 03:46:40.000000000 +0200
@@ -0,0 +1,98 @@
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+
+import Data.Default
+import Data.Int
+import Data.Word
+import Data.Monoid
+import Data.Complex
+import System.Locale
+import qualified Data.Sequence as Seq
+import qualified Data.Map as M
+import qualified Data.Set as S
+import qualified Data.IntMap as IM
+import qualified Data.IntSet as IS
+import Data.Tree (Tree(..))
+
+import Control.Monad (when)
+import Control.Monad.Reader
+import Data.IORef
+import System.Exit (exitFailure)
+import System.IO
+
+newtype Test a = Test{ unTest :: ReaderT (IORef Int) IO a }
+ deriving (Functor, Applicative, Monad, MonadIO, MonadReader (IORef Int))
+
+runTest :: (MonadIO m) => Test a -> m a
+runTest t = liftIO $ do
+ hSetBuffering stdout LineBuffering
+ r <- newIORef 1
+ runReaderT (unTest t) r
+
+instance (Default a) => Default (Test a) where
+ def = return def
+
+withRef :: (IORef Int -> IO a) -> Test a
+withRef f = do
+ r <- ask
+ liftIO (f r)
+
+planTests :: Int -> Test ()
+planTests n = liftIO $ do
+ putStrLn $ "1.." ++ show n
+
+ok :: Bool -> String -> Test ()
+ok b s = withRef $ \r -> do
+ c <- atomicModifyIORef r ((,) =<< succ)
+ putStrLn $ (if b then "" else "not ") ++ "ok " ++ show c ++ " - " ++ s
+ when (not b)
+ exitFailure
+
+is {-, isNot-} :: (Show a, Eq a) => a -> a -> Test ()
+is x y = ok (x == y) (show x ++ " == " ++ show y)
+-- isNot x y = ok (x /= y) (show x ++ " /= " ++ show y)
+
+-- diag :: String -> Test ()
+-- diag s = liftIO $ do
+-- putStrLn $ "# " ++ s
+
+main :: IO ()
+main = runTest $ do
+ planTests 37
+ sequence_ [def, liftIO def, return ()]
+ is (def (length :: [a] -> Int)) (0 :: Int)
+ is def ()
+ is def (Nothing :: Maybe (Int, Ordering, [Float]))
+ is def ""
+ is def (S.empty :: S.Set ())
+ is def (M.empty :: M.Map () ())
+ is def IS.empty
+ is def (IM.empty :: IM.IntMap ())
+ is def (Seq.empty :: Seq.Seq ())
+ is def (Node (0 :: Complex Float) [])
+ is def EQ
+ is def (Any False)
+ is def (All True)
+ is def (Last Nothing :: Last ())
+ is def (First Nothing :: First ())
+ is def (Sum (0 :: Integer))
+ is def (Product (1 :: Rational))
+ is def (0 :: Int)
+ is def (0 :: Integer)
+ is def (0 :: Float)
+ is def (0 :: Double)
+ is def (0 :: Rational)
+ is def (0 :: Complex Double)
+ is def (0 :: Int8)
+ is def (0 :: Int16)
+ is def (0 :: Int32)
+ is def (0 :: Int64)
+ is def (0 :: Word)
+ is def (0 :: Word8)
+ is def (0 :: Word16)
+ is def (0 :: Word32)
+ is def (0 :: Word64)
+ is def ((def, def) :: ((), Maybe ((), ())))
+ is def ((def, def, def) :: ((), Maybe ((), ()), [Ordering]))
+ is def ((def, def, def, def) :: ((), Maybe ((), ()), [Ordering], Float))
+ is def ((def, def, def, def, def, def, def) :: ((), (), (), (), (), (), ()))
+ is def defaultTimeLocale
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-cabal-install-solver for openSUSE:Factory checked in at 2024-10-28 15:18:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-cabal-install-solver (Old)
and /work/SRC/openSUSE:Factory/.ghc-cabal-install-solver.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-cabal-install-solver"
Mon Oct 28 15:18:07 2024 rev:3 rq:1218539 version:3.10.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-cabal-install-solver/ghc-cabal-install-solver.changes 2023-11-23 21:43:07.892979494 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-cabal-install-solver.new.2020/ghc-cabal-install-solver.changes 2024-10-28 15:19:47.978150119 +0100
@@ -1,0 +2,9 @@
+Thu Mar 28 17:54:10 UTC 2024 - Peter Simons <psimons(a)suse.com>
+
+- Update cabal-install-solver to version 3.10.3.0 revision 1.
+ Upstream has edited the change log file since the last release in
+ a non-trivial way, i.e. they did more than just add a new entry
+ at the top. You can review the file at:
+ http://hackage.haskell.org/package/cabal-install-solver-3.10.3.0/src/Change…
+
+-------------------------------------------------------------------
Old:
----
cabal-install-solver-3.10.2.1.tar.gz
New:
----
cabal-install-solver-3.10.3.0.tar.gz
cabal-install-solver.cabal
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-cabal-install-solver.spec ++++++
--- /var/tmp/diff_new_pack.2YDtSs/_old 2024-10-28 15:19:48.974191600 +0100
+++ /var/tmp/diff_new_pack.2YDtSs/_new 2024-10-28 15:19:48.978191768 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ghc-cabal-install-solver
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,12 +20,13 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 3.10.2.1
+Version: 3.10.3.0
Release: 0
Summary: The command-line interface for Cabal and Hackage
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal…
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-Cabal-prof
BuildRequires: ghc-Cabal-syntax-devel
@@ -47,6 +48,8 @@
BuildRequires: ghc-pretty-devel
BuildRequires: ghc-pretty-prof
BuildRequires: ghc-rpm-macros
+BuildRequires: ghc-text-devel
+BuildRequires: ghc-text-prof
BuildRequires: ghc-transformers-devel
BuildRequires: ghc-transformers-prof
ExcludeArch: %{ix86}
@@ -91,6 +94,7 @@
%prep
%autosetup -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ cabal-install-solver-3.10.2.1.tar.gz -> cabal-install-solver-3.10.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-install-solver-3.10.2.1/ChangeLog.md new/cabal-install-solver-3.10.3.0/ChangeLog.md
--- old/cabal-install-solver-3.10.2.1/ChangeLog.md 2001-09-09 03:46:40.000000000 +0200
+++ new/cabal-install-solver-3.10.3.0/ChangeLog.md 2001-09-09 03:46:40.000000000 +0200
@@ -1 +1 @@
-Please see https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.…
+Please see https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.…
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-install-solver-3.10.2.1/cabal-install-solver.cabal new/cabal-install-solver-3.10.3.0/cabal-install-solver.cabal
--- old/cabal-install-solver-3.10.2.1/cabal-install-solver.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/cabal-install-solver-3.10.3.0/cabal-install-solver.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: 2.2
name: cabal-install-solver
-version: 3.10.2.1
+version: 3.10.3.0
synopsis: The command-line interface for Cabal and Hackage.
description:
The solver component used in cabal-install command-line program
@@ -14,7 +14,7 @@
copyright: 2003-2023, Cabal Development Team
category: Distribution
build-type: Simple
-Extra-Source-Files:
+extra-doc-files:
ChangeLog.md
source-repository head
@@ -109,12 +109,13 @@
, bytestring >=0.10.6.0 && <0.13
, Cabal ^>=3.10
, Cabal-syntax ^>=3.10
- , containers >=0.5.6.2 && <0.7
+ , containers >=0.5.6.2 && <0.8
, edit-distance ^>= 0.2.2
- , filepath ^>=1.4.0.0
+ , filepath ^>=1.4.0.0 || ^>=1.5.0.0
, mtl >=2.0 && <2.4
, pretty ^>=1.1
, transformers >=0.4.2.0 && <0.7
+ , text (>= 1.2.3.0 && < 1.3) || (>= 2.0 && < 2.2)
if flag(debug-expensive-assertions)
cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-install-solver-3.10.2.1/src/Distribution/Solver/Types/PkgConfigDb.hs new/cabal-install-solver-3.10.3.0/src/Distribution/Solver/Types/PkgConfigDb.hs
--- old/cabal-install-solver-3.10.2.1/src/Distribution/Solver/Types/PkgConfigDb.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/cabal-install-solver-3.10.3.0/src/Distribution/Solver/Types/PkgConfigDb.hs 2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,6 @@
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE LambdaCase #-}
-----------------------------------------------------------------------------
-- |
-- Module : Distribution.Solver.Types.PkgConfigDb
@@ -23,17 +24,23 @@
import Distribution.Solver.Compat.Prelude
import Prelude ()
-import Control.Exception (handle)
-import Control.Monad (mapM)
-import qualified Data.Map as M
-import System.FilePath (splitSearchPath)
+import Control.Exception (handle)
+import Control.Monad (mapM)
+import Data.ByteString (ByteString)
+import qualified Data.ByteString.Lazy as LBS
+import qualified Data.Map as M
+import qualified Data.Text as T
+import qualified Data.Text.Encoding as T
+import qualified Data.Text.Encoding.Error as T
+import System.FilePath (splitSearchPath)
import Distribution.Compat.Environment (lookupEnv)
import Distribution.Package (PkgconfigName, mkPkgconfigName)
import Distribution.Parsec
import Distribution.Simple.Program
(ProgramDb, getProgramOutput, pkgConfigProgram, needProgram, ConfiguredProgram)
-import Distribution.Simple.Program.Run (getProgramInvocationOutputAndErrors, programInvocation)
+import Distribution.Simple.Program.Run
+ (getProgramInvocationOutputAndErrors, programInvocation, getProgramInvocationLBSAndErrors)
import Distribution.Simple.Utils (info)
import Distribution.Types.PkgconfigVersion
import Distribution.Types.PkgconfigVersionRange
@@ -63,19 +70,53 @@
case mpkgConfig of
Nothing -> noPkgConfig "Cannot find pkg-config program"
Just (pkgConfig, _) -> do
- pkgList <- lines <$> getProgramOutput verbosity pkgConfig ["--list-all"]
- -- The output of @pkg-config --list-all@ also includes a description
- -- for each package, which we do not need.
- let pkgNames = map (takeWhile (not . isSpace)) pkgList
- (pkgVersions, _errs, exitCode) <-
+ -- To prevent malformed Unicode in the descriptions from crashing cabal,
+ -- read without interpreting any encoding first. (#9608)
+ (listAllOutput, listAllErrs, listAllExitcode) <-
+ getProgramInvocationLBSAndErrors verbosity (programInvocation pkgConfig ["--list-all"])
+ when (listAllExitcode /= ExitSuccess) $
+ ioError (userError ("pkg-config --list-all failed: " ++ listAllErrs))
+ let pkgList = LBS.split (fromIntegral (ord '\n')) listAllOutput
+ -- Now decode the package *names* to a String. The ones where decoding
+ -- failed end up in 'failedPkgNames'.
+ let (failedPkgNames, pkgNames) =
+ partitionEithers
+ -- Drop empty package names. This will handle empty lines
+ -- in pkg-config's output, including the spurious one
+ -- after the last newline (because of LBS.split).
+ . filter (either (const True) (not . null))
+ -- Try decoding strictly; if it fails, put the lenient
+ -- decoding in a Left for later reporting.
+ . map (\bsname ->
+ let sbsname = LBS.toStrict bsname
+ in case T.decodeUtf8' sbsname of
+ Left _ -> Left (T.unpack (decodeUtf8LenientCompat sbsname))
+ Right name -> Right (T.unpack name))
+ -- The output of @pkg-config --list-all@ also includes a
+ -- description for each package, which we do not need.
+ -- We don't use Data.Char.isSpace because that would also
+ -- include 0xA0, the non-breaking space, which can occur
+ -- in multi-byte UTF-8 sequences.
+ . map (LBS.takeWhile (not . isAsciiSpace))
+ $ pkgList
+ when (not (null failedPkgNames)) $
+ info verbosity ("Some pkg-config packages have names containing invalid unicode: " ++ intercalate ", " failedPkgNames)
+ (outs, _errs, exitCode) <-
getProgramInvocationOutputAndErrors verbosity
(programInvocation pkgConfig ("--modversion" : pkgNames))
- case exitCode of
- ExitSuccess -> (return . pkgConfigDbFromList . zip pkgNames) (lines pkgVersions)
- -- if there's a single broken pc file the above fails, so we fall back into calling it individually
- _ -> do
- info verbosity ("call to pkg-config --modversion on all packages failed. Falling back to querying pkg-config individually on each package")
- pkgConfigDbFromList . catMaybes <$> mapM (getIndividualVersion pkgConfig) pkgNames
+ let pkgVersions = lines outs
+ if exitCode == ExitSuccess && length pkgVersions == length pkgNames
+ then (return . pkgConfigDbFromList . zip pkgNames) pkgVersions
+ else
+ -- if there's a single broken pc file the above fails, so we fall back
+ -- into calling it individually
+ --
+ -- Also some implementations of @pkg-config@ do not provide more than
+ -- one package version, so if the returned list is shorter than the
+ -- requested one, we fall back to querying one by one.
+ do
+ info verbosity ("call to pkg-config --modversion on all packages failed. Falling back to querying pkg-config individually on each package")
+ pkgConfigDbFromList . catMaybes <$> mapM (getIndividualVersion pkgConfig) pkgNames
where
-- For when pkg-config invocation fails (possibly because of a
-- too long command line).
@@ -97,6 +138,15 @@
ExitSuccess -> Just (pkg, pkgVersion)
_ -> Nothing
+ isAsciiSpace :: Word8 -> Bool
+ isAsciiSpace c = c `elem` map (fromIntegral . ord) " \t"
+
+ -- The decodeUtf8Lenient function is defined starting with text-2.0.1; this
+ -- function simply reimplements it. When the minimum supported GHC version
+ -- is >= 9.4, switch to decodeUtf8Lenient.
+ decodeUtf8LenientCompat :: ByteString -> T.Text
+ decodeUtf8LenientCompat = T.decodeUtf8With T.lenientDecode
+
-- | Create a `PkgConfigDb` from a list of @(packageName, version)@ pairs.
pkgConfigDbFromList :: [(String, String)] -> PkgConfigDb
pkgConfigDbFromList pairs = (PkgConfigDb . M.fromList . map convert) pairs
++++++ cabal-install-solver.cabal ++++++
cabal-version: 2.2
name: cabal-install-solver
version: 3.10.3.0
x-revision: 1
synopsis: The command-line interface for Cabal and Hackage.
description:
The solver component used in cabal-install command-line program
homepage: http://www.haskell.org/cabal/
bug-reports: https://github.com/haskell/cabal/issues
license: BSD-3-Clause
license-file: LICENSE
author: Cabal Development Team (see AUTHORS file)
maintainer: Cabal Development Team <cabal-devel(a)haskell.org>
copyright: 2003-2023, Cabal Development Team
category: Distribution
build-type: Simple
extra-doc-files:
ChangeLog.md
source-repository head
type: git
location: https://github.com/haskell/cabal/
subdir: cabal-install-solver
flag debug-expensive-assertions
description: Enable expensive assertions for testing or debugging
default: False
manual: True
flag debug-conflict-sets
description: Add additional information to ConflictSets
default: False
manual: True
flag debug-tracetree
description: Compile in support for tracetree (used to debug the solver)
default: False
manual: True
library
default-language: Haskell2010
hs-source-dirs: src
hs-source-dirs: src-assertion
ghc-options:
-Wall -Wcompat -Wnoncanonical-monad-instances
-fwarn-tabs -fwarn-incomplete-uni-patterns
if impl(ghc <8.8)
ghc-options: -Wnoncanonical-monadfail-instances
if impl(ghc >=8.10)
ghc-options: -Wunused-packages
exposed-modules:
Distribution.Client.Utils.Assertion
Distribution.Solver.Compat.Prelude
Distribution.Solver.Modular
Distribution.Solver.Modular.Assignment
Distribution.Solver.Modular.Builder
Distribution.Solver.Modular.Configured
Distribution.Solver.Modular.ConfiguredConversion
Distribution.Solver.Modular.ConflictSet
Distribution.Solver.Modular.Cycles
Distribution.Solver.Modular.Dependency
Distribution.Solver.Modular.Explore
Distribution.Solver.Modular.Flag
Distribution.Solver.Modular.Index
Distribution.Solver.Modular.IndexConversion
Distribution.Solver.Modular.LabeledGraph
Distribution.Solver.Modular.Linking
Distribution.Solver.Modular.Log
Distribution.Solver.Modular.Message
Distribution.Solver.Modular.MessageUtils
Distribution.Solver.Modular.Package
Distribution.Solver.Modular.Preference
Distribution.Solver.Modular.PSQ
Distribution.Solver.Modular.RetryLog
Distribution.Solver.Modular.Solver
Distribution.Solver.Modular.Tree
Distribution.Solver.Modular.Validate
Distribution.Solver.Modular.Var
Distribution.Solver.Modular.Version
Distribution.Solver.Modular.WeightedPSQ
Distribution.Solver.Types.ComponentDeps
Distribution.Solver.Types.ConstraintSource
Distribution.Solver.Types.DependencyResolver
Distribution.Solver.Types.Flag
Distribution.Solver.Types.InstalledPreference
Distribution.Solver.Types.InstSolverPackage
Distribution.Solver.Types.LabeledPackageConstraint
Distribution.Solver.Types.OptionalStanza
Distribution.Solver.Types.PackageConstraint
Distribution.Solver.Types.PackageFixedDeps
Distribution.Solver.Types.PackageIndex
Distribution.Solver.Types.PackagePath
Distribution.Solver.Types.PackagePreferences
Distribution.Solver.Types.PkgConfigDb
Distribution.Solver.Types.Progress
Distribution.Solver.Types.ResolverPackage
Distribution.Solver.Types.Settings
Distribution.Solver.Types.SolverId
Distribution.Solver.Types.SolverPackage
Distribution.Solver.Types.SourcePackage
Distribution.Solver.Types.Variable
build-depends:
, array >=0.4 && <0.6
, base >=4.10 && <4.20
, bytestring >=0.10.6.0 && <0.13
, Cabal ^>=3.10.3
, Cabal-syntax ^>=3.10
, containers >=0.5.6.2 && <0.8
, edit-distance ^>= 0.2.2
, filepath ^>=1.4.0.0 || ^>=1.5.0.0
, mtl >=2.0 && <2.4
, pretty ^>=1.1
, transformers >=0.4.2.0 && <0.7
, text (>= 1.2.3.0 && < 1.3) || (>= 2.0 && < 2.2)
if flag(debug-expensive-assertions)
cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS
if flag(debug-conflict-sets)
cpp-options: -DDEBUG_CONFLICT_SETS
build-depends: base >=4.9
if flag(debug-tracetree)
cpp-options: -DDEBUG_TRACETREE
build-depends: tracetree ^>=0.1
Test-Suite unit-tests
default-language: Haskell2010
ghc-options: -rtsopts -threaded
type: exitcode-stdio-1.0
main-is: UnitTests.hs
hs-source-dirs: tests
other-modules:
UnitTests.Distribution.Solver.Modular.MessageUtils
build-depends:
, base >= 4.10 && <4.20
, Cabal
, Cabal-syntax
, cabal-install-solver
, tasty >= 1.2.3 && <1.6
, tasty-quickcheck
, tasty-hunit >= 0.10
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libgit2 for openSUSE:Factory checked in at 2024-10-28 15:17:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgit2 (Old)
and /work/SRC/openSUSE:Factory/.libgit2.new.2020 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgit2"
Mon Oct 28 15:17:50 2024 rev:66 rq:1218731 version:1.8.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgit2/libgit2.changes 2024-05-21 18:33:26.239818763 +0200
+++ /work/SRC/openSUSE:Factory/.libgit2.new.2020/libgit2.changes 2024-10-28 15:18:50.019736574 +0100
@@ -1,0 +2,10 @@
+Sun Oct 27 15:48:41 UTC 2024 - Andreas Stieger <andreas.stieger(a)gmx.de>
+
+- update to 1.8.3:
+ * revert a const-correctness change introduced in v1.8.0 for
+ the git_commit_create functions. Retain the const-behavior for
+ the commits arguments from prior to v1.8.0.
+ * Fix a bug introduced in v1.8.1 for users of the legacy
+ Node.js http-parser dependency.
+
+-------------------------------------------------------------------
Old:
----
libgit2-1.8.1.tar.gz
New:
----
libgit2-1.8.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgit2.spec ++++++
--- /var/tmp/diff_new_pack.A4BwaV/_old 2024-10-28 15:18:50.811769556 +0100
+++ /var/tmp/diff_new_pack.A4BwaV/_new 2024-10-28 15:18:50.815769722 +0100
@@ -20,7 +20,7 @@
%define sover 1_8
Name: libgit2
-Version: 1.8.1
+Version: 1.8.3
Release: 0
Summary: C git library
License: GPL-2.0-only WITH GCC-exception-2.0
++++++ libgit2-1.8.1.tar.gz -> libgit2-1.8.3.tar.gz ++++++
/work/SRC/openSUSE:Factory/libgit2/libgit2-1.8.1.tar.gz /work/SRC/openSUSE:Factory/.libgit2.new.2020/libgit2-1.8.3.tar.gz differ: char 13, line 1
1
0