Idris2 icon indicating copy to clipboard operation
Idris2 copied to clipboard

[ refactor ] ScopedSnocList: Swap `Scope` on `SnocList` (Phase 2)

Open GulinSS opened this issue 9 months ago • 24 comments

Introduces the actual swap of List on SnocList for Scope.

Should this change go in the CHANGELOG?

  • [ ] If this is a fix, user-facing change, a compiler change, or a new paper implementation, I have updated CHANGELOG_NEXT.md (and potentially also CONTRIBUTORS.md).

GulinSS avatar Mar 19 '25 10:03 GulinSS

@spcfox prepared a report of building packages.

TLDR; all builds reached complete step of compilation. 🎉

GulinSS avatar Mar 25 '25 19:03 GulinSS

@mjustus @gallais

Kindly asking for the review! 🙏

GulinSS avatar Jun 05 '25 08:06 GulinSS

Be aware that it may take a while!

Next week is the TYPES conference The week after that is the CALCO/MFPS joint conferences

We may be able to meet after that but then annual leave may kick in (I'll be away late June to early July).

gallais avatar Jun 05 '25 09:06 gallais

@gallais a reminder at the middle/end of July probably after annual leave

GulinSS avatar Jul 22 '25 07:07 GulinSS

We're meeting tomorrow for a first go at this PR.

gallais avatar Jul 29 '25 10:07 gallais

@gallais @mjustus

should we solve these conflicts or better wait the review?

GulinSS avatar Aug 08 '25 12:08 GulinSS

I think solving merge conflicts later is the better approach. We tend to do some refactoring during review (e.g. PR #3593) when we spot opportunities that are too tempting to ignore but those shouldn't be too difficult to merge. I am sure Guillaume and I can help resolving conflicts once we are done reviewing.

EDIT: wrong PR number.

mjustus avatar Aug 08 '25 13:08 mjustus

hm, I've tried to track the changes but this commit is unclear for me. Could you put more info there?

@gallais @mjustus

GulinSS avatar Aug 19 '25 18:08 GulinSS

That last one is ongoing changes that are not thematically linked beyond being part of the review as a whole. We reset the commit before each new session, moving pure refactoring commits past it and then add it back on with all the stuff we've accumulated during the day to it.

gallais avatar Aug 20 '25 09:08 gallais

@gallais @mjustus

FYI Not-so-trivial rebase may occur here

GulinSS avatar Aug 26 '25 10:08 GulinSS

FYI Not-so-trivial rebase may occur here

I can help with that

spcfox avatar Aug 26 '25 11:08 spcfox

@gallais @mjustus

Might be better to merge current refactor progress "as is"?

GulinSS avatar Sep 04 '25 10:09 GulinSS

The new academic year is about to start so unfortunately I don't think I'll be able to come back to this for a while.

gallais avatar Sep 04 '25 10:09 gallais

The new academic year is about to start so unfortunately I don't think I'll be able to come back to this for a while.

I mean I could take the branch, make a rebase, and finally propose all these changes to merge at this pr. What do you think?

GulinSS avatar Sep 04 '25 12:09 GulinSS

I've collected commits from https://github.com/mjustus/Idris2/commit/3578f703cc66160aca0a07526744a41f3797f49c, then added holes to make it compilable as is to see the needed surface to fix. Applied trivial fixes. Working on filling holes.

GulinSS avatar Oct 31 '25 10:10 GulinSS

@mjustus @gallais

I've rolled out your refactor intentions over the full codebase and now it compiles just fine, see CI. Actually it only compiles now, not work. My next steps are focused on coming back the working state.

Howbeit I noted that your refactor ideas are a very delicious and at same time pretty accurate. I think while I am busy on coming back working state (that's why I moved this issue to Draft state again) it would be perfect if you would come with more.

I know your time is limited but the deal is to get more your ideas and implement them by my hands as I can.

cc @buzden

GulinSS avatar Nov 05 '25 08:11 GulinSS

Short list of all test errors ATM:

idris2/basic/basic055
base/data_bits001
contrib/list_alternating
chez/channels008
chez/chez004
chez/integers
chez/chez032
chez/chez027
refc/buffer
refc/integers
refc/strings
node/node024
node/node004
node/integers

Unfortunately, I am unable to reproduce them locally. crush.Dockerfile.txt

But locally my list of bad tests are:

chez/channels009
chez/channels008
chez/futures001

Continue digging.

GulinSS avatar Nov 27 '25 12:11 GulinSS