Skip to content

Instantly share code, notes, and snippets.

@philipschwarz
Last active April 18, 2021 10:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save philipschwarz/e81a33f85ef2cc48884d781448ec5398 to your computer and use it in GitHub Desktop.
Save philipschwarz/e81a33f85ef2cc48884d781448ec5398 to your computer and use it in GitHub Desktop.
module Main where
import Lib
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS -Wall -fno-warn-type-defaults #-}
import Graphics.Gloss
import Data.Monoid
window :: Display
window = InWindow "Window" (1400, 800) (10, 10)
background :: Color
background = greyN 0.7
axes :: Picture
axes = color red (line [ (-10000, 0), (10000, 0) ]) <>
color red (line [ (0, -10000), (0, 10000) ])
main :: IO ()
main = display window background axes
name: sierpinski
version: 0.1.0.0
github: "githubuser/sierpinski"
license: BSD3
author: "Author name here"
maintainer: "example@example.com"
copyright: "2021 Author name here"
extra-source-files:
- README.md
- ChangeLog.md
# Metadata used when publishing your package
# synopsis: Short description of your package
# category: Web
# To avoid duplicated efforts in documentation and dealing with the
# complications of embedding Haddock markup inside cabal files, it is
# common to point users to the README.md file.
description: Please see the README on GitHub at <https://github.com/githubuser/sierpinski#readme>
dependencies:
- base >= 4.7 && < 5
- gloss
library:
source-dirs: src
executables:
sierpinski-exe:
main: Main.hs
source-dirs: app
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- sierpinski
tests:
sierpinski-test:
main: Spec.hs
source-dirs: test
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- sierpinski
# 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: lts-17.9
# 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:
- .
# 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: [gloss-1.13.2.1]
# 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.3"
#
# 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
@philipschwarz
Copy link
Author

philipschwarz commented Apr 18, 2021

Nothing special about the code in Main.hs, which is from http://gitcommit.co.uk/2017/05/20/haskell-vectors-and-simple-mechanics-part-2/

In stack.yaml, I uncommented line 42 and added gloss

In packages.yaml, I added gloss on line 38

I am on a Mac. When I run 'stack repl' and then invoke 'main', I get this:

2021-04-18 10:21:09.017 ghc[56196:1246139] GLUT Fatal Error: internal error: NSInternalInconsistencyException, reason: NSWindow drag regions should only be invalidated on the Main Thread!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment