Commit Graph

930 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
Alex Humphreys
565ede2406 Update linear.rst
Fix typo
2020-06-22 21:23:45 +01:00
Rui Barreiro
7c7f7efe04 test node019 runs 2020-06-22 20:57:25 +01:00
Stiopa Koltsov
c140605a0f Extract Prelude.Basics, Prelude.Uninhabited from Prelude 2020-06-22 18:10:06 +01:00
Dario Vladovic
9cc1215f6c Format Homebrew install code block 2020-06-22 17:17:11 +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
Stiopa Koltsov
ac329c337c Insert @generated marker into generated Scheme files
* `@generated` is a marked used by Phabricator to mark generated files,
  any other marker would do
* it's easier to explore source tree when it's clear which files are sources
  and which are generated
2020-06-21 19:32:49 +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
Stiopa Koltsov
736ae1ca45 Better TTC data is in an older format message 2020-06-21 18:43:31 +01:00
Rui Barreiro
ca0c8f9d42 node018 passes 2020-06-21 17:54:50 +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
Csaba Hruska
6de225e4be add unit test for constructor duplicate 2020-06-20 23:39:03 +02:00
Niklas Larsson
1780bd2aba
Add note about the default codegen 2020-06-20 22:56:35 +02:00
Rui Barreiro
599789dfcd optim to ignore the value of unused lets 2020-06-20 21:41:31 +01: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
Rui Barreiro
1d2f3d8883 Merge branch 'master' of github.com:idris-lang/Idris2 into javascript 2020-06-20 15:11:08 +01: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
Rui Barreiro
a8a3681ee9 arrays 2020-06-20 13:05:58 +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
MarcelineVQ
a44c8ddd5a change how unelabBinder shows names
unelabBinder was losing information for the purpose of displaying names
nicely. This is typically wanted but when working with elabortation it's
useful to have all the information you can get. Things like record field
names would be lost when querying with GetType but are now retained.
2020-06-19 22:54:05 -07:00
Edwin Brady
ab03249d49 Add Data.STRef and a generic Ref interface 2020-06-20 00:46:20 +01:00
Rui Barreiro
525011eaff test node006 2020-06-19 17:00:59 +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