Commit Graph

7294 Commits

Author SHA1 Message Date
Eduard Nicodei
456b8e635a fix warning: add missing Functor 2024-07-15 18:21:52 +01:00
Eduard Nicodei
6ed06f3089 Merge remote-tracking branch 'origin/trunk' into merged-ghc-upgrade-try-2 2024-07-15 18:21:33 +01:00
Arya Irani
ce5c9feb6e
Merge pull request #5220 from unisonweb/cp/keep-current-branch 2024-07-12 23:21:22 -04:00
Arya Irani
264a31a956
Merge pull request #5218 from unisonweb/lsp/fix-unused-binding-locs 2024-07-12 23:20:13 -04:00
Chris Penner
0dc7b6d3ab Reset user to project root if they were on a sub-namespace. 2024-07-12 17:00:45 -07:00
Chris Penner
df0261c8d8 Keep most recent path and branches through migration to version 17 2024-07-12 16:54:42 -07:00
Chris Penner
11208f5284 Add unused binding test 2024-07-12 14:48:18 -07:00
Chris Penner
5652c179fc Compiling with lamda annotations 2024-07-12 11:15:21 -07:00
Dan Doel
a010a8a2d7 Use builtin reference names in foreign decompiling
E.G. print <Promise> instead of <Foreign>
2024-07-12 13:23:52 -04:00
mergify[bot]
be7e6cb2ff
Merge pull request #5041 from unisonweb/cp/project-root
Project Roots
2024-07-11 20:45:11 +00:00
Chris Penner
474fddbd13 Use a branch root semispace cache 2024-07-11 10:30:03 -07:00
Chris Penner
987cd61976 Swap branch-relative-paths back to relative 2024-07-11 09:49:55 -07:00
Dan Doel
c2958cca28 Use pretty text in MsgTrace case of debug toText 2024-07-11 12:09:41 -04:00
Arya Irani
0cd3cd1cff Merge branch 'trunk' into cp/project-root
# Conflicts:
#	unison-cli-integration/integration-tests/IntegrationTests/transcript.output.md
#	unison-src/transcripts-round-trip/main.output.md
#	unison-src/transcripts/add-run.output.md
#	unison-src/transcripts/bug-strange-closure.output.md
#	unison-src/transcripts/cycle-update-5.output.md
#	unison-src/transcripts/delete.output.md
#	unison-src/transcripts/diff-namespace.output.md
#	unison-src/transcripts/move-namespace.output.md
#	unison-src/transcripts/name-selection.output.md
#	unison-src/transcripts/names.output.md
#	unison-src/transcripts/namespace-dependencies.output.md
#	unison-src/transcripts/propagate.output.md
#	unison-src/transcripts/reflog.output.md
#	unison-src/transcripts/reset.output.md
#	unison-src/transcripts/tab-completion.output.md
#	unison-src/transcripts/transcript-parser-commands.output.md
2024-07-10 23:49:04 -04:00
Arya Irani
9b11d96cbb
Merge pull request #5177 from unisonweb/24-07-01-todo-merge-precondition-violations 2024-07-10 13:28:59 -04:00
Chris Penner
951f31867d preload branches into the branch cache when switching projects 2024-07-09 15:54:22 -07:00
Chris Penner
736ccf1434 Merge trunk 2024-07-09 15:47:12 -07:00
Chris Penner
e506b009ed No in-memory branch in loop-state 2024-07-09 12:59:27 -07:00
Paul Chiusano
2c1a0485f7 Don't use DelayForceChar as syntax style for blah.default() 2024-07-09 15:17:46 -04:00
Chris Penner
ee6793bd27 Attempt to fix Unused Binding locations 2024-07-09 09:52:12 -07:00
Chris Penner
5e775ccf7b Improve docs 2024-07-08 11:55:52 -07:00
Chris Penner
8a405e02d2 Update reflog command WIP 2024-07-03 16:43:34 -07:00
Chris Penner
2db50ad848 Specialize 'fromHash' to CausalHash 2024-07-03 16:07:31 -07:00
Chris Penner
7f57612f90 More WIP on reflog commands 2024-07-03 15:54:48 -07:00
Chris Penner
a7820feeac Deprecate root reflog behaviour in favour of project/branch reflogs 2024-07-03 11:52:52 -07:00
Chris Penner
cc07b63aff Merge trunk 2024-07-02 15:37:49 -07:00
Mitchell Rosen
50f28817e5 add Names.lenientToNametree 2024-07-02 13:06:03 -04:00
Mitchell Rosen
b8e13ca0df ⅄ move-nametree → 24-07-01-todo-merge-precondition-violations 2024-07-02 12:33:00 -04:00
Mitchell Rosen
eb1ee64cf2 merge unison-util-nametree into unison-core1 2024-07-02 12:23:34 -04:00
Mitchell Rosen
f0c53eed28 show "defs in lib" merge precondition violation in todo output 2024-07-02 11:39:11 -04:00
Chris Penner
38d60e7e6e Switch project before deleting it 2024-07-01 14:30:01 -07:00
Chris Penner
dadc4e476b Merge trunk and resolve basic conflicts 2024-07-01 14:29:32 -07:00
Chris Penner
563e14806f Resolve conflicts with trunk 2024-06-27 12:35:14 -07:00
Chris Penner
e94f8706fc Remove Primes from module names 2024-06-27 12:16:53 -07:00
Eduard Nicodei
95a0eb95f9 cleanup cabal 2024-06-27 17:04:14 +01:00
Eduard Nicodei
a35d70646f Use GHC.IsList 2024-06-27 17:04:02 +01:00
Chris Penner
61e0522d1e Fix redundant liftA2 imports 2024-06-26 18:01:45 -07:00
Chris Penner
4a9b35867c Swap from x509 to crypton-x509 since old packages are abandoned 2024-06-26 17:51:48 -07:00
Chris Penner
2d1bf19a65 Mostly Upgrade LTS to ghc 9.6.5 2024-06-26 17:19:01 -07:00
Greg Pfeil
2faa425d76
Merge remote-tracking branch 'upstream/trunk' into numbered-test-results 2024-06-26 14:58:25 -06:00
Greg Pfeil
77b46bce29
Eliminate Path.unsafeToName
In every case, this was being used in conjunction with `unsplitHQ`. So
this replaces `unsplitHQ` with `nameFromHQSplit`, which avoids
converting the `Split` to a `Path` in the middle.
2024-06-26 14:44:42 -06:00
etorreborre
3556cb6ec8
fix: fix the textual representation of an ordinal number 2024-06-26 17:34:45 +02:00
Arya Irani
1e72750bb1
Merge pull request #5133 from unisonweb/fix/5129 2024-06-25 16:23:14 -04:00
Arya Irani
769cbbd003
Merge pull request #5106 from neduard/ghc-964-updates-part-1 2024-06-25 16:20:47 -04:00
Dan Doel
34877da01c Don't relax type when doing an instantiateL during subtyping
This is the case of `a < T` for some structured T. By relaxing, we are
actually allowing `a` to be a _supertype_ of T as far as abilities go,
which is not correct. Seems like it was just erroneously mirrored from
the opposite case.
2024-06-25 15:54:10 -04:00
aryairani
382cdacb9f automatically run ormolu 2024-06-25 19:33:39 +00:00
Arya Irani
627acb7f3a
Update parser-typechecker/src/Unison/PatternMatchCoverage/Solve.hs 2024-06-25 15:33:22 -04:00
Chris Penner
1f34de9026 Swap stepAt combinators to use project paths 2024-06-25 10:23:11 -07:00
Chris Penner
1cbac288de Fix unique type guid generation
Adds getMaybe* versions of shallow branch combinators
2024-06-25 10:10:28 -07:00
Eduard Nicodei
364b7790ca more s/forall/forAll/ 2024-06-25 12:29:13 +01:00
Eduard Nicodei
4453fda570 fix redundant pattern match warning 2024-06-25 10:06:26 +01:00
Eduard Nicodei
56874a6082 s/forall/forAll/ as it will become a restricted keyword
-Wforall-identifier
2024-06-25 10:06:26 +01:00
Eduard Nicodei
d745d24114 Trivial fixes
* trivial additions of functor
* limit imports to just used functions
* remove unnecesary imports
2024-06-25 09:11:25 +01:00
Paul Chiusano
97838c4883 Merge remote-tracking branch 'origin/trunk' into topic/force-syntax
# Conflicts:
#	unison-src/transcripts-round-trip/main.output.md
#	unison-src/transcripts-round-trip/reparses-with-same-hash.u
2024-06-24 18:53:04 -05:00
Chris Penner
8c2b6cfa99 Remove now unused namespaceRoot combinators 2024-06-24 14:25:56 -07:00
Chris Penner
5a6fe2084e Migrate loose code into legacy project 2024-06-24 14:11:24 -07:00
Chris Penner
42619024de Fix order of operations on codebase creation 2024-06-24 13:05:51 -07:00
Chris Penner
60f99c218a Insert scratch branch after adding the causal hash table 2024-06-24 13:00:01 -07:00
Chris Penner
1c186d4d73 Merge trunk into cp/project-root 2024-06-24 12:50:36 -07:00
Arya Irani
7172bb8e4f
Merge pull request #5107 from unisonweb/24-06-13-revamp-todo 2024-06-24 12:08:27 -04:00
Arya Irani
67985204e5
Merge pull request #5108 from sellout/lexer-error-messages 2024-06-24 08:19:16 -04:00
Greg Pfeil
782ac4164d
Remove redundant , from lexer errors
Appositives only need to be offset by commas if there isn’t already some other punctuation.
2024-06-23 22:18:51 -05:00
Greg Pfeil
10d2622991
Remove unused error case 2024-06-23 22:09:51 -05:00
Eduard Nicodei
e806225540 Add group such that elements are concatenated without space 2024-06-22 18:09:28 +01:00
Arya Irani
6463e42f73
Merge pull request #5109 from sellout/path-haddock 2024-06-21 14:50:42 -04:00
Paul Chiusano
58818242a3 reduce scope of PR to just !foo vs foo(), refresh transcripts 2024-06-21 09:41:32 -05:00
Greg Pfeil
91dc53d246
Remove a very lawless type class
`Convert` mostly just hides some rather unsavory (but at least not
partial) mappings between types.
2024-06-21 08:00:51 -04:00
Greg Pfeil
6f26a16401
Add quoteCode for printing errors
This both colorizes and wraps code in backticks, in order to separate it from surrounding context.
2024-06-20 21:40:07 -04:00
Paul Chiusano
d4a2ed9066 Switch to foo() with no space as preferred syntax instead of !foo 2024-06-20 16:52:57 -05:00
Greg Pfeil
6ab0ebe8d7
Improve Haddock for Path and Name
Added some simple docs and converted some comments to Haddock.
2024-06-20 14:32:26 -04:00
Greg Pfeil
caac3c47d7
Improve some lexer error messages
The message mentioned in #5060 was incorrect. This also uses the passed-
in `id` for that message and related messages (removing the reliance on
ANSI colors for conveying where the error is). And it adds a suggestion
on how to avoid the error.

It also does some minor adjustment of highlighting – styling individual
identifiers rather that a list of them.

Fixes #5060
2024-06-20 13:48:44 -04:00
Mitchell Rosen
1081a9835a ⅄ trunk → 24-06-13-revamp-todo 2024-06-18 13:20:20 -04:00
Dan Doel
a0527457a6 Implement custom Word64 delay
The builtin is specified to take a Nat, but Haskell's threadDelay
takes an Int. So the previous implementation was erroneously treating
large numbers as negatives and not sleeping at all. Instead we split
the wait into multiple delays for large numbers (although practically
the second delay won't be reached).
2024-06-18 12:26:25 -04:00
Mitchell Rosen
b3baee3ed8 make todo show dependencies without names 2024-06-17 16:17:00 -04:00
Chris Penner
f192edbed4 Fix up migration quirks 2024-06-14 17:05:34 -07:00
Chris Penner
ff2c270fcf Fix up a buncha sql 2024-06-14 16:42:57 -07:00
Chris Penner
6c115761c5 Split migrations into separate transactions 2024-06-14 15:41:50 -07:00
Chris Penner
cdf10c9621 Migration to port project branches to have causal ids. 2024-06-13 15:20:13 -07:00
Chris Penner
d53f26775c Create scratch project during codebase creation 2024-06-12 15:06:53 -07:00
Chris Penner
95fd37ad3f Bootstrap scratch project in migration 2024-06-12 13:00:32 -07:00
Chris Penner
7aabcf5d89 Fix up Execute 2024-06-12 12:39:33 -07:00
Chris Penner
23fd0a005b Allow passing project and branch as starting path 2024-06-12 10:43:53 -07:00
Chris Penner
2863b668fa Convert transcript parser to be project based 2024-06-12 10:08:49 -07:00
Chris Penner
815c1b1f1c
Auto-create project-branches referenced in transcript prompts (#5077) 2024-06-12 09:28:12 -04:00
Chris Penner
91527b6008 Merge trunk 2024-06-11 11:10:47 -07:00
Chris Penner
48371c021f Propagate ProjectPath into CLI Main 2024-06-11 09:41:47 -07:00
Chris Penner
8138e61a2a toText and output munging 2024-06-10 16:33:16 -07:00
Chris Penner
18cde10b98 WIP 2024-06-10 15:39:30 -07:00
Mitchell Rosen
e1802a1e2a make edit.namespace not put record accessors 2024-06-10 15:35:15 -04:00
Chris Penner
bcc39d879d Remerge trunk 2024-06-10 10:24:37 -07:00
Chris Penner
0b16a7c9de Fixup BranchId 2024-06-07 15:49:42 -07:00
Chris Penner
e65f6e1968 Remove ability to push loose code paths (local or on share) 2024-06-07 12:13:23 -07:00
Greg Pfeil
ce33057385
Refine Path-prefixing operations
This replaces `prefix :: Absolute -> Path' -> Path` with a couple
alternatives:
- `prefixAbs :: Absolute -> Relative -> Absolute`,
- `maybePrefix :: Path' -> Path' -> Maybe Path'`, and
- `prefix :: Path' -> Relative -> Path'`.

The previous `prefix` could fail to prefix (covered by either the new
`prefix` or `maybePrefix`, depending on whether you want to guarantee
success or capture failure), always threw away the knowledge that the
result was necessarily `Absolute` (covered by `prefixAbs`), and then
always returned an ambiguous result type (covered by all three
replacements).

Then it also provides `prefixRel` as the complement of `prefixAbs` (both
of which are used in the implementation of `prefix`).

Similar changes are made in the replacements for `prefixName :: Absolute
-> Name -> Name`. First, we don’t currently have absolute/relative
variants of `Name`, so we can generalize the first argument to `Path'`.
Then `maybePrefixName :: Path' -> Name -> Maybe Name` exposes the case
where prefixing can’t succeed, and `prefixNameIfRel :: Path' -> Name ->
Name` handles the common case of using the original `Name` if it can’t
be prefixed. Both of these new functions also preserve the `Position` of
the new `Name`, whereas the old implementation always returned a
`Relative` `Name`, despite knowing when it was `Absolute`. And
`prefixName2 :: Path -> Name -> Name` has been removed as there is no
ambiguous variant of `Name` (as `Split` is to `Split'`), so prefixing
with a `Path` isn’t particularly meaningful.

Finally, `nameFromSplit'` is added as a dual to `splitFromName'` to make
it possible to operate on the `Path'` portion of a `Name` without introducing partiality.

These new operations are then propagated through the code, and enable a
couple other type changes: `StructuredArgument.ShallowListEntry` and
`StructuredArgument.SearchResult` now take a `Path'` prefix rather than
the `Path.Absolute` and `Path` prefixes they took previously. This fixes
the absolute `Name` issue in `ls` results.
2024-06-06 23:53:00 -05:00
Chris Penner
36c63e42e9 Merge trunk 2024-06-05 13:50:53 -07:00
Chris Penner
5ad808c9bd Update MoveTerm, MoveType, MoveBranch 2024-06-05 13:47:33 -07:00
Greg Pfeil
cab24bbb28
Remove partiality from hqSplitFromName'
This function previously converted the `Name` to a `Path'`, so
recovering the `Name` became partial. It now goes through `Split'`
instead of `Path'`, preserving the guaranteed segment.
2024-06-05 10:51:29 -06:00
aryairani
0247854e70 [create-pull-request] automated change 2024-06-04 18:34:00 +00:00
Chris Penner
c3a2dfb001 Don't include causalHashId in ProjectBranch 2024-06-04 10:09:02 -07:00
Chris Penner
3267a3e54c Fix up Merge2 2024-06-03 16:54:58 -07:00
Chris Penner
4e2ccf23cc Fix up some more root branch gets 2024-06-03 14:18:29 -07:00
Chris Penner
33458a8141 Fix LSP to work with projects 2024-06-03 14:12:46 -07:00
Chris Penner
2773153f97 Fix argparse for running 'main' within project
Add projectPath parser
2024-06-03 14:12:46 -07:00
Chris Penner
33610106ca Fix up uses of root branch in Backend 2024-06-03 10:08:33 -07:00
Chris Penner
1d906b3765 Clean up uses of root in Codebase, kill the root branch cache 2024-06-03 10:02:57 -07:00
Chris Penner
0d80992da9 Remove root branch accessors from codebase 2024-06-03 09:49:47 -07:00
Chris Penner
965f36f7cb Merge trunk 2024-06-03 09:36:30 -07:00
Chris Penner
8377f68545 merge trunk 2024-06-03 09:34:37 -07:00
Chris Penner
035f75ab36 Merge trunk 2024-06-03 08:44:11 -07:00
Greg Pfeil
5a7e001d7c
Merge remote-tracking branch 'upstream/trunk' into restrict-NameSegment 2024-05-31 15:43:27 -06:00
Greg Pfeil
ae70852257
Move sentinel segment names to Unison.NameSegment
They don’t belong in `Unison.Syntax.NameSegment` because they are not
part of the syntax – they are names stored in the codebase that need to
match regardless of the syntax used.
2024-05-31 14:11:51 -06:00
Chris Penner
63f32a6144 Merge! 2024-05-30 15:56:27 -07:00
Chris Penner
0dcbc126a1 Update all uses of internal branch0 fields 2024-05-30 15:41:56 -07:00
Chris Penner
6384038ee0 Don't expose Branch0 internals, (and add add lens utils to prelude) 2024-05-30 15:21:47 -07:00
Greg Pfeil
06c4b695f6
Type the main arg to execute
This avoids throwing away the type information from `NumberedArgs` and just
generally gets text handling out of the domain logic.
2024-05-29 17:12:31 -06:00
Greg Pfeil
e9d2a21d8a
Merge remote-tracking branch 'upstream/trunk' into structured-numbered-args 2024-05-29 16:28:32 -06:00
Greg Pfeil
f8474ff457
Handle SCH carefully in StructuredArguments
When `StructuredArgument`s are used as an input, preserve the entire hash. When
printed, take the length as an optional argument (and show the full hash when
unavailable).
2024-05-28 16:54:33 -06:00
Chris Penner
9756ac8c1e WIP 2024-05-28 11:15:36 -07:00
Chris Penner
9de134f98b Merge deletion of git commands into project-root 2024-05-28 11:15:36 -07:00
Chris Penner
62964ca2b6 Remove Sync22 2024-05-28 10:38:59 -07:00
Chris Penner
1b5c93da11 remove git push/pull 2024-05-28 10:09:52 -07:00
Chris Penner
457ca14a05 Allow updating branch heads 2024-05-28 09:23:13 -07:00
Arya Irani
5732d9a822
Merge pull request #5008 from unisonweb/24-05-24-delete-patch-manipulation-commands 2024-05-24 21:44:25 -04:00
Chris Penner
467dee15f8 Checkpoint 2024-05-24 15:17:25 -07:00
Greg Pfeil
b9c62164f8
Restrict NameSegment operations
With `OverloadedStrings` enabled globally and an `IsString` instance, the
`newtype` was rendered useless.

This extracts the `NameSegment` constructor/eliminator to a `.Internal` module,
has `Unison.NameSegment` only re-export the type, and moves the `*Segment`
members to `Unison.Syntax.NameSegment`.

This forces cascading changes, including eliminating a bunch of magic literals
scattered throughout the code.
2024-05-24 15:50:17 -06:00
Chris Penner
2c98ad1b1e Checkpoint 2024-05-24 10:14:08 -07:00
Mitchell Rosen
6adb88f5b3 delete a bunch of patch manipulation commands 2024-05-24 11:01:45 -04:00
Arya Irani
09efb48303
Merge pull request #5005 from sellout/remove-unused 2024-05-24 10:40:04 -04:00
Greg Pfeil
9aa4bf5168
Remove unused Unison.Util.Convert module 2024-05-23 23:19:33 -06:00
Chris Penner
29fd307ad9 Checkpoint 2024-05-23 15:31:50 -07:00
Chris Penner
2b504190fc Rewrite BranchRelativePaths machinery 2024-05-23 10:08:39 -07:00
Chris Penner
dca8431b50 Add getShallowProjectRootByNames 2024-05-22 10:08:02 -07:00
Chris Penner
1a15c3f212 Set currentProjectPath in SQLite 2024-05-21 16:37:30 -07:00
Chris Penner
2c64c6a408 Checkpoint 2024-05-21 16:37:12 -07:00
Chris Penner
39f065e656 Propagate root branch accessors 2024-05-21 15:48:37 -07:00
Chris Penner
12b3107cdb Add migration to move project branches to sqlite 2024-05-21 09:32:48 -07:00
Chris Penner
73145db0d2 Add Location pt 2 2024-05-21 09:32:48 -07:00
Arya Irani
2ec8e01dd7
Merge pull request #4966 from unisonweb/topic/merge5 2024-05-20 10:48:43 -04:00
Arya Irani
8b762c7908
Merge branch 'trunk' into cp/definition-diffs 2024-05-18 10:31:26 -04:00
Mitchell Rosen
9d7fe1fbef revert removing ApplicativeDo from default extensions because apparently
we spookily rely on it! fragile! wow!
2024-05-17 18:35:16 -04:00
Mitchell Rosen
3b8bdf58a3 fix warning error and remove unused PinBoard code 2024-05-17 17:52:07 -04:00
Chris Penner
3e3f59333d Implement termDefinitionByName 2024-05-16 15:30:03 -07:00
Mitchell Rosen
b9a45d5f86 ⅄ trunk → topic/merge5 2024-05-16 11:55:27 -04:00
Arya Irani
6e92e62151
Merge branch 'trunk' into topic/merge4 2024-05-16 06:21:43 -04:00
Mitchell Rosen
693af9c809 ⅄ trunk → topic/merge4 2024-05-15 12:03:16 -04:00
Mitchell Rosen
4bd924a0c9 make DownloadUtils module, shared by pull and clone 2024-05-15 11:57:30 -04:00
Mitchell Rosen
2efb3a2598 delete unused SyncMode type and redundant debug.pull-exhaustive
command
2024-05-15 11:04:05 -04:00
Mitchell Rosen
ecd323faa7 add migration to cd up to current project root 2024-05-14 16:46:27 -04:00
Mitchell Rosen
a77c10a342 merge work (not compiling) 2024-05-13 20:45:10 -04:00
Mitchell Rosen
3813bfbd36 ⅄ trunk → topic/merge5 2024-05-13 13:59:19 -04:00
Mitchell Rosen
aee317a681 explicitly ignore ignored return values 2024-05-13 13:52:32 -04:00