Commit Graph

22 Commits

Author SHA1 Message Date
Thomas E. Hansen
27780073c8 [ admin ] Update checklist for v0.7.0-rc2 2023-12-22 14:44:30 +01:00
Thomas E. Hansen
84010c9a55 [ rc ] 0.7.0-rc2
Incorporates #3165, #3166, and #3169
2023-12-22 14:44:30 +01:00
Thomas E. Hansen
124a31243a [ rc ] 0.7.0-rc1
An actual, proper release candidate this time.
2023-12-22 14:44:30 +01:00
Thomas E. Hansen
ea180d0721 [ rc ] Prepare for 0.7.0
A lot more sensible all around  : )
2023-12-22 14:44:30 +01:00
Thomas E. Hansen
d6892b4f04 [ rc ] 0.6.9 - update pkg017
Version in expected output
2023-12-22 14:44:30 +01:00
Thomas E. Hansen
89ee94089c [ release ] v0.6.9 update checklist
Final commit before running release script (in a _different_ dir because
it destroys the current one, it turns out!)
2023-12-22 14:44:30 +01:00
Thomas E. Hansen
a3b078cb0d [ rc ] For v0.6.9 - to see if the process was right
Good luck everybody...

v0.6.9 - Nice!  ^^
2023-12-22 14:44:30 +01:00
Stefan Höck
85ddafbac5
[ fix ] bump version of linear and papers packages (#2735) 2022-10-28 08:55:35 +01:00
Edwin Brady
e125c9014f
Prepare release 0.6.0 (#2733)
* Prepare release 0.6.0

* Fix bootstrap chez

* Correct version in bootstrap chez
2022-10-27 16:32:16 +01:00
Edwin Brady
a9ccf4db4f
Experimental Scheme based evaluator (#1956)
This is for compiled evaluation at compile-time, for full normalisation. You can try it by setting the evaluation mode to scheme (that is, :set eval scheme at the REPL). It's certainly an order of magnitude faster than the standard evaluator, based on my playing around with it, although still quite a bit slower than compilation for various reasons, including:

* It has to evaluate under binders, and therefore deal with blocked symbols
* It has to maintain enough information to be able to read back a Term from the evaluated scheme object, which means retaining things like types and other metadata
* We can't do a lot of the optimisations we'd do for runtime evaluation particularly setting things up so we don't need to do arity checking

Also added a new option evaltiming (set with :set evaltiming) to display how long evaluation itself takes, which is handy for checking performance.

I also don't think we should aim to replace the standard evaluator, in general, at least not for a while, because that will involve rewriting a lot of things and working out how to make it work as Call By Name (which is clearly possible, but fiddly).

Still, it's going to be interesting to experiment with it! I think it will be a good idea to use it for elaborator reflection and type providers when we eventually get around to implementing them.

Original commit details:

* Add ability to evaluate open terms via Scheme

Still lots of polish and more formal testing to do here before we can
use it in practice, but you can still use ':scheme <term>' at the REPL
to evaluate an expression by compiling to scheme then reading back the
result.

Also added 'evaltiming' option at the REPL, which, when set, displays
how long normalisaton takes (doesn't count resugaring, just the
normalisation step).

* Add scheme evaluation mode

Different when evaluating everything, vs only evaluating visible things.
We want the latter when type checking, the former at the REPL.

* Bring support.rkt up to date

A couple of missing things required for interfacing with scheme objects

* More Scheme readback machinery

We need these things in the next version so that the next-but-one
version can have a scheme evaluator!

* Add top level interface to scheme based normaliser

Also check it's available - currently chez only - and revert to the
default slow normaliser if it's not.

* Bring Context up to date with changes in main

* Now need Idris 0.5.0 to build

* Add SNF type for scheme values

This will allow us to incrementally evaluate under lambdas, which will
be useful for elaborator reflection and type providers.

* Add Quote for scheme evaluator

So, we can now get a weak head normal form, and evaluate the scope of
a binder when we have an argument to plug in, or just quote back the
whole thing.

* Add new 'scheme' evaluator mode at the REPL

Replacing the temporary 'TmpScheme', this is a better way to try out the
scheme based evaluator

* Fix name generation for new UN format

* Add scheme evaluator support to Racket

* Add another scheme eval test

With metavariables this time

* evaltiming now times execution too

This was handy for finding out the difference between the scheme based
evaluator and compilation. Compilation was something like 20 times
faster in my little test, so that'd be about 4-500 times faster than the
standard evaluator. Ouch!

* Fix whitespace errors

* Error handling when trying to evaluate Scheme
2021-09-24 20:38:55 +01:00
Edwin Brady
6802827ddc
Remove __collect_safe from bootstrap chez (#1933)
* Remove __collect_safe from bootstrap chez

We don't need this for bootstrapping, and it prevents building on older
Chez, so we can just remove it. Also added a note to the release
checklist.

* Update Release/CHECKLIST

Co-authored-by: memoryruins <memoryruinsmusic@gmail.com>

Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
Co-authored-by: memoryruins <memoryruinsmusic@gmail.com>
2021-09-19 13:02:51 +01:00
Kamil Shakirov
bd94b91615 mkdist.sh script cleanup
Since Travis CI is no longer used.
2021-08-31 13:56:45 +01:00
Edwin Brady
76715acc1f
Don't need benchmarks in the release (#1600)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-06-28 19:07:24 +01:00
Edwin Brady
00107730ae More version number updates 2021-06-23 18:46:38 +01:00
Edwin Brady
56a9a5866d Update version number in pkg010 test 2021-06-23 17:52:00 +01:00
Edwin Brady
587f73a256 Make documentation from Makefile
The documentation is now also linked from
https://www.idris-lang.org/pages/documentation.html
and https://www.idris-lang.org/pages/idris-2-documentation.html
2021-05-01 17:09:25 +01:00
Mathew Polzin
06586d401a
Add a test package to the Idris 2 project (#1162) 2021-03-09 18:27:05 +00:00
Edwin Brady
1052c41a3c Use version number field in ipkg
Packages are now installed in a directory with their version number.
On adding a package directory, we now look in a local 'depends'
directory first (to allow packages to be installed locally to another
project) before the global install directory.
Dependencies can have version bounds (details yet to be implemented) and
we pick the package with the highest version number that matches.
2021-02-27 14:15:19 +00:00
Edwin Brady
e1ecefa205 Update CHANGELOG/CONTRIBUTORS
We need to keep the CONTRIBUTORS file up to date, to give people proper
credit where it's due. There may still be people missing - please feel
free to add your own name if you think it should be there!
2021-01-16 14:18:18 +00:00
Edwin Brady
a76a1322eb Initial merge of reference counting C back end
Written by Volkmar Frinken (@vfrinken). This is intended as a
lightweight (i.e. minimal dependencies) code generator that can be
ported to multiple platforms, especially those with memory constraints.

It shouldn't be expected to be anywhere near as fast as the Scheme back
end, for lots of reasons. The main goal is portability.
2020-10-11 15:05:00 +01:00
Edwin Brady
dc9637aaa0 Update bootstrap scheme for release 2020-08-16 12:33:11 +01:00
Edwin Brady
cf7de2201f Add a script for making releases
I might use this in the next couple of days
2020-05-23 23:56:39 +01:00