Commit Graph

1065 Commits

Author SHA1 Message Date
Matus Tejiscak
934cb29a80 Fix paths in record004. 2020-04-21 23:45:55 +02:00
Matus Tejiscak
f4fa0340c1 Fix merge fallout. 2020-04-21 23:32:49 +02:00
Matus Tejiscak
e49364ff56 Merge branch 'master' into records 2020-04-21 23:11:40 +02:00
Matus Tejiscak
cb02395acb Rename record003 to record004. 2020-04-21 22:56:20 +02:00
Edwin Brady
be8b157ead
Merge pull request #290 from LibreCybernetics/minor-unicode-identifier-fixes
Refactor Parser.Lexer.{ident, OpCode} for reuse in IDEMode
2020-04-21 18:09:58 +01:00
Edwin Brady
1a41a265b9
Merge pull request #299 from chrrasmussen/fix-chez-in-folder-with-spaces
Allow spaces in file path for generated Chez programs
2020-04-21 17:04:37 +01:00
Fabián Heredia Montiel
6ea8b477ed Refactor ident to reuse in IDEMode, fixes out of sync bug.
Related: 1a4f424259 on 2019-September-28
2020-04-21 09:37:36 -05:00
Christian Rasmussen
2a3213d10a
Merge branch 'master' into fix-chez-in-folder-with-spaces 2020-04-21 15:01:01 +02:00
Edwin Brady
2b6000ecac Shuffle some tests around
Making sure that tests which use chez are run after we've checked chez
is installed
2020-04-21 12:03:49 +01:00
Edwin Brady
2ad1621a3e Regression test for using named implementations 2020-04-21 11:51:44 +01:00
Edwin Brady
d39c701f28 Add 'using' hints at the right time
They need to be added before checking the top level types of the
interface methods, because those types will use them.
Fixes #291
2020-04-21 11:47:35 +01:00
Edwin Brady
71cae356e2
Merge pull request #281 from ziman/fix-cast-double-int
Fix cast to integral types
2020-04-21 11:24:09 +01:00
Edwin Brady
627d2c2f2b
Merge pull request #292 from ohad/fully-abstract-records
Fully abstract records
2020-04-21 10:59:51 +01:00
Edwin Brady
9aca77c5dd
Merge pull request #293 from gallais/casetree
Refactoring code as I read through it
2020-04-21 10:54:12 +01:00
Edwin Brady
60c4f8e178
Merge pull request #287 from Porges/patch-1
Fix Idris1 download link
2020-04-21 10:52:00 +01:00
Edwin Brady
afa90c6ddc
Merge pull request #284 from abailly/integral-operations
use quotient on scheme backends
2020-04-21 10:51:18 +01:00
Edwin Brady
8a0063a016
Merge pull request #280 from gallais/comments
[ fix #279 ] comment delimiters with more than one dash
2020-04-21 10:49:24 +01:00
Edwin Brady
69e774bd00 Merge branch 'jeetu7-master' 2020-04-21 10:48:11 +01:00
Edwin Brady
9930b64c1c Merge branch 'master' of https://github.com/jeetu7/Idris2 into jeetu7-master 2020-04-21 10:47:38 +01:00
Edwin Brady
ac277ce6d0 Erase the World, with care
We can erase things of type %World, which opens up more possibilities of
newtype and helps optimise IO, but we need to be sure that the side
effecting operations aren't optimised away as a result because we no
longer have to inspect the newtype. Therefore, if optimising away a case
analysis on a newtype with a %World deleted, add a let binding for the
scrutinee of the case, and flag it as non-inlinable.
2020-04-21 10:47:19 +01:00
Edwin Brady
5ea11cf0f5
Merge pull request #282 from abailly/network-binary
provide building blocks for binary network I/O
2020-04-21 10:45:52 +01:00
Edwin Brady
d3d5e22011
Merge pull request #274 from ska80/tutorial/typos
Fix some typos in the tutorial
2020-04-21 10:39:53 +01:00
Edwin Brady
4b65d8d6fc
Merge pull request #273 from jfdm/badges
Added a travis badge because it's good to have badges...
2020-04-21 10:39:09 +01:00
Edwin Brady
7cd9964d4f Comment correction
The comments don't get type checked, but this was rather important :).
2020-04-19 23:45:30 +01:00
Edwin Brady
f6bbfb3dee Remove costly 'swapBlocks' in lambda lifter
No need if we separate the context into arguments from the outer scope,
and arguments from the current scope. Needs care to compile correctly,
though.
2020-04-19 23:42:13 +01:00
Edwin Brady
1734841275 Add a lambda lifter
It's not actually used as part of any compilation pipeline yet, and I've
only tested it by eyeballing the output, but it'll be useful soon, and
it's good for it to be available to any new back ends that might need
it. It will need some optimisation.
2020-04-19 22:57:10 +01:00
Edwin Brady
8fccd5f2a3 Properly erase constructor arguments
That is, really erase the argument position rather than just putting
'erased there. It doesn't make a huge difference to the generated scheme
performance, but since we can always do this for constructors, we might
as well.
2020-04-19 19:43:51 +01:00
Edwin Brady
44c01f83d2 Move outermost lambdas to top level
This improves runtime performance a bit since it avoids creating some
unnecessary closures (and is a preliminary step to lambda lifting, which
might help for some back ends).
2020-04-19 16:49:25 +01:00
Matus Tejiscak
ae6e7a7d95 Fix record projections. 2020-04-19 00:35:34 +02:00
Christian Rasmussen
4d2b270db6 Allow spaces in file path for generated Chez programs 2020-04-18 18:18:02 +02:00
Matus Tejiscak
f37d69ceb7 Add tests/idris2/record003. 2020-04-18 14:04:30 +02:00
Matus Tejiscak
b977bc1974 Fix dotted getters in parameters blocks. 2020-04-18 13:56:51 +02:00
Matus Tejiscak
ae8e9c5f6d Use a local function to parse names. 2020-04-18 12:52:00 +02:00
Matus Tejiscak
2d02899679 Adjust some tests. 2020-04-18 12:19:17 +02:00
Matus Tejiscak
3e398584b3 Print non-namespaced idents backwards-compatibly. 2020-04-18 12:00:23 +02:00
Matus Tejiscak
f834c283ea Use pragmas in the TTImp parser. 2020-04-18 11:49:15 +02:00
Matus Tejiscak
d30c108a9b Print record updates with dots. 2020-04-18 11:41:33 +02:00
Matus Tejiscak
a997a4b8fe Make the record update syntax use dots. 2020-04-18 11:38:45 +02:00
Matus Tejiscak
d1bcb124b6 More fixes. 2020-04-18 10:01:19 +02:00
Matus Tejiscak
c53e675c33 Add %undotted_record_projections pragma. 2020-04-18 01:10:56 +02:00
Matus Tejiscak
3469e033ed Disambiguate RF and UN properly. 2020-04-18 00:53:12 +02:00
Matus Tejiscak
8a0d1b29c7 Also generate old-style projections. 2020-04-18 00:35:24 +02:00
Matus Tejiscak
32de5f0966 Enable Namespace.(.field). 2020-04-18 00:22:16 +02:00
Matus Tejiscak
b745ec0e8b Fix userNameRoot. 2020-04-17 23:13:40 +02:00
Matus Tejiscak
85019a75d9 More fixups. 2020-04-17 22:48:54 +02:00
Matus Tejiscak
c36250f271 Fix operator names. 2020-04-17 21:55:49 +02:00
Matus Tejiscak
c450d82087 Fix keywords. 2020-04-17 21:51:10 +02:00
Matus Tejiscak
6987685b55 Lex pragmas separately. 2020-04-17 21:32:39 +02:00
Matus Tejiscak
898095a074 More fixups. 2020-04-17 21:17:07 +02:00
Matus Tejiscak
ab04e95ce7 Specialise dotted namespaces as lexemes. 2020-04-17 20:08:56 +02:00