elvish/pkg
Qi Xiao 96752afa4d Make struct maps indistinguishable from maps to Elvish code.
Struct map is a mechanism to let Go code expose simple structs to Elvish code.
The difference between struct maps and maps is convenience for Go code; they
also have different performance characteristics, but since struct maps are
always quite small, the difference is not meaningful for Elvish's use cases.

As a result, there is no good reason that Elvish code needs to be aware of the
difference between struct maps and normal maps. Making them indistinguishable to
Elvish code simplifies the language.

This commit does the following:

- Change Equal, Hash, Kind and Repr to treat struct maps like maps.

- Change Assoc and Dissoc to "promote" struct maps to maps.

- Remove the custom Repr method of parse.Source.

- Update documentation to reflect this change.
2023-07-14 23:57:38 +01:00
..
buildinfo Update VersionBase to 0.20.0. 2023-03-05 16:10:58 +00:00
cli Fix build tag of Unix-only test file. 2023-07-13 22:21:36 +01:00
daemon Use the unix build tag. 2023-03-03 00:01:26 +00:00
diag pkg/diag: Include line:col of start position in Error and Show methods. 2022-12-08 19:07:18 +00:00
diff cmd/elvmdfmt: Split Markdown formatting into own command, supporting -w and -d. 2022-11-04 16:37:47 +00:00
edit pkg/edit/complete: Use default arg generator for RHS of "set" and "tmp". 2023-05-27 10:53:06 +01:00
elvdoc pkg/elvdoc: Fix the handling of options with spaces in the value. 2023-01-02 03:00:24 +00:00
env
errutil Generalize parse.Errors and move it to diag. 2022-11-30 01:05:16 +00:00
eval Make struct maps indistinguishable from maps to Elvish code. 2023-07-14 23:57:38 +01:00
fsutil Use the unix build tag. 2023-03-03 00:01:26 +00:00
getopt pkg/diag: Split Errors into another package. 2022-11-29 22:13:02 +00:00
glob pkg/glob: When enumerating files, keep going if Lstat fails. 2023-04-10 23:22:21 +01:00
logutil pkg/logutil: Add tests. 2022-06-20 22:03:58 +01:00
lsp pkg/lsp: Return doc when hovering on the first character of a symbol. 2023-04-23 00:27:41 +01:00
md Implement doc:find. 2023-01-15 16:53:16 +00:00
mods pkg/eval/evaltests: Make APIs of special matchers functions. 2023-05-08 23:27:53 +01:00
must pkg/shell: Test signal handling. 2022-06-23 21:48:12 +01:00
parse Make struct maps indistinguishable from maps to Elvish code. 2023-07-14 23:57:38 +01:00
persistent Run gofmt. 2022-08-07 22:30:11 +01:00
pprof pkg/pprof: Support -allocsprofile. 2022-11-26 12:56:43 +00:00
prog Bump prog.DeprecationLevel to 19. 2023-02-27 00:00:12 +00:00
rpc README: Clarify license. 2022-10-05 01:29:52 +01:00
shell pkg/eval: Use a Context inside Frame to pass interrupts. 2023-05-07 21:44:28 +01:00
store Remove support for shared vars 2022-11-20 15:25:11 +00:00
strutil Standardize spelling: UNIX -> Unix. 2023-01-04 18:09:11 +00:00
sys pkg/sys/ewindows: Regenerate ztyles_windows.go. 2023-03-12 22:06:52 +00:00
testutil Fixup for #1691. 2023-05-06 23:55:34 +01:00
tt
ui pkg/ui: Improve API for Text. 2023-01-02 01:00:26 +00:00
wcwidth pkg/wcwidth: Clarify which part is taken from another implementation. 2023-07-13 21:46:42 +01:00