Commit Graph

652 Commits

Author SHA1 Message Date
Edwin Brady
5ed27947cb Small concurrency fixes
Conditional variables with timeout in Chez didn't work, so changed to a
consistent meaning of the timeout (microseconds). Also fix linearity of
unsafePerformIO.
2020-06-23 19:06:30 +01:00
Edwin Brady
1e6314c4cc
Merge pull request #345 from edwinb/hasio
HasIO interface for IO actions
2020-06-21 20:24:29 +01:00
TomasPuverle
833a24cb45
Updated documentation for export (#344)
Co-authored-by: Thomas Herzog <thomas-github@poto.cafe>
2020-06-21 20:17:34 +01:00
MarcelineVQ
d94b86e62c change namespace parser to have minimum indentation
The namespace parser was not requiring a minimum indentation and instead
based its indentation on the following line, which meant that a line like:

namespace Foo
foodef : Int

placed foodef into namespace Foo instead of the module's top level.
And so made it unclear when a namespace ends.
2020-06-21 20:17:00 +01:00
Edwin Brady
413e75b6a3 Fix documentaton error 2020-06-21 19:56:23 +01:00
Edwin Brady
0316dfa417 Remove reference to MonadIO from CHANGELOG 2020-06-21 19:41:18 +01:00
Edwin Brady
dbdf7dab3d Back to HasIO, remove MonadIO
Following a fairly detailed discussion on slack, the feeling is
generally that it's better to have a single interface. While precision
is nice, it doesn't appear to buy us anything here. If that turns out to
be wrong, or limiting somehow, we can revisit it later. Also:

- it's easier for backend authors if the type of IO operations is
  slightly less restrictive. For example, if it's in HasIO, that limits
  alternative implementations, which might be awkward for some
  alternative back ends.
- it's one less extra detail to learn. This is minor, but there needs to
  be a clear advantage if there's more detail to learn.
- It is difficult to think of an underlying type that can't have a Monad
  instance (I have personally never encountered one - if they turns out
  to exist, again, we can revisit!)
2020-06-21 19:21:22 +01:00
Edwin Brady
1b15463746 Update libraries and docs with HasIO/MonadIO 2020-06-21 15:25:40 +01:00
Edwin Brady
28855088c2 Split HasIO into HasIO and MonadIO
For things which don't require (>>=), HasIO is fine, otherwise MonadIO
gives access to the monad interface.
2020-06-21 14:46:14 +01:00
Niklas Larsson
dcf4c88e8c
Merge pull request #318 from vladimyr/homebrew
Add Homebrew installation instructions
2020-06-21 14:20:58 +02:00
Dario Vladovic
a76f4e64f5 Add VS Code settings to gitignore 2020-06-21 13:18:24 +01:00
Dario Vladovic
cc61d4d3d8
Add Homebrew installation instructions 2020-06-21 13:37:36 +02:00
MarcelineVQ
6f77c06e3e reduce sugar in confusing error messages
This addresses the case where you'd see an error of:

Ambiguous elaboration at:
	r <- pure []
Possible correct results:
	[]
	[]
	[]
By changing it to:

Possible correct results:
	Main.Nil
	PrimIO.Nil
	Prelude.Nil
2020-06-21 11:46:08 +01:00
Niklas Larsson
06018ef6c7
Merge pull request #349 from mbaulch/fixsupport
Import fgetc and listen from libc rather than support libs
2020-06-21 11:30:57 +02:00
Matthew Baulch
916c3e7090 Import fgetc and listen from libc (where they actually reside) rather than the support libs 2020-06-21 15:24:45 +10:00
Edwin Brady
d12487f529 HasIO interface for IO actions
Also updates the Prelude and some base libraries to use HasIO rather
than using IO directly.
2020-06-21 01:18:43 +01:00
Niklas Larsson
6505be6c06
Merge pull request #341 from idris-lang/melted-patch-1
Add note about the default codegen
2020-06-21 00:35:20 +02:00
Ohad Kammar
59588a3f3a
Merge pull request #316 from ohad/fancy-preorder-reasoning
Fancy preorder reasoning
2020-06-20 22:47:25 +01:00
Niklas Larsson
1780bd2aba
Add note about the default codegen 2020-06-20 22:56:35 +02:00
Niklas Larsson
d31e59bacf
Merge pull request #327 from chrrasmussen/add-builddir-and-output-dir
Allow overriding build and output directory
2020-06-20 20:52:33 +02:00
Niklas Larsson
0d2871db3c
Merge pull request #315 from ShinKage/repl-import-module
Module command to import module in REPL
2020-06-20 20:51:17 +02:00
Christian Rasmussen
3cbcdec4a0 Add test for builddir and outputdir fields 2020-06-20 17:24:05 +02:00
Christian Rasmussen
4fc77db2fb Silence compile message when compiling Chez programs 2020-06-20 17:23:51 +02:00
Christian Rasmussen
25f8b59c66 Fix the 'main' field in the package description
Previously it always used 'Main' as the namespace
2020-06-20 17:23:51 +02:00
Christian Rasmussen
ceb7a30c09 Update changelog 2020-06-20 17:23:51 +02:00
Christian Rasmussen
21a1245c10 Add --source-dir to CLI 2020-06-20 17:23:51 +02:00
Christian Rasmussen
67cdbd3ce4 Rename dir_prefix to prefix_dir 2020-06-20 17:23:51 +02:00
Christian Rasmussen
1f0ca85678 Allow overriding the build directory and the output directory
The output directory was previously called the executable directory, but I changed it because the output is not always an executable (depending on the code generator).

The code generators can now distinguish between where to place the (temporary) build files and the resulting output files.
2020-06-20 17:23:51 +02:00
Edwin Brady
8c556d0c26
Merge pull request #340 from edwinb/strefs
Control.Monad.ST and Refs interface
2020-06-20 13:16:27 +01:00
Edwin Brady
b1500893e1
Merge pull request #339 from edwinb/fix338
Check consructor names are not defined
2020-06-20 13:01:34 +01:00
Edwin Brady
f9318cf477 Correct note in CHANGELOG 2020-06-20 12:55:42 +01:00
Edwin Brady
d18aac7afd Move Data.ST to Control.Monad.ST
Seems a more appropriate place in the hierarchy (also roughly consistent
with where it is in Haskell base)
2020-06-20 12:51:38 +01:00
Edwin Brady
598f09be35 Check consructor names are not defined
We do this when elaborating the data type, but not when adding the
individual constructors, so weren't catching the case of repeated
constructors within the same type. Fixes #338
2020-06-20 12:40:44 +01:00
Niklas Larsson
89e3503ee1
Merge pull request #332 from cypheon/vmcode-constructor-names
VMCODE: Carry over required type names for named constructors without a tag
2020-06-20 11:44:49 +02:00
Edwin Brady
ab03249d49 Add Data.STRef and a generic Ref interface 2020-06-20 00:46:20 +01:00
Denis Buzdalov
c121181776
Function mapping Not (x=True) to x=False was added for Bools (#322) 2020-06-19 11:13:13 +01:00
Kamiλ Shakirov
da0e056d7e
Add 'optional' command line options (#309) 2020-06-19 10:36:07 +01:00
Mark Barbone
59dceb857f Make reference and source agree about literate markdown 2020-06-19 10:08:47 +01:00
Johann Rudloff
d161281dea VMCODE: Carry over required type names for named constructors without a tag. 2020-06-19 07:38:43 +02:00
Niklas Larsson
1e780615b6
Merge pull request #330 from melted/fix_start_script
Fix windows script
2020-06-19 03:48:47 +02:00
Niklas Larsson
b593eb12d2 Fix windows script 2020-06-19 03:46:04 +02:00
Niklas Larsson
38b05a98d8
Merge pull request #329 from idris-lang/fix-racket-ci
Fix racket CI
2020-06-18 16:46:05 +02:00
Niklas Larsson
3e53551d8b
Fix racket CI 2020-06-18 16:00:26 +02:00
Niklas Larsson
649e1989e0
Merge pull request #326 from melted/win_clean
No need to check for BSD on Windows
2020-06-18 14:50:16 +02:00
Niklas Larsson
fbf4a667b1
Merge pull request #325 from ska80/fix-install-api
Fix 'install-api' makefile target
2020-06-18 14:19:39 +02:00
Niklas Larsson
69a716243c No need to check for BSD on Windows 2020-06-18 14:18:39 +02:00
Kamil Shakirov
9e42eb1be1 Fix 'install-api' makefile target
When building from a clean state `src/IdrisPaths.idr` must be generated first
before installing `idris2api.ipkg`.
2020-06-18 17:19:48 +06:00
Niklas Larsson
12957ea614
Merge pull request #324 from idris-lang/melted-patch-1
Mention custom codegens in the change log
2020-06-18 13:04:36 +02:00
Niklas Larsson
9ebe6c9cc7
Mention custom codegens in the change log 2020-06-18 12:30:35 +02:00
Nicolas Biri
c72cb849a8 Add missing modules in base.ipkg 2020-06-18 10:32:51 +01:00