Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specify exception sharing in signatures (was: misc. camlp4 + doc) #3805

Closed
vicuna opened this issue Oct 7, 2005 · 5 comments
Closed

Specify exception sharing in signatures (was: misc. camlp4 + doc) #3805

vicuna opened this issue Oct 7, 2005 · 5 comments

Comments

@vicuna
Copy link

vicuna commented Oct 7, 2005

Original bug ID: 3805
Reporter: administrator
Status: acknowledged
Resolution: open
Priority: normal
Severity: feature
Category: language features
Monitored by: "Hendrik Tews"

Bug description

Hi,

I would like to report several problems and feature requests.

Camlp4 problems:

  • ocaml accepts lower case module type names, pa_o doesn't
    (module type s = sig end;;)

  • toplevel with revised syntax:

    # module type A = sig module type S = 'a; end;
    module type A = sig module type S; end
    

    The toplevel answer is not a legal signature. The pretty
    printer pr_r.cmo does not have this problem.

  • MLast.loc_of_with_constr is missing

  • Lexing.pos_fname is empty in camlp4 ast's

  • For "let a b c = 2 in 5" the camlp4 ast contains several
    MLast.ExFun's. They carry a IMHO nonsensical location.

Documentation problems:

  • wrong grammar rule for type parameters in with constraints
    meta symbol type-parameters should probably be type-params

  • no variance annotations for class type parameters

  • grammar permits infix symbols in as patterns like
    object inherit b as ( ++++ ) end

  • the grammar lacks productions to obtain the following

    object val a : 'a :> 'b = 5 end
    object val a :> 'b = 5 end
    struct 5;; end
    

    (The last one is particularly surprising: the reference manual
    does not permit any program that performs any computation. ;-)

Feature requests:

  • please install pcaml.cmo

Maybe missing feature:

  • it seems to be impossible to specify exception sharing in a signature

Bye,

Hendrik

@vicuna
Copy link
Author

vicuna commented Oct 12, 2005

Comment author: administrator

Camlp4 issues + documentation problems (first one fixed) + 2 feature requests

@vicuna
Copy link
Author

vicuna commented Sep 11, 2012

Comment author: @damiendoligez

Status of this PR as of 4.00.1+dev:

Camlp4:

  1. fixed
  2. still present (module type A = sig module type S = 'a; end;)
  3. is about camlp5
  4. fixed
  5. is about camlp5

Documentation:

  1. fixed
  2. fixed
  3. still present (object inherit b as (++) end)
  4. a. still present
    b. still present
    c. fixed

Features wishes:

  1. is about camlp5
  2. is still interesting (specify exception sharing in a signature)

@vicuna
Copy link
Author

vicuna commented Jul 24, 2013

Comment author: @damiendoligez

Documentation point 3 was fixed in the great grammar cleanup of 4.01.

Remains:

  • Camlp4 point 2 (module type A = sig module type S = 'a; end;)
  • Feature wish 2 (specify exception sharing in a signature)

@vicuna
Copy link
Author

vicuna commented Feb 27, 2017

Comment author: @damiendoligez

camlp4 is now a separate project, so we are left with:

  • Feature wish 2 (specify exception sharing in a signature)

@xavierleroy xavierleroy changed the title misc. camlp4 + doc Specify exception sharing in signatures (was: misc. camlp4 + doc) Mar 16, 2019
@mshinwell
Copy link
Contributor

There is an outstanding feature request on this issue (specification of exception sharing in signatures) but no-one has implemented this, as far as I can tell, since this report of 2005. As such I think this issue can be closed. I suggest if anyone is keen and has the resources to do so in the future, they submit a PR (or possibly a small RFC) with the change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants