🧹🧼 Cleanup: Pool provider #161

Closed
opened 2023-12-06 09:11:38 +00:00 by deavmi · 24 comments
Owner

Purpose

The purpose of this is to have each DNodeGenerator not rely on the static DNode[Statement] nodePool anymore but to rather have us provide a Pool/PoolManager to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)).

Todo

  • IPoolManager interface designed
  • PoolManager implementation
  • Usage within the dependency/core.d module
  • Remove old pooling system
    • Any traces of it in TypeChecker and Dependency
## Purpose The purpose of this is to have each `DNodeGenerator` not rely on the `static DNode[Statement] nodePool` anymore but to rather have us provide a `Pool`/`PoolManager` to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)). ## Todo - [x] `IPoolManager` interface designed - [x] `PoolManager` implementation - [x] Usage within the `dependency/core.d` module - [x] Remove old pooling system * Any traces of it in `TypeChecker` and `Dependency`
deavmi added the
dependency
label 2023-12-06 09:11:48 +00:00
deavmi self-assigned this 2023-12-06 09:11:52 +00:00
deavmi added reference vardec_varass_dependency 2023-12-06 09:11:56 +00:00
deavmi added this to the Dependency tree, type-checking and codegen project 2023-12-06 09:11:59 +00:00
deavmi added this to the Clean ups milestone 2023-12-06 09:12:03 +00:00
deavmi added the due date 2023-12-12 2023-12-06 09:12:17 +00:00
deavmi started working 2023-12-06 09:12:20 +00:00
deavmi changed reference from vardec_varass_dependency to feature/poolmngr 2023-12-06 09:14:18 +00:00
Author
Owner

Added an implementation of the IPoolManager interface in the form of PoolManager

Added an implementation of the `IPoolManager` interface in the form of `PoolManager` ✅
deavmi changed title from Clean up: Pool provider to 🧹🧼 Cleanup: Pool provider 2023-12-06 09:43:25 +00:00
deavmi stopped working 2023-12-06 09:43:29 +00:00
31 minutes 9 seconds
deavmi started working 2023-12-06 11:13:50 +00:00
Author
Owner

Added unittesting for the PoolManager and they pass

Added unittesting for the `PoolManager` and they pass ✅
deavmi stopped working 2023-12-06 11:45:58 +00:00
32 minutes 8 seconds
deavmi added spent time 2023-12-06 13:10:45 +00:00
30 minutes
deavmi started working 2023-12-06 13:10:48 +00:00
Author
Owner

Working on this now, as part of this I want to try and remove the DNodeGenerator itself from the DNode constructor

Working on this now, as part of this I want to try and remove the `DNodeGenerator` itself from the `DNode` constructor
deavmi stopped working 2023-12-06 14:51:06 +00:00
1 hour 40 minutes
deavmi added spent time 2023-12-06 14:58:40 +00:00
10 minutes
Author
Owner

Will work on this throughout the week, done for now. Will do more tonight.

Will work on this throughout the week, done for now. Will do more tonight.
deavmi started working 2023-12-06 19:05:49 +00:00
deavmi stopped working 2023-12-06 19:05:56 +00:00
7 seconds
deavmi added spent time 2023-12-06 19:06:04 +00:00
10 minutes
deavmi started working 2023-12-06 19:06:09 +00:00
deavmi added a new dependency 2023-12-06 19:06:53 +00:00
deavmi added a new dependency 2023-12-06 19:08:42 +00:00
deavmi stopped working 2023-12-06 19:08:47 +00:00
2 minutes 38 seconds
deavmi started working 2023-12-06 19:10:18 +00:00
Author
Owner

Pushed updates constructors for the sub-types of DNode such as VariableNode, FuncDefNode and so forth...

Pushed updates constructors for the sub-types of `DNode` such as `VariableNode`, `FuncDefNode` and so forth... ✅
deavmi stopped working 2023-12-06 19:29:36 +00:00
19 minutes 18 seconds
deavmi started working 2023-12-06 19:35:16 +00:00
Author
Owner

Purpose

The purpose of this is to have each DNodeGenerator not rely on the static DNode[Statement] nodePool anymore but to rather have us provide a Pool/PoolManager to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)).

Todo

  • IPoolManager interface designed
  • PoolManager implementation
  • Usage within the dependency/core.d module

Last bullet point is being worked on right now as we speak. basically done just need to make sure on somethings but all tests are locally passing

> ## Purpose > > The purpose of this is to have each `DNodeGenerator` not rely on the `static DNode[Statement] nodePool` anymore but to rather have us provide a `Pool`/`PoolManager` to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)). > > ## Todo > > - [x] `IPoolManager` interface designed > - [x] `PoolManager` implementation > - [ ] Usage within the `dependency/core.d` module Last bullet point is being worked on right now as we speak. basically done just need to make sure on somethings but all tests are **locally passing** ✅
deavmi stopped working 2023-12-06 19:37:22 +00:00
2 minutes 6 seconds
deavmi started working 2023-12-06 19:45:31 +00:00
Author
Owner

Purpose

The purpose of this is to have each DNodeGenerator not rely on the static DNode[Statement] nodePool anymore but to rather have us provide a Pool/PoolManager to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)).

Todo

  • IPoolManager interface designed
  • PoolManager implementation
  • Usage within the dependency/core.d module

Last bullet point is being worked on right now as we speak. basically done just need to make sure on somethings but all tests are locally passing

Pushed the updated dependency/core.d

> > ## Purpose > > > > The purpose of this is to have each `DNodeGenerator` not rely on the `static DNode[Statement] nodePool` anymore but to rather have us provide a `Pool`/`PoolManager` to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)). > > > > ## Todo > > > > - [x] `IPoolManager` interface designed > > - [x] `PoolManager` implementation > > - [ ] Usage within the `dependency/core.d` module > > Last bullet point is being worked on right now as we speak. basically done just need to make sure on somethings but all tests are **locally passing** ✅ Pushed the updated `dependency/core.d` ✅
Author
Owner

Purpose

The purpose of this is to have each DNodeGenerator not rely on the static DNode[Statement] nodePool anymore but to rather have us provide a Pool/PoolManager to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)).

Todo

  • IPoolManager interface designed
  • PoolManager implementation
  • Usage within the dependency/core.d module

Last bullet point is being worked on right now as we speak. basically done just need to make sure on somethings but all tests are locally passing

Pushed the updated TypeChecker

> > ## Purpose > > > > The purpose of this is to have each `DNodeGenerator` not rely on the `static DNode[Statement] nodePool` anymore but to rather have us provide a `Pool`/`PoolManager` to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)). > > > > ## Todo > > > > - [x] `IPoolManager` interface designed > > - [x] `PoolManager` implementation > > - [ ] Usage within the `dependency/core.d` module > > Last bullet point is being worked on right now as we speak. basically done just need to make sure on somethings but all tests are **locally passing** ✅ Pushed the updated `TypeChecker` ✅
Author
Owner

All unittests pass

All unittests pass ✅
Author
Owner

CI/CD passes

CI/CD passes ✅
deavmi stopped working 2023-12-06 20:06:12 +00:00
20 minutes 41 seconds
deavmi started working 2023-12-08 16:02:08 +00:00
Author
Owner

Working now on removing any reference to the static node pool...

Working now on removing any reference to the static node pool...
Author
Owner

Purpose

The purpose of this is to have each DNodeGenerator not rely on the static DNode[Statement] nodePool anymore but to rather have us provide a Pool/PoolManager to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)).

Todo

  • IPoolManager interface designed
  • PoolManager implementation
  • Usage within the dependency/core.d module
  • Remove old pooling system
    • Any traces of it in TypeChecker and Dependency
  • Added a MdouleVariableDeclaration DNode generation method
  • Removed nodePool - some references still remain however
> ## Purpose > > The purpose of this is to have each `DNodeGenerator` not rely on the `static DNode[Statement] nodePool` anymore but to rather have us provide a `Pool`/`PoolManager` to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)). > > ## Todo > > - [x] `IPoolManager` interface designed > - [x] `PoolManager` implementation > - [x] Usage within the `dependency/core.d` module > - [ ] Remove old pooling system > * Any traces of it in `TypeChecker` and `Dependency` - Added a `MdouleVariableDeclaration` DNode generation method - Removed `nodePool` - some references still remain however
deavmi stopped working 2023-12-08 16:09:52 +00:00
7 minutes 44 seconds
deavmi added spent time 2023-12-08 16:20:41 +00:00
5 minutes
deavmi started working 2023-12-08 16:20:42 +00:00
Author
Owner

Purpose

The purpose of this is to have each DNodeGenerator not rely on the static DNode[Statement] nodePool anymore but to rather have us provide a Pool/PoolManager to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)).

Todo

  • IPoolManager interface designed
  • PoolManager implementation
  • Usage within the dependency/core.d module
  • Remove old pooling system
    • Any traces of it in TypeChecker and Dependency
  • Added a MdouleVariableDeclaration DNode generation method
  • Removed nodePool - some references still remain however

Everything is now migrated over

> > ## Purpose > > > > The purpose of this is to have each `DNodeGenerator` not rely on the `static DNode[Statement] nodePool` anymore but to rather have us provide a `Pool`/`PoolManager` to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)). > > > > ## Todo > > > > - [x] `IPoolManager` interface designed > > - [x] `PoolManager` implementation > > - [x] Usage within the `dependency/core.d` module > > - [ ] Remove old pooling system > > * Any traces of it in `TypeChecker` and `Dependency` > > - Added a `MdouleVariableDeclaration` DNode generation method > - Removed `nodePool` - some references still remain however Everything is now migrated over
Author
Owner

Purpose

The purpose of this is to have each DNodeGenerator not rely on the static DNode[Statement] nodePool anymore but to rather have us provide a Pool/PoolManager to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)).

Todo

  • IPoolManager interface designed
  • PoolManager implementation
  • Usage within the dependency/core.d module
  • Remove old pooling system
    • Any traces of it in TypeChecker and Dependency

There were no traces in the TypeChecker, that was rather the clearFuncDefs() we were thinking about - which is a seperate issue - see #162

> ## Purpose > > The purpose of this is to have each `DNodeGenerator` not rely on the `static DNode[Statement] nodePool` anymore but to rather have us provide a `Pool`/`PoolManager` to each instance and they use that. This means we won't have to clear the static field anymore (which caused a bug in the past (if you wanted to do multiple compilation sessions)). > > ## Todo > > - [x] `IPoolManager` interface designed > - [x] `PoolManager` implementation > - [x] Usage within the `dependency/core.d` module > - [ ] Remove old pooling system > * Any traces of it in `TypeChecker` and `Dependency` There were no traces in the `TypeChecker`, that was rather the `clearFuncDefs()` we were thinking about - which is a seperate issue - see #162
Author
Owner

Unit tests pass

Unit tests pass ✅
Author
Owner

CI/CD passes

CI/CD passes ✅
deavmi stopped working 2023-12-08 16:29:47 +00:00
9 minutes 5 seconds
deavmi started working 2023-12-10 10:20:39 +00:00
Author
Owner

Documenting now...

Documenting now...
Author
Owner

Documenting now...

Done

> Documenting now... Done ✅
deavmi stopped working 2023-12-10 10:23:02 +00:00
2 minutes 23 seconds
deavmi removed the due date 2023-12-12 2023-12-29 17:49:46 +00:00
deavmi added the due date 2024-01-06 2023-12-29 17:49:56 +00:00
deavmi removed the due date 2024-01-06 2024-02-26 09:27:55 +00:00
deavmi added the due date 2024-03-31 2024-02-26 09:27:59 +00:00
Author
Owner

We must merge this tomorrow.

We must merge this tomorrow.
deavmi started working 2024-02-27 08:14:04 +00:00
Author
Owner

Need to upstream recent changes into this

Need to upstream recent changes into this
Author
Owner

Need to upstream recent changes into this

Done and CI/CD passes

> Need to upstream recent changes into this Done and CI/CD passes ✅
Author
Owner

Looks good to me, merging...

Looks good to me, merging...
Author
Owner

Merged

Merged
Author
Owner

CI/CD

Closing issue.

CI/CD ✅ Closing issue.
deavmi stopped working 2024-02-27 08:32:18 +00:00
18 minutes 14 seconds
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Total Time Spent: 5 hours
deavmi
5 hours
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

2024-03-31

Reference: tlang/tlang#161
No description provided.