[PG-devel] PG 4.0

2009-08-06 Thread David Aspinall

Dear PG developers

I'd like to release PG 4.0 by the end of this month.  Please try to get 
the code into a ready state and test as much as you can.  This release 
marks a big change in the code base (removal of X-Symbol and XEmacs 
compatibility) and is a good chance to clean things up and remove 
backward compatibility for old prover versions.


 - David
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Improvement of pg-protected-undo

2010-08-02 Thread David Aspinall

Dear Erik,

I replied off-list, but see you have subscribed here too.

For other developers: this welcome improvement has been added to PG CVS 
head now.  Please feel free to send any more improvements/fixes for PG 
4.0, which should at last be released this summer.


 - David

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



[PG-devel] Proof General 4.0 - release candidate

2010-10-04 Thread David Aspinall
Dear PG users and developers,

With help from a few special people over the past few months, we have
ironed out many issues with the CVS version of Proof General and I think
it is good enough to make into an official release --- the first in over
two years.

In the hope of nipping the last few problems, I'd be grateful for users
and developers to try out the current pre-release, through *this week*:

  http://proofgeneral.inf.ed.ac.uk/devel

and report any problems in the usual place

  http://proofgeneral.inf.ed.ac.uk/trac/

I'm aiming to make the release a week from today.

Many thanks in advance,

 - David



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-06 Thread David Aspinall

Hi Hendrik

Thanks for looking at this!  Pierre and I had investigated a few ideas, 
you can still see some code remains in coq.el from some old attempts 
that partly worked (auto-compile-vos), but it seemed that Coq users were 
never hugely interested in the feature.


There is some code to take action after a require has been processed, 
but, as you say, maybe something should be done just before as well to 
check compiled files are up to date.  I'm not sure whether the file 
save/load hooks would be more appropriate than a hook run when command 
is queued, or whether connecting to standard Emacs make mechanisms would 
be sensible.  For your way, maybe the standard proof-shell-insert-hook 
would work?  This runs when a command is actually sent to the process, 
versus when it is queued.


Anyway, would be very happy to get this working with latest Coq and 
accept a patch.  Maybe discussing further on our Trac would be best, 
there is this ticket here:


  http://proofgeneral.inf.ed.ac.uk/trac/ticket/363

Best wishes,

- David


On 06/12/10 12:13, Hendrik Tews wrote:


After looking a bit at the code, I believe it is best to install
a new hook, say proof-enqueue-item-hook, that is called in
proof-add-to-queue just before the queueitems are appended to the
proof-action-list. The hook would be called for every item in
queueitems.

coq-mode can then install a function in the hook that looks for
require commands and takes appropriate actions. The hook variable
itself should be buffer local, to avoid that the
coq-require-filter function is called in an Isabelle session.

Any comments?

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-08 Thread David Aspinall

Hi Hendrik


I looked at proof-shell-insert-hook. Is there a way to send a
command to the prover, capture the output and retract this one
command from within proof-shell-insert-hook? The documentation
says that additional prompts will confuse proofgeneral. So is
there a way to interact with the prover from within
proof-shell-insert-hook without confusing proofgeneral?


Yes, the insert hook is intended to munge the string sent to the prover 
rather than insert extra commands at that point.  You could add them to 
the queue, but that would be at the wrong moment.



The background is that coq has its own load path for libraries
(where a library is a compiled .v file). To find out which file
needs to be checked for recompilation it would be easiest to ask
coq with the Locate Library command. But this would require a
synchronous communication with coq from within
proof-shell-insert-hook when an Require command is detected.


Or... you could do this at another time instead, for example, when the 
queue of commands is built, or when the file is loaded/saved using 
standard emacs hooks.


I think the file-load/save is a quite natural time to do this since it 
may interrupt the developer anyway and we try not to query the developer 
when sending commands in the background (so they can be looking at other 
parts of the script).


You'd lose when the user tries to process a Require command they've just 
typed but not saved the file, but you could issue a warning about this 
(or perhaps the require will fail anyway, in which case the user hits 
save-file and tries again).



Using Locate Library would have the advantage that proofgeneral
does not need to model coq's library finding functionality.


That's *definitely* a good idea.  (We tried to use coqdep for the 
auto-compile-vos option).


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-08 Thread David Aspinall

[forgot to copy to the list, in case anyone else is listening]

And another PS on this: I just suggested file load/save hooks, there is 
also PG's own file protocol which is activate/deactivate scripting, 
which also have hooks.  These might be nicer to use, but the user ought 
not to change require commands after activating scripting (again you 
could spot that and give a warning).


This protocol was the simple design that Makarius and I came up with to 
solve these multiple file issues cleanly in Isabelle, to attempt to have 
consistent views in the editor and the file system.  He is going on to 
grander sub-file schemes now...


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-08 Thread David Aspinall

On 08/12/10 16:47, Pierre Courtieu wrote:

Hi,
I answer Hendrik's message here because i did not recieve it.


Can you subscribe to the list Pierre?  As a key developer it should be 
obligatory!! 8-)


I'll send the earlier message to you which answers your last question to 
me below, sorry forgot to CC you!


 - D.



2010/12/8 David Aspinall:

Quick followup to your second message:

- good idea to separate the two things, you can set up a customizable
command using % substitutions easily

- have you looked at the existing (surely broken, but not irreparable) code
for calling coqdep?

  - D.

On 08/12/10 15:33, Hendrik Tews wrote:


Hi,

I would like to separate the following issues:

1. Detecting library loads inside ProofGeneral and finding out
what file actually is meant

2. Deciding whether the library is up-to-date and performing the
actions to make it up-to-date.


OK, I am getting your point.


For issue 2 the simplest solution is to provide a user option for
an external command to be called. The command will contain some
keys that get substituted with file and directory. The default
would be something like "make -C %d %f.vo" resulting in
"make -C some/dir foo.vo" if library foo in directory some/dir is
required.

ProofGeneral should always provide this simplest solution,
because it scales to arbitrary projects with arbitrary
dependencies.

I would however also be interested to built some simple
dependency analysis into ProofGeneral, based on calling coqdep on
some .v files, analyzing the results and then possibly calling
coqc on some files. This would relieve simple projects from
providing a makefile.

However, in the emails before I only discussed issue 1. The
problem is that if library foo is required then you need to look
at coq's library path, in order to find out which files foo.v and
foo.vo are actually meant. It might be that there is foo.vo in
the current directory, but coq loads foo.vo from some other
directory or even complains that it cannot find foo.vo!

To solve issue 1 one can either model coq's library-finding
functionality inside ProofGeneral or ask coq with Locate Library.
The latter is simpler, but requires that one can synchronously
talk to coq without disturbing the rest of ProofGeneral.


OK. I get your point completely now.

The idea is the following if I understand well.

A command "Require f" is about to be sent to coq, but *before that* we
want to perform the following:
  1) send "Locate Library f"
  2) wait for the answer of coq: "path/to/f" .
  3) send "make -C ... path/to/f.vo"
  4) wait until make finished its job
  5) finally send the "Require f" to coq if everything went well (error
otherwise).

Tell me if I am wrong.
David, I am not sure coq-shell-insert-hook is the good entry point for
this kind of things. Is it?

Cheers,
Pierre



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-09 Thread David Aspinall

On 09/12/10 14:19, Hendrik Tews wrote:

David Aspinall  writes:

I think the file-load/save is a quite natural time to do this since it
may interrupt the developer anyway and we try not to query the
developer when sending commands in the background (so they can be
looking at other parts of the script).

I am not so concerned any more about asking the user when sending
commands in the background. The reason is that it doesn't make
much sense to decide about recompilation on a per-file basis. I
expect that most users will either disable recompilation from
ProofGeneral or set it to "automatic" mode, where ProofGeneral
recompiles without asking back.

The "confirmation" mode, where ProofGeneral is asking for
confirmation before recompiling is probably only useful for new
users, to give them an impression about what is going on.


Did you consider the scripting time option, file activated for 
scripting?  This is the place that saves of potential-ancestor files is 
triggered (with idea that prover may read them from file system).  So it 
seems to fit this usage with caveats I mentioned before.


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-09 Thread David Aspinall



So your answer is no? One cannot communicate with the prover from
inside proof-shell-insert-hook?


No, do not do that.


There might be some misunderstanding: I want to use
"Locate Library" only to map a library names to a file path. This
mapping depends on coq's LoadPath, which can be changed with
command line switches or with the various LoadPath commands at
runtime.


I think I understood, roughly, but thanks for clarifying,  I think the 
coqdep stuff was just a failed attempt to do this (maybe before Locate 
Library was available).


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-10 Thread David Aspinall

On 10/12/10 11:43, Hendrik Tews wrote:

David Aspinall  writes:

Did you consider the scripting time option, file activated for
scripting?  This is the place that saves of potential-ancestor files

What precisely do you mean? Do you mean ProofGeneral's concept of
the active scripting buffer and proof-activate-scripting-hook?


Yes.


I don't want a solution based on proof-activate-scripting-hook,
because I want to update files outside of emacs (eg by cvs
update) while I am scripting in some buffer.


But that's OK: the point of the "active" scripting buffer is to isolate 
the one buffer that you are editing in the editor that *shouldn't* be 
simultaneously changed outside your control in the file system.  Emacs's 
own hooks will check file-system consistency for you, with usual warning 
messages and options to reload the buffer, etc.  But you don't 
expect/want this to happen when you've sent half of it Coq.


When a new buffer becomes active, it is a chance to check that ancestor 
files are compiled to their latest versions.  For files that are 
compiled, you might lock them inside PG to indicate this and that the 
user should not edit them to become confused.  If they do edit some 
file, then dependent files will be unlocked automatically to indicate to 
the user that they need recompiling to use updated ancestors.


See proof-included-files-list, doc here:

  http://bit.ly/dTItNV

I think this could work nicely with Coq and compiled files.  If you can 
try out Isabelle, the trivial test cases include in etc/isar/multiple 
will demonstrate how it works.  Also look at the messages in the 
*isabelle* buffer.


I'm assuming it's not possible to invoke coqc from within coqtop? 
Instead, you could use a cunning perl wrapper to multiplex the 
compile/proof commands and use the existing PG configuration mechanisms. 
 Your wrapper could even spot "Require" commands and invoke "coqc" 
itself as you first thought of doing with PG, then the messages issued 
could work with the existing protocol.  But that's maybe too kludgy, you 
would need to buffer commands, etc.


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-10 Thread David Aspinall

On 10/12/10 14:43, Pierre Courtieu wrote:

I agree with Hendrik, activate-scripting is not the right trigger
because dependencies may change *after* scripting is activated. Each
time the user adds "Require Import foo." and scripts it, proofgeneral
should try to compile foo.v if it is not up-to-date.


This is actually pretty similar to what happens in Isabelle, it is just 
that Isabelle reports the dependencies to Proof General after it has 
processed the equivalent of Require  (and of course, it reads the file 
in on the heap at that point rather than compiling).


So, if you don't want to parse the file first you can still use a new 
hook (or the kludgy wrapper idea, or a modified coqtop top level...) to 
issue the compile commands exactly when you process Requires, but the 
rest of the active scripting mechanism could join up well.  (Note: when 
you undo a Require you should unlock the corresponding buffer too.)


It would be great to get this working, but I am remembering why it 
wasn't so easy...


 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-10 Thread David Aspinall



Yes but files on which it depends may have changed by cvs (typically
you cvs update an external library to its current version). When will
this be detected? It would be tedious to have to deactivate/reactivate
scripting to detect this. Going back to the require and forward should
be enough.


This is confusing... I think you're asking for something that neither 
mechanism we've talked about is trying to do.  I don't mean that you 
turn on/off scripting every time you type a Require command, although we 
could argue about how bad that really would be (aren't Require commands 
almost always collected at the top of the file?).


I'm suggesting Hendrik uses the existing included files mechanism *and* 
the coqc/LoadPaths triggers, to give better user feedback on the status 
of files up-to-date/not in the interface.  This was the point of the 
original included files design.  So files which have been compiled are 
considered up-to-date and are locked.  The locking happens when the 
Require is processed, which is what you want, and up-to-date checks 
could be made here (IIRC the locking is simplistic: it locks an already 
visited buffer, and arranges that if that file is visited in future it 
will be locked).


You can always subvert the interface locking if you want to, explicitly 
with the options, or behind the scenes by being naughty.  The point is 
to have a simple mechanism that gives the user some useful hints in most 
cases.  Personally, I would think that running a big cvs update in the 
middle of scripting a complex file that depends on the libraries you're 
updating is not a sensible idea!!



Moreover as I said before: the set of ancestors may change during
edition as user types its Require.



This feature is definitely what we want but it is an error to consider
that dependecies are fixed, and that requred files are fixed.


This is straightforward, you need to tell PG the dependencies but you 
can do this from seeing the Require (exact single dependency), or from 
the output it produces (recursively included files as well).  Same as in 
Isabelle, you should really take a look at it...


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple file scripting for coq

2010-12-13 Thread David Aspinall

Hi Hendrik,

Quick reply to your second message:


  useful hints in most cases.  Personally, I would think that running a
  big cvs update in the middle of scripting a complex file that depends
  on the libraries you're updating is not a sensible idea!!

With PVS I do this now and then for validating proof scripts in
the background. For instance, when working in B I notice that I
have to change something in A, where B depends on A. So I change
A,

...

Changing files in the background also happens when working at
home: When finished at home I copy the sources to work and
hibernate the computer at home with the running proof assistant.
At work I continue and later I start the computer at home and
copy the changes from work.


Thanks a lot for explaining these use cases.  I think it's a good way to 
think about the scenarios that should be supported, or, at least, not 
prevented.


If the developer believes (or the system knows) that the proofs are not 
going to be broken by changed statements or missing definitions, etc, 
then continuing scripting while there are updates in ancestors is OK, of 
course.  If the changes are made by someone else you might want to be 
more careful!


The simple-minded file-level locking/decoration is supposed to give a 
little bit of information so that the developer has some interaction to 
point out these dependencies and finds out about changes.  If you're 
closely aware of the dependencies (e.g. through writing Makefiles and 
running compiler on command line), it probably doesn't matter much.  I 
think that was the conclusion Pierre persuaded me of last time I raised 
the multiple file support with him.  Maybe once people get used to 
automatic compilation it would seem useful.


I'll think about your second message in a bit more detail and respond in 
a while.


Meanwhile, I encourage you to develop a patch which supports the uses 
you're most interested in!


Best wishes,

 - David



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] first multiple coq files patch

2011-01-11 Thread David Aspinall

Dear Hendrik,

Many thanks for the patch!  I hope some users will test it but there 
aren't many on this list, you might like to advertise your web page on 
the Coq mailing list, perhaps?


I'll try to take a look myself soon.

I hope to release PG 4.1 shortly to coincide with the Isabelle release 
and had hoped your patch would be ready by then, but maybe not.


 - David

On 11/01/11 15:07, Hendrik Tews wrote:

Hi,

below is a first patch against ProofGeneral version 4.0, that
adds support for multiple files for coq. The patch is not
complete yet, I would not expect an inclusion in the development
version of ProofGeneral at this time. I post the patch to give
you something to experiment with and to get some feedback.

The patch adds a hook to proof-extend-queue such that I can
search for Require commands just before they are added to the
queue. If I find a require I immediately check dependencies and
recompile if necessary. Checking and recompilation is either done
in a rather straightforward recursive function
(coq-make-lib-up-to-date) or through an external command,
configured with coq-recompile-command.

For mapping module names to files I use an emacs hash table that
models the LoadPath. It gets initialized in
proof-shell-init-hook.

The patch also adds an option proof-no-fully-processed-buffer,
through which coq-mode does now require to fully retract even
those buffers that have been completely asserted.

There is lots to be done, see
http://askra.de/software/multiple-coq/ for known problems. In
particular I have not (yet) done any integration with the
multiple file support that was there before.


I abandoned the following two ideas:

- Query coq to map module names to files

   There is apparently no reliable way to do this.

- Do checking/recompilation from inside the process loop

   The main argument for this approach is that Add LoadPath
   commands have been processed before starting the dependency
   analysis. However, nobody is using Add LoadPath, and the
   argument is therefore a bit weak. On the contrary, error
   reporting is very complicated ...

   (I checked all coq user contributions, they only contain "Add
   LoadPath ".." twice for some examples in a subdirectory.)


Bye,

Hendrik




___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] multiple coq files: error reporting

2011-01-12 Thread David Aspinall



How to report those coqc errors? I believe I need a
refactorization of proof-shell-handle-error-or-interrupt where I
can pass the error message as a string argument.


Looking at what you've done so far, I suggest simply not sending the 
commands to the theorem prover process if the auto compilation fails.


Your own error reporting brings up a helpful buffer which shows the 
result of the coqc command, and adjusting the proof-shell patch as below 
prevents the queue being left in a bad state.


 - D.



*** generic/proof-shell.el  10 Oct 2010 22:57:05 -  11.0
--- generic/proof-shell.el  12 Jan 2011 13:17:27 -
***
*** 924,932 
--- 924,938 
  for processing a region from (buffer-queue-or-locked-end) to END.
  The queue mode is set to 'advancing"
(proof-set-queue-endpoints (proof-unprocessed-begin) end)
+   (condition-case err
+   (run-hooks 'proof-shell-extend-queue-hook)
+ (error
+  (proof-detach-queue)
+  (signal (car err) (cdr err
(proof-add-to-queue queueitems 'advancing))


___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Automatically retract effects of proof-activate-scripting-hook?

2011-01-13 Thread David Aspinall
> I expected, that when changing the buffer and retracting the old
> scripting buffer, all those Add LoadPath commands are retracted as
> well. However, this is not the case! Commands sent via
> proof-shell-invisible-command from inside
> proof-activate-scripting-hook are not retracted when scripting is
> deactivated. 

proof-shell-invisible-command is designed for sending diagnostic and control 
commands which are not scripting commands and not part of the undo model of the 
prover.  You only get undo behaviour for commands which appear in the buffer 
text.

So, yes, you may need to adjust the load path manually with the scriting 
activate/deactivate hooks.

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Automatically retract effects of proof-activate-scripting-hook?

2011-01-13 Thread David Aspinall
> Undoing those Add LoadPath commands with Remove LoadPath commands
> would be rather difficult. If one adds a directory which is
> already in the LoadPath, coq reorders the LoadPath, a subsequent
> remove will not yield the starting state.

In that case I'm not sure how you can achieve what you need, unless there is 
SetLoadPath.

>   proof-shell-invisible-command is designed for sending
>   diagnostic and control commands which are not scripting
> 
> OK, is there an alternative that I could use from inside
> proof-activate-scripting-hook in order to get undo behaviour?

No, invisible command is the only thing open to you.

In any case, Proof General is nowadays (intentionally) quite stupid about undo 
commands and just points Coq at particular states in its internal history based 
on counting script commands sent.

Maybe Pierre can advise (or has already advised) on whether the load path is 
part of the state that Coq manages internally in its history.  If it isn't then 
you're not going to get something automatic.

To manage things manually, you could add special properties to the spans in the 
buffer to record the loadpath before an adjustment is made, then alter Coq's 
undo calculation to issue commands to restore the value when those regions get 
retracted.  Sounds doable, but tedious.  How often is AddLoadPath used in 
scripts?

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Automatically retract effects of proof-activate-scripting-hook?

2011-01-13 Thread David Aspinall



For getting correct multiple file scripting for coq I would first
try to restart coqtop on every new scripting buffer. What would
be the best way to achieve this? Put proof-shell-exit into
proof-deactivate-scripting-hook?


I suppose but this does seem pretty crude, there is some cost to setting 
up/tearing down process and associated buffers, etc.


Doesn't something like Reset Intial work (restart button's command)?


>  will be sufficient. The -I arguments can be derived from
>  coq-load-path and coqtop is default.
>
>
That would be nice. For this we can ask David to allow prog-args to be a
function instead of a list. In proof-shell near line 239. This way we can
define coq-prog-args as the function that build the -I list from
coq-load-path.

I would leave prog-args as it is now. I view coq-prog-args as the
place for options different form -I and -R like -is or
-impredicative-set.


I suppose Pierre means that you need a way to influence the command line 
calculation as you wanted, perhaps with yet another control 
function/hook or variable for prog-args (already several added for 
Coq..).


I suggest refactoring the setting of prog-command-line in 
proof-shell-start into a new function which does this, so 
(proof-shell-prog-command-line) returns the command line you want.  That 
would clear up the beginning of proof-shell-start a bit.


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Automatically retract effects of proof-activate-scripting-hook?

2011-01-14 Thread David Aspinall
> This is, however, not the expected simplification. I decided for
> this simple change, because it keeps the functionality of other
> proof assistants without that I have to touch their code.


This sounds wise, and what Pierre originally suggested, although if I've 
followed it seems as if that's not compatible with his convention of setting 
coq-prog-args in file local variables.

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Automatically retract effects of proof-activate-scripting-hook?

2011-01-14 Thread David Aspinall
> This sounds wise, and what Pierre originally suggested, although if I've 
> followed it seems as if 
> that's not compatible with his convention of setting coq-prog-args in file 
> local variables.

I looked again, I see you suggested coq-load-path for this already, not 
prog-args.  Great.

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Re: Multiple files: coq-process-require-command

2011-01-19 Thread David Aspinall
>   However, I am not satisfied with what happens when I switch to
>   one of these looked ancestors. What currently happens is that
>   when I start typing there, I am forced to completely retract the
>   current buffer. IMO this is too much for coq.

Yes, it seems that you're actually wanting the opposite situation from 
Isabelle, where we suppose retracting an ancestor file is potentially expensive 
operation, so in general we might want to protect ancestor files against 
accidental retraction more enthusiastically than protecting the current script.

> The situation is slightly better than I described, because one
> can permit typing by setting proof-strict-read-only to nil.
> However, this is a global setting which also affects the current
> scripting buffer.

Yes.  And note that changing it is not dynamic in the sense that it does not 
affect spans which have been previously constructed.  It is tempting to improve 
that in the function proof-span-read-only by always using a function (i.e. 
added by span-write-warning) rather than using standard read-only property.

Let me understand *exactly* what you're wanting.

Currently p-s-ro  allows

   t  : prevent editing without retracting manually, give read only error
'retract : automatic retraction before edits (essentially UI convenience).
 nil : edit freely, don't remove the span colouring or retract

In nil case, the interface keeps cues about how much has been processed, but 
the buffer loses sync with the actual text that was processed in the sense that 
there is no visual indication that the text has been edited.  (Remark: PGIP 
uses the "outdated" state I mentioned before for this condition, so an edited 
ancestor file would change from blue to a grey colour and cause all its 
children to do so also).

Instead of what you suggested, could we add an additional option to p-s-ro that 
would give you what you want?  Pro: it seems a bit smoother than your 
suggestion; Con: it introduces yet another user-visible choice.

Something like 'edit-others, meaning nil behaviour for non-current scripting 
buffers.  It's an easy test in the span hook function to see if we are editing 
in the current active scripting buffer or not.

 - D.


___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Re: Multiple files: coq-process-require-command

2011-01-19 Thread David Aspinall
P.S. correction to what I said: p-s-ro changes *are* dynamic in that there is a 
special function which changes the spans following changes in that setting.  
That's the function that has the same name as the variable, 
proof-strict-read-only, it's called by the proof-set-value hook in defcustom 
for the variable.  A bit clunky.___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] no deactivation-hooks when killing fully asserted active buffer

2011-01-21 Thread David Aspinall
Hi Hendrik

Yes, it looks like a bad path, probably not noticeable before since we've used 
the hook for functions that only are useful when the shell is live.

Do you want to repair by adding a test for fully processed buffer?

[Or I can do, but not until much later today]

 - D.

On 21 Jan 2011, at 07:42, Hendrik Tews wrote:

> Hi,
> 
> when you kill the currently active scripting buffer, then the
> hooks in proof-deactivate-scripting-hook are not run when the
> buffer was fully asserted. I believe this is a bug.
> 
> What happens is that 
> 
> - kill-buffer-hook calls proof-script-kill-buffer-fn,
> - which calls proof-deactivate-scripting-auto
> - which calls (proof-deactivate-scripting 'process)
> - which calls (proof-protected-process-or-retract 'process)
> - which calls proof-process-buffer
> - which calls (proof-assert-until-point-interactive)
> - which calls proof-assert-until-point
> - which throws 
>  (error
>"At end of the locked region, nothing to do to!"))
> - this error unwinds until the ignore-errors in
>  proof-deactivate-scripting-auto, thereby skipping the call to
>  the hooks in proof-deactivate-scripting
> 
> Bye,
> 
> Hendrik
> ___
> ProofGeneral-devel mailing list
> ProofGeneral-devel@inf.ed.ac.uk
> http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel
> 

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] no deactivation-hooks when killing fully asserted active buffer

2011-01-23 Thread David Aspinall
I've committed a patch to proof-protected-process-or-retract now which fixes 
this problem and I think your test case works.

But there may be some further issues (try the coq autotest script) because the 
coq process is killed and restarted at unusual places in the code now, probably 
breaking some assumptions.

I don't quite understand the places where this happens: it would seem cleanest 
if the process was started/exited with the activate/deactivate action, but I'm 
seeing it being started after switching buffers and beginning scripting 
somewhere else,  e.g. on the first non-comment element of the file.

 - D.

On 21 Jan 2011, at 10:06, Hendrik Tews wrote:

> David Aspinall writes:
> 
>   Do you want to repair by adding a test for fully processed
>   buffer?
> 
> I reused an existing test case, see the description in
> coq/ex/test-cases/retract-completely-asserted/README.
> 
> I would like to leave the work on the fix to you.
> 
> Hendrik
> 

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] how to unlock ancestors

2011-01-23 Thread David Aspinall
I think the natural place to do this is actually in the prover-specific 
retraction function, coq-find-and-forget.

But this would also require computing the list of spans in the retracted 
region, which is avoided in the Coq code now by using span properties to store 
pointers passed back to Coq.

So I agree that your approach 1 is best.

> BTW, what is the relation of 'remove-action and
> 'span-delete-action? If there is a hook, the remove action could
> also be put into the hook.

The remove-action was a private action for the script management --- I think 
only used to delete a region of text for the undo with delete function -- note 
that it is given the span end points as an argument and called after the span 
is deleted.  The delete action is for other stuff called before the span 
deletion.  In particular, the auxiliary spans for decoration, tooltips, etc use 
the second one to update the internal maps of auxiliary spans.

I agree that it looks like these could be combined into a hook, but please be 
careful with the order of calling if you try that: I suggest to make it a 
second refactoring step after converting span-delete-action into 
span-delete-actions.

(It may be that we can also address the minor FIXME on line 2140 of 
proof-script.el here by letting proof-setup-retract-action take a list of 
functions to append to the hook, and putting on a function to adjust the proof 
depth counter there, but let's also try that at a later step).

 - D.


___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Re: Multiple files: coq-process-require-command

2011-01-23 Thread David Aspinall
> I only thought about a coq-specific solution that leaves the
> other proof assistants untouched. Thinking about it, the feature
> might also be interesting for other provers.

Maybe -- but I prefer to avoid proliferating user options even further unless 
there's a desire (ideally from more than one user...).  

Also, we should avoid making the code overly complicated (and the automatic 
functionality difficult to guess) if the use case you are addressing could be 
managed just by the user very easily hitting another key press (e.g. C-c C-r) 
that becomes part of their work flow.

I had in mind us adding one additional option for p-s-ro, not turning it from 
three settings into 8, so let's think about it...

> 1. Make scripting in ancestor ready. This is for the case that I
>   want to continue with scripting in the ancestor. Proof General
>   should retract up to the point where I can start scripting in
>   the ancestor without being another question asked. For coq
>   this means to completely retract the current active scripting
>   buffer.

OK, so this is current 'retract setting, right?

> 2. Make editing in ancestor possible. This is for the case that I
>   only want to edit the ancestor and continue afterwards with
>   scripting in the current active buffer. Moreover, I want to
>   maintain consistency of my buffers and the prove assistant.
>   For coq this means that the current scripting buffer must
>   retract up to the appropriate Require command. When I change
>   my mind and start scripting in the ancestor, then I am asked
>   again, whether I would like to change the current scripting
>   buffer.

If I understand right, I think the main new use case you're allowing here is 
for the user to make an edit in an ancestor file, and have that file 
automatically recompiled (not scripted) by re-processing the Require line in 
the child buffer and without nuisance of having switched active scripting 
buffer, etc.

Before making that an automatic option for p-s-ro it could be implemented as a 
user-level command perhaps, and if you want the precise (retract to line of 
Require) behaviour, for Coq only.

> 3. Permit editing in the locked ancestor. This is for the case
>   that I want to edit the ancestor without changing my current
>   state in the active buffer. Thereby I accept the inconsistency
>   between the buffer content and prover. For coq this means that
>   only the span in the ancestor must be changed to read/write.
>   When I switch to a different ancestor I want to have a new
>   choice.

Hmm.  This sounds like something for consenting adults only, and something that 
C-c C-z, proof-frob-locked-end should allow.  Have you used that command?

> For coq there is usually only a tiny difference between option 1
> and 2, because Require commands are usually at the beginning of
> the file. Therefore, I would be satisfied with a choice between 2
> and 3 with the following optimisation for option 2: Proof General
> must retract at least up to the Require that caused ancestor to
> be locked. If there are only comments and Require commands above
> this point then the current scripting should be retracted
> completely.

This optimisation becomes desirable because we have the situation with the 
implementation that the control over ancestor files is fine-grained (i.e. 
during scripting the file rather than at the start by parsing "imports" which 
the included files behaviour assumed).  I think you made this decision for 
implementation ease as well as accuracy, but  if you want now to automatically 
retract things further than target region in certain cases, that definitely 
looks like a Coq-specific function.

> Alternatively a choice between 1 and 3 would be fine, if there is
> the following change for coq: If there is substantial material
> above the Require that caused ancestor to be locked, then Proof
> General should only retract up to this Require, but not the
> material before it.

Yes, I agree for Coq.  Although I notice again it's just one key/button press 
for the user, C-c C-r.

> So in summary, I would like to see the following changes:
> 
> 1. an additional option 'ask for proof-strict-read-only, which
>   asks whether to retract or to permit modifications in the
>   locked region.

This seems to be an additional dialogue that's not really necessary (the user 
can manually retract with C-c C-RET when p-s-ro is strict).  

Perhaps you mean to change the buffer local behaviour temporarily for just the 
current buffer.  Would a buffer-local override to allow edits temporarily meet 
this?  (alternative to C-c C-z, edit, C-c C-z) 

> 2. splitting proof-strict-read-only into two variables, where one
>   applies to the active buffer and the other applies to all
>   other buffers.

Not sure about this, and it might be messy in the code.  Easier would be a 
buffer local value for proof-strict-read-only which can be modified from the 
default, but I'm not sure how smoothly that would work in the c

Re: [PG-devel] Re: Multiple files: coq-process-require-command

2011-01-23 Thread David Aspinall
Thinking again on this:

> This optimisation becomes desirable because we have the situation with the 
> implementation that the control over ancestor files is fine-grained (i.e. 
> during scripting the file rather than at the start by parsing "imports" which 
> the included files behaviour assumed).  I think you made this decision for 
> implementation ease as well as accuracy, but  if you want now to 
> automatically retract things further than target region in certain cases, 
> that definitely looks like a Coq-specific function.

Actually, I realised that we do have the retraction behaviour you described for 
Isabelle already...

If the current Coq mechanism is using 
proof-register-possibly-new-processed-file, we could make the retraction 
operation you want generic, but we'd need to implement the span based mechanism 
(i.e. recording the included files in the Require-like span) in the generic 
code too.  

It doesn't seem worth doing this generically because, at least for Isabelle, we 
had already decided to put the dependency management in the prover.  Isabelle 
issues messages like "Proof General, you can unlock file XXX.thy" that are 
obeyed dumbly by PG.  So the span based mechanism would conflict/overlap with 
that.

Another way to get the behaviour for Coq might have been to implement a wrapper 
around coqtop that spits out these messages at appropriate points, and hope 
that the Coq code could be patched at some point.

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] no deactivation-hooks when killing fully asserted active buffer

2011-01-24 Thread David Aspinall



is there viewvc and cvshistory running on the Proof General cvs?


There's a handy view via Mercurial here courtesy of Markarius Wenzel 
(hopefully he won't mind me advertising)


http://www4.in.tum.de/~wenzelm/cgi-bin/repos.cgi/ProofGeneral/



I've committed a patch to proof-protected-process-or-retract
now which fixes this problem and I think your test case works.

I don't see this. Here, coqtop still survives when I kill a
completely asserted active scripting buffer. The reason seems to
be that the unless now causes proof-protected-process-or-retract
to return nil and then the progn in
proof-deactivate-scripting-auto, which contains the deactivation
hooks, is skipped.


OK, let me take a look, I probably missed that the return value was 
being used.  I saw the killing but maybe it was happening at the wrong 
moment which prompted my question below...



But there may be some further issues (try the coq autotest
script)

OK, I do "make test.coq" and then I see some flickering and
finally emacs hangs. What is the proposed way to use the
autotest?


Just as you did, Emacs shouldn't hang!  But that might be a bug in the 
test as I tried to put in a multiple file test.  You can set 
debug-on-signal to interrupt and get a backtrace.



coqtop is killed via proof-shell-exit inside
proof-deactivate-scripting-hook, that's inside the deactivation
action, isn't it?

but I'm seeing it being started
after switching buffers and beginning scripting somewhere
else, e.g. on the first non-comment element of the file.

Yes, that's the desired behavior: You can freely switch buffers,
but as soon as you start scripting in a buffer different from the
active scripting buffer, then the coptop process is killed.


OK, "as soon as you start scripting" includes comments, i.e. on making 
the buffer active for scripting?   That's what I expected (and maybe 
what you intended!).


Cheers

 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] no deactivation-hooks when killing fully asserted active buffer

2011-01-25 Thread David Aspinall



I don't see this. Here, coqtop still survives when I kill a
completely asserted active scripting buffer.


OK confirmed, what happens is that the hook functions are not run 
because the call is in a path in the code where it is assumed that we 
haven't changed the state of the buffer after all.  Previously that 
could only happen because the user refused to completely process or 
retract in a partly completed buffer, but now it can happen because you 
want to sometimes run this function when the buffer is already 
completely processed or retracted.


proof-script-deactivate scripting is by now quite garbled with the 
accumulated logic and your new flag which tells it to sometimes ignore 
the old logic!


Could you try making a separate path/function for your desired behaviour 
first?  Then we can combine back and clean up this function.
i.e., duplicate some of the code in the body of 
proof-deactivate-scripting in a new function.



OK, I do "make test.coq" and then I see some flickering and
finally emacs hangs. What is the proposed way to use the
autotest?


The hangs seems to be a deadlock in proof-shell-wait that happens with 
the new way Coq is started with multiple files.  I'm not sure why, 
perhaps because it gets called before the shell has been completely 
initialised.  I removed that line from the tests for now, it works 
without the wait.


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] how to unlock ancestors

2011-01-25 Thread David Aspinall



There is now span-add-delete-action which adds a function to the
'span-delete-actions property. But it is only used for the action
that was previously stored in 'span-delete-action and for
coq-unlock-all-ancestors-of-span. I neither touched the remove
action nor that FIXME.


Looks good, thanks.

 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] no deactivation-hooks when killing fully asserted active buffer

2011-01-25 Thread David Aspinall

On 21/01/11 10:06, Hendrik Tews wrote:

David Aspinall writes:

Do you want to repair by adding a test for fully processed
buffer?

I reused an existing test case, see the description in
coq/ex/test-cases/retract-completely-asserted/README.


OK, I committed a patch now (not quite the one I sent you off list) 
which ensures that the hook function is run.


Regarding test case above: the bug mentioned in README is fixed, but the 
behaviour I described earlier (about Coq process being started at odd 
time) still happens when I follow the "To provoke an error" 
instructions. And I don't get an error!


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] no deactivation-hooks when killing fully asserted active buffer

2011-01-26 Thread David Aspinall



You don't see the error any more, because we have now double
security:
- first the buffer is retract because of
   proof-no-fully-processed-buffer
- second coqtop is killed on switching the active scripting
   buffer


Great!   BTW, I think the retraction is a bit clunky in the UI because 
it makes the pointer leap to the top of the buffer.



At the moment proof-no-fully-processed-buffer is therefore not
necessary, because killing coqtop retracts everything. Eventually
I want coqtop to survive switching the active buffer if the load
path' of the new and old buffer are equal. Then
proof-no-fully-processed-buffer will again be essential.


OK, understood.


Regarding test case above: the bug mentioned in README is fixed, but
the behaviour I described earlier (about Coq process being started at
odd time) still happens when I follow the "To provoke an error"

When do you see coq being restarted? When I follow the old
instructions (that is without disabling the
deactivate-scripting-hook), I see:
- coq starting when I script the first comment in a.v
- coq killed when I script the first comment in b.v
- coq started again when I script the first non-comment line in
   b.v

This is precisely as it should be. (Only that I don't understand
why I can script the first comment in b.v without coq running.)


Yes, I see the same and it is the last point that I was querying.

I suspect what is happening is that you are killing the process at a 
place in the code that is not expecting this to happen (i.e., 
deactivating scripting).  Whenever a command is sent to the prover, it 
is cranked up automatically if it is not running already.  But comments 
are skipped in the interface, hence the behaviour above.


This is a concern because it's probably assumed elsewhere in the code 
that the process is running whenever we have an active script buffer. 
So we should make sure that the process is cranked up in the script 
activation code too.


Looking at the code, this is supposed to be done already by 
proof-shell-ready-prover in proof-activate-scripting.  Maybe some state 
isn't being cleared which makes this function think it has nothing to 
do.  I'll investigate (later...)


Possibly related to this, I see some odd messages in the log from the 
Coq autotest examples, where the code is trying to find a process 
connected to a script buffer rather than the *coq* buffer.  Run "make 
test.coq"  (see error "Buffer f.v has no process")


 - D.

PS I'd prefer to move this discussion to the trac rather than mailing 
list.  It's a good way of recording the open issues, any way.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Flushing old coq multiple file support

2011-02-15 Thread David Aspinall
Nor me -- but notice that the CVS server has been having problems lately 
and is offline at the moment.  I hope they will fixed it by tomorrow.


 - David

On 15/02/11 16:07, Pierre Courtieu wrote:

No problem for me.
P.

2011/2/14 Hendrik Tews mailto:t...@os.inf.tu-dresden.de>>

Hi,

if nobody disagrees I am going to delete the old multiple file
handling code for coq. There was one worthwhile thing in it: the
coq-auto-compile-vos option. I'll check how I can keep its
functionality.

Bye,

Hendrik
_

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Inverse of proof-register-possibly-new-processed-file?

2011-03-09 Thread David Aspinall
[ Hendrik - you asked me to follow up on this, below is the message I 
sent before to you 25/1, not sent to the list. ]


When this is driven by messages from the prover, this function in 
proof-shell.el does the job:


proof-shell-process-urgent-message-retract

It uses proof-restart-buffers which you might want to reuse, does a bit 
more cleanup than your version.


 - D.


On 25/01/11 14:47, Hendrik Tews wrote:

Hi,

I looked around, but I could not find the inverse of
proof-register-possibly-new-processed-file. This inverse should
delete a file from proof-included-files-list and unlock its
buffer, if it exists.

There is proof-unregister-buffer-file-name, but
- it only works on buffers
- it does not unlock the buffer

I also looked at proof-retract-buffer, but it wants to change the
active scripting buffer, which is not the right thing to do when
unlocking an ancestor.

I finally came up with the following

(defun coq-unlock-ancestor (ancestor-src)
   "Unlock ANCESTOR-SRC."
   (let* ((true-ancestor (file-truename ancestor-src))
  (buffer (find-buffer-visiting true-ancestor)))
 (setq proof-included-files-list
   (delete true-ancestor proof-included-files-list))
 (if buffer
 (with-current-buffer buffer
   (proof-set-locked-end (point-min))
   (proof-script-delete-spans (point-min) (point-max))

This works in my tests, but I am not sure, if it is the right
thing.

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] proof tree visualization -- where to commit?

2011-04-13 Thread David Aspinall
Looks impressive!  I agree, use a branch for now until we can release PG 4.1 
and then merge back in.

 - D.

On 13 Apr 2011, at 08:29, Hendrik Tews wrote:

> Hi,
> 
> inspired by PVS, I started to work on an external visualization
> of the proof tree. I have now a basic version running, see below.
> It is implemented in GTK and Ocaml, integrated with Proof General
> and works with a patched version of Coq. 
> 
> I believe it's time now to share the code with others and I would
> therefore like to commit the necessary changes to the repository
> of Proof General. It probably makes sense to commit to a branch
> first. How about ``ProofTreeBranch''?
> 
> Bye,
> 
> Hendrik
> 
> ___
> ProofGeneral-devel mailing list
> ProofGeneral-devel@inf.ed.ac.uk
> http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] ChangeLog branch chaos

2011-04-28 Thread David Aspinall
> If you want a ChangeLog containing only the messages for the main
> trunk then you can include the options ``-r -b'' in the rcs2log
> call in Makefile.devel. 

I think this is a fine solution.  We haven't used branches much (partly because 
they are a mess in CVS), and the idea is that they contain experimental 
developments before being merged back in, the history on the main trunk should 
be what's most relevant to most users/developers.

Makarius's Mercurial mirror provides a nicer way to browse changes anyway.

I am keen to use a more modern distributed system but it probably means 
choosing an external provider rather than trying to get the University to 
provide yet another semi-supported tool that works at the beginning and then 
rusts.  Sourceforge is the most likely candidate.

- David

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] ChangeLog branch chaos

2011-04-28 Thread David Aspinall



I'd recommend Savannah (either as a GNU or a non-GNU project).


interesting idea, good choice of VC systems there, not just bzr


Which reminds me: it would be nice to include PG into the GNU ELPA (a
package archive from which Elisp packages can be installed conveniently
via package.el).  If you agree this is a desirable goal, then we'd need
to track down all the non-trivial contributors to get them to sign some
copyright assignment.


I agree it would be nice and I wrote a package.el target a while ago 
(untested though).  It would also be a good exercise to clean up/assign 
copyrights clearly -- although I'm not keen to do that myself, 8-(.


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] ChangeLog branch chaos

2011-04-28 Thread David Aspinall



I would not expect a paragraph that starts with "modern" end with
"Sourceforge". They added some half-harted support for Mercurial,
Bazaar, Git some years ago, and people rightly complained that it was
"too late and too little".


There are several reasons to suggest sf.  One is the provision of trac. 
 I'm very keen on having a good issue tracker and haven't been 
impressed by what I've seen in Google code or Github when I last looked. 
 This is way more important to me than support for multiple forked 
repositories managed in a social way --- although I agree that doing 
this for proofs would be pretty interesting.


I've heard bitbucket.org is nice for Mercurial although I'm not sure if 
it's tracker is/will become Jira (Atlassian's well respected commercial 
tracker tool).


 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Why does proof-retract-until-point call proof-activate-scripting?

2011-05-02 Thread David Aspinall
> why does proof-retract-until-point make the current buffer the
> active scripting buffer? It seems that Proof General anticipates
> that the user starts asserting immediately afterward.

Not particularly, this is to enforce the simplifying invariant that there is at 
most only one buffer which can be partially processed.  That in turn is to 
simplify things for the user and for interaction with the proof assistant.  

(As an aside: the PA side of the contract is the important one: the idea behind 
PGIP was to turn this into a uniform protocol which could enable richer, 
generic, user interfaces that *appear* to enable more elaborate interaction in 
the UI but using the more restricted protocol behind the scenes with the 
prover) 

> However, it might also be the case that the user does only make
> some very small change and then goes to the previous active
> scripting buffer (or to some other buffer) and continues
> processing there.

Yes, of course, the use cases that you describe are very common and a common 
complaint about working with PG -- partly because it forces this low-level view 
of what is happening with the prover state abstraction directly in the UI.

> In all these cases it is right to completely retract the current
> scripting buffer A, because this ensures that the changes in B
> are recompiled and loaded. However, it is not necessary to kill
> and restart coqtop.

OK -- but the kill and restart is only happening now, because you have added 
patches to make deactivating a scripting buffer kill the Coq process, right?

Is there a major drawback to killing and restarting in this case?  Earlier you 
said that loading compiled files was so cheap it didn't matter to redo this.   
Is the issue that the UI loses this state (i.e. which files have been 
processed)?   Perhaps we need to cache the list of processed files and arrange 
for them to be automatically required again (and locked in PG) on restart?

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] proof-follow-mode in invisible buffers

2011-05-02 Thread David Aspinall
> In order to do
> some changes in A the user unlocks A, thereby retracting B. If B
> is not visible, then the point in B will be moved to the
> beginning of the buffer.

[ is there a difference between what happens with B invisible and visible? ]

> Is this behavior really intended? The beginning of the buffer is
> not a very useful position. If the user ever switches back to B,
> he probably wants to continue at the position where he left.

I agree that's not useful for your suggested use case, although it certainly 
matches the understanding of "follow the locked region".  Do you find "follow 
the locked region down" more useful?  

As an improvement we might set the mark so the user could simply hit C-u 
C-space to jump back, then C-RET to carry on scripting.

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Re: auto coppile hangs emacs

2011-05-06 Thread David Aspinall
> Yes, but this will not be easy. The problem is the following: I
> temporarily have to stop the proof-shell main loop if the next
> item in proof-action-list is a Require and if the corresponding
> compile job has not been finished.
> 
> Simply calling accept-process-output inside proof-shell-exec-loop
> does not help, because emacs does not process keyboard input
> during waiting inside accept-process-output.

No, I don't think you want to insert a wait inside proof-shell-exec-loop -- 
this is called from the process filter function for the prover just to handle 
the last prover output.

I guess the way to do things is to trigger the compilation in *another* 
asynchronous subprocess (I think you call coqc synchronously at the moment?) 
and use a filter function or process sentinel to handle the compile output.  
This would allow control to return to the ordinary top level.  Then the filter 
function goes back to call the insertion function which sends Require to the 
prover, if the compile succeeded.  The exec loop picks up automatically again.

> There seems to be no way around aborting proof-shell-exec-loop in
> the middle and restarting it when the compile job has finished.

No, but that seems OK: this should just appear as if the prover is busy, so 
preventing undo, etc.  (You may need to take extra action on interrupts)

Anyway, I agree this improvement is probably for v2.  We should try to release 
PG 4.1 in the next couple of weeks (at last).

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] setting completion-ignored-extensions

2011-05-11 Thread David Aspinall

To come back on this:

I agree that it would be sensible to set completion-ignored-extensions 
for Coq, given that one does not usually want to open .vo, .glob files 
in the editor.


Hendrik, do you want to add this for Coq?  I don't think it needs to be 
added to generic mechanisms since Coq is the only supported prover that 
compiles files at the moment.


Cheers,

 - David



On 29/03/11 12:08, Pierre Courtieu wrote:

OK then.

Cheers,
P.C.

2011/3/29 Hendrik Tews:

Pierre Courtieu  writes:

   I agree with the idea, but should we really modify
   completion-ignored-extensions by ourselves?

That's the usual practice. Here emacs -q -no-site-file gives

completion-ignored-extensions is a variable defined in `C source code'.
Its value is
(".o" "~" ".bin" ".lbin" ".so" ".a" ".ln" ".blg" ".bbl"
".elc" ".lof" ".glo" ".idx" ".lot" ".svn/" ".hg/" ".git/"
".bzr/" "CVS/" "_darcs/" "_MTN/" ".fmt" ".tfm" ".class"
".fas" ".lib" ".mem" ".x86f" ".sparcf" ".fasl" ".ufsl" ".fsl"
".dxl" ".pfsl" ".dfsl" ".p64fsl" ".d64fsl" ".dx64fsl" ".lo"
".la" ".gmo" ".mo" ".toc" ".aux" ".cp" ".fn" ".ky" ".pg"
".tp" ".vr" ".cps" ".fns" ".kys" ".pgs" ".tps" ".vrs" ".pyc"
".pyo")

   Is it not considered a
   user preference? Some people dislike hiding files at all.

Those people must then switch off the effects of
completion-ignored-extensions on a different level, so they won't
even notice if we add another two elements.

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] setting completion-ignored-extensions

2011-05-11 Thread David Aspinall



You are right. However, completion-ignored-extensions should be
set up _before_ visiting the first Coq file. That is, it must be
initialized when Emacs loads proof-site.el. As far as I can see
the only prover specific stuff, which proof-site.el does, comes
from proof-assistant-table. Therefore I suggested, to extend
proof-assistant-table with one row for ignored extensions. This
is not particularly nice, because Coq will be the only one that
uses this row.


I suppose you are right, it should be set early and it makes sense to 
put in proof-assistant-table because that configures the main file name 
extensions.


Do you want to try that?  Watch out for the AUTOMODE-REGEXP optional 
last column (not currently used but was in the past).


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] setting completion-ignored-extensions

2011-05-11 Thread David Aspinall



As Emacs maintainer I recommend package maintainers to setup their
"foo-site.el" such that it is (mostly if not completely) auto-generated
by something like update-directory-autoloads.

In such a situation a simple

;;;###autoload
(add-to-list 'completion-ignored-extensions ".vo")

in coq.el will do the trick.


Much neater idea... although at the moment our autoloads are only 
generated for the generic code and one might hope that e.g. using 
Isabelle doesn't automatically make .vo files unreadable -- in case 
Isabelle would use that extension for something else (it probably 
doesn't, but).


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] defpacustom customization groups

2011-05-16 Thread David Aspinall
Thanks for pointing this out.  At one point it seemed useful to also 
have a separate group for things managed automatically by sending 
commands to the prover (i.e. proof-assistant-setting).  I've simplified 
it now to instead use the proof assistant group directly since the 
defpacustom settings are not really internal either.  Things declared 
with defpgcustom will be put into the internal group (e.g. Coq-config).


For follow up issues, please see
http://proofgeneral.inf.ed.ac.uk/trac/ticket/402

 - D.

On 14/02/11 14:22, Hendrik Tews wrote:

Hi,

is it really intended to add defpacustom variables to two
customization groups, to proof-assistant-internals-cusgrp and to
proof-assistant-setting?

Is there a reason why the group proof-assistant-setting is not
defined?

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Small patch for Coq ProofGeneral bindings

2011-06-03 Thread David Aspinall

On 03/06/11 12:27, Pierre Courtieu wrote:

OK for me. Thanks for taking the time to submit this.
If there is no objection I will commit this.
P.C.


Please go ahead P.C.!  Thanks - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



[PG-devel] 4.1RC2 available

2011-06-22 Thread David Aspinall
Dear All,

I've made a second release candidate for PG 4.1 which should fix recent Coq 
parsing issues.  Could I persuade people to try it out, to iron out any final 
problems before release?  See main download page, 
http://proofgeneral.inf.ed.ac.uk/download.

Thanks a lot,

 - David

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] A few major bugs about exiting ProofGeneral with current CVS version

2011-09-14 Thread David Aspinall
Hi Hendrik

Thanks for the discussion on this:

> If nobody objects, I'll adopt solution 1 (see #421 for solution 2):
> 
> Inside proof-shell-kill-function set a global variable
> proof-shell-exit-in-progress. When
> coq-switch-buffer-kill-proof-shell sees this it refrains from
> calling proof-shell-exit recursively.

I followed up on Trac.  I guess solution 2 would be better, but I don't
object if you prefer to implement solution 1.  

Best wishes,

 - David




-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


Re: [PG-devel] PG 4.1 release ever?

2011-09-16 Thread David Aspinall
I am sure it will happen *eventually*.   It would be nice to 
precede/coincide with Isabelle's next release.


There is a new release candidate available now (RC5) which contains the 
recent (mainly Coq-related) fixes.   I hope this will be the last RC and 
not contain show stoppers!


 - David

On 11/09/11 14:41, Makarius wrote:

Since we are approaching the next official Isabelle release (probably
October 2011), this is the same procedure as everytime.

Is there any serious release schedule for PG 4.1?

Just before Isabelle2011 it was planned to happen within a few days
before our release, then new features came it. Now we are 8 months later
...

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] PG 4.1 release ever?

2011-09-18 Thread David Aspinall
> BTW, http://proofgeneral.inf.ed.ac.uk/download still shows RC4.

Oops, committing web page failed -- will fix tomorrow, thanks for note.

> +(if (and window-system (fboundp 'tool-bar-mode)) (tool-bar-mode t))

OK, this is likely to be contentious for Emacs experts who prefer the toolbar 
off and want some way to switch it off, or whoever made the odd decision in 
that Mac port to turn it off by default, but I'm not going to argue with you 
putting it in the Isar startup.  It certainly is helpful for beginners.

> diff -r ProofGeneral-4.1pre101216/generic/proof-useropts.el 
> ProofGeneral-4.1pre101216-p1/generic/proof-useropts.el
> 121c121
> < (defcustom proof-strict-read-only 'retract
> ---
>> (defcustom proof-strict-read-only t
> 345c345
> < (defcustom proof-full-annotation t
> ---
>> (defcustom proof-full-annotation nil
> 
> My tendency is to ignore the latter and ship PG 4.1 final as is.

The first default should be robust now (a race condition was fixed in Trac 
#403).  

I've committed the second change.  I've had other power users object to the 
mouse hovers and having trouble finding out how to switch them off, although it 
is in the user options menu.  And given the assumptions made (still?) in 
Isabelle about trying things asynchronously when quiet mode is disabled we 
might as well have the speedier default.  Besides, people will think that this 
kind of capability is only possible in jEdit then, 8-).

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] PG 4.1 release ever?

2011-09-19 Thread David Aspinall



OK, I will include RC5 in the next Isabelle test bundle that should be
published within the next few days.

BTW, http://proofgeneral.inf.ed.ac.uk/download still shows RC4.


I've updated this now, and the RC5 tarball is slightly updated since 
Friday, with some improved documentation as well as configuration 
patches discussed.


Ideally this will really be final RC...

 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] PG 4.1 release ever?

2011-09-19 Thread David Aspinall

 +

+(if (and window-system (fboundp 'tool-bar-mode)) (tool-bar-mode t))
+
+;;
  ;; Unicode
  ;;


That doesn't sound right: tool-bar-mode is enabled globally by default,
so forcefully re-enabling it can only undo the user's preference.


The standard Mac port seems to disable it globally by default, this is 
what Makarius is trying to address.


The code he's showing is only invoked when starting PG via Isabelle's 
wrapper script, not for all users with all provers, which I think makes 
it less objectionable.  If a user is Emacs-savvy enough to not want the 
toolbar they can probably start Emacs directly and then load up PG and 
Isabelle (personally how I've always done it).


 - D.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



[PG-devel] PG 4.1 released!

2011-10-03 Thread David Aspinall

Dear PG-dev'ers,

This morning I made the release of PG 4.1, almost a year after 4.0.

I plan to announce a little bit more widely later this week, please let 
me know asap if there are any hiccups.


Meanwhile, a big Thank-You to all on this list who have contributed 
improvements and bug reports and testing, I'm very grateful.


 - David
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



[PG-devel] Possible License Change

2011-12-19 Thread David Aspinall
Dear PG developers,

We're considering a change of license for Proof General (Emacs) from GPL to a 
BSD-style license (probably the Modified BSD).  The main reason for a change to 
a more permissive license is so that colleagues at MSR and elsewhere can 
collaborate more easily with us.  I expect/hope that this would not impact any 
of the 3rd party packagers and Linux distributions shipping Proof General.

I'm waiting for University folk to discuss further with me on exact details, 
but wanted to check first with PG developers whether anyone would raise 
objection.  The simplest plan is probably to switch license with the next 
release version.  Once there is a clearer proposal for the precise license and 
switch plans, I'll consult on the users list.

If you have any concerns, please let me know.

Best wishes,

 - David

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Proof-tree merge

2012-01-04 Thread David Aspinall

Thanks to Hendrik for this impressive addition!

I have made a pre-release today which distributes the new feature:

 http://proofgeneral.inf.ed.ac.uk/releases/ProofGeneral-4.2pre120104.tgz

Happy New Year,

 - David

On 03/01/12 10:29, Hendrik Tews wrote:

Hi,

I just merged the ProofTreeBranch into the main trunk. Hopefully
I didn't break anything.

If you want to try it you have to install Coq 8.4 beta (from
http://coq.inria.fr/coq-84) or a recent development version of
Coq and Prooftree (from http://askra.de/software/prooftree/). The
Prooftree website provides binary packages for Debian Squeeze
i386 and amd64.

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] PGIP warning messages

2012-04-06 Thread David Aspinall
Hello Edward

Interesting that you're trying this!  Although I should warn that we haven't 
been actively developing the PGIP infrastructure for a while: which interface 
are you hoping to use it with?

Anyway, you should have no problem with multiple  in PGIP.  You 
need to set the fatality attribute to "warning" (or anything except 
"fatal"/"panic").  The restriction you mention applies to the plain text 
protocol used inside Emacs for real errors, which correspond to PGIP 
.  

Hope this helps,

 - David


On 6 Apr 2012, at 04:15, Edward Z. Yang wrote:

> Hello all,
> 
> I'm working on partial PGIP support Coq, and one thing that I would like
> to support is the case when Coq outputs "warning" messages, of which
> there are many but which are nonfatal.  I'm wondering what the right
> tag for these are.   is not correct, because we're only
> allowed to have one before .  Is  correct?
> It seems too generic, and where am I supposed to attach other metadata?
> 
> Cheers,
> Edward
> ___
> ProofGeneral-devel mailing list
> ProofGeneral-devel@inf.ed.ac.uk
> http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel
> 


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


Re: [PG-devel] Re: PGIP warning messages

2012-04-06 Thread David Aspinall
For this one I'm not sure if we finalised a markup form that distinguished the 
different semantic parts of proofstate output, although it was certainly 
discussed and seems useful.  The Eclipse interface uses an xslt style sheet to 
render to an HTML widget, so you could add your own tags and interpret them as 
you like.

I would be tempted to duplicate the names of the hypotheses in attributes, ..., so they are there for the interface to manipulate. 

 - David 

On 6 Apr 2012, at 08:29, Edward Z. Yang wrote:

> In sort of the same vein, in Coq, we have named hypotheses in our
> proof contexts which render like:
> 
>  Hyp0 : Hyp (P x)
>  Hyp1 : Hyp (P z)
>  
>   or (P x) (or (forall y : U, P y) False)
> 
> I'd like to add some PGML so that it looks something like this:
> 
>  
>
>  Hyp0 : Hyp (P x)
>  Hyp1 : Hyp (P z)
>
>
>  or (P x) (or (forall y : U, P y) False)
>
>  
> 
> But I don't know what the right PGIP/PGML tags are.
> 
> Edward
> 
> Excerpts from Edward Z. Yang's message of Thu Apr 05 23:15:50 -0400 2012:
>> Hello all,
>> 
>> I'm working on partial PGIP support Coq, and one thing that I would like
>> to support is the case when Coq outputs "warning" messages, of which
>> there are many but which are nonfatal.  I'm wondering what the right
>> tag for these are.   is not correct, because we're only
>> allowed to have one before .  Is  correct?
>> It seems too generic, and where am I supposed to attach other metadata?
>> 
>> Cheers,
>> Edward
> ___
> ProofGeneral-devel mailing list
> ProofGeneral-devel@inf.ed.ac.uk
> http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel
> 


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


Re: [PG-devel] PGIP warning messages

2012-04-06 Thread David Aspinall
Sounds interesting!  Good luck and let us know if we can help again.

 - D.

On 6 Apr 2012, at 09:04, Edward Z. Yang wrote:

> Hello David,
> 
> I'm actually building a domain-specific frontend for Coq, and I didn't
> feel like reimplementing all of ProofGeneral's parsing hacks!  It's
> not much: it's going to be a pedagogical theorem prover for first
> order logic, but the idea is to closely support different deduction
> styles (e.g. natural deduction, sequent calculus, etc.)
> 
> Thanks,
> Edward
> 
> Excerpts from David Aspinall's message of Fri Apr 06 03:49:29 -0400 2012:
>> Hello Edward
>> 
>> Interesting that you're trying this!  Although I should warn that we haven't 
>> been actively developing the PGIP infrastructure for a while: which 
>> interface are you hoping to use it with?
>> 
>> Anyway, you should have no problem with multiple  in PGIP.  
>> You need to set the fatality attribute to "warning" (or anything except 
>> "fatal"/"panic").  The restriction you mention applies to the plain text 
>> protocol used inside Emacs for real errors, which correspond to PGIP 
>> .  
>> 
>> Hope this helps,
>> 
>> - David
>> 
>> On 6 Apr 2012, at 04:15, Edward Z. Yang wrote:
>> 
>>> Hello all,
>>> 
>>> I'm working on partial PGIP support Coq, and one thing that I would like
>>> to support is the case when Coq outputs "warning" messages, of which
>>> there are many but which are nonfatal.  I'm wondering what the right
>>> tag for these are.   is not correct, because we're only
>>> allowed to have one before .  Is  correct?
>>> It seems too generic, and where am I supposed to attach other metadata?
>>> 
>>> Cheers,
>>> Edward
>>> ___
>>> ProofGeneral-devel mailing list
>>> ProofGeneral-devel@inf.ed.ac.uk
>>> http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel
>>> 
>> 
> 


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


Re: [PG-devel] bar cursor in *goals* and *response*

2012-06-05 Thread David Aspinall

Hi,

I'm not sure if the reason for the cursor change was explained: the 
hollow box indicating cursor position was sometimes causing confusion 
with mathematical notation appearing in the output (e.g. box operator).



>  I believe setting cursor-in-non-selected-windows to nil (and
>  leaving cursor-type unchanged) in *goals* and *response* would be
>  more appropriate.


I agree, especially since its effect is local.  Not sure why the other 
setting was chosen originally.


Thanks for the improvement.

I've pushed another pre-release just now.

 - David
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Emacs 24

2012-06-15 Thread David Aspinall

Thanks for the report, I've put it into Trac here:

http://proofgeneral.inf.ed.ac.uk/trac/ticket/442

Would help to clarify: which version of PG you are using?

 - D.

On 15/06/12 09:34, Paolo Herms wrote:

Hello,
I tried proofgeneral on the newly released emacs and it works at first sight
but seems to have some problems with long input, like the one produced by this
bash script:

function mk { echo "Check fun n, match n with "; s=O; for ((i=0;i<$1;i++)); do
echo "  | $s =>  n"; s="(S $s)"; done; echo "  | _ =>  n end."; }>  x.v

Processing x.v for small arguments like
$ mk 10
works but for bigger ones like
$ mk 100
it blocks without consuming cpu.
Weirdly for me the threshold seems to be 42...


___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] speed up Coq Proof General by processing complete proofs

2012-08-09 Thread David Aspinall

On 09/08/12 11:11, Lionel Elie Mamane wrote:


That's why (back when it was available), I preferred to use the
"coq-interface" protocol rather than the "coqtop -emacs" protocol,
which has chunking multiple commands cleanly. I haven't looked at it
recently, but it seems to be the PCoq interface protocol was moved to
the contribs, and can still be taken from there?


Yves Bertot asked me years ago why Proof General never used this 
mechanism, and at the time I wasn't convinced it was much of a saving 
over sending commands individually.  The simpler mechanism was a least 
common denominator for different systems and doesn't require special 
modifications to standard read-eval-print loops.


These days it seems more likely that the communication would often 
dominate the processing time for a single command so batching on the 
prover side would clearly be a better mechanism.  In fact, so is having 
the prover (or some intermediate component) manage the *whole* document, 
which is the PIDE model.  If there was still enough Emacs love in the 
world we could surely have an Emacs mode for that!



But porting PG to it might be more hassle than useful, and possibly
the "Set/Unset Prompt" route would be more expedient.


Yes, probably...  The thing to watch out for is the error behaviour, 
though.  If one command in a batch fails, PG needs to know which command 
is responsible (or else that the prover considers the whole transaction 
failed).


 - D.




___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



[PG-devel] Reboot: Release of PG 4.2

2012-09-04 Thread David Aspinall

Dear PG devs,

I'd like to push the button on this soon, so I think we should stop 
adding new features/hacks to the CVS head for a while...


I'm guilty myself with the experiment in Trac #444 (eager window 
layout), I will revert that change (Pierre, I understand from comments 
it wasn't what you wanted anyway, do you consider #444 solved with your 
own fixes now?).


On the list of what's left

http://goo.gl/uZg2b

there are a couple of Coq input issues that users have raised 
(#296,#445) as well as a mysterious problem with long inputs (#447).


If anyone has a moment to look at any of those I'd be grateful, 
otherwise we probably have to push them onto the 4.3 list.


Cheers,

 - David
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Reboot: Release of PG 4.2

2012-09-04 Thread David Aspinall

Thanks for followup, Hendrik.


I'd like to push the button on this soon, so I think we should stop
adding new features/hacks to the CVS head for a while...

How about Hol light? Would you release 4.2 with the current
partial hol light support enabled? Or would you put hol-light
into comments in generic/proof-site.el?


I think it's best to disable it for now, have just done so.  There is 
some more effort available to work on this again after Oct (Hendrik, 
I'll talk to you about this separately).



I would suggest that we agree on some schedule. For instance:
- we stop adding new features now
- permit 2 weeks for further bug fixes
- have another prerelease on 18 September
- release 4.2 on 25 September


That's a good suggestion.  Unfortunately I have very little bandwidth 
personally this month: to help smooth things out effectively I'd like to 
fix/extend the automatic tests and add proper regression tests for fixed 
bugs (Coq parsing is the most thorny).


I'd like to support Emacs 24 properly although there are API updates 
which are tricky to support in two versions --- esp when the rightly 
increasingly rigorous byte compiler tries to compile code for old 
versions and barfs.



In addition to Davids list we should fix the conflict between
proof-electric-terminator and coq-colon-self-insert, that I
reported yesterday on this list.

I would like to fix some proof-tree problems before the release:
- Proof appears as command in the proof tree
- support for braces and bullets


Sounds good (if you want to add to Trac we can know when you've done 
these things).


- D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Reboot: Release of PG 4.2

2012-09-04 Thread David Aspinall

On 04/09/12 13:33, Stefan Monnier wrote:

I'd like to support Emacs 24 properly although there are API updates which
are tricky to support in two versions --- esp when the rightly increasingly
rigorous byte compiler tries to compile code for old versions and barfs.


I can probably help in this area, except that I do not know the concrete
problems that need fixing.  If you can send me some details, I can take
a look at it.


Thanks Stefan!  I'll send you a message off list.  - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Tracker questions

2012-09-14 Thread David Aspinall
Sorry (to all) for the problems with trac.  The current instance will 
not be fixed by local sysadmins.  We have a migration route to a 
supported Trac instance which means moving to svn, but an alternative 
would be to move to an outsourced system such as github.


Meanwhile, I recommend simply ticking the "ticket details" on the 
timeline view:


http://proofgeneral.inf.ed.ac.uk/trac/timeline

there are not so many issues or comments that you won't be able to 
easily pick out relevant ones from there.  So it's still pull, but you 
can always use the RSS feed at the bottom of the page...


 - D.


On 14/09/12 14:11, Hendrik Tews wrote:

Hi,

how can I add my email address (which is different from coquser)
to an existing bug report? Having to click all issues, only for
checking if somebody has answered, is really not acceptable.


Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Reboot: Release of PG 4.2

2012-10-17 Thread David Aspinall

Hi Hendrik

Thanks for the nudge --- no blockers I don't think, except extreme 
overwork, 8-).   I'll try to push the button soon, just need a spare 
hour to run checks and update all the pieces.  Apologies for the delay.


 - David

On 17/10/12 15:25, Hendrik Tews wrote:

Hi,

David, is there anything left to do before you can do "make
release"? Maybe I or somebody else could help?

(My Coq project is now so large that the sequential blocking
compilation really sucks. I would really like to start now with
rewriting the compilation with parallel background jobs.)

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] pg-finish-tracing-display ?

2012-11-09 Thread David Aspinall

Hi Hendrik,


I am missing the documentation comment for
pg-finish-tracing-display. What is it used for?


I've just added it:

  "Handle the end of possibly voluminous tracing-style output.
  If the output update was slowed down, show it now"

Tracing output is defined with a regexp, it isn't used by Coq.  In 
Isabelle it's used when people want to debug looping simplifier rules, 
etc.  Special treatment is because there can be masses of output which 
we don't want to eagerly parse, convert to symbols, display, etc as it's 
too expensive.



(As you may have noticed I am implementing parallel background
compilation for Coq. It is working already if there is no error
in the compilation itself. I am now trying to keep the queue
region alive when proof-action-list get empty while a whole bunch
of items are waiting at a different place until the background
compilation finishes. During this I came across the call to
pg-finish-tracing-display close to the end of
proof-shell-exec-loop...)


Sounds exciting and ambitious!Let me know if I can help further.

 - D.


___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] first version of parallel background compilation for Coq

2012-11-14 Thread David Aspinall
> I just committed the first version of parallel background
> compilation for Coq. 

It sounds very useful!  Are there some Coq users who are testing for you?

 - David


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


Re: [PG-devel] proof-shell-pre-interrupt-hook ?

2012-11-14 Thread David Aspinall
> I just came across proof-shell-pre-interrupt-hook. I can't find
> any location where this hook is run. Am I missing something?

Likely obsolete but let me check some old versions: 

http://proofgeneral.inf.ed.ac.uk/trac/ticket/457


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


Re: [PG-devel] Coq menu entries

2012-11-14 Thread David Aspinall
>   Actually tooltips are so useless and annoying (flickering) in coq mode
>   that I wanted the disabling option to be as immediate as possible. It
>   would probably be better to disable it by default and put the option
>   in the settings menu.
> 
> Fine with me.

I agree, please go ahead Pierre.

>   By the way is there a "emacs gui recommendations somewhere?"
> 
> I don't know any.

Me neither.  There are recommendations about Emacs conventions scattered 
through the Lisp reference manuals and apart from that I try to follow what 
Emacs itself does and the standard applications it ships with.

 - D.


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


Re: [PG-devel] ProofGeneral 4.2 byte-compilation fails with Emacs 24.2.90

2012-12-01 Thread David Aspinall
Thanks, now at http://proofgeneral.inf.ed.ac.uk/trac/ticket/458.  - D.

On 30 Nov 2012, at 12:34, Ulrich Mueller  wrote:

> Byte-compilation of ProofGeneral 4.2 with the Emacs 24.2.90 pretest
> version fails in pg-response.el:
> 
> In toplevel form:
> generic/pg-response.el:104:23:Error: `special-display-regexps' is an
> obsolete variable (as of 24.3); use `display-buffer-alist' instead.
> ___
> ProofGeneral-devel mailing list
> ProofGeneral-devel@inf.ed.ac.uk
> http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel
> 


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


Re: [PG-devel] overlapping calls to proof-shell-filter

2013-01-08 Thread David Aspinall

Hello Hendrik

Quick thoughts: this sounds like a pretty fundamental problem and 
surprising if we hadn't come across it before.  Do you definitely see 
this in the ordinary running code, not just when using the debugger? 
Maybe prooftree input is different case to prover input.


If we need to fix it, I suppose we could try to exit the PG filter 
function early using our own flag to detect nested calls.  A more robust 
mechanism might be to try to send new input from the main event loop 
instead, but that would be a significant reworking.  (Or could you do 
that just for proof tree?)


 - David


On 08/01/13 10:41, Hendrik Tews wrote:

Hi,

sometimes I see prooftree crashes with a cold disk cache (eg
after reboot or after "sync; sudo sh -c 'echo 3 >
/proc/sys/vm/drop_caches'").

What apparently happens is that at some stage process-send-string
blocks because the pipe to prooftree is full. This happens inside
proof-shell-filter, because the prooftree display commands are
created and sent when output arrives from Coq.

When I/O blocks, Emacs automatically accepts output processes. So
it calls proof-shell-filter again before the previous call
finished. Finally some garbage or truncated messages is written
to the pipe and prooftree crashes.

It should definitely not happen that proof-shell-filter is called
while another instance is still running. Does anybody know a way
to ensure this?

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] overlapping calls to proof-shell-filter

2013-01-10 Thread David Aspinall
At a quick glance this looks like a reasonable way to fix without 
messing with the current filter code.  Luckily, I don't think the str 
argument is used.  I'm not completely clear on the error case, is the 
idea just to give up if we hit an error in some call?


 - D.


On 09/01/13 20:53, Hendrik Tews wrote:

Hi,

here is a patch that solves the problem for me. Any comments?

Bye,

Hendrik



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] status of support for Proof General

2013-02-26 Thread David Aspinall

Hello Hendrik,

It is a good idea to add a note to the trac.  I would say that the 
support is currently by best efforts of people who have other jobs and 
little spare time -- such as you and I.


I think there are other people on this list but probably no very active 
developers at the moment.  (If anyone is keen to devote support effort 
to PG, they should get in touch with me, there might be ways to help 
provide a bit of project work.)


In general, the support problem is of course a typical problem with 
research software in our discipline, where it seems hard to get funding 
to provide baseline support for a system, and it is often done "on the 
side" with some research topic.  Proof General has only ever been 
supported indirectly by minor contributions from other research projects 
--- impressive that it has lasted and been maintained so well despite 
that, and I'm grateful for all the time people have dedicated.


 - David


On 26/02/13 14:21, Hendrik Tews wrote:

Hi,

do we have a support problem for Proof General?

I am asking because we have issues in the tracker that are quite
old and nobody seems to care... for instance #460 or #463 to
which I gave partial answers today.

Do we have a lack of developers or do the developers not like to
comment on issues in the tracker?

Whatever the reason is, if we cannot improve the situation, I
would suggest to put an appropriate note on the tracker, saying
issue handling may take some time. Letting users find this out
themselves is the worst we can do.

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] urgent message hide errors?

2013-02-26 Thread David Aspinall

What is the problem here? Coq outputting the warning _after_ the
error? Or matching the warning as urgent message? Or searching
for errors only behind urgent messages?


From Proof General's point of view, the first of these is the problem, 
since the behaviour has been well specified for a long time and I guess 
that Coq's behaviour has changed over time.  See fragment of 
documentation from proof-shell-filter below.


 - David


Error or interrupt messages are expected to terminate an
interactive output and appear last before a prompt and will
always be processed.  Error messages and interrupt messages are
therefore *not* considered as urgent messages.


see:

http://proofgeneral.inf.ed.ac.uk/htmlshow.php?title=Proof+General+adapting+manual&file=releases%2FProofGeneral%2Fdoc%2FPG-adapting%2FPG-adapting_15.html#index-proof_002dshell_002dfilter
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



[PG-devel] Reminder: CICM/MKM deadline nearly here!

2013-02-27 Thread David Aspinall

Dear PG users and developers,

Hopefully many of you will know the CICM conference and have seen the CFP:

  http://www.cicm-conference.org/2013/cicm.php?event=&menu=cfp

I'm the track chair for MKM (Mathematical Knowledge Management) this 
year, I'm keen to see plenty of submissions for our track to put 
together an interesting programme.  If you've been using Proof General 
(or even another tool) to manage large developments, maybe there is 
something to write about?


The deadline for final submissions is Fri 8th March (abstracts ideally 
by this Friday).


Best Wishes,

 - David
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] non-fatal warnings for make compile

2013-05-22 Thread David Aspinall

Hendrik,

Thanks a lot for tackling this, I looked at it a while ago and saw it 
was going to be a nuisance to fix...


 - David.
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] ProofGeneral symlink?

2013-05-27 Thread David Aspinall
I don't feel strongly about it.  If it causes a problem, let's remove 
it.  - David


On 26/05/2013 21:44, Hendrik Tews wrote:

Hi,

the Proof General releases do always contain a symlink
ProofGeneral --> ProofGeneral-X.Y, which, ahem, is a bit in the
way when creating debian packages.

What is the reason for having this symlink in the tar archive?

Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] non-fatal warnings for make compile

2013-07-04 Thread David Aspinall
This fix was helpful but unfortunately means that developers are more 
likely to introduce bugs unless they run


   make clean; make check

before committing.  E.g., I have just tried to make a pre-release but I 
now get the error


In toplevel form:
coq/coq.el:1040:67:Error: reference to free variable `coq-project-filename'

(Hendrik, I think this is yours?)

 - David


On 22/05/13 21:40, Hendrik Tews wrote:

Hi,

I spend some time to find a fix for tickets #458. The problem is
that special-display-regexps is obsolete in 24.3, while its
replacement, display-buffer-alist was only introduced in 24.1 and
not fully functional before 24.3. Writing compatible code for
emacs 23 and 24 without obsolete warning therefore requires
explicit version checks.

I therefore suggest that we change to display-buffer-alist when
we drop support for Emacs 23.

To fix #458, warnings should be non-fatal when users compile
Proof General for their local emacs. I just committed the
necessary changes in the Makefile. For developers, there is now
the new target 'check' that retains the old behavior, i.e.,
stopping compilation on every byte-compilation warning.


Bye,

Hendrik
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



[PG-devel] Move to Github

2013-07-04 Thread David Aspinall

Dear PG Devs,

Some time ago I mooted moving from our clunky University-hosted CVS+trac 
to Github.  I think it would allow people to more easily make 
modifications and propose small patches.  And it looks as if the Github 
issue tracking system is now reasonable enough to use that we can move 
things over from trac.


Last time I suggested making a license change as well, this time I'm not 
suggesting that.


Any objections to doing this?   The plan would be to make a release of 
version 4.3 first, then embark on a move and clean up.


Best wishes,

 - David
___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] non-fatal warnings for make compile

2013-07-04 Thread David Aspinall

On 04/07/13 12:21, Hendrik Tews wrote:

If you think these compilation errors are an issue, I volunteer
to implement one or both suggestions.


Thanks indeed!  I think an automatic build would definitely be nice to 
have if you have inclination/interest.  Recently I found about Travis


https://travis-ci.org/

which appears to offer a free build server for OS projects hosted on 
Github.  Don't know quite how they finance the cycles (but building PG 
shouldn't take many).


 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Move to Github

2013-07-11 Thread David Aspinall

On 11/07/2013 08:00, Hendrik Tews wrote:

Pierre Courtieu  writes:

> - similarly for the coq/faq: wouldn't it be better to integrate
>   this in the user manual and have then a "coq faq" link on the
>   web page?
>

I don't understand this one. Do you mean in the coq user manual?

No, my suggestion was to integrate coq/faq as section into the
Proof General user manual. We could then directly link this FAQ
from the Proof General website. It should also be possible to
have the FAQ alone somewhere in the Proof General distribution,
at least in html format.


A plain text file can be shown like the README (linked on home page)

http://proofgeneral.inf.ed.ac.uk/fileshow.php?file=releases%2FProofGeneral%2Fcoq%2FREADME

(In future I hope to move to a statically generated site, we can
include Markdown files in the same way)

 - D.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Migrating Proof-General to Git

2015-04-20 Thread David Aspinall

Hello Clément, all,

This is a very timely message!  I have indeed started to think of making 
this migration again.  Although I don't have a lot of time to work on 
it, I would like to see it done.  There is an old attempt here:


 https://github.com/DavidAspinall/ProofGeneral

but it didn't get updated and indeed we could do a better job with the 
user names.  I'll take a look at your attempt soon (which tool did you 
use?).


I agree that we probably need to set a cut-off date and disconnect the 
old CVS repo, the sync options don't look robust.  What I could most do 
with help is converting the packaging/publishing tools to use the github 
repo.  (The web pages also badly need replacing but I'm not sure if 
anyone would have the stomach to do that?)


I'm slightly wary of needing to manage merge requests so I thought of 
using a GitHub organisation for this to share the job and to host a 
central repo.  Hence:


 https://github.com/ProofGeneral

If anyone on this list would like to join, please tell me your GitHub 
user name.


 - David

On 20/04/2015 19:29, Clément Pit--Claudel wrote:

Hi Pierre and David (and proofgeneral-devel),

There were talks a while ago on the mailing list about a migration to git. I 
think this would be really cool. I experimented with various export options, 
and came up with the repo at https://github.com/cpitclaudel/proof-general/ . 
The problem with the process that I used is that it makes it hard to 
incrementally track changes (we would need to migrate once and for all).

Most of the history seems to have been preserved just fine, but it would be 
nice to map CVS usernames to proper names and emails; the authors in the CVS 
tree seem to be [assia, crr, cxl, da, djs, fionam, gklein, hhg, joheras, lego, 
makarius, mark, markus, monnier, patrl, pier, proofgen, pxc, sberghof, tews, 
tms, weber]. Is there a list of names and emails somewhere matching these 
usernames?

It would be great to get feedback on the history as recorded in 
https://github.com/cpitclaudel/proof-general/ ; also, if a migration was 
eventually decided, I could help with the process. One reason for migrating to 
Git and hosting on Github would be lowering the barrier of entry to new 
contributors: many of the changes that I made in my company-coq plugin could in 
fact be ported to proof-general. It could also allow for simplified 
distribution of extensions and updated versions, via emacs' package system.

Clément.



___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Re: [PG-devel] Migrating Proof-General to Git

2015-04-28 Thread David Aspinall
Hello Clément,

Sorry I haven't looked in detail yet, hope soon.  Thanks for sending the
tips of what you did.  I want to try again to get the names right and
maybe some other minor surgery (looking at reposurgeon for that but
haven't tried it yet).

I think your suggestion for Trac is sensible.  We might leave it up but
make it read only, perhaps.

I've made a team for PG developers on GitHub, Clément you are invited,
anyone else please let me know your GitHub username.

 - David

On 26/04/2015 02:01, Clément Pit--Claudel wrote:
> Hi David & list,
> 
> David: Have you had time to look at my attempt to migrate to git? My username 
> on github is cpitclaudel.
> 
> List: I had a quick look at options to migrate trac tickets to GitHub. There 
> seems to exist solutions, but nothing too robust. There hasn't been loads of 
> activity on trac in the last few years though, so I'm not sure if such a 
> migration is really needed. And (as opposed to CVS) there is no need to 
> retire Trac immediately after the migration.
> 
> Clément.
> 
> On 04/20/2015 03:49 PM, David Aspinall wrote:
>> Hello Clément, all,
>>
>> This is a very timely message!  I have indeed started to think of making 
>> this migration again.  Although I don't have a lot of time to work on it, I 
>> would like to see it done.  There is an old attempt here:
>>
>>  https://github.com/DavidAspinall/ProofGeneral
>>
>> but it didn't get updated and indeed we could do a better job with the user 
>> names.  I'll take a look at your attempt soon (which tool did you use?).
>>
>> I agree that we probably need to set a cut-off date and disconnect the old 
>> CVS repo, the sync options don't look robust.  What I could most do with 
>> help is converting the packaging/publishing tools to use the github repo.  
>> (The web pages also badly need replacing but I'm not sure if anyone would 
>> have the stomach to do that?)
>>
>> I'm slightly wary of needing to manage merge requests so I thought of using 
>> a GitHub organisation for this to share the job and to host a central repo.  
>> Hence:
>>
>>  https://github.com/ProofGeneral
>>
>> If anyone on this list would like to join, please tell me your GitHub user 
>> name.
>>
>>  - David
>>
>> On 20/04/2015 19:29, Clément Pit--Claudel wrote:
>>> Hi Pierre and David (and proofgeneral-devel),
>>>
>>> There were talks a while ago on the mailing list about a migration to git. 
>>> I think this would be really cool. I experimented with various export 
>>> options, and came up with the repo at 
>>> https://github.com/cpitclaudel/proof-general/ . The problem with the 
>>> process that I used is that it makes it hard to incrementally track changes 
>>> (we would need to migrate once and for all).
>>>
>>> Most of the history seems to have been preserved just fine, but it would be 
>>> nice to map CVS usernames to proper names and emails; the authors in the 
>>> CVS tree seem to be [assia, crr, cxl, da, djs, fionam, gklein, hhg, 
>>> joheras, lego, makarius, mark, markus, monnier, patrl, pier, proofgen, pxc, 
>>> sberghof, tews, tms, weber]. Is there a list of names and emails somewhere 
>>> matching these usernames?
>>>
>>> It would be great to get feedback on the history as recorded in 
>>> https://github.com/cpitclaudel/proof-general/ ; also, if a migration was 
>>> eventually decided, I could help with the process. One reason for migrating 
>>> to Git and hosting on Github would be lowering the barrier of entry to new 
>>> contributors: many of the changes that I made in my company-coq plugin 
>>> could in fact be ported to proof-general. It could also allow for 
>>> simplified distribution of extensions and updated versions, via emacs' 
>>> package system.
>>>
>>> Clément.
>>>
>>
>>
> 

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

Re: [PG-devel] Migrating Proof-General to Git

2015-09-18 Thread David Aspinall
Hi Pierre/all,

Sorry for delay replying, I was away then returned but now very busy
with start of term...

Have made a new Admin team now with you and Clément as members.

BTW, a mapping of names->emails is in the Makefile somewhere, although
it may be incomplete  (try "make ChangeLog").

If we're going to switch to Github properly I'd like to switch off the
cvs server and then update the webpages, would you be able to help with
the web page updates too?  There is another repo that I can add to GitHub.

 - David


On 14/09/2015 17:00, Pierre Courtieu wrote:
> Hi pg dev!
> 
> Trying to wake up this thread 5 months later.
> 
> Coq-8.5 is not yet released but its beta version is already quite
> spread and used. IMHO it is the right time for a release of PG.
> 
> I suggest that Clément performs the migration to github now and that
> we make a release quickly from git. The best would be an elpa (or
> melpa) package release + a tarball.
> 
> David is it ok for you?
> 
> Best regards,
> Pierre
> 
> 
> 
> 
> 
> 
> 
> 2015-04-28 14:36 GMT+02:00 Clément Pit--Claudel :
>> On 04/28/2015 04:53 AM, David Aspinall wrote:
>>> Hello Clément,
>>>
>>> Sorry I haven't looked in detail yet, hope soon.  Thanks for sending the
>>> tips of what you did.  I want to try again to get the names right and
>>> maybe some other minor surgery (looking at reposurgeon for that but
>>> haven't tried it yet).
>>
>> No problem, thanks for the quick response!
>> cvs2git has a mapping of cvs usernames to git usernames, so it should just 
>> be a matter of finding the names and emails of each PG developer.
>>
>>> I think your suggestion for Trac is sensible.  We might leave it up but
>>> make it read only, perhaps.
>>
>> That sounds great.
>>
>>> I've made a team for PG developers on GitHub, Clément you are invited,
>>> anyone else please let me know your GitHub username.
>>
>> Great, thanks!
>>
>>>  - David
>>>
>>> On 26/04/2015 02:01, Clément Pit--Claudel wrote:
>>>> Hi David & list,
>>>>
>>>> David: Have you had time to look at my attempt to migrate to git? My 
>>>> username on github is cpitclaudel.
>>>>
>>>> List: I had a quick look at options to migrate trac tickets to GitHub. 
>>>> There seems to exist solutions, but nothing too robust. There hasn't been 
>>>> loads of activity on trac in the last few years though, so I'm not sure if 
>>>> such a migration is really needed. And (as opposed to CVS) there is no 
>>>> need to retire Trac immediately after the migration.
>>>>
>>>> Clément.
>>>>
>>>> On 04/20/2015 03:49 PM, David Aspinall wrote:
>>>>> Hello Clément, all,
>>>>>
>>>>> This is a very timely message!  I have indeed started to think of making 
>>>>> this migration again.  Although I don't have a lot of time to work on it, 
>>>>> I would like to see it done.  There is an old attempt here:
>>>>>
>>>>>  https://github.com/DavidAspinall/ProofGeneral
>>>>>
>>>>> but it didn't get updated and indeed we could do a better job with the 
>>>>> user names.  I'll take a look at your attempt soon (which tool did you 
>>>>> use?).
>>>>>
>>>>> I agree that we probably need to set a cut-off date and disconnect the 
>>>>> old CVS repo, the sync options don't look robust.  What I could most do 
>>>>> with help is converting the packaging/publishing tools to use the github 
>>>>> repo.  (The web pages also badly need replacing but I'm not sure if 
>>>>> anyone would have the stomach to do that?)
>>>>>
>>>>> I'm slightly wary of needing to manage merge requests so I thought of 
>>>>> using a GitHub organisation for this to share the job and to host a 
>>>>> central repo.  Hence:
>>>>>
>>>>>  https://github.com/ProofGeneral
>>>>>
>>>>> If anyone on this list would like to join, please tell me your GitHub 
>>>>> user name.
>>>>>
>>>>>  - David
>>>>>
>>>>> On 20/04/2015 19:29, Clément Pit--Claudel wrote:
>>>>>> Hi Pierre and David (and proofgeneral-devel),
>>>>>>
>>>>>> There were talks a while ago on the mailing list about a migration to 
>>&g

Re: [PG-devel] Migrating Proof-General to Git

2015-09-18 Thread David Aspinall
Hi Erik,

> If you are thinking of adding a GitHub repo dedicated to the webpages
> sources, maybe it would be convenient to host the webpages themselves
> at GitHub too? Because according to https://pages.github.com/ and
> https://help.github.com/categories/github-pages-basics/ it would
> suffice to name this extra repo "proofgeneral.github.io" ...
> What is your opinion?

Sure, maybe this is a better hosting provider than University of
Edinburgh, I don't really mind.  We could easily redirect from
proofgeneral.inf.

Erik, I've just invited you to join the admin group, apologies I missed
your message from earlier in the year.

Best wishes,

 - David


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


[PG-devel] Last Call for Papers: Workshop on User Interfaces for Theorem Provers (UITP 2016 @ IJCAR), Coimbra, Portugal, Deadline May 17th *NEW* (was May 9th, 2016)

2016-05-06 Thread David Aspinall
Subject: [Stp] Last Call for Papers: Workshop on User Interfaces for
Theorem Provers (UITP 2016 @ IJCAR), Coimbra, Portugal, Deadline May
17th *NEW* (was May 9th, 2016)
Date: Fri, 6 May 2016 06:40:13 +
From: Grov, Gudmund 
To: s...@macs.hw.ac.uk , d...@macs.hw.ac.uk


 Last Call for Papers

  UITP 2016
  12th International Workshop on User Interfaces for Theorem Provers
in connection with IJCAR 2016
  July 2nd, 2016, Coimbra, Portugal
  http://www.informatik.uni-bremen.de/uitp/current/
* NEW Submission deadline: May 17th, 2016 *

--
NEWS:
- Invited Speaker: Sylvain Conchon (LRI, France) giving a talk about
  "AltGr-Ergo, a graphical user interface for the SMT solver Alt-Ergo"
- Submission deadline postponed by one week to May, 17th, 2016
--

The  User  Interfaces  for  Theorem  Provers  workshop  series  brings
together   researchers  interested   in   designing,  developing   and
evaluating interfaces  for interactive proof systems,  such as theorem
provers,  formal  method  tools,  and  other  tools  manipulating  and
presenting mathematical formulas.

While  the reasoning  capabilities of  interactive proof  systems have
increased dramatically over the last years, the system interfaces have
often  not   enjoyed  the   same  attention   as  the   proof  engines
themselves.  In many  cases,  interfaces remain  relatively basic  and
under-designed.

The User  Interfaces for  Theorem Provers  workshop series  provides a
forum for  researchers interested in improving  human interaction with
proof  systems. We  welcome participation  and contributions  from the
theorem proving, formal  methods and tools, and  HCI communities, both
to  report on  experience with  existing systems,  and to  discuss new
directions. Topics covered include, but are not limited to:

- Application-specific  interaction mechanisms  or designs  for prover
  interfaces Experiments and evaluation of prover interfaces
- Languages and tools for authoring, exchanging and presenting proof
- Implementation  techniques (e.g.  web  services, custom  middleware,
  DSLs)
- Integration of interfaces and tools to explore and construct proof
- Representation and manipulation of mathematical knowledge or objects
- Visualisation of mathematical objects and proof
- System descriptions

UITP 2016 is a one-day workshop to be held on Saturday, July 2nd, 2016
in Coimbra, Portugal, as a IJCAR 2016 workshop.

** Submissions **

Submitted   papers  should   describe   previously  unpublished   work
(completed or  in progress), and  be at least 4  pages and at  most 12
pages. We encourage concise and relevant papers. Submissions should be
in PDF format, and typeset with  the EPTCS LaTeX document class (which
can be downloaded from  http://style.eptcs.org/). Submission should be
done via EasyChair at
https://www.easychair.org/conferences/?conf=uitp16

All papers will be peer reviewed by members of the programme committee
and selected by the organizers in accordance with the referee
reports.

At  least one  author/presenter  of accepted  papers  must attend  the
workshop and present their work.

** Proceedings **

Authors will have the opportunity to incorporate feedback and insights
gathered during the  workshop to improve their  accepted papers before
publication  in the  Electronic  Proceedings  in Theoretical  Computer
Science (EPTCS - http://www.eptcs.org/).

** Important dates **

 Submission deadline: May 17th, 2016
 Acceptance notification: June 6th, 2016
 Camera-ready copy: June 20th, 2016
 Workshop: July 2nd, 2016

** Programme Committee **

 Serge Autexier, DFKI Bremen, Germany (Co-Chair)
 Pedro Quaresma, U Coimbra, Portugal (Co-Chair)
 David Aspinall, University of Edinburgh, Scotland
 Chris Benzmüller, FU Berlin, Germany & Stanford, USA
 Yves Bertot, INRIA Sophia-Antipolis, France
 Gudmund Grov, Heriott-Watt University, Scotland
 Zoltán Kovács, RISC, Austria
 Christoph Lüth, University of Bremen and DFKI Bremen, Germany
 Alexander Lyaletski, Kiev National Taras Shevchenko Univ., Ukraine
 Michael Norrish, NICTA, Australia
 Andrei Paskevich, LRI, France
 Christian Sternagel, University Innsbruck, Austria
 Enrico Tassi, INRIA Sophia-Antipolis, France
 Laurent Théry, INRIA Sophia-Antipolis, France
 Makarius Wenzel, Sketis, Germany
 Wolfgang Windsteiger, RISC Linz, Austria
 Bruno Woltzenlogel Paleo, TU Vienna, Austria


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

Re: [PG-devel] PG and Coq ideslave mode

2016-05-06 Thread David Aspinall
I did something like this once to support PGIP, which was a sort of
pre-cursor of PIDE based on exchanging XML messages. You can find the
source in the CVS repo PG Kit repo (Kit/src/pgemacs).  But it probably
isn't useful: it's about 10 years old and the case we wanted to allow
was input coming voluntarily from the prover to PG (think
progress/annotations etc), rather than the other way around.  - David

On 06/05/2016 11:48, Paul A. Steckler wrote:
> Proof General defines a shell mode, proof-shell, and an associated
> message filter. My thought now is to define an alternate-universe
> shell mode, proof-shell-noprompt and an associated message filter.
> 
> -- Paul
> 
> 
> 
> On Fri, May 6, 2016 at 1:27 AM, Pierre Courtieu  
> wrote:
>> I am sorry to say that I already asked myself about everything you
>> asked here, and, despite you suggest more smart answers than I did
>> myself I don't see any good enough idea yet. About the prompt: a *lot*
>> of things (everything really) in pg depend on the fact that 1 command
>> = 1 prompt exactly.
>>
>> Once again, don't dismiss starting from scratch without thinking a
>> while about it. Actually large parts of pg could be reused.
>>
>> P.
>>
>>
>> 2016-05-05 19:59 GMT+02:00 Clément Pit--Claudel :
>>> I entirely agree with this point; I argued in this direction on a recent 
>>> coq-dev thread.
>>>
>>> On 2016-05-05 12:24, Paul A. Steckler wrote:
 I'm not a fan of this idea. The IDE and the prover should be only
 loosely-coupled, with a clearly-defined communication protocol between
 them.

 A plugin introduces a tight coupling between these components. Yes,
 it's only a plugin, so the scope of the coupling is limited. But it
 still seems undesirable to me.

 -- Paul

 On Thu, May 5, 2016 at 4:58 PM, Clément Pit--Claudel
  wrote:
> Not entirely clear to me :) I think there'd be some amount of design work 
> there as well.
>
> On 2016-05-05 10:39, Paul A. Steckler wrote:
>> With that toploop plugin installed on the coqtop side installed, what
>> does Proof General see from its shell?
>>
>> -- Paul
>>
>> On Thu, May 5, 2016 at 4:34 PM, Clément Pit--Claudel
>>  wrote:
>>> Hi Paul,
>>>
>>> Here's another approach that I forgot to mention: we could build a 
>>> separate Emacs toploop as a plugin, which would inherit most of 
>>> CoqIDE's toploop (you know that I have mixed feelings about that, but 
>>> it may be the most pragmatic approach).
>>>
>>> Clément.
>>>
>>> On 2016-05-05 10:17, Clément Pit--Claudel wrote:
 Hi Paul,

 You could indeed modify PG to handle the first prompt differently, or 
 even Coq.
 In the long run, though, I don't think the approach is sustainable. PG 
 is very much hardcoded to expect one prompt for every query it sends: 
 thus, even though you may get something working pretty quickly by 
 hacking around this prompt thing, I think we'll see more breakages 
 with every evolution of the new protocol.

 Here's a slightly different idea. Right now, PG adds an abstraction 
 layer on top of a REPL model. What you could do is reimplement the 
 same abstraction, but on top of Coq's new asynchronous model. 
 Concretely, my suggestion is to make a separate library to talk to 
 Coq's new API, which would provide the same interface 
 (proof-shell-invisible-command, proof-shell-ready-prover, 
 proof-shell-invisible-cmd-get-result, etc.).

 I think this would make your life easier. You would:

 1. Identify a small (hopefully) collection of functions that 
 Coq-ProofGeneral actually depends on (some sort of semi-explicit 
 interface, essentially).
 2. Implement support for these functions using Coq's new API model
 3. Modify the current implementation to call these functions or the 
 legacy ones depending on the version of Coq.

 What do you think?
 Clément.

 On 2016-05-05 09:48, Paul A. Steckler wrote:
> I've already mentioned the issue described below to Clément 
> Pit-Claudel
> and Pierre Courtieu, maybe others on this list have thoughts on it.
>
> Proof General is welded to a model of receiving prompts from a prover.
> After it's received a prompt, PG can send something back to the
> prover.
>
> The ideslave (politically incorrectly-named) mode in Coq, developed
> for CoqIDE abandons that model. In that mode, Coq just waits for XML
> from an IDE, without first offering a prompt.
>
> In ideslave mode, it seems that Coq sends back responses wrapped in
>  tags, so you can use that as a pseudo-prompt. Hmm, I think the
> prompt regexp would have to look for both the closi

Re: [PG-devel] PG and Coq ideslave mode

2016-05-06 Thread David Aspinall
That sounds right (but could lead to confusion!).  What I did was to 
fork a version of PG and cut it down to something fairly minimal. - D.


On 06/05/2016 14:34, Paul A. Steckler wrote:

The proof-shell mode comes with a lot of associated state, like
regexps, buffers,  etc. Some bits of that state would be useful in the
new mode I'm creating, others not.

I'm thinking that I can share the same state variables for the new
mode, because I'll never have an active proof shell mode and the new
mode active at the same time. Yes?
I'd hate to have to duplicate state.

If I load two .v files in emacs, it seems I can only work on one at a
time using Proof General, and there's only one proof-shell mode window
active.

-- Paul


On Fri, May 6, 2016 at 3:15 PM, David Aspinall  wrote:

I did something like this once to support PGIP, which was a sort of
pre-cursor of PIDE based on exchanging XML messages. You can find the
source in the CVS repo PG Kit repo (Kit/src/pgemacs).  But it probably
isn't useful: it's about 10 years old and the case we wanted to allow
was input coming voluntarily from the prover to PG (think
progress/annotations etc), rather than the other way around.  - David

On 06/05/2016 11:48, Paul A. Steckler wrote:

Proof General defines a shell mode, proof-shell, and an associated
message filter. My thought now is to define an alternate-universe
shell mode, proof-shell-noprompt and an associated message filter.

-- Paul



On Fri, May 6, 2016 at 1:27 AM, Pierre Courtieu  wrote:

I am sorry to say that I already asked myself about everything you
asked here, and, despite you suggest more smart answers than I did
myself I don't see any good enough idea yet. About the prompt: a *lot*
of things (everything really) in pg depend on the fact that 1 command
= 1 prompt exactly.

Once again, don't dismiss starting from scratch without thinking a
while about it. Actually large parts of pg could be reused.

P.


2016-05-05 19:59 GMT+02:00 Clément Pit--Claudel :

I entirely agree with this point; I argued in this direction on a recent 
coq-dev thread.

On 2016-05-05 12:24, Paul A. Steckler wrote:

I'm not a fan of this idea. The IDE and the prover should be only
loosely-coupled, with a clearly-defined communication protocol between
them.

A plugin introduces a tight coupling between these components. Yes,
it's only a plugin, so the scope of the coupling is limited. But it
still seems undesirable to me.

-- Paul

On Thu, May 5, 2016 at 4:58 PM, Clément Pit--Claudel
 wrote:

Not entirely clear to me :) I think there'd be some amount of design work there 
as well.

On 2016-05-05 10:39, Paul A. Steckler wrote:

With that toploop plugin installed on the coqtop side installed, what
does Proof General see from its shell?

-- Paul

On Thu, May 5, 2016 at 4:34 PM, Clément Pit--Claudel
 wrote:

Hi Paul,

Here's another approach that I forgot to mention: we could build a separate 
Emacs toploop as a plugin, which would inherit most of CoqIDE's toploop (you 
know that I have mixed feelings about that, but it may be the most pragmatic 
approach).

Clément.

On 2016-05-05 10:17, Clément Pit--Claudel wrote:

Hi Paul,

You could indeed modify PG to handle the first prompt differently, or even Coq.
In the long run, though, I don't think the approach is sustainable. PG is very 
much hardcoded to expect one prompt for every query it sends: thus, even though 
you may get something working pretty quickly by hacking around this prompt 
thing, I think we'll see more breakages with every evolution of the new 
protocol.

Here's a slightly different idea. Right now, PG adds an abstraction layer on 
top of a REPL model. What you could do is reimplement the same abstraction, but 
on top of Coq's new asynchronous model. Concretely, my suggestion is to make a 
separate library to talk to Coq's new API, which would provide the same 
interface (proof-shell-invisible-command, proof-shell-ready-prover, 
proof-shell-invisible-cmd-get-result, etc.).

I think this would make your life easier. You would:

1. Identify a small (hopefully) collection of functions that Coq-ProofGeneral 
actually depends on (some sort of semi-explicit interface, essentially).
2. Implement support for these functions using Coq's new API model
3. Modify the current implementation to call these functions or the legacy ones 
depending on the version of Coq.

What do you think?
Clément.

On 2016-05-05 09:48, Paul A. Steckler wrote:

I've already mentioned the issue described below to Clément Pit-Claudel
and Pierre Courtieu, maybe others on this list have thoughts on it.

Proof General is welded to a model of receiving prompts from a prover.
After it's received a prompt, PG can send something back to the
prover.

The ideslave (politically incorrectly-named) mode in Coq, developed
for CoqIDE abandons that model. In that mode, Coq just waits for XML
from an IDE, without f

Re: [PG-devel] Status of PGIP?

2016-07-27 Thread David Aspinall
Essentially it's defunct.  Isabelle 2014 uses some of the messages e.g.,
for configuring options on start up.  But if we're dropping support for
older Isabelle versions then it can be removed.

I would be sad to see support for other provers being taken away though.
 We put a lot of effort into making it easy to configure Proof General
to use with CLI tools (even bash).  Maybe the script management code
could be refactored into a standalone mode.  I still see people in
conferences cutting and pasting text into command lines!

 - D.

On 26/07/2016 21:55, Paul A. Steckler wrote:
> What is the status of the PGIP code in Proof General?
> 
> Are there any provers that use the protocol?
> 
> -- Paul
> ___
> ProofGeneral-devel mailing list
> ProofGeneral-devel@inf.ed.ac.uk
> http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel
> 

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel


[PG-devel] Shutdown of proofgeneral and proofgeneral-devel lists

2022-06-15 Thread David Aspinall

Dear all,

The two Proof General mailing lists hosted here at Edinburgh have become 
somewhat defunct and the signup pages are targets for spammers.  So we 
are planning to retire them properly later this month.


If you would like to retrieve previous postings meanwhile you should be 
able to access the public archives here:


 http://lists.inf.ed.ac.uk/pipermail/proofgeneral/
 http://lists.inf.ed.ac.uk/pipermail/proofgeneral-devel/

As most will know, Proof General development and support has moved to 
Github now and is focused mainly on Coq:


   https://github.com/ProofGeneral/PG

As well as the usual Github mechanisms, there are some links to Zulip 
chats there where PG developers and users can discuss.


Thanks to list members still here for their contributions over the years!

Best wishes,

 - David

--
Prof. David Aspinall,  Email: david.aspin...@ed.ac.uk
LFCS, School of Informatics


The University of Edinburgh is a charitable body, registered in 
Scotland, with registration number SC005336. Is e buidheann carthannais 
a th’ ann an Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh 
SC005336.

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel

[PG-devel] Fwd: Shutdown of proofgeneral and proofgeneral-devel lists

2022-06-15 Thread David Aspinall






--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.


 Forwarded Message 
Subject: Re: [PG-devel] Shutdown of proofgeneral and  proofgeneral-devel 
lists

Date: Wed, 15 Jun 2022 12:59:47 +0200
From: Erik Martin-Dorel 
To: David Aspinall 

Thank you David!

Let me give some direct pointers as a follow-up of your e-mail:

Two communication channels are indeed preferred to get in touch with PG 
devs/users: Zulip and GitHub.
So feel free to do one or both of the following actions if you're 
interested:


1. Subscribe as a "Watcher" of the PG GitHub repository 
https://github.com/ProofGeneral/PG/
(to get automatic notifications from issues and releases; in particular 
we plan to do a major release soonish)


2. Subscribe to the coq zulip chat system https://coq.zulipchat.com/ 
(and use one of these streams:

https://coq.zulipchat.com/#narrow/stream/304019-Proof-General.20users
https://coq.zulipchat.com/#narrow/stream/304020-Proof-General.20devs
), but note that despite the name, this communication channel is not 
intended to be Coq-specific:

EasyCrypt, PhoX, and QRHL users can post there just as well!

Kind regards,

Erik

___
ProofGeneral-devel mailing list
ProofGeneral-devel@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/proofgeneral-devel