Commit Graph

54 Commits

Author SHA1 Message Date
Edwin Brady
fafa76c55c Generalise NIL/CONS to all list shaped things
Also pairs turn into CONS, because we don't need to look at the tag if
there's only one constructor.
2021-05-09 01:43:59 +01:00
Edwin Brady
66930113bd Compile lists as scheme lists
This also involves adding a flag to constructors and case alternatives
in CExp which say whether it's a NIL or CONS. Currently, we only do this
for Prelude.List, which already has an effect, but soon I'll extend this
to work for all list-shaped things and rather than being hard coded. We
could also imagine spotting other shapes (enumerations especially) for
code generators to spot as they see fit.

This will require code generators to be fixed to recognise the new
ConInfo flag, but you can just ignore it.

Bootstrap code also updated, because we don't currently have a way of
having separate support.ss/rkt for the bootstrap and normal builds!
2021-05-08 15:42:51 +01:00
Kamiλ Shakirov
2ac4bea220
[ install ] Check if 'realpath' exists for Chez and Racket backends (#1210) 2021-04-06 15:42:04 +01:00
Edwin Brady
4726c32d94 Add --ignore-missing-ipkg flag
When bootstrapping, we're building things without packages being
available, so we can't expect to find them when looking for
dependencies. So, we find them another way, with an environment
variable. This flag is to tell Idris not to worry about missing
dependencies in this situation.

We also need to update the bootstrapping code, to deal with the new
version number format and new flag in the ipkg files for the libraries.
I think it's still safe to build from the previous version though - lets
see if CI agrees!
2021-02-27 19:39:47 +00:00
Wen Kokke
bd683938bf
Overhaul of concurrency primitives (#968)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2021-02-05 16:16:20 +00:00
Stiopa Koltsov
d56efff0a7 Explicitly handle empty SCHEME env var in bootstrap/idris2-boot
Before this commit the error was:

```
bootstrap/idris2-boot: line 15: --script: command not found
```
2021-01-21 12:36:39 +00:00
Edwin Brady
b35268b774 Update version numbers and bootstrap code 2021-01-13 12:46:06 +00:00
Russoul
720178ca37 Update bootstrap files V3 2020-08-25 18:05:48 +03:00
Russoul
0e408840fd Revert "Update bootstrap files V2"
This reverts commit 9acbdbfcd9.
2020-08-25 17:49:23 +03:00
russoul
9acbdbfcd9 Update bootstrap files V2 2020-08-25 17:31:36 +03:00
russoul
12194ed0b0 Revert "Update bootstrap files"
This reverts commit 906e521a71.
2020-08-25 17:21:39 +03:00
russoul
906e521a71 Update bootstrap files 2020-08-25 16:48:08 +03:00
karroffel
7d046652d8
add support for more casts from and to BitsN types (#548)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2020-08-20 15:01:09 +01:00
Edwin Brady
dc9637aaa0 Update bootstrap scheme for release 2020-08-16 12:33:11 +01:00
Edwin Brady
a5c9250524 Update bootstrap scheme
This is needed because the existing version won't build the Prelude
correctly as it doesn't do import...as correctly.

I don't believe this affects Idris2-boot, since it has its own Prelude.
2020-07-04 22:10:44 +01:00
Edwin Brady
531170e949 Add linear network API
This involves updating the bootstrap code since it needs a fix in
interface resolution. It shouldn't affect the Idris2-boot build though,
since it's in the libraries not the Idris2 source.
2020-06-25 12:07:33 +01:00
Kamil Shakirov
4f0c262ddc Add support for OpenBSD
and probably for other *BSD operating systems with minor tweaks
2020-06-17 15:14:54 +06:00
Edwin Brady
4b1667fdcf Open files in binary mode
Needed for windows, and harmless on Unix (Idris 1 did it this way).
2020-06-11 14:35:26 +01:00
Edwin Brady
0a246af449 Make Buffer more primitive
Meaning that the FFI is aware of it, so you can send arbitrary byte data
to foreign calls. Fixes #209

This means that we no longer need the hacky way of reading and writing
binary data via scheme, so can have a more general interface for reading
and writing buffer data in files.

It will also enable more interesting high level interfaces to binary
data, with C calls being used where necessary.

Note that the Buffer primitive are unsafe! They always have been, of
course... so perhaps (later) they should have 'unsafe' as part of their
name and better high level safe interfaces on top.

This requires updating the scheme to support Buffer as an FFI primitive,
but shouldn't affect Idris2-boot which loads buffers its own way.
2020-06-11 14:05:52 +01:00
Edwin Brady
7f6de27f5c Update scheme/racket to deal with Bits types
We need to add Bits primitives to Idris2-boot to keep that at least able
to build this for bootstrapping purposes.
2020-06-01 11:58:22 +01:00
Edwin Brady
8c5d5055fa Update scheme
Changing the prelude totality default means we need to update the scheme
to be able to cope with its new meaning
2020-05-28 16:05:08 +01:00
Edwin Brady
de7dff19b0 Update Scheme bootstrap files
Ready for a 0.2.0 release
2020-05-25 14:21:53 +01:00
Kamil Shakirov
80344b5435 Merge branch 'master' into better-names 2020-05-24 07:59:25 +06:00
Edwin Brady
b93b51a0e1 Remove racket ipkg, update scheme
Needed to get the bootstrap version working with the tests in racket
2020-05-23 23:30:49 +01:00
Edwin Brady
cff5fc2625 Workaround for byte vectors in Racket
Racket appears to have a different notion of current directory than the
system does, so we need to tell it which directory we think we're in
when reading and writing bytevectors using the scheme file functions.
2020-05-23 21:37:31 +01:00
Kamil Shakirov
278dc1ca29 Merge branch 'master' into better-names 2020-05-24 00:37:05 +06:00
Edwin Brady
08e4955c0b Update scheme/racket again
Bootstrapping needs IDRIS2_CG set up properly
2020-05-23 19:30:53 +01:00
Kamil Shakirov
e61e44205b Merge branch 'master' into better-names 2020-05-24 00:26:52 +06:00
Niklas Larsson
709ca9d152 Unbreak Windows bootstrap 2020-05-23 20:00:15 +02:00
Edwin Brady
006236fde8 Add racket bootstrap script 2020-05-23 16:08:43 +01:00
Edwin Brady
c8896290a6 Update scheme given network code move 2020-05-23 15:57:20 +01:00
Edwin Brady
e17f66244a Move network support to libidris2_support
This makes the support stuff much simpler, and also makes the racket
bootstrap process easier
2020-05-23 15:52:33 +01:00
Edwin Brady
561123d49d Update generated Scheme
Mostly because of the racket, which needs to put the libraries in the
right place to bootstrap properly.
2020-05-23 15:21:59 +01:00
Edwin Brady
38c9633b66 Update generated racket 2020-05-22 18:16:18 +01:00
Edwin Brady
824b661cd5 Update bootstrap scheme
The library code uses a new feature, and it needs to be able to build
with the bootstrap code (though, fortunately, not with idris2-boot)
2020-05-22 18:06:04 +01:00
Niklas Larsson
d50bb099ea Windows support 2020-05-21 15:13:06 +02:00
Kamil Shakirov
f696335f2d Rename some file/dir manipulation functions
Renamed:

fileRemove -> removeFile

dirOpen -> openDir
dirClose -> closeDir
rmDir -> removeDir
2020-05-21 18:32:35 +06:00
Edwin Brady
ac859a9c50 Move bootstrap racket to the right place 2020-05-20 16:55:20 +01:00
Edwin Brady
43ef716fa8 Update idris2-boot 2020-05-20 14:27:26 +01:00
Edwin Brady
b94ff558f3 Put idris2.ss back in the right place 2020-05-20 14:23:26 +01:00
Edwin Brady
32263883ee Update bootstrapping scripts for new exec name
(Also, hopefully, this will poke travis to build the repo in its new
location!)
2020-05-20 14:00:15 +01:00
Edwin Brady
746df34470 Don't overwrite idris2sh.rkt
Better to copy and update the new version with the prefix
2020-05-19 23:01:04 +01:00
Edwin Brady
5b88afb3ef Add racket bootstrap script 2020-05-19 22:56:27 +01:00
Edwin Brady
a5638e0aac Update bootstrap scheme
The older version had a lingering bug from upstream Idris in writing
Integers to TTC
2020-05-19 21:42:24 +01:00
Edwin Brady
7defc40c47 Better bootstrapping process 2020-05-19 21:08:32 +01:00
Edwin Brady
6bbb914fca
Merge pull request #1 from edwinb/remove-directory-system
Add rmDir to System.Directory
2020-05-19 12:24:35 +01:00
Edwin Brady
b69068f4ff Update bootstrap scripts 2020-05-18 20:33:38 +01:00
André Videla
3321dc6be3 Add rmDir to System.Directory 2020-05-18 18:28:33 +01:00
Edwin Brady
1f3c557889 Fiddle about with bootstrap scripts
Not quite there, but nearly
2020-05-18 18:02:56 +01:00
Edwin Brady
557de91c5a Internal errors when install fails 2020-05-18 17:15:10 +01:00