Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. i'm at a loss of words after reading a paper about reformatting code using an ML model that has a measured statistical quantity A_c which says how often the reformatted code behaves the same as the original

i'm at a loss of words after reading a paper about reformatting code using an ML model that has a measured statistical quantity A_c which says how often the reformatted code behaves the same as the original

Scheduled Pinned Locked Moved Uncategorized
140 Posts 61 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

    i'm at a loss of words after reading a paper about reformatting code using an ML model that has a measured statistical quantity A_c which says how often the reformatted code behaves the same as the original

    the "ideal" (their choice of words) case is 64.2%

    burningtyger@nrw.socialB This user is from outside of this forum
    burningtyger@nrw.socialB This user is from outside of this forum
    burningtyger@nrw.social
    wrote last edited by
    #108

    @whitequark I'm slightly embarrassed that this is coming from Germany.

    1 Reply Last reply
    0
    • disorderlyf@todon.euD disorderlyf@todon.eu

      @whitequark So let me get this straight, IEEE thinks you should count it as a win if rewriting your code by vibing it has less than 15% better odds than a literal coinflip of reproducibility?

      edited for clarity and to fix a typo

      urixturing@hachyderm.ioU This user is from outside of this forum
      urixturing@hachyderm.ioU This user is from outside of this forum
      urixturing@hachyderm.io
      wrote last edited by
      #109

      @disorderlyf @whitequark IEEE and ACM don't do the research nor they think you to do things, they are publishers that own journals and conferences where researchers publish their work

      whitequark@social.treehouse.systemsW disorderlyf@todon.euD 2 Replies Last reply
      0
      • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

        @theeclecticdyslexic @lu_leipzig yeah if a formatter requires me to do things I don't want I simply quit using the formatter (and sometimes the codebase)

        burningtyger@nrw.socialB This user is from outside of this forum
        burningtyger@nrw.socialB This user is from outside of this forum
        burningtyger@nrw.social
        wrote last edited by
        #110

        @whitequark @theeclecticdyslexic @lu_leipzig You are absolutely right. So for JS/TS we're using eslint only. It is much less strict about things but gets the job done. Line length is one of my pet peeves. I simply cannot and don't want a strict length because sometimes a line is longer than the rest. For reasons. I don't use formatters either for that reason. Works well for me.

        1 Reply Last reply
        0
        • urixturing@hachyderm.ioU urixturing@hachyderm.io

          @disorderlyf @whitequark IEEE and ACM don't do the research nor they think you to do things, they are publishers that own journals and conferences where researchers publish their work

          whitequark@social.treehouse.systemsW This user is from outside of this forum
          whitequark@social.treehouse.systemsW This user is from outside of this forum
          whitequark@social.treehouse.systems
          wrote last edited by
          #111

          @urixturing @disorderlyf yeah. there are other issues with their models but this isn't one

          1 Reply Last reply
          0
          • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

            i'm at a loss of words after reading a paper about reformatting code using an ML model that has a measured statistical quantity A_c which says how often the reformatted code behaves the same as the original

            the "ideal" (their choice of words) case is 64.2%

            mc@mathstodon.xyzM This user is from outside of this forum
            mc@mathstodon.xyzM This user is from outside of this forum
            mc@mathstodon.xyz
            wrote last edited by
            #112

            @whitequark well the paper speaks of *code style* which is more than just formatting but also, shouldn't we welcome negative results in science?

            whitequark@social.treehouse.systemsW benjamineskola@hachyderm.ioB 2 Replies Last reply
            0
            • mc@mathstodon.xyzM mc@mathstodon.xyz

              @whitequark well the paper speaks of *code style* which is more than just formatting but also, shouldn't we welcome negative results in science?

              whitequark@social.treehouse.systemsW This user is from outside of this forum
              whitequark@social.treehouse.systemsW This user is from outside of this forum
              whitequark@social.treehouse.systems
              wrote last edited by
              #113

              @mc I feel like if the negative result is obvious given the hypothesis it has a lot less value

              1 Reply Last reply
              0
              • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                i'm at a loss of words after reading a paper about reformatting code using an ML model that has a measured statistical quantity A_c which says how often the reformatted code behaves the same as the original

                the "ideal" (their choice of words) case is 64.2%

                S This user is from outside of this forum
                S This user is from outside of this forum
                sop@unstable.systems
                wrote last edited by
                #114

                @whitequark I do think that asking for 100.0% equivalency is something that's both necessary to ask of something you'd want to put in a CI _and_ unreasonable to ask of something that tries to solve this problem

                having accidentally gone through this specific kind of exercise a few times in the last couple weeks — turning java code into kotlin code intellij would spit into kotlin code I'd be happy to put my name on — I usually reach maybe 98% compatibility, then settle for that because I identify the remaining 2% of behaviours as "hard to replicate in the new shape of the code," "minor enough not to matter" and "not desirable, actually"

                once you're happy to aim somewhere south than 100.0% I guess it's interesting to figure out how close you can get — and then yeah this approach only gets you to 64% which is only good as a milestone for future efforts to compare against 🤷‍♀️

                maybe all this ends up being good for is dropping comments on PRs (and, if you recognize me, we both know how we feel about that)

                whitequark@social.treehouse.systemsW S 2 Replies Last reply
                0
                • S sop@unstable.systems

                  @whitequark I do think that asking for 100.0% equivalency is something that's both necessary to ask of something you'd want to put in a CI _and_ unreasonable to ask of something that tries to solve this problem

                  having accidentally gone through this specific kind of exercise a few times in the last couple weeks — turning java code into kotlin code intellij would spit into kotlin code I'd be happy to put my name on — I usually reach maybe 98% compatibility, then settle for that because I identify the remaining 2% of behaviours as "hard to replicate in the new shape of the code," "minor enough not to matter" and "not desirable, actually"

                  once you're happy to aim somewhere south than 100.0% I guess it's interesting to figure out how close you can get — and then yeah this approach only gets you to 64% which is only good as a milestone for future efforts to compare against 🤷‍♀️

                  maybe all this ends up being good for is dropping comments on PRs (and, if you recognize me, we both know how we feel about that)

                  whitequark@social.treehouse.systemsW This user is from outside of this forum
                  whitequark@social.treehouse.systemsW This user is from outside of this forum
                  whitequark@social.treehouse.systems
                  wrote last edited by
                  #115

                  @sop but I'm not doing language translation, input and output are in the same language and should have essentially identical (machine-checkably equivalent) ASTs

                  1 Reply Last reply
                  0
                  • S sop@unstable.systems

                    @whitequark I do think that asking for 100.0% equivalency is something that's both necessary to ask of something you'd want to put in a CI _and_ unreasonable to ask of something that tries to solve this problem

                    having accidentally gone through this specific kind of exercise a few times in the last couple weeks — turning java code into kotlin code intellij would spit into kotlin code I'd be happy to put my name on — I usually reach maybe 98% compatibility, then settle for that because I identify the remaining 2% of behaviours as "hard to replicate in the new shape of the code," "minor enough not to matter" and "not desirable, actually"

                    once you're happy to aim somewhere south than 100.0% I guess it's interesting to figure out how close you can get — and then yeah this approach only gets you to 64% which is only good as a milestone for future efforts to compare against 🤷‍♀️

                    maybe all this ends up being good for is dropping comments on PRs (and, if you recognize me, we both know how we feel about that)

                    S This user is from outside of this forum
                    S This user is from outside of this forum
                    sop@unstable.systems
                    wrote last edited by
                    #116

                    @whitequark (reads https://social.treehouse.systems/@whitequark/116283070331505039) oh no did I just explain something you thought obvious back to you

                    whitequark@social.treehouse.systemsW 1 Reply Last reply
                    0
                    • S sop@unstable.systems

                      @whitequark (reads https://social.treehouse.systems/@whitequark/116283070331505039) oh no did I just explain something you thought obvious back to you

                      whitequark@social.treehouse.systemsW This user is from outside of this forum
                      whitequark@social.treehouse.systemsW This user is from outside of this forum
                      whitequark@social.treehouse.systems
                      wrote last edited by
                      #117

                      @sop i guess? basically, you can set up a system around an ML model in two ways: where the model gets to alter things that are not (lexer) whitespace, and where the model gets to alter random (lexer) tokens

                      the paper goes for #2
                      i am collabrating on a project that does #1, which gives 100.0% (with the caveat above) by design—because a formatting tool that sometimes breaks code is a net negative

                      1 Reply Last reply
                      0
                      • lu_leipzig@troet.cafeL lu_leipzig@troet.cafe

                        @whitequark And this is how research money is lit on fire, I guess. Why else conduct research into ML for a task that has had obvious, deterministic, efficient and well-tested solutions for decades?

                        srazkvt@tech.lgbtS This user is from outside of this forum
                        srazkvt@tech.lgbtS This user is from outside of this forum
                        srazkvt@tech.lgbt
                        wrote last edited by
                        #118

                        @lu_leipzig @whitequark i would honestly be more interested into a deterministic but very configurable formatter, and a ml model to, from sample code, write a config for you, and you just do minor adjustments to it, generally all code styles stand in just a few hundred switches

                        whitequark@social.treehouse.systemsW 1 Reply Last reply
                        0
                        • srazkvt@tech.lgbtS srazkvt@tech.lgbt

                          @lu_leipzig @whitequark i would honestly be more interested into a deterministic but very configurable formatter, and a ml model to, from sample code, write a config for you, and you just do minor adjustments to it, generally all code styles stand in just a few hundred switches

                          whitequark@social.treehouse.systemsW This user is from outside of this forum
                          whitequark@social.treehouse.systemsW This user is from outside of this forum
                          whitequark@social.treehouse.systems
                          wrote last edited by
                          #119

                          @SRAZKVT @lu_leipzig this would be ~easy to do but convincing people to implement and maintain "a few hundred switches" has been incredibly difficult; my motivation is exactly that rustfmt maintainers have been consistently unwilling to entertain that

                          whitequark@social.treehouse.systemsW 1 Reply Last reply
                          0
                          • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                            @SRAZKVT @lu_leipzig this would be ~easy to do but convincing people to implement and maintain "a few hundred switches" has been incredibly difficult; my motivation is exactly that rustfmt maintainers have been consistently unwilling to entertain that

                            whitequark@social.treehouse.systemsW This user is from outside of this forum
                            whitequark@social.treehouse.systemsW This user is from outside of this forum
                            whitequark@social.treehouse.systems
                            wrote last edited by
                            #120

                            @SRAZKVT @lu_leipzig if every language i cared about (at this point: mainly rust, python, and c++) had highly configurable formatters i would not care to spend as much effort as i'm planning to on ml research

                            srazkvt@tech.lgbtS 1 Reply Last reply
                            0
                            • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                              @SRAZKVT @lu_leipzig if every language i cared about (at this point: mainly rust, python, and c++) had highly configurable formatters i would not care to spend as much effort as i'm planning to on ml research

                              srazkvt@tech.lgbtS This user is from outside of this forum
                              srazkvt@tech.lgbtS This user is from outside of this forum
                              srazkvt@tech.lgbt
                              wrote last edited by
                              #121

                              @whitequark @lu_leipzig most tooling devs today seem to believe in a one size fits all with no configurability, kind of sad

                              also i think the problem of "but if every codebase isn't formatted exactly the same" is way overblown, once you start reading the code it really doesn't take long to adapt to a new style, barely a few minutes from my experience

                              whitequark@social.treehouse.systemsW c0dec0dec0de@hachyderm.ioC 2 Replies Last reply
                              0
                              • srazkvt@tech.lgbtS srazkvt@tech.lgbt

                                @whitequark @lu_leipzig most tooling devs today seem to believe in a one size fits all with no configurability, kind of sad

                                also i think the problem of "but if every codebase isn't formatted exactly the same" is way overblown, once you start reading the code it really doesn't take long to adapt to a new style, barely a few minutes from my experience

                                whitequark@social.treehouse.systemsW This user is from outside of this forum
                                whitequark@social.treehouse.systemsW This user is from outside of this forum
                                whitequark@social.treehouse.systems
                                wrote last edited by
                                #122

                                @SRAZKVT @lu_leipzig there is a more real problem of "some people bounce off contributing if you ask them to fix style"

                                srazkvt@tech.lgbtS 1 Reply Last reply
                                0
                                • sabik@rants.auS sabik@rants.au

                                  @xgranade @whitequark @porglezomp
                                  I think reversing the `j` for loop is actually wanted by them? It's labelled "ground truth", and it is a potential valid optimisation

                                  ingalovinde@embracing.spaceI This user is from outside of this forum
                                  ingalovinde@embracing.spaceI This user is from outside of this forum
                                  ingalovinde@embracing.space
                                  wrote last edited by
                                  #123

                                  @sabik @xgranade @whitequark @porglezomp but they also changed the boundaries! "Input" checks all values from 2 to i+2 inclusive; but "ground truth" just trows i+2 iteration out.

                                  sabik@rants.auS 1 Reply Last reply
                                  0
                                  • hennichodernich@radiosocial.deH hennichodernich@radiosocial.de

                                    @nxskok @whitequark @deborahh @danlyke to be fair, according to the paper, replacing for with while loops and vice versa and the like was also the goal

                                    illybytes@shrimp.imsofucking.gayI This user is from outside of this forum
                                    illybytes@shrimp.imsofucking.gayI This user is from outside of this forum
                                    illybytes@shrimp.imsofucking.gay
                                    wrote last edited by
                                    #124
                                    @hennichodernich @danlyke @whitequark @deborahh @nxskok but like wouldn't that be easy to implement?
                                    like

                                    for(expression;bool expression; affectation) that would turn into
                                    expression; while (bool) { //every possible branch inside while would get affectation }
                                    1 Reply Last reply
                                    0
                                    • ingalovinde@embracing.spaceI ingalovinde@embracing.space

                                      @sabik @xgranade @whitequark @porglezomp but they also changed the boundaries! "Input" checks all values from 2 to i+2 inclusive; but "ground truth" just trows i+2 iteration out.

                                      sabik@rants.auS This user is from outside of this forum
                                      sabik@rants.auS This user is from outside of this forum
                                      sabik@rants.au
                                      wrote last edited by
                                      #125

                                      @IngaLovinde @xgranade @whitequark @porglezomp
                                      `i` starts from 1 in the "ground truth" version

                                      ingalovinde@embracing.spaceI 1 Reply Last reply
                                      0
                                      • sabik@rants.auS sabik@rants.au

                                        @IngaLovinde @xgranade @whitequark @porglezomp
                                        `i` starts from 1 in the "ground truth" version

                                        ingalovinde@embracing.spaceI This user is from outside of this forum
                                        ingalovinde@embracing.spaceI This user is from outside of this forum
                                        ingalovinde@embracing.space
                                        wrote last edited by
                                        #126

                                        @sabik @xgranade @whitequark @porglezomp ah I see, so the new i is just the old one + 1

                                        1 Reply Last reply
                                        0
                                        • mc@mathstodon.xyzM mc@mathstodon.xyz

                                          @whitequark well the paper speaks of *code style* which is more than just formatting but also, shouldn't we welcome negative results in science?

                                          benjamineskola@hachyderm.ioB This user is from outside of this forum
                                          benjamineskola@hachyderm.ioB This user is from outside of this forum
                                          benjamineskola@hachyderm.io
                                          wrote last edited by
                                          #127

                                          @mc @whitequark do they actually even recognise it as a negative result though?

                                          They seem to be presenting it as a positive one (looking at the abstract and conclusion) — but I admit I'm not familiar with the norms for writing this sort of paper.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups