]> Kevux Git Server - fll/commit
Progress: Massive, but incomplete, refactor while originally focusing on Featureless...
authorKevin Day <kevin@kevux.org>
Wed, 1 Mar 2023 06:11:18 +0000 (00:11 -0600)
committerKevin Day <kevin@kevux.org>
Wed, 1 Mar 2023 06:11:18 +0000 (00:11 -0600)
commit33d3beb81959f27e2062202418e0c0af9167a87a
tree2b55130295b2a92c297922e50ed9dbb913992646
parentc3e5ece4654283486a86c9296cfb0fd4b7be7e95
Progress: Massive, but incomplete, refactor while originally focusing on Featureless Make.

Working on Featureless Make led to a need to refactor the directory recursion logic.
This led to me finally getting around to what I knew that I would eventually do.
Move the status returns into the state variable and use void returns.

I have had and continue to have mixed feelings about this.
This should, overall, be better long term for allowing more flexibility and fine-tuned control outside the project.
The switch to void returns when having a state variable is done to reduce complexity and confusion over which "status" variable is the correct one.

I would not that I also decided to move the "status" variable onto the state.
I was originally very undecided whether I should do this and had previously opted to keep the "status" and "state" separate.
Making more complicated projects has proven to me that it will be more maintainable just putting the status in the state.

These changes have a cascading effect on most of the project and its programs.
I got most of the projects done but I did not get around to fixing/updating the programs.

As always, with changes this big, look out for regressions and stupid simple mistakes.
The unit tests, once updated, will help find these problems.
The FSS and IKI processing code, however, need more unit tests to better catch problems.

These changes result in having the interrupt handler made more readily available.
Follow up changes will be needed to add more interrupt checks where long running or variable length loops are used.

The passing of "state" also reduces the number of times "f_state_t status" is needed and should reduce memory footprint to some degree.
This has a runtime costs where now in all of these cases a pointer must be resolved to get to the status.
This is to be treated as the cost of the newly provided flexibility.

There are some related file structure changes.

The recursion code has had a lot of redundancy removed.
I did not have a chance to properly review the code.
Manual testing on directory recursion operations like clone and copy will need to be performed.
172 files changed:
build/level_0/settings
build/monolithic/settings
build/stand_alone/fake.settings
level_0/f_account/c/account/accounts.h
level_0/f_console/c/console.c
level_0/f_console/c/console.h
level_0/f_console/c/console/common.h
level_0/f_directory/c/directory.c
level_0/f_directory/c/directory/common.h
level_0/f_directory/c/directory/private-type.c [new file with mode: 0644]
level_0/f_directory/c/directory/private-type.h [new file with mode: 0644]
level_0/f_directory/c/directory/type.c [new file with mode: 0644]
level_0/f_directory/c/directory/type.h
level_0/f_directory/data/build/settings
level_0/f_directory/data/build/settings-mocks
level_0/f_file/c/file.h
level_0/f_file/c/file/common.h
level_0/f_file/c/private-file.h
level_0/f_fss/c/fss.c
level_0/f_fss/c/fss.h
level_0/f_fss/c/fss/named.h
level_0/f_fss/c/fss/nest.h
level_0/f_fss/c/fss/set.h
level_0/f_fss/c/private-fss.c
level_0/f_iki/c/iki.c
level_0/f_iki/c/iki.h
level_0/f_iki/c/iki/data.h
level_0/f_limit/c/limit/set.h
level_0/f_limit/c/limit/value.h
level_0/f_string/c/string/dynamic.h
level_0/f_string/c/string/map_multis.h
level_0/f_string/c/string/map_multiss.h
level_0/f_string/c/string/maps.h
level_0/f_string/c/string/mapss.h
level_0/f_string/c/string/quantitys.h
level_0/f_string/c/string/quantityss.h
level_0/f_string/c/string/ranges.h
level_0/f_string/c/string/rangess.h
level_0/f_string/c/string/triples.h
level_0/f_string/c/string/tripless.h
level_0/f_thread/c/thread.c
level_0/f_thread/c/thread.h
level_0/f_type/c/type.h
level_0/f_type_array/c/type_array/array_length.h
level_0/f_type_array/c/type_array/cell.h
level_0/f_type_array/c/type_array/fll_id.h
level_0/f_type_array/c/type_array/int128.h
level_0/f_type_array/c/type_array/int16.h
level_0/f_type_array/c/type_array/int32.h
level_0/f_type_array/c/type_array/int64.h
level_0/f_type_array/c/type_array/int8.h
level_0/f_type_array/c/type_array/state.h
level_0/f_type_array/c/type_array/status.h
level_0/f_type_array/c/type_array/uint128.h
level_0/f_type_array/c/type_array/uint16.h
level_0/f_type_array/c/type_array/uint32.h
level_0/f_type_array/c/type_array/uint64.h
level_0/f_type_array/c/type_array/uint8.h
level_0/f_utf/c/utf/dynamic.h
level_0/f_utf/c/utf/map_multis.h
level_0/f_utf/c/utf/map_multiss.h
level_0/f_utf/c/utf/maps.h
level_0/f_utf/c/utf/mapss.h
level_0/f_utf/c/utf/triples.h
level_0/f_utf/c/utf/tripless.h
level_1/fl_directory/c/directory.c
level_1/fl_directory/c/directory.h
level_1/fl_directory/c/directory/common.h
level_1/fl_directory/c/private-directory.c
level_1/fl_directory/c/private-directory.h
level_1/fl_fss/c/fss/basic.c
level_1/fl_fss/c/fss/basic.h
level_1/fl_fss/c/fss/basic_list.c
level_1/fl_fss/c/fss/basic_list.h
level_1/fl_fss/c/fss/embedded_list.c
level_1/fl_fss/c/fss/embedded_list.h
level_1/fl_fss/c/fss/extended.c
level_1/fl_fss/c/fss/extended.h
level_1/fl_fss/c/fss/extended_list.c
level_1/fl_fss/c/fss/extended_list.h
level_1/fl_fss/c/fss/macro.h [deleted file]
level_1/fl_fss/c/private-fss.c
level_1/fl_fss/c/private-fss.h
level_1/fl_iki/c/iki.c
level_1/fl_iki/c/iki.h
level_2/fll_error/c/error.c
level_2/fll_file/c/file.c
level_2/fll_file/c/file.h
level_2/fll_file/c/private-file.c
level_2/fll_fss/c/fss/basic.c
level_2/fll_fss/c/fss/basic.h
level_2/fll_fss/c/fss/basic_list.c
level_2/fll_fss/c/fss/basic_list.h
level_2/fll_fss/c/fss/embedded_list.c
level_2/fll_fss/c/fss/embedded_list.h
level_2/fll_fss/c/fss/extended.c
level_2/fll_fss/c/fss/extended.h
level_2/fll_fss/c/fss/extended_list.c
level_2/fll_fss/c/fss/extended_list.h
level_2/fll_fss/c/fss/payload.c
level_2/fll_fss/c/fss/payload.h
level_3/byte_dump/c/byte_dump.h
level_3/byte_dump/c/common.c
level_3/byte_dump/c/common.h
level_3/control/c/common.c
level_3/control/c/common.h
level_3/controller/c/common.c
level_3/controller/c/common.h
level_3/controller/c/rule/private-rule.c
level_3/controller/c/rule/private-rule.h
level_3/fake/c/main/build.c
level_3/fake/c/main/build/print-verbose.h
level_3/fake/c/main/clean.c
level_3/fake/c/main/clean/print.c [deleted file]
level_3/fake/c/main/clean/print.h [deleted file]
level_3/fake/c/main/common.c
level_3/fake/c/main/common.h
level_3/fake/c/main/common/type.h
level_3/fake/c/main/fake.c
level_3/fake/c/main/fake.h
level_3/fake/c/main/make.c
level_3/fake/c/main/make/operate.c
level_3/fake/c/main/make/operate_block.c
level_3/fake/c/main/make/operate_process_type.c
level_3/fake/c/main/print-error.c
level_3/fake/c/main/print-error.h
level_3/fake/c/main/print-verbose.c [new file with mode: 0644]
level_3/fake/c/main/print-verbose.h [new file with mode: 0644]
level_3/fake/c/main/print-warning.c
level_3/fake/c/main/print-warning.h
level_3/fake/c/main/print.c
level_3/fake/c/main/print.h
level_3/fake/c/main/skeleton.c
level_3/fake/data/build/settings
level_3/firewall/c/common.c
level_3/firewall/c/common.h
level_3/fss_basic_list_read/c/common.c
level_3/fss_basic_list_read/c/common.h
level_3/fss_basic_read/c/common.c
level_3/fss_basic_read/c/common.h
level_3/fss_embedded_list_read/c/common.c
level_3/fss_embedded_list_read/c/common.h
level_3/fss_extended_list_read/c/common.c
level_3/fss_extended_list_read/c/common.h
level_3/fss_extended_read/c/common.c
level_3/fss_extended_read/c/common.h
level_3/fss_identify/c/common.c
level_3/fss_identify/c/common.h
level_3/fss_payload_read/c/common.c
level_3/fss_payload_read/c/common.h
level_3/fss_write/c/basic/fss_write.c
level_3/fss_write/c/basic/main.c
level_3/fss_write/c/main/common-type.h
level_3/fss_write/c/main/common.c
level_3/fss_write/c/main/common.h
level_3/fss_write/c/main/main.c
level_3/fss_write/c/main/main.h
level_3/fss_write/c/payload/fss_write.c
level_3/fss_write/c/payload/fss_write.h
level_3/iki_read/c/main/common-type.h
level_3/iki_read/c/main/common.c
level_3/iki_read/c/main/common.h
level_3/iki_read/c/main/private-read.c
level_3/iki_write/c/main/common-type.h
level_3/iki_write/c/main/common.c
level_3/iki_write/c/main/common.h
level_3/status_code/c/main/common-type.h
level_3/status_code/c/main/common.c
level_3/status_code/c/main/common.h
level_3/utf8/c/main/common-type.h
level_3/utf8/c/main/common.c
level_3/utf8/c/main/common.h