Our great sponsors
opaleye | stack | |
---|---|---|
9 | 47 | |
594 | 3,947 | |
- | 0.2% | |
8.5 | 9.9 | |
11 days ago | 10 days ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
opaleye
-
What's your favorite Database EDSL/library in Haskell?
If you ever have any questions about Opaleye I'm happy to help. Feel free to open an issue to ask about anything any time.
-
Persistent vs. beam for production database
Sounds like Opaleye isn't on your list of choices, but if it is then feel free to ask me any questions, any time by filing an issue (I'm the Opaleye maintainer).
-
How to build a large-scale haskell backend for a photo sharing app (some questions)
Opaleye is Posgres-only, and Postgres does such a good job of optimizing queries that performance issues basically don't arise. I have a long-standing invitation to improve Opaleye's query generation as soon as anyone can produce a repeatable example of a poorly-performing query. In Opaleye's eight years, no one ever has. There's a thread where two reports have come close, but it's still not clear that that's simply due to using a six year old version of Postgres.
- What are things that the Haskell scene lacks the most?
-
Out of memory when building product-profunctors
Nice! Well done. If you have any more questions about product-profunctors or Opaleye then please let me know. It's best to ask by [opening an issue](https://github.com/tomjaguarpaw/haskell-opaleye/issues/new).
- Embedded Pattern Matching
- How to simply do opaleye field type conversion
-
Against SQL
The only way out that I can see is to design embedded domain specific languages (EDSLs) that inherit the expressiveness, composability and type safety from the host language. That's what Opaleye and Rel8 (Postgres EDSLs for Haskell do. Haskell is particularly good for this. The query language can be just a monad and therefore users can carry all of their knowledge of monadic programming to writing database queries.
This approach doesn't resolve all of the author's complaints but it does solve many.
Disclaimer: I'm the author of Opaleye. Rel8 is built on Opaleye. Other relational query EDSLs are available.
[1] https://github.com/tomjaguarpaw/haskell-opaleye/
-
Combining Deep and Shallow Embedding of Domain-Specific Languages
For an example of how this plays out in practice observe Opaleye's MaybeFields (generously contributed by Shane and /u/ocharles at Circuithub). The definition is essentially identical to Optional from the paper. Instead of a specialised typeclass Inhabited we use the ProductProfunctor NullSpec (which happens to conjure up an SQL NULL, but it could be any other witness).
stack
-
Leaving Haskell Behind
Ah, didn't run into this issue, as I don't use vscode.
Apparently there is some work being done to improve the stack <> hls experience, but I wouldn't know how it's going and when it's being delivered: https://github.com/commercialhaskell/stack/issues/6154
-
Help, i get this error when executing the command "xmonad"
this is it: # This file was automatically generated by 'stack init' # # Some commonly used options have been documented as comments in this file. # For advanced use and comprehensive documentation of the format, please see: # https://docs.haskellstack.org/en/stable/yaml\_configuration/ # Resolver to choose a 'specific' stackage snapshot or a compiler version. # A snapshot resolver dictates the compiler version and the set of packages # to be used for project dependencies. For example: # # resolver: lts-3.5 # resolver: nightly-2015-09-21 # resolver: ghc-7.10.2 # # The location of a snapshot can be provided as a file or url. Stack assumes # a snapshot provided as a file might change, whereas a url resource does not. # # resolver: ./custom-snapshot.yaml # resolver: https://example.com/snapshots/2018-01-01.yaml resolver: url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/23.yaml # User packages to be built. # Various formats can be used as shown in the example below. # # packages: # - some-directory # - https://example.com/foo/bar/baz-0.0.2.tar.gz # subdirs: # - auto-update # - wai packages: - xmonad - xmonad-contrib # Dependency packages to be pulled from upstream that are not in the resolver. # These entries can reference officially published versions as well as # forks / in-progress versions pinned to a git hash. For example: # # extra-deps: # - acme-missiles-0.3 # - git: https://github.com/commercialhaskell/stack.git # commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a # # extra-deps: [] # Override default flag values for local packages and extra-deps # flags: {} # Extra package databases containing global packages # extra-package-dbs: [] # Control whether we use the GHC we find on the path # system-ghc: true # # Require a specific version of Stack, using version ranges # require-stack-version: -any # Default # require-stack-version: ">=2.11" # # Override the architecture used by Stack, especially useful on Windows # arch: i386 # arch: x86_64 # # Extra directories used by Stack for building # extra-include-dirs: [/path/to/dir] # extra-lib-dirs: [/path/to/dir] # # Allow a newer minor version of GHC than the snapshot specifies # compiler-check: newer-minor
-
ANN: stack-2.11.1
Fix incorrect warning if allow-newer-deps are specified but allow-newer is false. See #6068.
-
[ANN] First release candidate for stack-2.11.1
You can download binaries for this pre-release from: Release rc/v2.11.0.1 (release candidate) · commercialhaskell/stack · GitHub .
-
PEP 582 rejected - consensus among the community needed
Fair enough! Thanks for the suggestion, then. In fact, the non-Python language I develop most in (Haskell, with the Stack package manager) has exactly that behaviour as a default: new packages are installed to a sandboxed local directory, and it takes an explicit request to install something globally. (And even then, you can switch between different global "known good configurations" of package versions which work well together – a pretty handy feature.)
- Any open source projects to contribute to for beginners
-
How to suppress warnings from external packages?
Opened a ticket on GitHub.
-
ANN: stack-2.9.3
In YAML configuration files, the hackage-security key of the package-index key or the package-indices item can be omitted, and the Hackage Security configuration for the item will default to that for the official Hackage server. See #5870.
-
`Stack build` fails with `gcc' failed in phase `Assembler'
FYI this was solved in here: https://github.com/commercialhaskell/stack/issues/5958
-
[ANN] First release candidate for stack-2.9.3
Yes, that is correct. Stack's allow-newer: true configuration has always actually meant 'ignore bounds'. However, the author of the allow-newer-deps development has in mind a further development that will introduce an actual ignore-bounds key with the same expressive syntax that is used by Cabal. This is discussed at Stack #5910.
What are some alternatives?
esqueleto - Bare bones, type-safe EDSL for SQL queries on persistent backends.
ghcup-hs - THIS REPO IS A MIRROR, BUG REPORTS GO HERE:
mywatch
Cabal - Official upstream development repository for Cabal and cabal-install
HDBC - Haskell Database Connectivity
ghcid - Very low feature GHCi based IDE
database-migrate - database-migrate haskell library to assist with migration for *-simple sql backends.
castle - A tool to manage shared cabal-install sandboxes.
HongoDB - A Simple Key Value Store
profiterole - GHC prof manipulation script
squeal-postgresql - Squeal, a deep embedding of SQL in Haskell
haskell-language-server - Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.