Gauthier Segay

My feedback

  1. 121 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      6 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
      Gauthier Segay commented  · 

      Charles Roddie, this would work with "islands" of C# files compiled together and knowing about previous compiled islands, 1.cs can't know about 4.cs in your case.

      Gauthier Segay commented  · 

      I think kotlin has such support with java too.

      I'd see this idea coming to fruition first in scripting:

      #load @"path/to/file.csx"

      where it is easy to figure out the topoligical graph of script files to include, compile in separate assemblies and link.

      If this is made, then work on same feature in project system would be great.

      I think that would also give few kicks to Jetbrains to finally start implementing F# support and more importantly, this would restore some trust in having the whole of MS people working on .NET focused on making best platform with highest level of interop among all the languages, having them invest major engineering efforts which benefits all the languages (current and future) to have easy embedding of all IL compilers in a meta compiler.

      F# file ordering is also a major aspect making this seem viable.

      Gauthier Segay supported this idea  · 
    • 248 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        under review  ·  8 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
        Gauthier Segay commented  · 
      • 5 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          6 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
          Gauthier Segay commented  · 

          I agree with Reed and use same convention, and I do benefit from the warning.

          To workaround the fact you can't use the constructor as first class function only takes a single line function while having the warning and convention of using new only for IDisposable could form a nice convention in F# codebases.

        • 39 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            29 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
            Gauthier Segay commented  · 

            It is unfortunate that this suggestion mixes 2 concerns:

            * declarations to be mutually referential (which most people don't want as seen in comments)

            * have the compiler figure out the order rather than have to specify it manually

            I think the later point would be a great thing for end-users, and that doesn't circumvent at all file ordering being there and necessary, only it would be figured out by the compiler.

            Gauthier Segay supported this idea  · 
          • 98 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              5 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
              Gauthier Segay supported this idea  · 
              Gauthier Segay commented  · 

              I concur that we need fuller support of .net type system.

            • 1 vote
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                0 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                Gauthier Segay shared this idea  · 
              • 1 vote
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  4 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                  Gauthier Segay commented  · 

                  Dave, can you show how mixed of positional and indexed arguments would play together?

                  Should we reuse string.format notation with braces?

                  Gauthier Segay commented  · 

                  Dave, do you think that would still be useful with making your variable name short in the scope where you want to print it:

                  do
                  (**)let n = mySecretNumber
                  (**)printfn "%i %x %A" n n n

                  I think it is interesting idea (but with a 0 based index and robust compiler checks) but maybe not as useful as string interpolation?

                • 20 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    4 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                    Gauthier Segay commented  · 

                    Don, have you considered that fsc now takes a response file?

                    I think the tooling issue is becoming manageable, for the widespread msbuild project files there is fsprojects/forge tool, and I think support for project.json will be added when it matures.

                    As for json file in your suggestion, I really don't think json is a human readable format, it is great when you have javascript on one side but that is about it, writing a json file by hand is tedious compared to a more human friendly format (see the file formats used by paket).

                    A precompiler directive solution (#require) seems also like a good way to have that made explicit in the source, I think this approach could be studied (with an extra tool as Kevin mentions), but would require some tooling or compiler support (we want error message if a file doesn't exist).

                  • 26 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      8 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                      Gauthier Segay commented  · 

                      agree with Alexei to have fsharp-y syntax (although I'm not familiar with OCaml, I'm sure there are advantages in the way they open modules), I should have put more details in the suggestion but can't edit it.

                      I'm also considering if having "partial" open (to bring only select symbols in scope) is something which would be valuable.

                      Gauthier Segay shared this idea  · 
                    • 4 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        4 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                        Gauthier Segay commented  · 

                        F# is functional first but has to support quite a bit of imperative style constructs which makes it very practical.

                        Without let, it would be difficult to understand the scope of definitions, difficult to catch if I mistyped a symbol name.

                        I think the list of ambiguity this would create is huge and I'm not in favor of this proposition.

                      • 4 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          1 comment  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                          Gauthier Segay commented  · 

                          It seems there are other areas where this could also take place?

                          It is a bit annoying to have to explicitly cast but at least it is consistent wherever expected type is not an exact match.

                          Introducing this for yield only would create a special case.

                        • 4 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            2 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                            Gauthier Segay commented  · 

                            Alexey, your example would cause "This is not a valid constant expression." error.

                            Lenne, do you mean the value to be substituted at compile time? (I guess yes as it is a compiler directive).

                            I'm not sure I see value in this, is there prior art (any other compiler does that?)

                            I generally move those type of strings in a separate module, and can consider generating this module file as a preliminary build step.

                            Also, I think this can be addressed by a type provider altogether, maybe you should consider this instead?

                          • 1 vote
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              1 comment  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                              Gauthier Segay commented  · 

                              Interesting, what about a notation that would bring closer to mathematical notation?

                              [0..lst.Length[

                              or

                              [0..lst.Length)

                            • 11 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                3 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                                Gauthier Segay commented  · 

                                I believe a library solution is good enough:

                                let undefined () = raise (System.NotImplementedException())

                              • 4 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  3 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                                  Gauthier Segay commented  · 

                                  I'm concerned that "do blocks" will be difficult to discern from "do while" blocks.

                                  I'd appreciate this feature be brought to F# but it needs to not clash with do blocks IMHO.

                                • 1 vote
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    1 comment  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                                    Gauthier Segay shared this idea  · 
                                  • 30 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      5 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                                      Gauthier Segay supported this idea  · 
                                    • 2 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        3 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                                        Gauthier Segay commented  · 

                                        What is expected error message if any of the DU member has data defined for it?

                                      • 9 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          2 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                                          Gauthier Segay commented  · 

                                          Actually found out it works with enclosing parens:

                                          match pat with
                                          | SynPat.LongIdent(_) -> ()

                                          but it doesn't work with identifier (case whose utility is close to 0)

                                          match pat with
                                          | SynPat.LongIdent(a) -> ()

                                          Gauthier Segay shared this idea  · 
                                        • 11 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            2 comments  ·  F# Language  ·  Flag idea as inappropriate…  ·  Admin →
                                            Gauthier Segay commented  · 

                                            For discrimated union, the root type expose get_Is* methods, it should be exposed as Is* methods instead.

                                            Gauthier Segay shared this idea  · 
                                          ← Previous 1

                                          Feedback and Knowledge Base