Iterative learning control is a technique especially developed for application to processes which are required to repeat the same operation over a finite duration. The exact sequence of operation is that the task is completed, the process is reset and then the operation is repeated. Applications are widespread among many industries, e.g. a gantry robot which is required to place items on a conveyor under synchronization as part of a food manufacturing process. In effect, iterative learning control exploits the fact that once a single execution of the task is complete then the input control action and output response produced are available to update the control input for the next trial and thereby sequentially improve performance. Moreover, it may be possible to undertake the required computations during the time between completing one trial and the start of the next. This paper gives an overview of some very significant recent progress in this general area, including results from experimental benchmarking, and also some areas for on-going/future research are outlined.