1. 26 Jun, 2020 3 commits
  2. 15 Jun, 2020 7 commits
    • Eric Myhre's avatar
      Merge pull request #52 from ipld/codegen-oppdatering · 41db59c6
      Eric Myhre authored
      Codegen update -- Assemblers, and many new representations
      41db59c6
    • Eric Myhre's avatar
      Update tests that had semantic conflicts. · 21c8792d
      Eric Myhre authored
      21c8792d
    • Eric Myhre's avatar
      6ca0abcf
    • Eric Myhre's avatar
      Regen gendemo package. · 13a3cd38
      Eric Myhre authored
      (It's a small diff -- just reflecting the fix for map returing absent.)
      13a3cd38
    • Eric Myhre's avatar
      Fix some out of date docs. · befa4986
      Eric Myhre authored
      befa4986
    • Eric Myhre's avatar
      Clean out remaining wip documents. · 87794f5c
      Eric Myhre authored
      ... almost.  In attempting to put the sections about absent value
      handling into place, I realized there's a decently sizable bug there
      already.  I'm going to document this for now, move on, and come back
      to it later... so it will continue to take up space in a "wip" doc.
      The description of the situation is at least cleaned up now.
      87794f5c
    • Eric Myhre's avatar
      More goals statements for codegen. · ec24732e
      Eric Myhre authored
      I spent some time poking around at other applications that I'd want to
      be able to use some of this stuff on, and the lines about "minimalist"
      come from that.  I suspect that in ideal outcomes, I'd like to be able
      to sometimes be able to generate the type structures and native/typed
      APIs for a Schema definition... but perhaps not generate all the stuff
      necessary for the interface monomorphization, because perhaps I just
      want an enum purely for internal program purposes; surely we should be
      able to just do that.  We'll see though.  Maybe that's scope creep
      as much as anything else.
      ec24732e
  3. 08 Jun, 2020 2 commits
  4. 03 Jun, 2020 6 commits
  5. 25 May, 2020 2 commits
  6. 22 May, 2020 12 commits
    • Eric Myhre's avatar
      gendemo package is now real generation :3 · e9455cdc
      Eric Myhre authored
      Previously, it was manually written prototypes of what gen "would" look like.
      
      Now it's the real deal :3
      e9455cdc
    • Eric Myhre's avatar
      Regen the realgen package. · 0009613a
      Eric Myhre authored
      Going to move it over to replace the (currently hand-written) gendemo
      package shortly... but spread that over a few commits, in case the
      diffs turn out interesting to look at.
      0009613a
    • Eric Myhre's avatar
      Clean up minima. · f1f9308f
      Eric Myhre authored
      Less comments emitted in gen result.
      
      Touch up the 'do not edit' comment.
      f1f9308f
    • Eric Myhre's avatar
      Refresh HACKME documents. · a7e8b2f2
      Eric Myhre authored
      Some of them still lived over the "gendemo" package, and those are now
      moved over here to the proper gen package.
      
      Linked to more of the other documents from the main HACKME doc.
      a7e8b2f2
    • Eric Myhre's avatar
      Feature table in readme! · e198e322
      Eric Myhre authored
      A fair amount of stuff is finished.
      
      A fair amount of stuff isn't.
      
      These are all the type kinds and representation strategies outlined in
      https://specs.ipld.io/schemas/representations.html .
      e198e322
    • Eric Myhre's avatar
      Map representations now work and correctly stay in representation mode when they recurse. · e9bb7415
      Eric Myhre authored
      This is pretty similar to the extractions that made it fly for lists.
      
      I've added a few more comments to the "genparts*" files, because on
      further reflection, a lot of those methods are... less reusable than
      the name might seem to claim.  We'll see how those evolve.
      
      Altered TestMapsContainingMaps quite a bit to now also test that
      representation mode is tracked correctly across both read and creation
      recursions, in a similar way to how TestListsContainingLists does
      (e.g., uses some structs towards the leaf nodes, so it can use the
      rename directives to create visible differences).
      e9bb7415
    • Eric Myhre's avatar
      comment typo fix · 6916052a
      Eric Myhre authored
      6916052a
    • Eric Myhre's avatar
      Maps now correctly stay in representation mode when read. · 3d4cd439
      Eric Myhre authored
      Correct representational creation mode still coming up, as you can
      see in the fixme comment.
      
      Tests will come in the next commit along with the creation mode.
      3d4cd439
    • Eric Myhre's avatar
      Test for lists-of-lists and that representation-mode recursion works for both... · 6c65fd6a
      Eric Myhre authored
      Test for lists-of-lists and that representation-mode recursion works for both assembly and traversal.
      
      It does.
      6c65fd6a
    • Eric Myhre's avatar
      Make this error less fragile. · d87c67e1
      Eric Myhre authored
      Having a nil pointer dereference cause a panic *during* error stringing
      is really unpleasant.
      
      We shouldn't "ever" have this problem, when the library is done.
      But right no we certainly do.
      d87c67e1
    • Eric Myhre's avatar
      Fix missing zeroing of wip pointer during nullable children in recursives. · 160062b4
      Eric Myhre authored
      Would cause the same memory to get reused inappropriately; need the nil
      value there to kick the child assembler to do the new allocation on the
      next round.
      160062b4
    • Eric Myhre's avatar
      Finish list repr list gen. · 9cae922e
      Eric Myhre authored
      A lot of the coments in earlier commit messages about choosing a path
      and cutting through it roughly and leaving DRY for latter still
      applies (see f1eeeafb).
      
      The hardest part of writing this was giving up on having shared code
      in the output.  It just can't be done along the current edges without
      giving up some performance at runtime, and that's generally not a trade
      we want to make.  Maybe there's different cuts for function boundaries
      that would do better -- but we'll leave that for later fun work.
      
      I did at least get a bunch of templates to be textually shared.
      
      Comments abound in the diff for future possibilities, as well as what's
      not possible to go further on without making undesired trades.
      9cae922e
  7. 13 May, 2020 1 commit
    • Eric Myhre's avatar
      First pass of very basic coloration; and demo. · d99e82fa
      Eric Myhre authored
      Key coloration is easy because we already have key emission in one place,
      and we already have size computation for alignment separated from emission.
      Value coloration will be a little more involved.
      d99e82fa
  8. 10 May, 2020 5 commits
    • Eric Myhre's avatar
      Test that JST sub-sub-tables work. · d2c11dad
      Eric Myhre authored
      They do.
      d2c11dad
    • Eric Myhre's avatar
      JST codec now supports absent columns. · 1e80a058
      Eric Myhre authored
      Alignment just proceeds around them, leaving appropriate space based on
      what other rows needed in order to align with each other.
      
      If a column is absent at the end of a row, the whole row wraps up fast.
      1e80a058
    • Eric Myhre's avatar
      Test that JST sub-tables align at a distance. · 4eaf0f74
      Eric Myhre authored
      They do.
      4eaf0f74
    • Eric Myhre's avatar
      Trailing separators and other fiddly bits of JST. · 7ce9660a
      Eric Myhre authored
      The first two example fixtures of what I wanted to achieve pass now :3
      That's exciting.
      7ce9660a
    • Eric Myhre's avatar
      Introducing JST -- json tables. · e9133615
      Eric Myhre authored
      See the package docs in 'jst.go' for introduction to what and why;
      tldr: I want pretty and I want JSON and I want them at the same time.
      
      I'm putting this in the codec package tree because it fits there moreso
      than anywhere else, but it's probably not going to be assigned a
      multicodec magic number or anything like that; it's really just JSON.
      
      This code doesn't *quite* pass its own fixture tests yet, but nearly.
      I thought this would be a nice checkpoint because the only thing left
      is dealing with the fiddly trailing-comma-or-not bits.
      
      This first pass also completely ignores character encoding issues,
      the correct counting of graphemes, and so forth; those are future work.
      Most configurability is also speculative for 'first draft' reasons.
      All good things in time.
      
      This is something of a little hobby sidequest.  It's not particularly
      related to the hashing-and-content-addressing quest usually focused.
      Accordingly, as you may be able to notice from some of the comments
      in the package documentation block, I did initially try to write this
      over in the refmt repo instead.  However, I got about 20 seconds in on
      that effort before realizing that our Node interface here would be a
      wildly better interface to build this with.  Later, I also started
      realizing Selectors would be Quite Good for other forms of
      configuration that I want to add to this system... so, it's rapidly
      turning into a nice little exercise for other core IPLD primitives!
      Yay!  Copacetic.
      e9133615
  9. 08 May, 2020 2 commits