Compare commits

...

1523 Commits

Author SHA1 Message Date
Vaibhav Sagar
4f83b99b4a
flake.lock: Update (#1564)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/7d5a8e47e5f9506812fdd57138228c1f6bc76c0d?narHash=sha256-w0ENjUxC8/LpPGQ6jiNrwAkYA9dpuigKNTKLWgei0ho%3D' (2025-04-05)
  → 'github:haskell/haskell-language-server/c5c3ca4a992cc79e742bbfe9ee013467732d3aa4?narHash=sha256-8zoVia97o0Fo1ADis9FLXdvkSbRN69o5fPgemqlfKdQ%3D' (2025-04-10)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/f27c6099cec4fe9b67c7fbc51d8324dcb4b52694?narHash=sha256-QNxnxIi6PJEnwJp7ZXUpxX4/z/cmRJGeIOkIYfYh/8E%3D' (2025-04-05)
  → 'github:NixOS/nixpkgs/86484f6076aac9141df2bfcddbf7dcfce5e0c6bb?narHash=sha256-qqKO4FOo/vPmNIaRPcLqwfudUlQ29iNdI1IbCZfjmxs%3D' (2025-04-12)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/63ff7e1407a93267f56bfb00ff64cd7336b83b9b?narHash=sha256-RATxSX2QkIscNv2Kersvz8WHB3YBrzbzojSerJOQUFA%3D' (2025-04-06)
  → 'github:NixOS/nixpkgs/ae29fc75d2d3ee07f88ce1a252d76964eb1efb24?narHash=sha256-N9uWy2Ti5H5gYDoAPEcJ0i4dAbdQD9auJ2YjskbMqOc%3D' (2025-04-13)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-17 09:17:03 +10:00
Vaibhav Sagar
0bc895bb28
flake.lock: Update (#1563)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/fcf8a7fb8a3b27ac62536749ee4bde2a7af55d07?narHash=sha256-WnatWk%2BL2Om6eM1AkFRGKuNTBFAL02vL5YPCVqiRmlo%3D' (2025-03-26)
  → 'github:haskell/haskell-language-server/7d5a8e47e5f9506812fdd57138228c1f6bc76c0d?narHash=sha256-w0ENjUxC8/LpPGQ6jiNrwAkYA9dpuigKNTKLWgei0ho%3D' (2025-04-05)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/b9c20f02b5c6e5ef418767eac59c2655d18419f0?narHash=sha256-v2NB8B3EahTvJ0Zg6QVJVUjq2cBwZ0UKTwMr2nv9718%3D' (2025-03-29)
  → 'github:NixOS/nixpkgs/f27c6099cec4fe9b67c7fbc51d8324dcb4b52694?narHash=sha256-QNxnxIi6PJEnwJp7ZXUpxX4/z/cmRJGeIOkIYfYh/8E%3D' (2025-04-05)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/c62f3756566e29e623ba3618d3ff987e9f7e4481?narHash=sha256-le6nzSG0OR/GWFAx1GM62oRboKjKExxAXNUKVUeA9aA%3D' (2025-03-30)
  → 'github:NixOS/nixpkgs/63ff7e1407a93267f56bfb00ff64cd7336b83b9b?narHash=sha256-RATxSX2QkIscNv2Kersvz8WHB3YBrzbzojSerJOQUFA%3D' (2025-04-06)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-07 13:31:57 +10:00
Vaibhav Sagar
336fd4f591
flake.lock: Update (#1562)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/0344a5a6f9662b04f1052b0a1ebf5f2009cd7fb9?narHash=sha256-cYSDj7Rot9WhHL/G5Sr4S4jYbsHZoM0sBd7jbxaeBYE%3D' (2025-03-20)
  → 'github:haskell/haskell-language-server/fcf8a7fb8a3b27ac62536749ee4bde2a7af55d07?narHash=sha256-WnatWk%2BL2Om6eM1AkFRGKuNTBFAL02vL5YPCVqiRmlo%3D' (2025-03-26)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/4e6b2f77a52326e29873bd655fbc2cd7d609ff8c?narHash=sha256-yBG3FSfw065VtuAzSVBcHm%2BgR69693ndwOBB3HXqmQg%3D' (2025-03-23)
  → 'github:NixOS/nixpkgs/b9c20f02b5c6e5ef418767eac59c2655d18419f0?narHash=sha256-v2NB8B3EahTvJ0Zg6QVJVUjq2cBwZ0UKTwMr2nv9718%3D' (2025-03-29)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/e448c1c1e6d3c3edb58c356469f64c578b12d0ff?narHash=sha256-f0YhZj1kSXX9teHhvUMwQL%2Bgy%2BzzLtW%2BfSNbX5e92bc%3D' (2025-03-23)
  → 'github:NixOS/nixpkgs/c62f3756566e29e623ba3618d3ff987e9f7e4481?narHash=sha256-le6nzSG0OR/GWFAx1GM62oRboKjKExxAXNUKVUeA9aA%3D' (2025-03-30)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-02 03:06:51 +11:00
Vaibhav Sagar
7eab46de7b
flake.lock: Update (#1561)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/682d6894c94087da5e566771f25311c47e145359?narHash=sha256-tuq3%2BIp70yu89GswZ7DSINBpwRprnWnl6xDYnS4GOsc%3D' (2025-03-10)
  → 'github:haskell/haskell-language-server/0344a5a6f9662b04f1052b0a1ebf5f2009cd7fb9?narHash=sha256-cYSDj7Rot9WhHL/G5Sr4S4jYbsHZoM0sBd7jbxaeBYE%3D' (2025-03-20)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/f182029bf7f08a57762b4c762d0917b6803ceff4?narHash=sha256-2aEgxL5RSzNHWFLWEUFXZhkVEYDOuVSXQBiOonzT/Kg%3D' (2025-03-15)
  → 'github:NixOS/nixpkgs/4e6b2f77a52326e29873bd655fbc2cd7d609ff8c?narHash=sha256-yBG3FSfw065VtuAzSVBcHm%2BgR69693ndwOBB3HXqmQg%3D' (2025-03-23)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/fb6ff3988cc0f68d23b6db9cd70b87f2f88e1a32?narHash=sha256-uygocyOFl9KlzpUbQrYn0/D0eE5rc%2BjRp%2B5qqm%2B0L3Q%3D' (2025-03-16)
  → 'github:NixOS/nixpkgs/e448c1c1e6d3c3edb58c356469f64c578b12d0ff?narHash=sha256-f0YhZj1kSXX9teHhvUMwQL%2Bgy%2BzzLtW%2BfSNbX5e92bc%3D' (2025-03-23)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-23 14:33:40 +11:00
Vaibhav Sagar
aa5bb09241
flake.lock: Update (#1560)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/980c846e6b1f435ccc3b8ceee059d9cf154b6ea0?narHash=sha256-1QHasNFvlpNrrBFwAEnv4yJZbNNdsIQtKVnDbrlmEok%3D' (2025-03-01)
  → 'github:haskell/haskell-language-server/682d6894c94087da5e566771f25311c47e145359?narHash=sha256-tuq3%2BIp70yu89GswZ7DSINBpwRprnWnl6xDYnS4GOsc%3D' (2025-03-10)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/d8db6a8c3559d4d6b19e1e2f6e01a8697b375250?narHash=sha256-DGCoFOtmp%2BlZiSDniOwPJddU%2BYN7MsmjEL6XY0W3WsM%3D' (2025-03-08)
  → 'github:NixOS/nixpkgs/f182029bf7f08a57762b4c762d0917b6803ceff4?narHash=sha256-2aEgxL5RSzNHWFLWEUFXZhkVEYDOuVSXQBiOonzT/Kg%3D' (2025-03-15)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/5c2eeaafda070b7c357b839f13bb53c1d4334001?narHash=sha256-MrMsXesCo5Y79F5qjlybADozu60Zk91jVBi%2BFnoEiJU%3D' (2025-03-09)
  → 'github:NixOS/nixpkgs/fb6ff3988cc0f68d23b6db9cd70b87f2f88e1a32?narHash=sha256-uygocyOFl9KlzpUbQrYn0/D0eE5rc%2BjRp%2B5qqm%2B0L3Q%3D' (2025-03-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-16 22:33:46 +11:00
Vaibhav Sagar
4a4fbbd96e
Merge pull request #1558 from arossato/master
add an ihaskell-display module for displaying matplotlib visualizations
2025-03-09 16:06:37 +11:00
Vaibhav Sagar
824f10c7e3
flake.lock: Update (#1559)
Flake lock file updates:

• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/5ef6c425980847c78a80d759abc476e941a9bf42?narHash=sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc%3D' (2025-03-01)
  → 'github:NixOS/nixpkgs/d8db6a8c3559d4d6b19e1e2f6e01a8697b375250?narHash=sha256-DGCoFOtmp%2BlZiSDniOwPJddU%2BYN7MsmjEL6XY0W3WsM%3D' (2025-03-08)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/dce71cf375b46d9c2e949cbba3538b8f95fbaf6e?narHash=sha256-ct7niO8dtduBpJphXMh4WnPS789t8cMLbGMuupXhsgI%3D' (2025-03-02)
  → 'github:NixOS/nixpkgs/5c2eeaafda070b7c357b839f13bb53c1d4334001?narHash=sha256-MrMsXesCo5Y79F5qjlybADozu60Zk91jVBi%2BFnoEiJU%3D' (2025-03-09)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-09 15:32:27 +11:00
Andrea Rossato
4eff1244c5 add an ihaskell-display module for displaying matplotlib visualizations 2025-03-08 18:29:08 +01:00
Vaibhav Sagar
7d4fec0141
flake.lock: Update (#1557)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/9891292e1a9ae355516d9617440169ad3c4c9394?narHash=sha256-rdgk1vrcujoY4U8tS4Jv54IiUHEygFLX7ovJXWGDGU4%3D' (2025-02-16)
  → 'github:haskell/haskell-language-server/980c846e6b1f435ccc3b8ceee059d9cf154b6ea0?narHash=sha256-1QHasNFvlpNrrBFwAEnv4yJZbNNdsIQtKVnDbrlmEok%3D' (2025-03-01)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/2ebb630421d52099270cee0ae14f4fa9ebbe3cdf?narHash=sha256-EJB%2BlbxCkATB8F37DTmEPzfMtiQmyPY0HtgsmJOzKy0%3D' (2025-02-23)
  → 'github:NixOS/nixpkgs/5ef6c425980847c78a80d759abc476e941a9bf42?narHash=sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc%3D' (2025-03-01)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/5c978e28528081e3dab8183501de4f4dec1928fa?narHash=sha256-VfqjPUHq5eRdOTEy9WFRvamAUQ/Z2QyOZQptUA2XkOw%3D' (2025-02-23)
  → 'github:NixOS/nixpkgs/dce71cf375b46d9c2e949cbba3538b8f95fbaf6e?narHash=sha256-ct7niO8dtduBpJphXMh4WnPS789t8cMLbGMuupXhsgI%3D' (2025-03-02)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-02 19:21:55 +11:00
Vaibhav Sagar
90b3d22e0f
flake.lock: Update (#1556)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/3474a52412bfeeed6bc471eaf4b1126afac6b9d3?narHash=sha256-P56p/NvANQOeb2nW6pXkIAXDK2ihLIaZqNT7etMUOR0%3D' (2025-02-12)
  → 'github:haskell/haskell-language-server/9891292e1a9ae355516d9617440169ad3c4c9394?narHash=sha256-rdgk1vrcujoY4U8tS4Jv54IiUHEygFLX7ovJXWGDGU4%3D' (2025-02-16)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/470549237555fb64c3c8052dd50b63de403c03ad?narHash=sha256-b55NPmFLPE6GRUTJ7tCGjexmlcwZA2VYTQukyH8f/Oo%3D' (2025-02-15)
  → 'github:NixOS/nixpkgs/2ebb630421d52099270cee0ae14f4fa9ebbe3cdf?narHash=sha256-EJB%2BlbxCkATB8F37DTmEPzfMtiQmyPY0HtgsmJOzKy0%3D' (2025-02-23)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/2c783356cb04c4a06d605efb5670f9f0cb3b0692?narHash=sha256-IJbnlaazEb1S9fbzi0MEDsDMxX%2B%2BlH67wWU%2B4x9FRwo%3D' (2025-02-16)
  → 'github:NixOS/nixpkgs/5c978e28528081e3dab8183501de4f4dec1928fa?narHash=sha256-VfqjPUHq5eRdOTEy9WFRvamAUQ/Z2QyOZQptUA2XkOw%3D' (2025-02-23)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-24 00:25:13 +11:00
Vaibhav Sagar
5e38123ac2
flake.lock: Update (#1555)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/d75400d7a3416a71b900e54177124ac1183a340b?narHash=sha256-m58D1Oe6oWbJ7E9xzEf9TsUx5wXIx4c2tWnxKwIFGEo%3D' (2025-01-24)
  → 'github:haskell/haskell-language-server/3474a52412bfeeed6bc471eaf4b1126afac6b9d3?narHash=sha256-P56p/NvANQOeb2nW6pXkIAXDK2ihLIaZqNT7etMUOR0%3D' (2025-02-12)
• Updated input 'hls/flake-compat':
    'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33?narHash=sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U%3D' (2023-10-04)
  → 'github:edolstra/flake-compat/ff81ac966bb2cae68946d5ed5fc4994f96d0ffec?narHash=sha256-NeCCThCEP3eCl2l/%2B27kNNK7QrwZB1IJCrXfrbv5oqU%3D' (2024-12-04)
• Updated input 'hls/nixpkgs':
    'github:NixOS/nixpkgs/e913ae340076bbb73d9f4d3d065c2bca7caafb16?narHash=sha256-Ds1QpobBX2yoUDx9ZruqVGJ/uQPgcXoYuobBguyKEh8%3D' (2024-06-11)
  → 'github:NixOS/nixpkgs/fa35a3c8e17a3de613240fea68f876e5b4896aec?narHash=sha256-7Fu7oazPoYCbDzb9k8D/DdbKrC3aU1zlnc39Y8jy/s8%3D' (2025-02-08)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/a45fa362d887f4d4a7157d95c28ca9ce2899b70e?narHash=sha256-2MhC2Bgd06uI1A0vkdNUyDYsMD0SLNGKtD8600mZ69A%3D' (2025-02-08)
  → 'github:NixOS/nixpkgs/470549237555fb64c3c8052dd50b63de403c03ad?narHash=sha256-b55NPmFLPE6GRUTJ7tCGjexmlcwZA2VYTQukyH8f/Oo%3D' (2025-02-15)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/830fdc986d90a262acc7a8d54886cefea284b760?narHash=sha256-wLtJMqrdNTDb7rH8zTUO%2B5C5zvX05r7o3li%2BFvHPVQE%3D' (2025-02-09)
  → 'github:NixOS/nixpkgs/2c783356cb04c4a06d605efb5670f9f0cb3b0692?narHash=sha256-IJbnlaazEb1S9fbzi0MEDsDMxX%2B%2BlH67wWU%2B4x9FRwo%3D' (2025-02-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-16 13:49:03 +11:00
Vaibhav Sagar
29d1622d1e
flake.lock: Update (#1554)
Flake lock file updates:

• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/e023f35e56dfda07d3cabf6ec52d78fe18f16b6b?narHash=sha256-Zk/XAfxRGfWS9RzfgWcVNk5FmbRZpIjugopiNcPtgLg%3D' (2025-02-01)
  → 'github:NixOS/nixpkgs/a45fa362d887f4d4a7157d95c28ca9ce2899b70e?narHash=sha256-2MhC2Bgd06uI1A0vkdNUyDYsMD0SLNGKtD8600mZ69A%3D' (2025-02-08)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/b29c6f5a4a438b94ff5726d631752c402d2fe5ab?narHash=sha256-gdJvgRimog4MldVhOwQIOVjYpL1THgDR8jeUhXzOoPo%3D' (2025-02-02)
  → 'github:NixOS/nixpkgs/830fdc986d90a262acc7a8d54886cefea284b760?narHash=sha256-wLtJMqrdNTDb7rH8zTUO%2B5C5zvX05r7o3li%2BFvHPVQE%3D' (2025-02-09)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-09 17:48:42 +11:00
Vaibhav Sagar
571f6a4b08
flake.lock: Update (#1553)
Flake lock file updates:

• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/134f26efdff1a85154a92e16f05afe6f740a1350?narHash=sha256-3NUmvTH5Z4Z9yZPiquLF3n6C1hZkQIjpmtzBLX3ej3s%3D' (2025-01-26)
  → 'github:NixOS/nixpkgs/e023f35e56dfda07d3cabf6ec52d78fe18f16b6b?narHash=sha256-Zk/XAfxRGfWS9RzfgWcVNk5FmbRZpIjugopiNcPtgLg%3D' (2025-02-01)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/eff6e75e2fa58e1f1beaf221e95c601332557897?narHash=sha256-s5CTljlvUkNCszvz%2BW42kJrxZK%2BN1o%2Bgw/egImHYRIU%3D' (2025-01-26)
  → 'github:NixOS/nixpkgs/b29c6f5a4a438b94ff5726d631752c402d2fe5ab?narHash=sha256-gdJvgRimog4MldVhOwQIOVjYpL1THgDR8jeUhXzOoPo%3D' (2025-02-02)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-03 13:07:53 +11:00
Vaibhav Sagar
2d64ed8cf5
Update flake.lock (#1552)
* flake.lock: Update

Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/2df8775fa6062073904e96c48b456045511f05b5?narHash=sha256-vR9ofAAFUKeuSCJ6XJdPORspDnNJNLe3pzVF1h9O5Js%3D' (2025-01-11)
  → 'github:haskell/haskell-language-server/d75400d7a3416a71b900e54177124ac1183a340b?narHash=sha256-m58D1Oe6oWbJ7E9xzEf9TsUx5wXIx4c2tWnxKwIFGEo%3D' (2025-01-24)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/51aa6fea893421a41069c1e3fb3262dd476c9563?narHash=sha256-gUQJ3AOz/xSqA0q52kmYn4BGWPhr%2BoVkOLg2wkvvPbo%3D' (2025-01-18)
  → 'github:NixOS/nixpkgs/134f26efdff1a85154a92e16f05afe6f740a1350?narHash=sha256-3NUmvTH5Z4Z9yZPiquLF3n6C1hZkQIjpmtzBLX3ej3s%3D' (2025-01-26)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/26a54cc350b0a17c9a7cfeff28a6c3430f5f061e?narHash=sha256-hW0h/YRrySaWMhBdgWif5VbT6XQN6VFVVDTokclndAA%3D' (2025-01-19)
  → 'github:NixOS/nixpkgs/eff6e75e2fa58e1f1beaf221e95c601332557897?narHash=sha256-s5CTljlvUkNCszvz%2BW42kJrxZK%2BN1o%2Bgw/egImHYRIU%3D' (2025-01-26)

* nix/overlay-9.10.nix: update overrides

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-27 10:24:29 +11:00
Yoo Chung
f3ddf8c187
Update haskell/actions/setup to haskell-actions/setup. (#1551)
Other instances of `haskell/actions/setup` had already been migrated to `haskell-actions/setup`, but the one for the Docker action remained, so it is the only remaining instance of the use of the deprecated `haskell/actions/setup` action.
2025-01-21 14:49:14 +11:00
Vaibhav Sagar
de1eef7174
flake.lock: Update (#1550)
Flake lock file updates:

• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/c4533bdb2e7a4eb14096414e8dee7762a968cae3?narHash=sha256-6Fnro1glZHrHUPnkcpxw7tkpVJWQZiJfp/N1zhl1MhY%3D' (2025-01-12)
  → 'github:NixOS/nixpkgs/51aa6fea893421a41069c1e3fb3262dd476c9563?narHash=sha256-gUQJ3AOz/xSqA0q52kmYn4BGWPhr%2BoVkOLg2wkvvPbo%3D' (2025-01-18)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/79481aada2520b4320e3a91d209194ffa34c0f9e?narHash=sha256-SDcO/d2GNtO0trQN9kaWSMLDS8f2QkBJeCMvy%2BivxG8%3D' (2025-01-12)
  → 'github:NixOS/nixpkgs/26a54cc350b0a17c9a7cfeff28a6c3430f5f061e?narHash=sha256-hW0h/YRrySaWMhBdgWif5VbT6XQN6VFVVDTokclndAA%3D' (2025-01-19)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-19 17:29:45 +11:00
Vaibhav Sagar
a65bb1c61d
flake.lock: Update (#1549)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/b87bdb9ebd44b4494e3e9e9c304d4dbf8810905f?narHash=sha256-Yd4ffiFsXCQ3sr2i221eXa%2BuSzVOlZ2%2Bx/%2BllYG5MDA%3D' (2025-01-04)
  → 'github:haskell/haskell-language-server/2df8775fa6062073904e96c48b456045511f05b5?narHash=sha256-vR9ofAAFUKeuSCJ6XJdPORspDnNJNLe3pzVF1h9O5Js%3D' (2025-01-11)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/c58d7c52034cc47a1ac2566a27f9de1fd55b1c34?narHash=sha256-gtefqeumSXt6ofAfl8XbGJho2ilHpQu2DPspDh/KeGQ%3D' (2025-01-05)
  → 'github:NixOS/nixpkgs/c4533bdb2e7a4eb14096414e8dee7762a968cae3?narHash=sha256-6Fnro1glZHrHUPnkcpxw7tkpVJWQZiJfp/N1zhl1MhY%3D' (2025-01-12)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/1ce00b16473356ac51cbc242b480c6908bb0f405?narHash=sha256-aed2NHYcX8KgKjD6mvnvBgqpKSAD9R4PBsFB1sZVODM%3D' (2025-01-05)
  → 'github:NixOS/nixpkgs/79481aada2520b4320e3a91d209194ffa34c0f9e?narHash=sha256-SDcO/d2GNtO0trQN9kaWSMLDS8f2QkBJeCMvy%2BivxG8%3D' (2025-01-12)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-12 21:53:06 +11:00
Vaibhav Sagar
eee087dbae
flake.lock: Update (#1548)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/f09500b85f0f75acdbf15096ef0c04e0a134f43a?narHash=sha256-jDwyGRqvtyXLRY4PexAOcWVUrlII%2BIlonBzcRS9v9Gg%3D' (2024-12-24)
  → 'github:haskell/haskell-language-server/b87bdb9ebd44b4494e3e9e9c304d4dbf8810905f?narHash=sha256-Yd4ffiFsXCQ3sr2i221eXa%2BuSzVOlZ2%2Bx/%2BllYG5MDA%3D' (2025-01-04)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/6488d4dbbe8d4add3b28970ed0d1448506ab2968?narHash=sha256-bzwL5IIrnM4LUdi6Nj0/S9P6dkfoQLAqcY8YD2%2BLmxo%3D' (2024-12-28)
  → 'github:NixOS/nixpkgs/c58d7c52034cc47a1ac2566a27f9de1fd55b1c34?narHash=sha256-gtefqeumSXt6ofAfl8XbGJho2ilHpQu2DPspDh/KeGQ%3D' (2025-01-05)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/1674fb11467ffa5704dba31bf02a5283a76d400d?narHash=sha256-B6LRl2qJzeUERCfK7N3EexBfaHASPTkzVV50KVQqiRw%3D' (2024-12-29)
  → 'github:NixOS/nixpkgs/1ce00b16473356ac51cbc242b480c6908bb0f405?narHash=sha256-aed2NHYcX8KgKjD6mvnvBgqpKSAD9R4PBsFB1sZVODM%3D' (2025-01-05)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-05 13:43:47 +11:00
Vaibhav Sagar
b6aaf3d110
.github/workflows/nix.yml: run tests on GHC 9.10 (#1547)
* .github/workflows/nix.yml: run tests on GHC 9.10

* test/acceptance.nbconvert.sh: update
2024-12-29 17:29:05 +11:00
Vaibhav Sagar
7aec9bd6ff
flake.lock: Update (#1546)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/25c5d82ce09431a1b53dfa1784a276a709f5e479?narHash=sha256-vIi4w5v9swzJunALrLRxwwU5ndoIG7w1mfByX%2BS%2Bs9A%3D' (2024-12-04)
  → 'github:haskell/haskell-language-server/f09500b85f0f75acdbf15096ef0c04e0a134f43a?narHash=sha256-jDwyGRqvtyXLRY4PexAOcWVUrlII%2BIlonBzcRS9v9Gg%3D' (2024-12-24)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/1807c2b91223227ad5599d7067a61665c52d1295?narHash=sha256-Pzyb%2BYNG5u3zP79zoi8HXYMs15Q5dfjDgwCdUI5B0nY%3D' (2024-12-22)
  → 'github:NixOS/nixpkgs/6488d4dbbe8d4add3b28970ed0d1448506ab2968?narHash=sha256-bzwL5IIrnM4LUdi6Nj0/S9P6dkfoQLAqcY8YD2%2BLmxo%3D' (2024-12-28)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/e57ad1e59a3b0c38c06df6bcb71e3ed80725d087?narHash=sha256-lTaczTbwYXw%2Blnio1UckbzLApEFDreHAqygHHWOr8VQ%3D' (2024-12-22)
  → 'github:NixOS/nixpkgs/1674fb11467ffa5704dba31bf02a5283a76d400d?narHash=sha256-B6LRl2qJzeUERCfK7N3EexBfaHASPTkzVV50KVQqiRw%3D' (2024-12-29)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-29 13:55:14 +11:00
Vaibhav Sagar
7670b13673 Enable HLint for GHC 9.10 2024-12-29 02:37:38 +11:00
Vaibhav Sagar
14ae0d23b8 nix/mkDevShell.nix: revert changes which broke nix develop 2024-12-29 02:20:54 +11:00
Vaibhav Sagar
95f0f318a1
flake.lock: Update (#1545)
Flake lock file updates:

• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/afd6250d32edc72cebe7eda59b462251724256c3?narHash=sha256-GF5xIvGz61Jnc1IwS8WCSXa%2Bbew549L5ASTImMdEINY%3D' (2024-12-15)
  → 'github:NixOS/nixpkgs/1807c2b91223227ad5599d7067a61665c52d1295?narHash=sha256-Pzyb%2BYNG5u3zP79zoi8HXYMs15Q5dfjDgwCdUI5B0nY%3D' (2024-12-22)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/761be8832bf8dbfb0e6a525a2edc227fa907ff2c?narHash=sha256-Y8od0DoTdKzSH8Mc3CgHSVDtjOAze7DBk56hTOYajQg%3D' (2024-12-15)
  → 'github:NixOS/nixpkgs/e57ad1e59a3b0c38c06df6bcb71e3ed80725d087?narHash=sha256-lTaczTbwYXw%2Blnio1UckbzLApEFDreHAqygHHWOr8VQ%3D' (2024-12-22)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-23 01:21:20 +11:00
Vaibhav Sagar
2c2fef58c0
flake.lock: Update (#1544)
Flake lock file updates:

• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/8ef1582acaced62ae72827a52f616a01df0806ef?narHash=sha256-/surTJZuPB2XT6w%2Bvd8iY2jhJqR%2ByBg6HellBq%2B/pqE%3D' (2024-12-08)
  → 'github:NixOS/nixpkgs/afd6250d32edc72cebe7eda59b462251724256c3?narHash=sha256-GF5xIvGz61Jnc1IwS8WCSXa%2Bbew549L5ASTImMdEINY%3D' (2024-12-15)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/3dff76a8eed239feaca184bc91a63ac083e54cb7?narHash=sha256-Kt5hqx8Or/UFhLUeZ37UVLeYHwIIazdxpGkuSh5UmLU%3D' (2024-12-08)
  → 'github:NixOS/nixpkgs/761be8832bf8dbfb0e6a525a2edc227fa907ff2c?narHash=sha256-Y8od0DoTdKzSH8Mc3CgHSVDtjOAze7DBk56hTOYajQg%3D' (2024-12-15)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-16 12:28:34 +11:00
Vaibhav Sagar
13488f522b
flake.lock: Update (#1542)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/fea01358646a767980eb8645f7ef8878d83725fe?narHash=sha256-JTjkZOoDonda/EbIWXxPEr3hBVkVu2388XAxMWduKJQ%3D' (2024-11-25)
  → 'github:haskell/haskell-language-server/25c5d82ce09431a1b53dfa1784a276a709f5e479?narHash=sha256-vIi4w5v9swzJunALrLRxwwU5ndoIG7w1mfByX%2BS%2Bs9A%3D' (2024-12-04)
• Updated input 'nixpkgs24_11':
    'github:NixOS/nixpkgs/8b5e45a51799bc3569fc389ec4d79cf28c0ce699?narHash=sha256-W3SXPj02ZQ7ubzAD%2BCQDiW0bsjq2rSUwAwNvxFi4qrQ%3D' (2024-12-01)
  → 'github:NixOS/nixpkgs/8ef1582acaced62ae72827a52f616a01df0806ef?narHash=sha256-/surTJZuPB2XT6w%2Bvd8iY2jhJqR%2ByBg6HellBq%2B/pqE%3D' (2024-12-08)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/aa3e602431593f4b83a3b71aaf0b84fbde8f1a4b?narHash=sha256-lgALHzwMM2qWKBGoOfSCQ%2BJ%2BP7CvfRQTQdaHsX8HeGc%3D' (2024-12-01)
  → 'github:NixOS/nixpkgs/3dff76a8eed239feaca184bc91a63ac083e54cb7?narHash=sha256-Kt5hqx8Or/UFhLUeZ37UVLeYHwIIazdxpGkuSh5UmLU%3D' (2024-12-08)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-08 14:27:25 +11:00
Vaibhav Sagar
d896621edb
Use Nixpkgs 24.11 (#1541)
* Use Nixpkgs 24.11
* nix/overlay-9.8.nix: update overrides
2024-12-01 23:08:27 +11:00
Vaibhav Sagar
6053b7ed65
Fix lint warnings raised by deadnix (#1540) 2024-12-01 22:18:48 +11:00
Vaibhav Sagar
4677c23fca
flake.lock: Update (#1539)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/6d0a6f220226fe6c1cb5b6533177deb55e755b0b?narHash=sha256-TE0Sa7PLToAr7b2vE/ApoWq8em34GhUowBiudg8TxD4%3D' (2024-11-04)
  → 'github:haskell/haskell-language-server/fea01358646a767980eb8645f7ef8878d83725fe?narHash=sha256-JTjkZOoDonda/EbIWXxPEr3hBVkVu2388XAxMWduKJQ%3D' (2024-11-25)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/1d4675689f3de9fbc08e8d5587c4726a50c262d1?narHash=sha256-8m5aa8HwKBLeopyHMB3fJeHQJq/9vuDKrnnUkmFHpI4%3D' (2024-11-24)
  → 'github:NixOS/nixpkgs/7e1ca67996afd8233d9033edd26e442836cc2ad6?narHash=sha256-8qwPSE2g1othR1u4uP86NXxm6i7E9nHPyJX3m3lx7Q4%3D' (2024-12-01)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/77be1499afb12fb7ae19ac8bf43b456168ddb0b8?narHash=sha256-cbJyv5iyJHMBbuHJEb0tK9dmnzh3v3otzSgrik8R%2Bos%3D' (2024-11-24)
  → 'github:NixOS/nixpkgs/ac35b104800bff9028425fec3b6e8a41de2bbfff?narHash=sha256-t4BBVpwG9B4hLgc6GUBuj3cjU7lP/PJfpTHuSqE%2Bcrk%3D' (2024-12-01)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-01 15:24:41 +11:00
Vaibhav Sagar
575059d337
flake.lock: Update (#1538)
Flake lock file updates:

• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/e8c38b73aeb218e27163376a2d617e61a2ad9b59?narHash=sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g%3D' (2024-11-16)
  → 'github:NixOS/nixpkgs/1d4675689f3de9fbc08e8d5587c4726a50c262d1?narHash=sha256-8m5aa8HwKBLeopyHMB3fJeHQJq/9vuDKrnnUkmFHpI4%3D' (2024-11-24)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/cd43d6867192ddfb98ba106065a89790e2722b3f?narHash=sha256-GRlDXqmwJoW3F0Ymn0ETLsxujLD5idvdaDEzIjF5EEs%3D' (2024-11-16)
  → 'github:NixOS/nixpkgs/77be1499afb12fb7ae19ac8bf43b456168ddb0b8?narHash=sha256-cbJyv5iyJHMBbuHJEb0tK9dmnzh3v3otzSgrik8R%2Bos%3D' (2024-11-24)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-24 15:56:21 +11:00
Vaibhav Sagar
bf7d4cb2be
flake.lock: Update (#1536)
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a?narHash=sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ%3D' (2024-09-17)
  → 'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13)
• Updated input 'nix-filter':
    'github:numtide/nix-filter/776e68c1d014c3adde193a18db9d738458cd2ba4?narHash=sha256-SCHiL%2B1f7q9TAnxpasriP6fMarWE5H43t25F5/9e28I%3D' (2024-10-29)
  → 'github:numtide/nix-filter/f7653272fd234696ae94229839a99b73c9ab7de0?narHash=sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms%3D' (2024-11-13)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/0b88841b5eb61720be435a9e40f69bd853fa232c?narHash=sha256-LTwbJCRZua1cZCiaisO1pnX446EKSZcYy9730jX1F4w%3D' (2024-11-09)
  → 'github:NixOS/nixpkgs/e8c38b73aeb218e27163376a2d617e61a2ad9b59?narHash=sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g%3D' (2024-11-16)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/74d1b07edbf203740b8aeb7e5dfddad07378c55c?narHash=sha256-i/1MaQI4ysw67FVFfZSzQ3uyfQkOkhCYKT3wegBf%2ByU%3D' (2024-11-10)
  → 'github:NixOS/nixpkgs/cd43d6867192ddfb98ba106065a89790e2722b3f?narHash=sha256-GRlDXqmwJoW3F0Ymn0ETLsxujLD5idvdaDEzIjF5EEs%3D' (2024-11-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-17 23:07:43 +11:00
Vaibhav Sagar
047a871917
flake.lock: Update (#1535)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/d923d827af0f06986b91a03f437ca403e8f2bee4?narHash=sha256-amcdTAnCQopOjdQdlFiTIoaSngBigXlAG9QvQYuhy4A%3D' (2024-10-24)
  → 'github:haskell/haskell-language-server/6d0a6f220226fe6c1cb5b6533177deb55e755b0b?narHash=sha256-TE0Sa7PLToAr7b2vE/ApoWq8em34GhUowBiudg8TxD4%3D' (2024-11-04)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/ea820a7ccaea99d84dda0c5ecbe5fa4992443ad6?narHash=sha256-JA%2BuU5AV0ePKOD5NqIkgIYq7TnNm6lN0CLZgt%2BpP03Q%3D' (2024-11-02)
  → 'github:NixOS/nixpkgs/0b88841b5eb61720be435a9e40f69bd853fa232c?narHash=sha256-LTwbJCRZua1cZCiaisO1pnX446EKSZcYy9730jX1F4w%3D' (2024-11-09)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/3ce0ea52a0a71ac04f4ce0a2c8a629e02a4e6279?narHash=sha256-gCkK9sTqEKYRM5db5nPydip//4mQfiW3GTEw874bYps%3D' (2024-11-03)
  → 'github:NixOS/nixpkgs/74d1b07edbf203740b8aeb7e5dfddad07378c55c?narHash=sha256-i/1MaQI4ysw67FVFfZSzQ3uyfQkOkhCYKT3wegBf%2ByU%3D' (2024-11-10)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-10 16:06:27 +11:00
Vaibhav Sagar
ae728320bd
.github/workflows: cancel-in-progress (#1534) 2024-11-06 01:16:32 +11:00
Vaibhav Sagar
0440d5f7bb
Update flake.lock (#1533)
* flake.lock: Update

Flake lock file updates:

• Updated input 'nix-filter':
    'github:numtide/nix-filter/3342559a24e85fc164b295c3444e8a139924675b?narHash=sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj%2BrL8sRQsSM%3D' (2024-03-11)
  → 'github:numtide/nix-filter/776e68c1d014c3adde193a18db9d738458cd2ba4?narHash=sha256-SCHiL%2B1f7q9TAnxpasriP6fMarWE5H43t25F5/9e28I%3D' (2024-10-29)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/cd3e8833d70618c4eea8df06f95b364b016d4950?narHash=sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk%3D' (2024-10-26)
  → 'github:NixOS/nixpkgs/ea820a7ccaea99d84dda0c5ecbe5fa4992443ad6?narHash=sha256-JA%2BuU5AV0ePKOD5NqIkgIYq7TnNm6lN0CLZgt%2BpP03Q%3D' (2024-11-02)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/d31617bedffa3e5fe067feba1c68b1a7f644cb4f?narHash=sha256-ZY1qoI8sdcheYWrVqwfQzqwKY31qe76brLz89snKVt4%3D' (2024-10-27)
  → 'github:NixOS/nixpkgs/3ce0ea52a0a71ac04f4ce0a2c8a629e02a4e6279?narHash=sha256-gCkK9sTqEKYRM5db5nPydip//4mQfiW3GTEw874bYps%3D' (2024-11-03)

* stack/stack-9.4.yaml: add libsysprof-capture

* stack/stack-9.6.yaml: add libsysprof-capture

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-03 20:16:41 +11:00
Vaibhav Sagar
c43d19a432 nix/mkDevShell.nix: include test dependencies by default 2024-11-03 11:19:33 +11:00
Vaibhav Sagar
b42a1db3f5 ihaskell: 0.12.0.0 2024-11-03 11:11:43 +11:00
Vaibhav Sagar
44c371fad0 ghc-parser: 0.2.7.0 2024-11-03 11:05:04 +11:00
Vaibhav Sagar
c414ee58a6
flake.lock: Update (#1532)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/1ec65ee176aa34066abec700966900ee3a18b405?narHash=sha256-3/QQ1dBP6yXiNYK3Dw3pHPNqQIg9LXgx0cvssfbt3Qs%3D' (2024-10-14)
  → 'github:haskell/haskell-language-server/d923d827af0f06986b91a03f437ca403e8f2bee4?narHash=sha256-amcdTAnCQopOjdQdlFiTIoaSngBigXlAG9QvQYuhy4A%3D' (2024-10-24)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/bb8c2cf7ea0dd2e18a52746b2c3a5b0c73b93c22?narHash=sha256-66RHecx%2BzohbZwJVEPF7uuwHeqf8rykZTMCTqIrOew4%3D' (2024-10-19)
  → 'github:NixOS/nixpkgs/cd3e8833d70618c4eea8df06f95b364b016d4950?narHash=sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk%3D' (2024-10-26)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/188857732adf2545a3171d74fbe65dd477339e6a?narHash=sha256-wf4sd0I5a5YITYSMSDsV/pt6h0aDSYVoyA39IMUU934%3D' (2024-10-20)
  → 'github:NixOS/nixpkgs/d31617bedffa3e5fe067feba1c68b1a7f644cb4f?narHash=sha256-ZY1qoI8sdcheYWrVqwfQzqwKY31qe76brLz89snKVt4%3D' (2024-10-27)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-28 00:18:57 +11:00
Vaibhav Sagar
b62ca93c0f
Drop support for GHC < 8.4 (#1531)
* Drop support for GHC < 8.4
* src/IHaskell/Eval/Util.hs: update
* src/IHaskell/Eval/Evaluate.hs: update
* ghc-parser/generic-src/Language/Haskell/GHC/Parser.hs: update
* src/IHaskell/Eval/Info.hs: update
* src/IHaskell/Eval/Parser.hs: update
* src/IHaskell/Eval/Completion.hs: update
* src/tests/IHaskell/Test/Eval.hs: update
* ghc-parser: remove unused files
* README.md: update
2024-10-24 20:51:12 +11:00
Vaibhav Sagar
00736a25ef .github/workflows/docker.yml: don't run twice 2024-10-24 20:25:39 +11:00
Vaibhav Sagar
0bba92d951
Merge pull request #1530 from abarbu/ipywidgets-buffers
Fix nested buffers
2024-10-24 12:53:11 +11:00
Andrei
f099067277 Fix nested buffers 2024-10-23 15:50:00 -04:00
Vaibhav Sagar
8856c17bbd
ihaskell-widgets fixes for GHC < 9.0 (#1529)
* ihaskell-widgets: work with aeson <2
* stack/stack-8.{4,6}: turn off -Werror
2024-10-23 13:10:12 +11:00
Vaibhav Sagar
c775913d93
Merge pull request #1525 from abarbu/abarbu-ipywidgets-extensible
Make widgets extensible
2024-10-23 13:08:33 +11:00
Vaibhav Sagar
de99334219
Merge pull request #1524 from abarbu/abarbu-ipywidgets-8
Update for ipywidgets 8
2024-10-22 20:43:47 +11:00
Vaibhav Sagar
502f3f6dc4
stack/stack-9.{4,6}.yaml: add libsodium (#1528) 2024-10-22 14:25:50 +11:00
Vaibhav Sagar
e92e3efd1a
.github/workflows/stack.yml: Stop testing GHC <8.4 since Stack doesn't support it (#1527)
* .github/workflows/stack.yml: Stop testing GHC <8.4 since Stack doesn't support it

* stack/stack-{8.0,8.2}.yaml: remove
2024-10-22 14:24:44 +11:00
Andrei
cf2f5c04fb Make ihaskell-widgets extensible 2024-10-21 15:32:20 -04:00
Andrei
8bfde35b62 Update for ipywidgets 8 2024-10-20 22:11:17 -04:00
Vaibhav Sagar
d6533e529d
flake.lock: Update (#1523)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/559e294af6b60a3522c96ca509ec2d0bec622c3f?narHash=sha256-kS6wxxsmD7TG0XMjOcd1XdfGRzZCQFaQ2tLOS2i%2BmjQ%3D' (2024-10-12)
  → 'github:haskell/haskell-language-server/1ec65ee176aa34066abec700966900ee3a18b405?narHash=sha256-3/QQ1dBP6yXiNYK3Dw3pHPNqQIg9LXgx0cvssfbt3Qs%3D' (2024-10-14)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/a3f9ad65a0bf298ed5847629a57808b97e6e8077?narHash=sha256-u%2BrxA79a0lyhG%2Bu%2BoPBRtTDtzz8kvkc9a6SWSt9ekVc%3D' (2024-10-12)
  → 'github:NixOS/nixpkgs/bb8c2cf7ea0dd2e18a52746b2c3a5b0c73b93c22?narHash=sha256-66RHecx%2BzohbZwJVEPF7uuwHeqf8rykZTMCTqIrOew4%3D' (2024-10-19)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/245ba8bc8fe641e4c5d14c9cb7e3b1ff4d969696?narHash=sha256-wHZi9EBfZRrDzWqXGJ5nTNMO4jKqUms2TZd%2BbD9Tfd8%3D' (2024-10-13)
  → 'github:NixOS/nixpkgs/188857732adf2545a3171d74fbe65dd477339e6a?narHash=sha256-wf4sd0I5a5YITYSMSDsV/pt6h0aDSYVoyA39IMUU934%3D' (2024-10-20)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-20 14:33:32 +11:00
Vaibhav Sagar
a23afdf381
flake.lock: Update (#1522)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/87b4d9598901148a840b10530011370261dd16d8?narHash=sha256-lsPphKFDxqVE9ib0Cgyf%2BOO5F08AcgaczXT0yu/dPkk%3D' (2024-10-02)
  → 'github:haskell/haskell-language-server/559e294af6b60a3522c96ca509ec2d0bec622c3f?narHash=sha256-kS6wxxsmD7TG0XMjOcd1XdfGRzZCQFaQ2tLOS2i%2BmjQ%3D' (2024-10-12)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/17ae88b569bb15590549ff478bab6494dde4a907?narHash=sha256-uogSvuAp%2B1BYtdu6UWuObjHqSbBohpyARXDWqgI12Ss%3D' (2024-10-05)
  → 'github:NixOS/nixpkgs/a3f9ad65a0bf298ed5847629a57808b97e6e8077?narHash=sha256-u%2BrxA79a0lyhG%2Bu%2BoPBRtTDtzz8kvkc9a6SWSt9ekVc%3D' (2024-10-12)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/798c026b94b9089fda88a1bd854cb67d0414adc3?narHash=sha256-JOFeJGXuh9u3mWqRwnIxM65VrfkNWszpx9bGLP68GfU%3D' (2024-10-06)
  → 'github:NixOS/nixpkgs/245ba8bc8fe641e4c5d14c9cb7e3b1ff4d969696?narHash=sha256-wHZi9EBfZRrDzWqXGJ5nTNMO4jKqUms2TZd%2BbD9Tfd8%3D' (2024-10-13)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-13 20:11:16 +11:00
Vaibhav Sagar
299f72fe10
flake.lock: Update (#1521)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/7385915c99b3c58cd80ac7f99d00d26bfabc2dff?narHash=sha256-vUfXWcdVTJnk7XCYKCb0519SySt5K/ha1oLHqA2XMi4%3D' (2024-09-28)
  → 'github:haskell/haskell-language-server/87b4d9598901148a840b10530011370261dd16d8?narHash=sha256-lsPphKFDxqVE9ib0Cgyf%2BOO5F08AcgaczXT0yu/dPkk%3D' (2024-10-02)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/8dd80409dd4a6eb3424912c78d3d752ad000df79?narHash=sha256-8SfkDmkgngrsYkTRRXFHlYI84hCj5f%2ByhdcAzCu1ba8%3D' (2024-09-28)
  → 'github:NixOS/nixpkgs/17ae88b569bb15590549ff478bab6494dde4a907?narHash=sha256-uogSvuAp%2B1BYtdu6UWuObjHqSbBohpyARXDWqgI12Ss%3D' (2024-10-05)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/4b3242bce4faad3ccc10b4cd4ac2185d260907df?narHash=sha256-5FGJea7vTyODJa0/t5mlJRHI376zq/1BxrMH8i6wLuU%3D' (2024-09-29)
  → 'github:NixOS/nixpkgs/798c026b94b9089fda88a1bd854cb67d0414adc3?narHash=sha256-JOFeJGXuh9u3mWqRwnIxM65VrfkNWszpx9bGLP68GfU%3D' (2024-10-06)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-07 02:24:46 +11:00
Vaibhav Sagar
092387d2eb
flake.lock: Update (#1520)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/f628754f20b63745d2312c392358dfdd0700837e?narHash=sha256-90WrnmTumnVXzMxK47CkXkcpu/qHj026TXKq7r3SBZs%3D' (2024-09-09)
  → 'github:haskell/haskell-language-server/7385915c99b3c58cd80ac7f99d00d26bfabc2dff?narHash=sha256-vUfXWcdVTJnk7XCYKCb0519SySt5K/ha1oLHqA2XMi4%3D' (2024-09-28)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/23cbb250f3bf4f516a2d0bf03c51a30900848075?narHash=sha256-8fnFlXBgM/uSvBlLWjZ0Z0sOdRBesyNdH0%2BesxqizGc%3D' (2024-09-22)
  → 'github:NixOS/nixpkgs/8dd80409dd4a6eb3424912c78d3d752ad000df79?narHash=sha256-8SfkDmkgngrsYkTRRXFHlYI84hCj5f%2ByhdcAzCu1ba8%3D' (2024-09-28)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/942325de5968d8b7dcd4eebc15270e38ca81e558?narHash=sha256-Lo8WoP6P4RJdYyv/3OB3fWKGTyZebgLCoc6EbhFbHZc%3D' (2024-09-22)
  → 'github:NixOS/nixpkgs/4b3242bce4faad3ccc10b4cd4ac2185d260907df?narHash=sha256-5FGJea7vTyODJa0/t5mlJRHI376zq/1BxrMH8i6wLuU%3D' (2024-09-29)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-29 17:27:54 +10:00
Vaibhav Sagar
31a67337a2
flake.lock: Update (#1519)
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a?narHash=sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ%3D' (2024-03-11)
  → 'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a?narHash=sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ%3D' (2024-09-17)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/10b0c212b6bd2b8155f7cdf03e5018dbd50c7cb6?narHash=sha256-2RdFaah7wwLKlJ5DO/BBNQOpZW/nfRYGLoPrDGfKAcE%3D' (2024-09-14)
  → 'github:NixOS/nixpkgs/23cbb250f3bf4f516a2d0bf03c51a30900848075?narHash=sha256-8fnFlXBgM/uSvBlLWjZ0Z0sOdRBesyNdH0%2BesxqizGc%3D' (2024-09-22)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/9299cdf978e15f448cf82667b0ffdd480b44ee48?narHash=sha256-luAKNxWZ%2BZN0kaHchx1OdLQ71n81Y31ryNPWP1YRDZc%3D' (2024-09-15)
  → 'github:NixOS/nixpkgs/942325de5968d8b7dcd4eebc15270e38ca81e558?narHash=sha256-Lo8WoP6P4RJdYyv/3OB3fWKGTyZebgLCoc6EbhFbHZc%3D' (2024-09-22)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-22 18:49:21 +10:00
Vaibhav Sagar
d43b42f282
flake.lock: Update (#1518)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/9f4d6732ed0cc34cbcdb80370a8f8b680554385d?narHash=sha256-H8OO5iqur2l5HswsbbcvHFLpLMTMsH%2Ba4lFaMxes/Cg%3D' (2024-08-28)
  → 'github:haskell/haskell-language-server/f628754f20b63745d2312c392358dfdd0700837e?narHash=sha256-90WrnmTumnVXzMxK47CkXkcpu/qHj026TXKq7r3SBZs%3D' (2024-09-09)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/a69b3373fbc9deedd1d91ee269c6d274db2c3d28?narHash=sha256-H3Zu2dHlEcY5M30u66VuYK0FgsN62lDj4wDYmspwAWU%3D' (2024-09-08)
  → 'github:NixOS/nixpkgs/10b0c212b6bd2b8155f7cdf03e5018dbd50c7cb6?narHash=sha256-2RdFaah7wwLKlJ5DO/BBNQOpZW/nfRYGLoPrDGfKAcE%3D' (2024-09-14)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/e215d870e01bb2c6c292a80fa8301e9a8e91425b?narHash=sha256-GBcVVZWidXBhQEBPZMM58jZZe44Vh1cVjJWk%2Bf3K044%3D' (2024-09-08)
  → 'github:NixOS/nixpkgs/9299cdf978e15f448cf82667b0ffdd480b44ee48?narHash=sha256-luAKNxWZ%2BZN0kaHchx1OdLQ71n81Y31ryNPWP1YRDZc%3D' (2024-09-15)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-16 04:52:55 +10:00
Vaibhav Sagar
838ae4437f
Update flake.lock (#1516)
* flake.lock: Update

Flake lock file updates:

• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/8997b174ff19f16b726b375e85144aeb83fa2978?narHash=sha256-yZTFSURsTNuURs7GElSM5qOHF7Mka0mZdkFE5cXkQPo%3D' (2024-09-01)
  → 'github:NixOS/nixpkgs/a69b3373fbc9deedd1d91ee269c6d274db2c3d28?narHash=sha256-H3Zu2dHlEcY5M30u66VuYK0FgsN62lDj4wDYmspwAWU%3D' (2024-09-08)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/9ea3418b171ba790b70dbc7695183eb3cf882afd?narHash=sha256-cM2eUN4HdZ8qkybjeEbtf7pleYk6da6m9DxXykNR4VE%3D' (2024-09-01)
  → 'github:NixOS/nixpkgs/e215d870e01bb2c6c292a80fa8301e9a8e91425b?narHash=sha256-GBcVVZWidXBhQEBPZMM58jZZe44Vh1cVjJWk%2Bf3K044%3D' (2024-09-08)

* nix/overlay-9.10.nix: update overrides

* nix/overlay-9.10.nix: update overrides

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-11 17:01:19 -04:00
Vaibhav Sagar
dc710e65b3
flake.lock: Update (#1514)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/cbc0cd6999564eeb32596376b24f82ed74645afb?narHash=sha256-eiWy5/%2B/8xiuZ5p%2BTfOXMyOR3EUSj8I7ARAMT%2BHZEp0%3D' (2024-08-23)
  → 'github:haskell/haskell-language-server/9f4d6732ed0cc34cbcdb80370a8f8b680554385d?narHash=sha256-H8OO5iqur2l5HswsbbcvHFLpLMTMsH%2Ba4lFaMxes/Cg%3D' (2024-08-28)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/2527da1ef492c495d5391f3bcf9c1dd9f4514e32?narHash=sha256-XROVLf9ti4rrNCFLr%2BDmXRZtPjCQTW4cYy59owTEmxk%3D' (2024-08-24)
  → 'github:NixOS/nixpkgs/8997b174ff19f16b726b375e85144aeb83fa2978?narHash=sha256-yZTFSURsTNuURs7GElSM5qOHF7Mka0mZdkFE5cXkQPo%3D' (2024-09-01)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/c9281e015b6eb4f5503a62c642698586208209df?narHash=sha256-qec2ouysmzgYXWCBCzeIX%2BIy%2Bk0ewmN6LKxtn8mmxFM%3D' (2024-08-25)
  → 'github:NixOS/nixpkgs/9ea3418b171ba790b70dbc7695183eb3cf882afd?narHash=sha256-cM2eUN4HdZ8qkybjeEbtf7pleYk6da6m9DxXykNR4VE%3D' (2024-09-01)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-01 09:55:30 -04:00
Vaibhav Sagar
de7f43fd72
flake.lock: Update (#1513)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/9565d0b2d0b7d2ddf5a982269c103b6fd0a781a0?narHash=sha256-FG6z3FHyqZP6WmZevQZpogOh54Jzsewn1lvxyWsVE1Y%3D' (2024-08-02)
  → 'github:haskell/haskell-language-server/cbc0cd6999564eeb32596376b24f82ed74645afb?narHash=sha256-eiWy5/%2B/8xiuZ5p%2BTfOXMyOR3EUSj8I7ARAMT%2BHZEp0%3D' (2024-08-23)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/c42fcfbdfeae23e68fc520f9182dde9f38ad1890?narHash=sha256-9tUadhnZQbWIiYVXH8ncfGXGvkNq3Hag4RCBEMUk7MI%3D' (2024-08-17)
  → 'github:NixOS/nixpkgs/2527da1ef492c495d5391f3bcf9c1dd9f4514e32?narHash=sha256-XROVLf9ti4rrNCFLr%2BDmXRZtPjCQTW4cYy59owTEmxk%3D' (2024-08-24)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/445718104cab5ad08cf095c7c875f784fc72a590?narHash=sha256-rOKuH9D9Ua0rVm3dTO%2Bi3WzOevz4OuVnSfuxhwD0Guk%3D' (2024-08-18)
  → 'github:NixOS/nixpkgs/c9281e015b6eb4f5503a62c642698586208209df?narHash=sha256-qec2ouysmzgYXWCBCzeIX%2BIy%2Bk0ewmN6LKxtn8mmxFM%3D' (2024-08-25)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-27 12:17:32 +10:00
Vaibhav Sagar
51740b7b00
flake.lock: Update (#1512)
Flake lock file updates:

• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/8aa933d94cc27bf309377b01874dfe002a6b6040?narHash=sha256-zMTSq2OAhDiK2dVGVGq5QSfsn0w9VAu/TRmTYolo6tY%3D' (2024-08-10)
  → 'github:NixOS/nixpkgs/c42fcfbdfeae23e68fc520f9182dde9f38ad1890?narHash=sha256-9tUadhnZQbWIiYVXH8ncfGXGvkNq3Hag4RCBEMUk7MI%3D' (2024-08-17)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/619d29bb009910dff1358b6fc56564e68e1f275a?narHash=sha256-9v5FFO1TlvQUqr2sHVPSEX6GIsFIBQK9NoWidM0fdE4%3D' (2024-08-11)
  → 'github:NixOS/nixpkgs/445718104cab5ad08cf095c7c875f784fc72a590?narHash=sha256-rOKuH9D9Ua0rVm3dTO%2Bi3WzOevz4OuVnSfuxhwD0Guk%3D' (2024-08-18)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-18 17:59:14 +10:00
Vaibhav Sagar
cf54f9e579
flake.lock: Update (#1511)
Flake lock file updates:

• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/d7aada40ea265de36ed8eea207b14368b23ab3bd?narHash=sha256-g2BHVoAH9jOK2fykhQd6lTXcdO3IYjPIcle9PTrSXD4%3D' (2024-08-03)
  → 'github:NixOS/nixpkgs/8aa933d94cc27bf309377b01874dfe002a6b6040?narHash=sha256-zMTSq2OAhDiK2dVGVGq5QSfsn0w9VAu/TRmTYolo6tY%3D' (2024-08-10)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/e32d4c5654399d6bf0f724b9114fb76363bdd660?narHash=sha256-yPfyf0VMD5BBh7vjVhgUbeNRoi8xSIkrgpVyd4nOnEU%3D' (2024-08-04)
  → 'github:NixOS/nixpkgs/619d29bb009910dff1358b6fc56564e68e1f275a?narHash=sha256-9v5FFO1TlvQUqr2sHVPSEX6GIsFIBQK9NoWidM0fdE4%3D' (2024-08-11)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-11 12:52:10 +10:00
Vaibhav Sagar
dcfbf5dc87
flake.lock: Update (#1510)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/a4bcaa318e7322d12ee2b5f8a69db21525dee93f?narHash=sha256-CKlFhKvuMHPsekzeuKz8stex4R1E/ebUPSaHErtiZpk%3D' (2024-07-26)
  → 'github:haskell/haskell-language-server/9565d0b2d0b7d2ddf5a982269c103b6fd0a781a0?narHash=sha256-FG6z3FHyqZP6WmZevQZpogOh54Jzsewn1lvxyWsVE1Y%3D' (2024-08-02)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/69d1c600e00f9965578c64db36b48f48d70f274e?narHash=sha256-iXGpRf1B8M%2BkG1umzSVARqHMkZKNThY1rHhgdcbPvcQ%3D' (2024-07-28)
  → 'github:NixOS/nixpkgs/d7aada40ea265de36ed8eea207b14368b23ab3bd?narHash=sha256-g2BHVoAH9jOK2fykhQd6lTXcdO3IYjPIcle9PTrSXD4%3D' (2024-08-03)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/591c4d9c8b3b16170eac11ef58ef0403e8d88c8c?narHash=sha256-PZOg7SaC3Ep8puawzsmN4kP%2BLxv4EDqUP41prbULXXw%3D' (2024-07-28)
  → 'github:NixOS/nixpkgs/e32d4c5654399d6bf0f724b9114fb76363bdd660?narHash=sha256-yPfyf0VMD5BBh7vjVhgUbeNRoi8xSIkrgpVyd4nOnEU%3D' (2024-08-04)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-08 14:37:05 +10:00
Vaibhav Sagar
549009e46b
Update flake.lock (#1509)
* flake.lock: Update

Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/376f7f1802298d23aff6aa94592cd46c4d68e61b?narHash=sha256-uKckkHiXi9jlSCPFOoovQ1im0M%2BGr6mR7DMh9dR6ZBE%3D' (2024-06-29)
  → 'github:haskell/haskell-language-server/a4bcaa318e7322d12ee2b5f8a69db21525dee93f?narHash=sha256-CKlFhKvuMHPsekzeuKz8stex4R1E/ebUPSaHErtiZpk%3D' (2024-07-26)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/7dca15289a1c2990efbe4680f0923ce14139b042?narHash=sha256-RoxIr/fbndtuKqulGvNCcuzC6KdAib85Q8gXnjzA1dw%3D' (2024-06-30)
  → 'github:NixOS/nixpkgs/69d1c600e00f9965578c64db36b48f48d70f274e?narHash=sha256-iXGpRf1B8M%2BkG1umzSVARqHMkZKNThY1rHhgdcbPvcQ%3D' (2024-07-28)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/cd6602819bb0f13b32d6b923a7c46602ee6591f3?narHash=sha256-aqGMubPLZhnuHtJ/qvC0wBVI7dkiS0AqwvHyALvOk3c%3D' (2024-06-30)
  → 'github:NixOS/nixpkgs/591c4d9c8b3b16170eac11ef58ef0403e8d88c8c?narHash=sha256-PZOg7SaC3Ep8puawzsmN4kP%2BLxv4EDqUP41prbULXXw%3D' (2024-07-28)

* nix/overlay-9.10.nix: update overrides

* nix/overlay-9.10.nix: update overrides

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-28 14:24:10 +10:00
Vaibhav Sagar
32534e613d .github/workflows/update-flake-lock.yml: update 2024-07-28 13:15:36 +10:00
Vaibhav Sagar
2b1ad9979a
flake.lock: Update (#1508)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/f523690ada6176c6c83e2f5e96444953bf8d4c26?narHash=sha256-9TuUT0R9sYZpjL5KCUMNa5btzhTOZXUQty4YH/j9ykI%3D' (2024-06-20)
  → 'github:haskell/haskell-language-server/376f7f1802298d23aff6aa94592cd46c4d68e61b?narHash=sha256-uKckkHiXi9jlSCPFOoovQ1im0M%2BGr6mR7DMh9dR6ZBE%3D' (2024-06-29)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/dd868b7bd4d1407d607da0d1d9c5eca89132e2f7?narHash=sha256-wu/2PXVEHZBCg/qmlw5jJKs6zgVWfUpmnRTr9BiS3Uk%3D' (2024-06-22)
  → 'github:NixOS/nixpkgs/7dca15289a1c2990efbe4680f0923ce14139b042?narHash=sha256-RoxIr/fbndtuKqulGvNCcuzC6KdAib85Q8gXnjzA1dw%3D' (2024-06-30)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/0069cacc45352ad3f6846e002d20b58c04d6034f?narHash=sha256-INwzlx7p%2BJJ1bX15VoX0/kW0UzKSOP%2BqsNe43qKnU3w%3D' (2024-06-23)
  → 'github:NixOS/nixpkgs/cd6602819bb0f13b32d6b923a7c46602ee6591f3?narHash=sha256-aqGMubPLZhnuHtJ/qvC0wBVI7dkiS0AqwvHyALvOk3c%3D' (2024-06-30)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-30 22:06:43 +10:00
Vaibhav Sagar
dff6c66823
flake.lock: Update (#1507)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/da3d7f27ea0c2aa095d66228ed394c2a58626cae?narHash=sha256-6E9aXPNaSSZ/sb2/d8%2BfVSN2wCRkyuL%2BnWkZR/E9I%2Bw%3D' (2024-06-15)
  → 'github:haskell/haskell-language-server/f523690ada6176c6c83e2f5e96444953bf8d4c26?narHash=sha256-9TuUT0R9sYZpjL5KCUMNa5btzhTOZXUQty4YH/j9ykI%3D' (2024-06-20)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/775cdd42ab8acf9a9da38e71888a1ed8528f1ee5?narHash=sha256-I1kyie85KJdErNS%2BF9QvxCFEsesmg1c/%2BYCKa7B%2BFWs%3D' (2024-06-15)
  → 'github:NixOS/nixpkgs/dd868b7bd4d1407d607da0d1d9c5eca89132e2f7?narHash=sha256-wu/2PXVEHZBCg/qmlw5jJKs6zgVWfUpmnRTr9BiS3Uk%3D' (2024-06-22)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/6238558e56ff6387fd42e2d7bca17f6dfc9751c6?narHash=sha256-ijdm2neCmDoQU8LTwsFZKLkPeJb5DUxwmPtZFrFv8VM%3D' (2024-06-16)
  → 'github:NixOS/nixpkgs/0069cacc45352ad3f6846e002d20b58c04d6034f?narHash=sha256-INwzlx7p%2BJJ1bX15VoX0/kW0UzKSOP%2BqsNe43qKnU3w%3D' (2024-06-23)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-24 09:45:36 +10:00
Vaibhav Sagar
ae8b90efe7
flake.lock: Update (#1505)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/82da33707f2cb433f6bbcc22cd32750d6462fa0f?narHash=sha256-HtPgWVTMukUfVI3mLUBqqL7tiW6Ip74SGyh5/7xU2lk%3D' (2024-06-08)
  → 'github:haskell/haskell-language-server/da3d7f27ea0c2aa095d66228ed394c2a58626cae?narHash=sha256-6E9aXPNaSSZ/sb2/d8%2BfVSN2wCRkyuL%2BnWkZR/E9I%2Bw%3D' (2024-06-15)
• Updated input 'hls/nixpkgs':
    'github:NixOS/nixpkgs/9a3af09826447de299cc31571b07c0ebb8bc37a0?narHash=sha256-mKwUzDaqnZHO3MIfh6Vg2cT7H/5KVvy3mvTipiU1Jt0%3D' (2024-01-19)
  → 'github:NixOS/nixpkgs/e913ae340076bbb73d9f4d3d065c2bca7caafb16?narHash=sha256-Ds1QpobBX2yoUDx9ZruqVGJ/uQPgcXoYuobBguyKEh8%3D' (2024-06-11)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/0e0826ec06d2b3db8e28e280d68179f022b1d160?narHash=sha256-Dl6JKx1rIDEuv4q9rtlt9QwyerSQbrk1bUtNHzx9bIY%3D' (2024-06-09)
  → 'github:NixOS/nixpkgs/775cdd42ab8acf9a9da38e71888a1ed8528f1ee5?narHash=sha256-I1kyie85KJdErNS%2BF9QvxCFEsesmg1c/%2BYCKa7B%2BFWs%3D' (2024-06-15)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/3bcedce9f4de37570242faf16e1e143583407eab?narHash=sha256-WMU6ZRZrBgEUDIF0siu2aIyVAXcxfElSwzZtS/mSpN4%3D' (2024-06-09)
  → 'github:NixOS/nixpkgs/6238558e56ff6387fd42e2d7bca17f6dfc9751c6?narHash=sha256-ijdm2neCmDoQU8LTwsFZKLkPeJb5DUxwmPtZFrFv8VM%3D' (2024-06-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-18 19:08:32 +10:00
Vaibhav Sagar
b87338de21
Support GHC 9.10 (#1498)
* Support GHC 9.10
2024-06-11 18:59:35 +10:00
Vaibhav Sagar
432422fe3f
flake.lock: Update (#1502)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/00b6d3681f5b955b160259b2fdf01df50d00dfe8?narHash=sha256-Iyb3ToEW5I0i7Cll2gWaZ8sDmpvNBWY9eYhUoGLrL2Y%3D' (2024-06-01)
  → 'github:haskell/haskell-language-server/82da33707f2cb433f6bbcc22cd32750d6462fa0f?narHash=sha256-HtPgWVTMukUfVI3mLUBqqL7tiW6Ip74SGyh5/7xU2lk%3D' (2024-06-08)
• Updated input 'nixpkgs24_05':
    'github:NixOS/nixpkgs/7b7774f5431ea2faed7c5eb9b612f42f718d10e3?narHash=sha256-3Elk5hOFKkas%2BJwIEbYHu3Cw0z7F18vx%2B1v8fNYGZqc%3D' (2024-06-03)
  → 'github:NixOS/nixpkgs/0e0826ec06d2b3db8e28e280d68179f022b1d160?narHash=sha256-Dl6JKx1rIDEuv4q9rtlt9QwyerSQbrk1bUtNHzx9bIY%3D' (2024-06-09)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/e164f2bfd689cee654be0ec224c101dee1d59f80?narHash=sha256-ggbyGWwtTJ0AyDYSTkmmRMDgjO5eK9gwHZ3KKmqr2I8%3D' (2024-06-02)
  → 'github:NixOS/nixpkgs/3bcedce9f4de37570242faf16e1e143583407eab?narHash=sha256-WMU6ZRZrBgEUDIF0siu2aIyVAXcxfElSwzZtS/mSpN4%3D' (2024-06-09)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-09 23:15:45 +10:00
Vaibhav Sagar
116cdedade
Clean up Nix expressions for 24.05 (#1501)
* Clean up Nix expressions for 24.05
2024-06-03 23:33:24 +10:00
Vaibhav Sagar
b47e6a24f3
flake.nix: use Nixpkgs 24.05 (#1500)
* flake.nix: use Nixpkgs 24.05
* .github/workflows/nix.yml: update
* .github/workflows/nix.yml: update
2024-06-03 21:49:25 +10:00
Vaibhav Sagar
5a61dbd566
flake.lock: Update (#1499)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/e32468df7847c158267abd76c787b14a19f72b89?narHash=sha256-kYU6ulq6Nmp12H2m8N3Xy0QY0WzEVmuCnO1oFcpvq90%3D' (2024-05-24)
  → 'github:haskell/haskell-language-server/00b6d3681f5b955b160259b2fdf01df50d00dfe8?narHash=sha256-Iyb3ToEW5I0i7Cll2gWaZ8sDmpvNBWY9eYhUoGLrL2Y%3D' (2024-06-01)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/59a450646ec8ee0397f5fa54a08573e8240eb91f?narHash=sha256-kQ25DAiCGigsNR/Quxm3v%2BJGXAEXZ8I7RAF4U94bGzE%3D' (2024-05-25)
  → 'github:NixOS/nixpkgs/3b1b4895b2c5f9f5544d02132896aeb9ceea77bc?narHash=sha256-IITcGd6xpNoyq9SZBigCkv4%2BqMHSqot0RDPR4xsZ2CA%3D' (2024-06-01)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/7a196189c54e9e05d6660bf961694f848253a174?narHash=sha256-30X1EmmdSIiNwrvn4wwGcNEOwduKQELZEtQCR4F2ivY%3D' (2024-05-26)
  → 'github:NixOS/nixpkgs/e164f2bfd689cee654be0ec224c101dee1d59f80?narHash=sha256-ggbyGWwtTJ0AyDYSTkmmRMDgjO5eK9gwHZ3KKmqr2I8%3D' (2024-06-02)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-03 20:14:53 +10:00
Vaibhav Sagar
ad4f206478
Update flake.lock (#1497)
* flake.lock: Update

Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/b43dcbb8cf07fbaecc81a769a3a25aecffc5c674?narHash=sha256-VSbZYEkmVuYYlUvNRT6ucu8K1QVFSnqG5DTxMRmoaxM%3D' (2024-05-18)
  → 'github:haskell/haskell-language-server/e32468df7847c158267abd76c787b14a19f72b89?narHash=sha256-kYU6ulq6Nmp12H2m8N3Xy0QY0WzEVmuCnO1oFcpvq90%3D' (2024-05-24)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/e7cc61784ddf51c81487637b3031a6dd2d6673a2?narHash=sha256-H0eCta7ahEgloGIwE/ihkyGstOGu%2BkQwAiHvwVoXaA0%3D' (2024-05-18)
  → 'github:NixOS/nixpkgs/59a450646ec8ee0397f5fa54a08573e8240eb91f?narHash=sha256-kQ25DAiCGigsNR/Quxm3v%2BJGXAEXZ8I7RAF4U94bGzE%3D' (2024-05-25)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/68ead29211bb9890f494af3a8b5643a831d9d4c4?narHash=sha256-0zL73zK5tB1NbzvB5all6%2B5W9I42RGCENNvddaIjuZg%3D' (2024-05-19)
  → 'github:NixOS/nixpkgs/7a196189c54e9e05d6660bf961694f848253a174?narHash=sha256-30X1EmmdSIiNwrvn4wwGcNEOwduKQELZEtQCR4F2ivY%3D' (2024-05-26)

* nix/overlay-9.8.nix: fix broken override in ghc-syntax-highlighter

* nix/overlay-9.8.nix: fix overrides for display packages

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-27 00:11:54 +10:00
Vaibhav Sagar
1e9e3d4cfc
Merge pull request #1495 from codedownio/faster-parsing-origin
Make parseString not require Ghc monad
2024-05-22 17:54:54 +10:00
Vaibhav Sagar
30a37b1d0d IHaskell.Eval.Evaluate: fix warning on setSessionDynFlags 2024-05-21 23:45:45 -07:00
Tom McLaughlin
a021569c46 Make parseString not require Ghc monad 2024-05-21 19:59:50 -07:00
Vaibhav Sagar
c42eecaeb6
flake.lock: Update (#1494)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/2b8f3438ca433fcde98626f02397378e493d1113?narHash=sha256-Opp3moBpQD874qjXkpXQsJYxGYNEJM3mgaBIS4qr/7U%3D' (2024-05-10)
  → 'github:haskell/haskell-language-server/b43dcbb8cf07fbaecc81a769a3a25aecffc5c674?narHash=sha256-VSbZYEkmVuYYlUvNRT6ucu8K1QVFSnqG5DTxMRmoaxM%3D' (2024-05-18)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/8e47858badee5594292921c2668c11004c3b0142?narHash=sha256-q0OFeZqKQaik2U8wwGDsELEkgoZMK7gvfF6tTXkpsqE%3D' (2024-05-11)
  → 'github:NixOS/nixpkgs/e7cc61784ddf51c81487637b3031a6dd2d6673a2?narHash=sha256-H0eCta7ahEgloGIwE/ihkyGstOGu%2BkQwAiHvwVoXaA0%3D' (2024-05-18)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/e1fce3f66f22935585607eedcc26f9eb8d8ab166?narHash=sha256-t1hH6eW29RNPxnblXfajmnL4KUyHgAFD9kJ8hogbSeA%3D' (2024-05-12)
  → 'github:NixOS/nixpkgs/68ead29211bb9890f494af3a8b5643a831d9d4c4?narHash=sha256-0zL73zK5tB1NbzvB5all6%2B5W9I42RGCENNvddaIjuZg%3D' (2024-05-19)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-20 15:23:14 +10:00
Vaibhav Sagar
c0429010ab
flake.lock: Update (#1493)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/ced09a7456f2eea10dc19fc60e3d3d39315669ec?narHash=sha256-ySue%2B%2BqwYaNeO7hwD%2BRzorGzHjSFkUDtrQSiQ4bsqcQ%3D' (2024-05-04)
  → 'github:haskell/haskell-language-server/2b8f3438ca433fcde98626f02397378e493d1113?narHash=sha256-Opp3moBpQD874qjXkpXQsJYxGYNEJM3mgaBIS4qr/7U%3D' (2024-05-10)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/b980b91038fc4b09067ef97bbe5ad07eecca1e76?narHash=sha256-tCxeDP4C1pWe2rYY3IIhdA40Ujz32Ufd4tcrHPSKx2M%3D' (2024-05-04)
  → 'github:NixOS/nixpkgs/8e47858badee5594292921c2668c11004c3b0142?narHash=sha256-q0OFeZqKQaik2U8wwGDsELEkgoZMK7gvfF6tTXkpsqE%3D' (2024-05-11)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/d35995a8d7daab63238e6fed3279eca869955aca?narHash=sha256-hEJgDZC6wJFIuB5e56BX6Ae75u0mREF4hY7dp3fmX00%3D' (2024-05-05)
  → 'github:NixOS/nixpkgs/e1fce3f66f22935585607eedcc26f9eb8d8ab166?narHash=sha256-t1hH6eW29RNPxnblXfajmnL4KUyHgAFD9kJ8hogbSeA%3D' (2024-05-12)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-12 15:01:17 +10:00
Vaibhav Sagar
f4fee12eb6
Merge pull request #1491 from Mic92/patch-1
README.md: link to new wiki
2024-05-09 09:31:58 +10:00
Jörg Thalheim
24af76154b
README.md: link to new wiki
This commit updates the the link from the former, unofficial nixos wiki page to the new https://wiki.nixos.org

ref: NixOS/foundation#113
2024-05-09 00:58:33 +02:00
Vaibhav Sagar
40dc3f5b1a
flake.lock: Update (#1490)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/8afc65a95b50d4960fa5d456750b979fb5229336?narHash=sha256-t6G387aOdVJTHhcTU0DDt1nYrMnKOrDqEnUix/Xhy5E%3D' (2024-04-26)
  → 'github:haskell/haskell-language-server/ced09a7456f2eea10dc19fc60e3d3d39315669ec?narHash=sha256-ySue%2B%2BqwYaNeO7hwD%2BRzorGzHjSFkUDtrQSiQ4bsqcQ%3D' (2024-05-04)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/dd403667d37b8822efa205c37fb1375e4c9805fa?narHash=sha256-5GQq2xHYcnLaVUulq69wCPQ2ljKJd0JgR3ZhXtKCZUI%3D' (2024-04-27)
  → 'github:NixOS/nixpkgs/b980b91038fc4b09067ef97bbe5ad07eecca1e76?narHash=sha256-tCxeDP4C1pWe2rYY3IIhdA40Ujz32Ufd4tcrHPSKx2M%3D' (2024-05-04)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/32a79f412e8665f3d0b17833f73914f9e9549a0d?narHash=sha256-wKRksT6ErdqMRSSQpBgQzSgThq5dTYjXOI5qgrdbrYY%3D' (2024-04-28)
  → 'github:NixOS/nixpkgs/d35995a8d7daab63238e6fed3279eca869955aca?narHash=sha256-hEJgDZC6wJFIuB5e56BX6Ae75u0mREF4hY7dp3fmX00%3D' (2024-05-05)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-05 15:39:14 +10:00
Vaibhav Sagar
6c64e7fae1
flake.lock: Update (#1489)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/9593d04a76e024942981b1333bfb2558a6ae0dab?narHash=sha256-ku8uTv5qnQCyDMhcoDFBATAxsnMRN0lDdh2Ee%2BIDn0k%3D' (2024-04-17)
  → 'github:haskell/haskell-language-server/8afc65a95b50d4960fa5d456750b979fb5229336?narHash=sha256-t6G387aOdVJTHhcTU0DDt1nYrMnKOrDqEnUix/Xhy5E%3D' (2024-04-26)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/74574c38577914733b4f7a775dd77d24245081dd?narHash=sha256-q7APLfB6FmmSMI1Su5ihW9IwntBsk2hWNXh8XtSdSIk%3D' (2024-04-20)
  → 'github:NixOS/nixpkgs/dd403667d37b8822efa205c37fb1375e4c9805fa?narHash=sha256-5GQq2xHYcnLaVUulq69wCPQ2ljKJd0JgR3ZhXtKCZUI%3D' (2024-04-27)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/754a00b38a44e774dba3518ced7efbf51a8970ba?narHash=sha256-5zVIy90Uc5LzE7rt4x7LLZZWoYVM5g40QQlAxqc7BDc%3D' (2024-04-20)
  → 'github:NixOS/nixpkgs/32a79f412e8665f3d0b17833f73914f9e9549a0d?narHash=sha256-wKRksT6ErdqMRSSQpBgQzSgThq5dTYjXOI5qgrdbrYY%3D' (2024-04-28)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-29 09:33:47 +10:00
Vaibhav Sagar
b223a6c2d0
IHaskell.Eval.Evaluate: catch exceptions in extractValue (#1486)
* IHaskell.Eval.Evaluate: catch exceptions in extractValue

* IHaskell.Eval.Evaluate: only catch exceptions for GHC >=9.0
2024-04-21 22:08:20 +10:00
Vaibhav Sagar
8ceec8b16f
.github/workflows/stack.yml: reduce redundant builds (#1487)
* .github/workflows/stack.yml: reduce redundant builds

* .github/workflows/stack.yml: only build ihaskell at first
2024-04-21 22:08:04 +10:00
Vaibhav Sagar
0d647a949f
Update jupyterlab-ihaskell for 4.x (#1426)
* [WIP] Update jupyterlab-ihaskell for 4.x

* Address feedback

* jupyterlab-ihaskell: more updates

* jupyterlab-ihaskell: don't minify

* jupyterlab-ihaskell: update

* jupyterlab-ihaskell: change mimetype

* jupyterlab-ihaskell: update

* jupyterlab-ihaskell: works with JupyterLab 4

* jupyterlab-ihaskell: update id

* jupyterlab-ihaskell: simplify

* jupyterlab-ihaskell: update
2024-04-21 19:10:08 +10:00
Vaibhav Sagar
851c7708d8
flake.lock: Update (#1485)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/97aac543bc0c80dc3c1760f716653789859a9535?narHash=sha256-S4MbycLTpZ4GFU0dGjKqsl0eryjC6ZOkUM%2BZKcgdu4c%3D' (2024-04-10)
  → 'github:haskell/haskell-language-server/9593d04a76e024942981b1333bfb2558a6ae0dab?narHash=sha256-ku8uTv5qnQCyDMhcoDFBATAxsnMRN0lDdh2Ee%2BIDn0k%3D' (2024-04-17)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/c27f3b6d8e29346af16eecc0e9d54b1071eae27e?narHash=sha256-RifMwYuKu5v6x6O65msKDTqKkQ9crGwOB7yr20qMEuE%3D' (2024-04-13)
  → 'github:NixOS/nixpkgs/74574c38577914733b4f7a775dd77d24245081dd?narHash=sha256-q7APLfB6FmmSMI1Su5ihW9IwntBsk2hWNXh8XtSdSIk%3D' (2024-04-20)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/6da46d61baddebc5b8e6c6b17df1cd61c30859fc?narHash=sha256-pgqruE%2BFJzbPRBwUv6CPdjaEPBICJReO4/eyv%2BQDIoQ%3D' (2024-04-14)
  → 'github:NixOS/nixpkgs/754a00b38a44e774dba3518ced7efbf51a8970ba?narHash=sha256-5zVIy90Uc5LzE7rt4x7LLZZWoYVM5g40QQlAxqc7BDc%3D' (2024-04-20)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-21 17:11:12 +10:00
Vaibhav Sagar
ae377c88de
Update flake.lock (#1484)
* flake.lock: Update

Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/1dd54a50495a3980988261250cdc97dcf718ed0c' (2024-04-06)
  → 'github:haskell/haskell-language-server/97aac543bc0c80dc3c1760f716653789859a9535' (2024-04-10)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/e38d7cb66ea4f7a0eb6681920615dfcc30fc2920' (2024-04-06)
  → 'github:NixOS/nixpkgs/c27f3b6d8e29346af16eecc0e9d54b1071eae27e' (2024-04-13)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/092bd1b943ff26449b95a6e74c14185119bbc4f1' (2024-04-07)
  → 'github:NixOS/nixpkgs/6da46d61baddebc5b8e6c6b17df1cd61c30859fc' (2024-04-14)

* nix/overlay-9.8.nix: jailbreak microlens-th

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-14 21:11:46 +10:00
Vaibhav Sagar
74850e26af
flake.lock: Update (#1483)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/c3b0b37adc8280ce60d050c1e041b58127ff5f62' (2024-03-27)
  → 'github:haskell/haskell-language-server/1dd54a50495a3980988261250cdc97dcf718ed0c' (2024-04-06)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/2b4e3ca0091049c6fbb4908c66b05b77eaef9f0c' (2024-03-30)
  → 'github:NixOS/nixpkgs/e38d7cb66ea4f7a0eb6681920615dfcc30fc2920' (2024-04-06)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/37bcb7c95c7a82b298163e63318d71740830588e' (2024-03-31)
  → 'github:NixOS/nixpkgs/092bd1b943ff26449b95a6e74c14185119bbc4f1' (2024-04-07)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-09 00:52:33 +10:00
Vaibhav Sagar
60a750f5b0
flake.lock: Update (#1482)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/e9ee544e252a56d01e002e829ac7e13dea21fc19' (2024-03-23)
  → 'github:haskell/haskell-language-server/c3b0b37adc8280ce60d050c1e041b58127ff5f62' (2024-03-27)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/ac6bdf6181666ebb4f90dd20f31e2fa66ede6b68' (2024-03-23)
  → 'github:NixOS/nixpkgs/2b4e3ca0091049c6fbb4908c66b05b77eaef9f0c' (2024-03-30)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/dd5b898b7e9ac9494d46d502531255a7fbaeeec7' (2024-03-24)
  → 'github:NixOS/nixpkgs/37bcb7c95c7a82b298163e63318d71740830588e' (2024-03-31)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-02 00:18:10 +11:00
Vaibhav Sagar
624a6ecfcf
flake.lock: Update (#1481)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/b2b41df92d3d53364d4e4623bc98f0a4bc2c1dff' (2024-03-18)
  → 'github:haskell/haskell-language-server/e9ee544e252a56d01e002e829ac7e13dea21fc19' (2024-03-23)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/224fd9a362487ab2894dac0df161c84ab1d8880b' (2024-03-22)
  → 'github:NixOS/nixpkgs/ac6bdf6181666ebb4f90dd20f31e2fa66ede6b68' (2024-03-23)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/b10ff2437b20db099a9171392a892dc460677a84' (2024-03-22)
  → 'github:NixOS/nixpkgs/dd5b898b7e9ac9494d46d502531255a7fbaeeec7' (2024-03-24)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-24 16:56:26 +11:00
Vaibhav Sagar
8b1eb0f671
flake.lock: Update (#1480)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/82148dc22124dab2f9874e0b61dffeeabd97abe9' (2024-03-16)
  → 'github:haskell/haskell-language-server/b2b41df92d3d53364d4e4623bc98f0a4bc2c1dff' (2024-03-18)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/6dc11d9859d6a18ab0c5e5829a5b8e4810658de3' (2024-03-16)
  → 'github:NixOS/nixpkgs/224fd9a362487ab2894dac0df161c84ab1d8880b' (2024-03-22)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/299d4668ba61600311553920d9fd9c102145b2cb' (2024-03-17)
  → 'github:NixOS/nixpkgs/b10ff2437b20db099a9171392a892dc460677a84' (2024-03-22)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-23 12:24:22 +11:00
Vaibhav Sagar
45e9c1329a
Update flake.lock (#1479)
* flake.lock: Update

Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/d465f4819400de7c8d874d50b982301f28a84605' (2024-02-28)
  → 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
• Updated input 'hls':
    'github:haskell/haskell-language-server/a2a9991158c7c19a08d0f10374fb6dc4d774902a' (2024-03-09)
  → 'github:haskell/haskell-language-server/82148dc22124dab2f9874e0b61dffeeabd97abe9' (2024-03-16)
• Updated input 'nix-filter':
    'github:numtide/nix-filter/3449dc925982ad46246cfc36469baf66e1b64f17' (2024-01-15)
  → 'github:numtide/nix-filter/3342559a24e85fc164b295c3444e8a139924675b' (2024-03-11)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/b17375d3bb7c79ffc52f3538028b2ec06eb79ef8' (2024-03-10)
  → 'github:NixOS/nixpkgs/6dc11d9859d6a18ab0c5e5829a5b8e4810658de3' (2024-03-16)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/fd668bb4271d504815e68c0e467e78cb7d04597c' (2024-03-10)
  → 'github:NixOS/nixpkgs/299d4668ba61600311553920d9fd9c102145b2cb' (2024-03-17)

* Update overrides for GHC 9.8

* Don't use allowBroken

* nix/overlay-9.6.nix: update

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-18 14:25:45 +11:00
Vaibhav Sagar
62ca4d13c7
flake.lock: Update (#1478)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/5502b76c952ddc66a935760c7258344cecb96073' (2024-03-02)
  → 'github:haskell/haskell-language-server/a2a9991158c7c19a08d0f10374fb6dc4d774902a' (2024-03-09)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/66d65cb00b82ffa04ee03347595aa20e41fe3555' (2024-03-03)
  → 'github:NixOS/nixpkgs/b17375d3bb7c79ffc52f3538028b2ec06eb79ef8' (2024-03-10)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/31f91738fb4aae351f1ee93300139c751dcf8196' (2024-03-03)
  → 'github:NixOS/nixpkgs/fd668bb4271d504815e68c0e467e78cb7d04597c' (2024-03-10)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-13 14:29:10 +11:00
Vaibhav Sagar
e5eb2a0eac
flake.lock: Update (#1476)
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26' (2024-01-15)
  → 'github:numtide/flake-utils/d465f4819400de7c8d874d50b982301f28a84605' (2024-02-28)
• Updated input 'hls':
    'github:haskell/haskell-language-server/fae6b83b47a1944cd0d5e8dbca99730ee41efe5c' (2024-02-24)
  → 'github:haskell/haskell-language-server/5502b76c952ddc66a935760c7258344cecb96073' (2024-03-02)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/89a2a12e6c8c6a56c72eb3589982c8e2f89c70ea' (2024-02-25)
  → 'github:NixOS/nixpkgs/66d65cb00b82ffa04ee03347595aa20e41fe3555' (2024-03-03)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/72804e76d45807664475678555447415ccb20702' (2024-02-25)
  → 'github:NixOS/nixpkgs/31f91738fb4aae351f1ee93300139c751dcf8196' (2024-03-03)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-03 13:36:27 +11:00
Vaibhav Sagar
471dcea476
flake.lock: Update (#1474)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/f9211c8da70399b6352f71f3d37eb4f91b781ba1' (2024-02-17)
  → 'github:haskell/haskell-language-server/fae6b83b47a1944cd0d5e8dbca99730ee41efe5c' (2024-02-24)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/69405156cffbdf2be50153f13cbdf9a0bea38e49' (2024-02-17)
  → 'github:NixOS/nixpkgs/89a2a12e6c8c6a56c72eb3589982c8e2f89c70ea' (2024-02-25)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/a1ff35c63891ec9e4df75189427a5d81b5882bb9' (2024-02-18)
  → 'github:NixOS/nixpkgs/72804e76d45807664475678555447415ccb20702' (2024-02-25)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-26 19:48:15 +11:00
Vaibhav Sagar
311a078b64
flake.lock: Update (#1473)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/1bbe7806ace55370c6a0d36ccf1987bf84a75cea' (2024-02-10)
  → 'github:haskell/haskell-language-server/f9211c8da70399b6352f71f3d37eb4f91b781ba1' (2024-02-17)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/d8cd80616c8800feec0cab64331d7c3d5a1a6d98' (2024-02-10)
  → 'github:NixOS/nixpkgs/69405156cffbdf2be50153f13cbdf9a0bea38e49' (2024-02-17)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/e72d6a1d3facbcbbc771ca53f8f31c07838825b3' (2024-02-11)
  → 'github:NixOS/nixpkgs/a1ff35c63891ec9e4df75189427a5d81b5882bb9' (2024-02-18)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-18 20:04:31 +11:00
Vaibhav Sagar
9a805ef9a5
lts-22.6 -> lts-22.10 (#1472) 2024-02-12 14:28:23 +11:00
Vaibhav Sagar
4cf6733c80
flake.lock: Update (#1471)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/c2a795292b60ee8ca6b4a7433912ae5a45b988ac' (2024-02-07)
  → 'github:haskell/haskell-language-server/1bbe7806ace55370c6a0d36ccf1987bf84a75cea' (2024-02-10)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/88d128f5f35be5d405fe874495604f3f29350a5f' (2024-02-07)
  → 'github:NixOS/nixpkgs/d8cd80616c8800feec0cab64331d7c3d5a1a6d98' (2024-02-10)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/5ef42fcd84b2baa16f43554f1c1f1d614e23ef9a' (2024-02-07)
  → 'github:NixOS/nixpkgs/e72d6a1d3facbcbbc771ca53f8f31c07838825b3' (2024-02-11)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-11 14:43:47 +11:00
Vaibhav Sagar
2d173dc403
flake.nix: use eachDefaultSystem (#1470) 2024-02-09 00:49:35 +11:00
Vaibhav Sagar
4fd3253f51
flake.lock: Update (#1469)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/4788bfca11c366a8d184da2d13f12302429abd57' (2024-01-26)
  → 'github:haskell/haskell-language-server/c2a795292b60ee8ca6b4a7433912ae5a45b988ac' (2024-02-07)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/a93f891e7511780bd9172e69db574242acc79043' (2024-01-27)
  → 'github:NixOS/nixpkgs/88d128f5f35be5d405fe874495604f3f29350a5f' (2024-02-07)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/0a4f48c0cc4042545bb91f3add125f21be7c292f' (2024-01-28)
  → 'github:NixOS/nixpkgs/5ef42fcd84b2baa16f43554f1c1f1d614e23ef9a' (2024-02-07)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-07 23:12:32 +11:00
Vaibhav Sagar
9c927b48a8 flake.lock: update 2024-02-03 16:41:01 +11:00
Vaibhav Sagar
dc9d348dc8 flake.nix: remove redundant flake-utils copy 2024-02-03 16:38:41 +11:00
Vaibhav Sagar
ead4553a51
flake.lock: Update (#1467)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/0a02832ed3d2ef8b5128b1f8de2cbdc98eb4bc2f' (2024-01-21)
  → 'github:haskell/haskell-language-server/4788bfca11c366a8d184da2d13f12302429abd57' (2024-01-26)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/c5b6c179f7b7adce1ee234df23e5cb9f1a78f87b' (2024-01-20)
  → 'github:NixOS/nixpkgs/a93f891e7511780bd9172e69db574242acc79043' (2024-01-27)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/21788cb7ef9b9dd4cc168823f096c8996bae0465' (2024-01-21)
  → 'github:NixOS/nixpkgs/0a4f48c0cc4042545bb91f3add125f21be7c292f' (2024-01-28)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-28 14:43:03 +11:00
Vaibhav Sagar
af85b36bad flake.nix: update default devShell 2024-01-27 00:12:45 +11:00
github-actions[bot]
fa03e29a1d flake.lock: Update
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/4022d587cbbfd70fe950c1e2083a02621806a725' (2023-12-04)
  → 'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26' (2024-01-15)
• Updated input 'hls':
    'github:haskell/haskell-language-server/10b5f3bd51862175d2b63803f5dffd4bd862cae8' (2024-01-13)
  → 'github:haskell/haskell-language-server/0a02832ed3d2ef8b5128b1f8de2cbdc98eb4bc2f' (2024-01-21)
• Updated input 'hls/flake-compat':
    'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17)
  → 'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33' (2023-10-04)
• Updated input 'hls/flake-utils':
    'github:numtide/flake-utils/a1720a10a6cfe8234c0e93907ffe81be440f4cef' (2023-05-31)
  → 'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26' (2024-01-15)
• Updated input 'hls/nixpkgs':
    'github:NixOS/nixpkgs/ff303118b2ec262eb342eab88ae79318fac66d52' (2023-09-12)
  → 'github:NixOS/nixpkgs/9a3af09826447de299cc31571b07c0ebb8bc37a0' (2024-01-19)
• Updated input 'nix-filter':
    'github:numtide/nix-filter/c843418ecfd0344ecb85844b082ff5675e02c443' (2023-12-04)
  → 'github:numtide/nix-filter/3449dc925982ad46246cfc36469baf66e1b64f17' (2024-01-15)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/428544ae95eec077c7f823b422afae5f174dee4b' (2024-01-13)
  → 'github:NixOS/nixpkgs/c5b6c179f7b7adce1ee234df23e5cb9f1a78f87b' (2024-01-20)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/c2b01772442bfd937abcc9bfa216536af55e962c' (2024-01-14)
  → 'github:NixOS/nixpkgs/21788cb7ef9b9dd4cc168823f096c8996bae0465' (2024-01-21)
2024-01-21 23:07:58 +11:00
Vaibhav Sagar
beeb5abda0
Merge pull request #1465 from sheepforce/graphviz-progs
ihaskell-graphviz: add layout engines besides dot
2024-01-18 13:49:38 +11:00
Phillip Seeber
bfed5699a5 ihaskell-graphviz: add layout engines besides dot 2024-01-17 16:33:02 +01:00
Vaibhav Sagar
127d9b4ac8
lts-22.5 -> lts-22.6 (#1464) 2024-01-16 15:37:34 +11:00
Vaibhav Sagar
a374767e50 IHaskell.Test.Parser: fix typo 2024-01-16 14:04:01 +11:00
Vaibhav Sagar
9d4c5eea47
flake.lock: Update (#1463)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/92d3ba98161f8b6f7e1b8abec70df9ee6af16216' (2024-01-06)
  → 'github:haskell/haskell-language-server/10b5f3bd51862175d2b63803f5dffd4bd862cae8' (2024-01-13)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/7e451ea687631acf29744281f036541db66bff1a' (2024-01-07)
  → 'github:NixOS/nixpkgs/428544ae95eec077c7f823b422afae5f174dee4b' (2024-01-13)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/d06090e6a06485a2ab8c23c3a798ab56e9f44e93' (2024-01-07)
  → 'github:NixOS/nixpkgs/c2b01772442bfd937abcc9bfa216536af55e962c' (2024-01-14)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-14 14:41:17 +11:00
Vaibhav Sagar
f68952b3e4
.github/workflows/nix.yml: bump cachix action (#1461)
This uses the new daemon mode that pushes store paths concurrently.
2024-01-13 00:39:37 +11:00
Vaibhav Sagar
e7835e2332
lts-22.4 -> lts-22.5 (#1460) 2024-01-09 22:27:42 +11:00
Vaibhav Sagar
52bc073b31
Update flake.lock (#1459)
* flake.lock: Update

Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/0be6fa7d8591bebbd6e34ee78b79a10b11762973' (2023-12-28)
  → 'github:haskell/haskell-language-server/92d3ba98161f8b6f7e1b8abec70df9ee6af16216' (2024-01-06)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/1d88a5f3b1910265763b16af703d4adb8658e7c8' (2023-12-31)
  → 'github:NixOS/nixpkgs/7e451ea687631acf29744281f036541db66bff1a' (2024-01-07)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/cba7a53a3d8c8e9175dcd9968cda9be41d11e7a8' (2023-12-31)
  → 'github:NixOS/nixpkgs/d06090e6a06485a2ab8c23c3a798ab56e9f44e93' (2024-01-07)

* nix/overlay-9.6.nix: update

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-07 15:21:14 +11:00
Vaibhav Sagar
9bf5a58fb2
flake.lock: Update (#1458)
Flake lock file updates:

• Updated input 'hls':
    'github:haskell/haskell-language-server/c2fcaae46278166feb01fb00b750ee80d9c90eb6' (2023-12-26)
  → 'github:haskell/haskell-language-server/0be6fa7d8591bebbd6e34ee78b79a10b11762973' (2023-12-28)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/9fc0de7eff04a03c9c43f5ff55d97d0e4e8f3141' (2023-12-27)
  → 'github:NixOS/nixpkgs/1d88a5f3b1910265763b16af703d4adb8658e7c8' (2023-12-31)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/48d1e73d8bbd7e183b99b5b4ada1f5f6248a0b8d' (2023-12-27)
  → 'github:NixOS/nixpkgs/cba7a53a3d8c8e9175dcd9968cda9be41d11e7a8' (2023-12-31)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-01 00:45:28 +11:00
Vaibhav Sagar
591ed7e560
lts-22.0 -> lts-22.4 (#1457) 2023-12-30 14:52:28 +11:00
Vaibhav Sagar
efaed25b2e
stack.yaml: use lts-22 (#1456) 2023-12-28 22:42:43 +11:00
Vaibhav Sagar
6c290d537a
Use token to test flake.nix updates (#1452) 2023-12-28 00:24:38 +11:00
github-actions[bot]
b50a27f23a
flake.lock: Update (#1453)
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/7e5bf3925f6fbdfaf50a2a7ca0be2879c4261d19' (2021-09-13)
  → 'github:numtide/flake-utils/4022d587cbbfd70fe950c1e2083a02621806a725' (2023-12-04)
• Added input 'flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Updated input 'hls':
    'github:haskell/haskell-language-server/7db6215c6da39b6550d7c1ce6ea5b1bbe6e6dfde' (2023-11-23)
  → 'github:haskell/haskell-language-server/c2fcaae46278166feb01fb00b750ee80d9c90eb6' (2023-12-26)
• Updated input 'nix-filter':
    'github:numtide/nix-filter/41fd48e00c22b4ced525af521ead8792402de0ea' (2023-09-16)
  → 'github:numtide/nix-filter/c843418ecfd0344ecb85844b082ff5675e02c443' (2023-12-04)
• Updated input 'nixpkgs23_11':
    'github:NixOS/nixpkgs/42c3641cc777954b8e346740026cd0fbbad52ae1' (2023-12-14)
  → 'github:NixOS/nixpkgs/9fc0de7eff04a03c9c43f5ff55d97d0e4e8f3141' (2023-12-27)
• Updated input 'nixpkgsMaster':
    'github:NixOS/nixpkgs/53755e6dbd153ffc4724addb354d59a0993eeebc' (2023-12-07)
  → 'github:NixOS/nixpkgs/48d1e73d8bbd7e183b99b5b4ada1f5f6248a0b8d' (2023-12-27)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-27 16:38:38 +11:00
Vaibhav Sagar
5b73569455
.github/workflows/update-flake-lock.yml: init (#1450) 2023-12-27 16:11:53 +11:00
Vaibhav Sagar
3a5c18e3b3
nix/overlay-*.nix: update for 23.11 (#1447)
* nix/overlay-*.nix: update for 23.11
2023-12-24 01:23:02 +11:00
Vaibhav Sagar
249e4406f9
ihaskell-aeson: remove here dependency (#1449) 2023-12-23 18:16:56 +11:00
Vaibhav Sagar
8886060a69
.github/workflows/nix.yml: use latest nixpkgs 23.11 (#1448) 2023-12-23 12:39:44 +11:00
Vaibhav Sagar
eb7b9423d9
.github/workflows/stack.yml: reinstate ipython-kernel example test (#1445) 2023-12-20 22:18:14 +11:00
Vaibhav Sagar
4dee7a4714
stack/stack-9.6.yaml: use lts-22.0 (#1444) 2023-12-20 21:45:48 +11:00
Vaibhav Sagar
f663f24116
Only cache compiled dependencies in Stack CI (#1443) 2023-12-20 20:31:56 +11:00
Vaibhav Sagar
8c820000bf
Use 'haskell-actions' instead of 'haskell/actions' (#1442) 2023-12-20 20:30:26 +11:00
Vaibhav Sagar
e3ced59909
Remove redundant CI checks (#1440)
* Remove redundant Stack CI checks

* Disable redundant Nix CI checks
2023-12-20 17:44:58 +11:00
Vaibhav Sagar
5f88dd3409
.github/workflows/stack-nix.yml: don't test stack.yaml separately (#1441) 2023-12-20 17:43:57 +11:00
Vaibhav Sagar
0cac11cd78
.github/workflows/stack-nix.yml: use different cache key (#1439) 2023-12-20 17:00:24 +11:00
Vaibhav Sagar
8dca2f4576
Reinstate tests for GHC <= 8.6 (#1437)
* Reinstate tests for GHC <= 8.6

* update paths

* .github/workflows/stack.yml: use older Ubuntu

* .github/workflows/stack.yml: disable integration test on 8.2
2023-12-20 14:09:11 +11:00
Vaibhav Sagar
e02373f853
stack.yaml: bump Chart-cairo (#1436) 2023-12-19 11:49:16 +11:00
Vaibhav Sagar
874673f3fe
.github/workflows/stack-nix.yml: don't test 8.8 (#1433) 2023-12-16 02:07:02 +11:00
Vaibhav Sagar
dc9c19e2a6
Merge pull request #1432 from IHaskell/binary-cache-flake-hint
flake.nix: add binary cache flake hint
2023-12-15 22:37:05 +11:00
Vaibhav Sagar
cab38b6071 Whoops 2023-12-15 21:55:19 +11:00
Vaibhav Sagar
5029e5e2c0 flake.nix: add binary cache flake hint 2023-12-15 21:52:42 +11:00
Vaibhav Sagar
5b68e16bae
Merge pull request #1430 from IHaskell/nixos-23.11
Use NixOS 23.11
2023-12-15 21:46:48 +11:00
Vaibhav Sagar
6257c39395 .github/workflows/nix.yml: update Nix version 2023-12-15 21:38:22 +11:00
Vaibhav Sagar
c769226dbb Drop Nix builds for 9.0 and 9.2 2023-12-15 21:38:22 +11:00
Vaibhav Sagar
295d9971a3 nix/overlay-9.2.nix: init 2023-12-15 21:38:22 +11:00
Vaibhav Sagar
c3af1fb1d3 Ignore Stack files in Nix CI 2023-12-15 21:38:22 +11:00
Vaibhav Sagar
fe19ef2fca Ignore more aggressively for CI 2023-12-15 21:38:22 +11:00
Vaibhav Sagar
ff4ce55e81 nix/: clean up unused 'compiler' arg 2023-12-15 21:38:22 +11:00
Vaibhav Sagar
002227c331 Use NixOS 23.11 2023-12-15 21:38:22 +11:00
Vaibhav Sagar
3560f14645
Merge pull request #1431 from codedownio/nix-flake-run
flake: use a more recent GHC, and set mainProgram = "jupyter-lab" for envs
2023-12-15 21:38:03 +11:00
Tom McLaughlin
4dc226919b flake: use a more recent GHC, and set mainProgram = "jupyter-lab" 2023-12-15 02:01:59 -08:00
Vaibhav Sagar
9160fe75ce
Merge pull request #1429 from codedownio/stack-nix-ci
CI: add stack --nix workflow
2023-12-08 01:55:04 +11:00
Vaibhav Sagar
d21fa606f5
Merge pull request #1428 from codedownio/9.8-display
GHC 9.8 Nix display packages support
2023-12-08 01:54:23 +11:00
thomasjm
ef2d4cb00a GHC 9.8 Nix display packages support 2023-12-07 01:24:26 -08:00
thomasjm
74cb058262 CI: add stack --nix workflow 2023-12-06 22:42:09 -08:00
Vaibhav Sagar
af15df4a9e Dockerfile: account for comment 2023-12-05 23:49:26 +11:00
Vaibhav Sagar
832f33a47c
Merge pull request #1425 from codedownio/flake-stack-work
Nix and stack.yaml organization
2023-12-05 14:53:50 +11:00
Tom McLaughlin
6c3e584e87 CI: disable a couple things for GHC 9.8 2023-12-04 18:23:10 -08:00
Tom McLaughlin
4de5973e7c A little more clarification in the flake 2023-12-04 17:20:44 -08:00
Tom McLaughlin
a1cd72bf86 Remove flake outputs we don't need now 2023-12-04 17:18:19 -08:00
Tom McLaughlin
a4f8a376af CI: try using Ubuntu libraries for stack builds 2023-12-04 17:15:04 -08:00
Tom McLaughlin
ba02f490d1 CI fixes 2023-12-02 18:10:36 -08:00
Tom McLaughlin
861966733a Add output about stack integration when --debug is used 2023-12-02 18:10:27 -08:00
Tom McLaughlin
979e462486 Be able to pass extra flags to stack integration 2023-12-02 18:08:27 -08:00
Tom McLaughlin
1c8f9c4ab8 overlay-9.6.nix: remove zeromq4-haskell workaround 2023-12-02 18:08:27 -08:00
Tom McLaughlin
d15929baae Remove stack .lock files 2023-12-02 18:08:27 -08:00
Tom McLaughlin
9f57e2c52e Nix and stack.yaml organization 2023-12-02 18:08:27 -08:00
Vaibhav Sagar
641e7b9ecc release-9.8.nix: update 2023-11-22 01:26:12 +11:00
Vaibhav Sagar
72e663bcc1 ihaskell-diagrams: 0.4.0.0 2023-11-09 14:27:18 +11:00
Vaibhav Sagar
31e8523626 ihaskell-widgets.cabal: 0.4.0.0 2023-11-08 12:05:30 +11:00
Vaibhav Sagar
1b4c2a4c3c ihaskell: 0.11.0.0 2023-11-08 11:17:33 +11:00
Vaibhav Sagar
624c63aa97 ipython-kernel: 0.11.0.0 2023-11-08 11:14:44 +11:00
Vaibhav Sagar
f724cd3e19 ghc-parser: 0.2.6.0 2023-11-08 11:09:37 +11:00
Vaibhav Sagar
902c560960 release-9.6.nix: cleanup 2023-10-25 21:52:45 +11:00
Vaibhav Sagar
d9d20b9252 release-9.6.nix: update 2023-10-25 21:29:06 +11:00
Vaibhav Sagar
822693401a Remove here dependency 2023-10-25 19:54:33 +11:00
Vaibhav Sagar
7cd7edf8cf Support GHC 9.8 2023-10-25 18:37:28 +11:00
Vaibhav Sagar
df8615fc49
Merge pull request #1418 from avinayak/patch-1
fix: Updated demo links
2023-10-02 16:21:48 +11:00
Atul Vinayak
6994d75a3e
fix: Updated demo links
nbviewer.ipython.org -> nbviewer.org
2023-10-01 15:27:22 -07:00
Vaibhav Sagar
d7ad5d57ce
Merge pull request #1414 from codedownio/html-output
Switch from pager to proper HTML output for code highlighting
2023-08-18 23:32:26 +10:00
Tom McLaughlin
3ec715184d Revert package bumps in stack-8.6.yaml 2023-08-18 04:51:28 -07:00
Tom McLaughlin
2939efb7c8 Disable integration test for GHC 8.2 2023-08-18 03:53:31 -07:00
Tom McLaughlin
a36f2dcb80 Fix html call for hlint < 2.1.18 2023-08-18 03:31:32 -07:00
Tom McLaughlin
f28ff4a48f Just use unicode escapes consistently 2023-08-18 03:05:06 -07:00
Tom McLaughlin
901c4e4057 Revert "Do setLocaleEncoding utf8 in Hspec.hs"
This reverts commit 432a301f6474bec1b7f314bbc57d256ecc9d7499.
2023-08-18 03:05:00 -07:00
thomasjm
432a301f64 Do setLocaleEncoding utf8 in Hspec.hs 2023-08-18 01:55:34 -07:00
thomasjm
c5ba628dc0 Try a couple fixes 2023-08-17 05:52:36 -07:00
thomasjm
eab83a28f0 Introduce displayDatasBecome for test JSON output 2023-08-16 16:43:08 -07:00
thomasjm
dbea941859 Re-enable language extension test 2023-08-16 16:11:33 -07:00
thomasjm
84efeaecc4 Output test failures as JSON 2023-08-16 16:03:17 -07:00
thomasjm
3ab225839f Try fixing 8.2 eval test 2023-08-16 03:21:36 -07:00
thomasjm
a0601f64ba GHC 8.6 -> 8.4 in eval test 2023-08-16 03:04:10 -07:00
thomasjm
372261871b Working on Eval.h test for 8.8 and 8.6 2023-08-16 02:50:59 -07:00
thomasjm
0b8474bc29 Bump a few packages in stack 8.6 and 8.8 2023-08-16 02:49:43 -07:00
thomasjm
de3562770b Add type signature to throwAway 2023-08-16 02:02:22 -07:00
thomasjm
634cdc0ea6 Remove pages function 2023-08-16 01:58:31 -07:00
thomasjm
1d91c0268c Try filling in text only response 2023-08-16 01:57:18 -07:00
thomasjm
04527212b3 Try removing another import 2023-08-16 00:56:10 -07:00
Tom McLaughlin
1dc18fadd3 Change default class to "CodeMirror cm-s-jupyter cm-s-ipython" and update acceptance test
cm-s-ipython for coloring in Jupyter Notebook
cm-s-jupyter for coloring in Jupyter Lab
CodeMirror for monospace font in both
2023-08-15 19:27:43 -07:00
thomasjm
37ee74aeba Move another import 2023-08-11 02:37:28 -07:00
thomasjm
d6871d5484 Fix test running 2023-08-11 02:08:24 -07:00
thomasjm
84f947e035 Conditionally import a couple things in Lint.hs 2023-08-11 02:08:14 -07:00
thomasjm
662d0b0a0a A few more tweaks to hopefully fix CI 2023-08-11 01:59:46 -07:00
thomasjm
96cd640b82 Try removing another unused import 2023-08-11 01:17:26 -07:00
thomasjm
653858121a stack.yaml: several new packages needed for Nix build 2023-08-11 01:17:15 -07:00
thomasjm
648eb248a8 Try removing unused import to fix CI 2023-08-11 00:55:10 -07:00
Tom McLaughlin
f2567d6dc3 Fix warnings about non-specific cabal version 2023-08-10 23:00:11 -07:00
thomasjm
5efe6969bb stack.yaml: don't pass enable: false as it disables Stack autodetection 2023-08-10 23:00:11 -07:00
thomasjm
57fa0fe504 Only import and run htmlify for GHC >= 8.4.0 2023-08-10 23:00:11 -07:00
thomasjm
7a8d728ad1 Switch from pager to HTML output for directives 2023-08-10 23:00:11 -07:00
Vaibhav Sagar
7de07ec3a3
Bump LTS to GHC 9.4 (#1416)
* stack-9.2.yaml

* Bump LTS to GHC 9.4

* extra deps

* stack.yaml: update

* Add hidden package flags at the end
2023-08-08 02:50:38 +10:00
Vaibhav Sagar
5786426ceb
.github/workflows/ci.yml: update (#1415)
* .github/workflows/ci.yml: update

* Avoid problematic cairo dependency

* extra-deps

* more extra deps

* negate conditional

* Resume running integration test on 8.2 and 8.4
2023-08-07 20:36:29 +10:00
Vaibhav Sagar
d4b571ba47
.github/workflows/nix.yml: bump NixOS version (#1412)
* .github/workflows/nix.yml: bump NixOS version

* README.md: update

* Drop release-9.0.nix
2023-07-27 21:17:26 +10:00
Vaibhav Sagar
36e6bd15d6 release-9.2.nix: use ghc928 2023-07-23 23:51:04 +10:00
Vaibhav Sagar
3e01b5b5e5 ihaskell.cabal: 0.10.4.0 2023-07-23 22:51:53 +10:00
Vaibhav Sagar
a5dd20c897 ghc-parser: 0.2.5.0 2023-07-23 22:49:56 +10:00
Vaibhav Sagar
c547ee2fdc README.md: fix out-of-date Nix example invocation 2023-05-06 08:38:13 +07:00
Vaibhav Sagar
af37a01259 GHC 9.6 support 2023-04-16 14:15:26 +10:00
Vaibhav Sagar
dc8b12a09a
Merge pull request #1404 from elgohr-update/master
Updated elgohr/Publish-Docker-Github-Action to a supported version (v5)
2023-04-05 08:48:47 +10:00
Lars Gohr
3283950889
Updated elgohr/Publish-Docker-Github-Action to a supported version (v5) 2023-03-28 00:05:23 +02:00
Vaibhav Sagar
8afa4e22c5
Bump stack.yaml to use GHC 9.2 (#1402)
* Bump stack.yaml to use GHC 9.2

* .github/workflows/ci.yml: update

* .github/workflows/nix.yml: update

* .github/workflows/nix.yml: update

* release-9.2.nix: update

* Dockerfile: use newest pip

* Use newer lts
2023-03-03 22:53:17 +11:00
Vaibhav Sagar
1c22a874ac
Merge pull request #1389 from SmartHypercube-fork/master
Fix stack detection
2022-12-19 16:10:00 +11:00
Hypercube
5577155a5e Fix warnings 2022-12-18 00:00:00 +00:00
Hypercube
6c25824cc7 Fix stack detection 2022-12-16 00:00:00 +00:00
Vaibhav Sagar
c466b4fa2a
Test with release-9.4.nix (#1386)
* Test with release-9.4.nix

* release-9.4.nix: update

* Remove extra newline
2022-12-05 10:46:36 +11:00
Vaibhav Sagar
dd761af169 release-9.4.nix: update 2022-12-05 10:19:33 +11:00
Vaibhav Sagar
465fded2f7
Merge pull request #1383 from FPtje/allow-custom-display-name
Add options to set kernel and display name
2022-11-14 07:27:10 +11:00
Falco Peijnenburg
d6fc3faf84 Add options to set kernel and display name 2022-11-13 17:23:46 +01:00
Vaibhav Sagar
7d0b9b070a
Merge pull request #1379 from jamesdbrock/displaytmp
Display rendering withSystemTempDirectory
2022-11-01 17:06:13 +11:00
James Brock
995a7f2c18 Add ihaskell-plot PlotExample.ipynb 2022-10-31 15:01:29 +09:00
James Brock
c8a7f5613c Remove one ByteString → String conversion step for SVG 2022-10-31 12:27:39 +09:00
James Brock
6bc4bd704f Display rendering withSystemTempDirectory 2022-10-31 12:27:39 +09:00
James Brock
fa6f7b0461 nix flake Jupyter environment for Display modules 2022-10-31 12:27:39 +09:00
James Brock
3df95c4d1c HLS dev environment for ihaskell-display modules
cairo,pango,lapack,blas
2022-10-31 12:24:18 +09:00
Vaibhav Sagar
725d900414 ihaskell: update 2022-10-10 08:37:52 +11:00
Vaibhav Sagar
7ce0286e81 ghc-parser: update 2022-10-10 08:37:52 +11:00
Vaibhav Sagar
1238f50da6 release-9.4.nix: init 2022-10-10 08:37:52 +11:00
Vaibhav Sagar
14059d9443
Merge pull request #1372 from felixonmars/patch-1
Update homepage url for ghc-parser
2022-09-25 10:12:39 +10:00
Felix Yan
7df0b7d848
Update homepage url for ghc-parser
Make it consistent with the repository.
2022-09-23 22:53:42 +03:00
Vaibhav Sagar
e1fc53a97f ihaskell: 0.10.3.0 2022-09-16 21:54:45 +10:00
Vaibhav Sagar
4098d5ad5d ipython-kernel: 0.10.3.0 2022-09-16 21:51:19 +10:00
Vaibhav Sagar
28c47adfcd ghc-parser: 0.2.4.0 2022-09-16 21:47:29 +10:00
Vaibhav Sagar
9a9f4cb669
Merge pull request #1369 from codedownio/stack-tweaks
A couple more stack files tweaks + update CI
2022-09-12 20:19:42 +10:00
Tom McLaughlin
d8c4a6bc13 A couple more stack files tweaks + update CI 2022-09-11 20:48:59 -07:00
Vaibhav Sagar
5a6f426c24
Merge pull request #1368 from codedownio/ghc-9.2-stack
Check in stack-9.2.yaml for GHC 9.2 build
2022-09-12 11:32:06 +10:00
Tom McLaughlin
e7abc395e2 Check in stack-9.2.yaml for GHC 9.2 build 2022-09-11 00:58:42 -07:00
Vaibhav Sagar
53f8e07738
Merge pull request #1365 from felixonmars/patch-1
Update project description in .cabal
2022-08-26 13:53:36 +10:00
Felix Yan
9457ad0b88
Update project description in .cabal
The repository description and README are referring to Jupyter instead of IPython. Let's make them consistent.
2022-08-25 16:24:34 +03:00
Vaibhav Sagar
e0c1a8d3fd
Merge pull request #1362 from SmartHypercube-fork/master
refactor IHaskell.Display.Gnuplot
2022-07-22 22:52:06 +10:00
Vaibhav Sagar
9c21d96c27
Merge pull request #1360 from YakoYakoYokuYoku/waydyn
Dynamic way for dynamically linked RTS Haskell distros
2022-07-22 10:25:05 +10:00
Hypercube
2706ee4c7a refactor IHaskell.Display.Gnuplot 2022-07-22 00:00:00 +00:00
Martin Reboredo
ca424ff6e2
Dynamic way for dynamically linked RTS 2022-07-21 00:28:35 -03:00
Vaibhav Sagar
0e7b49a292 Dockerfile: install notebook 2022-07-20 10:31:53 +10:00
Vaibhav Sagar
5c0b51d744
Merge pull request #1359 from SmartHypercube-fork/master
avoid switching directory in ihaskell-display
2022-07-20 10:09:03 +10:00
Hypercube
5bf443fb7c avoid switching directory in ihaskell-display 2022-07-19 00:00:00 +00:00
Vaibhav Sagar
5bcfb8976c .github/workflows/nix.yml: run integration test with GHC 9.2 2022-06-07 14:50:41 +10:00
Vaibhav Sagar
1794232b4c
Test with GHC 9.0 and Stack (#1351)
* Test with GHC 9.0 and Stack
* stack-9.0.yaml: use lts-19.10
* IHaskell.Eval.Util: use `nub` when comparing package flags
2022-06-07 14:38:57 +10:00
Vaibhav Sagar
10c93054de Test with NixOS-22.05 2022-06-05 10:15:21 +10:00
Vaibhav Sagar
5229c7dfc9
Merge pull request #1350 from pe200012/master
update to lts-19
2022-06-04 10:02:17 +10:00
pe200012
196596438f
update to lts-19 2022-06-03 18:40:36 +08:00
Vaibhav Sagar
0c5cde127e
Merge pull request #1343 from soppelmann/AArch64
Use gtk2hs-builtools-0.13.8.3
2022-05-11 12:29:48 +10:00
Getz
8d5334c4fa Use gtk2hs-builtools-0.13.8.3 2022-05-10 17:55:07 +02:00
Vaibhav Sagar
3bdd692ce7
Merge pull request #1342 from srid/patch-3
nix: Allow M1
2022-05-01 21:39:36 +10:00
Sridhar Ratnakumar
1de3ec7bf1
nix: Allow M1
At least `nix run` works on `aarch64-darwin`.
2022-04-30 16:28:48 -04:00
Vaibhav Sagar
27753904f4 requirements.txt: update 2022-04-03 13:24:19 +10:00
Vaibhav Sagar
e3f8da423d
Merge pull request #1331 from IHaskell/jamesdbrock-patch-1
IHaskell logo
2022-03-16 15:47:49 +11:00
James Brock
2c48c2ded6
Add files via upload 2022-03-16 13:45:05 +09:00
Vaibhav Sagar
865df8c7fd
Merge pull request #1329 from msakai/patch-1
Fix typo in README.md: --extra-lib-dir -> --extra-lib-dirs
2022-03-02 04:30:25 +08:00
Masahiro Sakai
b041360bbe
fix typo: --extra-lib-dir -> --extra-lib-dirs 2022-03-01 20:37:38 +09:00
Vaibhav Sagar
fd9f9facea stack.yaml: use lts-18.27 2022-02-28 21:56:45 +08:00
Vaibhav Sagar
14beb6db31 ghc-parser.cabal: clean up conditionals 2022-02-28 08:04:01 +08:00
Vaibhav Sagar
618a315bbd README.md: update macOS instructions 2022-02-01 22:25:29 +11:00
Vaibhav Sagar
c78143d4a4
Merge pull request #1318 from FPtje/document-nix-develop
Add developing section to README
2022-01-18 20:49:28 +11:00
Vaibhav Sagar
f4d1cf2978
Merge pull request #1317 from FPtje/add-to-nix-develop
Add jupyter to flake.nix dev shell
2022-01-18 20:47:43 +11:00
Falco Peijnenburg
988b7a6994 Add documentation references to development 2022-01-17 21:17:18 +01:00
Falco Peijnenburg
520f0a8e7d Add jupyterlab to flake.nix dev shell 2022-01-17 20:41:12 +01:00
Vaibhav Sagar
630ac4e4c0
Merge pull request #1319 from FPtje/fix-error-reporting
Return error when evaluation failed
2022-01-17 11:03:16 +11:00
Falco Peijnenburg
cd941890cb Return error when evaluation failed 2022-01-16 22:49:17 +01:00
Falco Peijnenburg
987f0089ec Add developing section to README 2022-01-16 21:41:50 +01:00
Vaibhav Sagar
6362b9b1d6 ipython-kernel: don't output header in ExecuteError message 2022-01-15 15:01:11 +11:00
Vaibhav Sagar
941e42d6fa
Merge pull request #1313 from teto/darwin-support
feat(nix): add darwin support in flake
2022-01-07 18:13:22 +11:00
Matthieu Coudron
e7920b5237 feat(nix): add darwin support in flake
not enabling it in ihaskell make nix flake check fail for jupyterWith
2022-01-06 23:53:55 +01:00
Vaibhav Sagar
db8bd78434 s/lts-18.18/lts-18.19/ 2021-12-25 09:11:07 -05:00
Vaibhav Sagar
d0b6a31e73 s/lts-18.16/lts-18.18/ 2021-12-20 09:17:24 -05:00
Vaibhav Sagar
7e69c7e176 Test against nixos-21.11 2021-12-02 07:45:20 -05:00
Vaibhav Sagar
575b2be1c2 ihaskell: 0.10.2.2 2021-11-30 01:49:43 +11:00
Vaibhav Sagar
e4711bebec ipython-kernel: 0.10.2.2 2021-11-30 01:44:01 +11:00
Vaibhav Sagar
5e4f3ff0e1
Merge pull request #1304 from teto/print-kernel-install-folder
Print where kernel is installed
2021-11-29 01:34:05 -05:00
Matthieu Coudron
b73a82804e Print where kernel is installed 2021-11-29 00:17:08 +01:00
Vaibhav Sagar
419650fd7b
Merge pull request #1306 from teto/ghc8-env
improve flake by distinguishing different goals (development vs final executable vs with a jupyter environment)
2021-11-28 17:53:42 -05:00
Matthieu Coudron
1e710bf305 flake: bumped hls from 1.4.0 to 1.5.0 2021-11-28 15:33:05 +01:00
Matthieu Coudron
9d0238cbcb flake: expose ihaskell directly
we used to expose just the ihaskellEnv. Also added devShell and attribute set for 921. I've renamed some of the packages on the same model as haskell-language-server.
2021-11-28 15:33:05 +01:00
Matthieu Coudron
94cee8a712 chore: cleanup redundant imports
IHaskellPrelude imports most of it
2021-11-16 15:21:24 +01:00
Vaibhav Sagar
4e12b44d55
Merge pull request #1301 from teto/remove-imports
Remove imports
2021-11-11 17:51:55 -05:00
Matthieu Coudron
62313b8622 flake: support several ghc versions 2021-11-11 21:23:37 +01:00
Matthieu Coudron
a7c7139e58 chore: cleanup imports
to make the buildlogs clearer
2021-11-11 21:23:37 +01:00
Matthieu Coudron
ca386f4684 build: reference static-canvas from master
to fix build issues
2021-11-10 19:07:44 +01:00
Vaibhav Sagar
82870a40e8 .github/workflows/ci.yml: don't fail fast 2021-11-10 11:05:11 -05:00
Vaibhav Sagar
c60da6032d stack.yaml: bump to lts-18.16 2021-11-09 07:43:54 -05:00
Vaibhav Sagar
bd9555b11c stack.yaml: bump LTS to 18.15 2021-11-06 15:53:56 -04:00
Vaibhav Sagar
e71c17ff26 .github/workflows: move GHC version check to docker.yml 2021-11-06 14:43:52 -04:00
Vaibhav Sagar
3bc72b479b ihaskell-widgets: attempt to add support for Aeson 2.0 2021-11-06 12:18:19 -04:00
Vaibhav Sagar
e5cc0e3e6f ihaskell: support Aeson 2.0 2021-11-06 12:18:19 -04:00
Vaibhav Sagar
bd0a18dcac ipython-kernel: support Aeson 2.0 2021-11-06 12:18:19 -04:00
Vaibhav Sagar
dd0d75e73d release-9.2.nix: use aeson_2_0_1_0 2021-11-06 12:18:19 -04:00
Vaibhav Sagar
d8e5aa0c45 Clean up ihaskell.cabal 2021-11-06 00:29:31 -04:00
Vaibhav Sagar
b15679ff30 ipython-kernel.cabal: remove unused mtl dependency 2021-11-05 23:59:53 -04:00
Vaibhav Sagar
fa4baf5deb release-9.2.nix: update 2021-11-05 12:53:47 -04:00
Vaibhav Sagar
658fdfb1d3 Replace cereal with binary 2021-11-05 12:53:47 -04:00
Vaibhav Sagar
495c120657
Merge pull request #1291 from abarbu/master
Handle plugin initialization using :set -fplugin module
2021-11-04 04:26:40 -04:00
Andrei
f4bd9d16c1 Handle plugin initialization using :set -fplugin .. Previously plugins were (almost) silently ignored 2021-11-03 23:19:42 -04:00
Vaibhav Sagar
1a80bb36db release.nix: whitespace changes 2021-10-23 04:28:54 +11:00
Vaibhav Sagar
4d62398eaa
Merge pull request #1287 from teto/forJupyter
For jupyter
2021-10-22 13:05:08 -04:00
Matthieu Coudron
a39ca44985 nix: expose ihaskellOverlay in flake
flake.nix now:
- expose an overlay to be used by for instance jupyterWith
- disabled tests 'cos failing
- bring haskell-language-server though it seems to choke on codebase
2021-10-22 18:11:51 +02:00
Vaibhav Sagar
0ff0145c03
s/lts-18.5/lts-18.13/ (#1286) 2021-10-16 03:12:49 +11:00
Vaibhav Sagar
6087ea6be5 release.nix: use builtins.path 2021-10-16 01:44:17 +11:00
Vaibhav Sagar
445b7e806a release-9.2.nix: update 2021-10-12 00:30:47 +11:00
Vaibhav Sagar
e75f796f48 release-9.2.nix: update 2021-10-11 15:39:59 +11:00
Vaibhav Sagar
9e5d71e110
.github/workflows/nix.yml: build release-{9.0,9.2}.nix as well (#1285)
* .github/workflows/nix.yml: build release-{9.0,9.2}.nix as well

* release-9.2.nix: update

* Fix more hash mismatches

* release-9.2.nix: update

* .github/workflows/nix.yml: don't test for release-9.2.nix

* .github/workflows/nix.yml: fix comment indentation
2021-10-11 04:14:16 +11:00
Vaibhav Sagar
8ebab9884b ihaskell: support GHC 9.2 2021-10-10 03:47:47 -04:00
Vaibhav Sagar
5da837a71e ghc-parser: support GHC 9.2 2021-10-10 03:47:47 -04:00
Vaibhav Sagar
c2798505e7 release-9.2.nix: init 2021-10-10 03:47:47 -04:00
Vaibhav Sagar
180e42bae4 ihaskell: add use-hlint flag 2021-10-09 12:57:48 -04:00
Vaibhav Sagar
42a78084c5 ghc-parser.cabal: remove unused build-tools 2021-10-08 14:18:37 -04:00
Vaibhav Sagar
eeb3fb186c
Merge pull request #1281 from teto/flake-support
build: add flake support
2021-10-08 11:46:19 -04:00
Matthieu Coudron
ae85066b7c build: add flake support 2021-10-06 22:21:09 +02:00
Vaibhav Sagar
09026349db
IHaskell.Eval.Util: handle GHC environment files in initGhci (#1280) 2021-10-03 19:20:59 +11:00
Vaibhav Sagar
f842343aa1 release.nix: reduce rebuilds by not using 'ihaskell-src' for ghc-parser and ipython-kernel 2021-09-30 23:12:30 +10:00
Vaibhav Sagar
45816b9ed8 release.nix: add 'staticExecutable' option that is false by default 2021-09-30 04:36:16 +10:00
Vaibhav Sagar
7cf52887ec IHaskell.Eval.Lint: ignore "Unused LANGUAGE pragma" hint 2021-09-29 19:46:04 +10:00
Vaibhav Sagar
cc47183edb release.nix: refactor 2021-09-25 02:54:37 +10:00
Vaibhav Sagar
6497fecdfe release.nix: refactor 2021-09-25 02:36:10 +10:00
Vaibhav Sagar
ea6c766d65 release.nix: refactor 2021-09-25 02:12:44 +10:00
Vaibhav Sagar
56682511b4 release.nix: remove non-IHaskell overrides 2021-09-23 00:17:58 +10:00
Vaibhav Sagar
460feec928 release.nix: ignore files like '.ghci' and '.dockerignore' 2021-09-19 03:13:24 +10:00
Vaibhav Sagar
a28b9ba9f8 release.nix: use nix-gitignore 2021-09-19 03:05:50 +10:00
Vaibhav Sagar
a9672e846b
.github/workflows/ci.yml: use restore-keys (#1279) 2021-09-17 00:27:32 +10:00
Vaibhav Sagar
739b7f2f49 release.nix: use functions to make passthru more useful 2021-09-15 17:30:58 +10:00
Vaibhav Sagar
7818a97985 Dockerfile: install jupyterlab 2021-09-15 14:31:03 +10:00
Vaibhav Sagar
c01f75aa73 release.nix: remove passthru attrs subsumed by ihaskellKernelSpec 2021-09-15 13:58:09 +10:00
Vaibhav Sagar
e0f439cb12 release.nix: use symbolic link in ihaskellLabextension 2021-09-15 02:46:12 +10:00
Vaibhav Sagar
bfeccc2394 release.nix: remove ihaskellWrapperSh 2021-09-15 02:44:11 +10:00
Vaibhav Sagar
e7b40f3661 release.nix: '--enable-executable-dynamic' no longer appears to be necessary 2021-09-14 19:58:04 +10:00
Vaibhav Sagar
7c69a6c470 .github/workflows/nix.yml: fix typo 2021-09-14 17:25:15 +10:00
Vaibhav Sagar
13e06a6e2a .github/workflows/nix.yml: add ihaskell to packages for acceptance test 2021-09-14 17:17:04 +10:00
Vaibhav Sagar
1dbe147982 release.nix: s/_drv/drv/ 2021-09-14 16:14:14 +10:00
Vaibhav Sagar
24529c4029 release.nix: don't include ihaskell in ihaskellEnv by default 2021-09-14 16:05:39 +10:00
Vaibhav Sagar
cf29b2c52d
release.nix: construct kernel.json manually, obviating the need for ihaskell wrappers (#1277) 2021-09-13 06:35:56 +10:00
Vaibhav Sagar
119655f90f
release.nix: setting GHC_PACKAGE_PATH doesn't seem to do anything useful (#1276) 2021-09-13 01:47:33 +10:00
Vaibhav Sagar
b89ae121ca
release.nix: create new JUPYTER_DATA_DIR for each IHaskell invocation (#1275) 2021-09-13 01:36:30 +10:00
Vaibhav Sagar
e6a231f2b3
.github/workflows/docker.yml: update (#1274) 2021-09-12 14:41:52 +10:00
Vaibhav Sagar
50fb46b337 .github/workflows/docker.yml: caching doesn't seem particularly useful 2021-09-12 04:30:34 +10:00
Vaibhav Sagar
7dcbcb7239 Dockerfile: copy jupyterlab-ihaskell over harder 2021-09-12 04:25:36 +10:00
Vaibhav Sagar
ad27358455 Dockerfile: copy jupyterlab-ihaskell directory over 2021-09-12 04:04:32 +10:00
Vaibhav Sagar
8bfaad03e5
Remove stack --docker development support (#1273) 2021-09-12 03:40:45 +10:00
Vaibhav Sagar
c9d646bc88 demo: remove 2021-09-12 03:22:19 +10:00
Vaibhav Sagar
495756d750 release.nix: remove unnecessary wrapProgram 2021-09-12 02:42:10 +10:00
Vaibhav Sagar
07623f8899
.github/workflows/ci.yml: hash stack.yaml contents for better caching (#1272) 2021-09-11 23:20:22 +10:00
Vaibhav Sagar
d248e0bb48 release-8.8.nix: remove 2021-09-11 20:47:15 +10:00
Vaibhav Sagar
88d7bc877b .github/workflows/nix.yml: don't build for previous GHC any more 2021-09-11 20:46:26 +10:00
Vaibhav Sagar
32b8f880b4
ipython-kernel: implement toEncoding for Message type (#1271) 2021-09-11 03:23:10 +10:00
Vaibhav Sagar
ae6b1fdaca
Install a prebuilt version of jupyterlab-ihaskell automatically (#1270)
* ihaskell: automatically install the prebuilt labextension alongside the kernelspec

* README.md: Update to no longer mention installing jupyterlab-ihaskell
2021-09-10 18:50:38 +10:00
Vaibhav Sagar
98fbdf7e1c jupyterlab-ihaskell/webpack.config.js: remove unnecessary newline 2021-09-10 15:29:07 +10:00
Vaibhav Sagar
c475d15cec jupyterlab-ihaskell: use dashes instead of multiple dots to work around cabal behaviour 2021-09-10 15:25:30 +10:00
Vaibhav Sagar
eab3291ed8 jupyterlab-ihaskell: remove unused dependency 2021-09-09 17:17:28 +10:00
Vaibhav Sagar
90059b38b9 jupyterlab-ihaskell: fix name in README 2021-08-30 17:34:54 +10:00
Vaibhav Sagar
d0284159d0 .github/workflows/ci.yml: only cache snapshots 2021-08-30 00:15:11 +10:00
Vaibhav Sagar
0aabace178 .github/workflows/ci.yml: use newest version of cache action 2021-08-29 23:33:54 +10:00
Vaibhav Sagar
73dbed7f3a jupyterlab-ihaskell: update labextension 2021-08-29 13:50:59 +10:00
Vaibhav Sagar
92027da0f3 jupyterlab-ihaskell: use async and await 2021-08-29 13:50:30 +10:00
Vaibhav Sagar
bf0a0f0d94 jupyterlab-ihaskell: more selective type ignoring 2021-08-29 03:43:56 +10:00
Vaibhav Sagar
2638434cae jupyterlab-ihaskell: remove unnecessary console.log 2021-08-29 03:28:19 +10:00
Vaibhav Sagar
1a39ef0092
jupyterlab-ihaskell: commit generated prebuilt extension (#1268) 2021-08-29 03:08:13 +10:00
Vaibhav Sagar
7a4c4869c8
jupyterlab-ihaskell: make compatible with JupyterLab 3 (#1267) 2021-08-29 02:40:21 +10:00
Vaibhav Sagar
0ff0e319d9
Merge pull request #1259 from gibiansky/dependabot/pip/notebook-6.4.1
Bump notebook from 6.1.5 to 6.4.1
2021-08-28 23:39:33 +10:00
Vaibhav Sagar
95692f6021 jupyterlab-ihaskell: enable use as a prebuilt extension 2021-08-28 23:29:07 +10:00
Vaibhav Sagar
0518db3c07
jupyterlab-ihaskell: 0.0.13 (#1262) 2021-08-28 20:21:18 +10:00
Vaibhav Sagar
4748938d92 Dockerfile: don't install ihaskell-display dependencies 2021-08-26 23:13:32 +10:00
Vaibhav Sagar
910d047063 Dockerfile: avoid building ihaskell-display dependencies
They don't make it into the final image so building dependencies wastes
compute time without any real benefit.
2021-08-26 19:58:29 +10:00
Vaibhav Sagar
1252fff6cd Dockerfile: don't build ihaskell-display packages 2021-08-26 19:42:31 +10:00
Vaibhav Sagar
682a689688 stack.yaml: use 18.5 LTS until there is a GHC 8.10.6 Docker image 2021-08-26 18:18:39 +10:00
Vaibhav Sagar
2954716097
Merge pull request #1261 from brandon-leapyear/patch-1
Fix PermissionError
2021-08-26 17:22:23 +10:00
Brandon Chinn
a3271fe0c8
Fix PermissionError 2021-08-25 20:45:19 -07:00
Vaibhav Sagar
0832764259 README.md: update Mybinder badge link 2021-08-24 22:34:12 +10:00
Vaibhav Sagar
63ed17b4d3
README.md: update (#1260) 2021-08-24 22:32:21 +10:00
dependabot[bot]
5eb62eed03
Bump notebook from 6.1.5 to 6.4.1
Bumps [notebook](https://github.com/jupyter/jupyterhub) from 6.1.5 to 6.4.1.
- [Release notes](https://github.com/jupyter/jupyterhub/releases)
- [Changelog](https://github.com/jupyterhub/jupyterhub/blob/main/CHECKLIST-Release.md)
- [Commits](https://github.com/jupyter/jupyterhub/commits)

---
updated-dependencies:
- dependency-name: notebook
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 20:43:05 +00:00
Vaibhav Sagar
082b2fba65
.github/workflows/ci.yml: clean up Dockerfile GHC version matching check (#1258) 2021-08-23 02:24:40 +10:00
Vaibhav Sagar
a89ad1a09d
stack.yaml: add ihaskell-graphviz (#1257) 2021-08-23 01:41:40 +10:00
Vaibhav Sagar
cf46da1856
.github/workflows/ci.yml: don't run sample notebook on GHC 8.0 (#1256) 2021-08-23 01:02:19 +10:00
Vaibhav Sagar
804d83f5e4
Merge pull request #1255 from jamesdbrock/gnuplot-example
Add example notebook for ihaskell-gnuplot
2021-08-23 00:11:09 +10:00
James Brock
561b9f0c41 Add example notebook for ihaskell-gnuplot 2021-08-22 21:31:31 +09:00
Vaibhav Sagar
3ee69f63a0 cabal.project: add ihaskell-graphviz 2021-08-22 17:46:14 +10:00
Vaibhav Sagar
d239e6f0d5
Merge pull request #1254 from gibiansky/bump-resolver
stack.yaml: bump resolver to lts-18.7
2021-08-22 17:44:45 +10:00
Vaibhav Sagar
911c440b3d stack.yaml: bump resolver to lts-18.7 2021-08-22 15:24:11 +10:00
Vaibhav Sagar
39f18ffa3d
Merge pull request #1252 from brandon-leapyear/chinn/docker
Rewrite Docker image
2021-08-21 04:27:36 +10:00
Brandon Chinn
3867595cef Revert Dockerfile removal in CI paths 2021-08-19 09:58:06 -07:00
Brandon Chinn
31648b4f36 Add link to ihaskell script 2021-08-18 12:26:26 -07:00
Brandon Chinn
e9efce1cae Avoid getting jupyter artifacts in mounted directory 2021-08-18 12:26:26 -07:00
Brandon Chinn
2f75894f0d Check GHC_VERSION in CI 2021-08-18 09:03:26 -07:00
Brandon Chinn
1b752edd0c Fix README 2021-08-18 09:03:26 -07:00
Brandon Chinn
66ad39913f Fix Docker image with --env-file 2021-08-18 09:03:26 -07:00
Brandon Chinn
d3cd4f2519 Add --env-file flag 2021-08-18 09:03:26 -07:00
Brandon Chinn
296c8e4782 Improve Dockerfile 2021-08-18 09:03:25 -07:00
Brandon Chinn
7465c5d852 Bump stack version 2021-08-18 09:03:11 -07:00
Brandon Chinn
2891bc8498 Remove dynamic flag
If anyone needs this flag, they should be able to just do
--ghc-options='-dynamic'. Instead of removing it, we could also hide it
behind a Cabal flag
2021-08-18 09:03:11 -07:00
Vaibhav Sagar
11c4715858
Merge pull request #1253 from brandon-leapyear/chinn/resolver
Bump stack resolver
2021-08-18 19:01:37 +10:00
Brandon Chinn
3a856bb644 Bump stack resolver 2021-08-17 21:21:49 -07:00
Vaibhav Sagar
6e69c210c5 Dockerfile: sync LTS with stack.yaml 2021-08-17 14:28:50 +10:00
Vaibhav Sagar
6116de70da
Merge pull request #1249 from jamesdbrock/examples-update
Update some example notebooks
2021-08-16 22:58:23 +10:00
Vaibhav Sagar
1aaa152f1a
Merge pull request #1247 from jamesdbrock/replaceOutput
replaceOutput runs without flickering the GUI
2021-08-16 22:56:49 +10:00
James Brock
c4b7036b19 Update some example notebooks
Update some example notebooks to the latest notebook version, so that
when they start, Jupyter doesn't immediately update them and mark them
as changed.

Also replace the fake diagrams test notebook with a real diagrams test
notebook. The fake diagrams test notebook was actually the charts test
notebook.
2021-08-16 14:41:56 +09:00
James Brock
9f76defd2f replaceOutput runs without flickering the GUI
Also export `OutputMsg` constructors so that users can call
`setField` on an `OutputWidget` to write their own `replaceOutput`
functions.
2021-08-16 11:32:47 +09:00
Vaibhav Sagar
dfcbe59c76
Merge pull request #1246 from daviddavo/master
Updated sample widget Notebooks
2021-08-16 02:00:37 +10:00
David Davó
bd6c403ccc Removed unused imports 2021-08-15 13:11:47 +02:00
David Davó
ba7440ffb7
Merge branch 'gibiansky:master' into master 2021-08-15 11:57:52 +02:00
David Davó
14781f81ce Updated widgets sample Notebooks 2021-08-15 11:57:22 +02:00
David Davó
6dbb61ef42 Added ChangeHandlers to picker widgets 2021-08-15 10:36:55 +02:00
Vaibhav Sagar
65434e970e
Merge pull request #1242 from daviddavo/master
Updating IHaskell-widgets
2021-08-15 17:18:44 +10:00
David Davó
5cf832629b Removed <&> operator 2021-08-14 10:37:21 +02:00
David Davó
948c68526b Updated documentation and removed unused fields 2021-08-13 16:40:25 +02:00
David Davó
414cd64fca Added widget list notebook 2021-08-12 23:21:17 +02:00
David Davó
3cca06044d Unified widget builders naming convention 2021-08-12 11:19:06 +02:00
David Davó
e2e4862486 Revert "Updated docker workflow"
This reverts commit e3a5ae79b5d9232331e368d25a0aba487b21c01d.
2021-08-10 20:06:05 +02:00
David Davó
e3a5ae79b5 Updated docker workflow 2021-08-10 15:20:44 +02:00
David Davó
08627708f3 Some updates to widgets examples 2021-08-07 08:53:34 +02:00
David Davó
6322e6b02f Output widget display anything 2021-08-06 19:39:05 +02:00
David Davó
7e3f0e0068 Output widget with text 2021-08-06 17:41:50 +02:00
Vaibhav Sagar
b82134f939 README.md: fix references to jupyterlab extension 2021-08-07 00:39:01 +10:00
David Davó
3c9dec708c ByteString: Removed orphan 2021-08-05 14:42:36 +02:00
David Davó
1f772ccb96 Added jslink and removed warnings 2021-08-05 13:21:38 +02:00
David Davó
6275019ac1 Added link widgets and toKey in Singletons 2021-08-04 22:03:52 +02:00
David Davó
67ab446eed Added widgets styles 2021-07-30 19:21:19 +02:00
David Davó
abf2a721f9 Added DesciptionStyle 2021-07-30 14:33:35 +02:00
David Davó
45fcace9b7 Updated layout 2021-07-30 12:32:07 +02:00
David Davó
6fa862320b Added layout widget 2021-07-30 00:02:40 +02:00
David Davó
97d1719b9a Updated SelectionContainer widgets 2021-07-25 17:08:27 +02:00
David Davó
74e3615527 Updated Box widgets 2021-07-25 16:40:08 +02:00
David Davó
f9abfc1960 Started controller widget 2021-07-25 13:40:14 +02:00
David Davó
be8e61f9a9 Added DatePicker widget 2021-07-24 13:31:34 +02:00
David Davó
754b3be822 Added colorpicker widget 2021-07-23 18:51:02 +02:00
David Davó
2ae0cba2d0 Added Play widget 2021-07-23 18:22:39 +02:00
David Davó
ad2b61a784 Added more String widgets 2021-07-23 13:28:04 +02:00
David Davó
9741786d22
Merge branch 'gibiansky:master' into master 2021-07-23 11:55:25 +02:00
David Davó
cc718f3e5b Added media widgets 2021-07-22 13:38:51 +02:00
David Davó
f3bbe00b58 Added buffer paths to widgets 2021-07-22 12:09:26 +02:00
David Davó
5a03d3ddd5 Selection widget demo 2021-07-19 19:59:32 +02:00
Vaibhav Sagar
6f1b51bb18 IHaskell.Eval.Evaluate: support :reload 2021-07-19 06:34:36 +10:00
David Davó
d26ecb0209 Finished reimplementing class hierarchy 2021-07-17 11:38:57 +02:00
David Davó
c05da98545 Adding new fields to widgets 2021-07-16 23:29:51 +02:00
David Davó
792ac0ef5f Update Numeric Widgets example 2021-07-14 16:57:34 +02:00
David Davó
7e20685cd5 Added Selection Sliders widgets 2021-07-13 11:58:01 +02:00
David Davó
3af859323e Added HTMLMath widget 2021-07-12 13:06:26 +02:00
David Davó
cb13bfccb9 Numeric float widgets 2021-07-12 12:01:58 +02:00
David Davó
3f363ac842
Merge branch 'gibiansky:master' into master 2021-07-12 09:53:21 +02:00
Vaibhav Sagar
9f9ceca89b release-9.0.nix: remove overrides 2021-07-10 20:47:01 +10:00
Vaibhav Sagar
50262cbb47 release-9.0.nix: clean up overrides 2021-07-10 19:13:21 +10:00
Vaibhav Sagar
486fc9f4e3 Support :kind! 2021-07-08 04:45:42 +10:00
David Davó
dff65fffdf Select widgets 2021-07-07 17:25:32 +02:00
Vaibhav Sagar
d929dfacfd ihaskell.cabal: 0.10.2.1 2021-07-07 22:43:29 +10:00
Vaibhav Sagar
bf937f1ad3 IHaskell.Eval.Hoogle: fix issue with parsing multiple :: 2021-07-07 17:01:53 +08:00
David Davó
362bef6ee4 Changes in types.hs 2021-07-06 19:24:17 +02:00
David Davó
e6d48f9935 Merge branch 'gibiansky-master' 2021-07-04 09:34:59 +02:00
David Davó
b26209a9c8 Merge singletons 3.0 2021-07-04 09:34:51 +02:00
Vaibhav Sagar
a6d0a651f3 ipython-kernel: update tests with languageMimeType 2021-07-04 14:39:44 +08:00
Vaibhav Sagar
dcdf4574de ihaskell-widgets: support singletons-3.0 2021-07-04 14:21:36 +08:00
Vaibhav Sagar
00dbaa527b .github/workflows/ci.yml: test with stack-8.8.yaml 2021-07-04 13:26:41 +08:00
David Davó
2ebdc43b17 Changed comm of control widgets 2021-07-01 18:15:32 +02:00
David Davó
cfc3821542 Some updates to 5.0 2021-07-01 11:25:21 +02:00
David Davó
3dd254a4e4 getField IntValue working 2021-06-24 17:27:57 +02:00
David Davó
71d98d915a Misunderstood the schema 2021-06-23 11:20:37 +02:00
David Davó
339473eaa9 Removed hardcoded ViewModuleVersion 2021-06-22 21:08:56 +02:00
David Davó
ea63b65f1a Created common IHaskellWidget instance 2021-06-17 11:11:11 +02:00
David Davó
f997f5addb Started with display_data 2021-06-15 15:30:54 +02:00
David Davó
61888fd2eb Widget state on comm_open 2021-06-13 16:10:36 +02:00
David Davó
9168aa5bef Widgets: Metadata now carries version of widget 2021-06-12 16:42:31 +02:00
Vaibhav Sagar
4e1a2a132c
hie.yaml: init (#1225)
* hie.yaml: init

* .github/workflows/ci.yml: ignore hie.yaml files
2021-06-12 02:25:43 +10:00
Vaibhav Sagar
66333eaf25 .github/workflows/nix.yml: use newer cachix action 2021-06-02 19:06:16 +10:00
Vaibhav Sagar
0e928ebd78 acceptance.nbconvert.in.ipynb: update 2021-06-02 18:41:12 +10:00
Vaibhav Sagar
9d85290949 test/acceptance.nbconvert.sh: work around nbconvert's weird --stdout behaviour 2021-06-02 18:34:07 +10:00
Vaibhav Sagar
7964164833 .github/workflows/nix.yml: update 2021-06-02 17:56:41 +10:00
Vaibhav Sagar
fc9e08d2d7 release-8.10.nix: update 2021-06-02 17:54:22 +10:00
Vaibhav Sagar
0262b54755 release.nix: update 2021-06-02 17:54:15 +10:00
Vaibhav Sagar
fd6e492379
Merge pull request #1218 from 2jacobtan/2jacobtan-patch-1
Remove "stack solver" command
2021-05-11 21:51:14 +08:00
Jacob Tan En
55eaa6f9b0
Remove "stack solver" command
"stack solver" command is no longer available

Cf. https://github.com/commercialhaskell/stack/releases/tag/v2.1.1
2021-05-11 15:58:21 +08:00
Vaibhav Sagar
0dbfea4730 release-9.0.nix: update 2021-05-11 00:59:28 +10:00
Vaibhav Sagar
aafeabef78 release-9.0.nix: update 2021-05-02 21:31:49 +10:00
Vaibhav Sagar
177ea05e9c README.md: update GHC versions supported 2021-04-27 16:12:13 +10:00
Vaibhav Sagar
7d64963044 release-9.0.nix: update 2021-04-26 22:23:51 +10:00
Vaibhav Sagar
87b164a048 .github/workflows/ci.yml: pin ubuntu version to fix cairo issues 2021-04-26 19:04:15 +08:00
Vaibhav Sagar
f621b8234a ipython-kernel.cabal: fix cabal-version 2021-04-26 02:59:43 +10:00
Vaibhav Sagar
54f7c78114 ihaskell: 0.10.2.0 2021-04-26 02:57:42 +10:00
Vaibhav Sagar
b3b23a8f8c ghc-parser: 0.2.3.0 2021-04-26 02:51:30 +10:00
Vaibhav Sagar
0fd0085199 test/acceptance.nbconvert.sh: don't specify nbformat 2021-04-26 01:45:07 +10:00
Vaibhav Sagar
b64a65d344 Test script now requires jq 2021-04-25 19:37:55 +08:00
Vaibhav Sagar
cd9688f036 ihaskell: update 2021-04-25 19:37:55 +08:00
Vaibhav Sagar
584127f822 ghc-parser: update 2021-04-25 19:37:55 +08:00
Vaibhav Sagar
b06b52f46e release-9.0.nix: init 2021-04-25 19:37:55 +08:00
Vaibhav Sagar
0f1262d3e7
Merge pull request #1213 from serras/master
Support for GHC 8.10
2021-02-28 22:25:09 +08:00
Alejandro Serrano
6c0b0306ce
Support for GHC 8.10 2021-02-28 13:54:31 +01:00
Vaibhav Sagar
e07b198f07 .github/workflows/docker.yml: push snapshots 2021-01-29 05:03:32 +11:00
Vaibhav Sagar
5b7e03b2ca Use LTS-16.23 2020-11-23 23:56:57 +11:00
Vaibhav Sagar
6825bb9cf5 IHaskell.Eval.Evaluate: don't output HTML on shell command failure 2020-11-23 02:46:48 +11:00
Vaibhav Sagar
aa15573158 .github/workflows/ci.yml: remove flakiness check 2020-11-20 01:10:25 +11:00
Vaibhav Sagar
2de36f746d
Merge pull request #1190 from gibiansky/dependabot/npm_and_yarn/jupyterlab-ihaskell/node-fetch-2.6.1
build(deps): bump node-fetch from 2.6.0 to 2.6.1 in /jupyterlab-ihaskell
2020-11-20 00:50:05 +11:00
dependabot[bot]
aa2fd1240c
build(deps): bump node-fetch from 2.6.0 to 2.6.1 in /jupyterlab-ihaskell
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-19 12:19:02 +00:00
Vaibhav Sagar
9dd1131beb
Merge pull request #1195 from gibiansky/dependabot/pip/notebook-6.1.5
build(deps): bump notebook from 6.0.3 to 6.1.5
2020-11-19 23:17:40 +11:00
Vaibhav Sagar
90e2e1539a Update acceptance tests for new HLint 2020-11-19 22:48:22 +11:00
dependabot[bot]
014cf261f8
build(deps): bump notebook from 6.0.3 to 6.1.5
Bumps [notebook](https://github.com/jupyter/jupyterhub) from 6.0.3 to 6.1.5.
- [Release notes](https://github.com/jupyter/jupyterhub/releases)
- [Changelog](https://github.com/jupyterhub/jupyterhub/blob/master/CHECKLIST-Release.md)
- [Commits](https://github.com/jupyter/jupyterhub/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-18 22:45:39 +00:00
Vaibhav Sagar
c0a1160fe6 .github/workflows/nix.yml: test with ghc8102 2020-11-19 04:49:55 +11:00
Vaibhav Sagar
0115ebfa4a .github/workflows/nix.yml: update to nixos-20.09 2020-11-19 04:40:40 +11:00
Vaibhav Sagar
f582ec42ab .github/workflows/nix.yml: update 2020-11-19 04:37:19 +11:00
Vaibhav Sagar
e61beaecaa .github/workflows/nix.yml: update 2020-11-19 04:34:32 +11:00
Vaibhav Sagar
a4a36ae643 .github/workflows/nix.yml: bump install-nix-action 2020-10-19 01:36:54 +11:00
Vaibhav Sagar
ef698157f4
Merge pull request #1191 from MMesch/mmesch/codemirror
add codemirror command line flag
2020-09-22 23:16:26 +10:00
Matthias Meschede
64f5a217d7 add codemirror command line flag 2020-09-22 14:33:14 +02:00
Vaibhav Sagar
c3ae2d21c0
Merge pull request #1189 from MMesch/mmesch/jupyterlab-ihaskell
update ihaskell jupyterlab extension and align directory name
2020-09-22 01:46:57 +10:00
Matthias Meschede
e108c9cd16 update ihaskell jupyterlab extension and align directory name 2020-09-21 09:30:02 +02:00
Vaibhav Sagar
21ca14d6da ipython-kernel: 0.10.2.1 2020-08-26 00:02:01 +10:00
Vaibhav Sagar
151c93f274 ihaskell: 0.10.1.2 2020-08-25 23:58:04 +10:00
Vaibhav Sagar
6135ca5b85
Merge pull request #1185 from junjihashimoto/feature/vega-version
Bump mimetypes of vega
2020-08-25 23:10:53 +10:00
Vaibhav Sagar
f448cb26fa
Merge pull request #1184 from junjihashimoto/feature/dynamic
Add dynamic flag to load extra shared library
2020-08-25 23:09:41 +10:00
Junji Hashimoto
9edd25f954 Bump mimetypes of vega 2020-08-25 15:18:52 +09:00
Junji Hashimoto
f658358327 Add dynamic flag to load extra shared library 2020-08-25 15:09:41 +09:00
Vaibhav Sagar
49b03cf5a9
Merge pull request #1182 from jamesdbrock/master
Add mimetype to Kernel Info Reply message
2020-08-13 02:57:14 +10:00
James Brock
ff3872b532 Add mimetype to Kernel Info Reply message 2020-08-13 01:39:25 +09:00
Vaibhav Sagar
cc427517a5
Merge pull request #1178 from jamesdbrock/master
sendMessage mhMetadata
2020-06-19 18:13:36 +08:00
James Brock
88018234e5 sendMessage mhMetadata
Send the header metadata with a message instead of ignoring the header
metadata and sending "{}".

The header metadata is handled correctly on receipt of a message. Why
was it ignored on sending? Probably no-one ever needed it.
2020-06-19 02:34:18 +09:00
Vaibhav Sagar
a992ad8370 .github/workflows/nix.yml: update 2020-05-28 02:45:55 +08:00
Vaibhav Sagar
d7dc460a42 ihaskell: 0.10.1.1 2020-05-14 01:26:16 +08:00
Vaibhav Sagar
b8ac6a89a6 IHaskell.Eval.Lint: use unpackSrcSpan 2020-05-13 20:44:26 +08:00
Vaibhav Sagar
9caa54fdce README.md: update Nix instructions 2020-05-11 04:24:04 +08:00
Vaibhav Sagar
6e35724b92 README.md: mention Cachix cache 2020-05-11 04:18:54 +08:00
Vaibhav Sagar
4c41c08d17 Dockerfile: use Stack 2.3.1 2020-05-10 18:19:04 +08:00
Vaibhav Sagar
a1e415e45f .github/workflows/docker.yml: add self to paths 2020-05-08 12:51:15 +08:00
Vaibhav Sagar
4b4a4c7dcd .github/workflows/docker.yml: be selective about paths 2020-05-08 12:44:03 +08:00
Vaibhav Sagar
39a7445da5 .github/workflows/{ci,nix}.yml: ignore paths 2020-05-08 12:29:56 +08:00
Vaibhav Sagar
2429f3560f .github/workflows/docker.yml: build on push to master 2020-05-05 21:22:30 +08:00
Vaibhav Sagar
ba196ec642 ihaskell: 0.10.1.0 2020-05-03 17:15:51 +08:00
Vaibhav Sagar
f9f71d8d3e ghc-parser: 0.2.2.0 2020-05-03 17:07:47 +08:00
Vaibhav Sagar
7bb0077f96 ipython-kernel: 0.10.2.0 2020-05-03 17:01:09 +08:00
Vaibhav Sagar
bd3e60dc63 src/IHaskell/Eval/Lint.hs: update conditional to use HLint version 2020-05-03 15:53:33 +08:00
Vaibhav Sagar
057cc5d65a .github/workflows/nix.yml: run daily 2020-05-03 13:56:34 +08:00
Vaibhav Sagar
d42b22a7bf README.md: update badge for GitHub Actions 2020-05-03 13:51:55 +08:00
Vaibhav Sagar
08b17d6257 .travis.yml: retire 2020-05-03 13:48:06 +08:00
Vaibhav Sagar
d3a062a2c7 .github/workflows/nix.yml: init 2020-05-03 13:43:12 +08:00
Vaibhav Sagar
65e0a18601 .github/workflows/ci.yml: reduce unnecessary CI runs 2020-05-03 13:04:33 +08:00
Vaibhav Sagar
e71c1229c7 .github/workflows/docker.yml: init 2020-05-03 12:59:11 +08:00
Vaibhav Sagar
a268f444ed
.github/workflows/ci.yml: continue-on-error (#1164)
.github/workflows/ci.yml: acknowledge flakiness
2020-05-02 15:16:02 +08:00
Vaibhav Sagar
a653a4eecd requirements.txt: update 2020-05-02 10:56:32 +08:00
Vaibhav Sagar
b7eb9e7431 .github/workflows/ci.yml: init 2020-05-01 22:11:06 +08:00
Vaibhav Sagar
99c75b1cf1 stack-8.8.yaml: bump resolver to lts-15.10 2020-05-01 10:38:21 +08:00
Vaibhav Sagar
36f0acdeaa Revert "stack.yaml: disable some ihaskell-display modules for faster build"
This reverts commit 2318d0c4ef71773c839e37722da2ade51fe592b5.
2020-04-30 23:39:41 +08:00
Vaibhav Sagar
2318d0c4ef stack.yaml: disable some ihaskell-display modules for faster build 2020-04-30 22:55:18 +08:00
Vaibhav Sagar
6b3721be01 .travis.yml: use newest download link for Stack 2020-04-30 22:03:41 +08:00
Vaibhav Sagar
e5ca9a44c9 .travis.yml: test ipython examples before full build 2020-04-30 22:03:41 +08:00
Vaibhav Sagar
bbd63d8089 .travis.yml: don't use --fast 2020-04-30 22:03:41 +08:00
Vaibhav Sagar
21822f71ab Revert ".travis.yml: pin Stack"
This reverts commit 2c16cd500284eb8202489e4add4291efcf5b8157.
2020-04-30 22:03:41 +08:00
Vaibhav Sagar
0ef1f37fce .travis.yml: use ghc883 for Nix build 2020-04-26 23:45:07 +08:00
Vaibhav Sagar
a7fa942160 .travis.yml: use NixOS 20.03 2020-04-26 23:38:19 +08:00
Vaibhav Sagar
80c0e52e72 Bump resolver to lts-14.27 2020-04-23 12:11:39 +08:00
Vaibhav Sagar
091c934aa4 Dockerfile: add stack.yaml to global project 2020-04-21 10:50:23 +08:00
Vaibhav Sagar
3b7ecf1fc0 Dockerfile: fewer steps 2020-04-19 14:12:37 +08:00
Vaibhav Sagar
270064a548 Dockerfile: change base image and reduce size with COPY --chown 2020-04-19 11:23:57 +08:00
Vaibhav Sagar
e25b4ff386 Improve support for GHC 8.10 and newest HLint 2020-04-18 15:05:29 +08:00
Vaibhav Sagar
e3df54f0c9
Merge pull request #1154 from jamesdbrock/master
IHaskell.ipynb replace dead img src
2020-04-16 16:02:40 +08:00
James Brock
7b6881724c IHaskell.ipynb replace dead img src
I don't know what was there before, but it's gone now. Let's put in the
Haskell logo from haskell.org.
2020-04-16 12:53:15 +09:00
Vaibhav Sagar
7a7d5c8f5e
Merge pull request #1153 from ad-si/patch-1
Extend section about Docker usage
2020-04-07 14:45:27 +08:00
Adrian Sieber
204f2e1d78
Extend section about Docker usage 2020-04-06 17:58:17 +00:00
Vaibhav Sagar
6063c58c16
Merge pull request #1151 from jamesdbrock/labextension-jlab2
Upgrade ihaskell_labextension to JupyterLab 2
2020-03-30 20:54:21 +08:00
James Brock
e06cf7e5b8 Upgrade ihaskell_labextension to JupyterLab 2
https://jupyterlab.readthedocs.io/en/stable/developer/extension_migration.html
2020-03-30 18:57:14 +09:00
Vaibhav Sagar
3bfc2d8843 ihaskell: update 2020-03-29 22:16:51 +08:00
Vaibhav Sagar
717d650a48 ghc-parser: update 2020-03-29 22:16:51 +08:00
Vaibhav Sagar
8669a8739e release-8.10.nix: init 2020-03-29 22:16:51 +08:00
Vaibhav Sagar
9708aba804
Merge pull request #1149 from gibiansky/dependabot/npm_and_yarn/ihaskell_labextension/acorn-5.7.4
build(deps): bump acorn from 5.7.1 to 5.7.4 in /ihaskell_labextension
2020-03-20 16:04:43 +08:00
dependabot[bot]
65d0fbcc2b
build(deps): bump acorn from 5.7.1 to 5.7.4 in /ihaskell_labextension
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.1 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.1...5.7.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-03-15 08:01:46 +00:00
Vaibhav Sagar
0a71e1ed21 IHaskell.Test.Eval: remove :sprint test 2020-03-02 18:35:26 -05:00
Vaibhav Sagar
eab1720085 test/acceptance.nbconvert.in.ipynb: update 2020-03-02 18:35:26 -05:00
Vaibhav Sagar
f540feb155
Merge pull request #1145 from jamesdbrock/buffers
Add `buffers` field of the Wire Protocol
2020-02-29 02:16:47 -05:00
Vaibhav Sagar
167fd366bf
Merge pull request #1146 from jamesdbrock/docker-magic
Restore dependencies in docker/Dockerfile
2020-02-29 02:16:05 -05:00
James Brock
28dd8276a9 Update IHaskell kernel for MessageHeader mhBuffers 2020-02-28 15:30:27 +09:00
James Brock
8c43d47f09 Add buffers field of the Wire Protocol
The Wire Protocol allows for "extra raw data buffer(s)" at the end of a
ZeroMQ message. This commit enables buffers in the ipython-kernel.

https://jupyter-client.readthedocs.io/en/stable/messaging.html#the-wire-protocol

This field has been in "the Wire Protocol" since before the Jupyter Message
specification version 5.0.

https://github.com/jupyter/jupyter_client/issues/520

Resolves issue

https://github.com/gibiansky/IHaskell/issues/1144

I've tested this feature with a proprietary JupyterLab extension and
I've verified that it works. It's difficult to provide a public
reproducible test. The best test may be to get ipywidgets Image working--
that uses buffers.
2020-02-28 15:28:02 +09:00
James Brock
ce8b6404a8 Restore dependencies in docker/Dockerfile
I think I commented these out. Why did I do that? I don't remember.
They are necessary for building magic.
2020-02-28 01:27:13 +09:00
Vaibhav Sagar
9dd237ea04
Merge pull request #1142 from ttylec/master
fix typo in channel name
2020-02-11 06:37:19 -05:00
Tomasz Tylec
f4b9f6563a fix typo in channel name 2020-02-11 10:35:26 +01:00
Vaibhav Sagar
113182f2ba Bump resolver to lts-14.23 2020-02-05 17:17:24 -05:00
Vaibhav Sagar
bc5d53ac78 Bump resolver to lts-14.22 2020-02-02 16:10:40 -05:00
Vaibhav Sagar
dfccbc6977 Add tests for :sprint 2020-01-28 23:49:07 -05:00
Vaibhav Sagar
c1395da62e Implement working :sprint 2020-01-28 23:49:07 -05:00
Vaibhav Sagar
bea11742a5 Start implementing :sprint 2020-01-28 23:49:07 -05:00
Vaibhav Sagar
76bbf5e44b Bump resolver to lts-14.21 2020-01-21 12:24:39 -05:00
Vaibhav Sagar
50f7bdf4a4 Bump resolver to lts-14.20 2020-01-06 14:04:21 -05:00
Vaibhav Sagar
7e88d88e73 Bump resolver to lts-14.19 2019-12-30 15:10:22 -05:00
Vaibhav Sagar
1366ceff30 Bump resolver to lts-14.18 2019-12-28 01:49:19 -05:00
Vaibhav Sagar
2318ee2a90 ihaskell.cabal: bump ipython-kernel bound everywhere 2019-12-16 20:44:37 -05:00
Alexey Kuleshevich
2afcb3de15 Fix the lower bound on ipython-kernel 2019-12-16 20:41:14 -05:00
Vaibhav Sagar
a442c0b6d4 README.md: update Nix instructions 2019-11-25 13:27:43 -05:00
Vaibhav Sagar
18ffaacc4d Bump resolver to lts-14.15 2019-11-24 19:33:09 -05:00
Vaibhav Sagar
25eb201ba4 .travis.yml: use cachix --watch-store 2019-11-24 18:43:29 -05:00
Vaibhav Sagar
734bb9f8c6 .travis.yml: use post-build-hook to push to Cachix 2019-11-24 15:25:06 -05:00
Vaibhav Sagar
76312c1142 requirements.txt: update 2019-11-23 14:09:43 -05:00
Vaibhav Sagar
ea0f003ee9 README.md: point to correct JupyterLab extension 2019-11-23 14:07:15 -05:00
Vaibhav Sagar
2d4f4d1527 README.md: note that instructions assume a blank slate 2019-11-23 14:06:44 -05:00
Vaibhav Sagar
50ec34316b Add support for jupyterlabAppDir 2019-11-23 13:25:01 -05:00
Vaibhav Sagar
aee398a82f IHaskell.Display: Add explanatory comment to custom 2019-11-17 11:05:54 -05:00
Vaibhav Sagar
28e0175180 IHaskell.Display: add custom constructor 2019-11-17 11:05:54 -05:00
Vaibhav Sagar
cb4ac95d6d ipython-kernel: support custom mimetypes 2019-11-17 11:05:54 -05:00
Dominik Schlösser
d98969dce8 fix build failures parsing __attribute__ in headers 2019-10-30 11:17:12 -04:00
Vaibhav Sagar
173c3d5a4a Bump resolver to lts-14.12 2019-10-28 17:38:06 -04:00
Vaibhav Sagar
db07a90ab4 release.nix: simplify setting $HOME in preCheck 2019-10-24 14:48:05 -04:00
Vaibhav Sagar
afa0de07b8 IHaskell.Eval.Parser: enable language extensions when loading modules 2019-10-22 15:16:12 -04:00
Vaibhav Sagar
717651ae39 .travis.yml: build for GHC 8.8.1 2019-10-22 12:53:38 -04:00
Vaibhav Sagar
97b3e8e354 release-8.8.nix: simplify for latest NixOS 19.09 release 2019-10-22 11:45:58 -04:00
Vaibhav Sagar
c13b973a46 IHaskell.Eval.Lint: escape $ 2019-10-18 11:26:02 -04:00
Vaibhav Sagar
f48eeee91c StringUtils: use Data.List.Split.splitOn 2019-10-17 23:09:41 -04:00
Vaibhav Sagar
17188f8c8c Use NixOS 19.09 2019-10-14 19:25:24 -04:00
dependabot[bot]
5e44fe50ab build(deps): bump react-dom in /ihaskell_labextension
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.2.0 to 16.4.2.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v16.4.2/packages/react-dom)

Signed-off-by: dependabot[bot] <support@github.com>
2019-10-09 21:54:37 -04:00
dependabot[bot]
cec85834fd build(deps): bump mixin-deep in /ihaskell_labextension
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-10-09 21:54:27 -04:00
Vaibhav Sagar
8c07180d6d Bump resolver to lts-14.8 2019-10-09 17:34:21 -04:00
Vaibhav Sagar
081722faaf .travis.yml: test with GHC 8.8.1 2019-10-05 19:43:25 -04:00
Vaibhav Sagar
85acd85c22
.travis.yml: use cachix (#1103)
* .travis.yml: use cachix

* .travis.yml: fix locale issues with Nix

* .travis.yml: push to cachix

* .travis.yml: use latest NixOS
2019-10-05 18:01:06 -04:00
Vaibhav Sagar
6df9a67dac
.travis.yml: test notebook conversion with GHC 8.6 (#1102)
* .travis.yml: test notebook conversion with GHC 8.6

* test/acceptance.nbconvert.sh: ignore different line numbers for HLint
2019-10-04 15:24:58 -04:00
Vaibhav Sagar
46d12d0193 .gitignore: add stack.yaml.lock 2019-10-04 12:40:12 -04:00
Vaibhav Sagar
1267944a33 Dockerfile: update to lts-14.7 2019-10-04 12:38:31 -04:00
Vaibhav Sagar
82b5fb7bf2
stack.yaml: enable IHaskell display packages (#1100)
stack.yaml: enable IHaskell display packages
2019-10-03 12:42:21 -04:00
Vaibhav Sagar
e991ddc33c .travis.yml: use Stack 1.9.3 2019-10-02 15:32:04 -04:00
Vaibhav Sagar
e15dd63d2e ihaskell: 0.10.0.2 2019-09-26 13:59:42 -04:00
Vaibhav Sagar
1509bff879 IHaskell.Eval.Evaluate: don't support libraries for testing 2019-09-26 11:12:36 -04:00
Vaibhav Sagar
bfa80bce5c release.nix: pass through haskellPackages 2019-09-26 11:06:27 -04:00
Vaibhav Sagar
4ffe04ae8e ihaskell: 0.10.0.1 2019-09-25 21:50:44 -04:00
Vaibhav Sagar
c7c27883f9 ihaskell.cabal: update version bound for ghc-parser 2019-09-25 21:49:41 -04:00
Vaibhav Sagar
6a303a7ce1 ghc-parser: 0.2.1.0 2019-09-25 21:45:44 -04:00
Vaibhav Sagar
51b6dc2aa7 ipython-kernel: 0.10.1.0 2019-09-25 21:42:44 -04:00
Vaibhav Sagar
e00d8a512d release-8.8.nix: update 2019-09-25 14:54:14 -04:00
Vaibhav Sagar
d1598f8a9b stack.yaml: bump resolver to lts-14.7 2019-09-25 10:52:49 -04:00
Vaibhav Sagar
cf453170bc Use CPP to stay compatible with old HLint 2019-09-24 23:28:39 -04:00
Vaibhav Sagar
ac0882dc39 release-8.8.nix: bump nixpkgs-src 2019-08-29 19:02:10 -04:00
Vaibhav Sagar
44d46e1746 IHaskell.Test.Parser: fix test failure on GHC 8.8 2019-08-29 18:56:06 -04:00
Vaibhav Sagar
93bfa3a7a4 release.nix: be explicit about using coreutils for tr 2019-08-11 21:14:41 -04:00
Vaibhav Sagar
f4eaed2185 README.md: link to vaibhavsagar/notebooks 2019-08-07 16:12:03 -04:00
Vaibhav Sagar
cce4cb4660 README.md: don't refer to release-{8.4,8.6} explicitly 2019-08-06 19:56:30 -04:00
Vaibhav Sagar
d199d68bd3 release*.nix: remove default compiler and remove redundant expressions 2019-08-06 19:56:30 -04:00
Vaibhav Sagar
e19382a982 ihaskell.cabal: bump upper bound on ghc-boot dependency 2019-08-03 20:54:05 -04:00
Vaibhav Sagar
3da5974fff ihaskell.cabal: we don't directly depend on uuid 2019-08-03 20:51:27 -04:00
Vaibhav Sagar
8098108b58 ihaskell: remove argv0 dependency 2019-08-03 13:38:37 -04:00
Vaibhav Sagar
c5d9d43cec ipython-kernel: fix warnings 2019-08-03 12:36:01 -04:00
Vaibhav Sagar
a8931ad7c1 html/kernel.js: don't set autoCloseBrackets 2019-08-02 13:14:47 -04:00
Vaibhav Sagar
34493e3cde release-8.8.nix: bump head.hackage 2019-07-29 16:00:28 -04:00
Vaibhav Sagar
c185373b94
Merge pull request #1063 from mpilgrem/win-docs
Help more Windows 10 users use IHaskell, via WSL
2019-07-29 11:50:45 -04:00
Vaibhav Sagar
623f0c6ac3 release-8.8.nix: bump head.hackage 2019-07-28 10:50:29 -04:00
Vaibhav Sagar
55472affaf release-8.8.nix: bump head.hackage 2019-07-28 00:07:05 -04:00
Vaibhav Sagar
8789402f6f release-8.8.nix: bump head.hackage 2019-07-27 04:03:38 -04:00
Vaibhav Sagar
59a4691252 release-8.8.nix: bump to 8.8.1-rc1 2019-07-24 11:18:02 -04:00
Vaibhav Sagar
fd54e050f5
Merge pull request #1075 from nextjournal/configurable-ip
Bind ZMQ Sockets to IP configured in Kernel Profile
2019-07-23 08:44:44 -04:00
Andrea Amantini
6d13bbc0e3 Allow sockets to bind to configured ip string in kernel profile
instead of hardcoded localhost (127.0.0.1)
2019-07-23 11:10:00 +02:00
Vaibhav Sagar
50116ade4e release-8.8.nix: update 2019-07-21 10:07:11 -04:00
Vaibhav Sagar
bb2500c448
Merge pull request #1070 from jamesdbrock/jupyterlab-1.0.0
ihaskell_labextension for JupyterLab 1.0.0
2019-07-11 09:56:52 -04:00
James Brock
5a78d52af8 ihaskell_labextension for JupyterLab 1.0.0
If we remove the upper version bound for the jupyterlab/services
dependency, then ihaskell_labextension works fine with JupyterLab 1.0.0.
2019-07-11 15:55:59 +09:00
Vaibhav Sagar
5dc15518c4 src/IHaskell/Eval/Parser.hs: update DynFlags to reflect changes 2019-07-10 15:14:32 -04:00
Vaibhav Sagar
867aabca48 Use parseDynamicFilePragma 2019-07-10 15:14:32 -04:00
Vaibhav Sagar
a124492287 ihaskell.cabal: indicate lack of support for hlint > 2.1.17 2019-07-06 16:11:46 -04:00
Vaibhav Sagar
e836fa255a Bump upper bounds for GHC 8.8 support 2019-07-06 16:11:46 -04:00
Vaibhav Sagar
0d1ace975b src/IHaskell/Eval/Evaluate.hs: support GHC 8.8 2019-07-06 14:19:39 -04:00
Mike Pilgrem
0f51a6f929 Help Windows 10 users use IHaskell, via WSL
Update `README.md` to reflect the advice of Arvind Devarajan at https://blog.ramdoot.in/ihaskell-on-windows-c549e6442262
2019-07-03 22:40:15 +01:00
Vaibhav Sagar
9612767a1b src/IHaskell/Eval/Evaluate.hs: remove unnecessary CPP 2019-07-02 20:40:33 -04:00
Vaibhav Sagar
fd781cb79a src/IHaskell/Convert/Args.hs: use format arguments 2019-06-29 13:25:56 -04:00
Vaibhav Sagar
8d3230261f Dockerfile: remove stack setup
This fails with the latest Stack because no .cabal file is found.
2019-06-29 11:38:38 -04:00
Vaibhav Sagar
555a650132 src/IHaskell/Eval/Evaluate.hs: capture stderr 2019-06-28 12:14:15 -04:00
Vaibhav Sagar
ac478079dc src/IHaskell/IPython.hs: remove version check 2019-06-28 11:23:09 -04:00
Vaibhav Sagar
7515f9bc2e requirements.txt: use jupyter-core 4.5.0 2019-06-28 11:23:09 -04:00
Vaibhav Sagar
0f5aaa051d src/IHaskell/Eval/Evaluate.hs: hide ghc-lib{,-parser} 2019-06-27 16:30:28 -04:00
Vaibhav Sagar
e4fd5807d5 src/IHaskell/Eval/Evaluate.hs: remove unnecessary -fcontext-stack flag 2019-06-26 15:51:33 -04:00
Vaibhav Sagar
f17d0a0a68 src/IHaskell/Eval/Hoogle.hs: fix :document 2019-06-24 12:42:06 -04:00
Vaibhav Sagar
2df8df0e72 Bump resolver to lts-13.26 2019-06-22 19:15:29 -04:00
Vaibhav Sagar
48b5576fee
Merge pull request #1052 from cblp/patch-1
Fix typo
2019-06-22 15:30:36 -04:00
Vaibhav Sagar
2c16cd5002 .travis.yml: pin Stack 2019-06-22 15:30:11 -04:00
Yuriy Syrovetskiy
ac2e0274f5
Fix typo 2019-06-22 21:05:15 +03:00
Vaibhav Sagar
146659e040 Bump resolver to lts-13.25 2019-06-10 17:20:29 -04:00
Vaibhav Sagar
90c521f01c release.nix: update for display packages on 8.4 2019-06-09 13:01:10 -04:00
Vaibhav Sagar
ff788216e8 release.nix: jailbreak system-fileio 2019-06-09 12:55:31 -04:00
Vaibhav Sagar
30c01eaf6e
Merge pull request #1042 from jamesdbrock/test-nbconvert
Stable nbconvert acceptance test
2019-06-05 09:50:42 -04:00
James Brock
ee5c008501 Stable nbconvert acceptance test
Change the `nbconvert` test so that it converts a notebook with no
Hoogle (which changes over time) and no images (which differ on
different systems).

This should reduce the number of surprise Travis test failures.
2019-06-05 11:08:32 +09:00
Vaibhav Sagar
9b3a3608c9
Merge pull request #1038 from jamesdbrock/docker-dev
Dockerfile refactor
2019-06-03 11:16:46 -04:00
Vaibhav Sagar
0284f3e929
Merge pull request #1039 from jamesdbrock/stack-yaml-del
rm ihaskell-display/ihaskell-*/stack.yaml
2019-06-03 09:28:04 -04:00
James Brock
0f95136666 rm ihaskell-display/ihaskell-*/stack.yaml
Andrew Gibiansky created all these package stack.yamls with this commit:

> commit f9846b6bd9f162b763cc53662e0db357b2aec03a
> Author: Andrew Gibiansky <andrew.gibiansky@gmail.com>
> Date:   Tue Jun 7 17:26:47 2016 -0700
>
>     Separate stack.yaml for each package for simplicity

The resolvers for all these stack yamls originally agreed with the
root stack.yaml, but now they're way off, apparently out of neglect.
Let's just delete them.
2019-06-03 15:53:45 +09:00
James Brock
c8e4c06dd0 Dockerfile refactor
This Dockerfile gives us more control and isolation of dependencies
during development.

Base image `FROM ubuntu` instead of `fcpo/stack-build`.  We will use the
Stack and GHC on the host system, don't need it installed in the image.
The image is just for isolating the system package dependencies. Stack
will isolate the Haskell package dependencies (and the pip and npm
dependencies).

This gives is a single authority for the resolver, which is
the `stack.yaml`. We no longer need to manually make the `stack.yaml`
and `Dockerfile` resolvers agree.

Don't install `jupyter` in the Docker image, we'll use `stack --docker` to
install it later. This allows developers to choose the version of the jupyter
dependencies.

Add the `docker` section to `stack.yaml`, disabled by default.

__Motivating example:__ ipywidgets version 7 has changed its protocol.
We want to upgrade ihaskell-widgets, which works only on ipywidgets
version 6. To install ipywidgets version 6, we need to downgrade Python to 3.5.
We can use `stack --docker` to isolate a development environment in
which ihaskell-widgets is working, and then upgrade it to the latest
versions.
2019-06-03 14:27:31 +09:00
Vaibhav Sagar
c55f12ae72 Bump resolver to lts-13.24 2019-06-02 11:12:17 -04:00
Vaibhav Sagar
a85e2a3d87 Bump resolver to lts-13.23 2019-05-31 13:47:40 -04:00
Vaibhav Sagar
d37c33c922 notebooks/IHaskell.ipynb: get docs for more constrained type 2019-05-31 12:17:33 -04:00
Vaibhav Sagar
0733303f5b notebooks/IHaskell.ipynb: update 2019-05-31 12:17:33 -04:00
Vaibhav Sagar
cd5d62214e Bump resolver to lts-13.22 2019-05-21 05:35:49 -04:00
Vaibhav Sagar
f2ab241b95
Merge pull request #1033 from codedownio/master
Fix compliance with Jupyter 5.0 spec for idle messages
2019-05-21 05:06:32 -04:00
Tom McLaughlin
13925c7157 Move busy message as well 2019-05-20 20:04:39 -07:00
Tom McLaughlin
cea94e8eb0 Fix compliance with Jupyter 5.0 spec for idle messages 2019-05-20 20:01:32 -07:00
Vaibhav Sagar
d587ce1381 notebooks/IHaskell.ipynb: update 2019-05-20 15:46:20 -04:00
Vaibhav Sagar
44f2ef3c39
Merge pull request #1029 from jraygauthier/jrg/with_anim_fps
jrg/with anim fps
2019-05-17 11:43:50 -04:00
Raymond Gauthier
534c0ac455 Add a withAnimFps for manual animation sample rate specification 2019-05-15 19:08:31 -04:00
Vaibhav Sagar
524d741620
Merge pull request #1027 from jraygauthier/jrg/passthru_release_exprs
Passthru of some release internal expressions
2019-05-10 23:43:57 -04:00
Raymond Gauthier
8955bbc7fb Passthru of some release internal expressions
This is so that these can be reused (e.g.: for
specifying a nixos jupyter service kernel).
2019-05-10 21:39:49 -04:00
Vaibhav Sagar
8e8089dd43 Bump resolver to lts-13.18 2019-04-26 19:18:39 -04:00
Vaibhav Sagar
a012f132c7 ihaskell-widgets: 0.2.3.3 2019-04-26 15:26:33 -04:00
Vaibhav Sagar
63338c7ff6 ihaskell-display/ihaskell-graphviz: add Vaibhav Sagar as maintainer 2019-04-26 15:26:04 -04:00
Vaibhav Sagar
0ffdd2765a ihaskell: 0.10.0.0 2019-04-26 14:51:04 -04:00
Vaibhav Sagar
ab15163e04 ghc-parser: 0.2.0.3 2019-04-26 14:50:40 -04:00
Vaibhav Sagar
3dea927ded notebooks/IHaskell.ipynb: update 2019-04-26 14:43:48 -04:00
Vaibhav Sagar
7bf207bf97
Merge pull request #1021 from jamesdbrock/labextension-version-prealpha
labextension npm dependency bounds loosen
2019-04-20 00:53:15 -04:00
James Brock
6f010dabac labextension npm dependency bounds loosen
Relax upper version bounds on the jupyterlab alpha dependencies
for ihaskell_labextension. It looks to me like these version bounds
were intended to allow the entire major alpha 0.*.* version range, but
the the prefix caret only includes minor versions if the major version
is 0.

Let's set the upper bound to 2.0.0, because according to SemVer, that
is the next version number which we would expect to have breaking
changes.
2019-04-20 12:18:50 +09:00
Vaibhav Sagar
c2cb8e6789 release{,-8.6}.nix: update for 19.03 2019-04-11 14:57:45 -04:00
Vaibhav Sagar
5086d0821e notebooks/IHaskell.ipynb: update 2019-03-12 14:25:44 -04:00
Vaibhav Sagar
60fceecc7e Bump resolver to lts-13.12 2019-03-12 14:25:44 -04:00
Vaibhav Sagar
c6ca209a43
Merge pull request #1008 from gibiansky/errorstatus
Attempt to set error status
2019-03-05 22:08:20 -05:00
Vaibhav Sagar
b956d8fbd9 Move ErrorOccurred to IHaskell.Types 2019-03-05 21:44:26 -05:00
Vaibhav Sagar
b2bf84ee28 notebooks/IHaskell.ipynb: update 2019-03-05 21:23:31 -05:00
Vaibhav Sagar
616bc00e73 Attempt to set error status 2019-03-05 21:23:31 -05:00
Vaibhav Sagar
3b0936d495 release.nix: compose overrides 2019-03-05 21:16:37 -05:00
Vaibhav Sagar
736d156016
Merge pull request #1011 from imalsogreg/gh-overrides
Change extend to override in release.nix
2019-03-05 20:43:40 -05:00
Greg Hale
0b94c3b5f4 Change extend to override in release.nix 2019-03-05 17:37:05 -05:00
Vaibhav Sagar
9a8ce8639f
Merge pull request #1010 from GregorySchwartz/master
Make unique labels using a timestamp for svg elements.
2019-03-04 15:24:24 -05:00
Gregory W. Schwartz
2d54b99dda Lower time bound. 2019-03-04 13:35:30 -05:00
Gregory W. Schwartz
80ab139e9c Earlier version of time to account for stack-8.0. 2019-03-04 13:27:14 -05:00
Gregory W. Schwartz
0d522e0701 Finish rebasing. 2019-03-04 12:41:02 -05:00
Gregory W. Schwartz
66afc48636 Rebasing. 2019-03-04 12:37:33 -05:00
Vaibhav Sagar
5a7077254b Revert "Merge pull request #1009 from GregorySchwartz/master"
This reverts commit 96fe2ef57792d7633eb2aca3f90ae7b5a4e0f25f, reversing
changes made to e373bd3d366557a9fd4da2de7a37c8cc1f91df5f.
2019-03-02 11:24:39 -05:00
Vaibhav Sagar
815912c550 notebooks/IHaskell.ipynb: update 2019-03-01 16:55:04 -05:00
Vaibhav Sagar
96fe2ef577
Merge pull request #1009 from GregorySchwartz/master
Remove conversion of svg to html for generic usage.
2019-03-01 16:52:59 -05:00
Gregory W. Schwartz
d651e7ab38 Remove conversion of svg to html for generic usage. 2019-03-01 16:00:12 -05:00
Vaibhav Sagar
e373bd3d36 stack.yaml: bump resolver to lts-13.6 2019-02-08 16:34:58 -05:00
Vaibhav Sagar
33f63ffb04 IHaskell.Display.Widgets.Singletons: add -XStandaloneDeriving 2019-02-08 15:52:43 -05:00
Vaibhav Sagar
a36ce6bc28 stack.yaml: enable ihaskell-widgets 2019-02-08 15:52:43 -05:00
Vaibhav Sagar
a768187ea5 [skip ci] README.md: update supported versions of GHC 2019-02-08 14:31:16 -05:00
Vaibhav Sagar
980442225d .travis.yml: use xenial 2019-02-08 14:12:27 -05:00
Vaibhav Sagar
ae4a2bf341
Merge pull request #1003 from ijaketak/vinyl-0.9
ihaskell-widgets: Port to vinyl-0.9
2019-02-08 11:36:05 -05:00
Vaibhav Sagar
c684300b7e notebooks/IHaskell.ipynb: update 2019-02-08 11:35:14 -05:00
Keito Kajitani
17e67525f2 ihaskell-widgets: Port to vinyl-0.9 2019-02-09 00:50:32 +09:00
Vaibhav Sagar
c070adf882 s/.last-req-hdr/.last-req-header/ 2019-01-24 11:28:39 -05:00
Vaibhav Sagar
13632726fe Update installation instructions [skip ci]
Fixes #998.
2019-01-07 14:55:25 -05:00
Vaibhav Sagar
2d016bfd8c Switch to lts-13 as the default resolver 2019-01-05 09:22:29 -05:00
Vaibhav Sagar
819ccbe91f ghc-parser: remove unused files 2019-01-04 19:57:26 -05:00
Vaibhav Sagar
ff046bf2c4 Remove unused files [skip ci] 2019-01-02 23:45:55 -05:00
Vaibhav Sagar
a1cf94e1b0 IHaskell.Display.Graphviz: remove unused import 2019-01-02 17:37:11 -05:00
Vaibhav Sagar
540b54d597 IHaskell.Display.Graphviz: read directly from stdout 2019-01-02 17:18:25 -05:00
Vaibhav Sagar
22bb3677bc stack-8.6.yaml: bump resolver to lts-13.1 2019-01-02 10:12:03 -05:00
Vaibhav Sagar
910119f65f Bump resolver to lts-12.26 2019-01-01 23:01:21 -05:00
Vaibhav Sagar
a36cbb1f69 notebooks/IHaskell.ipynb: turn off SVG output 2019-01-01 02:53:14 -05:00
Vaibhav Sagar
e8934f5d61 ihaskell-graphviz: use SVG and enable by default in IHaskell 2019-01-01 02:53:14 -05:00
Vaibhav Sagar
198a54485d IHaskell.Display.Graphviz: simplify
Change program type from ByteString to String and remove RankDir because
that can be configured in the input.
2018-12-31 11:04:44 -05:00
Vaibhav Sagar
479cd1f493 notebooks/IHaskell.ipynb: update 2018-12-31 07:28:45 -05:00
Vaibhav Sagar
376d108d1f [skip ci] Add overrides to use ghc862 with NixOS 18.09 2018-11-26 22:34:46 -05:00
Vaibhav Sagar
752032096c release-8.4.nix: use ghc844 instead of ghc843 2018-11-24 14:08:45 -05:00
Vaibhav Sagar
bd0089712c Test with GHC 8.6 2018-11-23 18:00:25 -05:00
Vaibhav Sagar
c0ddcd9728 Bump resolver to lts-12.19 2018-11-23 16:52:19 -05:00
Vaibhav Sagar
d415b76c7f IHaskell.Eval.Util: fix warnings on GHC 8.6 2018-11-23 16:27:56 -05:00
Vaibhav Sagar
df3c0fc1fb notebooks/IHaskell.ipynb: update 2018-11-23 15:37:34 -05:00
Vaibhav Sagar
764bdfeaf9 Dockerfile: generate config for Jupyter 2018-11-22 23:52:41 -05:00
Vaibhav Sagar
ab98e1b144 Bump resolver to lts-12.18 2018-11-17 18:43:34 -05:00
Vaibhav Sagar
7696b7f193
Merge pull request #974 from dispanser/remove-duplicate-prelude
Remove duplicate module `IHaskellPrelude`.
2018-11-17 17:18:38 -05:00
Thomas Peiselt
93cfa71d57 Remove duplicate module IHaskellPrelude.
remove module from `main`, and promote from `other-modules` to
`exported-modules` in `library`.

Fixes #971.
2018-11-17 21:20:32 +01:00
Vaibhav Sagar
027f74aa1f
Merge pull request #967 from Shimuuar/update_display
Implement update_display_data message
2018-11-17 09:25:37 -05:00
Alexey Khudyakov
301df38e69 Fix build for other packages 2018-11-17 13:39:38 +03:00
Alexey Khudyakov
16532afecf Implement update_display_data message
This commit adds new message update_dispaly_data and updates
display_data message to add optional transient field which
is in turn used by update_display_data
2018-11-17 13:39:38 +03:00
Vaibhav Sagar
fd5cbf3493 ipython-kernel: add Semigroup instance 2018-11-16 18:44:41 -05:00
Vaibhav Sagar
74ef9ac887
Merge pull request #972 from qnikst/gh-912
Fix protocol communication with jupyter-lab.
2018-11-16 16:18:04 -05:00
Alexander Vershilov
a87ea7b019 Move to jupyter-lab.
Moves package from using jupyter-notebook to the jupyter-lab.
Both backends can still be used using: ihaskell-notebook and
ihaskell-lab respectively.
2018-11-16 23:53:48 +03:00
Alexander Vershilov
bf631b913f Use Aeson.Object for metadata.
The IPython specification for the metadata does not
define that all fields in metadata must be textual.
Latest Jupyters lab uses that feature so the parsing
mechanism became incomplatible with the protocol.
We change Metadata to be an Aeson.Object and introduce
a 'Metadata' newtype in order to keep that explicit
and open for the later changes if needed.

Fixes #912.
2018-11-16 23:53:48 +03:00
Vaibhav Sagar
db8b7c1bc6 notebooks/IHaskell.ipynb: update for latest Hoogle 2018-11-16 15:31:08 -05:00
Vaibhav Sagar
d2dff6cbad Bump resolver to lts-12.17 2018-11-11 09:42:10 -05:00
Vaibhav Sagar
0124ab07a0 notebooks/IHaskell.ipynb: update 2018-11-11 02:00:42 -05:00
Vaibhav Sagar
3f77626c36
Use hoogle v5. (#953)
Hoogle v5 uses a different json representation for the data, requires a
new URL and also contains HTML markup inside the json fields.

This commit removes all markup to be able to handle the hoogle responses
using the same structure as with the previous response structure (from
hoogle v4).
2018-11-02 10:27:23 -04:00
Thomas Peiselt
03907a998c Update demo notebook after changes to the hoogle search. 2018-11-02 14:34:00 +01:00
Thomas Peiselt
105d0db474 Revert "Update demo notebook after changes to the hoogle search."
This reverts commit 01366b6309be3e6ca4e934424fd02efbf7eb2215.
2018-11-02 14:32:32 +01:00
Thomas Peiselt
01366b6309 Update demo notebook after changes to the hoogle search. 2018-11-01 21:53:50 +01:00
Thomas Peiselt
afb05614f4 Revert "Update notebook: hoogle response changed."
This reverts commit 31a59439ac059e8852f712c2176b22115d93457e.
2018-11-01 21:43:09 +01:00
Thomas Peiselt
31a59439ac Update notebook: hoogle response changed. 2018-11-01 21:25:07 +01:00
Thomas Peiselt
2f49c35743 no more html-formatting for the hoogle docs.
Hoogle v5 `docs` field already contains markup, so we just use the field
content directly.
2018-11-01 20:46:54 +01:00
Thomas Peiselt
6788944a45 Support type as item. 2018-11-01 20:45:32 +01:00
Thomas Peiselt
c693ce307e markup removal improvements.
it's possible to have some content between `<span class=name>` and `<0>`
so separating the expressions to handle this case.
2018-11-01 10:03:17 +01:00
Vaibhav Sagar
9b918ec44e Bump resolver to lts-12.16 2018-10-30 22:53:55 -04:00
Thomas Peiselt
972450cd5a disable debug trace. 2018-10-30 21:33:48 +01:00
Vaibhav Sagar
cce6be9f92 README.md: s/release-8.2.nix/release-8.4.nix/ 2018-10-25 13:42:51 -04:00
Vaibhav Sagar
857c4778b1 README.md: s/18.03/18.09/ 2018-10-25 13:41:32 -04:00
Thomas Peiselt
f95b71d293 Use hoogle v5.
Hoogle v5 uses a different json representation for the data, requires a
new URL and also contains HTML markup inside the json fields.

This commit removes all markup to be able to handle the hoogle responses
using the same structure as with the previous response structure (from
hoogle v4).
2018-10-24 20:39:22 +02:00
Vaibhav Sagar
c3a7007953 stack.yaml: use GHC 8.4.3 2018-10-23 09:51:05 -04:00
Vaibhav Sagar
26bb53825b stack-8.4.yaml: bump resolver to lts-12.14 2018-10-22 19:51:02 -04:00
Vaibhav Sagar
9d4d581661 ihaskell.cabal: fix build error on macOS 2018-10-21 01:21:31 -04:00
Vaibhav Sagar
9f197efd21 stack-8.4.yaml: bump resolver to lts-12.13 2018-10-14 05:04:24 -04:00
Vaibhav Sagar
d57489ae80 release*.nix: update for NixOS 18.09 2018-10-06 16:35:21 -04:00
Vaibhav Sagar
c33f876949 release.nix: add ihaskell-graphviz 2018-09-30 15:17:38 -04:00
Vaibhav Sagar
c9c923b228 ipython-kernel: slightly faster hashing 2018-09-30 14:43:40 -04:00
Vaibhav Sagar
08ce33340f stack-8.4.yaml: bump resolver to lts-12.10 2018-09-25 19:42:27 -04:00
Vaibhav Sagar
7cc56483a1
Merge pull request #940 from MMesch/patch-1
update jupyterlab installation procedure in README
2018-09-17 10:52:40 -04:00
MMesch
c339dc3851
update jupyterlab installation procedure in README 2018-09-17 16:42:55 +02:00
Vaibhav Sagar
64931c4e44
Merge pull request #939 from lucasdicioccio/fix-haddock
Fix haddock generation.
2018-09-17 09:19:22 -04:00
Lucas DiCioccio
c67fcd45ce Fix haddock generation. 2018-09-16 18:50:58 +02:00
Vaibhav Sagar
f63863688b
Merge pull request #937 from lucasdicioccio/master
Add ihaskell-graphviz to display graphs.
2018-09-15 22:58:53 -04:00
Lucas DiCioccio
34c36d5e94 Add ihaskell-graphviz to display graphs.
Requires 'Graphviz' installed.
2018-09-15 22:21:29 +02:00
Vaibhav Sagar
496fbd160a IHaskell.Eval.Evaluate: handle multiline input correctly 2018-09-11 14:56:49 -04:00
Vaibhav Sagar
d910a38957
Merge pull request #935 from gibiansky/enable-display-8-4
Update .travis.yml
2018-09-11 13:55:29 -04:00
Vaibhav Sagar
0d3316cc7d .travis.yml: filter out GHC version 2018-09-11 12:29:16 -04:00
Vaibhav Sagar
600fe11c49 .travis.yml: DISPLAY=true for 8.4 2018-09-11 11:40:15 -04:00
Vaibhav Sagar
83a823d5f9 release.nix: always --enable-executable-dynamic 2018-09-05 16:11:43 -04:00
Vaibhav Sagar
e432009b21
Merge pull request #931 from erikd/topic/widget-tll-warnings
ihaskell-widgets: Fix more warnings
2018-09-05 11:50:48 -04:00
Erik de Castro Lopo
b27867f6a0 ihaskell-widgets: Fix more warnings
This file was giving a strange error/warning that had to be disabled.

After investigating this issue (https://ghc.haskell.org/trac/ghc/ticket/15601)
it turns out this was due to an wart in the way type level lists are handled
in GHC. Fortunately a workaround is available allowing the warning to be
re-enabled.
2018-09-05 19:53:56 +10:00
Vaibhav Sagar
87787ec74e stack-8.4.yaml: bump resolver to lts-12.9 2018-09-03 19:29:48 -04:00
Vaibhav Sagar
ad74dfd9c2 release.nix: don't Haddock for now 2018-09-03 11:02:28 -04:00
Vaibhav Sagar
051e889ade
Merge pull request #929 from erikd/topic/widgets-warnings
Fix more warnings!
2018-09-03 10:47:40 -04:00
Erik de Castro Lopo
ba9dadecae ihaskell: Remove partial-fields
GHC 8.4 and later have the `-Wpartial-fields` warning flag, so add it and
fix the warnings.
2018-09-03 20:14:15 +10:00
Erik de Castro Lopo
8c37c42276 ihaskell-widgets: Turn on -Wall and fix all warnings 2018-09-03 20:13:34 +10:00
Erik de Castro Lopo
64d54a7afc Remove all uses of fromJust 2018-09-03 20:12:33 +10:00
Vaibhav Sagar
726999ae1e
Merge pull request #928 from erikd/topic/warnings-other
Turn on and fix more warnings
2018-09-01 21:15:39 -04:00
Vaibhav Sagar
50ff0ff7d4
Merge pull request #927 from erikd/topic/ghc-8.4-singletons
ihaskell-widgets: Make it compile with ghc 8.4
2018-09-01 12:04:59 -04:00
Erik de Castro Lopo
196ccac96d ipython-kernel: Switch on -Wall and fix all warnings
Fixing these warnings required changes to the file names of the `MessageHeader`
struct which makes this commit an API change. The version in the cabal file
has been bumped accordingly.
2018-09-01 22:42:35 +10:00
Erik de Castro Lopo
9e4ef2e6c2 ghc-parser: Switch on -Wall and fix all warnings 2018-09-01 22:41:23 +10:00
Vaibhav Sagar
3d382e7b79
Merge pull request #923 from erikd/topic/warnings
-Wall the things
2018-09-01 07:45:30 -04:00
Erik de Castro Lopo
7c09af8507 Add ghc-options: -Wall to stack.yaml files 2018-09-01 18:42:52 +10:00
Erik de Castro Lopo
f43b91294c Switch warnings to -Wall and fix the rest 2018-09-01 18:42:52 +10:00
Erik de Castro Lopo
4c0b3d249b Fix unused import warnings 2018-09-01 18:42:52 +10:00
Erik de Castro Lopo
7115fe470a Fix various unused binding/match/etc related warnings
Add `-Wunused-do-bind -Wunused-local-binds -Wunused-top-binds -Wunused-matches`
and fix all the things.
2018-09-01 18:42:52 +10:00
Erik de Castro Lopo
df39a6d235 Add missing top-level type signatures
Add `-Wmissing-signatures` to `ghc-options`.
2018-09-01 18:42:52 +10:00
Erik de Castro Lopo
ca56a29d78 Fix incomplete pattern matches
Add `-Wincomplete-patterns` to the `ghc-options` field of the cabal file
and fix all warnings.
2018-09-01 18:42:52 +10:00
Erik de Castro Lopo
14c4de5a12 ihaskell-widgets: Make it compile with ghc 8.4
GHC 8.4 allows value level operators (in this case list append, '++') to
be used at the type level, so that the singletons package for GHC 8.4
uses this operator whereas previous versions of singletons defined a ':++'
operator for type level append.
2018-09-01 18:41:24 +10:00
Vaibhav Sagar
dcd7d33043 stack-8.4.yaml: bump resolver to lts-12.8 2018-08-30 10:11:23 -04:00
Vaibhav Sagar
049796bc9d Remove more CPP 2018-08-28 16:11:01 -04:00
Vaibhav Sagar
000ea0fbe0 ihaskell.cabal: kill binPkgDb harder 2018-08-28 13:22:47 -04:00
Vaibhav Sagar
50605e6ca7
Merge pull request #918 from erikd/topic/drop-old-ghc
Drop support for GHC < 8.0
2018-08-28 10:12:42 -04:00
Erik de Castro Lopo
15d751447f Clean out support for old ghcs from cabal files 2018-08-28 23:02:15 +10:00
Erik de Castro Lopo
18e108811f Drop support for GHC < 8.0 2018-08-28 17:51:43 +10:00
Vaibhav Sagar
6919aa67d4 stack-8.4.yaml: bump resolver to lts-12.7 2018-08-22 02:54:46 +08:00
Vaibhav Sagar
413fa29236 Bump resolver to lts-11.22 2018-08-20 21:56:07 +08:00
Vaibhav Sagar
0d454acc4d release.nix: refactor displays 2018-08-16 13:55:33 +08:00
Vaibhav Sagar
6058cd4fac
Merge pull request #902 from gibiansky/support-ghc-8-6
Support GHC 8.6
2018-08-16 09:55:09 +08:00
Vaibhav Sagar
db7e204cc7 release-8.6: init 2018-08-16 09:50:27 +08:00
Vaibhav Sagar
d2559dde32 src/IHaskell/Eval/Util.hs: support GHC 8.6 2018-08-16 09:50:27 +08:00
Vaibhav Sagar
146f4e04de ihaskell.cabal: bump bounds 2018-08-16 09:50:27 +08:00
Vaibhav Sagar
c3e53cf38c ghc-parser/ghc-parser.cabal: bump bounds 2018-08-16 09:50:27 +08:00
Vaibhav Sagar
5511bb8564 stack-8.4.yaml: bump resolver to lts-12.6 2018-08-15 10:57:55 +08:00
Vaibhav Sagar
726d1b11d1 Bump resolvers to lts-11.21 2018-08-13 14:15:53 +08:00
Vaibhav Sagar
335005115b ipython-kernel/examples: add languagePygmentsLexer 2018-08-07 00:06:04 +08:00
Vaibhav Sagar
4bf4b8e09a Bump resolvers to lts-11.20 2018-08-06 22:51:40 +08:00
Vaibhav Sagar
4c0b1b7507 README.md: always specify -I with nix-build 2018-08-06 20:46:14 +08:00
Vaibhav Sagar
2c43cffe4f release.nix: remove jupyter from Python dependencies 2018-08-06 12:23:39 +08:00
Vaibhav Sagar
6e80f04ebf stack-8.4.yaml: bump resolver to lts-12.5 2018-08-05 21:28:36 +08:00
Vaibhav Sagar
01fe16bf30
Merge pull request #896 from MMesch/npmjsorg
update ihaskell labextension version + Haskell-r syntax highlighting
2018-08-01 22:02:39 +08:00
MMesch
e89adce0a3 bump version number 2018-08-01 15:19:35 +02:00
MMesch
4a12e0411e add rprint and rgraph 2018-08-01 15:19:17 +02:00
MMesch
b9d7ac9cb2 bump npm version 2018-08-01 15:12:28 +02:00
MMesch
d0bd2db438 fix bug with haskell-r mode 2018-08-01 15:11:27 +02:00
MMesch
650b55f153 bump version 2018-08-01 14:31:14 +02:00
MMesch
abd2f2bbcd labextension compatibility with new jlab and haskell-r codemirror mode 2018-08-01 14:11:48 +02:00
Vaibhav Sagar
0c9eb242d8 Bump resolver to lts-11.19 2018-07-30 07:05:13 +02:00
Vaibhav Sagar
fc220e328b Bump resolver to lts-11.18 2018-07-26 07:51:28 +02:00
MMesch
b19740a142 updated package.json 2018-07-24 10:12:36 +02:00
Vaibhav Sagar
4fdf9aabfe stack-8.4.yaml: bump resolver to lts-12.2 2018-07-23 10:09:53 +02:00
Vaibhav Sagar
bb712033cc ipython-kernel: specify default-language for all components 2018-07-21 16:18:09 +08:00
MMesch
1085c3a4e1 new version numbers 2018-07-20 10:06:17 +02:00
Vaibhav Sagar
8a272e1536
Merge pull request #890 from MMesch/fancy_logo
use a colorful haskell logo
2018-07-19 04:54:20 +02:00
Vaibhav Sagar
80a191cf32
Merge pull request #889 from MMesch/jlab_mimetypes
new jupyterlab mime types
2018-07-19 04:53:50 +02:00
MMesch
e942382836 json and vegalite are working 2018-07-18 21:03:37 +02:00
MMesch
804a61d70d use a colorful haskell logo 2018-07-18 16:18:38 +02:00
MMesch
d6a5af4fec new jupyterlab mime types 2018-07-18 15:57:05 +02:00
Vaibhav Sagar
cb9576c399 stack-8.4.yaml: bump resolver to lts-12.1 2018-07-18 12:42:17 +02:00
Vaibhav Sagar
2e4b4d3ec4
Merge pull request #886 from MMesch/jupyterlab_compatibility
Jupyterlab compatibility
2018-07-14 13:14:45 +02:00
MMesch
ff6f1fa790 installation instructions for jlab 2018-07-14 11:08:25 +02:00
MMesch
d57a6ca572 add pygment lexer info 2018-07-14 11:06:07 +02:00
MMesch
c10f3e085b add status to all Reply messages 2018-07-14 10:55:02 +02:00
MMesch
d5b56fbb51 remove 'source' property from displayData message 2018-07-14 10:47:29 +02:00
MMesch
1d9f7c357b send IOPub idle message with KernelInfoReply 2018-07-14 10:33:03 +02:00
MMesch
3fa882a45d jlabext that defines ihaskell codemirror mode 2018-07-14 10:27:10 +02:00
Vaibhav Sagar
fbd91afbfd stack-8.4.yaml: use lts-12.0 2018-07-10 09:49:07 +02:00
Vaibhav Sagar
ca9d02d547 Bump resolver to lts-11.17 2018-07-08 12:42:37 +02:00
Vaibhav Sagar
6e273c4990 Bump resolver to lts-11.16 2018-07-03 07:53:42 +02:00
Vaibhav Sagar
9b8e306075 Bump resolver to lts-11.15 2018-06-25 10:51:37 +02:00
Vaibhav Sagar
7996f5adc8 Bump resolver to lts-11.14 2018-06-19 09:35:29 +02:00
Vaibhav Sagar
976b62e1ac README.md: update Nix command to use nixos-18.03 and release-8.2.nix 2018-06-13 22:32:37 +02:00
Vaibhav Sagar
0c116e8b25 Bump resolver to lts-11.13 2018-06-11 11:17:49 +02:00
Vaibhav Sagar
fb3f10bb20 release.nix: prepend to existing $PATH 2018-06-11 10:30:33 +02:00
Aleksandr Chuklin
5c8859d2c0 Update the guide for the custom HomeBrew location (#872)
* Update the guide for the custom HomeBrew location

* Update the reference in the example notebook: IPython -> Jupyter
2018-06-09 04:24:35 +08:00
Vaibhav Sagar
b96304fc72 Bump resolver to lts-11.12 2018-06-06 16:39:12 +08:00
Vaibhav Sagar
f1ab7c0257 release*.nix: make pythonPackages configurable 2018-06-05 15:39:09 +08:00
Vaibhav Sagar
eb614aa530 release-8.{2,4}.nix: inherit all the things 2018-06-05 15:38:35 +08:00
Vaibhav Sagar
4da8334138 release-8.{2,4}.nix: ... doesn't work as I expected 2018-06-05 10:52:58 +08:00
Vaibhav Sagar
00c762b77b stack-8.4.yaml: use latest resolver 2018-06-02 21:58:13 +08:00
Vaibhav Sagar
673ad74b42 ipython-kernel: use cryptonite instead of SHA 2018-05-30 21:52:19 +08:00
Vaibhav Sagar
65ee129916 Bump resolver to lts-11.11 2018-05-29 14:35:10 +08:00
Vaibhav Sagar
560ccbf15b Bump resolver to lts-11.10 2018-05-21 11:36:10 +10:00
Vaibhav Sagar
9a5c03158b Bump resolvers to lts-11.9 2018-05-13 08:15:51 -04:00
Vaibhav Sagar
0e985aac7d README.md: update 2018-05-12 07:32:26 -04:00
Vaibhav Sagar
d8d9e2e071
Merge pull request #863 from drever/master
Update README.md
2018-05-11 09:52:30 +08:00
Johannes Drever
ebbae7158a
Update README.md 2018-05-10 23:20:15 +02:00
Vaibhav Sagar
08ece70ce1 Bump resolver to lts-11.8 2018-05-08 11:23:24 +08:00
Vaibhav Sagar
39380616c1 release.nix: use extend instead of override 2018-04-30 16:16:34 +08:00
Vaibhav Sagar
6536096103 Bump resolver to lts-11.7 2018-04-30 10:29:22 +08:00
Vaibhav Sagar
0b0ced3fd4 src/tests/IHaskell/Test/Parser.hs: add test for case-insensitive LANGUAGE pragmas 2018-04-26 11:24:51 +08:00
Vaibhav Sagar
0aa2bca692 src/IHaskell/Eval/Parser.hs: support case-insensitive LANGUAGE pragmas 2018-04-26 11:24:51 +08:00
Milán Nagy
1a8db7b92f Also support first-capital, as GHC does too. 2018-04-25 18:55:13 +08:00
Vaibhav Sagar
ca239092b3 src/IHaskell/Eval/Parser.hs: support lowercase 'language' pragmas 2018-04-25 18:52:18 +08:00
Vaibhav Sagar
8b26d126d8 Bump resolvers to lts-11.6 2018-04-23 13:56:50 +08:00
Vaibhav Sagar
d53ecedb4e Bump resolvers to lts-11.5 2018-04-15 17:47:37 +08:00
Vaibhav Sagar
4bedc1e71b release.nix: don't override hmatrix 2018-04-12 14:54:47 +08:00
Vaibhav Sagar
ae7f5ac595 README.md: link to CoCalc 2018-04-11 14:47:42 +08:00
Vaibhav Sagar
cf619c37aa README.md: link to jupyter.org instead of ipython.org 2018-04-11 14:47:27 +08:00
Vaibhav Sagar
40a9336a1c README.md: mention mybinder.org instead of try.jupyter.org 2018-04-11 13:58:34 +08:00
Vaibhav Sagar
7a41fa209d Bump resolvers to lts-11.4 2018-04-09 14:16:20 +08:00
Vaibhav Sagar
68048fba36 README.md: add mybinder badge 2018-04-06 13:03:27 +08:00
Vaibhav Sagar
a65429d2a9 release{,-8.4}.nix: update for nixpkgs-18.03 2018-04-05 11:33:13 +08:00
Vaibhav Sagar
95f7557fca cabal.project: init 2018-04-04 23:43:34 +08:00
Vaibhav Sagar
abc08007ee Dockerfile: no need to set GHC_PACKAGE_PATH 2018-04-04 21:18:46 +08:00
Vaibhav Sagar
a93fdb8d02 release-8.4.nix: use newer nixos-18.03 2018-04-03 17:19:50 +08:00
Vaibhav Sagar
c8ba4ccd0e Bump resolver to lts-11.3 2018-04-02 14:11:53 +08:00
Vaibhav Sagar
3cd40d186c Dockerfile: update to work with mybinder.org 2018-03-31 21:12:04 +08:00
Vaibhav Sagar
9426302c7d Dockerfile: use fpco/stack-build base image 2018-03-28 14:44:13 +08:00
Vaibhav Sagar
50c1c8aebe release-8.4.nix: use newer nixos-18.03 2018-03-26 17:38:46 +08:00
Vaibhav Sagar
7969fa53f7 stack.yaml,docker/Dockerfile: bump resolver to lts-11.2 2018-03-26 14:50:32 +08:00
Vaibhav Sagar
9101efc852
Merge pull request #844 from jcberentsen/stackdocker
Support using 'stack --docker'
2018-03-25 08:28:34 +08:00
Christian Berentsen
bc6d9cad46 Support using 'stack --docker'
Tested on OSX
2018-03-24 14:38:16 +01:00
Vaibhav Sagar
02fae1df57 release-8.4.nix: use newest nixos-18.03 2018-03-24 09:32:33 +08:00
Vaibhav Sagar
2d43d305d1 release-8.4.nix: use newest release-18.03 2018-03-21 16:32:25 +08:00
Vaibhav Sagar
72d5777197 stack.yaml: bump resolver to lts-11.1 2018-03-18 23:47:43 +08:00
Vaibhav Sagar
58bd8bd29b release-8.4.nix: remove stale overrides 2018-03-17 20:21:06 +08:00
Vaibhav Sagar
55e18231e8 ihaskell-diagrams: 0.3.2.1 2018-03-17 15:50:48 +08:00
Vaibhav Sagar
f8f8b3d13e .travis.yml: set DISPLAY=false for GHC 8.4.1 2018-03-17 11:32:30 +08:00
Vaibhav Sagar
974764173e .travis.yml: don't build gtk2hs-buildtools yet 2018-03-17 11:32:30 +08:00
Vaibhav Sagar
e68c41281a Test with GHC 8.4 2018-03-17 11:32:30 +08:00
Vaibhav Sagar
cea7823d4d ihaskell: bump version 2018-03-17 11:06:26 +08:00
Vaibhav Sagar
bc3d25dc73 ipython-kernel: bump version 2018-03-17 11:06:26 +08:00
Vaibhav Sagar
d9fc3881e2 ghc-parser: bump version 2018-03-17 11:06:26 +08:00
Vaibhav Sagar
33edf12f13 stack*.yaml: add gfortran.cc.lib to packages 2018-03-13 15:54:57 +08:00
Vaibhav Sagar
59c80f7af1 stack.yaml: add extra-deps 2018-03-13 12:57:29 +08:00
Vaibhav Sagar
a8307c23db stack.yaml: bump resolver to lts-11.0 2018-03-13 12:57:29 +08:00
Vaibhav Sagar
06728e2939 src/tests/IHaskell/Test/Eval.hs: make tests pass on Nix 2018-03-11 15:22:30 +08:00
Vaibhav Sagar
ccbd6ce702 stack.yaml: bump resolver to lts-10.9 2018-03-11 11:06:44 +08:00
Vaibhav Sagar
603609d53b release-8.4.nix: use newer nixpkgs 2018-03-10 21:40:36 +08:00
Vaibhav Sagar
8310b97828 Revert "release-8.4.nix: use newer nixpkgs"
This reverts commit 593e41423b90a3136a8ebd1b87479cd2ddf8736c.

`jailbreak-cabal` is broken so there's no point in upgrading yet.
2018-03-09 23:23:45 +08:00
Vaibhav Sagar
593e41423b release-8.4.nix: use newer nixpkgs 2018-03-09 16:32:15 +08:00
Vaibhav Sagar
0a70cef47f release-8.2.nix: allow overriding compiler 2018-03-08 21:31:52 +08:00
Vaibhav Sagar
0b258298c3
Merge pull request #832 from leftaroundabout/feature/customise-image-size
(Idiomatically) customise size of diagrams shown in notebooks
2018-03-08 08:49:36 +08:00
Justus Sagemüller
05991356b5 Allow animations to be sized with the same functions as diagrams. 2018-03-08 00:05:10 +01:00
Justus Sagemüller
df0be6b85c Make withSizeSpec ad-hoc polymorphic.
So it can be used both for static diagrams and animations.
2018-03-07 22:32:50 +01:00
Vaibhav Sagar
f597435403 release-8.2.nix: express in terms of release.nix 2018-03-07 13:47:14 +08:00
Vaibhav Sagar
ab47eac2b2 release.nix: sync with release-8.2.nix 2018-03-07 13:46:48 +08:00
Justus Sagemüller
ad89fc4554 Move ManuallySized to a separate module.
Purpose: allow it to be used both for static and animated diagrams.
2018-03-07 00:36:35 +01:00
Justus Sagemüller
76945388e8 Remove IORef imports.
These are not needed with the declarative wrapper for size specifications.
2018-03-07 00:35:31 +01:00
Justus Sagemüller
39b1268e24 Use V2 types from linear instead of tuples.
Diagrams has (which I've always found a bad idea) moved
away from the `vector-space` package to `linear`, whose
combinators are all weird, in particular `*^` does not
actually scale vectors but scale-fmap functors. Combined
with the WAT-prone tuple functor, this gives wrong behaviour
when using tuples as vectors.

Well, `V2` is in doubt also more efficient than `(,)`, so...
2018-03-06 14:09:41 +01:00
Justus Sagemüller
7c54a101ca Default diagonal-length rather than height of diagrams.
This is better-behaved for diagrams with strong aspect ratio, in particular
it prevents diagrams with very low height from being stretched “infinitely
wide”.
2018-03-06 13:53:26 +01:00
Justus Sagemüller
a200c07f6b An idiomatic way of selecting size of displayed diagrams. 2018-03-06 13:20:37 +01:00
Vaibhav Sagar
13d7e77b22 release-8.2.nix: reorganise overrides 2018-03-06 17:44:46 +08:00
Vaibhav Sagar
f44589e3ce release-8.2.nix: remove more stale overrides 2018-03-06 17:41:32 +08:00
Vaibhav Sagar
154bd058cd release-8.2.nix: remove stale overrides 2018-03-06 17:36:40 +08:00
Vaibhav Sagar
869196ff07 release-8.2.nix: update hmatrix version number 2018-03-06 17:12:42 +08:00
Vaibhav Sagar
e8b4d4dce9 release-8.2.nix: override haskell-src-exts and haskell-src-meta 2018-03-06 16:46:54 +08:00
Vaibhav Sagar
d106c406e0 release.nix: fix build by upgrading haskell-src-exts and haskell-src-meta 2018-03-06 13:15:40 +08:00
Vaibhav Sagar
41c9e0182d release-8.4.nix: use newer nixpkgs 2018-03-06 11:28:04 +08:00
Vaibhav Sagar
e2abc7e98e src/IHaskell/Eval/Parser.hs: s/y/by/ 2018-03-06 07:00:58 +08:00
Vaibhav Sagar
21a907f2be stack.yaml: bump resolver to lts-10.8 2018-03-05 10:20:21 +08:00
Vaibhav Sagar
1f852097f9 ihaskell-diagrams: make imgHeight configurable 2018-03-04 22:41:26 +08:00
Vaibhav Sagar
3d5cbb16fa release-8.4.nix: use newer nixpkgs 2018-02-27 11:15:35 +08:00
Vaibhav Sagar
858d881055 stack.yaml: bump resolver to lts-10.7 2018-02-27 00:08:36 +08:00
Vaibhav Sagar
a18af8a5c7 release-8.4.nix: use newer nixpkgs 2018-02-22 17:04:43 +08:00
Vaibhav Sagar
a59603a6d9 release-8.2.nix: use callHackage for plot 2018-02-22 17:04:43 +08:00
Vaibhav Sagar
ddb5fdfb6d stack.yaml: bump resolver to lts-10.6 2018-02-21 14:34:44 +08:00
Vaibhav Sagar
125caedffc
Merge pull request #824 from gibiansky/python-requirements
Update requirements.txt
2018-02-13 16:02:57 +08:00
Vaibhav Sagar
78ab7bff1a .travis.yml: nbconvert is installed when using requirements.txt 2018-02-13 15:24:26 +08:00
Vaibhav Sagar
746b868eff .travis.yml: test using requirements.txt 2018-02-13 15:12:58 +08:00
Vaibhav Sagar
5794428783 requirements.txt: update 2018-02-13 15:12:34 +08:00
Vaibhav Sagar
ea2c522925 stack.yaml: bump resolver to lts-10.5 2018-02-11 13:55:36 +08:00
Vaibhav Sagar
856f64f933 src/IHaskell/Eval/Hoogle.hs: handle newtypes 2018-02-11 02:58:33 +08:00
Vaibhav Sagar
0b41e66565
Merge pull request #818 from gibiansky/switch-resolver
Change default resolver to lts-10
2018-02-09 17:05:25 +10:00
Vaibhav Sagar
b28daa1fc5 .travis.yml: update build configuration 2018-02-09 13:40:58 +08:00
Vaibhav Sagar
aad27920d3 Change default resolver to lts-10 2018-02-09 13:38:18 +08:00
Vaibhav Sagar
9e90a89e5e
Merge pull request #817 from gibiansky/ghc-8.4
Support GHC 8.4
2018-02-09 15:34:23 +10:00
Vaibhav Sagar
8cc1371e01 ihaskell: update 2018-02-08 17:54:51 +08:00
Vaibhav Sagar
2081c717e2 ghc-parser: update 2018-02-08 17:54:50 +08:00
Vaibhav Sagar
d4a754b3a3 release-8.4.nix: init 2018-02-08 17:54:50 +08:00
Vaibhav Sagar
45d88a0387 stack-8.2.yaml: bump resolver to lts-10.4 2018-01-29 13:13:41 +10:00
Vaibhav Sagar
ec0fd855a9 stack-8.2.yaml: bump resolver to lts-10.3 2018-01-08 13:21:56 +08:00
Vaibhav Sagar
bf6759ed8e Bump resolver to lts-10.2 2018-01-02 00:10:47 +10:00
Vaibhav Sagar
07d7f0a5a1 Bump resolvers to lts-9.21 2018-01-02 00:10:47 +10:00
Vaibhav Sagar
27489ad448 README.md: add 'Troubleshooting' header and section on kernel dying 2017-12-29 11:50:59 +10:00
Vaibhav Sagar
b9c47667bc stack-8.2.yaml: bump resolver to lts-10.1 2017-12-27 19:30:00 +10:00
Vaibhav Sagar
347444e937
Merge pull request #803 from gibiansky/new-release
Release new versions of everything to Hackage
2017-12-25 00:36:34 +10:00
Vaibhav Sagar
cc53879fb0 ihaskell-widgets: 0.2.3.2 2017-12-24 21:29:42 +08:00
Vaibhav Sagar
460b5e6b6d ihaskell-plot: 0.3.0.1 2017-12-24 21:29:24 +08:00
Vaibhav Sagar
6f5cef257e ihaskell-magic: 0.3.0.1 2017-12-24 21:28:54 +08:00
Vaibhav Sagar
27a41724f0 ihaskell-juicypixels: 1.1.0.1 2017-12-24 21:28:34 +08:00
Vaibhav Sagar
1bbebb377d ihaskell-hatex: 0.2.1.1 2017-12-24 21:28:09 +08:00
Vaibhav Sagar
291ab41a4d ihaskell-gnuplot: 0.1.0.1 2017-12-24 21:27:46 +08:00
Vaibhav Sagar
28fc29734c ihaskell-diagrams: 0.3.1.1 2017-12-24 21:27:27 +08:00
Vaibhav Sagar
fa6e19ff80 ihaskell-charts: 0.3.0.1 2017-12-24 21:27:07 +08:00
Vaibhav Sagar
2e4ac209cd ihaskell-blaze: 0.3.0.1 2017-12-24 21:26:16 +08:00
Vaibhav Sagar
5539a066ac ihaskell-aeson: 0.3.0.1 2017-12-24 21:25:11 +08:00
Vaibhav Sagar
08d983cfcf ghc-parser: 0.2.0.1 2017-12-23 00:15:39 +08:00
Vaibhav Sagar
348eff6ce5 ipython-kernel: 0.9.0.1 2017-12-23 00:15:39 +08:00
Vaibhav Sagar
9ee1c3f574 ihaskell: 0.9.0.2 2017-12-23 00:15:26 +08:00
Vaibhav Sagar
9aa375f6c3 stack-8.2.yaml: bump resolver to lts-10.0 2017-12-19 23:27:09 +10:00
Vaibhav Sagar
b1a504b2c8 Bump 8.2 resolver to latest nightly 2017-12-18 13:18:17 +10:00
Vaibhav Sagar
13490cac14 Bump resolvers to lts-9.20 2017-12-18 13:18:17 +10:00
Vaibhav Sagar
0d1354fadf stack-8.2.yaml: update plot to latest 2017-12-16 23:39:19 +10:00
Renato Alves
b0b5236d68 Build 'jupyter console' wrappers with nix installation 2017-12-14 09:36:37 +08:00
Vaibhav Sagar
f9727588a0 .travis.yml: use latest nixos-17.09 nixpkgs 2017-12-13 22:36:17 +08:00
Vaibhav Sagar
106eae9b52 Bump resolvers to lts-9.18 2017-12-13 20:50:25 +08:00
Vaibhav Sagar
d85740b114 release-8.2.nix: use GHC 8.2.2 2017-12-13 11:36:49 +08:00
Vaibhav Sagar
2e664b37ea Bump resolvers to lts-9.17 2017-12-12 07:18:37 +08:00
Vaibhav Sagar
b235f0806a Bump resolvers to lts-9.16 2017-12-04 10:46:06 +08:00
Vaibhav Sagar
e55202c413 release{,-8.2}.nix: refactor ihaskell-* scripts 2017-12-02 22:44:03 +08:00
Vaibhav Sagar
c678f4650f
Merge pull request #790 from gibiansky/ihaskell-nbconvert
release{,-8.2}.nix: add ihaskell-nbconvert script
2017-12-01 17:44:56 +08:00
Vaibhav Sagar
aa996f016d .travis.yml: test nbconvert after building with Nix 2017-12-01 17:29:03 +08:00
Vaibhav Sagar
81a740808d release{,-8.2}.nix: factor out common shell bits 2017-12-01 16:59:51 +08:00
Vaibhav Sagar
76525c382d release{,-8.2}.nix: add ihaskell-nbconvert script 2017-12-01 16:49:14 +08:00
Vaibhav Sagar
71cca569fb stack-8.2.yaml: update to newest resolver to minimise extra-deps 2017-11-30 09:26:29 +08:00
Vaibhav Sagar
421f5f633c release-8.2.nix: use newest gtk2hs 2017-11-27 10:49:53 +08:00
Vaibhav Sagar
cd96861740 README.md: add instructions for using Docker 2017-11-26 19:33:23 +08:00
Vaibhav Sagar
20124b79c3 Dockerfile: use stack path instead of hardcoding resolver 2017-11-26 19:20:51 +08:00
Vaibhav Sagar
2bcdbe52bb Dockerfile: install stack from Stackage 2017-11-24 09:01:21 +08:00
Vaibhav Sagar
c9a0fa441e stack-8.2.yaml: bump resolver to reduce extra-deps 2017-11-20 13:20:08 +08:00
Vaibhav Sagar
edf524be7b Bump resolvers to lts-9.14 2017-11-20 11:52:56 +08:00
Vaibhav Sagar
ab0736fc13 release-8.2.nix: use overrideAttrs 2017-11-16 17:09:13 +08:00
Vaibhav Sagar
b5d16f8845 .travis.yml: increase cache timeout for Nix builds 2017-11-15 16:00:09 +08:00
Vaibhav Sagar
01b7f5a3c0 .travis.yml: install libzmq3-dev with apt-get 2017-11-14 17:05:54 +08:00
Vaibhav Sagar
f80f90f703 Bump resolvers to lts-9.13 2017-11-13 10:22:51 +08:00
Vaibhav Sagar
9fa62b04b1 Dockerfile: update 2017-11-12 19:49:10 +08:00
Vaibhav Sagar
f80c2533c1 Revert "release-8.2.nix: remove unnecessary overrides"
This reverts commit 1fc16b4baefa3c61061c6ded508709608e988c8f.

This builds fine locally but not on my Hydra for some reason.
2017-11-12 19:34:36 +08:00
Vaibhav Sagar
1fc16b4bae release-8.2.nix: remove unnecessary overrides 2017-11-12 18:23:20 +08:00
Vaibhav Sagar
736050d05e release-8.2.nix: stylistic improvements 2017-11-09 00:11:45 +08:00
Vaibhav Sagar
77d4123735 release{,-8.2}.nix: unify ihaskellEnv and ihaskell 2017-11-09 00:01:48 +08:00
Vaibhav Sagar
8585da7826 release-8.2.nix: remove overlay 2017-11-07 15:55:18 +08:00
Vaibhav Sagar
9ec1102ec5 .travis.yml: use newest nixos-17.09 2017-11-07 15:55:18 +08:00
Vaibhav Sagar
c9dea4bc00
Merge pull request #780 from aostiles/master
Fix #779: add missing installation step to README
2017-11-07 09:28:32 +08:00
Andrew Stiles
f004bb710c Fix #779: add missing installation step to README 2017-11-06 09:18:46 -08:00
Vaibhav Sagar
3d4a3dca51 Bump resolvers to lts-9.12 2017-11-06 00:50:43 +08:00
Vaibhav Sagar
afb9d11c9a
Merge pull request #777 from gibiansky/ignore-unnecessary-hiding
Ignore 'Unnecessary hiding'
2017-11-05 12:34:37 +08:00
Vaibhav Sagar
f8dbffdd6f Filter out ignored ideas 2017-11-05 12:12:17 +08:00
Vaibhav Sagar
9c50d51ad0 Ignore 'Unnecessary hiding' 2017-11-05 11:22:30 +08:00
Vaibhav Sagar
616b5f825b stack-8.2.yaml: use latest resolver for new hlint 2017-11-04 09:57:52 +08:00
Vaibhav Sagar
e4276ec382
Merge pull request #776 from gibiansky/disable-default-display
Don't include display modules by default when building with Nix
2017-11-02 22:45:01 +08:00
Vaibhav Sagar
a4c8e6f896 release{,-8.2}.nix: don't provide display modules by default 2017-11-02 21:32:45 +08:00
Vaibhav Sagar
eb90eb781e Explicitly build ihaskell-* modules 2017-11-02 20:29:44 +08:00
Vaibhav Sagar
66f6e821a3 release{,-8.2}.nix: simplify jupyter environment 2017-11-02 14:18:29 +08:00
Vaibhav Sagar
3f604e471f Always set -dynamic-too
This improves Nix compatibility without changing Stack or Cabal
compatibility. See #728.
2017-11-02 10:45:35 +08:00
Vaibhav Sagar
b49fc4a158 .travis.yml: don't collect garbage before caching 2017-11-02 00:29:26 +08:00
Vaibhav Sagar
583658abd5 release{,-8.2}.nix: disable ihaskell-widgets by default
This module takes an incredibly long time to compile and I haven't
missed it. If needed, it can be enabled with e.g.
`--arg packages '(p: [ p.ihaskell-widgets ])'`.
2017-11-01 21:49:32 +08:00
Vaibhav Sagar
444e275a67 release{,-8.2}.nix: enable ihaskell-widgets 2017-11-01 16:01:44 +08:00
Vaibhav Sagar
c0e7d55356 ihaskell-widgets: fix Haddock generation
Haddock doesn't seem to work with comments between the module name and
the import statements.
2017-11-01 15:55:35 +08:00
Vaibhav Sagar
3382c8997d release-8.2.nix: enable ihaskell-static-canvas 2017-11-01 10:23:00 +08:00
Vaibhav Sagar
f195427a9b release-8.2.nix: remove redundant overrides 2017-11-01 10:09:59 +08:00
Vaibhav Sagar
3d15e8e42a Enable ihaskell-plot for GHC 8.2+Nix 2017-11-01 09:52:00 +08:00
Vaibhav Sagar
436022a5ee Enable ihaskell-{charts,diagrams} on GHC 8.2+Nix 2017-11-01 02:22:59 +08:00
Vaibhav Sagar
c81ef1d021 release.nix: remove unused dontCheck 2017-10-31 15:54:06 +08:00
Vaibhav Sagar
5b7d1be6b3 Cache Nix store 2017-10-31 00:06:10 +08:00
Vaibhav Sagar
ea5f453633 Bump nixpkgs version to latest 17.09 2017-10-31 00:06:10 +08:00
Vaibhav Sagar
2889fe5300 Add binary cache to speed up builds 2017-10-31 00:06:10 +08:00
Vaibhav Sagar
49560a7b12 Bump resolvers to lts-9.11 2017-10-30 14:33:00 +08:00
Vaibhav Sagar
a965c0144c Bump resolvers to lts-9.10 2017-10-23 10:04:59 +08:00
Vaibhav Sagar
318c571d73 Merge pull request #768 from gibiansky/reduce-nix-rebuilds
release.nix: split out sources to reduce rebuilds
2017-10-22 18:31:36 +08:00
Vaibhav Sagar
6b329d3d5f release{,-8.2}.nix: split out sources to reduce rebuilds
Having one source means that everything is rebuilt when e.g an
ihaskell-display package is modified. Splitting the sources out avoids
this by only rebuilding other packages that originate from the same
source.
2017-10-22 15:18:20 +08:00
Vaibhav Sagar
46460e0e40 Merge pull request #769 from gibiansky/test-nix
release{,-8.2}.nix: run tests after build
2017-10-22 14:16:25 +08:00
Vaibhav Sagar
d5c6272390 .travis.yml: build with Nix 2017-10-22 14:00:40 +08:00
Vaibhav Sagar
bb1f1290b4 release{,-8.2}.nix: run tests after build 2017-10-22 03:17:37 +08:00
Vaibhav Sagar
32aea170c4 Update README to mention GHC 8.2 support 2017-10-18 10:12:54 +08:00
Vaibhav Sagar
fae4746494 Merge pull request #759 from gibiansky/ghc82-infra
Test with GHC 8.2
2017-10-17 17:02:56 +08:00
Vaibhav Sagar
7f34d21f51 Update .travis.yml
Now it tests with both GHC 8.0 and GHC 8.2
2017-10-17 16:39:31 +08:00
Vaibhav Sagar
f26c62b9c4 Add stack-8.2.yaml 2017-10-17 16:39:00 +08:00
Vaibhav Sagar
b19fdf178a Add release-8.2.nix 2017-10-17 16:39:00 +08:00
Vaibhav Sagar
f82808f008 release.nix: ignore .yml files 2017-10-16 23:41:34 +08:00
Vaibhav Sagar
4e2d4ccc8b Bump resolvers to lts-9.9 2017-10-16 10:59:14 +08:00
Vaibhav Sagar
6dad1002af Merge pull request #735 from gibiansky/ghc821-nix
Work with GHC 8.2
2017-10-15 16:55:23 +08:00
Vaibhav Sagar
384a984049 Update src/tests/IHaskell/Test/Eval.hs 2017-10-15 16:44:40 +08:00
Vaibhav Sagar
4446931f46 Update src/IHaskell/Eval/Completion.hs 2017-10-15 16:44:40 +08:00
Vaibhav Sagar
932886e218 Update src/IHaskell/Eval/Info.hs 2017-10-15 16:44:40 +08:00
Vaibhav Sagar
1809f8c2c0 Update src/IHaskell/Eval/Evaluate.hs 2017-10-15 16:44:35 +08:00
Vaibhav Sagar
01858a60d9 Update src/IHaskell/Eval/Util.hs 2017-10-14 20:31:32 +08:00
Vaibhav Sagar
22b4ea1eb1 ihaskell-display/*: bump base version bounds 2017-10-14 20:31:32 +08:00
Vaibhav Sagar
b942377433 Bump version bounds for 8.2.1 2017-10-14 20:31:32 +08:00
Vaibhav Sagar
8d6a669653 release.nix: simplify cleanSource 2017-10-12 13:56:39 +08:00
Vaibhav Sagar
9be6bac457 release.nix: use cleanSourceFilter 2017-10-12 13:42:24 +08:00
Vaibhav Sagar
d83e68177a Bump resolvers to lts-9.8 2017-10-12 12:18:04 +08:00
Vaibhav Sagar
6e42515a33 Rename pkgs argument to nixpkgs 2017-10-12 12:16:53 +08:00
Vaibhav Sagar
9bb794850e Merge pull request #757 from zainab-ali/execute-protocol
Make silent and store_hitsory optional params
2017-10-09 09:28:40 +08:00
zainab-ali
cc570a22c2 Make silent and store_hitsory optional params 2017-10-08 17:34:28 +01:00
Vaibhav Sagar
9fe30c0c7a Clean up -dynamic-too patching for Nix 2017-10-08 00:17:07 +08:00
Vaibhav Sagar
2907c07901 release.nix: remove unused 'profile' variable 2017-10-03 23:37:00 +08:00
Vaibhav Sagar
8d022fa441 Put makeWrapper in buildInputs
As per https://github.com/NixOS/nixpkgs/issues/29987
2017-10-02 00:47:42 +08:00
Vaibhav Sagar
c969b69383 Merge pull request #755 from gibiansky/nix-improvements
Nix improvements
2017-10-02 00:12:45 +08:00
Vaibhav Sagar
0d81c1d66c Filter out irrelevant files 2017-10-02 00:02:16 +08:00
Vaibhav Sagar
733c6d7c42 pkgs.makeWrapper is stricter in 17.09 2017-10-02 00:01:37 +08:00
Vaibhav Sagar
8447d3aabc Set -dynamic-too for Nix 2017-10-02 00:01:07 +08:00
Vaibhav Sagar
b33dbb8b84 Bump resolvers to lts-9.6 2017-09-25 16:46:50 +08:00
Vaibhav Sagar
dc34884f97 Make rtsopts configurable through release.nix 2017-09-24 17:31:51 +08:00
Sumit Sahrawat
a89c671870 Merge pull request #714 from leftaroundabout/master
Enable RTS options
2017-09-23 22:47:21 +05:30
Justus Sagemüller
52fbd3b187 Choose some default runtime options.
These may be controversial. They are certainly not good for everybody,
but in my opinion better than the GHC default (unlimited memory,
single processor), especially for beginners:

- In Haskell, it's unfortunately somewhat easy to allocate infinite
  amounts of memory. In the default setting, this can grind the entire
  system virtually to a halt by driving everything into swap. This
  is a huge frustration. (Yeah, Matlab likes to do this too, but that
  should be no benchmark...)
  With a memory cap, this will simply crash the program. Especially
  in Jupyter, that's not a big deal since the kernel can easily be
  restarted without losing any work.
- ̶6̶4̶0̶k 3 GiB should be enough for most beginner-relevant
  IHaskell applications, but should fit in most computers' RAM or
  at least reach the limit quickly after entering swap space.
- I see no reason to restrict the runtime to a single processor.
  Almost all machines today have multiple cores, and we're linking
  to the `-threaded` runtime anyway. For some applications it's
  basically necessary to use more than one thread for properly
  responsive operation, including my
  [dynamic-plot](http://hackage.haskell.org/package/dynamic-plot).
- Two processors should be modest enough to not substantially
  slow down any modern system.

Power users can of course always disable the memory cap and choose
more processors, through e.g.

    ihaskell install --use-rtsopts="-N12"
2017-09-23 13:54:06 +02:00
Justus Sagemüller
4245ef5191 Include RTS flags in kernelspec when installing. 2017-09-23 13:54:06 +02:00
Justus Sagemüller
8dcb905043 Enable +RTS options on the ihaskell executable.
This allows selecting e.g. a number of processors for multithreading other than 1,
or to impose a memory cap.
2017-09-23 13:54:06 +02:00
Vaibhav Sagar
76ce3b3f2d Bump resolvers to lts-9.5 2017-09-18 20:28:11 +07:00
Vaibhav Sagar
d35628d10a Bump resolvers to lts-9.4 2017-09-11 22:01:55 +07:00
Vaibhav Sagar
16445a911f Add note about getting GHC 7.10 support 2017-09-06 22:04:26 +07:00
Vaibhav Sagar
deeed9581b Merge pull request #748 from leftaroundabout/deprecation/unsupported-old-versions
Properly un-support GHC-7 (and other old stuff)
2017-09-06 16:52:59 +07:00
Justus Sagemüller
da52ee499e Reflect lack of support for GHC<8 in the dependencies.
As per #716, GHC-7 support has at the moment no priority. Use the GHC7 tag
for the last version that retains the original GHC-7.10 support.

https://github.com/gibiansky/IHaskell/releases/tag/GHC7

(However, it is still quite feasible to support GHC-7.10 in master, see
#747.)
2017-09-06 11:46:00 +02:00
Justus Sagemüller
096b1b6bce Adjust dependency lower boundary.
In `haskell-src-exts-1.17`, `Module` was not parameterised yet, so trying
to compile with that version gives

src/IHaskell/Eval/Lint.hs:36:19:
    ‘SrcExts.Module’ is applied to too many type arguments
    In the type ‘SrcExts.Module SrcSpanInfo’
    In the type declaration for ‘ExtsModule’
2017-09-05 18:20:32 +02:00
Vaibhav Sagar
95735f19e4 Enable dynamic loading with Nix 2017-09-05 07:48:09 +07:00
Vaibhav Sagar
c2e9e1382a Bump resolvers to lts-9.3 2017-09-05 07:41:15 +07:00
Vaibhav Sagar
3397825510 Update jupyter packages 2017-09-04 21:40:10 +08:00
Vaibhav Sagar
59adc28654 Change ghc-parser build-type to Simple 2017-09-04 00:13:45 +08:00
Vaibhav Sagar
ee8b8cc6ba Remove build-parser.sh 2017-09-02 11:36:14 +08:00
Vaibhav Sagar
bd09a30d65 Use defaultMain 2017-09-02 11:36:14 +08:00
Vaibhav Sagar
2b36577c29 Don't build parsers for 7.6 and 7.8
These parsers are unused and generating them leads to changes in the
source of ghc-parser, which causes more rebuilds than necessary.
2017-09-02 11:36:14 +08:00
Vaibhav Sagar
1fd9f03c85 Bump resolver to lts-9.2 2017-09-02 10:08:26 +08:00
Vaibhav Sagar
6e224c04c6 Fix Travis build 2017-09-02 09:43:48 +08:00
Vaibhav Sagar
82208921c7 Remove flag in release.nix 2017-08-29 13:52:12 +08:00
Justus Adam
e29f1977b8 Applied suggested minor changes 2017-08-26 15:11:07 +08:00
Justus Adam
2a7575ad85 Changed the macOS build instructions 2017-08-26 15:11:07 +08:00
Andrew Gibiansky
3136676bbd Bump version in cabal file for upload 2017-08-18 23:49:38 -07:00
Vaibhav Sagar
378b245524 Default binPkgDb to False 2017-08-18 23:49:01 -07:00
Andrew Gibiansky
5ba44347ae minor fixes to upload ipython-kernel and ghc-parser 2017-08-18 20:39:53 -07:00
Andrew Gibiansky
be4c870d99 Bump version in cabal file for upload 2017-08-18 20:03:27 -07:00
Andrew Gibiansky
2fcf6f96b5 Bump version in cabal file for upload 2017-08-18 20:00:09 -07:00
Vaibhav Sagar
2295ccdbee Tighten spacing 2017-08-18 21:25:51 +08:00
Vaibhav Sagar
e98945ff16 Fix ipython-kernel derivation name 2017-08-18 21:24:30 +08:00
Vaibhav Sagar
014bdd36dd Bump resolver to lts-9.1 2017-08-18 15:08:46 +08:00
Vaibhav Sagar
94dc8a5955 Make pinning nixpkgs more customisable 2017-08-16 14:53:44 +08:00
Vaibhav Sagar
f34c3e2589 Allow pinning of nixpkgs 2017-08-13 02:49:52 +08:00
Vaibhav Sagar
f39b812fdc Remove Hspec warning
GHC Bug #8639 was fixed four years ago.
2017-07-27 23:55:44 +08:00
Vaibhav Sagar
95e1830e23 Change InputMessage to ExecuteInputMessage
This stops nbconvert from complaining.
2017-07-27 21:48:43 +08:00
Vaibhav Sagar
5d5f2ec7c6 Switch to Python 3 2017-07-27 21:48:43 +08:00
Vaibhav Sagar
99fe7c8c58 Remove 'stack exec' from kernel installation
This leads to the wrong binary being used as per #733.
2017-07-27 21:17:31 +08:00
Vaibhav Sagar
8df923f9e5 Bump resolvers to lts-9.0 (#732)
* Bump resolvers to lts-9.0

* Import HLint3 instead of HLint2
2017-07-27 16:02:35 +08:00
Vaibhav Sagar
b1a1324422 Update README.md
Move 'Nix' under 'Running'
2017-07-24 22:16:16 +08:00
Vaibhav Sagar
3120b13f41 Add nix-build example to README 2017-07-24 22:14:00 +08:00
Vaibhav Sagar
81a702127c Add nix derivations 2017-07-24 22:14:00 +08:00
Vaibhav Sagar
fd928bef80 Bump resolvers to lts-8.23 2017-07-20 00:24:47 +08:00
Vaibhav Sagar
253e3c730c Add packages for stack --nix build 2017-07-15 21:01:57 +08:00
Vaibhav Sagar
9883dbd666 Bump resolvers to lts-8.22 2017-07-13 10:25:16 +08:00
Vaibhav Sagar
a184f94f67 Bump resolvers to lts-8.21 2017-07-02 02:54:34 +08:00
Vaibhav Sagar
90be876ec9 Bump resolvers to lts-8.20 2017-06-25 11:17:32 +08:00
Vaibhav Sagar
8205ffbd55 Update instructions to add --stack flag
Since we are assuming `stack`, this makes IHaskell usage more convenient.
2017-06-23 10:59:37 +08:00
Odomontois
ec93205b26 Added dev libs to README
libmagic-dev
libblas-dev
liblapack-dev
2017-06-22 22:28:21 +08:00
Vaibhav Sagar
11794ec91f Bump resolver to 8.19 2017-06-22 15:23:46 +08:00
Sumit Sahrawat
4df5355480 Merge pull request #722 from lgastako/patch-2
Add libmagic to mac install instructions
2017-06-11 05:31:00 +05:30
John
3b51df45da Create README.md
This was the only change I had to make to get it working on OS X Yosemite.
2017-06-10 17:51:00 -06:00
Vaibhav Sagar
66fe54b1fe Bump resolvers to lts-8.17 2017-06-09 22:42:22 +08:00
Vaibhav Sagar
f715672606 Add sentence indicating GHC 8-only support 2017-06-04 21:29:04 +08:00
Vaibhav Sagar
819e4475e5 Change 'abarbu' back to 'gibiansky' 2017-06-04 21:15:30 +08:00
Vaibhav Sagar
19ba3cdf62 Merge pull request #716 from abarbu/master
Support GHC 8
2017-06-04 18:41:37 +08:00
Andrei Barbu
e8451d790f Merge pull request #12 from vaibhavsagar/remove-extra-deps
Remove extra-deps
2017-04-29 04:55:41 +03:00
Vaibhav Sagar
485433be77 Remove extra-deps 2017-04-28 12:03:11 +08:00
Andrei Barbu
d5aed61a91 Merge pull request #11 from vaibhavsagar/bump-resolver
Bump resolvers to lts-8.12
2017-04-28 05:42:17 +03:00
Vaibhav Sagar
81a0685db0 Bump resolvers 2017-04-27 21:07:26 +08:00
Andrei Barbu
c600f05b6f Bump travis resolver to 8.11 2017-04-19 21:01:45 -04:00
Andrei Barbu
0ddaec9dfc Merge pull request #10 from vaibhavsagar/remove-extra-dep
Remove shelly-1.6.8.3 from extra-deps
2017-04-20 03:53:11 +03:00
Andrei Barbu
389919363e Merge pull request #9 from vaibhavsagar/bump-lts
Bump resolvers
2017-04-20 03:53:02 +03:00
Vaibhav Sagar
948c527dbe Remove shelly-1.6.8.3 from extra-deps
It is included in the current resolver
2017-04-12 15:17:51 +07:00
Vaibhav Sagar
69ee2a2491 Bump resolvers 2017-04-12 15:13:53 +07:00
Andrei Barbu
c7f1e6de24 Merge pull request #8 from vaibhavsagar/bump-lts-8.8
Bump resolvers to lts-8.8
2017-04-04 20:11:16 +03:00
Vaibhav Sagar
0aa7fb5c0e Bump resolvers to lts-8.8 2017-04-05 00:07:56 +07:00
Andrei Barbu
cffabfd53e Merge pull request #7 from vaibhavsagar/aeson-bound
Update aeson lower bound
2017-03-30 21:49:54 +03:00
Vaibhav Sagar
835194fc8b Update aeson lower bound 2017-03-30 20:48:59 +07:00
Andrei Barbu
f51efb3f8b Merge pull request #3 from vaibhavsagar/execStmt
Replace runStmt with execStmt
2017-03-28 05:08:15 -04:00
Andrei Barbu
5f88dcbe72 Merge pull request #5 from vaibhavsagar/encodeToTextBuilder
Replace deprecated import
2017-03-28 05:07:39 -04:00
Andrei Barbu
3a53c8c7d4 Merge pull request #6 from vaibhavsagar/latest-resolver
Bump resolvers
2017-03-28 05:03:11 -04:00
Vaibhav Sagar
2841af7a9d Bump resolvers 2017-03-28 10:23:04 +07:00
Vaibhav Sagar
0d78369106 Replace deprecated import 2017-03-28 10:18:29 +07:00
Vaibhav Sagar
3f9a422630 Replace runStmt with execStmt 2017-03-25 16:27:11 +07:00
Andrei Barbu
b5caa4f0c5 faster travis builds 2017-03-15 19:58:16 -04:00
Andrei Barbu
a54b762cd5 Merge pull request #2 from vaibhavsagar/patch-2
Update .travis.yml
2017-03-15 19:57:04 -04:00
Andrei Barbu
9b4ca844b6 Merge pull request #1 from vaibhavsagar/patch-1
Update stack.yaml
2017-03-15 19:56:24 -04:00
Vaibhav Sagar
d7ef8113ac Update .travis.yml
Add `--no-terminal` where appropriate.
2017-03-13 15:44:29 +07:00
Vaibhav Sagar
bc670c389b Update stack.yaml
Use latest resolver.
2017-03-13 15:20:02 +07:00
Andrei Barbu
1da49a36ae fix broken test 2017-03-12 20:38:23 -04:00
Andrei Barbu
deeaf00338 Remove default flags; they break ghci 2017-03-12 20:09:45 -04:00
Andrei Barbu
514aa55b0b fix instructions 2017-03-12 20:07:16 -04:00
Andrei Barbu
16df4e9c51 add space to remove TH confusion 2017-03-11 23:25:08 -05:00
Andrei Barbu
4d8ad76e4c extra libs 2017-03-11 21:58:34 -05:00
Andrei Barbu
fa956373ca gtk2hs-buildtools go first 2017-03-11 21:11:33 -05:00
Andrei Barbu
d5ed81cd4d do stack setup in ci 2017-03-11 20:47:21 -05:00
Andrei Barbu
913f8a12ae run pip with sudo 2017-03-11 20:40:16 -05:00
Andrei Barbu
16d3840094 FlexBox is gone 2017-03-11 20:31:38 -05:00
Andrei Barbu
79ade02c1c simplify readme 2017-03-11 20:31:06 -05:00
Andrei Barbu
12df9b5e99 add circleci tests 2017-03-11 20:30:54 -05:00
Andrei Barbu
68c4d57dcc pip requirements file 2017-03-11 20:24:57 -05:00
Andrei Barbu
edb8b70263 error message whitespace 2017-03-11 20:24:12 -05:00
Andrei Barbu
5ae3a123af error message 2017-03-11 15:25:54 -05:00
Andrei Barbu
f62733315f don't look for ipython 2017-03-11 15:25:43 -05:00
Andrei Barbu
bf393119bd get rid of stack-full in CI 2017-03-06 10:51:20 -05:00
Andrei Barbu
558ebe4528 get rid of stack-full; all installs are full 2017-03-06 10:50:52 -05:00
Andrei Barbu
215229f1f1 escaping in travis.yml 2017-03-06 10:24:55 -05:00
Andrei Barbu
02274a0b7f break up package builds into two steps (sometimes stack leaks memory); try to forcefully apply --fast to all deps 2017-03-06 10:10:28 -05:00
Andrei Barbu
bf8d961fc8 fast builds on debug to lower memory usage 2017-03-06 09:36:20 -05:00
Andrei Barbu
deddfc7fb3 update notebook for ghc 8.0.2 2017-03-06 09:33:14 -05:00
Andrei Barbu
b0ae7ce501 update test for slightly different variable names under ghc8 2017-03-06 09:30:42 -05:00
Andrei Barbu
de595bdb7e install gtk2hs-buildtools in travis 2017-03-06 08:59:39 -05:00
Andrei Barbu
a2d41396e7 CI update 2017-03-06 05:52:45 -05:00
Andrei Barbu
4efd06ce90 set the resolver to 8.0.3 2017-03-06 05:33:56 -05:00
Andrei Barbu
43b0f3870e Update widgets for the latest ipywidgets. Most widgets work 2017-03-06 05:25:08 -05:00
Andrei Barbu
0b889810f8 ipython -> jupyter 2017-03-06 05:23:49 -05:00
Andrei Barbu
e8a2de6604 updates for the latest aeson and ghc exts 2017-03-06 05:23:19 -05:00
Andrei Barbu
709e857c95 autogenerated parser files 2017-03-06 05:22:25 -05:00
Andrei Barbu
36467e8e86 relax overly-tight package bounds; stack file update 2017-03-06 05:21:45 -05:00
Andrei Barbu
e97b70198f Apply #686 2017-03-05 10:12:24 -05:00
Erik de Castro Lopo
00478f3b8f Fix a couple of deprecation warnings 2017-03-05 00:58:13 -08:00
Jun Matsushita
38ac12b506 OSX installation instructions. 2016-10-11 03:13:41 +05:30
Libby Horacek
090ee844bf Reply to CommInfoRequest with actual open comms 2016-10-11 03:10:53 +05:30
Vaibhav Sagar
50a144ced8 Minor fixes. 2016-10-11 03:10:53 +05:30
Libby Horacek
321bdd95ff Use a Map instead of list of tuples for commInfo
It's a bit closer to a dictionary.
2016-10-11 03:10:53 +05:30
Libby Horacek
8de1a9e081 Add CommInfoRequest and CommInfoReply 2016-10-11 03:10:53 +05:30
Andrew Gibiansky
73791d3711 Attempt to fix quasiquotes parsing bug with a hack 2016-06-24 23:09:32 -07:00
Sumit Sahrawat
94338f8d4f Merge pull request #666 from sumitsahrawat/ipython-replyto-config
Fix issue #665: Make EasyKernel more configurable
2016-06-16 06:51:46 +05:30
Sumit Sahrawat
6659dd8336 Fix examples & add them to travis build 2016-06-16 06:12:07 +05:30
Sumit Sahrawat
8e381a7f54 Add more configurables for EasyKernel 2016-06-16 05:49:10 +05:30
Sumit Sahrawat
ba7cd9c84e Fix #665: Incomplete KernelInfoReply from EasyKernel.replyTo 2016-06-16 05:49:10 +05:30
Andrew Gibiansky
c783897d36 Merge pull request #677 from leftaroundabout/bug/escape-anglebrackets
Escape html control characters in error messages.
2016-06-14 16:01:31 -07:00
Andrew Gibiansky
a57cb83c5a Add a test that ensures that demo notebook doesnt change. 2016-06-14 15:59:24 -07:00
Andrew Gibiansky
ca20e2a348 Dont use SVG by default 2016-06-13 18:43:25 -07:00
Andrew Gibiansky
614e22ffe7 Update example notebook 2016-06-13 18:43:17 -07:00
Andrew Gibiansky
2063a1027c Fix name collision due to static-canvas 2016-06-13 18:42:19 -07:00
Andrew Gibiansky
d9a607fb84 Do not autohighlight JSON anymore, just format it. 2016-06-13 18:42:06 -07:00
Andrew Gibiansky
905450e1b8 Fix pager to use display data mime bundles; remove user_variables. 2016-06-11 23:15:29 -07:00
Justus Sagemüller
b0a328a11b Escape $ signs _after_ html control characters.
Otherwise these are misinterpreted as MathJax again (even in their `&dollar;` form, for whatever reason!).
2016-06-11 17:22:46 +02:00
Justus Sagemüller
a5e317f1d7 Escape html control characters in error messages.
Error messages are usually rendered surprisingly clean even without escaping, but in a few cases it went wrong quite badly, in particular the `<<loop>>` error would get rendered as the completely cryptic `<>`.

Also, something like `"one string&quot; &quot;another string" 4` used to give the error message

```
The function ‘"one string" "another string"’ is applied to one argument,
but its type ‘String’ has none
```

This kind of behavior is prevented by escaping the characters `<`, `>` and `&` to `&lt;`, `&gt;` and `&amp;`, respectively.
2016-06-11 14:14:24 +02:00
Andrew Gibiansky
b7716b9fa2 add a blurb to README for mobile 2016-06-10 14:46:47 -07:00
Andrew Gibiansky
0c5e162be9 Fix issues associated with multiple IHaskells installed.
This fix is only a halfway-fix. If there are multiple IHaskell libraries
installed, you can still end up loading an interpreted version of the
wrong one; however, now Display values are serialized to bytestring, so
this will not cause any issues with transferring those between the two
versions. Widget messages are not serializable and cannot be
serializable, so those remain a problem, but instead of crashing it will
instead emit a loud warning on stderr.
2016-06-10 11:01:22 -07:00
Andrew Gibiansky
18b8fd0bd2 Read from printed output as UTF-8 (fixes #671). 2016-06-09 11:08:58 -07:00
Andrew Gibiansky
db3515986c Clean up test suite by splitting it into pieces 2016-06-09 01:21:42 -07:00
Andrew Gibiansky
4dc416c2af Travis latest (no more formatting, set -e) 2016-06-09 00:01:49 -07:00
Andrew Gibiansky
faa8ff0db8 travis latest 2016-06-08 23:49:04 -07:00
Andrew Gibiansky
4f4b7be662 travis latest 2016-06-08 23:47:59 -07:00
Andrew Gibiansky
a5d4854899 travis 12 2016-06-08 01:20:40 -07:00
Andrew Gibiansky
54340af96b Add display testing 2016-06-08 00:02:40 -07:00
Andrew Gibiansky
0024300c16 Travis fixes 11 2016-06-07 23:56:23 -07:00
Andrew Gibiansky
c839cf2bb2 Travis fixes 11 2016-06-07 23:54:11 -07:00
Andrew Gibiansky
989625b8c0 Travis fixes 10 2016-06-07 23:51:12 -07:00
Andrew Gibiansky
654369fd80 Travis fixes 9 2016-06-07 20:38:42 -07:00
Andrew Gibiansky
d6615e39e4 Travis fixes 8 2016-06-07 20:13:29 -07:00
Andrew Gibiansky
df53282bca Travis fixes 7 2016-06-07 20:06:03 -07:00
Andrew Gibiansky
37df10055f Travis fixes 6 2016-06-07 20:00:05 -07:00
Andrew Gibiansky
db1ef0d9dc Travis fixes 5 2016-06-07 19:37:01 -07:00
Andrew Gibiansky
d04cd6a620 Travis fixes 4 2016-06-07 19:20:42 -07:00
Andrew Gibiansky
a5f8e5f22b Travis fixes 2 2016-06-07 19:01:36 -07:00
Andrew Gibiansky
076eab8663 Travis fixes 1 2016-06-07 18:53:52 -07:00
Andrew Gibiansky
8318bd1d6a Travis fixes 2016-06-07 18:46:22 -07:00
Andrew Gibiansky
0fe33acd05 Travis fixes 2016-06-07 18:42:18 -07:00
Andrew Gibiansky
202cd66385 Travis fixes 2016-06-07 18:35:00 -07:00
Andrew Gibiansky
fa059316df Rewrite .travis.yml to use containers and stack.
This should make the build faster and more reliable,
and hopefully ressurect the test suite.
2016-06-07 18:31:52 -07:00
Andrew Gibiansky
12e88a36ab Get test suite working again.
Also, add some utilities for working with IHaskell components in `stack
ghci`.
2016-06-07 18:16:58 -07:00
Andrew Gibiansky
f9846b6bd9 Separate stack.yaml for each package for simplicity 2016-06-07 17:26:47 -07:00
Andrew Gibiansky
8701eb7cb0 Remove ihaskell-basic
The ihaskell-basic display package has been with us for a while, but
has no useful instances and really doesn't help anyone. We're removing
it for the time being but could get it back someday if needed.
2016-06-07 17:02:29 -07:00
Justus Sagemüller
9eb2235f9e Constrain dependecy of ipython-kernel to actually match the version.
Previously, `cabal install ihaskell` would happily use ipython-kernel-0.8.3, resulting in error

    ‘protocolVersion’ is not a (visible) field of constructor ‘KernelInfoReply’
2016-06-04 11:49:56 +05:30
Sumit Sahrawat
e8ed4450a5 Stop building ihaskell-* with 7.8.* 2016-06-03 18:13:12 +05:30
Sumit Sahrawat
90f967c126 Formatting fixes 2016-06-03 18:09:16 +05:30
Sumit Sahrawat
007e953264 Trying out new versions of happy and alex for ghc-7.6.* 2016-06-03 17:43:54 +05:30
Sumit Sahrawat
c8928b85db Merge pull request #657 from aaronmck/master
adjust for changes in Caskroom
2016-04-14 13:13:14 +05:30
Aaron McKenna
a22d9b1b5d adjust for changes in Caskroom 2016-04-13 22:32:20 -07:00
Andrew Gibiansky
4b548e393e use new LTS 2016-03-26 11:04:47 -07:00
louis
864a8d34f7 added FlexibleInstances Pragma 2016-03-26 11:04:26 -07:00
louis
4994f13d88 removed unnecessary import statement 2016-03-26 11:04:26 -07:00
louis
1889f5cdcf created a display instance for the (haskell-)gnuplot package 2016-03-26 11:03:55 -07:00
Andrew Gibiansky
fd7da220ca Use newer Stackage nightly with aeson 0.11 2016-03-26 10:17:26 -07:00
Sumit Sahrawat
d908674c02 Merge pull request #652 from trofi/master
ihaskell.cabal: add missing 'here' depend into testsuite
2016-03-25 17:19:38 +05:30
Sergei Trofimovich
d0854f849d ihaskell.cabal: add missing 'here' depend into testsuite
Preprocessing test suite 'hspec' for ihaskell-0.8.4.0...

Hspec.hs:20:18:
    Could not find module ‘Data.String.Here’
    It is a member of the hidden package ‘here-1.2.7@here_1j09jYtlmBB7SYT9WO9k1d’.
    Perhaps you need to add ‘here’ to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.

Signed-off-by: Sergei Trofimovich <siarheit@google.com>
2016-03-25 11:20:18 +00:00
Andrew Gibiansky
a43075af12 Bump package versions 2016-03-21 09:54:57 -07:00
Andrew Gibiansky
f7e9853de6 Allow aeson 0.11 2016-03-21 09:53:26 -07:00
Andrew Gibiansky
1b6d9081f2 Merge pull request #634 from hansroland/fix-example
Fix test example for juicypixels
2016-03-05 09:44:32 -08:00
Sumit Sahrawat
f239350938 Merge pull request #640 from juhp/patch-1
README: drop lts versions
2016-02-16 11:19:54 +00:00
Jens Petersen
68d8a7b798 README: drop lts versions 2016-02-16 18:06:39 +09:00
Sumit Sahrawat
625a2a2feb Merge pull request #639 from nicluo/master
Support --version, -V in CLI
2016-02-13 09:06:05 +00:00
Nicholas Luo
ed3b892e02 Use Paths_ihaskell provided by cabal to get IHaskell version number 2016-02-13 14:58:05 +08:00
Nicholas Luo
b2c8b1f059 Create showDefault to show version when flagged 2016-02-13 14:28:18 +08:00
Nicholas Luo
a70ae834b6 Remove help check from parseFlags (redundant), add version check in parseFlags, add CPP flag to access VERSION_python_kernel in Flags.hs 2016-02-11 21:57:56 +08:00
Sumit Sahrawat
d1c84ee2d3 Merge pull request #637 from nicluo/master
Fix #632: Show "Current Kernel Information" in Jupyter Notebook About
2016-02-09 22:02:10 +00:00
Nicholas Luo
a76d3b82f1 Combine protocol version with rest of kernel info 2016-02-09 22:26:46 +08:00
Nicholas Luo
05100fe640 Add banner to KernelInfoReply 2016-02-09 22:26:46 +08:00
Andrew Gibiansky
3385558465 Update talk link in README 2016-02-08 21:32:24 -08:00
roland
5d92d4feea Fix test example for juicypixels 2016-02-07 15:24:22 +01:00
Andrew Gibiansky
45ad25a9bb Added and tested Dockerfile and instructions on how to use it 2016-01-31 19:03:56 -08:00
Andrew Gibiansky
5adcd03093 Update README with talk/video 2016-01-26 00:24:38 -08:00
Sumit Sahrawat
04bb793aa3 Merge pull request #629 from franklx/master
Fix for issue #622 -- Possible build issues
2016-01-21 22:01:16 +05:30
franklx
0150a4405c Merge branch 'master' of https://github.com/franklx/IHaskell 2016-01-21 16:10:00 +01:00
franklx
c448eb3b27 Fixed lint output bug (fix for issue #622) 2016-01-21 16:09:36 +01:00
root
5264c05e08 Fixed lint output bug 2016-01-21 16:02:58 +01:00
Andrew Gibiansky
c383d2572b Merge pull request #624 from remusao/readme-install-blog-post
Update README with a link to step-by-step instructions blog post (for Ubuntu)
2016-01-10 11:49:13 -08:00
Remi Berson
68db7ed5b4 Fix README 2016-01-10 15:40:56 +01:00
Remi Berson
96e66737ea Update README with a link to step-by-step installation blog post. 2016-01-10 15:37:42 +01:00
Andrew Gibiansky
66a75d7222 remove reference to data.string.here 2015-12-16 20:06:21 -08:00
Andrew Gibiansky
af9b7283da Merge branch 'master' of github.com:gibiansky/IHaskell 2015-12-16 20:05:24 -08:00
Andrew Gibiansky
3cdc9e61be dont require new haskell src exts 2015-12-16 20:05:18 -08:00
louis
cafd410a98 improved replyTo for isCompleteRequests. single commit 2015-12-10 04:35:28 +01:00
Andrew Gibiansky
1e906f1190 Merge branch 'master' of github.com:gibiansky/IHaskell 2015-12-07 21:33:25 -08:00
Andrew Gibiansky
c61006202e Remove dependence on here, allow haskell-src-exts 1.17 2015-12-07 21:33:22 -08:00
Andrew Gibiansky
a2f8d77130 Merge pull request #614 from kputnam/master
Improve error handling in Mac OS X installer
2015-12-07 20:02:24 -08:00
Kvle Putnam
29112c39e1 Improve error handling in Mac OS X installer 2015-12-05 18:18:31 -06:00
Andrew Gibiansky
16d5ab079d Merge pull request #609 from bollu/fix-magic-macos-install
fix macOS cabal magic installation
2015-11-28 21:17:22 -08:00
bollu
eadd920bcb use brew --prefix to figure out library and include paths 2015-11-26 22:44:42 +05:30
bollu
03e5494f89 fix macOS cabal magic installation 2015-11-25 22:01:25 +05:30
Sumit Sahrawat
ece7e45efb Prevent re-use of ipython-package from hackage 2015-11-11 01:32:58 +05:30
Sumit Sahrawat
dd262036b8 Use --force-reinstalls to install widgets 2015-11-11 00:48:28 +05:30
Sumit Sahrawat
ecca0ea0b0 Fix issue with nats package update for ghc-7.6 and ghc-7.8 2015-11-11 00:45:26 +05:30
Sumit Sahrawat
e4e026cb92 Fix #597: Implement is_complete_{request,reply}
These messages are used by console frontends to check whether the
current input is complete or not. If it is not complete, the next line
is treated as the continuation of the code, and a '...' prompt is used
to show that.

To provide support for qtconsole, I have made it such that IHaskell
always responds to an is_complete_request by saying that the code is
complete, which only allows for single line inputs.
2015-10-28 16:33:44 +05:30
Sumit Sahrawat
376c6dd0be Fix not in scope errors on ghc-7.* 2015-10-28 16:33:27 +05:30
Sumit Sahrawat
4ebeb1fb58 Formatting fixes 2015-10-28 15:39:59 +05:30
Andrew Gibiansky
a8e09f58c8 Merge pull request #572 from thomasjm/master
New message types for ipython-kernel
2015-10-26 22:29:40 -07:00
Tom McLaughlin
6d3afb9e66 Merge master 2015-10-26 13:10:47 -07:00
Tom McLaughlin
e14d003dc3 Fix imports 2015-10-26 11:57:07 -07:00
Tom McLaughlin
c9fd3dab95 Remove debugging prints 2015-10-26 11:56:02 -07:00
Tom McLaughlin
cb37ce4cb5 Remove DisplayData show 2015-10-26 11:47:13 -07:00
Tom McLaughlin
3e9677ccab Cleaning up build 2015-10-26 11:42:22 -07:00
Sumit Sahrawat
346c49605e Remove hmatrix upper bound 2015-10-18 04:48:00 +05:30
artuuge
441e07ae91 compile widgets without optimizations if ghc == 7.10.* 2015-10-16 23:05:43 +02:00
artuuge
1bcf7a0354 compile with widgets if ghc is 7.10.* 2015-10-16 13:32:42 +02:00
artuuge
6ef94c167e ihaskell-widgets and singletons >= 2.0 2015-10-16 12:07:33 +02:00
Andrew Gibiansky
8177b77543 Merge pull request #586 from guillaumecherel/guillaumecherel-patch-1
Added some directives about using stack to manually install IHaskell,…
2015-10-11 20:51:39 -07:00
artuuge
6b9a5ee687 correct the singletons upper bound in ihaskell-widgets.cabal 2015-10-12 00:26:09 +02:00
guillaumecherel
b6397b7423 Added some directives about using stack to manually install IHaskell, and how to deal with the libiconv issue in OS X. 2015-10-09 19:33:21 +02:00
Sumit Sahrawat
8104d98f7b Add info about v0.2.2.0 2015-10-08 05:05:27 +05:30
Sumit Sahrawat
67abcc7018 Add rough info to widgets ChangeLog 2015-10-08 05:01:29 +05:30
Sumit Sahrawat
7a534ceeea Apply an untested fix for ghc-7.8
+ Some minor formatting fixes.
+ Add IHaskell.Display.Widgets.Types to hindent ignored_files.
+ Remove some extensions and unused imports.
2015-10-08 04:09:02 +05:30
Sumit Sahrawat
8925bdcea7 Add AutoDeriveTypeable for ghc-7.8 2015-10-06 23:48:37 +05:30
Sumit Sahrawat
860d02b6cf Make properties also show associated types
+ Add ChangeLog.md
+ Modify `Introduction to Widgets.ipynb` to reflect changes to
`properties`
2015-10-06 23:48:37 +05:30
Andrew Gibiansky
3ebf5b074f Hide stack support behind --stack flag 2015-10-06 10:18:47 -07:00
Andrew Gibiansky
783bcb948f Merge branch 'master' of github.com:gibiansky/IHaskell 2015-10-06 10:05:31 -07:00
Andrew Gibiansky
89ba1ded48 Update to 0.8.2, support for aeson 0.11 2015-10-06 10:05:23 -07:00
Sumit Sahrawat
0a3a89954f Fix #579: Pattern match failure on missing ipython binary
Change error message from an uncaught exception to an actual error
message.
2015-10-03 14:03:33 +05:30
Sumit Sahrawat
ccf1f554e7 Add explicit version bounds for dependencies
+ hmatrix >= 0.10 && <0.17,
+ singletons >= 0.9.0 && <2.0.0.0
2015-09-29 01:42:30 +05:30
Sumit Sahrawat
b068ee3be9 Add example for PlaceProxy 2015-09-22 00:16:04 +05:30
Sumit Sahrawat
e42e509fc3 Formatting fixes 2015-09-22 00:15:11 +05:30
Sumit Sahrawat
b2888da8bc Update example notebooks
Found issues with the PlaceProxy implementation. (Unresolved)
2015-09-22 00:14:40 +05:30
Sumit Sahrawat
c6e548f784 Some finishing touches to the 4.0 support
* [BUGFIX]: Fix bug with width, height etc. values

The values needed to be explicitly sent as "<value>(px/em/...)" strings.
Solved by assuming "px" for all values.

* Updated messaging specification documentation as necessary.
2015-09-17 00:05:02 +05:30
Andrew Gibiansky
5cb38e4f99 Merge pull request #574 from sumitsahrawat/widgets-4.0
Adding new widgets
2015-09-14 08:36:24 -07:00
Sumit Sahrawat
893ac27f69 Adding new widgets
+ Valid: A widget to display boolean values
+ Proxy: A widget that contains at most one DOMWidget in it
+ PlaceProxy: A Proxy widget with a selector (string) value.

Will have to investigate how the selector is used by PlaceProxy.
2015-09-14 14:08:46 +05:30
Andrew Gibiansky
be3d44eb26 Merge pull request #569 from sumitsahrawat/widgets-4.0
Make widget messages match with IPywidgets
2015-09-12 14:49:39 -07:00
Sumit Sahrawat
3d08910f36 Fix for ghc-7.8 2015-09-12 11:03:35 +05:30
Sumit Sahrawat
bcc861ae95 Formatting fixes 2015-09-12 09:49:46 +05:30
Sumit Sahrawat
6a226ce3a7 Sync-ing with ipywidgets changes 2015-09-12 09:25:20 +05:30
Sumit Sahrawat
f61ab434c1 Implement the suicidal comm workaround 2015-09-11 11:47:33 +05:30
Sumit Sahrawat
ceb3abdd51 Fix kernel death error 2015-09-11 11:47:33 +05:30
Sumit Sahrawat
48c3c1f689 Make widget messages match with IPywidgets
The ihaskell-widgets should send messages identical to what the
IPywidgets send. This has not been tested as there are some unresolved
issues in IHaskell that surface only if ipywidgets is installed.
2015-09-11 11:47:33 +05:30
Andrew Gibiansky
fe02d7db60 upload new ihaskell-diagrams 2015-09-10 22:53:03 -07:00
Andrew Gibiansky
4d8d50ffe5 Add note about arch linux package 2015-09-10 22:37:52 -07:00
Tom McLaughlin
e6fb0fe0e4 Tweaks 2015-09-05 23:59:27 -07:00
Andrew Gibiansky
a7400ea033 Reformat; remove ihaskell-parsec 2015-09-05 19:45:17 -07:00
Andrew Gibiansky
532cd190bc Merge branch 'master' of github.com:gibiansky/IHaskell 2015-09-05 19:36:35 -07:00
Andrew Gibiansky
73a6ddd85e Version bump 2015-09-05 19:36:31 -07:00
Andrew Gibiansky
eb1670b213 Merge pull request #567 from sumitsahrawat/modular-build-script
Modularize build script
2015-09-05 19:32:43 -07:00
Tom McLaughlin
c7a167a3d5 Go back to old ghc-parser folder 2015-09-03 16:20:13 -07:00
Tom McLaughlin
1f64ae66d2 Update stack.yaml 2015-09-03 16:14:46 -07:00
Tom McLaughlin
bd965779af Add a bunch of new message types 2015-09-03 14:29:31 -07:00
Andrew Gibiansky
a394a2b850 Adding simple calculator EasyKernel example 2015-09-01 21:03:00 -07:00
Andrew Gibiansky
cde0a09574 Start fixing easykernel for ipython4; add example 2015-08-30 21:43:29 -07:00
Sumit Sahrawat
635a8fc400 Modularize build script 2015-08-29 16:05:31 +05:30
Andrew Gibiansky
0bdf5ee0a4 Dont use --user with --prefix 2015-08-28 13:38:50 -07:00
Andrew Gibiansky
fe89d49748 Add --prefix flag to ihaskell install 2015-08-28 11:41:36 -07:00
Andrew Gibiansky
6e82ef3613 Fix formatting in Juicypixel.hs 2015-08-28 11:09:03 -07:00
Andrew Gibiansky
89c5201907 Merge branch 'master' of github.com:gibiansky/IHaskell 2015-08-28 11:08:18 -07:00
Andrew Gibiansky
0717983b6c Merge pull request #565 from wyager/master
Removed IO, fixed JuicyPixels display
2015-08-28 00:03:57 -07:00
Andrew Gibiansky
823bbac9f3 Minor bumps in versioning 2015-08-26 18:01:10 -07:00
Will Yager
c82555ff97 Removed IO, fixed 2015-08-26 19:27:30 -05:00
Andrew Gibiansky
f4b7fb5983 Allow using ihaskell without stack... 2015-08-25 22:19:18 -07:00
Andrew Gibiansky
716d8a6bcc Version bound on ipython-kernel 2015-08-25 21:50:38 -07:00
Andrew Gibiansky
62b6c556b0 Fix formatting with newer hindent 2015-08-25 16:54:05 -07:00
Andrew Gibiansky
ad66ac8638 Minor reformatting 2015-08-25 15:39:01 -07:00
Andrew Gibiansky
9cbee9df1c Minor updates with JS 2015-08-25 15:37:42 -07:00
Andrew Gibiansky
a061e22921 Update to newest kernel_info_reply protocol 2015-08-25 15:07:19 -07:00
Andrew Gibiansky
45011f5af4 Fix build failures 3 2015-08-25 13:34:06 -07:00
Andrew Gibiansky
779ecf9e1d Fix build failures 2 2015-08-25 12:36:20 -07:00
Andrew Gibiansky
71265f2d2e Fix build failures 2015-08-25 11:41:21 -07:00
Andrew Gibiansky
8e5e51ff14 Adding support for Stack and running without support lib 2015-08-24 13:54:22 -07:00
Andrew Gibiansky
069a2638fd Merge branch 'master' of github.com:gibiansky/IHaskell 2015-08-24 12:16:23 -07:00
Andrew Gibiansky
0c161751e2 Updates 2015-08-24 12:16:16 -07:00
Andrew Gibiansky
c7196b1029 Merge pull request #557 from sumitsahrawat/widget-interactive
Fix build script - round 2
2015-08-20 22:12:01 -07:00
Sumit Sahrawat
8f27bc90fe Fix build script - round 2 2015-08-21 09:55:19 +05:30
Andrew Gibiansky
40a8edab15 Merge pull request #545 from sumitsahrawat/widget-interactive
Initial version of `interactive` for widgets.
2015-08-20 11:29:37 -07:00
Sumit Sahrawat
1a6eb9c6d2 Fix build.sh no-widgets option 2015-08-20 23:40:25 +05:30
Sumit Sahrawat
af054ef70c Add Interactive.hs to ignored_files 2015-08-20 23:00:31 +05:30
Sumit Sahrawat
4cb50d5ad6 Add support for more expressive arguments 2015-08-20 22:52:18 +05:30
Andrew Gibiansky
35e469d115 Formatting 2015-08-17 01:25:33 -07:00
Sumit Sahrawat
1310fffcc5 Allow default arguments to interactive 2015-08-17 00:33:40 +05:30
Andrew Gibiansky
96ce950140 Formatting 2015-08-16 10:13:33 -07:00
Sumit Sahrawat
ca97362d83 Working version with multiple arguments
Still needs a lot of automation.
2015-08-16 16:17:04 +05:30
Sumit Sahrawat
19b13ce0b0 Incomplete generalization of interactive 2015-08-16 16:17:04 +05:30
Sumit Sahrawat
03cd021de3 Initial version of interactive 2015-08-16 16:17:04 +05:30
Andrew Gibiansky
cab4cfdf4b Version bump ihaskell 2015-08-16 00:54:15 -07:00
Andrew Gibiansky
5bdddf7f12 Changing homepage to Github 2015-08-16 00:53:54 -07:00
Andrew Gibiansky
4df808fe45 Support for ipython 4 2015-08-16 00:43:30 -07:00
Andrew Gibiansky
801d35b4f2 Add stack files to gitignore 2015-08-15 23:03:00 -07:00
Andrew Gibiansky
460081f181 Fixing compiler error 2015-08-13 01:04:10 -07:00
Andrew Gibiansky
e1f1f0cfc4 Adding support for ipython 4 2015-08-13 00:34:12 -07:00
Andrew Gibiansky
d05fffbfa1 Merge branch 'master' of github.com:gibiansky/IHaskell 2015-08-12 19:46:38 -07:00
Andrew Gibiansky
8055216be8 Minor comments 2015-08-12 19:45:46 -07:00
Andrew Gibiansky
37724e3764 Merge pull request #552 from lukerandall/bump-aeson-upper-bounds
Allow aeson 0.9
2015-08-12 20:53:00 -02:00
Luke Randall
cb0dc7a326 Allow aeson 0.9 2015-08-12 22:31:03 +02:00
Andrew Gibiansky
08da20207c Merge branch 'master' of github.com:gibiansky/IHaskell 2015-08-11 11:22:56 -07:00
Andrew Gibiansky
c1c9362997 packaging updates 2015-08-11 11:22:30 -07:00
Andrew Gibiansky
04ceeca929 Merge pull request #549 from sumitsahrawat/widgets-docker
Add version constraints to ihaskell-widgets
2015-08-11 11:01:11 -07:00
Sumit Sahrawat
183bc257ec Add version constraints to ihaskell-widgets 2015-08-11 23:12:35 +05:30
Andrew Gibiansky
0adbe07f3e Merge pull request #544 from sumitsahrawat/travis-widgets-fix
Fix build issues
2015-08-03 14:40:01 -02:00
Sumit Sahrawat
01309f2165 Add Evaluate.hs to hindent's ignored-files 2015-08-03 13:08:25 +05:30
Sumit Sahrawat
1f9426d44b Fix build issues with ihaskell-widgets
+ Remove ihaskell-widgets from build job for ghc-7.10.*
+ Add no-widgets option to build.sh
2015-08-03 11:30:00 +05:30
Andrew Gibiansky
dff95046da Merge pull request #543 from sumitsahrawat/ghc-7.10.2-travis
Add ghc-7.10.2 to travis jobs
2015-08-02 20:04:04 -07:00
Andrew Gibiansky
dca36085e8 Merge pull request #541 from qzchenwl/master
Fix compile error for ghc-7.10.2
2015-08-02 20:03:50 -07:00
Sumit Sahrawat
567c88942b Add ghc-7.10.2 to travis jobs 2015-08-03 02:28:37 +05:30
qzchenwl
b7338b3e3f Fix compile error for ghc-7.10.2 2015-08-02 18:31:17 +00:00
Andrew Gibiansky
a1db0c7be1 Merge pull request #539 from sumitsahrawat/plotting-example
WIP: Plotting example
2015-08-01 11:19:54 -07:00
Sumit Sahrawat
0862981867 Finish the plotting example 2015-08-01 17:03:52 +05:30
Sumit Sahrawat
2ce44db1dc Prepare initial interface for plotting example 2015-07-27 20:39:07 +05:30
Andrew Gibiansky
a8df80ad50 Merge pull request #535 from sumitsahrawat/widget-examples
Widgets UX
2015-07-26 23:43:15 -07:00
Sumit Sahrawat
916e7ab7ea Fix formatting 2015-07-24 15:11:50 +05:30
Sumit Sahrawat
f77a7c3e74 Update examples for singleton changes 2015-07-24 14:59:59 +05:30
Sumit Sahrawat
6622b260d2 Get rid of S prefix on singletons 2015-07-24 14:59:59 +05:30
Sumit Sahrawat
3a2228d2c4 Comment on console input issue
Explain reasons for widget's inability to use stdin.
2015-07-24 14:59:59 +05:30
Sumit Sahrawat
73446ed772 Disable stdin for widgets 2015-07-24 14:59:59 +05:30
Sumit Sahrawat
eaa17d9cf0 Fix examples: Suggestions by @gibiansky 2015-07-24 14:59:59 +05:30
Andrew Gibiansky
4afec8b0c3 Merge pull request #534 from GaloisInc/jhx-dynamic
Add withDynamic to IPython.Kernel.ZeroMQ
2015-07-22 23:43:55 -07:00
Joe Hendrix
19c664fa97
Fix thread exception that occurs in withEphemeralPorts. 2015-07-22 13:51:33 -07:00
Joe Hendrix
4292912153
Minimize interface to ephemeral ports. 2015-07-22 10:53:38 -07:00
Joe Hendrix
55552c8aaa
More channel creation code into separate function. 2015-07-21 23:52:50 -07:00
Joe Hendrix
5989188c6a
Rename withDynamic to withEphemeralPorts and cleanup 2015-07-21 23:33:02 -07:00
Andrew Gibiansky
ab3fea6da0 Merge pull request #529 from pavelkogan/stack
Add support for stack
2015-07-18 07:43:53 -07:00
Pavel Kogan
12d1e1dfed Document building with stack 2015-07-18 15:35:51 +01:00
Pavel Kogan
a8c7df2438 Prevent unnecessary rebuilding with stack 2015-07-18 15:27:26 +01:00
Andrew Gibiansky
8b58b36e0b Merge branch 'master' of github.com:gibiansky/IHaskell 2015-07-17 22:22:50 -07:00
Andrew Gibiansky
b19792bc15 Bump rlangqq version 2015-07-17 22:22:41 -07:00
Andrew Gibiansky
0a181a1776 Merge pull request #526 from sumitsahrawat/num-widgets
WIP: Rest of the widgets: Num + Box
2015-07-17 22:20:32 -07:00
Pavel Kogan
d5ecae8be8 Document running with stack 2015-07-17 20:51:55 +01:00
Pavel Kogan
3fef1497a0 Add stack.yaml 2015-07-17 20:51:55 +01:00
Joe Hendrix
54f6e8a3ad
Add withDynamic to IPython.Kernel.ZeroMQ 2015-07-17 12:49:18 -07:00
Andrew Gibiansky
1c2265b64b Merge pull request #527 from sumitsahrawat/try-jupyter
Add link to try.jupyter.org in the README
2015-07-16 16:20:05 -07:00
Sumit Sahrawat
36a30fdc10 Add examples 2015-07-17 01:29:33 +05:30
Sumit Sahrawat
33e8fa3b81 Add link to try.jupyter.org in the README 2015-07-17 01:04:55 +05:30
Sumit Sahrawat
6de64e1497 Add closeWidget for closing widgets 2015-07-16 00:07:19 +05:30
Sumit Sahrawat
44b39799cb Formatting + Remove examples (for now) 2015-07-15 01:56:38 +05:30
Sumit Sahrawat
b87b09274f Add rest of the box widgets
- All widgets complete 
- The tutorial will need to be updated.
2015-07-14 08:05:19 +05:30
Sumit Sahrawat
bcbeddc131 Add first box widget
- Also added on_display handler (still unused though).
- Add uuidToString for UUIDs.
-
2015-07-14 02:07:03 +05:30
Sumit Sahrawat
38049d975a Add example notebook showing all widgets 2015-07-13 14:23:35 +05:30
Sumit Sahrawat
5a451253c4 Minor additions to widget properties
- Add ChangeHandler to widgets that might want it.
- Refactor out trigger<event> functions.
2015-07-13 14:01:31 +05:30
Sumit Sahrawat
3466245bf8 More refactoring
- Add `properties` to view properties of widgets.
- Remove use of `Numeric.Natural`.
- Add verification mechanisms to `Attr`.
2015-07-13 06:28:30 +05:30
Sumit Sahrawat
26addb62a3 Drop -Widget suffix wherever possible 2015-07-12 21:49:01 +05:30
Sumit Sahrawat
4d55781be6 Add float widgets 2015-07-10 15:00:24 +05:30
Sumit Sahrawat
cc18aff5eb Add integer widgets 2015-07-10 04:04:13 +05:30
Andrew Gibiansky
a5e8d623a2 Merge pull request #524 from cruegge/master
Read binary files as ByteString
2015-07-08 11:34:07 -07:00
Andrew Gibiansky
e232aa0faa Merge pull request #519 from sumitsahrawat/refactor
Refactoring Widgets + Boolean Widgets
2015-07-08 11:29:44 -07:00
Sumit Sahrawat
ef846baa0b Install ihaskell-widgets separately for travis 2015-07-06 22:26:20 +05:30
Christoph Ruegge
69db704d47 Read binary files as ByteString 2015-07-06 18:31:02 +02:00
Sumit Sahrawat
492f33b69b Small changes to MsgSpec.md
- Formatting issues: Bad numbering.
- Clarify usage of custom messages.
2015-07-06 18:31:48 +05:30
Sumit Sahrawat
e1dafd0745 Fix formatting issues
- Make verify_formatting.py skip Types.hs and Common.hs
- Fix formatting issues in rest of the files
2015-07-06 18:17:33 +05:30
Sumit Sahrawat
112c046b5d Add selection widgets
- Selection Widgets
  - Dropdown
  - ToggleButtons
  - RadioButtons
  - Select
  - SelectMultiple
- Small fix to MsgSpec.md
2015-07-06 17:34:17 +05:30
Sumit Sahrawat
50d59210d8 Polish up the refactored code
- Rename IHaskell.Display.Widget.Types.Widget to IPythonWidget
- Add explanatory comments to the source files
- Add documentation for messaging protocol in MsgSpec.md
- Add README.md
- Remove unnecessary extensions and imports
2015-07-06 14:56:23 +05:30
Sumit Sahrawat
869973df43 Deal with small -fcontext-stack on ghc-7.8
Use default value from ghc-7.10, i.e 100.
2015-07-05 11:13:58 +05:30
Andrew Gibiansky
807f8c9709 Merge pull request #523 from gdetrez/make-example-compile
Make the example in ipython-kernel compile again
2015-07-04 10:00:51 -04:00
Grégoire Détrez
5b4ac62c9d Make the example in ipython-kernel compile again
Function objectInfo was renamed to inpectInfo
2015-07-04 13:18:05 +02:00
Sumit Sahrawat
4df9f1ec23 Minor changes -- Fix build issue
- Couldn't format as hindent errors out.
- Remove setField' from export list.
- Add version constraints in ihaskell-widget.cabal
2015-07-04 12:33:07 +05:30
Sumit Sahrawat
22abf97732 Add bool widgets 2015-07-04 11:13:16 +05:30
Sumit Sahrawat
26903b1e11 Switch to using Numeric.Natural 2015-07-03 22:40:59 +05:30
Sumit Sahrawat
05e33cbf1b Changing Int properties to PosInt 2015-07-03 15:09:33 +05:30
Sumit Sahrawat
4e6f20e231 Ultimate type-fu ~ A lot of vinyl
- Widgets work, although it requires some tweaking to their properties.
- Dropping dropdown for now. Will deal with selection widgets later.
- Default properties need to be improved.
2015-07-01 15:16:39 +05:30
Sumit Sahrawat
d798bc6918 More type-fu
- Remove IHaskell.Display.Widgets.Common
- Partially refactor Button implementation
- Stuck with ToJSON instance for Widget
2015-06-30 10:37:17 +05:30
Sumit Sahrawat
9471cf851c Basic type-fu 2015-06-28 07:42:29 +05:30
Andrew Gibiansky
0f08817cfa Merge pull request #518 from sumitsahrawat/widgets
Dropdown and Output Widgets
2015-06-27 09:56:24 -04:00
Sumit Sahrawat
f19c76ae2f Fix formatting issues 2015-06-27 03:24:05 +05:30
Sumit Sahrawat
0c6172d664 Finalize dropdown implementation
- Add explicit export list
- Rename to DropdownWidget
- Add selection handling
2015-06-27 03:19:13 +05:30
Sumit Sahrawat
82f0438cdd Finalize minimal dropdown implementation
- More features may be added
2015-06-27 03:19:13 +05:30
Sumit Sahrawat
87ed5699dc Add dropdown widget
- Add dropdown widget and some functions to manipulate it
- Requires the ability to update the internal stored widget without
  sending a message to the frontend.
2015-06-27 03:19:12 +05:30
Sumit Sahrawat
aed969c285 Finalize Output Widget
- Add support for `clear_output`
- Rename `setOutput` to `appendOutput`
2015-06-26 01:41:08 +05:30
Sumit Sahrawat
d7565d15c4 Add Output Widget
- Add Output Widget to ihaskell-widgets
- Add support for sending `display_data` messages as custom messages.
2015-06-26 00:49:59 +05:30
Andrew Gibiansky
eb6caf068b Merge pull request #508 from sumitsahrawat/widgets
Backbone widgets
2015-06-25 08:26:53 -04:00
Sumit Sahrawat
f8947bd0d8 Refactor out common parts to Common module
- Move update and modify to Common
- Move str :: String -> String to Common
- Rename ImageInt to PosInt
- Move PosInt to Common
- Correct some comments erroneously referring to Buttons
2015-06-25 08:59:56 +05:30
Sumit Sahrawat
3681308cce Merge pull request #6 from sumitsahrawat/image-widget
Add ImageWidget
2015-06-24 22:05:55 +05:30
Andrew Gibiansky
17d8064241 Merge pull request #517 from mgomezch/diagrams-binary-readfile
Use readFile from ByteString to read binary files
2015-06-24 09:24:30 -04:00
Andrew Gibiansky
cb55d6b16a Bumping versions for new release 2015-06-23 23:30:52 -04:00
Sumit Sahrawat
e68fbb8ec3 Reformat with hindent 2015-06-23 23:25:31 +05:30
Sumit Sahrawat
8f3f18c5e1 Add ImageWidget 2015-06-23 07:00:25 +05:30
Sumit Sahrawat
c86187c103 Refactor + Expand IHaskell.Eval.Widgets
- Send [method .= custom] messages via widgetSendCustom
- Send arbitrary JSON messages via widgetSendValue
- Refactor IHaskell.Eval.Widgets, tidy up handleMessage
2015-06-21 04:37:04 +05:30
Manuel Gomez
df38a542f9 Read binary GIF files as ByteStrings 2015-06-20 00:15:45 -04:30
Sumit Sahrawat
d631368343 Formatting + Remove cruft
- Reformat according to hindent
- Remove String.hs
2015-06-20 10:07:52 +05:30
Manuel Gomez
e7a27b42e9 Use readFile from ByteString to read binary files
Reading a file that might contain PNG data using `System.IO.readFile`
causes `hGetContents: invalid argument (invalid byte sequence)` due to
file contents not being valid text under the current system locale.
This fixes loading diagrams into Jupyter notebooks.
2015-06-19 17:42:48 -04:30
Sumit Sahrawat
876ddccc73 Implement on_submit handler for TextWidget
- All four string widgets complete.
- Switch to using 'Text' everywhere. How'd String crop up?
2015-06-19 08:39:02 +05:30
Sumit Sahrawat
45457f677a Working string widgets
- All four widgets work. TextWidget still missing `on_submit`.
- Still a lot of errors in the webconsole. Don't cause trouble though.
2015-06-19 06:11:13 +05:30
Sumit Sahrawat
4b5ccc89f0 Adding 3/4 string widget
- HTMLWidget and LatexWidget work fine.
- TextWidget still doesn't work.
- TextareaWidget not implemented yet.

* All widgets raise a lot of errors in the webconsole.
2015-06-18 20:56:08 +05:30
Sumit Sahrawat
2332a7903e Remove redundant work when handling widget updates
It is not required to re-update the widget inside the kernel state every
now and then, as it contains IORefs, which stay up-to-date.
2015-06-15 00:05:45 +05:30
Sumit Sahrawat
16a4fcad57 More minor fixes
- Make hlint happy.
- Reformat using hindent.
- Add explanatory comments in some places.
- Use Control.Monad.foldM for IHaskell.Eval.Widgets.widgetHandler
2015-06-12 23:49:22 +05:30
Sumit Sahrawat
6a1e912028 Minor changes
- Return of the newlines: Add all newlines once again
- Provide better comments
- Remove `sender`
- Consistently use set and get prefixed functions
2015-06-11 11:43:10 +05:30
Sumit Sahrawat
73bdfb0114 Reformat everything using hindent 2015-06-10 16:13:18 +05:30
Sumit Sahrawat
094150d4bf Make tests compile cleanly 2015-06-10 15:15:35 +05:30
Sumit Sahrawat
6bf253353f Prevent kernel crash due to click handlers
Catch SomeException in IHaskell.Eval.Evaluate.capturedIO
Click handlers can now use error and undefined.
All exceptions are caught, which might also cause problems.
2015-06-10 14:56:25 +05:30
Sumit Sahrawat
a8bba358f8 Finalize IHaskell.Display.Widgets.Button
* Add explicit export list
* Provide direct access to click handlers
* Rename getButtonText to getButtonLabel
2015-06-10 13:41:10 +05:30
Sumit Sahrawat
8c2b9a4e68 Send status updates for comm replies 2015-06-10 02:17:16 +05:30
Sumit Sahrawat
c76feb6fc5 Seamless outputs from buttons
It just works.
2015-06-10 01:55:27 +05:30
Sumit Sahrawat
e253c8481f Separate out publish to a module
Separate out publish to IHaskell.Publish
Replace publish with publishResult, which also requires more arguments.
2015-06-09 14:02:59 +05:30
Sumit Sahrawat
b1efbc1c39 Fix kernel death on opening notebooks with widgets
Previously, the kernel would die when opening a notebook with widgets
as there is no widget stored in the kernel when it starts.
2015-06-05 14:19:57 +05:30
Sumit Sahrawat
648007a4f3 Remove displayWidget
It wasn't even working. The displays were being generated due to the
sendWidgetView call from display for Button.
2015-06-05 14:05:58 +05:30
Sumit Sahrawat
de3d71e095 Reorder arguments
All functions now accept a Button as their first argument.
2015-06-05 13:38:05 +05:30
Sumit Sahrawat
ba05744db4 Seamless click handling
Evaluate accumulated widget messages in the Ghc Monad, after a comm_msg
recieved from the frontend is handled.
2015-06-05 12:24:17 +05:30
Sumit Sahrawat
37e4c2a634 Move some functions around
- Move dupHeader to IHaskell.Types
- Move handleMessage and widgetHandler to IHaskell.Eval.Widgets
- Make handleMessage and widgetHandler more flexible
2015-06-05 11:15:09 +05:30
Sumit Sahrawat
83919dc624 Let there be buttons
Buttons were seen in the notebook. It seems that an empty label was the
culprit, even though IPython somehow manages to accept empty strings.
2015-06-05 00:53:32 +05:30
Sumit Sahrawat
42907a5bb4 Conform to the messaging spec
Still no visible outputs.
2015-06-04 12:39:16 +05:30
Sumit Sahrawat
67406e3031 Add Typeable instance for WidgetMsg
Fix build issue with ghc <7.10
2015-06-03 08:53:53 +05:30
Sumit Sahrawat
9bd90e8e3a Fix IHaskell.Eval.Widgets not in scope 2015-06-02 14:30:23 +05:30
Sumit Sahrawat
48c3a6a545 Flesh out the button implementation 2015-06-02 13:05:46 +05:30
Sumit Sahrawat
d9a5d4b3b1 Minimal implementation of Buttons 2015-06-02 12:38:51 +05:30
Sumit Sahrawat
1ab66f3535 Basic framework for widgets 2015-06-02 12:38:51 +05:30
Andrew Gibiansky
388d819e16 Updating README with info about cabal exec for sandboxes 2015-05-31 17:04:58 +02:00
Andrew Gibiansky
a7f5e80d95 Merge pull request #507 from gibiansky/remove-dependencies
Remove dependencies
2015-05-29 16:38:18 +02:00
Andrew Gibiansky
397f5656d3 Remove MissingH from test suite 2015-05-29 15:42:02 +02:00
Andrew Gibiansky
0b6185ee8f Specify a type to deal with FTP 2015-05-29 13:55:30 +02:00
Andrew Gibiansky
7cb8a2cafc Fixing formatting 2015-05-29 13:20:45 +02:00
Andrew Gibiansky
e86272af10 Removing MissingH 2015-05-29 13:14:49 +02:00
Andrew Gibiansky
17582024bc Merge pull request #506 from gibiansky/limit-dependencies
Get rid of system-filepath
2015-05-29 12:27:33 +02:00
Andrew Gibiansky
0996bef82f Fix formatting 2015-05-29 11:21:49 +02:00
Andrew Gibiansky
33dcfcc973 Make test suite not use system-filepath 2015-05-27 23:45:28 +02:00
Andrew Gibiansky
36de4c2b99 Get rid of system-filepath 2015-05-27 20:45:49 +02:00
Andrew Gibiansky
e75e44636f Remove debugging code (the Typeable printer) 2015-05-27 20:44:54 +02:00
Andrew Gibiansky
1e18f31ba8 Fixing formatting issues, again 2015-05-27 19:20:22 +02:00
Andrew Gibiansky
6df3ee72bb Fixing kernel death, closes #505 2015-05-27 18:31:37 +02:00
Andrew Gibiansky
f42f8645b8 More debug info 2015-05-27 10:59:19 +02:00
Andrew Gibiansky
fad19c4ea5 Merge pull request #503 from gibiansky/no-classy-prelude
No more classy prelude
2015-05-26 18:54:15 +02:00
Andrew Gibiansky
4a4f7c8c0e Merge pull request #504 from sumitsahrawat/no-classy-prelude
Fix formatting in IHaskell/Eval/Evaluate.hs
2015-05-26 18:54:01 +02:00
Sumit Sahrawat
4b501a2dae Fix formatting in IHaskell/Eval/Evaluate.hs 2015-05-26 21:26:40 +05:30
Andrew Gibiansky
b7b0613249 Fix liftio in completion.hs 2015-05-26 10:59:36 +02:00
Andrew Gibiansky
543005c9a2 More ghc 76 fixes 2015-05-26 10:35:21 +02:00
Andrew Gibiansky
2412d4b127 Fix build: dont import liftIO in ghc 7.6 from ghcmonad 2015-05-26 10:17:42 +02:00
Andrew Gibiansky
154054456d Removing some FTP exports from IH prelude 2015-05-25 23:44:22 +02:00
Andrew Gibiansky
6d3f28ae42 Reformatting code to match hindent 2015-05-25 23:42:34 +02:00
Andrew Gibiansky
831bf1bedb Fix some build issues 2015-05-25 22:50:23 +02:00
Andrew Gibiansky
9be2157984 Removing classy-prelude from ihaskell-displays 2015-05-25 21:46:16 +02:00
Andrew Gibiansky
ea3839933c Removing ihaskell widgets 2015-05-25 21:46:03 +02:00
Andrew Gibiansky
c3de04a329 Some formatting of IHaskellPrelude 2015-05-25 21:35:38 +02:00
Andrew Gibiansky
c0d0496eb2 Allow IHaskellPrelude.hs to not be formatting checked 2015-05-25 21:34:03 +02:00
Andrew Gibiansky
3ba9a71c3f Fixing IHaskellPrelude for GHC 7.6 2015-05-25 21:25:34 +02:00
Andrew Gibiansky
f7296881b7 Removing classy-prelude from dependencies, creating small custom prelude 2015-05-25 20:49:40 +02:00
Andrew Gibiansky
5f271a9bce Merge pull request #498 from sumitsahrawat/fp-conversions
Fix typo in src/Main.hs
2015-05-23 00:17:53 +02:00
Sumit Sahrawat
026f632ca8 Fix typo in src/Main.hs
fpFromText -> fpFromString
2015-05-23 03:46:01 +05:30
Andrew Gibiansky
f002190f67 Merge pull request #497 from sumitsahrawat/fp-conversions
Temporary fix for classy-prelude
2015-05-23 00:09:43 +02:00
Sumit Sahrawat
c304a1944e Temporary fix for classy-prelude
Add the conversions betwen (String/Text) and FilePath once again.
Will have to be removed again if classy-prelude is removed.
2015-05-23 03:06:38 +05:30
Andrew Gibiansky
49a77f6343 Fixing merge conflict 2015-05-22 11:49:21 +02:00
Andrew Gibiansky
fdd6f51394 Updating versions and pushing to hackage 2015-05-22 11:48:00 +02:00
Andrew Gibiansky
7de78dc556 Merge pull request #492 from sumitsahrawat/chunked-data
Add dependency on chunked-data explicitly
2015-05-21 00:38:16 +02:00
Sumit Sahrawat
0034f84d42 Remove whitespace in IHaskell.Eval.Inspect 2015-05-18 05:41:38 +05:30
Sumit Sahrawat
2553fbda4c Add dependency on chunked-data explicitly
Constrain the version of chunked-data used by classy-prelude, thus
fixing issue #491 and fixing the build.
2015-05-18 04:50:16 +05:30
274 changed files with 35074 additions and 102388 deletions

30
.dockerignore Normal file
View File

@ -0,0 +1,30 @@
*.hi
Untitled*.ipynb
main/Main
.stack-work
notebooks/Test.ipynb
notebooks/Untitled.ipynb
notebooks/Untitled0.ipynb
*.dyn_o
*.dyn_hi
*.o
dist
IHaskell/GHC
env
.shelly
.ihaskell_capture
.ipynb_checkpoints
Hspec
todo
profile/profile.tar
.cabal-sandbox
cabal.sandbox.config
.tmp1
.tmp2
.tmp3
.stack-work
src/Hspec
notebooks
dist
**/dist
**/.stack-work

3
.ghci
View File

@ -1,5 +1,4 @@
:set -package ghc
:set -package ghc-paths
:set -optP-include -optPdist/build/autogen/cabal_macros.h
:set -i. -isrc -idist/build/autogen
:set -XDoAndIfThenElse -XOverloadedStrings
:set prompt "\ESC[34mλ> \ESC[m"

74
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,74 @@
name: Docker
on:
push:
branches:
paths:
- '.dockerignore'
- '.github/workflows/docker.yml'
- 'Dockerfile'
- 'LICENSE'
- 'ghc-parser/**'
- 'html/**'
- 'ihaskell-display/**'
- 'ihaskell.cabal'
- 'ipython-kernel/**'
- 'jupyterlab-ihaskell/**'
- 'main/**'
- 'src/**'
- 'stack.yaml'
pull_request:
paths:
- '.dockerignore'
- '.github/workflows/docker.yml'
- 'Dockerfile'
- 'LICENSE'
- 'ghc-parser/**'
- 'html/**'
- 'ihaskell-display/**'
- 'ihaskell.cabal'
- 'ipython-kernel/**'
- 'jupyterlab-ihaskell/**'
- 'main/**'
- 'src/**'
- 'stack.yaml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork)
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v3
- uses: haskell-actions/setup@v2
name: Setup Haskell Stack
with:
enable-stack: true
stack-version: "latest"
- name: Check Dockerfile GHC version matches
run: |
set -e
STACK_GHC_VERSION=$(stack exec -- ghc --version | awk '{ print $NF }')
DOCKER_GHC_VERSION=$(sed -n 's/ARG GHC_VERSION=\(.*\)/\1/p' Dockerfile)
if [[ ${STACK_GHC_VERSION} != ${DOCKER_GHC_VERSION} ]]; then
echo 'GHC_VERSION in Dockerfile does not match stack resolver'
echo "GHC_VERSION should be ${STACK_GHC_VERSION}"
exit 1
fi
- uses: elgohr/Publish-Docker-Github-Action@v5
with:
name: gibiansky/ihaskell
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
snapshot: true
no_push: ${{ github.event_name == 'pull_request' }}

74
.github/workflows/nix.yml vendored Normal file
View File

@ -0,0 +1,74 @@
name: Nix
on:
schedule:
- cron: '0 2 * * *'
push:
paths-ignore:
- 'demo/**'
- 'docker/**'
- 'Dockerfile'
- '.dockerignore'
- '.ghci'
- '.gitignore'
- 'images/**'
- 'notebooks/**'
- 'stack/**'
- 'README.md'
- '*.yaml'
pull_request:
paths-ignore:
- 'demo/**'
- 'docker/**'
- 'Dockerfile'
- '.dockerignore'
- '.ghci'
- '.gitignore'
- 'images/**'
- 'notebooks/**'
- 'stack/**'
- 'README.md'
- '*.yaml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
env:
- ihaskell-env-ghc96
- ihaskell-env-ghc98
- ihaskell-env-ghc910
- ihaskell-env-display-ghc96
- ihaskell-env-display-ghc98
# - ihaskell-env-display-ghc910
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
with:
install_url: https://releases.nixos.org/nix/nix-2.22.1/install
- uses: cachix/cachix-action@v14
with:
name: ihaskell
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Build environment ${{matrix.env}}
run: |
nix build .#${{matrix.env}}
- name: Check acceptance test for ${{matrix.env}}
# Don't bother running it with the display envs since we already run it
# with the basic envs, and it doesn't test any display stuff.
if: ${{ !(contains(matrix.env, fromJSON('"display"'))) }}
run: |
nix build .#checks.x86_64-linux.${{matrix.env}} -L

108
.github/workflows/stack-nix.yml vendored Normal file
View File

@ -0,0 +1,108 @@
name: Stack (--nix)
on:
push:
paths-ignore:
- 'demo/**'
- 'docker/**'
- 'Dockerfile'
- '.dockerignore'
- '.ghci'
- '.gitignore'
- 'images/**'
- 'nix/**'
- 'notebooks/**'
- 'flake.nix'
- 'flake.lock'
- 'README.md'
- 'README.md'
- 'hie.yaml'
pull_request:
paths-ignore:
- 'demo/**'
- 'docker/**'
- 'Dockerfile'
- '.dockerignore'
- '.ghci'
- '.gitignore'
- 'images/**'
- 'nix/**'
- 'notebooks/**'
- 'flake.nix'
- 'flake.lock'
- 'README.md'
- 'README.md'
- 'hie.yaml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
linux:
if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
stack-yaml:
# - 'stack/stack-8.2.yaml'
# - 'stack/stack-8.4.yaml'
# - 'stack/stack-8.6.yaml'
# - 'stack/stack-8.8.yaml'
- 'stack/stack-8.10.yaml'
- 'stack/stack-9.0.yaml'
- 'stack/stack-9.2.yaml'
- 'stack/stack-9.4.yaml'
- 'stack/stack-9.6.yaml'
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
- uses: haskell-actions/setup@v2
name: Setup Haskell Stack
with:
enable-stack: true
stack-version: "latest"
- uses: actions/cache@v3
name: Cache Haskell dependencies
with:
path: |
~/.stack/stack.sqlite3
~/.stack/snapshots
key: ${{ matrix.stack-yaml }}-nix-${{ hashFiles(format('./{0}', matrix.stack-yaml)) }}
restore-keys: |
${{ matrix.stack-yaml }}-nix-${{ hashFiles(format('./{0}', matrix.stack-yaml)) }}
${{ matrix.stack-yaml }}-nix-
- name: Build
run: |
export "NIX_PATH=nixpkgs=$(nix run .#print-nixpkgs-master)"
stack build --nix --stack-yaml ${{matrix.stack-yaml}}
- name: Test
run: |
export "NIX_PATH=nixpkgs=$(nix run .#print-nixpkgs-master)"
stack test --nix --stack-yaml ${{matrix.stack-yaml}}
- name: Run integration test
run: |
set -e
export "NIX_PATH=nixpkgs=$(nix run .#print-nixpkgs-master)"
nix build .#jupyterlab
export PATH="$(pwd)/result/bin:$(pwd)/.local/bin:$PATH"
stack install --nix --stack-yaml ${{matrix.stack-yaml}}
ihaskell install --stack --stack-flag="--nix" --stack-flag="--stack-yaml=$(realpath ${{matrix.stack-yaml}})"
# Ensure that IHaskell notebook remains unchanged.
# Run the notebook to regenerate the outputs, then compare the new notebook to the old one.
test/acceptance.nbconvert.sh jupyter nbconvert

110
.github/workflows/stack.yml vendored Normal file
View File

@ -0,0 +1,110 @@
name: Stack
on:
push:
paths-ignore:
- 'demo/**'
- 'docker/**'
- 'Dockerfile'
- '.dockerignore'
- '.ghci'
- '.gitignore'
- 'images/**'
- 'nix/**'
- 'notebooks/**'
- 'flake.nix'
- 'flake.lock'
- 'README.md'
- 'hie.yaml'
pull_request:
paths-ignore:
- 'demo/**'
- 'docker/**'
- 'Dockerfile'
- '.dockerignore'
- '.ghci'
- '.gitignore'
- 'images/**'
- 'nix/**'
- 'notebooks/**'
- 'flake.nix'
- 'flake.lock'
- 'README.md'
- 'hie.yaml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
linux:
if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork)
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
stack-yaml:
- 'stack/stack-8.4.yaml'
- 'stack/stack-8.6.yaml'
- 'stack/stack-8.8.yaml'
- 'stack/stack-8.10.yaml'
- 'stack/stack-9.0.yaml'
- 'stack/stack-9.2.yaml'
- 'stack/stack-9.4.yaml'
- 'stack/stack-9.6.yaml'
- 'stack.yaml'
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v22
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
- uses: haskell-actions/setup@v2
name: Setup Haskell Stack
with:
enable-stack: true
stack-version: "latest"
- uses: actions/cache@v3
name: Cache Haskell dependencies
with:
path: |
~/.stack/stack.sqlite3
~/.stack/snapshots
key: ${{ matrix.stack-yaml }}-${{ hashFiles(format('./{0}', matrix.stack-yaml)) }}
restore-keys: |
${{ matrix.stack-yaml }}-${{ hashFiles(format('./{0}', matrix.stack-yaml)) }}
${{ matrix.stack-yaml }}-
- name: Install system dependencies
run: |
sudo apt update
sudo apt install libmagic-dev libgmp-dev libblas-dev liblapack-dev libcairo2-dev libpango1.0-dev libzmq3-dev jq
- name: Test ipython-kernel
run: |
stack build ipython-kernel --flag ipython-kernel:examples --stack-yaml ${{matrix.stack-yaml}}
- name: Build
run: |
export "NIX_PATH=nixpkgs=$(nix run .#print-nixpkgs-master)"
stack build ihaskell --stack-yaml ${{matrix.stack-yaml}}
- name: Test
run: |
stack test --stack-yaml ${{matrix.stack-yaml}}
- name: Run integration test
run: |
nix build .#jupyterlab
export PATH="$(pwd)/result/bin:$(pwd)/.local/bin:$PATH"
stack install --stack-yaml ${{matrix.stack-yaml}}
ihaskell install --stack --stack-flag="--stack-yaml=$(realpath ${{matrix.stack-yaml}})"
# Ensure that IHaskell notebook remains unchanged.
# Run the notebook to regenerate the outputs, then compare the new notebook to the old one.
test/acceptance.nbconvert.sh jupyter nbconvert

23
.github/workflows/update-flake-lock.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: Update flake.lock
on:
workflow_dispatch:
schedule:
- cron: '1 1 * * 0'
jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v13
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@v23
with:
pr-title: "Update `flake.lock`"
pr-labels: |
dependencies
automated
token: ${{ secrets.GH_TOKEN_FLAKE_LOCK_UPDATE }}

10
.gitignore vendored
View File

@ -1,4 +1,7 @@
*.hi
Untitled*.ipynb
main/Main
.stack-work
notebooks/Test.ipynb
notebooks/Untitled.ipynb
notebooks/Untitled0.ipynb
@ -19,3 +22,10 @@ cabal.sandbox.config
.tmp1
.tmp2
.tmp3
stack.yaml.lock
result
default.nix
dist-*/
cabal.project.local
cabal.config
tsconfig.tsbuildinfo

View File

@ -1,72 +0,0 @@
# Taken from multi-ghc-travis
# NB: don't set `language: haskell` here
# The following enables several GHC versions to be tested; often it's enough to test only against the last release in a major GHC version. Feel free to omit lines listings versions you don't need/want testing for.
env:
- CABALVER=1.18 GHCVER=7.6.3
- CABALVER=1.18 GHCVER=7.8.4 # see note about Alex/Happy for GHC >= 7.8
- CABALVER=1.22 GHCVER=7.10.1
# - CABALVER=head GHCVER=head # see section about GHC HEAD snapshots
# Note: the distinction between `before_install` and `install` is not important.
before_install:
- travis_retry sudo add-apt-repository -y ppa:hvr/ghc
- travis_retry sudo apt-get update
- travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER # see note about happy/alex
- travis_retry sudo apt-get install libmagic-dev
- travis_retry sudo apt-get install python3
- travis_retry git clone http://www.github.com/zeromq/zeromq4-x.git libzmq
- export OLDPWD=$(pwd) && cd libzmq && travis_retry ./autogen.sh && travis_retry ./configure && make && travis_retry sudo make install && travis_retry sudo ldconfig && cd $OLDPWD
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH
- |
if [ $GHCVER = "head" ] || [ ${GHCVER%.*} = "7.8" ] || [ ${GHCVER%.*} = "7.10" ]; then
travis_retry sudo apt-get install happy-1.19.4 alex-3.1.3
travis_retry sudo apt-get install libblas-dev liblapack-dev
export PATH=/opt/alex/3.1.3/bin:/opt/happy/1.19.4/bin:$PATH
else
travis_retry sudo apt-get install happy alex
fi
install:
- cabal --version
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- travis_retry cabal update
- travis_retry cabal install cpphs
- travis_retry cabal install gtk2hs-buildtools
- |
if [ ${GHCVER%.*} = "7.8" ]; then
travis_retry cabal install arithmoi==0.4.* -fllvm
travis_retry git clone http://www.github.com/gibiansky/hindent
cd hindent && travis_retry cabal install && cd ..
fi
# Here starts the actual work to be performed for the package under test; any command which exits with a non-zero exit code causes the build to fail.
script:
- |
if [ ${GHCVER%.*} = "7.8" ] || [ ${GHCVER%.*} = "7.10" ]; then
travis_retry ./build.sh all
else
travis_retry ./build.sh ihaskell
fi
# Build and run the test suite
- travis_retry cabal install --only-dependencies --enable-tests
- travis_retry cabal configure --enable-tests
- |
if [ ${GHCVER%.*} = "7.8" ]; then
travis_retry cabal test --show-details=always
fi
- |
if [ ${GHCVER%.*} = "7.8" ]; then
./verify_formatting.py
fi
- cabal sdist
# The following scriptlet checks that the resulting source distribution can be built & installed
- export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
cd dist/;
if [ -f "$SRC_TGZ" ]; then
cabal install --force-reinstalls "$SRC_TGZ";
else
echo "expected '$SRC_TGZ' not found";
exit 1;
fi

96
Dockerfile Normal file
View File

@ -0,0 +1,96 @@
# should match the GHC version of the stack.yaml resolver
# checked in CI
ARG GHC_VERSION=9.6.4
FROM haskell:${GHC_VERSION} AS ihaskell_base
# Install Ubuntu packages needed for IHaskell runtime
RUN apt-get update && \
apt-get install -y libzmq5 \
&& \
rm -rf /var/lib/apt/lists/*
FROM ihaskell_base AS builder
# Install Ubuntu packages needed for IHaskell build
RUN apt-get update && \
apt-get install -y libzmq3-dev pkg-config \
&& \
rm -rf /var/lib/apt/lists/*
WORKDIR /build
# Build snapshot
COPY stack.yaml stack.yaml
COPY ihaskell.cabal ihaskell.cabal
COPY ipython-kernel ipython-kernel
COPY ghc-parser ghc-parser
COPY ihaskell-display ihaskell-display
RUN stack setup
RUN stack build ihaskell --only-snapshot
# Build IHaskell itself.
# Don't just `COPY .` so that changes in e.g. README.md don't trigger rebuild.
COPY src src
COPY html html
COPY main main
COPY jupyterlab-ihaskell jupyterlab-ihaskell
COPY LICENSE LICENSE
RUN stack install ihaskell --local-bin-path ./bin/
# Save resolver used to build IHaskell
RUN sed -n 's/resolver: \(.*\)#.*/\1/p' stack.yaml | tee resolver.txt
# Save third-party data files
RUN mkdir /data && \
snapshot_install_root=$(stack path --snapshot-install-root) && \
cp $(find ${snapshot_install_root} -name hlint.yaml) /data
FROM ihaskell_base AS ihaskell
# Install JupyterLab
RUN apt-get update && \
apt-get install -y python3-pip && \
rm -rf /var/lib/apt/lists/*
RUN pip3 install -U pip
RUN pip3 install -U jupyterlab notebook
# Create runtime user
ENV NB_USER jovyan
ENV NB_UID 1000
RUN adduser --disabled-password \
--gecos "Default user" \
--uid ${NB_UID} \
${NB_USER}
# Create directory for storing ihaskell files
ENV IHASKELL_DATA_DIR /usr/local/lib/ihaskell
RUN mkdir -p ${IHASKELL_DATA_DIR} && chown ${NB_UID} ${IHASKELL_DATA_DIR}
# Set up + set hlint data directory
ENV HLINT_DATA_DIR /usr/local/lib/hlint
COPY --from=builder --chown=${NB_UID} /data/hlint.yaml ${HLINT_DATA_DIR}/
ENV hlint_datadir ${HLINT_DATA_DIR}
# Set current user + directory
WORKDIR /home/${NB_USER}/src
RUN chown -R ${NB_UID} /home/${NB_USER}/src
USER ${NB_UID}
# Set up global project
COPY --from=builder --chown=${NB_UID} /build/resolver.txt /tmp/
RUN stack setup --resolver=$(cat /tmp/resolver.txt) --system-ghc
RUN stack config set system-ghc --global true
# Set up env file
RUN stack exec env --system-ghc > ${IHASKELL_DATA_DIR}/env
# Install + setup IHaskell
COPY --from=builder --chown=${NB_UID} /build/bin/ihaskell /usr/local/bin/
COPY --from=builder --chown=${NB_UID} /build/html ${IHASKELL_DATA_DIR}/html
COPY --from=builder --chown=${NB_UID} /build/jupyterlab-ihaskell ${IHASKELL_DATA_DIR}/jupyterlab-ihaskell
RUN export ihaskell_datadir=${IHASKELL_DATA_DIR} && \
ihaskell install --env-file ${IHASKELL_DATA_DIR}/env
RUN jupyter notebook --generate-config
CMD ["jupyter", "notebook", "--ip", "0.0.0.0"]

601
Hspec.hs
View File

@ -1,601 +0,0 @@
{-# LANGUAGE QuasiQuotes, OverloadedStrings, ExtendedDefaultRules, CPP #-}
-- Keep all the language pragmas here so it can be compiled separately.
module Main where
import Prelude
import GHC hiding (Qualified)
import GHC.Paths
import Data.IORef
import Control.Monad
import Control.Monad.IO.Class ( MonadIO, liftIO )
import Data.List
import System.Directory
import Shelly (Sh, shelly, cmd, (</>), toTextIgnore, cd, withTmpDir, mkdir_p,
touchfile)
import qualified Shelly
import Control.Applicative ((<$>))
import Filesystem.Path.CurrentOS (encodeString)
import System.SetEnv (setEnv)
import Data.String.Here
import Data.String.Utils (strip, replace)
import Data.Monoid
import IHaskell.Eval.Parser
import IHaskell.Types
import IHaskell.IPython
import IHaskell.Eval.Evaluate as Eval hiding (liftIO)
import qualified IHaskell.Eval.Evaluate as Eval (liftIO)
import IHaskell.Eval.Completion
import IHaskell.Eval.ParseShell
import Debug.Trace
import Test.Hspec
import Test.Hspec.HUnit
import Test.HUnit (assertBool, assertFailure)
traceShowId x = traceShow x x
doGhc = runGhc (Just libdir)
parses str = do
res <- doGhc $ parseString str
return $ map unloc res
like parser desired = parser >>= (`shouldBe` desired)
is string blockType = do
result <- doGhc $ parseString string
map unloc result `shouldBe` [blockType $ strip string]
eval string = do
outputAccum <- newIORef []
pagerAccum <- newIORef []
let publish evalResult = case evalResult of
IntermediateResult {} -> return ()
FinalResult outs page [] -> do
modifyIORef outputAccum (outs :)
modifyIORef pagerAccum (page :)
getTemporaryDirectory >>= setCurrentDirectory
let state = defaultKernelState { getLintStatus = LintOff }
interpret libdir False $ Eval.evaluate state string publish
out <- readIORef outputAccum
pagerOut <- readIORef pagerAccum
return (reverse out, unlines . map extractPlain . reverse $ pagerOut)
evaluationComparing comparison string = do
let indent (' ':x) = 1 + indent x
indent _ = 0
empty = null . strip
stringLines = filter (not . empty) $ lines string
minIndent = minimum (map indent stringLines)
newString = unlines $ map (drop minIndent) stringLines
eval newString >>= comparison
becomes string expected = evaluationComparing comparison string
where
comparison :: ([Display], String) -> IO ()
comparison (results, pageOut) = do
when (length results /= length expected) $
expectationFailure $ "Expected result to have " ++ show (length expected)
++ " results. Got " ++ show results
forM_ (zip results expected) $ \(ManyDisplay [Display result], expected) ->
case extractPlain result of
"" -> expectationFailure $ "No plain-text output in " ++ show result ++ "\nExpected: " ++ expected
str -> str `shouldBe` expected
pages string expected = evaluationComparing comparison string
where
comparison (results, pageOut) =
strip (stripHtml pageOut) `shouldBe` strip (unlines expected)
-- A very, very hacky method for removing HTML
stripHtml str = go str
where
go ('<':str) = case stripPrefix "script" str of
Nothing -> go' str
Just str -> dropScriptTag str
go (x:xs) = x : go xs
go [] = []
go' ('>':str) = go str
go' (x:xs) = go' xs
go' [] = error $ "Unending bracket html tag in string " ++ str
dropScriptTag str = case stripPrefix "</script>" str of
Just str -> go str
Nothing -> dropScriptTag $ tail str
readCompletePrompt :: String -> (String, Int)
-- | @readCompletePrompt "xs*ys"@ return @(xs, i)@ where i is the location of
-- @'*'@ in the input string.
readCompletePrompt string = case elemIndex '*' string of
Nothing -> error "Expected cursor written as '*'."
Just idx -> (replace "*" "" string, idx)
completes string expected = completionTarget newString cursorloc `shouldBe` expected
where (newString, cursorloc) = readCompletePrompt string
completionEvent :: String -> Interpreter (String, [String])
completionEvent string = complete newString cursorloc
where (newString, cursorloc) = case elemIndex '*' string of
Nothing -> error "Expected cursor written as '*'."
Just idx -> (replace "*" "" string, idx)
completionEventInDirectory :: String -> IO (String, [String])
completionEventInDirectory string
= withHsDirectory $ const $ completionEvent string
shouldHaveCompletionsInDirectory :: String -> [String] -> IO ()
shouldHaveCompletionsInDirectory string expected = do
(matched, completions) <- completionEventInDirectory string
let existsInCompletion = (`elem` completions)
unmatched = filter (not . existsInCompletion) expected
expected `shouldBeAmong` completions
completionHas string expected
= do (matched, completions) <- doGhc $ do initCompleter
completionEvent string
let existsInCompletion = (`elem` completions)
unmatched = filter (not . existsInCompletion) expected
expected `shouldBeAmong` completions
initCompleter :: Interpreter ()
initCompleter = do
flags <- getSessionDynFlags
setSessionDynFlags $ flags { hscTarget = HscInterpreted, ghcLink = LinkInMemory }
-- Import modules.
imports <- mapM parseImportDecl ["import Prelude",
"import qualified Control.Monad",
"import qualified Data.List as List",
"import IHaskell.Display",
"import Data.Maybe as Maybe"]
setContext $ map IIDecl imports
inDirectory :: [Shelly.FilePath] -- ^ directories relative to temporary directory
-> [Shelly.FilePath] -- ^ files relative to temporary directory
-> (Shelly.FilePath -> Interpreter a)
-> IO a
-- | Run an Interpreter action, but first make a temporary directory
-- with some files and folder and cd to it.
inDirectory dirs files action = shelly $ withTmpDir $ \dirPath ->
do cd dirPath
mapM_ mkdir_p dirs
mapM_ touchfile files
liftIO $ doGhc $ wrap (encodeString dirPath) (action dirPath)
where cdEvent path = liftIO $ setCurrentDirectory path --Eval.evaluate defaultKernelState (":! cd " ++ path) noPublish
wrap :: FilePath -> Interpreter a -> Interpreter a
wrap path action =
do initCompleter
pwd <- Eval.liftIO getCurrentDirectory
cdEvent path -- change to the temporary directory
out <- action -- run action
cdEvent pwd -- change back to the original directory
return out
withHsDirectory :: (Shelly.FilePath -> Interpreter a) -> IO a
withHsDirectory = inDirectory ["" </> "dir", "dir" </> "dir1"]
[""</> "file1.hs", "dir" </> "file2.hs",
"" </> "file1.lhs", "dir" </> "file2.lhs"]
main :: IO ()
main = hspec $ do
parserTests
evalTests
completionTests
completionTests = do
parseShellTests
describe "Completion" $ do
it "correctly gets the completion identifier without dots" $ do
"hello*" `completes` ["hello"]
"hello aa*bb goodbye" `completes` ["aa"]
"hello aabb* goodbye" `completes` ["aabb"]
"aacc* goodbye" `completes` ["aacc"]
"hello *aabb goodbye" `completes` []
"*aabb goodbye" `completes` []
it "correctly gets the completion identifier with dots" $ do
"hello test.aa*bb goodbye" `completes` ["test", "aa"]
"Test.*" `completes` ["Test", ""]
"Test.Thing*" `completes` ["Test", "Thing"]
"Test.Thing.*" `completes` ["Test", "Thing", ""]
"Test.Thing.*nope" `completes` ["Test", "Thing", ""]
it "correctly gets the completion type" $ do
completionType "import Data." 12 ["Data", ""] `shouldBe` ModuleName "Data" ""
completionType "import Prel" 11 ["Prel"] `shouldBe` ModuleName "" "Prel"
completionType "import D.B.M" 12 ["D", "B", "M"] `shouldBe` ModuleName "D.B" "M"
completionType " import A." 10 ["A", ""] `shouldBe` ModuleName "A" ""
completionType "import a.x" 10 ["a", "x"] `shouldBe` Identifier "x"
completionType "A.x" 3 ["A", "x"] `shouldBe` Qualified "A" "x"
completionType "a.x" 3 ["a", "x"] `shouldBe` Identifier "x"
completionType "pri" 3 ["pri"] `shouldBe` Identifier "pri"
completionType ":load A" 7 ["A"] `shouldBe` HsFilePath ":load A"
"A"
completionType ":! cd " 6 [""] `shouldBe` FilePath ":! cd " ""
it "properly completes identifiers" $ do
"pri*" `completionHas` ["print"]
"ma*" `completionHas` ["map"]
"hello ma*" `completionHas` ["map"]
"print $ catMa*" `completionHas` ["catMaybes"]
it "properly completes qualified identifiers" $ do
"Control.Monad.liftM*" `completionHas` [ "Control.Monad.liftM"
, "Control.Monad.liftM2"
, "Control.Monad.liftM5"]
"print $ List.intercal*" `completionHas` ["List.intercalate"]
"print $ Data.Maybe.cat*" `completionHas` ["Data.Maybe.catMaybes"]
"print $ Maybe.catM*" `completionHas` ["Maybe.catMaybes"]
it "properly completes imports" $ do
"import Data.*" `completionHas` ["Data.Maybe", "Data.List"]
"import Data.M*" `completionHas` ["Data.Maybe"]
"import Prel*" `completionHas` ["Prelude"]
it "properly completes haskell file paths on :load directive" $
let loading xs = ":load " ++ encodeString xs
paths = map encodeString
in do
loading ("dir" </> "file*") `shouldHaveCompletionsInDirectory` paths ["dir" </> "file2.hs",
"dir" </> "file2.lhs"]
loading ("" </> "file1*") `shouldHaveCompletionsInDirectory` paths ["" </> "file1.hs",
"" </> "file1.lhs"]
loading ("" </> "file1*") `shouldHaveCompletionsInDirectory` paths ["" </> "file1.hs",
"" </> "file1.lhs"]
loading ("" </> "./*") `shouldHaveCompletionsInDirectory` paths ["./" </> "dir/"
, "./" </> "file1.hs"
, "./" </> "file1.lhs"]
loading ("" </> "./*") `shouldHaveCompletionsInDirectory` paths ["./" </> "dir/"
, "./" </> "file1.hs"
, "./" </> "file1.lhs"]
it "provides path completions on empty shell cmds " $
":! cd *" `shouldHaveCompletionsInDirectory` map encodeString ["" </> "dir/"
, "" </> "file1.hs"
, "" </> "file1.lhs"]
let withHsHome action = withHsDirectory $ \dirPath-> do
home <- shelly $ Shelly.get_env_text "HOME"
setHomeEvent dirPath
result <- action
setHomeEvent $ Shelly.fromText home
return result
setHomeEvent path = liftIO $ setEnv "HOME" (encodeString path)
it "correctly interprets ~ as the environment HOME variable" $
let shouldHaveCompletions :: String -> [String] -> IO ()
shouldHaveCompletions string expected = do
(matched, completions) <- withHsHome $ completionEvent string
let existsInCompletion = (`elem` completions)
unmatched = filter (not . existsInCompletion) expected
expected `shouldBeAmong` completions
in do
":! cd ~/*" `shouldHaveCompletions` ["~/dir/"]
":! ~/*" `shouldHaveCompletions` ["~/dir/"]
":load ~/*" `shouldHaveCompletions` ["~/dir/"]
":l ~/*" `shouldHaveCompletions` ["~/dir/"]
let shouldHaveMatchingText :: String -> String -> IO ()
shouldHaveMatchingText string expected = do
matchText <- withHsHome $ fst <$> uncurry complete (readCompletePrompt string)
matchText `shouldBe` expected
setHomeEvent path = liftIO $ setEnv "HOME" (encodeString path)
it "generates the correct matchingText on `:! cd ~/*` " $
do ":! cd ~/*" `shouldHaveMatchingText` ("~/" :: String)
it "generates the correct matchingText on `:load ~/*` " $
do ":load ~/*" `shouldHaveMatchingText` ("~/" :: String)
it "generates the correct matchingText on `:l ~/*` " $
do ":l ~/*" `shouldHaveMatchingText` ("~/" :: String)
evalTests = do
describe "Code Evaluation" $ do
it "evaluates expressions" $ do
"3" `becomes` ["3"]
"3+5" `becomes` ["8"]
"print 3" `becomes` ["3"]
[hereLit|
let x = 11
z = 10 in
x+z
|] `becomes` ["21"]
it "evaluates flags" $ do
":set -package hello" `becomes` ["Warning: -package not supported yet"]
":set -XNoImplicitPrelude" `becomes` []
it "evaluates multiline expressions" $ do
[hereLit|
import Control.Monad
forM_ [1, 2, 3] $ \x ->
print x
|] `becomes` ["1\n2\n3"]
it "evaluates function declarations silently" $ do
[hereLit|
fun :: [Int] -> Int
fun [] = 3
fun (x:xs) = 10
fun [1, 2]
|] `becomes` ["10"]
it "evaluates data declarations" $ do
[hereLit|
data X = Y Int
| Z String
deriving (Show, Eq)
print [Y 3, Z "No"]
print (Y 3 == Z "No")
|] `becomes` ["[Y 3,Z \"No\"]", "False"]
it "evaluates do blocks in expressions" $ do
[hereLit|
show (show (do
Just 10
Nothing
Just 100))
|] `becomes` ["\"\\\"Nothing\\\"\""]
it "is silent for imports" $ do
"import Control.Monad" `becomes` []
"import qualified Control.Monad" `becomes` []
"import qualified Control.Monad as CM" `becomes` []
"import Control.Monad (when)" `becomes` []
it "evaluates directives" $ do
":typ 3" `becomes` ["3 :: forall a. Num a => a"]
":k Maybe" `becomes` ["Maybe :: * -> *"]
#if MIN_VERSION_ghc(7, 8, 0)
":in String" `pages` ["type String = [Char] \t-- Defined in \8216GHC.Base\8217"]
#else
":in String" `pages` ["type String = [Char] \t-- Defined in `GHC.Base'"]
#endif
parserTests = do
layoutChunkerTests
moduleNameTests
parseStringTests
layoutChunkerTests = describe "Layout Chunk" $ do
it "chunks 'a string'" $
map unloc (layoutChunks "a string") `shouldBe` ["a string"]
it "chunks 'a\\n string'" $
map unloc (layoutChunks "a\n string") `shouldBe` ["a\n string"]
it "chunks 'a\\n string\\nextra'" $
map unloc (layoutChunks "a\n string\nextra") `shouldBe` ["a\n string","extra"]
it "chunks strings with too many lines" $
map unloc (layoutChunks "a\n\nstring") `shouldBe` ["a","string"]
it "parses multiple exprs" $ do
let text = [hereLit|
first
second
third
fourth
|]
layoutChunks text `shouldBe`
[Located 2 "first",
Located 4 "second",
Located 5 "third",
Located 7 "fourth"]
moduleNameTests = describe "Get Module Name" $ do
it "parses simple module names" $
"module A where\nx = 3" `named` ["A"]
it "parses module names with dots" $
"module A.B where\nx = 3" `named` ["A", "B"]
it "parses module names with exports" $
"module A.B.C ( x ) where x = 3" `named` ["A", "B", "C"]
it "errors when given unnamed modules" $ do
doGhc (getModuleName "x = 3") `shouldThrow` anyException
where
named str result = do
res <- doGhc $ getModuleName str
res `shouldBe` result
parseStringTests = describe "Parser" $ do
it "parses empty strings" $
parses "" `like` []
it "parses simple imports" $
"import Data.Monoid" `is` Import
it "parses simple arithmetic" $
"3 + 5" `is` Expression
it "parses :type" $
parses ":type x\n:ty x" `like` [
Directive GetType "x",
Directive GetType "x"
]
it "parses :info" $
parses ":info x\n:in x" `like` [
Directive GetInfo "x",
Directive GetInfo "x"
]
it "parses :help and :?" $
parses ":? x\n:help x" `like` [
Directive GetHelp "x",
Directive GetHelp "x"
]
it "parses :set x" $
parses ":set x" `like` [
Directive SetDynFlag "x"
]
it "parses :extension x" $
parses ":ex x\n:extension x" `like` [
Directive SetExtension "x",
Directive SetExtension "x"
]
it "fails to parse :nope" $
parses ":nope goodbye" `like` [
ParseError (Loc 1 1) "Unknown directive: 'nope'."
]
it "parses number followed by let stmt" $
parses "3\nlet x = expr" `like` [
Expression "3",
Statement "let x = expr"
]
it "parses let x in y" $
"let x = 3 in x + 3" `is` Expression
it "parses a data declaration" $
"data X = Y Int" `is` Declaration
it "parses number followed by type directive" $
parses "3\n:t expr" `like` [
Expression "3",
Directive GetType "expr"
]
it "parses a <- statement" $
"y <- print 'no'" `is` Statement
it "parses a <- stmt followed by let stmt" $
parses "y <- do print 'no'\nlet x = expr" `like` [
Statement "y <- do print 'no'",
Statement "let x = expr"
]
it "parses <- followed by let followed by expr" $
parses "y <- do print 'no'\nlet x = expr\nexpression" `like` [
Statement "y <- do print 'no'",
Statement "let x = expr",
Expression "expression"
]
it "parses two print statements" $
parses "print yes\nprint no" `like` [
Expression "print yes",
Expression "print no"
]
it "parses a pattern-maching function declaration" $
"fun [] = 10" `is` Declaration
it "parses a function decl followed by an expression" $
parses "fun [] = 10\nprint 'h'" `like` [
Declaration "fun [] = 10",
Expression "print 'h'"
]
it "parses list pattern matching fun decl" $
"fun (x : xs) = 100" `is` Declaration
it "parses two pattern matches as the same declaration" $
"fun [] = 10\nfun (x : xs) = 100" `is` Declaration
it "parses a type signature followed by a declaration" $
"fun :: [a] -> Int\nfun [] = 10\nfun (x : xs) = 100" `is` Declaration
it "parases a simple module" $
"module A where x = 3" `is` Module
it "parses a module with an export" $
"module B (x) where x = 3" `is` Module
it "breaks when a let is incomplete" $
parses "let x = 3 in" `like` [
ParseError (Loc 1 13) "parse error (possibly incorrect indentation or mismatched brackets)"
]
it "breaks without data kinds" $
parses "data X = 3" `like` [
#if MIN_VERSION_ghc(7, 8, 0)
ParseError (Loc 1 10) "Illegal literal in type (use DataKinds to enable): 3"
#else
ParseError (Loc 1 10) "Illegal literal in type (use -XDataKinds to enable): 3"
#endif
]
it "parses statements after imports" $ do
parses "import X\nprint 3" `like` [
Import "import X",
Expression "print 3"
]
parses "import X\n\nprint 3" `like` [
Import "import X",
Expression "print 3"
]
it "ignores blank lines properly" $
[hereLit|
test arg = hello
where
x = y
z = w
|] `is` Declaration
it "doesn't break on long strings" $ do
let longString = concat $ replicate 20 "hello "
("img ! src \"" ++ longString ++ "\" ! width \"500\"") `is` Expression
it "parses do blocks in expression" $ do
[hereLit|
show (show (do
Just 10
Nothing
Just 100))
|] `is` Expression
it "correctly locates parsed items" $ do
let go = doGhc . parseString
go [hereLit|
first
second
|] >>= (`shouldBe` [Located 2 (Expression "first"),
Located 4 (Expression "second")])
parseShellTests =
describe "Parsing Shell Commands" $ do
test "A" ["A"]
test ":load A" [":load", "A"]
test ":!l ~/Downloads/MyFile\\ Has\\ Spaces.txt"
[":!l", "~/Downloads/MyFile\\ Has\\ Spaces.txt"]
test ":!l \"~/Downloads/MyFile Has Spaces.txt\" /Another/File\\ WithSpaces.doc"
[":!l", "~/Downloads/MyFile Has Spaces.txt", "/Another/File\\ WithSpaces.doc" ]
where
test string expected =
it ("parses " ++ string ++ " correctly") $
string `shouldParseTo` expected
shouldParseTo xs ys = fun ys (parseShell xs)
where fun ys (Right xs') = xs' `shouldBe` ys
fun ys (Left e) = assertFailure $ "parseShell returned error: \n" ++ show e
-- Useful HSpec expectations ----
---------------------------------
shouldBeAmong :: (Show a, Eq a) => [a] -> [a] -> Expectation
-- |
-- @sublist \`shouldbeAmong\` list@ sets the expectation that @sublist@ elements are
-- among those in @list@.
sublist `shouldBeAmong` list = assertBool errorMsg
$ and [x `elem` list | x <- sublist]
where
errorMsg = show list ++ " doesn't contain " ++ show sublist

380
README.md
View File

@ -1,219 +1,227 @@
### Status
[![Join the chat at https://gitter.im/gibiansky/IHaskell](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/gibiansky/IHaskell?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://travis-ci.org/gibiansky/IHaskell.svg?branch=master)](https://travis-ci.org/gibiansky/IHaskell)
![IHaskell](https://raw.github.com/gibiansky/IHaskell/master/html/logo-64x64.png)
![jupyter](https://i.imgur.com/S16l2Hw.png) ![IHaskell](https://i.imgur.com/qhXXFbA.png) [![Build Status](https://github.com/gibiansky/IHaskell/workflows/CI/badge.svg)](https://github.com/gibiansky/IHaskell/actions?query=workflow%3ACI) [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/gibiansky/IHaskell/mybinder)
# IHaskell
IHaskell is a kernel for the [Jupyter project](http://ipython.org), which allows you to use Haskell inside Jupyter frontends (including the console and notebook).
For a tour of some IHaskell features, check out the [demo Notebook](http://nbviewer.ipython.org/github/gibiansky/IHaskell/blob/master/notebooks/IHaskell.ipynb). More example notebooks are available on the [wiki](https://github.com/gibiansky/IHaskell/wiki).
> You can now try IHaskell directly in your browser at [CoCalc](https://cocalc.com) or [mybinder.org](https://mybinder.org/v2/gh/gibiansky/IHaskell/mybinder).
>
> Alternatively, watch a [talk and demo](http://begriffs.com/posts/2016-01-20-ihaskell-notebook.html) showing off IHaskell features.
IHaskell is a kernel for the [Jupyter project](https://jupyter.org), which allows you to use Haskell inside Jupyter frontends (including the console and notebook). It currently supports GHC 8.4 through 9.10.
For a tour of some IHaskell features, check out the [demo Notebook](http://nbviewer.org/github/gibiansky/IHaskell/blob/master/notebooks/IHaskell.ipynb). More example notebooks are available on the [wiki](https://github.com/gibiansky/IHaskell/wiki).
The [wiki](https://github.com/gibiansky/IHaskell/wiki) also has more extensive documentation of IHaskell features.
### Shell Usage
![IPython Console](https://raw.github.com/gibiansky/IHaskell/master/images/ihaskell-console.png)
### Interactive In-Browser Notebook
![IPython Notebook](https://raw.github.com/gibiansky/IHaskell/master/images/ihaskell-notebook.png)
### Interactive In-Browser Notebook
# Source Installation
# Installation
**Note:** IHaskell does not support Windows. To use on Windows, install
Virtualbox, install Ubuntu or another Linux distribution, and proceed with the
install instructions.
## Linux
**How to get help:** Feel free to open an issue [on Github](https://github.com/gibiansky/IHaskell/issues?direction=desc&sort=updated&state=open) or join the [Gitter channel](https://gitter.im/gibiansky/IHaskell?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge).
Some prerequisites; adapt to your distribution.
### Install Using Installation Scripts
#### Ubuntu:
If you are using a modern version of Ubuntu, clone the repository and then run the `ubuntu-install.sh` script:
```bash
git clone http://www.github.com/gibiansky/IHaskell
sudo apt-get install -y python3-pip git libtinfo-dev libzmq3-dev libcairo2-dev libpango1.0-dev libmagic-dev libblas-dev liblapack-dev
```
Install `stack`, clone this repository, install Python requirements, install
`ihaskell`, and install the Jupyter kernelspec with `ihaskell`.
These instructions assume you don't already have Stack or a Jupyter
installation, please skip the relevant steps if this is not the case.
```bash
curl -sSL https://get.haskellstack.org/ | sh
git clone https://github.com/gibiansky/IHaskell
cd IHaskell
./ubuntu-install.sh
pip3 install -r requirements.txt
stack install --fast
ihaskell install --stack
```
This script will ask you for `sudo` permissions in order to install IHaskell dependencies. The script is readable and easy to inspect if you wish to know what it does before giving it root permissions.
#### Mac OS X:
On Mac OS X, clone the repository and then run the `macos-install.sh` script:
Run Jupyter.
```bash
git clone http://www.github.com/gibiansky/IHaskell
stack exec jupyter -- notebook
```
## Mac
You need to have [Homebrew](https://brew.sh) installed.
If you do not have it yet run `/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` in your terminal.
You also need the Xcode command line tools.
You can install them by running `xcode-select --install` in the terminal and following the prompts.
These instructions assume you don't already have Stack or a Jupyter
installation, please skip the relevant steps if this is not the case.
```bash
brew install python3 zeromq libmagic cairo pkg-config haskell-stack pango
git clone https://github.com/gibiansky/IHaskell
cd IHaskell
./macos-install.sh
```
Note that you must have [Homebrew](http://brew.sh/) installed for this script to work.
### Installing Manually
#### Install IPython
Install IPython 3.0 or above:
```bash
pip install ipython[all]
```
This may require root permissions on some systems, in which case put a `sudo` before that command before running it.
Once this is done, running `ipython --version` should print out `3.0` or above.
Note that IHaskell *requires* 3.0 or above; IHaskell *will not work* with IPython 2 or earlier.
#### Install Haskell
Install GHC and Cabal. You must have appropriate versions of both:
```bash
ghc --numeric-version # Should be 7.6.* or 7.8.*
cabal --version # Should be 1.18.* or newer
```
These may be installed in a number of ways, including the [Haskell Platform](http://www.haskell.org/platform/), as a [standalone Mac app](https://github.com/ghcformacosx/ghc-dot-app), via Homebrew with `brew install ghc cabal-install`, and so on.
#### Install ZeroMQ
Install ZeroMQ, a library IHaskell uses for asynchronous communication.
- **Mac OS X**: With [Homebrew](http://brew.sh/) installed, run `brew install zeromq`. (If using 32-bit Haskell Platform, you *may* need to use `brew install zeromq --universal`. YMMV.)
- **Ubuntu**: Run `sudo apt-get install libzmq3-dev`.
- **Other**: You can install ZeroMQ from source or use another package manager:
```bash
# Compiling from source:
git clone git@github.com:zeromq/zeromq4-x.git libzmq
cd libzmq
./autogen.sh && ./configure && make
sudo make install
sudo ldconfig
```
If your own platform has a package and I haven't included instructions for it, feel free to send me an email or a PR on this README.
#### Install Haskell Tools
First, make sure that executables installed by `cabal` are on your shell `PATH`:
```bash
# If you have a ~/.cabal/bin folder:
export PATH=~/.cabal/bin:$PATH
# If you have a ~/Library/Haskell/bin folder on OS X:
export PATH=~/Library/Haskell/bin:$PATH
pip3 install -r requirements.txt
stack install --fast
ihaskell install --stack
```
Then, install the `happy` parser generator tool and `cpphs` preprocessor:
```bash
cabal install happy cpphs
```
If you have Homebrew installed to a location that `stack` does not expect (e.g. `/opt/homebrew`), you'd need to specify `--extra-include-dirs ${HOMEBREW_PREFIX}/include --extra-lib-dirs ${HOMEBREW_PREFIX}/lib` to the `stack` command.
#### Build IHaskell
Install IHaskell! You may install it from Hackage via `cabal install`:
```bash
cabal install ihaskell --reorder-goals
```
As IHaskell updates frequently, you may also want to clone the repository and install from there:
```bash
git clone http://www.github.com/gibiansky/IHaskell
cd IHaskell
./build.sh ihaskell # Build and install IHaskell
```
The build script, `build.sh`, is a script for building IHaskell and dependencies. It has the following modes:
- `ihaskell`: Build and install `ihaskell` and the two dependencies from this repository, `ipython-kernel` and `ghc-parser`.
- `quick`: Just install `ihaskell`, do not bother recompiling and reinstalling its dependencies (`ipython-kernel` and `ghc-parser`).
- `display`: Install `ihaskell` and all the support libraries in `ihaskell-display/`.
- `all`: Install everything, including `ihaskell`, the dependencies, and all the support libraries in `ihaskell-display/`.
It is run via `./build.sh all` or equivalent.
IHaskell may also be built in a sandbox, via something like:
```bash
cd IHaskell
cabal sandbox init
cabal sandbox add-source ihaskell-display/* ghc-parser ipython-kernel
cabal install . ihaskell-display/*
```
You may also need to use `--extra-lib-dirs` and `--extra-include-dirs`, if
`cabal` cannot find relevant libraries. For example:
```bash
cabal install . ihaskell-display/* --extra-lib-dirs=`brew --prefix libmagic`/lib --extra-include-dirs=`brew --prefix libmagic`/include
```
#### Run IHaskell
Run IHaskell:
- `ihaskell install` to install the IHaskell kernel into Jupyter.
- `ipython notebook` for the browser-based interactive notebook.
- `ipython console --kernel haskell` for a REPL.
#### (Optional) Install Support Libraries
IHaskell comes with many support libraries, such as `ihaskell-diagrams`, `ihaskell-parsec`, and so on, which add rich and interactive displays for common libraries.
You can install these with `cabal install`. To install all of them, clone this repository and run `./build.sh all` to install IHaskell and all of its display support libraries.
You may run into some issues with installing the `cairo` dependency on Macs. To fix this, you can install `gcc` via `brew` and then use it to install `cairo`:
```bash
brew install gcc49
cabal install cairo --with-gcc=gcc-4.9
```
### Gotchas
These are simply some problems have had and solutions to them.
**Problem**: You have Anaconda or Enthought or some other python distribution, and for unknown reasons IHaskell just hangs after the first input.
**Solution**: Anaconda and Enthought cause problems. Get rid of them.
**Problem**: You get an error when `pyzmq` is compiling that looks somewhat like
```
cc1: error: -Werror=unused-command-line-argument-hard-error-in-future: No option -Wunused-command-line-argument-hard-error-in-future
```
**Solution:** Rerun the command after changing the `ARCHFLAGS` variable via
```bash
export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
```
**Problem**: You'd like to have IHaskell run some code every time it starts up, like `~/.ghci` or `~/.bashrc`.
**Solution**: IHaskell uses `~/.ihaskell/rc.hs` as its default configuration file; if you put code into that file (it may or may not exist), it will be loaded on startup. You can substitute a different file by passing the `--conf=myfile.hs` argument to `ihaskell install` to reconfigure the kernel.
**Note**: You may have some trouble due to browser caches with the notebook interface if you also use IPython's notebook interface or have used it in the past. If something doesn't work or IPython says it can't connect to the notebook server, make sure to clear the browser cache in whatever browser you're using, or try another browser.
# Contributing
IHaskell is a young project, and I'd love your help getting it to a stable and useful point. There's a lot to do, and if you'd like to contribute, feel free to get in touch with me via my email at andrew period gibiansky at gmail - although browsing the code should be enough to get you started, I'm more than happy to answer any questions myself.
**For package maintainers:** IHaskell has an ability to display data types it knows about with a rich format based on images or HTML. In order to do so, an external package `ihaskell-something` must be created and installed. Writing these packages is simply - they must just contain instance of the `IHaskellDisplay` typeclass, defined in `IHaskell.Display`, and for a package `ihaskell-something` should have a single module `IHaskell.Display.Something`. If you have a package with interesting data types that would benefit from a rich display format, please get in contact with me (andrew dot gibiansky at gmail) to write one of these packages! A sample package is available [here](https://github.com/gibiansky/IHaskell/tree/master/ihaskell-display/ihaskell-basic).
# Developer Notes
Before diving in, you should read the [brief description of IPython kernel architectures](http://andrew.gibiansky.com/blog/ipython/ipython-kernels/)
and read the [complete messaging protocol specification](http://ipython.org/ipython-doc/dev/development/messaging.html).
Please format your code with `hindent --style gibiansky` before submitting it; Travis CI automatically checks for code style before merging!
**Loading IHaskell into GHCi for testing:**
Use one of the methods below to access IHaskell files in GHCi. Once inside GHCi, you can load an IHaskell file; for example, `:load IHaskell/Config.hs`.
**Using cabal repl**
If you have the latest version of cabal (>v1.18.0), the simplest thing to do is
Run Jupyter.
```bash
cd <path-to-IHaskell>
cabal repl
stack exec jupyter -- notebook
```
This will hide all packages not listed in `IHaskell.cabal`
_Tested on macOS Sierra (10.12.6)_
**Using GHCi directly**
## Windows
If you don't want to use `cabal repl`, you can just call ghci which can read the `.ghci` file included in the repository for the options.
IHaskell does not support Windows, however it can be used on Windows 10 via
Windows Subsystem for Linux (WSL). If WSL is not installed, follow the
[Installation Guide for Windows 10](https://docs.microsoft.com/en-us/windows/wsl/install-win10).
The following assumes that Ubuntu is picked as the Linux distribution.
In the Ubuntu app, follow the steps above for Linux.
Jupyter Notebook is now ready to use. In the Ubuntu app, launch a Notebook
Server, without opening the notebook in a browser:
```bash
cd <path-to-IHaskell>
chmod 600 .ghci # trust the .ghci file
ghci
jupyter notebook --no-browser
```
Then in the ghci session you can type things like:
Returning to Windows 10, open a browser and copy and paste the URL output in the
step above (the token will differ).
```bash
Or copy and paste one of these URLs:
http://localhost:8888/?token=9ca8a725ddb1fdded176d9e0e675ba557ebb5fbef6c65fdf
```
_Tested on Windows 10 (build 18362.175) with Ubuntu 18.04 on WSL_
Alternatively, install Virtualbox, install Ubuntu or another Linux distribution,
and proceed with the install instructions.
## Docker
To quickly run a Jupyter notebook with the IHaskell kernel, try the `Dockerfile`
in the top directory.
```bash
docker build -t ihaskell:latest .
docker run --rm -p 8888:8888 ihaskell:latest
```
Or use the continuously updated Docker image
[on Docker Hub](https://hub.docker.com/r/gibiansky/ihaskell).
```sh
docker run --rm -p 8888:8888 gibiansky/ihaskell
```
In order to mount your own local files into the Docker container
use following command:
```sh
docker run --rm -p 8888:8888 -v "$PWD":/home/jovyan/src gibiansky/ihaskell
```
Be aware that the directory you're mounting must contain
a `stack.yaml` file.
A simple version would be:
```yaml
resolver: lts-16.23
packages: []
```
It's recommended to use the same LTS version as the IHaskell image is using itself
(as can be seen in [its stack.yaml](./stack.yaml)).
This guarantees that stack doesn't have to first perform
a lengthy installation of GHC before running your notebook.
You can also use the following script to run IHaskell in Docker: https://gist.github.com/brandonchinn178/928d6137bfd17961b9584a8f96c18827
## Nix
If you have the `nix` package manager installed, you can create an IHaskell
notebook environment with one command. For example:
```bash
$ nix-build -I nixpkgs=https://github.com/NixOS/nixpkgs/tarball/nixos-23.05 release.nix --argstr compiler ghc928 --arg packages "haskellPackages: [ haskellPackages.lens ]"
<result path>
$ <result path>/bin/jupyter notebook
```
It might take a while the first time, but subsequent builds will be much
faster. You can use the
[https://ihaskell.cachix.org](https://app.cachix.org/cache/ihaskell) cache for
prebuilt artifacts.
The IHaskell display modules are not loaded by default and have to be specified as additional packages:
```bash
$ nix-build -I nixpkgs=https://github.com/NixOS/nixpkgs/tarball/nixos-23.05 release.nix --argstr compiler ghc928 --arg packages "haskellPackages: [ haskellPackages.ihaskell-blaze haskellPackages.ihaskell-charts ]"
```
For more examples of using IHaskell with Nix, see https://github.com/vaibhavsagar/notebooks.
# Developing
IHaskell is regularly updated to work with the latest version of GHC. To read how this is done, and how the development environment is set up, please see [this blog post](https://vaibhavsagar.com/blog/2021/05/02/updating-ihaskell-newer-ghc).
## Nix flake
There is also a Nix flake that provides a developer environment. For details on Nix flakes, please see the documentation at https://wiki.nixos.org/wiki/Flakes.
After this, IHaskell can be compiled as follows:
```bash
nix develop # This opens a new shell with all dependencies installed
cabal update # Make sure Cabal's package index is up-to-date
cabal build # Builds IHaskell
```
Note that this shell also provides `haskell-language-server`, which can be used in your editor if it supports it. Opening your editor from within the `nix develop` shell should allow it to see `haskell-language-server`.
# Troubleshooting
## Where are my packages? (IHaskell + Stack)
Stack manages separate environments for every package. By default your notebooks
will only have access to a few packages that happen to be required for
IHaskell. To make packages available add them to the stack.yaml in the IHaskell
directory and run `stack install --fast`.
Packages should be added to the `packages:` section and can take the following
form
([reproduced here from the stack documentation](https://github.com/commercialhaskell/stack/blob/master/doc/yaml_configuration.md#packages)). If
you've already installed a package by `stack install` you can simply list its
name even if it's local.
```
:set -package setenv
:load src/Hspec.hs
hspec parserTests
:browse IHaskell.Types
- package-name
- location: .
- location: dir1/dir2
- location: https://example.com/foo/bar/baz-0.0.2.tar.gz
- location: http://github.com/yesodweb/wai/archive/2f8a8e1b771829f4a8a77c0111352ce45a14c30f.zip
- location:
git: git@github.com:commercialhaskell/stack.git
commit: 6a86ee32e5b869a877151f74064572225e1a0398
- location:
hg: https://example.com/hg/repo
commit: da39a3ee5e6b4b0d3255bfef95601890afd80709
```
## The kernel keeps dying (IHaskell + Stack)
The default instructions globally install IHaskell with support for only one
version of GHC. If you've e.g. installed an `lts-10` IHaskell and are using it
with an `lts-9` project the mismatch between GHC 8.2 and GHC 8.0 will cause
this error. Stack also has the notion of a 'global project' located at
`~/.stack/global-project/` and the `stack.yaml` for that project should be on
the same LTS as the version of IHaskell installed to avoid this issue.

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

View File

@ -1,78 +0,0 @@
#!/bin/sh
set -e
print_help () {
echo "Run build.sh from inside the ihaskell directory to install packages in this repository:"
echo " ./build.sh ihaskell # Install ihaskell and its dependencies"
echo " ./build.sh quick # Install ihaskell, but not its dependencies"
echo " ./build.sh all # Install ihaskell, dependencies, and all display packages"
echo " ./build.sh display # Install ihaskell and display libraries"
echo
echo "If this is your first time installing ihaskell, run './build.sh ihaskell'."
}
# Verify that we're in the ihaskell directory.
if [ ! -e ihaskell.cabal ]; then
print_help;
exit 1
fi
if [ $# -lt 1 ]; then
print_help;
exit 1
fi
if [ ! $1 = "all" ] && [ ! $1 = "ihaskell" ] && [ ! $1 = "display" ] && [ ! $1 = "quick" ]; then
print_help;
exit 1;
fi
# What to install.
INSTALLS=""
# Remove my kernelspec
rm -rf ~/.ipython/kernels/haskell
# Compile dependencies.
if [ $# -gt 0 ]; then
if [ $1 = "all" ] || [ $1 = "ihaskell" ]; then
INSTALLS="$INSTALLS ghc-parser ipython-kernel"
fi
fi
# Always make ihaskell itself
INSTALLS="$INSTALLS ."
# Install ihaskell-display packages.
if [ $# -gt 0 ]; then
if [ $1 = "display" ] || [ $1 = "all" ]; then
# Install all the display libraries
cd ihaskell-display
for dir in `ls`
do
INSTALLS="$INSTALLS ihaskell-display/$dir"
done
cd ..
fi
fi
# Clean all required directories, just in case.
TOP=`pwd`
for pkg in $INSTALLS
do
cd ./$pkg
cabal clean
cd $TOP
done
# Stick a "./" before everything.
INSTALL_DIRS=`echo $INSTALLS | tr ' ' '\n' | sed 's#^#./#' | tr ' ' '\n'`
echo CMD: cabal install --constraint "arithmoi -llvm" -j $INSTALL_DIRS --force-reinstalls --max-backjumps=-1 --reorder-goals
cabal install --constraint "arithmoi -llvm" -j $INSTALL_DIRS --force-reinstalls --max-backjumps=-1 --reorder-goals
if hash ihaskell 2>/dev/null; then
ihaskell install 2>/dev/null || echo "The command \"ihaskell install\" failed. Please check your 'ipython --version'. 3.0 or up is required but it is $(ipython --version)!"
else
echo "Reminder: run 'ihaskell install' to install the IHaskell kernel to Jupyter."
fi

20
cabal.project Normal file
View File

@ -0,0 +1,20 @@
packages: .
./ipython-kernel
./ghc-parser
./ihaskell-display/ihaskell-aeson
./ihaskell-display/ihaskell-blaze
./ihaskell-display/ihaskell-charts
./ihaskell-display/ihaskell-diagrams
./ihaskell-display/ihaskell-gnuplot
./ihaskell-display/ihaskell-graphviz
./ihaskell-display/ihaskell-hatex
./ihaskell-display/ihaskell-juicypixels
./ihaskell-display/ihaskell-magic
./ihaskell-display/ihaskell-plot
./ihaskell-display/ihaskell-static-canvas
./ihaskell-display/ihaskell-widgets
source-repository-package
type: git
location: https://github.com/jeffreyrosenbluth/static-canvas.git
tag: 1aad0f192828ded72dced14e42ac4e6baa6dab6f

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

149
flake.lock generated Normal file
View File

@ -0,0 +1,149 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"hls": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": [
"flake-utils"
],
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1744298016,
"narHash": "sha256-8zoVia97o0Fo1ADis9FLXdvkSbRN69o5fPgemqlfKdQ=",
"owner": "haskell",
"repo": "haskell-language-server",
"rev": "c5c3ca4a992cc79e742bbfe9ee013467732d3aa4",
"type": "github"
},
"original": {
"owner": "haskell",
"repo": "haskell-language-server",
"type": "github"
}
},
"nix-filter": {
"locked": {
"lastModified": 1731533336,
"narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "f7653272fd234696ae94229839a99b73c9ab7de0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nix-filter",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1739019272,
"narHash": "sha256-7Fu7oazPoYCbDzb9k8D/DdbKrC3aU1zlnc39Y8jy/s8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fa35a3c8e17a3de613240fea68f876e5b4896aec",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs24_11": {
"locked": {
"lastModified": 1744492897,
"narHash": "sha256-qqKO4FOo/vPmNIaRPcLqwfudUlQ29iNdI1IbCZfjmxs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "86484f6076aac9141df2bfcddbf7dcfce5e0c6bb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgsMaster": {
"locked": {
"lastModified": 1744514369,
"narHash": "sha256-N9uWy2Ti5H5gYDoAPEcJ0i4dAbdQD9auJ2YjskbMqOc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ae29fc75d2d3ee07f88ce1a252d76964eb1efb24",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"hls": "hls",
"nix-filter": "nix-filter",
"nixpkgs24_11": "nixpkgs24_11",
"nixpkgsMaster": "nixpkgsMaster"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

109
flake.nix Normal file
View File

@ -0,0 +1,109 @@
{
description = "A Haskell kernel for IPython.";
inputs.nixpkgs24_11.url = "github:NixOS/nixpkgs/release-24.11";
inputs.nixpkgsMaster.url = "github:NixOS/nixpkgs/master";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.hls = {
url = "github:haskell/haskell-language-server";
inputs.flake-utils.follows = "flake-utils";
};
inputs.nix-filter.url = "github:numtide/nix-filter";
nixConfig = {
extra-substituters = [ "https://ihaskell.cachix.org" ];
extra-trusted-public-keys = [ "ihaskell.cachix.org-1:WoIvex/Ft/++sjYW3ntqPUL3jDGXIKDpX60pC8d5VLM="];
};
outputs = { self, nixpkgs24_11, nixpkgsMaster, flake-utils, hls, nix-filter, ... }:
flake-utils.lib.eachDefaultSystem (system: let
baseOverlay = _self: _super: { inherit nix-filter; };
pkgsMaster = import nixpkgsMaster { inherit system; overlays = [baseOverlay]; };
jupyterlab = pkgsMaster.python3.withPackages (ps: [ ps.jupyterlab ps.notebook ]);
# Map from GHC version to release function
versions = let
mkVersion = pkgsSrc: compiler: overlays: extraArgs: {
name = compiler;
value = (import pkgsSrc { inherit system; overlays = [baseOverlay] ++ overlays; }).callPackage ./nix/release.nix ({
inherit compiler;
} // extraArgs);
};
in
pkgsMaster.lib.listToAttrs [
(mkVersion nixpkgs24_11 "ghc96" [(import ./nix/overlay-9.6.nix)] {})
(mkVersion nixpkgs24_11 "ghc98" [(import ./nix/overlay-9.8.nix)] {})
(mkVersion nixpkgsMaster "ghc910" [(import ./nix/overlay-9.10.nix)] {})
];
# Helper function for building environments with a given set of packages
mkEnvs = prefix: packages: pkgsMaster.lib.mapAttrs' (version: releaseFn: {
name = prefix + version;
value = (releaseFn {
# Note: this can be changed to other Jupyter systems like jupyter-console
extraEnvironmentBinaries = [ jupyterlab ];
systemPackages = p: with p; [
gnuplot # for the ihaskell-gnuplot runtime
];
inherit packages;
});
}) versions;
# Basic envs with Jupyterlab and IHaskell
envs = mkEnvs "ihaskell-env-" (_: []);
# Envs with Jupyterlab, IHaskell, and all display packages
displayEnvs = mkEnvs "ihaskell-env-display-" (p: with p; map (n: builtins.getAttr n p) (import ./nix/displays.nix));
# Executables only, pulled from passthru on the envs
exes = pkgsMaster.lib.mapAttrs' (envName: env: {
name = builtins.replaceStrings ["-env"] [""] envName;
value = env.ihaskellExe;
}) envs;
devShells = pkgsMaster.lib.mapAttrs' (version: releaseFn: {
name = "ihaskell-dev-" + version;
value = pkgsMaster.callPackage ./nix/mkDevShell.nix {
inherit hls system version;
haskellPackages = (releaseFn {}).haskellPackages;
ihaskellOverlay = (releaseFn {}).ihaskellOverlay;
};
}) versions;
in {
packages = envs // displayEnvs // exes // devShells // rec {
# For easily testing that everything builds
allEnvs = pkgsMaster.linkFarm "ihaskell-envs" envs;
allDisplayEnvs = pkgsMaster.linkFarm "ihaskell-display-envs" displayEnvs;
allExes = pkgsMaster.linkFarm "ihaskell-exes" exes;
allDevShells = pkgsMaster.linkFarm "ihaskell-dev-shells" devShells;
# To use in CI
inherit jupyterlab;
print-nixpkgs-master = pkgsMaster.writeShellScriptBin "print-nixpkgs-master.sh" "echo ${pkgsMaster.path}";
};
# Run the acceptance tests on each env
checks = pkgsMaster.lib.mapAttrs (envName: env:
pkgsMaster.stdenv.mkDerivation {
name = envName + "-check";
src = pkgsMaster.callPackage ./nix/ihaskell-src.nix {};
nativeBuildInputs = with pkgsMaster; [jq bash];
doCheck = true;
checkPhase = ''
mkdir -p home
export HOME=$(pwd)/home
bash ./test/acceptance.nbconvert.sh ${env}/bin/jupyter nbconvert
'';
installPhase = ''
touch $out
'';
}
) envs;
defaultPackage = self.packages.${system}.ihaskell-env-ghc96;
devShell = self.packages.${system}.ihaskell-dev-ghc96;
});
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,3 @@
import Distribution.Simple
import System.Cmd
import Distribution.Simple
main = defaultMainWithHooks simpleUserHooks{
preConf = \args confFlags -> do
system "./build-parser.sh"
preConf simpleUserHooks args confFlags
}
main = defaultMain

View File

@ -1,22 +0,0 @@
#!/bin/bash -e
# Called from Setup.hs.
function make_parser {
SRCDIR=$1
SRCNAME=$2
# Preprocess the GHC parser we're using to CPP subs.
cpphs --linepragma --text ${SRCNAME}.y.pp -OParser.y
# Compile the parser and remove intermediate file.
happy Parser.y
rm Parser.y
# Move output Haskell to source directory.
mkdir -p $SRCDIR/Language/Haskell/GHC
mv Parser.hs $SRCDIR/Language/Haskell/GHC/HappyParser.hs
}
make_parser src-7.6 HaskellParser76
make_parser src-7.8.2 HaskellParser782
make_parser src-7.8.3 HaskellParser783

View File

@ -1,4 +1,6 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE TypeApplications #-}
module Language.Haskell.GHC.Parser (
-- Parser handling
runParser,
@ -17,24 +19,65 @@ module Language.Haskell.GHC.Parser (
parserTypeSignature,
parserModule,
parserExpression,
parsePragmasIntoDynFlags,
-- Haskell string preprocessing.
removeComments,
layoutChunks,
) where
import Data.List (intercalate, findIndex)
import Data.List (intercalate, findIndex, isInfixOf)
import Data.Char (isAlphaNum)
#if MIN_VERSION_ghc(9,8,0)
import GHC.Driver.Config.Parser (initParserOpts)
import GHC.Parser.Errors.Types (PsMessage(..))
import GHC.Types.Error (defaultDiagnosticOpts, getMessages, MsgEnvelope(..))
import GHC.Utils.Error (diagnosticMessage, formatBulleted)
import GHC.Utils.Outputable (defaultSDocContext, renderWithContext)
#elif MIN_VERSION_ghc(9,6,0)
import GHC.Driver.Config.Parser (initParserOpts)
import GHC.Parser.Errors.Types (PsMessage(..))
import GHC.Types.Error (getMessages, MsgEnvelope(..))
import GHC.Utils.Error (diagnosticMessage, defaultDiagnosticOpts, formatBulleted)
import GHC.Utils.Outputable (defaultSDocContext, renderWithContext)
#elif MIN_VERSION_ghc(9,4,0)
import GHC.Driver.Config.Parser (initParserOpts)
import GHC.Types.Error (diagnosticMessage, getMessages, MsgEnvelope(..))
import GHC.Utils.Error (formatBulleted)
import GHC.Utils.Outputable (defaultSDocContext)
#elif MIN_VERSION_ghc(9,2,0)
import GHC.Driver.Config (initParserOpts)
import GHC.Parser.Errors.Ppr (pprError)
#endif
#if MIN_VERSION_ghc(9,0,0)
import GHC.Data.Bag
import GHC.Driver.Session (parseDynamicFilePragma)
import GHC.Data.FastString
import GHC.Parser.Header (getOptions)
import GHC.Parser.Lexer hiding (buffer)
import GHC.Data.OrdList
import GHC.Utils.Panic (handleGhcException)
import qualified GHC.Types.SrcLoc as SrcLoc
import GHC.Data.StringBuffer hiding (len)
#else
import Bag
import ErrUtils hiding (ErrMsg)
import DynFlags (parseDynamicFilePragma)
import FastString
import GHC hiding (Located)
import Lexer
import HeaderInfo (getOptions)
import Lexer hiding (buffer)
import OrdList
import Outputable hiding ((<>))
import SrcLoc hiding (Located)
import StringBuffer
import Panic (handleGhcException)
import qualified SrcLoc as SrcLoc
import StringBuffer hiding (len)
#endif
#if MIN_VERSION_ghc(8,10,0)
#else
import ErrUtils hiding (ErrMsg)
#endif
import GHC hiding (Located, Parsed, parser)
import qualified Language.Haskell.GHC.HappyParser as Parse
-- | A line number in an input string.
@ -68,12 +111,29 @@ data Located a = Located {
data Parser a = Parser (P a)
-- Our parsers.
parserStatement = Parser Parse.fullStatement
parserImport = Parser Parse.fullImport
parserDeclaration = Parser Parse.fullDeclaration
parserExpression = Parser Parse.fullExpression
parserTypeSignature = Parser Parse.fullTypeSignature
parserModule = Parser Parse.fullModule
parserStatement :: Parser (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
parserStatement = Parser Parse.fullStatement
parserImport :: Parser (LImportDecl GhcPs)
parserImport = Parser Parse.fullImport
parserDeclaration :: Parser (OrdList (LHsDecl GhcPs))
parserDeclaration = Parser Parse.fullDeclaration
parserExpression :: Parser (LHsExpr GhcPs)
parserExpression = Parser Parse.fullExpression
parserTypeSignature :: Parser (SrcLoc.Located (OrdList (LHsDecl GhcPs)))
parserTypeSignature = Parser Parse.fullTypeSignature
#if MIN_VERSION_ghc(9,6,0)
parserModule :: Parser (SrcLoc.Located (HsModule GhcPs))
#elif MIN_VERSION_ghc(9,0,0)
parserModule :: Parser (SrcLoc.Located HsModule)
#else
parserModule :: Parser (SrcLoc.Located (HsModule GhcPs))
#endif
parserModule = Parser Parse.fullModule
-- | Run a GHC parser on a string. Return success or failure with
-- associated information for both.
@ -81,47 +141,94 @@ runParser :: DynFlags -> Parser a -> String -> ParseOutput a
runParser flags (Parser parser) str =
-- Create an initial parser state.
let filename = "<interactive>"
location = mkRealSrcLoc (mkFastString filename) 1 1
location = SrcLoc.mkRealSrcLoc (mkFastString filename) 1 1
buffer = stringToStringBuffer str
#if MIN_VERSION_ghc(9,2,0)
parseState = initParserState (initParserOpts flags) buffer location in
#else
parseState = mkPState flags buffer location in
#endif
-- Convert a GHC parser output into our own.
toParseOut $ unP parser parseState
toParseOut (unP parser parseState)
where
toParseOut :: ParseResult a -> ParseOutput a
toParseOut (PFailed span@(RealSrcSpan realSpan) err) =
let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags span err
line = srcLocLine $ realSrcSpanStart realSpan
col = srcLocCol $ realSrcSpanStart realSpan
in Failure errMsg $ Loc line col
#if MIN_VERSION_ghc(9,4,0)
toParseOut (PFailed pstate) =
let realSpan = SrcLoc.psRealSpan $ last_loc pstate
errMsg = printErrorBag (getMessages $ errors pstate)
ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan
col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan
in Failure errMsg $ Loc ln col
#elif MIN_VERSION_ghc(9,2,0)
toParseOut (PFailed pstate) =
let realSpan = SrcLoc.psRealSpan $ last_loc pstate
errMsg = printErrorBag (errors pstate)
ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan
col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan
in Failure errMsg $ Loc ln col
#elif MIN_VERSION_ghc(9,0,0)
toParseOut (PFailed pstate) =
let realSpan = SrcLoc.psRealSpan $ last_loc pstate
errMsg = printErrorBag $ snd $ (messages pstate) flags
ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan
col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan
in Failure errMsg $ Loc ln col
#elif MIN_VERSION_ghc(8,10,0)
toParseOut (PFailed pstate) =
let realSpan = last_loc pstate
errMsg = printErrorBag $ snd $ (messages pstate) flags
ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan
col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan
in Failure errMsg $ Loc ln col
#else
toParseOut (PFailed _ spn@(RealSrcSpan realSpan) err) =
let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err
ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan
col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan
in Failure errMsg $ Loc ln col
#endif
toParseOut (PFailed span err) =
let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags span err
#if MIN_VERSION_ghc(8,10,0)
#else
toParseOut (PFailed _ spn err) =
let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err
in Failure errMsg $ Loc 0 0
#endif
toParseOut (POk parseState result) =
let parseEnd = realSrcSpanStart $ last_loc parseState
endLine = srcLocLine parseEnd
endCol = srcLocCol parseEnd
(before, after) = splitAtLoc endLine endCol str
in Parsed result
toParseOut (POk _parseState result) =
Parsed result
-- Convert the bag of errors into an error string.
#if MIN_VERSION_ghc(9,8,0)
printErrorBag bag = joinLines . map (renderWithContext defaultSDocContext . formatBulleted . diagnosticMessage (defaultDiagnosticOpts @PsMessage) . errMsgDiagnostic) $ bagToList bag
#elif MIN_VERSION_ghc(9,6,0)
printErrorBag bag = joinLines . map (renderWithContext defaultSDocContext . formatBulleted defaultSDocContext . diagnosticMessage (defaultDiagnosticOpts @PsMessage) . errMsgDiagnostic) $ bagToList bag
#elif MIN_VERSION_ghc(9,4,0)
printErrorBag bag = joinLines . map (show . formatBulleted defaultSDocContext . diagnosticMessage . errMsgDiagnostic) $ bagToList bag
#elif MIN_VERSION_ghc(9,2,0)
printErrorBag bag = joinLines . map (show . pprError) $ bagToList bag
#else
printErrorBag bag = joinLines . map show $ bagToList bag
#endif
-- | Split a string at a given line and column. The column is included in
-- the second part of the split.
splitAtLoc :: LineNumber -> ColumnNumber -> String -> (String, String)
splitAtLoc line col string =
if line > length (lines string)
then (string, "")
else (before, after)
-- Taken from http://blog.shaynefletcher.org/2019/06/have-ghc-parsing-respect-dynamic-pragmas.html
parsePragmasIntoDynFlags :: DynFlags -> FilePath -> String -> IO (Maybe DynFlags)
parsePragmasIntoDynFlags flags filepath str =
catchErrors $ do
#if MIN_VERSION_ghc(9,4,0)
let opts = snd $ getOptions (initParserOpts flags) (stringToStringBuffer str) filepath
#else
let opts = getOptions flags (stringToStringBuffer str) filepath
#endif
(flags', _, _) <- parseDynamicFilePragma flags opts
return $ Just flags'
where
(beforeLines, afterLines) = splitAt line $ lines string
theLine = last beforeLines
(beforeChars, afterChars) = splitAt (col - 1) theLine
before = joinLines (init beforeLines) ++ '\n' : beforeChars
after = joinLines $ afterChars : afterLines
catchErrors :: IO (Maybe DynFlags) -> IO (Maybe DynFlags)
catchErrors act =
handleGhcException reportErr (handleSourceError reportErr act)
reportErr e = do
putStrLn $ "error : " ++ show e
return Nothing
-- Not the same as 'unlines', due to trailing \n
joinLines :: [String] -> String
@ -131,11 +238,13 @@ joinLines = intercalate "\n"
-- A chunk is a line and all lines immediately following that are indented
-- beyond the indentation of the first line. This parses Haskell layout
-- rules properly, and allows using multiline expressions via indentation.
--
-- Quasiquotes are allowed via a post-processing step.
layoutChunks :: String -> [Located String]
layoutChunks = go 1
layoutChunks = joinQuasiquotes . go 1
where
go :: LineNumber -> String -> [Located String]
go line = filter (not . null . unloc) . map (fmap strip) . layoutLines line . lines
go ln = filter (not . null . unloc) . map (fmap strip) . layoutLines ln . lines
-- drop spaces on left and right
strip = dropRight . dropLeft
@ -149,13 +258,13 @@ layoutChunks = go 1
layoutLines _ [] = []
-- Use the indent of the first line to find the end of the first block.
layoutLines lineIdx all@(firstLine:rest) =
layoutLines lineIdx xs@(firstLine:rest) =
let firstIndent = indentLevel firstLine
blockEnded line = indentLevel line <= firstIndent in
blockEnded ln = indentLevel ln <= firstIndent in
case findIndex blockEnded rest of
-- If the first block doesn't end, return the whole string, since
-- that just means the block takes up the entire string.
Nothing -> [Located lineIdx $ intercalate "\n" all]
Nothing -> [Located lineIdx $ intercalate "\n" xs]
-- We found the end of the block. Split this bit out and recurse.
Just idx ->
@ -174,6 +283,7 @@ layoutChunks = go 1
indentLevel _ = 0
-- | Drop comments from Haskell source.
-- Simply gets rid of them, does not replace them in any way.
removeComments :: String -> String
@ -196,6 +306,7 @@ removeComments = removeOneLineComments . removeMultilineComments 0 0
where
dropLine = removeOneLineComments . dropWhile (/= '\n')
removeMultilineComments :: Int -> Int -> String -> String
removeMultilineComments nesting pragmaNesting str =
case str of
-- Don't remove comments after cmd directives
@ -236,7 +347,44 @@ removeComments = removeOneLineComments . removeMultilineComments 0 0
-- Take a part of a string that ends in an unescaped quote.
takeString str = case str of
escaped@('\\':'"':rest) -> escaped
'"':rest -> "\""
escaped@('\\':'"':_) -> escaped
'"':_ -> "\""
x:xs -> x:takeString xs
[] -> []
-- | Post processing step to combine quasiquoted blocks into single blocks.
-- This is necessary because quasiquoted blocks don't follow normal indentation rules.
joinQuasiquotes :: [Located String] -> [Located String]
joinQuasiquotes = reverse . joinQuasiquotes' . reverse
where
-- This operates by finding |] and then joining blocks until a line
-- that has some corresponding [...|. This is still a hack, but close to
-- good enough.
joinQuasiquotes' [] = []
joinQuasiquotes' (block:blocks) =
if "|]" `isInfixOf` unloc block
then
let (pieces, rest) = break (hasQuasiquoteStart . unloc) blocks
in case rest of
[] -> block : joinQuasiquotes' blocks
startBlock:blocks' ->
concatBlocks (block : pieces ++ [startBlock]) : joinQuasiquotes blocks'
else block : joinQuasiquotes' blocks
-- Combine a lit of reversed blocks into a single, non-reversed block.
concatBlocks :: [Located String] -> Located String
concatBlocks blocks = Located (line $ last blocks) $ joinLines $ map unloc $ reverse blocks
-- Does this string have a [...| in it?
hasQuasiquoteStart :: String -> Bool
hasQuasiquoteStart str =
case break (== '[') str of
(_, "") -> False
(_, _:rest) ->
case break (== '|') rest of
(_, "") -> False
(chars, _) -> all isIdentChar chars
isIdentChar :: Char -> Bool
isIdentChar c = isAlphaNum c || c == '_' || c == '\''

View File

@ -2,46 +2,43 @@
-- documentation, see http://haskell.org/cabal/users-guide/
name: ghc-parser
version: 0.1.6.0
version: 0.2.7.0
synopsis: Haskell source parser from GHC.
-- description:
homepage: https://github.com/gibiansky/IHaskell
homepage: https://github.com/IHaskell/IHaskell
license: MIT
license-file: LICENSE
author: Andrew Gibiansky
maintainer: andrew.gibiansky@gmail.com
-- copyright:
category: Language
build-type: Custom
build-type: Simple
-- extra-source-files:
cabal-version: >=1.16
extra-source-files:
build-parser.sh
HaskellParser76.y.pp
HaskellParser782.y.pp
HaskellParser783.y.pp
src-7.10/Language/Haskell/GHC/HappyParser.hs
cabal-version: 1.16
library
build-tools: happy, cpphs
ghc-options: -Wall
exposed-modules: Language.Haskell.GHC.Parser,
Language.Haskell.GHC.HappyParser
-- other-modules:
-- other-extensions:
build-depends: base >=4.6 && <4.9,
ghc >=7.6 && <7.11
build-depends: base >=4.9 && < 5,
ghc >=8.4 && <9.11
if impl(ghc >= 8.4) && impl(ghc < 8.10)
hs-source-dirs: generic-src src-8.4
if impl(ghc >= 8.10) && impl(ghc < 9.0)
hs-source-dirs: generic-src src-8.10
if impl(ghc >= 9.0) && impl(ghc < 9.2)
hs-source-dirs: generic-src src-9.0
if impl(ghc >= 9.2) && impl(ghc < 9.4)
hs-source-dirs: generic-src src-9.2
if impl(ghc >= 9.4) && impl(ghc < 9.6)
hs-source-dirs: generic-src src-9.4
if impl(ghc >= 9.6) && impl(ghc < 9.8)
hs-source-dirs: generic-src src-9.6
if impl(ghc >= 9.8) && impl(ghc < 9.12)
hs-source-dirs: generic-src src-9.8
if impl(ghc >= 7.6) && impl(ghc < 7.8)
hs-source-dirs: generic-src src-7.6
else
if impl(ghc >= 7.8) && impl(ghc < 7.8.3)
hs-source-dirs: generic-src src-7.8.2
else
if impl(ghc < 7.10)
hs-source-dirs: generic-src src-7.8.3
else
hs-source-dirs: generic-src src-7.10
default-language: Haskell2010

View File

@ -1,42 +0,0 @@
module Language.Haskell.GHC.HappyParser
( fullStatement
, fullImport
, fullDeclaration
, fullExpression
, fullTypeSignature
, fullModule
) where
import Parser
import SrcLoc
-- compiler/hsSyn
import HsSyn
-- compiler/utils
import OrdList
-- compiler/parser
import RdrHsSyn
import Lexer
-- compiler/basicTypes
import RdrName
fullStatement :: P (Maybe (LStmt RdrName (LHsExpr RdrName)))
fullStatement = parseStmt
fullImport :: P (LImportDecl RdrName)
fullImport = parseImport
fullDeclaration :: P (OrdList (LHsDecl RdrName))
fullDeclaration = parseDeclaration
fullExpression :: P (LHsExpr RdrName)
fullExpression = parseExpression
fullTypeSignature :: P (Located (OrdList (LHsDecl RdrName)))
fullTypeSignature = parseTypeSignature
fullModule :: P (Located (HsModule RdrName))
fullModule = parseModule

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,40 @@
module Language.Haskell.GHC.HappyParser
( fullStatement
, fullImport
, fullDeclaration
, fullExpression
, fullTypeSignature
, fullModule
) where
import Parser
import SrcLoc
-- compiler/hsSyn
import GHC.Hs
-- compiler/utils
import OrdList
-- compiler/parser
import Lexer
import RdrHsSyn (runECP_P)
fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
fullStatement = parseStmt
fullImport :: P (LImportDecl GhcPs)
fullImport = parseImport
fullDeclaration :: P (OrdList (LHsDecl GhcPs))
fullDeclaration = fmap unitOL parseDeclaration
fullExpression :: P (LHsExpr GhcPs)
fullExpression = runECP_P =<< parseExpression
fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs)))
fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature
fullModule :: P (Located (HsModule GhcPs))
fullModule = parseModule

View File

@ -0,0 +1,38 @@
module Language.Haskell.GHC.HappyParser
( fullStatement
, fullImport
, fullDeclaration
, fullExpression
, fullTypeSignature
, fullModule
) where
import Parser
import SrcLoc
-- compiler/hsSyn
import HsSyn
-- compiler/utils
import OrdList
-- compiler/parser
import Lexer
fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
fullStatement = parseStmt
fullImport :: P (LImportDecl GhcPs)
fullImport = parseImport
fullDeclaration :: P (OrdList (LHsDecl GhcPs))
fullDeclaration = fmap unitOL parseDeclaration
fullExpression :: P (LHsExpr GhcPs)
fullExpression = parseExpression
fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs)))
fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature
fullModule :: P (Located (HsModule GhcPs))
fullModule = parseModule

View File

@ -0,0 +1,40 @@
module Language.Haskell.GHC.HappyParser
( fullStatement
, fullImport
, fullDeclaration
, fullExpression
, fullTypeSignature
, fullModule
) where
import GHC.Parser
import GHC.Types.SrcLoc
-- compiler/hsSyn
import GHC.Hs
-- compiler/utils
import GHC.Data.OrdList
-- compiler/parser
import GHC.Parser.Lexer
import GHC.Parser.PostProcess (runECP_P)
fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
fullStatement = parseStmt
fullImport :: P (LImportDecl GhcPs)
fullImport = parseImport
fullDeclaration :: P (OrdList (LHsDecl GhcPs))
fullDeclaration = fmap unitOL parseDeclaration
fullExpression :: P (LHsExpr GhcPs)
fullExpression = runECP_P =<< parseExpression
fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs)))
fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature
fullModule :: P (Located HsModule)
fullModule = parseModule

View File

@ -0,0 +1,40 @@
module Language.Haskell.GHC.HappyParser
( fullStatement
, fullImport
, fullDeclaration
, fullExpression
, fullTypeSignature
, fullModule
) where
import GHC.Parser
import GHC.Types.SrcLoc
-- compiler/hsSyn
import GHC.Hs
-- compiler/utils
import GHC.Data.OrdList
-- compiler/parser
import GHC.Parser.Lexer
import GHC.Parser.PostProcess (ECP(..), runPV)
fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
fullStatement = parseStmt
fullImport :: P (LImportDecl GhcPs)
fullImport = parseImport
fullDeclaration :: P (OrdList (LHsDecl GhcPs))
fullDeclaration = fmap unitOL parseDeclaration
fullExpression :: P (LHsExpr GhcPs)
fullExpression = parseExpression >>= \p -> runPV $ unECP p
fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs)))
fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature
fullModule :: P (Located HsModule)
fullModule = parseModule

View File

@ -0,0 +1,40 @@
module Language.Haskell.GHC.HappyParser
( fullStatement
, fullImport
, fullDeclaration
, fullExpression
, fullTypeSignature
, fullModule
) where
import GHC.Parser
import GHC.Types.SrcLoc
-- compiler/hsSyn
import GHC.Hs
-- compiler/utils
import GHC.Data.OrdList
-- compiler/parser
import GHC.Parser.Lexer
import GHC.Parser.PostProcess (ECP(..), runPV)
fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
fullStatement = parseStmt
fullImport :: P (LImportDecl GhcPs)
fullImport = parseImport
fullDeclaration :: P (OrdList (LHsDecl GhcPs))
fullDeclaration = fmap unitOL parseDeclaration
fullExpression :: P (LHsExpr GhcPs)
fullExpression = parseExpression >>= \p -> runPV $ unECP p
fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs)))
fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature
fullModule :: P (Located HsModule)
fullModule = parseModule

View File

@ -0,0 +1,40 @@
module Language.Haskell.GHC.HappyParser
( fullStatement
, fullImport
, fullDeclaration
, fullExpression
, fullTypeSignature
, fullModule
) where
import GHC.Parser
import GHC.Types.SrcLoc
-- compiler/hsSyn
import GHC.Hs
-- compiler/utils
import GHC.Data.OrdList
-- compiler/parser
import GHC.Parser.Lexer
import GHC.Parser.PostProcess (ECP(..), runPV)
fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
fullStatement = parseStmt
fullImport :: P (LImportDecl GhcPs)
fullImport = parseImport
fullDeclaration :: P (OrdList (LHsDecl GhcPs))
fullDeclaration = fmap unitOL parseDeclaration
fullExpression :: P (LHsExpr GhcPs)
fullExpression = parseExpression >>= \p -> runPV $ unECP p
fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs)))
fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature
fullModule :: P (Located (HsModule GhcPs))
fullModule = parseModule

View File

@ -0,0 +1,40 @@
module Language.Haskell.GHC.HappyParser
( fullStatement
, fullImport
, fullDeclaration
, fullExpression
, fullTypeSignature
, fullModule
) where
import GHC.Parser
import GHC.Types.SrcLoc
-- compiler/hsSyn
import GHC.Hs
-- compiler/utils
import GHC.Data.OrdList
-- compiler/parser
import GHC.Parser.Lexer
import GHC.Parser.PostProcess (ECP(..), runPV)
fullStatement :: P (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
fullStatement = parseStmt
fullImport :: P (LImportDecl GhcPs)
fullImport = parseImport
fullDeclaration :: P (OrdList (LHsDecl GhcPs))
fullDeclaration = fmap unitOL parseDeclaration
fullExpression :: P (LHsExpr GhcPs)
fullExpression = parseExpression >>= \p -> runPV $ unECP p
fullTypeSignature :: P (Located (OrdList (LHsDecl GhcPs)))
fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature
fullModule :: P (Located (HsModule GhcPs))
fullModule = parseModule

36
hie.yaml Normal file
View File

@ -0,0 +1,36 @@
cradle:
cabal:
- path: "./ghc-parser"
component: "ghc-parser:lib:ghc-parser"
- path: "./ipython-kernel"
component: "ipython-kernel:lib:ipython-kernel"
- path: "./src"
component: "ihaskell:lib:ihaskell"
- path: "./main"
component: "ihaskell:exe:ihaskell"
- path: "./test"
component: "ihaskell:hspec"
- path: "./ihaskell-display/ihaskell-aeson"
component: "ihaskell-aeson:lib:ihaskell-aeson"
- path: "./ihaskell-display/ihaskell-blaze"
component: "ihaskell-blaze:lib:ihaskell-blaze"
- path: "./ihaskell-display/ihaskell-charts"
component: "ihaskell-charts:lib:ihaskell-charts"
- path: "./ihaskell-display/ihaskell-diagrams"
component: "ihaskell-diagrams:lib:ihaskell-diagrams"
- path: "./ihaskell-display/ihaskell-gnuplot"
component: "ihaskell-gnuplot:lib:ihaskell-gnuplot"
- path: "./ihaskell-display/ihaskell-hatex"
component: "ihaskell-hatex:lib:ihaskell-hatex"
- path: "./ihaskell-display/ihaskell-juicypixels"
component: "ihaskell-juicypixels:lib:ihaskell-juicypixels"
- path: "./ihaskell-display/ihaskell-magic"
component: "ihaskell-magic:lib:ihaskell-magic"
- path: "./ihaskell-display/ihaskell-plot"
component: "ihaskell-plot:lib:ihaskell-plot"
- path: "./ihaskell-display/ihaskell-static-canvas"
component: "ihaskell-static-canvas:lib:ihaskell-static-canvas"
- path: "./ihaskell-display/ihaskell-widgets"
component: "ihaskell-widgets:lib:ihaskell-widgets"
- path: "./ihaskell-display/ihaskell-graphviz"
component: "ihaskell-graphviz:lib:ihaskell-graphviz"

View File

@ -1,96 +0,0 @@
/*
Custom IHaskell CSS.
*/
/* Styles used for the Hoogle display in the pager */
.hoogle-doc {
display: block;
padding-bottom: 1.3em;
padding-left: 0.4em;
}
.hoogle-code {
display: block;
font-family: monospace;
white-space: pre;
}
.hoogle-text {
display: block;
}
.hoogle-name {
color: green;
font-weight: bold;
}
.hoogle-head {
font-weight: bold;
}
.hoogle-sub {
display: block;
margin-left: 0.4em;
}
.hoogle-package {
font-weight: bold;
font-style: italic;
}
.hoogle-module {
font-weight: bold;
}
.hoogle-class {
font-weight: bold;
}
/* Styles used for basic displays */
.get-type {
color: green;
font-weight: bold;
font-family: monospace;
display: block;
white-space: pre-wrap;
}
.show-type {
color: green;
font-weight: bold;
font-family: monospace;
margin-left: 1em;
}
.mono {
font-family: monospace;
display: block;
}
.err-msg {
color: red;
font-style: italic;
font-family: monospace;
white-space: pre;
display: block;
}
#unshowable {
color: red;
font-weight: bold;
}
.err-msg.in.collapse {
padding-top: 0.7em;
}
/* Code that will get highlighted before it is highlighted */
.highlight-code {
white-space: pre;
font-family: monospace;
}
/* Hlint styles */
.suggestion-warning {
font-weight: bold;
color: rgb(200, 130, 0);
}
.suggestion-error {
font-weight: bold;
color: red;
}
.suggestion-name {
font-weight: bold;
}

View File

@ -22,7 +22,7 @@ define(['require',
var downArrow = 40;
IPython.keyboard.keycodes.down = downArrow; // space
IPython.CodeCell.options_default['cm_config']['mode'] = 'haskell';
IPython.CodeCell.options_default['cm_config']['mode'] = 'ihaskell';
utils.requireCodeMirrorMode('haskell', function(){
// Create a multiplexing mode that uses Haskell highlighting by default but
@ -52,9 +52,6 @@ define(['require',
}
});
if(IPython.notebook.set_codemirror_mode){
// this first one will not be necessary in the future
// neither should the loop on all cells above
IPython.notebook.set_codemirror_mode('null')
IPython.notebook.set_codemirror_mode('ihaskell')
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

89
html/logo-64x64.svg Normal file
View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
viewBox="0 0 48.000001 47.999999"
version="1.1"
id="svg18"
sodipodi:docname="haskell_logo.svg"
inkscape:version="0.92.3 (unknown)">
<metadata
id="metadata22">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2495"
inkscape:window-height="1416"
id="namedview20"
showgrid="false"
units="px"
inkscape:zoom="4.9870803"
inkscape:cx="87.017073"
inkscape:cy="4.4960944"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg18" />
<defs
id="defs5">
<clipPath
id="clip1">
<path
d="M 0,340.15625 H 481.89062 V 0 H 0 Z m 0,0"
id="path2"
inkscape:connector-curvature="0" />
</clipPath>
</defs>
<g
id="surface0"
transform="matrix(0.09960767,0,0,0.09960767,-0.1503886,5.8491832)">
<g
clip-path="url(#clip1)"
id="g15"
style="clip-rule:nonzero">
<path
style="fill:#453b61;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 0,340.15625 113.38672,170.07812 0,0 H 85.039062 L 198.42578,170.07812 85.039062,340.15625 Z m 0,0"
id="path7"
inkscape:connector-curvature="0" />
<path
style="fill:#5f5286;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 113.38672,340.15625 226.77344,170.07812 113.38672,0 h 85.03906 L 425.19531,340.15625 H 340.15625 L 269.29297,233.85937 198.42578,340.15625 Z m 0,0"
id="path9"
inkscape:connector-curvature="0" />
<path
style="fill:#8e508a;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 387.40234,240.94531 -37.79297,-56.6914 132.28125,-0.004 v 56.69531 z m 0,0"
id="path11"
inkscape:connector-curvature="0" />
<path
style="fill:#8e508a;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 330.71094,155.90625 -37.79688,-56.691406 188.97656,-0.0039 v 56.695316 z m 0,0"
id="path13"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,17 +1,17 @@
{-# LANGUAGE NoImplicitPrelude, TypeSynonymInstances, QuasiQuotes #-}
{-# LANGUAGE TypeSynonymInstances #-}
module IHaskell.Display.Aeson () where
import ClassyPrelude
import Data.Textual.Encoding
import Data.Text as T
import Data.ByteString.Lazy as LBS
import Data.Text.Encoding as E
import Data.Aeson
import Data.Aeson.Encode.Pretty
import Data.String.Here
import IHaskell.Display
instance IHaskellDisplay Value where
display renderable = return $ Display [plain json, html dom]
display renderable = return $ Display [plain json]
where
json = unpack $ decodeUtf8 $ encodePretty renderable
dom = [i|<div class="highlight-code" id="javascript">${json}</div>|]
json = T.unpack $ E.decodeUtf8 $ LBS.toStrict $ encodePretty renderable

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

View File

@ -1,19 +1,19 @@
-- The name of the package.
name: ihaskell-aeson
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.2.0.0
version: 0.3.0.1
-- A short (one-line) description of the package.
synopsis: IHaskell display instances for Aeson
-- A longer description of the package.
-- description:
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/ihaskell
@ -27,46 +27,41 @@ license-file: LICENSE
-- The package author(s).
author: Andrew Gibiansky
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: andrew.gibiansky@gmail.com
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Aeson
-- Modules included in this library but not exported.
-- other-modules:
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
-- other-modules:
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
here,
classy-prelude >=0.7,
build-depends: base >=4.9 && <5,
text,
bytestring,
aeson >= 0.7,
aeson-pretty >= 0.7,
chunked-data >=0.1,
ihaskell >= 0.5
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

View File

@ -1,19 +0,0 @@
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
module IHaskell.Display.Basic () where
import IHaskell.Display
import Text.Printf
instance Show a => IHaskellDisplay (Maybe a) where
display just = return $ Display [stringDisplay, htmlDisplay]
where
stringDisplay = plain (show just)
htmlDisplay = html str
str =
case just of
Nothing -> "<span style='color: red; font-weight: bold;'>Nothing</span>"
Just x -> printf
"<span style='color: green; font-weight: bold;'>Just</span><span style='font-family: monospace;'>%s</span>"
(show x)

View File

@ -1,4 +0,0 @@
IHaskell-Display
================
Instances of IHaskellDisplay for default prelude data types.

View File

@ -1,2 +0,0 @@
import Distribution.Simple
main = defaultMain

View File

@ -2,6 +2,7 @@
module IHaskell.Display.Blaze () where
import IHaskell.CSS (ihaskellCSS)
import IHaskell.Display
import Text.Printf
@ -15,4 +16,4 @@ instance IHaskellDisplay (MarkupM a) where
where
str = renderMarkup (void val)
stringDisplay = plain str
htmlDisplay = html str
htmlDisplay = html' (Just ihaskellCSS) str

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

View File

@ -1,22 +1,22 @@
-- Initial ihaskell-display.cabal generated by cabal init. For further
-- Initial ihaskell-display.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
-- The name of the package.
name: ihaskell-blaze
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.2.0.0
version: 0.3.0.1
-- A short (one-line) description of the package.
synopsis: IHaskell display instances for blaze-html types
-- A longer description of the package.
-- description:
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/ihaskell
@ -30,45 +30,40 @@ license-file: LICENSE
-- The package author(s).
author: Andrew Gibiansky
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: andrew.gibiansky@gmail.com
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Blaze
-- Modules included in this library but not exported.
-- other-modules:
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
-- other-modules:
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
classy-prelude >=0.6,
build-depends: base >=4.9 && <5,
blaze-html >= 0.6,
blaze-markup >= 0.5,
ihaskell >= 0.5
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

View File

@ -1,15 +1,15 @@
{-# LANGUAGE NoImplicitPrelude, CPP #-}
module IHaskell.Display.Charts () where
import ClassyPrelude
import System.Directory
import Data.Default.Class
import Graphics.Rendering.Chart.Renderable
import Graphics.Rendering.Chart.Backend.Cairo
import qualified Data.ByteString.Char8 as Char
import qualified Data.ByteString as BS
import qualified Data.Text.Encoding as T.Encoding
import System.IO.Temp
import System.IO.Unsafe
import System.FilePath ((</>))
import IHaskell.Display
@ -31,21 +31,22 @@ instance IHaskellDisplay (Renderable a) where
chartData :: Renderable a -> FileFormat -> IO DisplayData
chartData renderable format = do
switchToTmpDir
-- We should not have to round-trip this ByteString to a temp file.
-- https://github.com/IHaskell/IHaskell/issues/1248
withSystemTempDirectory "ihaskell-charts" $ \tmpdir -> do
-- Write the PNG image.
let filename = ".ihaskell-chart.png"
let
filename = tmpdir </> "ihaskell-chart.png"
opts = def { _fo_format = format, _fo_size = (width, height) }
mkFile opts filename renderable
renderableToFile opts filename renderable
-- Convert to base64.
imgData <- readFile filename
return $
case format of
PNG -> png width height $ base64 imgData
SVG -> svg $ Char.unpack imgData
#if MIN_VERSION_Chart_cairo(1,3,0)
mkFile opts filename renderable = renderableToFile opts filename renderable
#else
mkFile opts filename renderable = renderableToFile opts renderable filename
#endif
PNG -> do
-- Convert to base64.
imgData <- Char.readFile filename
pure $ png width height $ base64 imgData
SVG -> do
imgData <- BS.readFile filename
pure $ svg $ T.Encoding.decodeUtf8 imgData
_ -> error "Unreachable case, not PNG or SVG"

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,19 @@
-- The name of the package.
name: ihaskell-charts
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.2.0.0
version: 0.3.0.1
-- A short (one-line) description of the package.
synopsis: IHaskell display instances for charts types
-- A longer description of the package.
-- description:
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/ihaskell
@ -27,48 +27,46 @@ license-file: LICENSE
-- The package author(s).
author: Andrew Gibiansky
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: andrew.gibiansky@gmail.com
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Charts
-- Modules included in this library but not exported.
-- other-modules:
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
-- other-modules:
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
classy-prelude >=0.10.5,
build-depends: base >=4.9 && <5,
bytestring,
text,
data-default-class,
directory,
filepath,
temporary,
Chart,
Chart-cairo >=1.2,
ihaskell >= 0.5
ihaskell >= 0.6.2
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

File diff suppressed because one or more lines are too long

View File

@ -1,53 +1,74 @@
{-# LANGUAGE NoImplicitPrelude, TypeSynonymInstances, FlexibleInstances #-}
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-}
module IHaskell.Display.Diagrams (diagram, animation) where
module IHaskell.Display.Diagrams
( diagram, animation
, ManuallySized, withSizeSpec, withImgWidth, withImgHeight
, ManuallySampled, withAnimFps
) where
import ClassyPrelude
import System.Directory
import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as Char
import System.IO.Unsafe
import Diagrams.Prelude
import qualified Data.Text.Encoding as T.Encoding
import System.Directory
import System.IO.Temp
import System.FilePath ((</>))
import Diagrams.Backend.Cairo
import Diagrams.Prelude
import IHaskell.Display
import IHaskell.Display.Diagrams.Animation
import IHaskell.Display.Diagrams.ImgSize
instance IHaskellDisplay (QDiagram Cairo V2 Double Any) where
instance IHaskellDisplay (ManuallySized (QDiagram Cairo V2 Double Any)) where
display renderable = do
png <- diagramData renderable PNG
svg <- diagramData renderable SVG
return $ Display [png, svg]
diagramData :: Diagram Cairo -> OutputType -> IO DisplayData
diagramData renderable format = do
switchToTmpDir
diagramData :: ManuallySized (Diagram Cairo) -> OutputType -> IO DisplayData
diagramData (ManuallySized renderable imgWidth imgHeight) format = do
-- We should not have to round-trip this ByteString to a temp file.
-- https://github.com/IHaskell/IHaskell/issues/1248
withSystemTempDirectory "ihaskell-diagram" $ \tmpdir -> do
let path = case format of
SVG -> tmpdir </> "ihaskell-diagram.svg"
PNG -> tmpdir </> "ihaskell-diagram.png"
_ -> error "Unreachable case"
-- Compute width and height.
let w = width renderable
h = height renderable
aspect = w / h
imgHeight = 300
imgWidth = aspect * imgHeight
-- Write the image.
renderCairo path (mkSizeSpec2D (Just imgWidth)
(Just imgHeight)) renderable
-- Write the image.
let filename = ".ihaskell-diagram." ++ extension format
renderCairo filename (mkSizeSpec2D (Just imgWidth) (Just imgHeight)) renderable
-- Convert to base64.
imgData <- readFile filename
let value =
case format of
PNG -> png (floor imgWidth) (floor imgHeight) $ base64 imgData
SVG -> svg $ Char.unpack imgData
return value
where
extension SVG = "svg"
extension PNG = "png"
case format of
PNG -> do
-- Convert to base64.
imgData <- Char.readFile path
pure $ png (floor imgWidth) (floor imgHeight) $ base64 imgData
SVG -> do
imgData <- BS.readFile path
pure $ svg (T.Encoding.decodeUtf8 imgData)
_ -> error "Unreachable case"
-- Rendering hint.
diagram :: Diagram Cairo -> Diagram Cairo
diagram = id
instance (b ~ Cairo, v ~ V2, s ~ Double, m ~ Any)
=> ManuallySizeable (QDiagram a v s m) where
withSizeSpec spec renderable = ManuallySized renderable imgWidth imgHeight
where
aspect = width renderable / height renderable
V2 imgWidth imgHeight = case getSpec spec of
V2 (Just w) (Just h) -> V2 w h
V2 (Just w) Nothing -> V2 w (w/aspect)
V2 Nothing (Just h) -> V2 (aspect*h) h
V2 Nothing Nothing -> (defaultDiagonal / sqrt (1 + aspect^2))
*^ V2 aspect 1
-- w^2 + h^2 = defaultDiagonal^2 / (1+aspect^2)
-- * (aspect^2 + 1)
-- = defaultDiagonal^2
-- w/h = aspect/1 = aspect
defaultDiagonal = 500
instance IHaskellDisplay (QDiagram Cairo V2 Double Any) where
display = display . withSizeSpec (mkSizeSpec2D Nothing Nothing)

View File

@ -1,55 +1,141 @@
{-# LANGUAGE NoImplicitPrelude, TypeSynonymInstances, FlexibleInstances #-}
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE DeriveFunctor, DeriveGeneric #-}
module IHaskell.Display.Diagrams.Animation (animation) where
module IHaskell.Display.Diagrams.Animation
( animation
, ManuallySampled, withAnimFps
) where
import ClassyPrelude hiding (filename)
import qualified Data.ByteString.Char8 as CBS
import qualified Data.Text as T
import GHC.Generics (Generic)
import Data.Maybe (fromMaybe)
import Diagrams.Prelude
import Diagrams.Backend.Cairo
import Diagrams.Backend.Cairo.CmdLine (GifOpts(..))
import Diagrams.Backend.CmdLine (DiagramOpts(..), mainRender)
import System.IO.Temp
import System.FilePath ((</>))
import IHaskell.Display
import IHaskell.Display.Diagrams.ImgSize
instance IHaskellDisplay (QAnimation Cairo V2 Double Any) where
data ManuallySampled a = ManuallySampled
{ contentToSample :: a
, signalManualSampleRate :: Maybe Rational
} deriving (Show, Functor, Generic)
class ManuallySamplable a where
withSamplingSpec :: Maybe Rational -> a -> ManuallySampled a
defaultFps = 30
withAnimFps :: ManuallySamplable a => Rational -> a -> ManuallySampled a
withAnimFps fps = withSamplingSpec (Just fps)
instance IHaskellDisplay (ManuallySized (ManuallySampled (QAnimation Cairo V2 Double Any))) where
display renderable = do
gif <- animationData renderable
return $ Display [html $ "<img src=\"data:image/gif;base64,"
++ gif ++ "\" />"]
return $ Display [html' Nothing $ "<img src=\"data:image/gif;base64," ++ gif ++ "\" />"]
animationData :: Animation Cairo V2 Double -> IO String
animationData renderable = do
switchToTmpDir
-- Generate the frames
let fps = 30
animAdjusted = animEnvelope' fps renderable
frames = simulate fps animAdjusted
timediff = 100 `div` ceiling fps :: Int
frameSet = map (\x -> (x # bg white, timediff)) frames
animationData :: ManuallySized (ManuallySampled (Animation Cairo V2 Double)) -> IO String
animationData (ManuallySized (ManuallySampled renderable fps) imgWidth imgHeight) = do
-- We should not have to round-trip this ByteString to a temp file.
-- https://github.com/IHaskell/IHaskell/issues/1248
withSystemTempDirectory "ihaskell-diagram" $ \tmpdir -> do
-- Compute width and height.
let shape = activeStart animAdjusted
w = width shape
h = height shape
aspect = w / h
imgHeight = 300
imgWidth = aspect * imgHeight
let path = tmpdir </> "ihaskell-diagram.gif"
-- Write the image.
let filename = ".ihaskell-diagram.gif"
diagOpts = DiagramOpts
{ _width = Just . ceiling $ imgWidth
, _height = Just . ceiling $ imgHeight
, _output = filename
}
gifOpts = GifOpts { _dither = True, _noLooping = False, _loopRepeat = Nothing }
mainRender (diagOpts, gifOpts) frameSet
-- Generate the frames
let actualFps = fromMaybe defaultFps fps
animAdjusted = animEnvelope' actualFps renderable
frames = simulate actualFps animAdjusted
timediff = 100 `div` ceiling actualFps :: Int
frameSet = map (\x -> (x # bg white, timediff)) frames
-- Write the image.
let diagOpts = DiagramOpts
{ _width = Just . ceiling $ imgWidth
, _height = Just . ceiling $ imgHeight
, _output = path
}
gifOpts = GifOpts { _dither = True, _noLooping = False, _loopRepeat = Nothing }
mainRender (diagOpts, gifOpts) frameSet
-- Convert to ascii represented base64 encoding
imgData <- CBS.readFile path
return . T.unpack . base64 $ imgData
-- Convert to ascii represented base64 encoding
imgData <- readFile filename
return . unpack . base64 $ imgData
-- Rendering hint.
animation :: Animation Cairo V2 Double -> Animation Cairo V2 Double
animation = id
getImgSize renderable sizeSpec fps = out
where
actualFps = fromMaybe defaultFps fps
shape = activeStart $ animEnvelope' actualFps renderable
aspect = width shape / height shape
out = case getSpec sizeSpec of
V2 (Just w) (Just h) -> V2 w h
V2 (Just w) Nothing -> V2 w (w/aspect)
V2 Nothing (Just h) -> V2 (aspect*h) h
V2 Nothing Nothing -> (defaultDiagonal / sqrt (1 + aspect^2))
*^ V2 aspect 1
-- w^2 + h^2 = defaultDiagonal^2 / (1+aspect^2)
-- * (aspect^2 + 1)
-- = defaultDiagonal^2
-- w/h = aspect/1 = aspect
defaultDiagonal = 500
instance (b ~ Cairo, v ~ V2, s ~ Double, m ~ Any)
=> ManuallySamplable (QAnimation b v s m) where
withSamplingSpec fps renderable = ManuallySampled renderable fps
instance (b ~ Cairo, v ~ V2, s ~ Double, m ~ Any)
=> ManuallySamplable (ManuallySized (QAnimation b v s m)) where
withSamplingSpec fps sizedRenderable = ManuallySampled sizedRenderable fps
instance (b ~ Cairo, v ~ V2, s ~ Double, m ~ Any)
=> ManuallySizeable (QAnimation b v s m) where
withSizeSpec spec renderable = ManuallySized renderable imgWidth imgHeight
where
fps = Nothing
V2 imgWidth imgHeight = getImgSize renderable spec fps
instance (b ~ Cairo, v ~ V2, s ~ Double, m ~ Any)
=> ManuallySizeable (ManuallySampled (QAnimation b v s m)) where
withSizeSpec spec (ManuallySampled renderable fps) = out
where
out = ManuallySized (ManuallySampled renderable fps) w h
V2 w h = getImgSize renderable spec fps
instance IHaskellDisplay (QAnimation Cairo V2 Double Any) where
display = display . withSizeSpec (mkSizeSpec2D Nothing Nothing) . withSamplingSpec fps
where
fps = Nothing
instance IHaskellDisplay (ManuallySized (QAnimation Cairo V2 Double Any)) where
display (ManuallySized renderable w h) = out
where
fps = Nothing
sizeSpec = mkSizeSpec2D (Just w) (Just h)
out = display . withSizeSpec sizeSpec $ withSamplingSpec fps renderable
instance IHaskellDisplay (ManuallySampled (QAnimation Cairo V2 Double Any)) where
display = display . withSizeSpec (mkSizeSpec2D Nothing Nothing)
instance IHaskellDisplay (ManuallySampled (ManuallySized (QAnimation Cairo V2 Double Any))) where
display (ManuallySampled (ManuallySized renderable w h) fps) = out
where
sizeSpec = mkSizeSpec2D (Just w) (Just h)
out = display . withSizeSpec sizeSpec $ withSamplingSpec fps renderable

View File

@ -0,0 +1,24 @@
{-# LANGUAGE DeriveFunctor, DeriveGeneric #-}
module IHaskell.Display.Diagrams.ImgSize where
import GHC.Generics (Generic)
import Diagrams.Prelude (SizeSpec, mkSizeSpec2D, V2)
data ManuallySized a = ManuallySized
{ contentToDisplay :: a
, imgManualWidth :: Double
, imgManualHeight :: Double
} deriving (Show, Functor, Generic)
class ManuallySizeable a where
withSizeSpec :: SizeSpec V2 Double -> a -> ManuallySized a
withImgWidth :: ManuallySizeable a => Int -> a -> ManuallySized a
withImgWidth imgWidth = withSizeSpec $ mkSizeSpec2D (Just $ fromIntegral imgWidth)
Nothing
withImgHeight :: ManuallySizeable a => Int -> a -> ManuallySized a
withImgHeight imgHeight = withSizeSpec $ mkSizeSpec2D Nothing
(Just $ fromIntegral imgHeight)

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,19 @@
-- The name of the package.
name: ihaskell-diagrams
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.2.1.0
version: 0.4.0.0
-- A short (one-line) description of the package.
synopsis: IHaskell display instances for diagram types
-- A longer description of the package.
-- description:
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/ihaskell
@ -27,52 +27,51 @@ license-file: LICENSE
-- The package author(s).
author: Andrew Gibiansky
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: andrew.gibiansky@gmail.com
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Diagrams
-- Modules included in this library but not exported.
other-modules: IHaskell.Display.Diagrams.Animation
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
IHaskell.Display.Diagrams.ImgSize
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
classy-prelude >=0.10.5,
build-depends: base >=4.9 && <5,
text,
bytestring,
directory,
temporary,
filepath,
-- Use diagrams wrapper package to ensure all same versions of subpackages
diagrams >= 1.3,
diagrams-lib,
diagrams-cairo,
ihaskell >= 0.5,
ihaskell >= 0.11,
-- The active package, used to represent animations
active >= 0.2
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,79 @@
{-
(This paragraph was made obsolete by PR #1362 which unified the 3 types
of plot. But it's still useful commentary.)
There are 3 types of plots to consider in haskell-gnuplot: Plot, Frame and Multiplot.
Plot types are the actual plots, whereas Frame types are plots with additional options
e.g. custom axes tics, graph title etc.. Multiplots are collections of 2D and/or 3D plots.
We have to create instances of IHaskellDisplay for all of these types.
Note: To stop gnuplot from printing the filepath ontop of the canvas, you have to set
the gnuplot option "key" to "noautotitle".
Code: Graphics.Gnuplot.Frame.cons (Graphics.Gnuplot.Frame.OptionSet.add
(Graphics.Gnuplot.Frame.Option.key "")
["noautotitle"] $ ...)
-}
module IHaskell.Display.Gnuplot where
import qualified Graphics.Gnuplot.Plot as P
import qualified Graphics.Gnuplot.Frame as F
import qualified Graphics.Gnuplot.MultiPlot as M
import qualified Graphics.Gnuplot.Terminal.PNG as Pn
import qualified Graphics.Gnuplot.Terminal.SVG as Sv
import qualified Graphics.Gnuplot.Display as D
import qualified Graphics.Gnuplot.Graph as G
import qualified Data.ByteString.Char8 as Char
import qualified Data.ByteString as BS
import qualified Data.Text.Encoding as T.Encoding
import System.IO.Temp
import System.FilePath ((</>))
import Graphics.Gnuplot.Advanced (plot)
import IHaskell.Display
-- Plot-types
instance G.C graph => IHaskellDisplay (P.T graph) where
display = graphDataDisplayBoth
-- Frame-types
instance G.C graph => IHaskellDisplay (F.T graph) where
display = graphDataDisplayBoth
-- Type: Multiplot
instance IHaskellDisplay M.T where
display = graphDataDisplayBoth
-- Width and height
w = 300
h = 300
graphDataPNG :: D.C gfx => gfx -> IO DisplayData
graphDataPNG graph = do
-- We should not have to round-trip this ByteString to a temp file.
-- https://github.com/IHaskell/IHaskell/issues/1248
withSystemTempDirectory "ihaskell-gnuplot" $ \tmpdir -> do
let path = tmpdir </> "ihaskell-gnuplot.png"
-- Write the image.
plot (Pn.cons path) graph
-- Read back, and convert to base64.
imgData <- Char.readFile path
return $ png w h $ base64 imgData
graphDataSVG :: D.C gfx => gfx -> IO DisplayData
graphDataSVG graph = do
withSystemTempDirectory "ihaskell-gnuplot" $ \tmpdir -> do
let path = tmpdir </> "ihaskell-gnuplot.svg"
-- Write the image.
plot (Sv.cons path) graph
-- Read back
imgData <- BS.readFile path
return $ svg $ T.Encoding.decodeUtf8 imgData
graphDataDisplayBoth :: D.C gfx => gfx -> IO Display
graphDataDisplayBoth fig = do
pngDisp <- graphDataPNG fig
svgDisp <- graphDataSVG fig
return $ Display [pngDisp, svgDisp]

View File

@ -0,0 +1,3 @@
import Distribution.Simple
main = defaultMain

View File

@ -1,19 +1,19 @@
-- The name of the package.
name: ihaskell-parsec
name: ihaskell-gnuplot
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.2.1.0
version: 0.1.0.1
-- A short (one-line) description of the package.
synopsis: IHaskell display instances for Parsec
synopsis: IHaskell display instance for Gnuplot (from gnuplot package)
-- A longer description of the package.
-- description:
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/ihaskell
@ -25,50 +25,45 @@ license: MIT
license-file: LICENSE
-- The package author(s).
author: Andrew Gibiansky
author: Doro Rose <dororose@hotmail.com>
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: andrew.gibiansky@gmail.com
maintainer: Doro Rose <dororose@hotmail.com>,
Andrew Gibiansky <andrew.gibiansky@gmail.com>
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
extra-source-files: widget.html, widget.js
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Parsec
exposed-modules: IHaskell.Display.Gnuplot
-- Modules included in this library but not exported.
-- other-modules:
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
-- other-modules:
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
aeson >=0.7 && <0.9,
unordered-containers,
classy-prelude,
random >= 1,
parsec,
here,
ihaskell >= 0.5
build-depends: base >=4.9 && <5,
bytestring,
text,
temporary,
filepath,
gnuplot >= 0.5.4,
ihaskell >= 0.6.2
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

View File

@ -0,0 +1,118 @@
-- | A module to help displaying information using the amazing Graphviz
-- (https://www.graphviz.org/) graph layouts.
--
-- You need to install and have graphviz tools available in your environment.
--
-- Currently only 'dot' is provided as a proof-of-concept. This module may be
-- split in two (a package as an helper to Graphviz command line and this
-- package to provide 'IHaskellDisplay' instances.
--
-- Minimal notebook example:
--
-- @ import IHaskell.Display.Graphviz @
-- @ dot "digraph { l -> o; o -> v; v -> e; h -> a ; a -> s; s -> k ; k -> e ; e -> l ; l -> l}" @
module IHaskell.Display.Graphviz (
dot
, neato
, fdp
, sfdp
, circo
, twopi
, nop
, nop2
, osage
, patchwork
, Graphviz(..)
) where
import System.Process (readProcess)
import qualified Data.Text as T
import IHaskell.Display
-- | The body of a Graphviz program.
--
-- e.g. @ graph { a -- b } @
type GraphvizProgramBody = String
-- | Main Graphviz object.
data Graphviz
= Dot !GraphvizProgramBody
-- ^ A Graphviz plotted using [Dot](https://graphviz.org/docs/layouts/dot/)
| Neato !GraphvizProgramBody
-- ^ A Graphviz plotted using [Neato](https://graphviz.org/docs/layouts/neato/)
| Fdp !GraphvizProgramBody
-- ^ A Graphviz plotted using [Fdp](https://graphviz.org/docs/layouts/fdp/)
| Sfdp !GraphvizProgramBody
-- ^ A Graphviz plotted using [Sfdp](https://graphviz.org/docs/layouts/sfdp/)
| Circo !GraphvizProgramBody
-- ^ A Graphviz plotted using [Circo](https://graphviz.org/docs/layouts/circo/)
| Twopi !GraphvizProgramBody
-- ^ A Graphviz plotted using [Twopi](https://graphviz.org/docs/layouts/twopi/)
| Nop !GraphvizProgramBody
-- ^ A Graphviz plotted using [Nop](https://graphviz.org/docs/layouts/nop/)
| Nop2 !GraphvizProgramBody
-- ^ A Graphviz plotted using [Nop2](https://graphviz.org/docs/layouts/nop2/)
| Osage !GraphvizProgramBody
-- ^ A Graphviz plotted using [Osage](https://graphviz.org/docs/layouts/osage/)
| Patchwork !GraphvizProgramBody
-- ^ A Graphviz plotted using [Patchwork](https://graphviz.org/docs/layouts/patchwork/)
-- | Create a 'Graphviz' using 'dot'.
dot :: GraphvizProgramBody -> Graphviz
dot = Dot
-- | Create a 'Graphviz' using 'neato'.
neato :: GraphvizProgramBody -> Graphviz
neato = Neato
-- | Create a 'Graphviz' using 'fdp'.
fdp :: GraphvizProgramBody -> Graphviz
fdp = Fdp
-- | Create a 'Graphviz' using 'sfdp'.
sfdp :: GraphvizProgramBody -> Graphviz
sfdp = Sfdp
-- | Create a 'Graphviz' using 'circo'.
circo :: GraphvizProgramBody -> Graphviz
circo = Circo
-- | Create a 'Graphviz' using 'twopi'.
twopi :: GraphvizProgramBody -> Graphviz
twopi = Twopi
-- | Create a 'Graphviz' using 'nop'.
nop :: GraphvizProgramBody -> Graphviz
nop = Nop
-- | Create a 'Graphviz' using 'nop2'.
nop2 :: GraphvizProgramBody -> Graphviz
nop2 = Nop2
-- | Create a 'Graphviz' using 'osage'.
osage :: GraphvizProgramBody -> Graphviz
osage = Osage
-- | Create a 'Graphviz' using 'patchwork'.
patchwork :: GraphvizProgramBody -> Graphviz
patchwork = Patchwork
instance IHaskellDisplay Graphviz where
display fig = do
svgDisp <- graphDataSVG fig
return $ Display [svgDisp]
graphDataSVG :: Graphviz -> IO DisplayData
graphDataSVG prog = svg . T.pack <$> case prog of
Dot dotBody -> readProcess "dot" ["-Tsvg"] dotBody
Neato dotBody -> readProcess "neato" ["-Tsvg"] dotBody
Fdp dotBody -> readProcess "fdp" ["-Tsvg"] dotBody
Sfdp dotBody -> readProcess "sfdp" ["-Tsvg"] dotBody
Circo dotBody -> readProcess "circo" ["-Tsvg"] dotBody
Twopi dotBody -> readProcess "twopi" ["-Tsvg"] dotBody
Nop dotBody -> readProcess "nop" ["-Tsvg"] dotBody
Nop2 dotBody -> readProcess "nop2" ["-Tsvg"] dotBody
Osage dotBody -> readProcess "osage" ["-Tsvg"] dotBody
Patchwork dotBody -> readProcess "patchwork" ["-Tsvg"] dotBody

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2013 Andrew Gibiansky
Copyright (c) 2013 Lucas DiCioccio
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View File

@ -0,0 +1,3 @@
import Distribution.Simple
main = defaultMain

View File

@ -1,25 +1,22 @@
-- Initial ihaskell-display.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
-- The name of the package.
name: ihaskell-basic
name: ihaskell-graphviz
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.2.0.0
version: 0.1.0.0
-- A short (one-line) description of the package.
synopsis: IHaskell display instances for basic types
synopsis: IHaskell display instance for GraphViz (external binary)
-- A longer description of the package.
-- description:
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/IHaskell
homepage: http://www.github.com/gibiansky/ihaskell
-- The license under which the package is released.
license: MIT
@ -28,46 +25,44 @@ license: MIT
license-file: LICENSE
-- The package author(s).
author: Andrew Gibiansky
author: Lucas DiCioccio <lucas@dicioccio.fr>
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: andrew.gibiansky@gmail.com
maintainer: Lucas DiCioccio <lucas@dicioccio.fr>,
Vaibhav Sagar <vaibhavsagar@gmail.com>,
Andrew Gibiansky <andrew.gibiansky@gmail.com>
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Basic
exposed-modules: IHaskell.Display.Graphviz
-- Modules included in this library but not exported.
-- other-modules:
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
-- other-modules:
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
classy-prelude >=0.6,
ihaskell >= 0.5
build-depends: base >=4.9 && <5,
bytestring,
text,
process,
ihaskell >= 0.6.2
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

View File

@ -1,7 +1,7 @@
name: ihaskell-hatex
version: 0.2.0.0
version: 0.2.1.1
synopsis: IHaskell display instances for hatex
-- description:
-- description:
homepage: http://www.github.com/gibiansky/IHaskell
license: MIT
license-file: LICENSE
@ -9,14 +9,14 @@ author: Adam Vogt
maintainer: andrew.gibiansky@gmail.com
category: Development
build-type: Simple
cabal-version: >=1.16
cabal-version: 1.16
library
exposed-modules: IHaskell.Display.Hatex
build-depends: base >=4.6 && <4.9,
build-depends: base >=4.9 && <5,
text,
HaTeX >= 3.9,
ihaskell >= 0.5
default-language: Haskell2010

View File

@ -1,94 +1,36 @@
{-# LANGUAGE NoImplicitPrelude, TypeSynonymInstances, FlexibleInstances #-}
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
module IHaskell.Display.Juicypixels (module IHaskell.Display, module Codec.Picture) where
import Codec.Picture
import ClassyPrelude
import IHaskell.Display
import System.Directory
import System.IO.Unsafe
import qualified Codec.Picture as P
import Codec.Picture (Image(..))
import Codec.Picture.Png (PngSavable, encodePng)
import IHaskell.Display (IHaskellDisplay, Display(..), display, png, base64)
import Data.ByteString.Lazy (ByteString, toStrict)
-- instances
instance IHaskellDisplay DynamicImage where
display = displayImageAsJpg
instance IHaskellDisplay (Image P.Pixel8) where
display = return . format
instance IHaskellDisplay (Image Pixel8) where
display = displayImageAsJpg . ImageY8
instance IHaskellDisplay (Image P.Pixel16) where
display = return . format
instance IHaskellDisplay (Image Pixel16) where
display = displayImageAsJpg . ImageY16
instance IHaskellDisplay (Image P.PixelYA8) where
display = return . format
instance IHaskellDisplay (Image PixelF) where
display = displayImageAsJpg . ImageYF
instance IHaskellDisplay (Image P.PixelYA16) where
display = return . format
instance IHaskellDisplay (Image PixelYA8) where
display = displayImageAsJpg . ImageYA8
instance IHaskellDisplay (Image P.PixelRGB8) where
display = return . format
instance IHaskellDisplay (Image PixelYA16) where
display = displayImageAsJpg . ImageYA16
instance IHaskellDisplay (Image P.PixelRGB16) where
display = return . format
instance IHaskellDisplay (Image PixelRGB8) where
display = displayImageAsJpg . ImageRGB8
instance IHaskellDisplay (Image P.PixelRGBA8) where
display = return . format
instance IHaskellDisplay (Image PixelRGB16) where
display = displayImageAsJpg . ImageRGB16
instance IHaskellDisplay (Image P.PixelRGBA16) where
display = return . format
instance IHaskellDisplay (Image PixelRGBF) where
display = displayImageAsJpg . ImageRGBF
instance IHaskellDisplay (Image PixelRGBA8) where
display = displayImageAsJpg . ImageRGBA8
instance IHaskellDisplay (Image PixelRGBA16) where
display = displayImageAsJpg . ImageRGBA16
instance IHaskellDisplay (Image PixelYCbCr8) where
display = displayImageAsJpg . ImageYCbCr8
instance IHaskellDisplay (Image PixelCMYK8) where
display = displayImageAsJpg . ImageCMYK8
instance IHaskellDisplay (Image PixelCMYK16) where
display = displayImageAsJpg . ImageCMYK16
-- main rendering function
displayImageAsJpg :: DynamicImage -> IO Display
displayImageAsJpg renderable = do
switchToTmpDir
let filename = ".ihaskell.juicypixels.jpg"
-- Write the image
saveJpgImage 95 filename renderable
-- Convert to base64.
imgData <- readFile filename
return $ Display [jpg (imWidth renderable) (imHeight renderable) $ base64 imgData]
-- The type DynamicImage does not have a function to extract width and height
imWidth :: DynamicImage -> Int
imWidth img = w
where
(w, h) = imWidthHeight img
imHeight :: DynamicImage -> Int
imHeight img = h
where
(w, h) = imWidthHeight img
-- Helper functions to pattern match on the DynamicImage Constructors
imWidthHeight :: DynamicImage -> (Int, Int)
imWidthHeight (ImageY8 im) = imWH im
imWidthHeight (ImageY16 im) = imWH im
imWidthHeight (ImageYF im) = imWH im
imWidthHeight (ImageYA8 im) = imWH im
imWidthHeight (ImageYA16 im) = imWH im
imWidthHeight (ImageRGB8 im) = imWH im
imWidthHeight (ImageRGB16 im) = imWH im
imWidthHeight (ImageRGBF im) = imWH im
imWidthHeight (ImageRGBA8 im) = imWH im
imWidthHeight (ImageRGBA16 im) = imWH im
imWidthHeight (ImageYCbCr8 im) = imWH im
imWidthHeight (ImageCMYK8 im) = imWH im
imWidthHeight (ImageCMYK16 im) = imWH im
imWH :: (Image a) -> (Int, Int)
imWH im = (imageWidth im, imageHeight im)
format :: PngSavable a => Image a -> Display
format im@(Image w h _) = Display [png w h . base64 . toStrict . encodePng $ im]

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

View File

@ -1,23 +1,23 @@
-- The name of the package.
name: ihaskell-juicypixels
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.2.0.0
version: 1.1.0.1
-- A short (one-line) description of the package.
synopsis: IHaskell - IHaskellDisplay instances of the image types of the JuicyPixels package.
-- A longer description of the package.
description: IHaskellDisplay instances of the image types of the JuicyPixels package. They are displayed as .JPG images.
DynamicImages and Images of types PixelRGBA16, PixelRGBA8, PixelRGB16, PixelRGB8,
DynamicImages and Images of types PixelRGBA16, PixelRGBA8, PixelRGB16, PixelRGB8,
PixelYA16, PixelYA8, Pixel16, Pixel8, PixelCMYK16, PixelCMYK8, PixelF, Pixel32
are supported.
The module IHaskell.Juicypixels re-exports the modules IHaskell.Display and Codec.Picture.
are supported.
The module IHaskell.Juicypixels re-exports the modules IHaskell.Display and Codec.Picture.
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/ihaskell
@ -29,48 +29,45 @@ license: MIT
license-file: LICENSE
-- The package author(s).
author: Roland Senn
author: Roland Senn,
Will Yager
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: rsx@bluewin.ch
maintainer: rsx@bluewin.ch,
will.yager@gmail.com
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Juicypixels
-- Modules included in this library but not exported.
-- other-modules:
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
-- other-modules:
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
classy-prelude >=0.10.5,
build-depends: base >=4.9 && <5,
bytestring,
directory,
JuicyPixels >= 3.1.3,
ihaskell >= 0.5
ihaskell >= 0.6.2
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

View File

@ -1,42 +1,57 @@
{
"metadata": {
"language": "haskell",
"name": "",
"signature": "sha256:b9b36c162e37a16b252cd1f06e4c2991e0a80710e7fc184be82dd6b18e6dcf01"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
"cells": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"{-# LANGUAGE NoImplicitPrelude, TypeSynonymInstances, FlexibleInstances #-}\n",
"\n",
"import IHaskell.Display.Juicypixels\n",
" \n",
"myImage = generateImage pixelRenderer 250 300\n",
" where pixelRenderer x y = PixelRGB8 (fromIntegral x) (fromIntegral y) 128\n",
" \n",
"myImage "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
"cell_type": "markdown",
"metadata": {
"hidden": false
},
"source": [
"# Notebook test\n",
"\n",
"This IHaskell noteook should just test, whether IHaskell and JuicyPixels are properly installed and working.\n",
"\n",
"Just click in the box below and click on the \"Run\" command in the above menu. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"hidden": false,
"jupyter": {
"outputs_hidden": false
}
],
"metadata": {}
},
"outputs": [],
"source": [
"{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}\n",
"\n",
"import IHaskell.Display.Juicypixels\n",
"import Codec.Picture\n",
" \n",
"myImage = generateImage pixelRenderer 250 300\n",
" where pixelRenderer x y = PixelRGB8 (fromIntegral x) (fromIntegral y) 128\n",
" \n",
"myImage "
]
}
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Haskell",
"language": "haskell",
"name": "haskell"
},
"language_info": {
"codemirror_mode": "ihaskell",
"file_extension": ".hs",
"mimetype": "text/x-haskell",
"name": "haskell",
"pygments_lexer": "Haskell",
"version": "8.10.4"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -2,21 +2,23 @@
module IHaskell.Display.Magic () where
import IHaskell.Display
import Magic
import qualified Data.ByteString as B
import qualified Data.ByteString.Unsafe as B
import qualified Data.ByteString.Base64 as Base64
import qualified Data.ByteString.Char8 as Char
import Data.ByteString.UTF8
import qualified Data.ByteString.UTF8 as B
import Text.Read
import qualified Data.ByteString.Unsafe as B
import Data.Char
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import Text.Read
import Magic
import IHaskell.CSS (ihaskellCSS)
import IHaskell.Display
import IHaskell.IPython.Types (MimeType(MimeSvg))
import Data.ByteString.UTF8
instance IHaskellDisplay T.Text where
display = display . T.encodeUtf8
@ -35,7 +37,7 @@ withClass :: MagicClass -> B.ByteString -> DisplayData
withClass SVG = DisplayData MimeSvg . T.decodeUtf8
withClass (PNG w h) = png w h . T.decodeUtf8 . Base64.encode
withClass JPG = jpg 400 300 . T.decodeUtf8 . Base64.encode
withClass HTML = html . B.toString
withClass HTML = html' (Just ihaskellCSS) . B.toString
withClass LaTeX = latex . B.toString
withClass _ = plain . B.toString

View File

@ -10,6 +10,14 @@ cd ihaskell-magic
cabal install
```
On OSX:
```bash
brew install libmagic
brew link libmagic
stack install ihaskell-magic --extra-lib-dirs=/usr/local/lib --extra-include-dirs=/usr/local/include
```
The instances provided allow displaying images and text with markup using just one line:
```haskell
import qualified Data.ByteString as B

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

View File

@ -1,22 +1,22 @@
-- Initial ihaskell-display.cabal generated by cabal init. For further
-- Initial ihaskell-display.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
-- The name of the package.
name: ihaskell-magic
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.2.0.0
version: 0.3.0.1
-- A short (one-line) description of the package.
synopsis: IHaskell display instances for bytestrings
-- A longer description of the package.
-- description:
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/IHaskell
@ -30,39 +30,34 @@ license-file: LICENSE
-- The package author(s).
author: Adam Vogt
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: andrew.gibiansky@gmail.com
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Magic
-- Modules included in this library but not exported.
-- other-modules:
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
-- other-modules:
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
classy-prelude >=0.6,
build-depends: base >=4.9 && <5,
magic >= 1.0.8,
text,
bytestring,
@ -70,10 +65,10 @@ library
base64-bytestring,
ipython-kernel,
ihaskell >= 0.5
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

View File

@ -0,0 +1,44 @@
module IHaskell.Display.Matplotlib where
import qualified Data.ByteString.Char8 as Char
import qualified Data.ByteString.UTF8 as BSU
import qualified Data.Text.Encoding as T.Encoding
import System.IO.Temp
import System.FilePath ((</>))
import Graphics.Matplotlib
import IHaskell.Display
instance IHaskellDisplay Matplotlib where
display = graphDataDisplayBoth
-- Width and height
w, h :: Int
w = 300
h = 300
graphDataPNG :: Matplotlib -> IO DisplayData
graphDataPNG m = do
withSystemTempDirectory "ihaskell-matplotlib" $ \tmpdir -> do
let path = tmpdir </> "ihaskell-matplotlib.png"
-- Write the image.
res <- file path m
case res of
Left _ -> error "Matplotlib could not generate an immage"
Right _ -> do
-- Read back, and convert to base64.
imgData <- Char.readFile path
return $ png w h $ base64 imgData
graphDataSVG :: Matplotlib -> IO DisplayData
graphDataSVG m = do
res <- toSvg m
case res of
Left s -> error s
Right f -> return $ svg $ T.Encoding.decodeUtf8 $ BSU.fromString f
graphDataDisplayBoth :: Matplotlib -> IO Display
graphDataDisplayBoth fig = do
pngDisp <- graphDataPNG fig
svgDisp <- graphDataSVG fig
return $ Display [pngDisp, svgDisp]

View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2025 Andrea Rossato andrea.rossato@unitn.it
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
import Distribution.Simple
main = defaultMain

View File

@ -0,0 +1,69 @@
-- The name of the package.
name: ihaskell-matplotlib
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.1.0.1
-- A short (one-line) description of the package.
synopsis: IHaskell display instance for matplotlib (from matplotlib package)
-- A longer description of the package.
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/ihaskell
-- The license under which the package is released.
license: MIT
-- The file containing the license text.
license-file: LICENSE
-- The package author(s).
author: Andrea Rossatoe <andrea.rossato@unitn.it>
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: Andrea Rossato <andrea.rossato@unitn.it>,
Andrew Gibiansky <andrew.gibiansky@gmail.com>
-- A copyright notice.
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Matplotlib
ghc-options: -O -Wall -Wno-orphans
-- Other library packages from which modules are imported.
build-depends: base >=4.9 && <5,
bytestring,
utf8-string,
text,
temporary,
filepath,
matplotlib,
ihaskell >= 0.6.2
-- Directories containing source files.
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

View File

@ -1,49 +0,0 @@
{-# LANGUAGE NoImplicitPrelude, TypeSynonymInstances, QuasiQuotes, FlexibleInstances, OverloadedStrings #-}
module IHaskell.Display.Parsec () where
import ClassyPrelude hiding (fromList)
import System.Random
import Data.String.Here
import Data.HashMap.Strict as Map
import Text.Parsec (parse, sourceLine, sourceColumn)
import Text.Parsec.String (Parser)
import Text.Parsec.Error (errorPos, ParseError)
import Data.Aeson
import IHaskell.Display
instance Show a => IHaskellDisplay (Parser a) where
display renderable = return $ many [Display [javascript js], Display [html dom]]
where
dom = [hereFile|widget.html|]
js = [hereFile|widget.js|]
-- | Text to parse.
data ParseText = ParseText String
instance FromJSON ParseText where
parseJSON (Object v) = ParseText <$> v .: "text"
parseJSON _ = fail "Expecting object"
-- | Output of parsing.
instance Show a => ToJSON (Either ParseError a) where
toJSON (Left err) = object
[ "status" .= ("error" :: String)
, "line" .= sourceLine (errorPos err)
, "col" .= sourceColumn (errorPos err)
, "msg" .= show err
]
toJSON (Right result) = object ["status" .= ("success" :: String), "result" .= show result]
instance Show a => IHaskellWidget (Parser a) where
-- Name for this widget.
targetName _ = "parsec"
-- When we rece
comm widget (Object dict) publisher = do
let key = "text" :: Text
Just (String text) = Map.lookup key dict
result = parse widget "<interactive>" $ unpack text
publisher $ toJSON result

View File

@ -1,2 +0,0 @@
import Distribution.Simple
main = defaultMain

View File

@ -1,6 +0,0 @@
<!-- CodeMirror component -->
<link rel="stylesheet" href="/static/components/codemirror/addon/lint/lint.css">
<!-- Parsec widget DOM -->
<form><textarea id="parsec-editor">Insert parser text here...</textarea></form>
<pre id="parsec-output"></pre>

View File

@ -1,288 +0,0 @@
// Only load this script once.
var kernel = IPython.notebook.kernel;
var initialized = kernel !== undefined && kernel != null;
console.log("Initialized", initialized);
if (initialized && window.parsecWidgetRegistered === undefined) {
// Do not load this script again.
window.parsecWidgetRegistered = true;
// Codemirror lint.js
// Must be included here, otherwise linting cannot happen the first time the widget is loaded.
(function() {
"use strict";
var GUTTER_ID = "CodeMirror-lint-markers";
var SEVERITIES = /^(?:error|warning)$/;
function showTooltip(e, content) {
var tt = document.createElement("div");
tt.className = "CodeMirror-lint-tooltip";
tt.appendChild(content.cloneNode(true));
document.body.appendChild(tt);
function position(e) {
if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position);
tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + "px";
tt.style.left = (e.clientX + 5) + "px";
}
CodeMirror.on(document, "mousemove", position);
position(e);
if (tt.style.opacity != null) tt.style.opacity = 1;
return tt;
}
function rm(elt) {
if (elt.parentNode) elt.parentNode.removeChild(elt);
}
function hideTooltip(tt) {
if (!tt.parentNode) return;
if (tt.style.opacity == null) rm(tt);
tt.style.opacity = 0;
setTimeout(function() { rm(tt); }, 600);
}
function showTooltipFor(e, content, node) {
var tooltip = showTooltip(e, content);
function hide() {
CodeMirror.off(node, "mouseout", hide);
if (tooltip) { hideTooltip(tooltip); tooltip = null; }
}
var poll = setInterval(function() {
if (tooltip) for (var n = node;; n = n.parentNode) {
if (n == document.body) return;
if (!n) { hide(); break; }
}
if (!tooltip) return clearInterval(poll);
}, 400);
CodeMirror.on(node, "mouseout", hide);
}
function LintState(cm, options, hasGutter) {
this.marked = [];
this.options = options;
this.timeout = null;
this.hasGutter = hasGutter;
this.onMouseOver = function(e) { onMouseOver(cm, e); };
}
function parseOptions(cm, options) {
if (options instanceof Function) return {getAnnotations: options};
if (!options || options === true) options = {};
if (!options.getAnnotations) options.getAnnotations = cm.getHelper(CodeMirror.Pos(0, 0), "lint");
if (!options.getAnnotations) throw new Error("Required option 'getAnnotations' missing (lint addon)");
return options;
}
function clearMarks(cm) {
var state = cm.state.lint;
if (state.hasGutter) cm.clearGutter(GUTTER_ID);
for (var i = 0; i < state.marked.length; ++i)
state.marked[i].clear();
state.marked.length = 0;
}
function makeMarker(labels, severity, multiple, tooltips) {
var marker = document.createElement("div"), inner = marker;
marker.className = "CodeMirror-lint-marker-" + severity;
if (multiple) {
inner = marker.appendChild(document.createElement("div"));
inner.className = "CodeMirror-lint-marker-multiple";
}
if (tooltips != false) CodeMirror.on(inner, "mouseover", function(e) {
showTooltipFor(e, labels, inner);
});
return marker;
}
function getMaxSeverity(a, b) {
if (a == "error") return a;
else return b;
}
function groupByLine(annotations) {
var lines = [];
for (var i = 0; i < annotations.length; ++i) {
var ann = annotations[i], line = ann.from.line;
(lines[line] || (lines[line] = [])).push(ann);
}
return lines;
}
function annotationTooltip(ann) {
var severity = ann.severity;
if (!SEVERITIES.test(severity)) severity = "error";
var tip = document.createElement("div");
tip.className = "CodeMirror-lint-message-" + severity;
tip.appendChild(document.createTextNode(ann.message));
return tip;
}
function startLinting(cm) {
var state = cm.state.lint, options = state.options;
if (options.async)
options.getAnnotations(cm, updateLinting, options);
else
updateLinting(cm, options.getAnnotations(cm.getValue(), options.options));
}
function updateLinting(cm, annotationsNotSorted) {
clearMarks(cm);
var state = cm.state.lint, options = state.options;
var annotations = groupByLine(annotationsNotSorted);
for (var line = 0; line < annotations.length; ++line) {
var anns = annotations[line];
if (!anns) continue;
var maxSeverity = null;
var tipLabel = state.hasGutter && document.createDocumentFragment();
for (var i = 0; i < anns.length; ++i) {
var ann = anns[i];
var severity = ann.severity;
if (!SEVERITIES.test(severity)) severity = "error";
maxSeverity = getMaxSeverity(maxSeverity, severity);
if (options.formatAnnotation) ann = options.formatAnnotation(ann);
if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));
if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {
className: "CodeMirror-lint-mark-" + severity,
__annotation: ann
}));
}
if (state.hasGutter)
cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1,
state.options.tooltips));
}
if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);
}
function onChange(cm) {
var state = cm.state.lint;
clearTimeout(state.timeout);
state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);
}
function popupSpanTooltip(ann, e) {
var target = e.target || e.srcElement;
showTooltipFor(e, annotationTooltip(ann), target);
}
// When the mouseover fires, the cursor might not actually be over
// the character itself yet. These pairs of x,y offsets are used to
// probe a few nearby points when no suitable marked range is found.
var nearby = [0, 0, 0, 5, 0, -5, 5, 0, -5, 0];
function onMouseOver(cm, e) {
if (!/\bCodeMirror-lint-mark-/.test((e.target || e.srcElement).className)) return;
for (var i = 0; i < nearby.length; i += 2) {
var spans = cm.findMarksAt(cm.coordsChar({left: e.clientX + nearby[i],
top: e.clientY + nearby[i + 1]}));
for (var j = 0; j < spans.length; ++j) {
var span = spans[j], ann = span.__annotation;
if (ann) return popupSpanTooltip(ann, e);
}
}
}
function optionHandler(cm, val, old) {
if (old && old != CodeMirror.Init) {
clearMarks(cm);
cm.off("change", onChange);
CodeMirror.off(cm.getWrapperElement(), "mouseover", cm.state.lint.onMouseOver);
delete cm.state.lint;
}
if (val) {
var gutters = cm.getOption("gutters"), hasLintGutter = false;
for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;
var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);
cm.on("change", onChange);
if (state.options.tooltips != false)
CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver);
startLinting(cm);
}
}
CodeMirror.defineOption("lintWith", false, optionHandler); // deprecated
CodeMirror.defineOption("lint", false, optionHandler); // deprecated
})();
var parsecWidgetCounter = 0;
// Register the comm target.
var ParsecWidget = function (comm) {
this.comm = comm;
this.comm.on_msg($.proxy(this.handler, this));
// Get the cell that was probably executed.
// The msg_id:cell mapping will make this possible without guessing.
this.cell = IPython.notebook.get_cell(IPython.notebook.get_selected_index()-1);
// Store this widget so we can use it from callbacks.
var widget = this;
// Editor options.
var options = {
lineNumbers: true,
// Show parsec errors as lint errors.
gutters: ["CodeMirror-lint-markers"],
lintWith: {
"getAnnotations": function(cm, update, opts) {
var errs = [];
if (widget.hasError) {
var col = widget.error["col"];
var line = widget.error["line"];
errs = [{
from: CodeMirror.Pos(line - 1, col - 1),
to: CodeMirror.Pos(line - 1, col),
message: widget.error["msg"],
severity: "error"
}];
}
update(cm, errs);
},
"async": true,
}
};
// Create the editor.
var out = this.cell.output_area.element;
this.textarea = out.find("#parsec-editor")[0];
this.output = out.find("#parsec-output")[0];
// Give the elements a different name.
this.textarea.id += parsecWidgetCounter;
this.output.id += parsecWidgetCounter;
parsecWidgetCounter++;
var editor = CodeMirror.fromTextArea(this.textarea, options);
var editor = editor;
// Update every key press.
editor.on("keyup", function() {
var text = editor.getDoc().getValue();
comm.send({"text": text});
});
};
ParsecWidget.prototype.handler = function(msg) {
var data = msg.content.data;
this.hasError = (data["status"] == "error");
console.log(this.hasError);
if (this.hasError) {
this.output.innerHTML = data["msg"];
this.error = data;
} else {
this.output.innerHTML = data["result"];
}
};
// Register this widget.
IPython.notebook.kernel.comm_manager.register_target('parsec', IPython.utils.always_new(ParsecWidget));
console.log("Registering Parsec widget.");
}

View File

@ -1,46 +1,46 @@
{-# LANGUAGE NoImplicitPrelude #-}
module IHaskell.Display.Plot where
import ClassyPrelude
import qualified Data.ByteString.Char8 as Char
import qualified Data.ByteString as BS
import qualified Data.Text.Encoding as T.Encoding
import Graphics.Rendering.Plot
import Control.Monad (void)
import Control.Applicative ((<$>))
import System.IO.Temp
import System.FilePath ((</>))
import IHaskell.Display
instance IHaskellDisplay (Figure a) where
display fig = do
let figure = fig >> return ()
let figure = void fig
pngDisp <- figureData figure PNG
svgDisp <- figureData figure SVG
return $ Display [pngDisp, svgDisp]
figureData :: Figure () -> OutputType -> IO DisplayData
figureData figure format = do
switchToTmpDir
withSystemTempDirectory "ihaskell-plot" $ \tmpdir -> do
-- Width and height
let size = 300
w = size
h = size
-- Width and height
let size = 300
w = size
h = size
-- Write the image.
let fname = ".ihaskell-plot." ++ extension format
writeFigure format fname (w, h) figure
let path = case format of
PNG -> tmpdir </> "ihaskell-plot.png"
SVG -> tmpdir </> "ihaslell-plot.svg"
_ -> error "Unreachable case"
-- Read back, and convert to base64.
imgData <- readFile fname
let value =
case format of
PNG -> png w h $ base64 imgData
SVG -> svg $ Char.unpack imgData
_ -> error "Unsupported format for display"
-- Write the image.
writeFigure format path (w, h) figure
return value
where
extension SVG = "svg"
extension PNG = "png"
extension _ = ""
case format of
PNG -> do
-- Read back, and convert to base64.
imgData <- Char.readFile path
pure $ png w h $ base64 imgData
SVG -> do
imgData <- BS.readFile path
pure $ svg $ T.Encoding.decodeUtf8 imgData
_ -> error "Unreachable case"

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

View File

@ -1,19 +1,19 @@
-- The name of the package.
name: ihaskell-plot
-- The package version. See the Haskell package versioning policy (PVP)
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.1.0.0
version: 0.3.0.1
-- A short (one-line) description of the package.
synopsis: IHaskell display instance for Plot (from plot package)
-- A longer description of the package.
-- description:
-- description:
-- URL for the project homepage or repository.
homepage: http://www.github.com/gibiansky/ihaskell
@ -27,45 +27,44 @@ license-file: LICENSE
-- The package author(s).
author: Sumit Sahrawat <sumit.sahrawat.apm13@itbhu.ac.in>
-- An email address to which users can send suggestions, bug reports, and
-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer: Sumit Sahrawat <sumit.sahrawat.apm13@itbhu.ac.in>,
Andrew Gibiansky <andrew.gibiansky@gmail.com>
-- A copyright notice.
-- copyright:
-- copyright:
category: Development
build-type: Simple
-- Extra files to be distributed with the package, such as examples or a
-- Extra files to be distributed with the package, such as examples or a
-- README.
-- extra-source-files:
-- extra-source-files:
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.16
cabal-version: 1.16
library
-- Modules exported by the library.
exposed-modules: IHaskell.Display.Plot
-- Modules included in this library but not exported.
-- other-modules:
-- Language extensions.
default-extensions: DoAndIfThenElse
OverloadedStrings
-- other-modules:
-- Other library packages from which modules are imported.
build-depends: base >=4.6 && <4.9,
classy-prelude >= 0.10.5,
build-depends: base >=4.9 && <5,
plot,
bytestring,
ihaskell >= 0.5
text,
temporary,
filepath,
hmatrix >= 0.10,
ihaskell >= 0.6.2
-- Directories containing source files.
-- hs-source-dirs:
-- hs-source-dirs:
-- Base language which the package is written in.
default-language: Haskell2010

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

View File

@ -1,5 +1,5 @@
name: ihaskell-rlangqq
version: 0.2.1.1
version: 0.3.0.0
synopsis: a rDisp quasiquote to show plots from Rlang-QQ in IHaskell
license: BSD3
license-file: LICENSE
@ -7,22 +7,22 @@ author: Adam Vogt <vogt.adam@gmail.com>
maintainer: Adam Vogt <vogt.adam@gmail.com>
category: Development
build-type: Simple
cabal-version: >=1.10
cabal-version: 1.16
library
exposed-modules: IHaskell.Display.Rlangqq
other-extensions: TupleSections, TemplateHaskell
build-depends: base <5,
Rlang-QQ >= 0.3,
directory >=1.2 && <1.3,
filepath >=1.3 && <1.5,
bytestring >=0.10 && <0.11,
base64-bytestring >=1.0 && <1.1,
ihaskell >= 0.6.1,
ihaskell-blaze >=0.2 && <0.3,
blaze-html >=0.6 && <0.9,
split >=0.2 && <0.3,
directory >=1.2,
filepath >=1.3,
bytestring >=0.10,
base64-bytestring >=1.0,
ihaskell >= 0.6.2,
ihaskell-blaze >=0.3,
blaze-html >=0.6,
split >=0.2,
stm -any,
xformat >=0.1 && <0.2,
xformat >=0.1,
template-haskell >= 2.8
default-language: Haskell2010

View File

@ -1,2 +1,3 @@
import Distribution.Simple
import Distribution.Simple
main = defaultMain

Some files were not shown because too many files have changed in this diff Show More