Releases: FStarLang/FStar
Releases · FStarLang/FStar
v2024.12.03
What's Changed
- SMT context pruning by @nikswamy in #3440
- fix: use more precise types for
move_requires_*
by @TWal in #3449 - Misc by @mtzguido in #3451
- Improving internal error API by @mtzguido in #3453
- src: use fstar.include by @mtzguido in #3454
- A fix in tactics, do not set uvar_subtyping=false so eagerly by @mtzguido in #3446
- Extraction.Krml: properly detect mem type, it does not have an argument by @mtzguido in #3455
- Add normalization step for tactics. by @gebner in #3460
- Nits by @mtzguido in #3461
- Fix 3462 by @mtzguido in #3467
- Pretty-print ML extraction terms. by @gebner in #3468
- Extraction.Krml: pretty printing by @mtzguido in #3470
- Tweaks to default pretty instances. by @gebner in #3471
- Extraction.Krml: pp patterns by @mtzguido in #3472
- Fixing #3474: making sure module names match filenames in case by @mtzguido in #3478
- Moving prims.fst to Prims.fst by @mtzguido in #3479
- Warn on missing pop options by @mtzguido in #3480
- Adding #show-options to print current option flags by @mtzguido in #3481
- Extraction: print mllb_attrs by @mtzguido in #3482
- tactics: move concatMap to FStar.Tactics.Util by @mtzguido in #3483
- ulib: move hints to separate directory by @mtzguido in #3452
- Introduce doc/ref for development notes, document a bit about coercions by @mtzguido in #3484
- Resugar: make sure to compress before checking for machine integers by @mtzguido in #3486
- Errors: implementing error bound by @mtzguido in #3487
- Misc tactic improvements by @mtzguido in #3489
- dune tweaks: no cmt and no bytecode by @mtzguido in #3457
- Restore bytecode fstarlib by @msprotz in #3495
- A comment about bytecode version of fstar-lib by @mtzguido in #3497
- check-world: run hacl on github runners, avoid stupid uid issue by @mtzguido in #3499
- Arrow one by @mtzguido in #3500
- Some tactics and MkProjectors improvements by @mtzguido in #3501
- check-world: some documentation by @mtzguido in #3502
- Add message format cli option by @W95Psp in #3491
- Add extract_as attribute. by @gebner in #3466
- Bump dune version dependency. by @gebner in #3503
- Revise the SMT encoding of top-level prop definitions by @nikswamy in #3505
- Main: Add --list_plugins option by @mtzguido in #3506
- Improve publishing Nuget properties by @kant2002 in #3488
- Add a cast from size_t to uint64_t by @tahina-pro in #3507
- Main: adding --locate, --locate_lib, --locate_ocaml by @mtzguido in #3509
- Fix library finding in binary package by @mtzguido in #3512
- Util: fix mkdir for trailing slashes by @mtzguido in #3514
- A better error when z3 cannot be started by @mtzguido in #3517
- Reset gensym for predictable names and better query caching by @nikswamy in #3515
- Fixing mistaken erasure of effectful type applications by @nikswamy in #3518
- Represent implicits as a tree instead of a list to make conjoining them constant time by @nikswamy in #3521
- Desugaring: simplify desugaring for App, and respect textual order by @mtzguido in #3523
- Some nits by @mtzguido in #3524
- Some fixes in range module by @mtzguido in #3525
- Nits by @mtzguido in #3526
- Options: display short options in help, introduce
-d
for general debugging info by @mtzguido in #3527 - check-world: add mls-star by @mtzguido in #3513
- Fixing #3530 by @mtzguido in #3531
- Many fixes to resugaring by @mtzguido in #3532
- Autoload extension plugins by @mtzguido in #3533
- Options: --already_cached should not consider the current module by @mtzguido in #3529
- Makefile: fix clean rule by @mtzguido in #3535
- Some improvements wrt to plugins by @mtzguido in #3537
- Introducing a generic catenable list by @mtzguido in #3538
- Tc: make other components of guards also catenable lists by @mtzguido in #3539
- ulib: reducing some warnings by @mtzguido in #3540
- Improving a few errors by @mtzguido in #3541
- Extraction: not extracting tactics unless backend is Plugin by @mtzguido in #3542
- Do not print reveal or hide by default when resugaring by @nikswamy in #3544
- Update hints by @mtzguido in #3546
- Make the default effect in --MLish configurable by @mtzguido in #3548
- Parser.Dep: emitting a small header in the .depend by @mtzguido in #3550
- Tidying up a bit of FStar.All and FStar.Compiler.Effect by @mtzguido in #3551
- Make FStar.IO an interface by @mtzguido in #3552
- Revert "CI: point karamel to patched branch" by @mtzguido in #3554
- Preparing to use this F* as stage0 by @mtzguido in #3555
- ulib: move a type into stubs by @mtzguido in #3556
- Moving compiler sources into the FStarC namespace by @mtzguido in #3557
- Fix restricted open for constructors of type with indices by @W95Psp in #3558
- Restricted open: fix shadowing by @W95Psp in #3559
- fix(pp): char and string literals by @W95Psp in #3561
- Fix some missing branches for ShowOptions by @mtzguido in #3562
- Tactics: refactor a bit to avoid a cycle by @mtzguido in #3563
- Some refactoring about include paths, finding, locate, etc by @mtzguido in #3564
- Introduce --ocamlenv by @mtzguido in #3565
- Class.Show: remove dependency on Printable by @mtzguido in #3566
- Revert "Parser.Dep: remove wrong logic for FStar.Stubs" by @mtzguido in #3567
- Some library reorg by @mtzguido in #3569
- fix(check-world): only update F* for Comparse, DY* and MLS* by @TWal in #3568
- Loading plugins from the output dir too. by @mtzguido in #3570
- Small perf improvements, also fixing order dependency of qualifiers by @mtzguido in #3571
- Some nits by @mtzguido in #3573
- Fixing #3024 by @mtzguido in #3575
- Fix some quadratic name lookup behavior by @nikswamy in #3579
- tests: rework makefiles by @mtzguido in #3578
- tests: Makefile patch to make sure we disable hints for one file by @mtzguido in #3580
- Introducing --ocamlc and --ocamlc_plugin by @mtzguido in #3581
- Moving FStar.Pprint into the (normal, application) library by @mtzguido in #3582
- fstar: rename --ocamlc to --ocamlopt, add --ocamlc for bytecode by @mtzguido in #3583
- Tactics: fix V1.Logic by @mtzguido in #3584
- Delay snapshotting of desugaring environment by @nikswamy in #3585
- Optimize name resolution in desugaring by @nikswamy in https://github.com/FStarLang/F...
v2024.09.05
What's Changed
- Extraction nits by @mtzguido in #3380
- Introduce --read_checked_file option by @mtzguido in #3381
- git protocol deprecated, use https instead by @LukeXuan in #3379
- Misc debugging nits by @mtzguido in #3383
- Debug: print stack dump on SIGINT when --trace_error by @mtzguido in #3384
- Misc nits by @mtzguido in #3386
- extraction: reexport mlexpr_to_string by @mtzguido in #3387
- Normalizer: ditch inline_closure_env, use a lazy substitution by @mtzguido in #3385
- prims: bump checked file version by @mtzguido in #3389
- Parser: introduce
seq![1;2;3]
for sequence literals by @mtzguido in #3390 - extraction: fix missing cases in mlpattern_to_string by @mtzguido in #3391
- AST: fix ast comparison, handle ListLiteral and SeqLiteral by @mtzguido in #3392
- Postpone checking of ModifiesGen by @mtzguido in #3393
- Fix Makefile by @mtzguido in #3394
- Tc: improving error for mistaking fields in a record by @mtzguido in #3395
- LowStar.Monotonic.Buffer: mark loc erasable by @mtzguido in #3396
- FStar.fst.config.json: make sure to use this fstar.exe by @mtzguido in #3398
- Normalizer: introduce DontUnfoldAttr, discard UnfoldTac by @mtzguido in #3399
- Tactics: remove canon tests from ulib/, place in new tests/ by @mtzguido in #3401
- Reflection: V2: support Equality qualifier for binders by @mtzguido in #3403
- actions/docker: reworking ci to just run
make ci-post
by @mtzguido in #3404 - Optimizing CI by @mtzguido in #3405
- Deps by @mtzguido in #3407
- normalizer: a fix for a plugin returned by a function by @mtzguido in #3409
- Revert "UInt128: break dependency on FStar.Int.Cast" by @mtzguido in #3410
- Misc improvements in library by @mtzguido in #3412
- Refactoring implicit instantiation by @mtzguido in #3413
- A bit more refactor by @mtzguido in #3414
- Using monoids for tc guards in TcTerm by @mtzguido in #3416
- Tc: rework attribute-tagged implicits to require defer_to by @mtzguido in #3415
- Main: introduce --read_krml_file mode by @mtzguido in #3419
- Some rework of the options module by @mtzguido in #3420
- Avoid wildcard expansion when making F# builds by @jonahbeckford in #3421
- Bump OCaml version to 4.14 by @gebner in #3397
- Some makefile fixes by @mtzguido in #3424
- extraction: krml: check for CInline attribute in letbindings, set an inlining flag in the binder by @mtzguido in #3418
- Introduce an attribute to unrefine type arguments by @mtzguido in #3406
- Refactoring printers by @mtzguido in #3425
- Fix encoding of primitive operators with refined domains by @nikswamy in #3427
- ulib: FStar.Range: allow inspecting the unsealed __range by @mtzguido in #3428
- Some fixes by @mtzguido in #3431
- feat(syntax): any terms in meta arguments by @W95Psp in #3430
- actions: check-world workflow by @mtzguido in #3433
- Parser.Dep: interpret inline_for_extraction on any decl, not just Vals by @mtzguido in #3432
- Misc fix by @mtzguido in #3435
- Do not require parentheses for fun/assume/assert by @gebner in #3378
- Fixing short circuting operators when --admit by @mtzguido in #3436
- parser: publish more symbols for Pulse by @mtzguido in #3437
- CI Tweaks by @mtzguido in #3438
- Adding Pulse bootstrapping test to check-world by @mtzguido in #3441
- checkworld tweaks by @mtzguido in #3442
- Reflection.Typing: add missing universe instantiation in elab_pat by @mtzguido in #3439
- Ide fixes by @mtzguido in #3443
- RFC: An fstar.include file to simplify
--include
by @mtzguido in #3345 - Advance to 2024.09.05~dev by @dzomo in #3444
New Contributors
- @LukeXuan made their first contribution in #3379
- @jonahbeckford made their first contribution in #3421
Full Changelog: v2024.08.14...v2024.09.05
v2024.08.14
What's Changed
- Allow --cache_dir to create parent directories by @mtzguido in #3194
- destruct_typ_as_formula: unascribe formula after unsquashing by @mtzguido in #3197
- NBE: mantain shape of primops to read them back them properly by @mtzguido in #3196
- Build fstarlib as bytecode too by @mtzguido in #3202
- Seq: reimplement seq_to_list and seq_of_list by casting by @mtzguido in #3203
- Adding attributes to the ML AST by @aseemr in #3205
- Tactics.Visit: visit computations in type ascriptions by @amosr in #3208
- FStar.Tactics.V2: embed Pat_Vars by sealing ppname by @amosr in #3211
- FStar.Compiler.Sealed: add an internal sealed type by @mtzguido in #3212
- Fix #3213 by @mtzguido in #3214
- Further fix for #3213 by @mtzguido in #3215
- Some fixes related to #3207 by @mtzguido in #3216
- Adding attributes to type parameters in ML AST by @aseemr in #3217
- Add a subset_mem lemma to make mem_subset more complete by @chandradeepdey in #3199
- Add missing case in lidents_of_term by @gebner in #3219
- Fixing a normalizer inefficiency by @mtzguido in #3222
- Tutorial chapter sixteen: Small fix in or introduction code by @chandradeepdey in #3223
- Make mem_filter stronger by @chandradeepdey in #3200
- Fixing #3224 by @mtzguido in #3225
- Tactics: add a primitive to spawn a subinvocation of the engine by @mtzguido in #3226
- Core typechecker fix for returns annotation by @aseemr in #3229
- Misc fixes by @mtzguido in #3235
- Fixing some scoping bugs by @mtzguido in #3237
- Fix #3238 by @mtzguido in #3239
- Using structured errors in tactics by @mtzguido in #3240
- Revert 3239 by @mtzguido in #3243
- A tweak to typeclass resolution: allow for "higher-order" resolution by @mtzguido in #3245
- Some misc cleanup changes to the normalizer by @mtzguido in #3247
- FStar.Tactics.Parametricity: move parametricity translation to ulib, as a plugin by @mtzguido in #3248
- Removing F* book sources from F* repo by @mtzguido in #3241
- Add a proof that the cardinality of Type(u+1) is greater than Type(u) by @mtzguido in #3244
- Misc fixes by @mtzguido in #3250
- Splitting qualifier/attribute checking in two phases by @mtzguido in #3254
- Small fix + cleanup in Core by @mtzguido in #3255
- Making Reals erasable, and providing a reflection API for real literals by @mtzguido in #3242
- Some fixes/improvements to the core typechecker by @mtzguido in #3256
- Misc changes by @mtzguido in #3257
- Some refactoring for typeclasses by @mtzguido in #3259
- Functional dependencies for typeclasses by @mtzguido in #3260
- Fix compat:open_metas option by @mtzguido in #3262
- Do not normalize domains of arrows with HNF. by @gebner in #3251
- Introduce and use a red-black tree implementation for sets by @mtzguido in #3261
- Fix by @mtzguido in #3267
- Tactics: make mapply a plugin by @mtzguido in #3268
- Misc changes by @mtzguido in #3269
- Removing the fv_delta field by @mtzguido in #3272
- Fixing CI by @mtzguido in #3273
- Misc by @mtzguido in #3276
- Syntax/SMT: Structure SMT errors (and Meta_labeled) by @mtzguido in #3277
- Some enhancements in support of interfaces in Pulse by @aseemr in #3270
- Making debug toggles more efficient by @mtzguido in #3274
- Small optimization in tcresolve, error message tweaks by @mtzguido in #3278
- Tactics.TypeRepr: add a tactic to translate inductives to a sums of products by @mtzguido in #3281
- Injectivity of inductive types revisited by @nikswamy in #3253
- Misc by @mtzguido in #3283
- Fix #3266 by @mtzguido in #3284
- Fixing #3264 by @mtzguido in #3287
- Misc error message fixes by @mtzguido in #3288
- SizeT: make SizeT.t a new type by @mtzguido in #3285
- Misc error message fixes by @mtzguido in #3289
- Tactics: if dump_on_failure is true, do not add Tactic failed prefix by @mtzguido in #3279
- Print: more pp instances by @mtzguido in #3290
- Color warnings yellow, diagnostics blue by @mtzguido in #3291
- Partial fix for 3292 by @mtzguido in #3293
- Misc fixes (typeclasses, printing) by @mtzguido in #3294
- Rel: make progress checking in head_matches_delta stricter by @mtzguido in #3297
- Debug/Options: make sure to restore debugging state after popping options by @mtzguido in #3298
- Introduce FStar.RefinementExtensionality by @mtzguido in #3299
- Misc tactics and debugging improvements by @mtzguido in #3300
- Syntax.Free: fix incomplete match by @mtzguido in #3301
- Misc fixes for error messages by @mtzguido in #3303
- Queue library by @meganfrisella in #2958
- FStar.Queue: rename to FStar.FunctionalQueue by @mtzguido in #3304
- Misc changes by @mtzguido in #3306
- Fix 3286 by @mtzguido in #3308
- Extract FStar.List.Pure.Base by @mtzguido in #3313
- Tactics: introduce ide() to check if running interactively by @mtzguido in #3314
- Resugaring for dependent tuples by @mtzguido in #3316
- Make parenthesis break binding on dtuples by @mtzguido in #3317
- All: replace all uses of
*
for tuples by&
by @mtzguido in #3318 - Allow empty record patterns by @mtzguido in #3321
- Add an interface for FStar.Reflection.V2.TermEq, and mark it a plugin by @mtzguido in #3322
- Introduce call_subtac_tm by @mtzguido in #3323
- Tactics: nit in compare_term to get better order, termination proof trickier by @mtzguido in #3324
- Misc tactics cleanup by @mtzguido in #3325
- Some basic simplification rules for reals by @mtzguido in #3305
- A fix in Core, revealed by FStarLang/pulse#100 by @mtzguido in #3326
- Fix a possible crash for empty record patterns by @mtzguido in #3327
- Implement query caching by @mtzguido in #3328
- Some interleaving improvements, in support of splice vals by @mtzguido in #3329
- devcontainer: fix Ubuntu to 23.10 and remove libicu by @mtzguido in #3331
- Make sure to catch missing definitions by @mtzguido in #3330
- Misc fixes by @mtzguido in #3334
- Tc: Env: rename nosynth->flychecking by @mtzguido in #3335
- Tactics: make splice_t always run without admit/lax by @mtzguido in #3336
- Fix 2583 by @mtzguido in #3338
- reflection: fix extraction for quoted real literals by @mtzguido in #3340
- Resugar: improve resugaring for projectors by @mtzguido in #3341
- Misc changes by @mtzguido in #3342
- Tactics: a...
v2024.01.13
What's Changed
- Fixing a division by zero in modulus by @nikswamy in #3050
- Pretty printing error messages by @mtzguido in #3027
- Nix: fix
make_fstar_version.sh
by @pnmadelaine in #3052 - Fixing unfolding logic in coercions by @mtzguido in #3054
- devcontainer: install memtrace by @mtzguido in #3055
- Tutorial chapter sixteen: use consistent types by @chandradeepdey in #3056
- Extraction hooks to support custom extraction by extensions by @nikswamy in #3058
- Improving some error formats. by @mtzguido in #3059
- ToSyntax: tighten a range by @mtzguido in #3060
- Some more pretty printing, and a lemma about spinoff by @mtzguido in #3062
- Widen types if they are used in typeclass constraints by @nikswamy in #3061
- A new Extension enum value for codegen by @aseemr in #3071
- Fixed Z3 version check crash by @Johanmyst in #3067
- Add
push-partial-checked-file
IDE request by @gebner in #3070 - examples: add a partial model for
sealed
by @mtzguido in #3073 - Some small changes in support of Pulse by @nikswamy in #3075
- Remove fstar.opam Python 2 dependency by @cmovcc in #3069
- Introducing int_of_string / bool_of_string by @mtzguido in #3053
- Tc: fix sigelt pushing to be unique (and hence prevent clashes during splices) by @mtzguido in #3063
- Implementing map_seal and bind_seal primitive operators by @mtzguido in #3074
- Add a lemma about subset being reflexive for lists by @chandradeepdey in #3078
- Some misc changes by @mtzguido in #3079
- Normalizer: invalidate memoizations if cfg changes by @mtzguido in #3072
- misc: A fix and a new function by @mtzguido in #3080
- Reflection.Typing: introduce basic sigelt_typing, allow splice_t to return a list by @mtzguido in #3065
- Milnes first typos in by @briangmilnes in #2903
- Fixing #3081 by @mtzguido in #3083
- A couple of fixes to improve error localization, especially in extensions like Pulse by @nikswamy in #3084
- ToDocument: pretty-print lens access operators by @gebner in #3082
- Misc fixes by @mtzguido in #3086
- Do not unfold logical connectives in norm requests by @mtzguido in #3085
- Exposing more pretty-printing ops by @mtzguido in #3088
- fix(doc/book): typos by @mzacho in #3092
- Properties of List.Tot.no_repeats_p by @tahina-pro in #3094
- Fixing #3089, and some unifier fixes by @mtzguido in #3091
- Tactics: make prop_validity_token erased by @mtzguido in #3096
- pretty-printer: consistently print nested tuples with (,) syntax by @amosr in #3100
- Fix #3051 by @mtzguido in #3101
- Fixing the escape check to provide better errors by @mtzguido in #3105
- tactics: ctrl_rewrite: perform rewrite under arrows; fix rewrite under dependent binders by @amosr in #3104
- Using typeclasses in src/ by @mtzguido in #2969
- Restoring some vale tests (and moving to
tests/
) by @mtzguido in #3109 - src/tactics: more use of typeclasses by @mtzguido in #3110
- Tc: Making defensive checks into a single def_check_scoped function by @mtzguido in #3111
- Misc SMT improvements by @mtzguido in #3112
- --proof_recovery by @mtzguido in #3113
- Support for local state in meta programs by @aseemr in #2948
- Adding an deq class and using it for lazy_kind by @mtzguido in #3114
- Some bug fixes by @mtzguido in #3117
- Fixing #2949 by @mtzguido in #3119
- Make
--MLish --lax
safer by @mtzguido in #3123 - More typeclasses, some cleanup by @mtzguido in #3124
- Fix stale hints script's return code, and run it by @mtzguido in #3125
- Some typeclass performance improvements by @mtzguido in #3126
- A very modest typeclass caching by @mtzguido in #3127
- Solving type constructors implicits before data constructor implicits by @mtzguido in #3132
- Fix typeclass arguments for types by @mtzguido in #3133
- Fixes for typeclasses by @mtzguido in #3134
- Misc improvements for SMT debugging by @mtzguido in #3136
- Pretty-printing options by @mtzguido in #3137
- More preparation for solver upgrade by @mtzguido in #3138
- Options: restore settable __temp_fast_implicits until uses are removed by @mtzguido in #3139
- Use a typeclass for ord and sets in the compiler by @mtzguido in #3141
- Reduce use of Set.elems, make notes where it remains by @mtzguido in #3143
- --MLish and extraction by @mtzguido in #3142
- Slight refactor in discharge_guard pipeline by @mtzguido in #3146
- Generalize univ annotations in effects by @mtzguido in #3121
- Cleaning up FStar/examples so that they all build cleanly into .checked files by @nikswamy in #3147
- Allow overloading
exists
andforall
similar to let operators by @nikswamy in #3149 - A typechecker fix, and adding a monad class by @mtzguido in #3148
- Making pipe operators primitive by @mtzguido in #3122
- Tactics: use a monad typeclass internally by @mtzguido in #3150
- A type class for embedding by @mtzguido in #3152
- Stricter --MLish: no subtyping via
has_type
guards by @mtzguido in #3155 - primops: use embedding class to remove a ton of boilerplate by @mtzguido in #3154
- Tidy-up testing
examples
with the F* binary package by @tahina-pro in #3156 - More primops simplification and modularization by @mtzguido in #3157
- More primops cleanup by @mtzguido in #3158
- Fix primops by @mtzguido in #3159
- Add record name in the MLE_Record node by @aseemr in #3161
- Fix a scoping bug by @mtzguido in #3162
- More cleanup, gone with a couple thousand lines of boilerplate by @mtzguido in #3160
- Misc debugging improvements by @mtzguido in #3163
- A monadic visitor by @mtzguido in #3164
- Tc: Allow for #_ to solve instances by @mtzguido in #3165
- Misc changes by @mtzguido in #3167
- Misc fixes by @mtzguido in #3170
- A tactic for projectors (and methods) by @mtzguido in #3168
- An option to log (only) failing queries by @mtzguido in #3172
- Allowing to splice vals, and define
val
s with splices by @mtzguido in #3177 - FStar.Pure.Break: add a utility to "break away" the VC of the continuation by @mtzguido in #3174
- Primops: MachineInts: fix OP_underspec by @mtzguido in #3179
- Machine int primops2 by @mtzguido in #3180
- FStar.BV: expose bvshl, bvshr and bvmod with bit vector rhs by @amosr in #3116
- Advance to 2024.01.13~dev by @dzomo in #3190
New Contributors
- @chandradeepdey made their first contribution in #3056
- @Johanmyst made their first contribution in https:...
v2023.09.03
What's Changed
- Unifying the range type into FStar.Range by @mtzguido in #2884
- Utilities on ranges exposed in reflection and tactics by @nikswamy in #2887
- Introducing an
admit_termination
attribute by @mtzguido in #2896 - Unifying the range type into FStar.Range by @mtzguido in #2892
- Adding FStar.Printable.fst with test by proof in tests/printable usin… by @briangmilnes in #2902
- Remove Steel from the F* code base by @tahina-pro in #2889
- Fix snapshot-diff detection for extraneous files by @mtzguido in #2911
- tests: ide: make test-incremental parallelizable by @mtzguido in #2898
- Support for custom syntax extensions by @nikswamy in #2909
- Some reflection/tactics updates by @mtzguido in #2918
- Use menhir by @mtzguido in #2910
- Nix: fix build by adding menhir dependency by @pnmadelaine in #2920
- Marking some symbols public in the menhir grammar by @nikswamy in #2921
- Some fixes to allow let recs on abbreviated types by @mtzguido in #2915
- Allow a syntax extension to provide qualifiers and attributes on a decl by @nikswamy in #2924
- fix ranges for extension syntax by @nikswamy in #2926
- Use named records in data constructors for some syntax classes by @aseemr in #2928
- A different fix for #2894 by @mtzguido in #2929
- Using a base image for CI jobs by @mtzguido in #2927
- Some tweaks to how delta depths are handled in the typechecker by @aseemr in #2934
- Exposing issues (warnings, errors, etc.) through the reflection API by @nikswamy in #2935
- Add missing case for
LetOperator
by @W95Psp in #2941 - Exposing a hook to read checked files, for use with separate tools built against fstar-lib by @nikswamy in #2942
- options/dep: introduce --output_deps_to by @mtzguido in #2932
- Making the handling of application nodes more uniform in the core checker by @nikswamy in #2944
- Nix: fix build (menhir dependency) + update lock file by @cmovcc in #2943
- Removing stale hints by @mtzguido in #2951
- Allow '@' on fatal errors in --warn_error by @TWal in #2950
- Simplifying subtype_of queries to avoid needless VCs related to proving that a term is a prop by @nikswamy in #2945
- Fixing order of
--warn_error
by @mtzguido in #2952 - Some build+test system tweaks by @mtzguido in #2956
- Revising checking arguments of an application in core by @nikswamy in #2959
- ci: use $(nproc) threads by @mtzguido in #2963
- Restoring the old error handler in Errors.catch_errors_aux by @nikswamy in #2965
- Exposing a few more productions for use in Pulse by @nikswamy in #2966
- Start a Tactics V2 by @mtzguido in #2960
- Some docs for tactics v2 and a CHANGES entry by @mtzguido in #2968
- colorizing the output of --query_stats by @mtzguido in #2972
- ulib: some proof taming by @mtzguido in #2973
- TermEq: expose universe comparisons by @mtzguido in #2975
- Support for negative literals in patterns by @aseemr in #2976
- Revising equality check in Core to emit a guard by @nikswamy in #2971
- ulib: introducing some standard classes by @mtzguido in #2977
- UInt128: proof taming by @mtzguido in #2979
- Unifier tweaks by @mtzguido in #2983
- Update part1_termination.rst by @arbipher in #2985
- Fixing the incremental parsing of syntax extension blobs by @nikswamy in #2987
- Simple lemma about appending permutations by @tdardinier in #2989
- Example: Leftist heap implementation by @tdardinier in #2982
- Support for close combinator for indexed effects by @aseemr in #2988
- Adding some comments to SMT log files by @mtzguido in #2992
- Initial support for matches in Reflection.Typing by @mtzguido in #2990
- Fix typo in OCaml code for extracting elements of a pair by @tdardinier in #2994
- Fixing the need to use --ide_id_info_off in Steel and Pulse by @nikswamy in #2996
- Fix hardcoded dependences of a file by @nikswamy in #2997
- Making AdmitWithoutDefinition (240) an error, by default by @nikswamy in #2925
- Introducing a minimal devcontainer (for codespaces) by @mtzguido in #2998
- Revising the way attributes are desugared by @nikswamy in #2940
- Misc changes by @mtzguido in #2999
- Tactic fixes by @mtzguido in #3001
- Introduce Z3 version switching by @mtzguido in #2995
- Misc tactics improvements by @mtzguido in #3003
- main.ml: only block signals on Posix systems by @mtzguido in #3006
- Makefile: remove -T on install usage by @mtzguido in #3008
- Misc fixes by @mtzguido in #3009
- A fix in query splitting by @mtzguido in #3010
- Tactics: allow Reflection.Typing primitives to raise guards by @mtzguido in #3011
- Fix extraction of character constants by @msprotz in #3007
- A fix in the core typechecker by @aseemr in #3004
- Fix in tactics, make sure to use optionstate by @mtzguido in #3013
- Exposing parsing_data in the unsafe_raw_read_checked_file by @nikswamy in #3018
- Changes for supporting ghost applications and ghost bind in Steel by @aseemr in #3012
- Fix typo in vec example proof by @2over12 in #3019
- Do not encode to SMT if admitting queries by @mtzguido in #3015
- ToSyntax: improve some ranges by @mtzguido in #3014
- Expose a utility to compute free vars of an AST term by @nikswamy in #3020
- Adding opens and abbrevs to sigelts by @nikswamy in #3022
- normalizer: avoid possible infinite loop on maybe_unfold_head by @mtzguido in #3021
- An --ext option by @nikswamy in #3023
- Restricting well-foundedness on inductives function-typed fields by @nikswamy in #2954
- deep_compress: remove some spurious warnings about Tm_names by @mtzguido in #3025
- A new noinline attributer for functions that should not be inlined by @msprotz in #3026
- Syntax of val binders by @nikswamy in #3029
- Add FStar.fst.config.json by @mtzguido in #3017
- Enable memtrace on F* by @mtzguido in #3016
- Hashconsed arrows/abstractions in the SMT encoding must be abstracted over their free variables by @mtzguido in #3028
- Revising the encoding of BoxBitVec_n by @nikswamy in #3033
- tactics: exposing ext_options/all_ext_options by @mtzguido in #3034
- Revising coercion mechanism to allow for implicit arguments by @mtzguido in #3032
- feat: Add 'bv_div_unsafe' to support 'bv / bv' expressions. by @bollu in #3030
- Making sure to invalidate a hint hash if Z3 version changes by @mtzguido in #3037
- Tactics: improving some ranges by @mtzguido in #3038
- Reduce dummy ranges in errors by @mtzguido in https://github.com/FStarLang/FStar/...
v2023.04.25
Steel is being split out to its own repository at https://github.com/FStarLang/steel . So, this F* release is the last one with Steel still being part of F*'s standard library.
What's Changed
- GitHub Actions workflows: releases, MacOS, Windows by @tahina-pro in #2880
- Excluding some fixpoint reductions in typechecker by @mtzguido in #2881
- Fixing inconsistencies in inspect_ln by @aseemr in #2882
- A synchronous mode for SMT queries (+ tactic), plus a change to
--split_queries
by @mtzguido in #2776 - Reducing some dependencies from the compiler into ulib by @mtzguido in #2883
- Misc memory fixes by @mtzguido in #2885
- Advance to 2023.04.25~dev by @dzomo in #2888
Full Changelog: v2023.04.08...v2023.04.25
v2023.04.08
What's Changed
- Release v2023.03.22 by @dzomo in #2860
- Do not install fstar_tests.exe by default by @tahina-pro in #2863
- Sealing pretty-printing names in the reflection API by @nikswamy in #2835
- syntax: dsenv: reimplement shorten_lid by trimming of prefixes by @mtzguido in #2707
- Makefile fixes to get bootstrap working with cygwin by @aseemr in #2864
- Reducing the amount of Tm_names in checked files by @mtzguido in #2845
- Supporting incremental parsing and additional features in the IDE protocol in support of fstar-vscode-assistant by @nikswamy in #2853
- Removing with_type (and vcgen.optimize_bind_as_seq) by @aseemr in #2871
- actions: unconditionally remove container after build by @mtzguido in #2875
- Require OCaml >= 4.10 by @tahina-pro in #2865
- Compiler.Util: do not capture stderr on start_process by @mtzguido in #2870
- Meta DSL framework by @aseemr in #2857
- A few more improvements to the strict positivity checker by @nikswamy in #2873
- Advance to 2023.04.08~dev by @dzomo in #2878
New Contributors
Full Changelog: v2023.03.22...v2023.04.08
v2023.03.22
NOTE: This release mistakenly works only for Ubuntu 22.04. Other (including later) releases should also work on Ubuntu 20.04, unless explicitly stated otherwise.
What's Changed
- Build F* with
dune
instead ofocamlbuild
by @tahina-pro in #2815 - Update README.md by @nikswamy in #2841
- Some assorted fixes by @mtzguido in #2839
- Use leftmost head when checking for equatable symbols in the core typechecker by @aseemr in #2846
- Normalizer fix for mutually recursive functions (#2849) by @mtzguido in #2850
- ImmutableArray: add positivity, hasEq, decreases,
new
qualifier by @mtzguido in #2855 - Support for limited extraction of indexed effects by @aseemr in #2851
- Preserving names in patterns during NBE by @mtzguido in #2858
Full Changelog: v2023.02.21...v2023.03.22
v2023.02.21
Release v2023.02.21
This is the last state before merging #2815 .
v2023.02.01
Release v2023.02.01
This is the last state before merging #2817 .