Commit Graph

41 Commits

Author SHA1 Message Date
Guillaume Allais
43c5b5263c [ cleanup ] --timing levels 2022-04-13 14:37:43 +01:00
Edwin Brady
94088bea80 Support for incremental compilation with Chez
This adds a new flag '--inc <backend>' which, if set, compiles all
modules incrementally, and for executables, links the incrementally
compiled modules rather than building the whole program.

Also, adds an environment variable IDRIS2_INC_CGS for providing a comma
separated list of backends to use for incremental builds.

Also, adds '--whole-program', which overrides incremental builds for an
executable.

Incremental builds are much faster if there's nothing to recompile, but
for the Chez backend, generate code which runs at about half the speed.

Currently only works for Chez - other backends ignore the flag.

Also, incremental building of an executable will only work if *all*
required modules have been built incrementally for the backend in use.
2021-06-27 15:40:23 +01:00
Edwin Brady
6d37471ccc Add --profile flag
If set, when compiling this generates an executable which generates
profiling data. Currently supported by Racket and Chez, other backends
silently ignore it.
2021-04-29 15:18:59 +01:00
Edwin Brady
1d8166b1b2 Version number constraints in 'depends' field
Now reporting an error if we can't find a package that satisfies the
constraints. The version number field can still be a string (as it used
to be) but will give a deprecation warning - and the old style version
string wasn't used anyway.

Version constraints can have an upper and/or lower bound, which can be
inclusive or not.
2021-02-27 17:58:52 +00:00
Giuseppe Lomurno
4e2f0a58e9 Internalized contrib libraries and removed dependency 2021-01-21 14:56:53 +01:00
Niklas Larsson
4a5ca77cbe Make the idris2 executable depend on the idris2 lib 2020-07-10 12:46:44 +02:00
Niklas Larsson
a5b101dc3c Update ipkg files 2020-07-10 11:03:21 +02:00
Edwin Brady
23cbc28b1d
Merge pull request #415 from rbarreiro/javascript
Javascript
2020-07-08 22:27:58 +01:00
Edwin Brady
ff46a8db14 Initial implementation of :doc
It's not pretty, but at least it exists now
2020-07-08 15:52:57 +01:00
Rui Barreiro
f8f09858e8 Merge branch 'master' of github.com:idris-lang/Idris2 into javascript 2020-06-17 23:48:39 +01:00
Niklas Larsson
5221954aca Prepare for additional codegens
The idea is to make everything accessible via the API, so
codegen implementors will be able to reuse all infrastructure by calling
the appropriate function in Idris.Driver supplying their codegen.
2020-06-15 16:11:05 +02:00
Rui Barreiro
c4e07f4caf Merge branch 'master' of github.com:idris-lang/Idris2 into javascript 2020-06-10 11:32:01 +01:00
Edwin Brady
d6e3f1f746
Merge pull request #100 from ska80/use-contrib
Use Control.Delayed from the 'contrib' package
2020-06-08 12:07:09 +01:00
Rui Barreiro
89b75c692d Merge branch 'master' of github.com:idris-lang/Idris2 into javascript 2020-06-03 20:39:22 +01:00
Rui Barreiro
d816fe4d48 first js test 2020-06-03 20:36:46 +01:00
Edwin Brady
3d2765e930 Add top level %runElab
This invokes a script of type Elab (). %runElan in a term invokes a
script of type Elab TT. The elaborator now pushes in that type, so that
it'll report an appropriate error if you give it a script of the wrong
type.
2020-06-01 19:06:10 +01:00
Edwin Brady
85c002c771 Progress on elaborator reflection
Add %runElab and start on scripts, although all they can do so far is
check a term. This does gives us, sort of, "template Idris" (as
demonstrated in test reflection002)
2020-05-31 01:36:54 +01:00
Edwin Brady
e1dbcad2fc Make a start on reflection
Don't get too excited yet - I want this in so that it doesn't get too
out of sync, but I still have to think about exactly how it's going to
work in practice.
2020-05-29 22:40:29 +01:00
Kamil Shakirov
d43850d86e Merge branch 'master' into use-contrib 2020-05-29 15:05:18 +06:00
andylokandy
fa902932fc Use Path in compiler 2020-05-26 17:43:27 +08:00
Ohad Kammar
f4797be529 Merge branch 'master' of github.com:idris-lang/Idris2 into ide-protocol-holes 2020-05-25 11:51:39 +01:00
Kamil Shakirov
a9f1883659 Merge branch 'master' into use-contrib 2020-05-25 15:29:24 +06:00
Edwin Brady
227bd3b457
Merge pull request #119 from idris-lang/idemode
[ refactor ] Idris.IDEMode.CaseSplit
2020-05-25 09:09:37 +01:00
Kamil Shakirov
a3d57cd4fc Merge branch 'master' into use-contrib 2020-05-25 13:01:15 +06:00
Ohad Kammar
0de2f6dea8 Merge branch 'master' of github.com:idris-lang/Idris2 into ide-protocol-holes 2020-05-25 07:14:33 +01:00
Ohad Kammar
ced6134f79 Refactor hole information extracting functions into a new submodule
Introduce a new data structure for IDE-related hole data

Separate hole printing from informationextraction
2020-05-25 07:13:12 +01:00
Fabián Heredia Montiel
731a416043 Split Package Specific Lexer/Rules from Lexer/{Common,Source} and Refactor Idris/Package
Co-authored-by: Matus Tejiscak <ziman@functor.sk>
2020-05-24 16:01:17 -05:00
Guillaume ALLAIS
60855adddf [ refactor ] get rid of ad-hoc function getLine 2020-05-23 14:41:44 +01:00
Kamil Shakirov
6cd6594510 Use Control.Delayed from the 'contrib' package 2020-05-22 01:27:50 +06:00
Fabián Heredia Montiel
af85cbefa7 Extract Common Lexer Utilities 2020-05-21 12:52:26 -05:00
Fabián Heredia Montiel
5265c70c71 Extract Common Lexer Rules 2020-05-21 12:52:26 -05:00
Fabián Heredia Montiel
acaddc1e9d Rename module Parser.Rule to Parser.Rule.Source 2020-05-21 12:52:26 -05:00
Fabián Heredia Montiel
662782503f Rename module Parser.Lexer to Parser.Lexer.Source 2020-05-21 12:52:26 -05:00
Fabián Heredia Montiel
6a5d6647c1 Split Parser.Support 2020-05-20 15:00:42 -05:00
Edwin Brady
9cc4cba065 Change executable name
I think we can be the official Idris2 now
2020-05-20 13:31:04 +01:00
Edwin Brady
5b88afb3ef Add racket bootstrap script 2020-05-19 22:56:27 +01:00
Edwin Brady
48c6c4aa81 Write Ints as 64 bit
Since they might be... This is especially likely for module hashes, and
if we don't get it right, the Racket runtime might fail to write the
buffer. This makes the code buildable with the Racket back end.
2020-05-19 16:25:58 +01:00
Edwin Brady
8994e54402 IDE mode ported
I've tested this in Atom, and the vim mode also works (in both cases,
just by changing the executable to point to the right place)
2020-05-19 15:13:58 +01:00
Edwin Brady
a5793756b7 Fix for buildAll from upstream 2020-05-18 10:23:53 +01:00
Edwin Brady
0363b8350b Chez output fix from upstream 2020-05-18 09:49:51 +01:00
Edwin Brady
17b17be963 Add missing files (I knew there'd be a couple...) 2020-05-18 00:28:24 +01:00