Commit graph

4938 commits

Author SHA1 Message Date
Leonardo de Moura
0a86911bd0 fix(library/init/data/persistenthashmap/basic): isUnaryNode 2019-08-02 13:59:31 -07:00
Leonardo de Moura
3c5a30649d feat(library/init/data/persistenthashmap/basic): add PersistentHashMap.erase 2019-08-02 13:31:29 -07:00
Leonardo de Moura
69bca3ad42 feat(library/init/data/array/basic): add version of Array.indexOf with property about resulting size 2019-08-02 13:31:29 -07:00
Leonardo de Moura
19e341cfcc feat(library/init/data/array/basic): add Array.indexOf and Array.eraseIdx 2019-08-02 13:31:29 -07:00
Leonardo de Moura
c371b43970 feat(library/init/data): add PersistentHashMap 2019-08-02 13:31:29 -07:00
Leonardo de Moura
1016309d1f feat(library/init/lean/path): always add builtin search path
We also add "." (i.e., current directory) if `LEAN_PATH` is not defined.
Users may still override stdlib since we add the builtin search path in the end.

@dselsam You should now be able to compile your project without setting `LEAN_PATH`

cc @kha
2019-07-31 18:13:17 -07:00
Leonardo de Moura
b221b09ad5 chore(library/init, frontends/lean): ensure old and new parser use the same command for initializing quotient module 2019-07-31 17:07:05 -07:00
Leonardo de Moura
bfb5bd3752 feat(library/init/lean/elaborator): add universe and universes elaborators 2019-07-31 16:46:02 -07:00
Leonardo de Moura
46f361daab feat(library/init/lean/elaborator): add open command elaborator 2019-07-31 15:58:04 -07:00
Leonardo de Moura
a9ba3773c7 fix(library/init/lean/path): add support for default.lean 2019-07-31 15:58:04 -07:00
Leonardo de Moura
8a4bc188c2 feat(library/init/data): add BinomialHeap 2019-07-31 15:13:00 -07:00
Leonardo de Moura
906272d7e9 feat(library/init/data/list/basic): add eraseIdx 2019-07-31 15:04:43 -07:00
Leonardo de Moura
b2ff6bfd9f fix(library/relative.py): Windows and Linux builds 2019-07-30 18:56:34 -07:00
Leonardo de Moura
6b62ed0c99 fix(library/relative.py): macos path names are case insensitive
The MacOS file system is not case sensitive.
Thus, the Lean path normalization function converts all characters in the pathname to lowercase.
We use the auxiliary Python script relative.py in our makefile.
The Python function `os.path.relpath` normalizes pathnames, but it only converts all characters to lowercase on Windows :(
Thus, Lean outputs the dependency files such as
```
/users/leonardodemoura/projects/lean4/library/init/lean/smap.olean
```
In Python, the current directory is
```
/Users/leonardodemoura/projects/lean4/library
```
Thus, `os.path.relpath` produces
```
../../../../../users/leonardodemoura/projects/lean4/library/init/lean/smap.olean
```
instead of
```
init/lean/smap.olean
```
2019-07-30 17:47:05 -07:00
Leonardo de Moura
2f5b2b2409 feat(library/init/lean/path): add realPathNormalized 2019-07-28 20:52:41 -07:00
Leonardo de Moura
378d75b3b4 feat(library/init/lean/path): use toLower at normalizePath if file system is case-insensitive 2019-07-28 19:50:01 -07:00
Leonardo de Moura
6cf8571e37 feat(library/init/system/platform): add System.Platform.isOSX 2019-07-28 19:49:40 -07:00
Leonardo de Moura
a48d635004 chore(library/init/lean/path): include search path in error message
Trying to understand why the Windows build is failing at Azure.
2019-07-28 19:11:01 -07:00
Leonardo de Moura
1d0d65893b fix(library/init/lean/path): user normalizePathSeparators at moduleNameOfFileName 2019-07-28 10:09:51 -07:00
Leonardo de Moura
e0d1892d72 fix(library/init): add normalizePathSeparators
Trying to fix broken tests on Windows.
2019-07-28 08:21:48 -07:00
Leonardo de Moura
66a93dbb39 feat(library/init/lean/elaborator/basic): absolutizeModuleName 2019-07-27 18:17:21 -07:00
Leonardo de Moura
2c755c60f5 feat(library/init/lean/path): fileNameToModuleName 2019-07-27 09:56:37 -07:00
Leonardo de Moura
bf5afbc289 feat(library/init/lean/environment): use findOLean implemented in Lean
TODO: cleanup `path.lean`
2019-07-26 17:57:43 -07:00
Leonardo de Moura
c1e217da2b feat(library/init/lean/path): absolutizeModuleName 2019-07-26 17:26:44 -07:00
Leonardo de Moura
9bed367cc0 feat(library/init/lean/modulename): add helper functions 2019-07-26 16:46:03 -07:00
Leonardo de Moura
e9fafd3c4b chore(library/init/lean/path,stage0): export initSearchPath and update 2019-07-26 16:06:19 -07:00
Leonardo de Moura
e722ea9ed9 feat(library/init/lean): implement findOLean and findLean in Lean 2019-07-26 16:04:10 -07:00
Leonardo de Moura
2ddc797f65 feat(library/init/system/filepath): add dirName 2019-07-26 14:53:54 -07:00
Leonardo de Moura
5a1380ec6a feat(library/init/lean): add lean/path.lean 2019-07-25 19:28:22 -07:00
Leonardo de Moura
798bbc0662 feat(library/init/system/io): new primitives 2019-07-25 18:12:44 -07:00
Sebastian Ullrich
aef4a7159b chore(*): remove obsolete leanpkg.path files 2019-07-25 17:46:53 -07:00
Leonardo de Moura
94056446c6 feat(library/init/system): add filepath 2019-07-25 17:38:54 -07:00
Leonardo de Moura
ff88c35fc1 refactor(library/init): move io and platform to system subdir 2019-07-25 17:29:33 -07:00
Leonardo de Moura
f6d3fc881d feat(library/init): add platform.cpp 2019-07-25 17:19:50 -07:00
Leonardo de Moura
77a59f4998 feat(library/init/io): add IO.getEnv 2019-07-25 08:31:23 -07:00
Leonardo de Moura
72ff4eb8e2 feat(library/init/lean/elaborator/command): implement export command 2019-07-24 14:55:27 -07:00
Leonardo de Moura
e0797bba14 fix(library/init/lean/elaborator/command): bug at addScopes 2019-07-24 14:55:05 -07:00
Leonardo de Moura
3145994e36 feat(library/init/lean/elaborator/basic): register declaration name prefixes as namespaces at Environment.add 2019-07-24 13:24:02 -07:00
Leonardo de Moura
cf8daf4b24 feat(library/init/lean/elaborator): process header
TODO:
- improve/fix `setSearchPath`
- add `IO.getEnv`
- add support for relative imports at `absolutizeModuleName`
2019-07-24 07:37:33 -07:00
Leonardo de Moura
b792afb9d5 feat(library/init/lean/elaborator): add root scope and resolveNamespace 2019-07-23 09:14:01 -07:00
Leonardo de Moura
4187a099c2 fix(library/init/lean/elaborator/command): typo 2019-07-22 19:08:16 -07:00
Leonardo de Moura
b5d4e0a2fd chore(library/init/lean/elaborator/basic): improve cryptic error message 2019-07-22 19:07:43 -07:00
Leonardo de Moura
39b5fbb767 feat(library/init/lean/elaborator): registerNamespace 2019-07-22 18:47:25 -07:00
Leonardo de Moura
825c952f58 chore(library/init/lean/scopes): add TODO 2019-07-22 18:22:56 -07:00
Leonardo de Moura
c40cba66fb fix(library/init/lean/parser/parser): use eraseDups when registering builting parsers 2019-07-22 18:19:47 -07:00
Leonardo de Moura
8b0730ef7d feat(library/init/data/list/basic): eraseDups 2019-07-22 18:12:03 -07:00
Leonardo de Moura
3609057848 feat(library/init/lean/elaborator/basic): add OpenDecl 2019-07-22 17:40:37 -07:00
Leonardo de Moura
b098cc69ea chore(library/init/lean/elaborator/command): ignore Lean3 notation commands 2019-07-22 15:16:17 -07:00
Leonardo de Moura
231c01bf9f feat(library/init/lean): add alias.lean 2019-07-22 15:06:17 -07:00
Leonardo de Moura
2387f3c2a2 feat(library/init/lean/elaborator): improve namespace, scope, and end commands 2019-07-22 08:14:35 -07:00