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

Drasil Research Group Meeting, 3pm, Monday July 22, 2024, ITB/225 #3852

Closed
smiths opened this issue Jul 15, 2024 · 7 comments
Closed

Drasil Research Group Meeting, 3pm, Monday July 22, 2024, ITB/225 #3852

smiths opened this issue Jul 15, 2024 · 7 comments

Comments

@smiths
Copy link
Collaborator

smiths commented Jul 15, 2024

  1. Thoughts on Michael Galle?
  2. How to proceed with the Markdown GitHub format SRS. It is missing some functionality. (@BilalM04)
  3. The Jupyter format SRS does not need the Markdown GitHub format SRS to clean up and fix. It can use the mdBook functions. Though, it would be nicer to have a pure Markdown printer defined, from which these "special" versions extend. (@BilalM04)
  4. How to assign the Sets to a variable before they are used in the conditional. Add another line before the conditions if the Constraint is checking a Set? Add Sets #3846 (@NoahCardoso)
  5. Julia renderer v1 #3854 - not sure if we want to merge yet because the Julia renderer implements OOProg, but once we start moving it to ProcProg it'll be a while before we can generate code for it again. (@B-rando1)
  6. Made constDecDef capitalize constants in Python #3858 - there are still a couple pieces missing with this, mainly warning messages and fully safe generated variable names. These are more technical issues, but if we can decide on an overall direction then that would be great. (@B-rando1)
  7. What Drasil modules/functions should @TRISHI-L review? Maybe stringList mentioned by @BilalM04 to reduce repetitive coding work?
  8. Any advice for @TRISHI-L problems running make pr_ready locally ? -- see make pr_ready: switch reliance on hot_hlint to hlint #3865
  9. Annual Summer Research Poster Showcase
@B-rando1
Copy link
Collaborator

Weekly Summary

  • Finished v1 of the Julia renderer and opened a PR (Julia renderer v1 #3854)
    • Currently the Julia renderer implements the OOProg interface, so I need to change it over to the ProcProg interface. This will likely entail a good deal more splitting things up on the implementation-side of GOOL.
  • Made a bit more progress on global-local scope in GOOL (Started adding Global vs Local scope distinction #3838)
    • Currently I'm trying to trace out all variable declarations in drasil-code and assign the proper scope. This is quite challenging, but I'm slowly moving forward with it.
  • Worked on constDecDef in Python (Made constDecDef capitalize constants in Python #3858)
    • We have to make sure that there's nothing wrong with variables lying to drasil-code about their contents. It might be fine as long as we are consistent, but it's good to be aware of it.
    • We want constDecDef to give a warning rather than an error if the 'modified' (i.e. SCREAMING_SNAKE_CASE) name is used elsewhere, but I'm not sure if GOOL currently has the ability to do IO as a side-effect.
    • This also gives some motivation for a better way of tracking variables - currently we add variable names to the list of used names as we create them. This doesn't prevent GOOL from generating a variable name (for loops, Python constants etc.) that is fresh up to that point, but is used later by the user. I think a two-pass approach is required.
  • I removed the outer parenthesis of if-statements in Python (Removed outer parenthesis from ifCond in Python #3859). This was a very quick change to make.

Agenda/Blockers

  • Julia renderer v1 #3854 - I need to think what the best next step is with this. I'm not sure if we want to merge yet because the Julia renderer implements OOProg, but once we start moving it to ProcProg it'll be a while before we can generate code for it again.
  • Made constDecDef capitalize constants in Python #3858 - there are still a couple pieces missing with this, mainly warning messages and fully safe generated variable names. These are more technical issues, but if we can decide on an overall direction then that would be great.

@BilalM04
Copy link
Collaborator

Weekly Summary

  • Implemented the CSV approach for the mdBook assets, which we agreed upon in the previous meeting (mdBook Assets - CSV Approach #3848).
  • Started working on and looking into the Markdown GitHub format SRS.
    • Main problem is the incomplete Mathjax of GitHub Flavoured Markdown (GFM).
      • In-line matrices and case statements do not render.
      • Certain block equations in tables do not render.
      • No way of going around this.
      • @balacij recommends a tagless approach, didn't look into it too much, got occupied with other things.
    • Looked into other Markdown flavours (such as CommonMark, Pandoc, MultiMarkdown, etc.), there doesn't seem to be a complete pure markdown flavour that can address all the required components in our SRSs.
    • Good news is that the Jupyter format markdown is complete and renders nicely. It can use all of the mdBook functions, with removal of minor mdBook quirks.
  • Working on the deployment scripts to host the generated mdBook projects.
    • SRS PDFs have disappeared from the website #3704 caught my eye.
      • Since I’ll already be working on the deployment scripts and workflows, I thought it would be a good opportunity to address the existing issues and optimize the run time. @balacij seems to agree.
    • Trying to setup the website on my own Drasil fork in order to test the workflows.

Agenda / Blockers

  • How to proceed with the Markdown GitHub format SRS. It is missing some functionality that I listed above.
  • The Jupyter format SRS does not need the Markdown GitHub format SRS in order to clean up and fix. It can use the mdBook functions. Though, it would be nicer to have a pure Markdown printer defined, from which these "special" versions extend.

@NoahCardoso
Copy link
Collaborator

NoahCardoso commented Jul 19, 2024

Weekly Summary

  • Finished creating Sets for C++, C#, Java and Python Add back OneOf Value constraints #2655
    image
    image
    image
    image

  • I want to change the __contains__ operation that I originally used in Python since I think in would look nicer. It is not in since it was faster to do.

Agenda / Blockers

  • I am currently having some difficulty in drasil-code with trying to assign the Sets to a variable before they are used in the conditional. I am doing this because I think it would look nicer in C# and in C++. I am fairly certain that I need to adjust this function to add another line before the conditions if the Constraint is checking a Set. Add Sets #3846
    chooseConstr :: (OOProg r) => ConstraintBehaviour ->
    [(CodeVarChunk, [ConstraintCE])] -> GenState [MSStatement r]
    chooseConstr cb cs = do
    conds <- mapM (\(q,cns) -> mapM (convExpr . renderC q) cns) cs
    bods <- mapM (chooseCB cb) cs
    return $ concat $ zipWith (zipWith (\cond bod -> ifNoElse [((?!) cond, bod)]))
    conds bods
    where chooseCB Warning = constrWarn
    chooseCB Exception = constrExc

@smiths
Copy link
Collaborator Author

smiths commented Jul 20, 2024

@TRISHI-L can you please add a comment to this issue describing what you did last week?

@Xinlu-Y
Copy link
Collaborator

Xinlu-Y commented Jul 21, 2024

Weekly Summary

Agenda / Blockers

  • Make reversion based on receiving feedback on my implementation
    • completed.
  • Read some of related papers to further explore and research Drasil.
  • Should I review other functions in the modules of Drasil? Like stringList (mentioned by @BilalM04) is helpful to reduce repetitive coding work.
  • Encountered issues while running make pr_ready locally.
    image

@B-rando1
Copy link
Collaborator

#3856

@smiths
Copy link
Collaborator Author

smiths commented Aug 8, 2024

All agenda items were covered.

@smiths smiths closed this as completed Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants