Hi @Shachar Itzhaky , so IIUC, we can wrap up the 8.13 series, correct?
Yes, I have set the default version to 0.13.2.
It was a minor bump because I had some trouble uploading 0.13.1 to NPM.
Ok I'll clean the milestones up and make the v8.14 branch the default
what about the hotfix?
is that one included in 8.13.2 ?
Yes. For 8.14 we should rethink it. It is commit 5c8ee304ca6904c2e895f965db9d12fc2a12e37e.
Hmm actually the tag is one commit before that.
So I might have patched it quickly on the website without updating the package :(
Yup I was suspecting that, let's release 8.13.3 then
Ok I want to see if there's a better way to solve this.
Ok, so that's why you keep open https://github.com/jscoq/jscoq/issues/249
I do not recall the concrete problem there
but IMHO having an "automaton" that reacts to Coq messages is not so bad
if the tradeoff is to have more state in the clinet
I am positive by talking to Makarius that this is a bad idea in the end
turn out later or sooner, state between client and server gets desynced, Isabelle even has a call to reset everything
so 0 state, that's the real happiness
hmm yes I agree there are definitely some pros and cons. For now, the state is not too much to be a hassle. It is mostly the state of the UI -- plus a queue of sentences that need to be added. I could not find a way to avoid the latter, because I have to wait until a sentence is added before adding the next.
I did some progress, still need to tweak the init stuff, and the patches
but hopefully I get to it today
one thing is that we should document the node version we require
we can't do that in the packages.json file, right?
I was seeing some trouble, I think because of ubuntu having an old node
Shachar, actually you are right and the new code for the state init is worse, and it is not fixed in master.
Dunno what to do, anyways Stm.new_doc
was a lie
I mean, it couldn't be called twice; but I guess for now we will have to inverse-refactor
Thanks!
I think Node 12.x is the minimum now because of some ES2017 stuff. I don't think there is a standard field in package.json for that. We should just write it in the README.
Emilio Jesús Gallego Arias said:
I mean, it couldn't be called twice; but I guess for now we will have to inverse-refactor
I was actually able to call it twice. It is only that the load path reverts to what it was during init. Legit in some scenarios, I guess.
Umm, actually if you call new_doc
twice, it will overwrite the previous document
the document is global inside the stm implementation, so yeah, maybe it works in terms of "reset", but that's dangeorus stuff
XD
Ok i was able to make SerAPI 8.14 work
jsCoq should arrive soon
Cool! I thought SerAPI worked already
Emilio Jesús Gallego Arias said:
the document is global inside the stm implementation, so yeah, maybe it works in terms of "reset", but that's dangeorus stuff
I live on the edge of danger
I know XD
For SerAPI only serlib was working, the toplevel stuff was quite broken due to a lot of upstream changes, now fixed
Umm, I lost a lot of time getting some weird errors, it seems that my chromium version didn't like 8.14
but in chrome dev, it works
I dunno
@Shachar Itzhaky anyways you can try the branch, seems to work here
gonna have to do more cleanu
Ok I will try to build on my Mac and on Docker
oh the patches are commented out
I have some partial porting of them in wacoq-bin. Will bring them over.
Yup, I didn't do the patches, feel free to push over them
Also I disabled some stuff, because I was getting this super weird bug in my main Chromium browser
Lost 2 hours with than, then to have the idea to try a different browser version
was scary
Now that I think, it could well been just a limitation on the size of the .js file
But we need to keep an eye on that
I'm done for today, tomorrow will do another pass an clean the patch up
Maybe we can release 0.14.0 tomorrow :D
lol ok :D I have ported most of the patches. Will push.
Great, thanks! I guess we can release?
don't you want to wait until 8.14+rc1 is out? This will be the target of nearly everyone in the platform for tags/releases.
For me the state of the branch is good for a 0.14.0 release
That's it. The V8.14+rc1 tag is set.
So. What would be the right way to install Coq 8.14? The docs say dune -p P && dune install P
for P ∈ {coq-core, coq-stdlib}. This works ok but installs the theories in /lib/coq
and native libraries (plugins) in /lib/coq-core
. Is that intended?
You can also use the legacy configure + Makefile procedure. But yes, I think that it is intended that some stuff will be installed in coq-core
.
Hmm if I compile Coq v8.14 without running ./configure
first, it does in fact build with dune build
, but the version that is reported is 8.13.2
. Possibly the version update can be in the Dune files as well to avoid confusion?
You probably didn't do this on a clean state, did you?
dune build
is supposed to call configure
by itself if you don't do it
The fact that it reports 8.13.2 lets me think that you did run configure
yourself earlier on (on another branch) and that Dune is still using this.
hmm yes that's possible! I was going to do a clean checkout but probably forgot lol
too many subdirs, that's what happens
tho I suppose if someone does pull and rebuild, they would expect the version number to be reflected as well.
Yeah, but from the point that you have manually run configure before, you have to re-run it every time you update.
Oh ok but if I hadn't run configure
, then ran dune build
, then git pull
, then dune build
again -- it would update?
that's acceptable.
Dune will re-run configure for example when the version has changed, tho you are correct, it should also re-run it in your case, a dependency may be missing in the promote rule for coq_config.ml
It the tree is not clean (configure output is there), will it really re-run configure?
I thought it was a fallback rule.
Indeed it will not, but maybe it should if configure.exe
has changed?
Oh, but the problem is that Dune can't track the hash of the manual generation hash :/
Obviously
@Shachar Itzhaky , something still seems going on with the error handling; console gets an uncaught in promise for any error. At least, whatever it is going on, the error seems not to affect usability.
IMHO 8.14 branch is ready [modulo the possible problem with errors yet?] , so let me know when you cut 0.13.3 and we rebase and set 8.14 as default
I have not been able to compile addons with 8.14. Ones with ML plugins don't compile, obviously, so I have disabled then; but one is just hanging forever (Hahn).
Umm, most addons should already have an 8.14 branch
Hanging in coqc
? That seems like an interesting bug, you can actually run coqc under gdb and get a backtrace to see where's stuck
Screen-Shot-2021-09-21-at-16.49.52.png
were you referring to this?
Yup!
Thanks for the screen shot
That's always been there. It happens because CoqManager does not cleanup promises; can probably fix it at some point...
A cancelled sid is essentially a rejected promise.
Ok it hangs at rewrite !(Nat.add_mod k)
here: https://github.com/vafeiadis/hahn/blob/22815da96d6db4287555ea3762d2d02fb670fdf7/HahnMinPath.v#L31
Thanks for the explanation; we are good then. Let me know if you need help with the addons; for hahn it seems like the rewrite ! is not terminating, which indeed can happen, the problem could come from many fronts, it'd be good if hahn would be added to Coq's CI so we don't have to deal with this.
I guess for now we'll have to disable it until we understand if that's a Coq problem or their bug in the first place
it is in fact in the Docker CI.
it's part of the affiliated addons build.
I did complete a rebase and some testing, looks pretty good IMHO; all that remains is the force push to v8.14 and setting the default branch, as not to have git issues I'll wait on your green light
Ok, I will finish up 0.13.3 first. I have discovered an issue in SF; it is probably an issue with my build and not jsCoq (as it really hasn't changed much from 0.13.2), but I'm going to debug it first to make sure.
ok looking good! Will make the release tomorrow and then I'll look at the v8.14 branch.
You can go ahead and force-push your rebased branch.
Thanks @Shachar Itzhaky , just pushed the final rebase [I hope]
doing a bit more testing, and will setup the branch as default
ok nice. I have a small patch to push as well, was waiting for the rebase (it's really tiny)
feel free to push atop of the branch already if you want
actually it was two tiny things :)
Nice! default branch updated
testing the docker now
BTW did you notice I added the package mathcomp-extra
? It's for libraries that are not included in the main mathcomp repo. Currently it is pretty small. What do you think we should put there? There are tons of packages in the GitHub org.
I'm not sure, I guess mathcom-analysis is pretty interesting these days, but should be it's own library maybe?
hmm yeah maybe
Oops. mathcomp-analysis seems to depend on hierarchy-builder, which depends on elpi...
looks like Enrico did push some changes to coq-elpi yesterday about Coq 8.14
Yes, on 8.14 you need coq-elpi 1.11.2, see also: https://github.com/coq/opam-coq-archive/pull/1827
Great, it works! At least it builds lol :clown:
Alright guys time for 0.14.0 alpha. https://coq-p-wr.vercel.app/
I'll add elpi back soon, and then try to add mathcomp-analysis as well.
Quickchick and equations still don't have 8.14-compatible branches.
@Shachar Itzhaky Equations has been packaged for 8.14 based on a release: https://github.com/coq/opam-coq-archive/blob/f56f39bd23ced18945df79c101c1fc14c2e7b58c/extra-dev/packages/coq-equations/coq-equations.1.3%2B8.14/opam
oh hmm ok let me try again with that branch then
there is no associated branch to my knowledge, just a tag
Nice Shachar; note that some of the browsers we have around have trouble loading the .js file; they basically crash with
/node_modules/jscoq/…scoq_worker.bc.js:1 Uncaught RangeError: Maximum call stack size exceeded
yeah, tag whatever :)
Is this Chromium?
same for Quickchick, it was released for 8.14 but there is no branch: https://github.com/coq/opam-coq-archive/blob/master/released/packages/coq-quickchick/coq-quickchick.1.5.1/opam
Chromium indeed, so let's keep an eye, could be well that my version is just bugged
that's my main browser so it is quite "restricted"
Chromium
Versión 93.0.4577.82 (Build oficial) snap (64 bits)
oh wow the equations release was 10 hours ago LOL
tag was on Friday, release was today...
yeah nice and timely
I started working on the alpha last week so perhaps it was not there yet ;)
the tag was made in response to Coq platform maintainer's request
or as I like to call it, the magic whip/wand
the majority whip!
oh I see they also added Dune build support
a very polite figurative whip though: https://github.com/mattam82/Coq-Equations/issues/427
oh wait. Do I need HoTT now?
no, the HoTT release for 8.14 is not out (though apparently an old release worked), so I disabled that in the Equations package for the time being
how did you disable it? it's still trying to build it when I do dune build
I don't think there is a way, based on how Emilio organizes the build. The regular build uses a flag to configure.sh
.
oh I thought the Dune files in the repo are the regular build now.
we're trying to avoid Dune builds in releases for the time being, even though it was probably more inertia here
ok anyway I guess rm theories/HoTT/dune
will do for now :P
we are at 1400 commits, nice number to celebrate 0.14 XD
heh cool
btw Matthieu has a demo page with jsCoq, but it's a pretty old version (0.10), perhaps we can just include that demo on our website since we have the package already.
Sure
maybe the demo was even updated in the repos?
probably yeah
Ok epli question: Do you know how one can change the elpi search path? Currently the path contains .
, ./.
, ./..
, and a bunch of other directories. So there should be a way to add more right?
seems to be no way other than to set the COQPATH
environment variable. Oh well.
Ok I failed with mathcomp-analysis for now :pensive:
are you using the latest Hierarchy Builder release? I'm not sure mathcomp-analysis even builds on 8.14 yet.
Ok that might be possible.
I am using HB 1.2.0 which does build on 8.14.
from 3 days ago
that sounds like the right HB release, but unclear if it works with mathcomp-analysis, their CI doesn't test 8.14 yet.
for elpi, why do you need to hack the path?
:wave: @Enrico Tassi I am trying to build with Dune. I have a workspace containing several jsCoq addons; for some reason, when Dune runs Coq, the current working directory is the workspace root. So Elpi Accumulate
is unable to find the sources...
I see. I can patch that upstream, if there is a clean way for that.
Are you basing your work on https://github.com/LPCIC/coq-elpi/pull/82 ?
Huh no actually was not aware of this PR.
But I did ask Emilio's advice for some parts, esp. compiling the plugin. https://github.com/jscoq/addon-elpi
In elpi (command-line) you can configure the path with -I
. Currently coq-elpi uses Envvars.coqpath
but adds /elpi
at the end, which means the directory must be named elpi
-- that's ok but a bit limiting. E.g. in HB the directory is called HB
.
Hum, I don't know your scenario, but these paths are needed only for compiling the .vo files, once a .elpi is accumulated inside the .vo file, the .elpi file is not needed anymore. So distributing HB should be trivial, if you can compile it.
And I'm OK applying a patch that detects dune and adds dirname current_vo_file_path
Yes, I understand. I could compile HB with coq_makefile and then package the .vo
s, but I have a whole setup with Dune so I kinda want it to be uniform :grinning:
Enrico Tassi said:
And I'm OK applying a patch that detects dune and adds
dirname current_vo_file_path
Thanks! Although I suppose that won't be what the user expects in all cases. It really should be the project directory (the one containing dune-project
), as opposed to the workspace root which is currently the PWD. I assume Dune communicates that location somehow? @Emilio Jesús Gallego Arias ?
I think what Enrico is proposing is to have coq-elpi to use as search path the directory where the .vo file is; umm, for the rest I think it should just suffice to add the right flags? I'm not sure right now, but I made it work in one my dune patches.
Likely, to hack a solution as we speak, the easiest may be to just use copy_files
oh I did not even consider copy_files. Good idea. My solution was way more horrible :face_palm:
Last updated: Jun 01 2023 at 13:01 UTC