Issue610

Title open list refactoring
Priority meta Status chatting
Superseder Nosy List florian, jendrik, malte
Assigned To Keywords
Optional summary
* TODO Reduce code duplication in open list factories

- There is a large amount of boilerplate in the open list factories;
  not just in the code, but also in the class definition.

- Perhaps we can define a templated base class that contains the
  common stuff?

* TODO Introduce namespaces for open list factories (issue715)

* TODO Introduce cmake plugins for open list factories (issue715)

* TODO Reconsider which code lives where, also w.r.t. search engines

- For most classes, in principle nothing needs to be in the header
  file, since even the factories are in most cases only used by the
  plug-in. But there are some external users of certain open list
  factories, which currently mostly go via search_common.cc. The way
  this code is split up should be reconsidered, perhaps with the goal
  of minimizing the number of plug-in dependencies. For example, we
  should not need to pay for the dependencies of A* if we don't want
  to compile in A*. One appealing way to change this is to move
  convenience plug-ins like A* out of eager_search.cc, but this should
  probably only be done once the search engines have been moved to
  their own directory to avoid proliferation of files in the main
  directory.

* TODO Check the following changeset diff:

hg diff -c 05069b5d0c35 | less

then search for TODO

* TODO Rename StandardScalarOpenList

"Standard" doesn't say much, and we've moved away from saying "Scalar"
everywhere. Perhaps something like TreeBucketOpenList matches the
implementation. To make this painless for users, we can keep the plugin name
("single"), which is rather generic.

Created on 2015-12-09.12:31:26 by malte, last changed by jendrik.

Summary
* TODO Reduce code duplication in open list factories

- There is a large amount of boilerplate in the open list factories;
  not just in the code, but also in the class definition.

- Perhaps we can define a templated base class that contains the
  common stuff?

* TODO Introduce namespaces for open list factories (issue715)

* TODO Introduce cmake plugins for open list factories (issue715)

* TODO Reconsider which code lives where, also w.r.t. search engines

- For most classes, in principle nothing needs to be in the header
  file, since even the factories are in most cases only used by the
  plug-in. But there are some external users of certain open list
  factories, which currently mostly go via search_common.cc. The way
  this code is split up should be reconsidered, perhaps with the goal
  of minimizing the number of plug-in dependencies. For example, we
  should not need to pay for the dependencies of A* if we don't want
  to compile in A*. One appealing way to change this is to move
  convenience plug-ins like A* out of eager_search.cc, but this should
  probably only be done once the search engines have been moved to
  their own directory to avoid proliferation of files in the main
  directory.

* TODO Check the following changeset diff:

hg diff -c 05069b5d0c35 | less

then search for TODO

* TODO Rename StandardScalarOpenList

"Standard" doesn't say much, and we've moved away from saying "Scalar"
everywhere. Perhaps something like TreeBucketOpenList matches the
implementation. To make this painless for users, we can keep the plugin name
("single"), which is rather generic.
Messages
msg6206 (view) Author: jendrik Date: 2017-04-24.15:51:07
cross-reference issue715
msg4919 (view) Author: malte Date: 2015-12-09.12:35:34
Add a TODO about renaming StandardScalarOpenList.
msg4917 (view) Author: malte Date: 2015-12-09.12:31:25
This issue collects various refactoring TODOs for the open lists.

The initial list is taken from issue481:

* TODO Reduce code duplication in open list factories

- There is a large amount of boilerplate in the open list factories;
  not just in the code, but also in the class definition.

- Perhaps we can define a templated base class that contains the
  common stuff?

* TODO Introduce namespaces for open list factories

* TODO Introduce cmake plugins for open list factories

* TODO Reconsider which code lives where, also w.r.t. search engines

- For most classes, in principle nothing needs to be in the header
  file, since even the factories are in most cases only used by the
  plug-in. But there are some external users of certain open list
  factories, which currently mostly go via search_common.cc. The way
  this code is split up should be reconsidered, perhaps with the goal
  of minimizing the number of plug-in dependencies. For example, we
  should not need to pay for the dependencies of A* if we don't want
  to compile in A*. One appealing way to change this is to move
  convenience plug-ins like A* out of eager_search.cc, but this should
  probably only be done once the search engines have been moved to
  their own directory to avoid proliferation of files in the main
  directory.

* TODO search for TODOs in diff and convert them to issues

hg diff -c 05069b5d0c35 | less

then search for TODO
History
Date User Action Args
2017-04-24 15:51:07jendriksetmessages: + msg6206
summary: * TODO Reduce code duplication in open list factories - There is a large amount of boilerplate in the open list factories; not just in the code, but also in the class definition. - Perhaps we can define a templated base class that contains the common stuff? * TODO Introduce namespaces for open list factories * TODO Introduce cmake plugins for open list factories * TODO Reconsider which code lives where, also w.r.t. search engines - For most classes, in principle nothing needs to be in the header file, since even the factories are in most cases only used by the plug-in. But there are some external users of certain open list factories, which currently mostly go via search_common.cc. The way this code is split up should be reconsidered, perhaps with the goal of minimizing the number of plug-in dependencies. For example, we should not need to pay for the dependencies of A* if we don't want to compile in A*. One appealing way to change this is to move convenience plug-ins like A* out of eager_search.cc, but this should probably only be done once the search engines have been moved to their own directory to avoid proliferation of files in the main directory. * TODO Check the following changeset diff: hg diff -c 05069b5d0c35 | less then search for TODO * TODO Rename StandardScalarOpenList "Standard" doesn't say much, and we've moved away from saying "Scalar" everywhere. Perhaps something like TreeBucketOpenList matches the implementation. To make this painless for users, we can keep the plugin name ("single"), which is rather generic. -> * TODO Reduce code duplication in open list factories - There is a large amount of boilerplate in the open list factories; not just in the code, but also in the class definition. - Perhaps we can define a templated base class that contains the common stuff? * TODO Introduce namespaces for open list factories (issue715) * TODO Introduce cmake plugins for open list factories (issue715) * TODO Reconsider which code lives where, also w.r.t. search engines - For most classes, in principle nothing needs to be in the header file, since even the factories are in most cases only used by the plug-in. But there are some external users of certain open list factories, which currently mostly go via search_common.cc. The way this code is split up should be reconsidered, perhaps with the goal of minimizing the number of plug-in dependencies. For example, we should not need to pay for the dependencies of A* if we don't want to compile in A*. One appealing way to change this is to move convenience plug-ins like A* out of eager_search.cc, but this should probably only be done once the search engines have been moved to their own directory to avoid proliferation of files in the main directory. * TODO Check the following changeset diff: hg diff -c 05069b5d0c35 | less then search for TODO * TODO Rename StandardScalarOpenList "Standard" doesn't say much, and we've moved away from saying "Scalar" everywhere. Perhaps something like TreeBucketOpenList matches the implementation. To make this painless for users, we can keep the plugin name ("single"), which is rather generic.
2015-12-09 13:20:46maltesetsummary: * TODO Reduce code duplication in open list factories - There is a large amount of boilerplate in the open list factories; not just in the code, but also in the class definition. - Perhaps we can define a templated base class that contains the common stuff? * TODO Introduce namespaces for open list factories * TODO Introduce cmake plugins for open list factories * TODO Reconsider which code lives where, also w.r.t. search engines - For most classes, in principle nothing needs to be in the header file, since even the factories are in most cases only used by the plug-in. But there are some external users of certain open list factories, which currently mostly go via search_common.cc. The way this code is split up should be reconsidered, perhaps with the goal of minimizing the number of plug-in dependencies. For example, we should not need to pay for the dependencies of A* if we don't want to compile in A*. One appealing way to change this is to move convenience plug-ins like A* out of eager_search.cc, but this should probably only be done once the search engines have been moved to their own directory to avoid proliferation of files in the main directory. * TODO search for TODOs in diff and convert them to issues hg diff -c 05069b5d0c35 | less then search for TODO -> * TODO Reduce code duplication in open list factories - There is a large amount of boilerplate in the open list factories; not just in the code, but also in the class definition. - Perhaps we can define a templated base class that contains the common stuff? * TODO Introduce namespaces for open list factories * TODO Introduce cmake plugins for open list factories * TODO Reconsider which code lives where, also w.r.t. search engines - For most classes, in principle nothing needs to be in the header file, since even the factories are in most cases only used by the plug-in. But there are some external users of certain open list factories, which currently mostly go via search_common.cc. The way this code is split up should be reconsidered, perhaps with the goal of minimizing the number of plug-in dependencies. For example, we should not need to pay for the dependencies of A* if we don't want to compile in A*. One appealing way to change this is to move convenience plug-ins like A* out of eager_search.cc, but this should probably only be done once the search engines have been moved to their own directory to avoid proliferation of files in the main directory. * TODO Check the following changeset diff: hg diff -c 05069b5d0c35 | less then search for TODO * TODO Rename StandardScalarOpenList "Standard" doesn't say much, and we've moved away from saying "Scalar" everywhere. Perhaps something like TreeBucketOpenList matches the implementation. To make this painless for users, we can keep the plugin name ("single"), which is rather generic.
2015-12-09 12:35:34maltesetmessages: + msg4919
2015-12-09 12:33:53floriansetnosy: + florian
2015-12-09 12:32:18jendriksetnosy: + jendrik
2015-12-09 12:31:26maltecreate