1990s United Kingdom local government reform and Game Oriented Assembly Lisp: Difference between pages

(Difference between pages)
Content deleted Content added
 
rv unexplained deletion by 192.103.152.52
 
Line 1:
'''Game Oriented Assembly Lisp''' (or '''GOAL''') is a computer game programming language developed by [[Andy Gavin]] and the [[Jak and Daxter]] team at [[Naughty Dog]]. It was written using [[Allegro Common Lisp]] and used in the development of the entire [[Jak and Daxter]] series of games.
The structure of [[local government in the United Kingdom]] underwent large changes in the [[1990s]]. The system of two-tier local government introduced in the [[1970s]] by the [[Local Government Act 1972]] and the [[Local Government (Scotland) Act 1973]] was abolished in [[Scotland]] and [[Wales]] on [[April 1]], [[1996]], and replaced with [[unitary authorities]]. In [[England]], some areas remained two-tier but many unitary authories were created.
 
Syntactically GOAL resembles [[Scheme (programming language)|Scheme]], though with many idiosyncratic features inspired by other languages such as classes, inheritance, and virtual functions. An example of what GOAL code looks like can be found at [http://lists.midnightryder.com/pipermail/sweng-gamedev-midnightryder.com/2005-August/003804.html]. GOAL encourages an [[imperative programming]] style: programs tend to be comprised of sequence of events to be executed rather than the [[functional programming]] style of functions to be evaluated recursively. This is a diversion from [[Scheme (programming language)|Scheme]], which allows such [[side-effect (computer science)|side-effects]] but does not encourage imperative style.
==Background==
 
Like many modern implementations of Common [[Lisp programming language|Lisp]], GOAL does not run in an interpreter, but instead is compiled directly into [[PlayStation 2]] machine code for execution. It offers limited facilities for [[Garbage collection (computer science)|garbage collection]], relying extensively on runtime support. It offers dynamic memory allocation primitives designed to make it well-suited to running in constant memory on a video game console. GOAL has extensive support for [[Inline expansion|inlined]] assembly code using a special <code>rlet</code> form[http://lists.midnightryder.com/pipermail/sweng-gamedev-midnightryder.com/2005-August/003804.html], allowing programmers to freely mix assembly and higher-level constructs within the same function.
Prior to the 1970s, the UK had had a mixed system of local government, with some
areas being covered by a [[county council]] and a more local district council, while large towns had only a single tier of authority (in [[England and Wales]] these were termed [[county borough]]s, and in [[Scotland]] 'counties of cities'). The Acts abolished the existing county boroughs or counties of cities, and created a uniform two-tier system of government with regions or counties, and districts.
 
The GOAL compiler is implemented in [[Allegro Common Lisp]]. It supports a long term compiling listener session which gives the compiler knowledge about the state of the compiled and therefore running program, including the symbol table. This, in addition to dynamic linking, allows a function to be edited, recompiled, uploaded, and inserted into a running game without having to restart. The process is similar to the "edit and continue" feature offered by some [[C++]] compilers, but allows the programmer to replace arbitrary amounts of code (even up to entire object files), and does not interrupt the running game with the debugger. This feature was used to implement code as well as level streaming in the [[Jak and Daxter]] games.
[[Image:EnglandSubdivisions1986.png|thumb|Counties and unitary authorities of England from [[1986]] to [[1995]].]]
 
GOAL's first use was for the original [[Jak and Daxter]] PS2 game; the predecessor language, GOOL, was also developed by Andy Gavin for [[Crash Bandicoot (video game)|Crash Bandicoot]].
In [[1986]], [[Margaret Thatcher]]'s government abolished the county councils of the six [[metropolitan counties]] that had been created in 1974, along with the [[Greater London Council]], effectively creating 68 new 'county boroughs', or [[unitary authority|unitary authorities]].
 
==External links==
In [[1990]], Thatcher's had government introduced the [[Poll Tax]], a new way of funding local councils based on a fixed per-head fee. This proved very unpopular, and led to [[Poll tax riot|riots]]. Eventually, Thatcher was ousted by her own party, and the new [[Conservative Party (UK)|Conservative]] leader and [[Prime Minister of the United Kingdom|Prime Minister]], [[John Major]], was pledged to abolish the Poll Tax.
* http://www.franz.com/success/customer_apps/animation_graphics/naughtydog.lhtml &mdash; Franz Inc. success story
* http://bc.tech.coop/blog/060118.html &mdash; Page about LISP developments by [[Paul Graham]] and [[Naughty Dog]]
* http://www.gamasutra.com/features/gdcarchive/2003/White_Stephen.ppt &mdash; (Powerpoint) ''Jak & Daxter: The Precursor Legacy'', development overview, lessons learned, very interesting
* http://www.gamasutra.com/features/gdcarchive/2003/Denman_Stu.ppt &mdash; (Powerpoint) ''Highly detalied continuous worlds'', about the streaming world loader
 
[[Category:Lisp programming language family]]
Legislation for the [[Council Tax]] was introduced and passed in the [[1991]]/[[1992]] session. Also at this time (opponents have said that it was as as cover), the government took the opportunity to review the structure of local government throughout [[Great Britain]].
[[Category:Functional languages]]
[[Category:Object-oriented programming languages]]
 
{{videogame-software-stub}}
==Scotland==
The previous system in [[Scotland]] had been the [[regions of Scotland|regions and districts]]. These were quite unbalanced in terms of population &mdash; the [[Strathclyde]] region had nineteen districts and over two million people, whereas the [[Scottish Borders]] region had four districts and only 100,000 people.
 
The [[Local Government etc. (Scotland) Act 1994]] established 29 new '[[council areas of Scotland|council areas]]', and retained the three [[Island Council]]s. Variance in population was much less in the council areas, with just over half a million in the largest authority, [[City of Glasgow]], compared to 50,000 in the smallest, [[Clackmannanshire]]. These are however outliers, and only six are outside the range 75,000 to 250,000.
 
In some cases the names of [[traditional counties of Scotland|historic counties]] were revived, often with vastly modified borders.
 
==Wales==
In [[Wales]] the existing system was replaced with a new unitary system, of [[subdivisions of Wales|counties and county boroughs]], the only difference between a Welsh county and county borough now being the name.
 
The [[1974]] reform in Wales had abandoned use of the names of the [[traditional counties of Wales|traditional counties of Wales]]. This was partially reversed in [[1996]], with [[Carmarthenshire]], [[Ceredigion|Cardiganshire]], [[Denbighshire]], [[Flintshire]], [[Monmouthshire]] and [[Pembrokeshire]] all reappearing on maps, although not necessarily with the historic borders.
 
The pre-1996 counties remained in existence (with modifications) as the [[preserved counties of Wales]] used for purposes such as [[Lord Lieutenant|Lieutenancy]].
 
==England==
<div style="float:right">
[[Image:EnglandSubdivisions1996.png|thumb|none|[[April 1]], [[1996]] to [[April 1]], [[1997]]]]<br/>
[[Image:EnglandSubdivisions1997.png|thumb|none|[[April 1]], [[1997]] to [[April 1]], [[1998]]]]<br/>
[[Image:EnglandSubdivisions1998.png|thumb|none|[[April 1]], [[1998]] onwards]]<br/>
</div>
 
The process of reform in [[England]] was greatly different to those in [[Scotland]] or [[Wales]]. [[Parliament of the United Kingdom|Parliament]] passed the [[Local Government Act 1992|Local Government Act]] in [[1992]], allowing the [[Secretary of State for the Environment|Secretary of State]] to order the [[Boundary Commission]] to undertake 'structural reviews' in specified areas.
 
The Commission, chaired by [[John Banham]], started the reviews in July [[1992]]. The process was originally supposed to be take some years, with the shire counties being considered in five waves, or 'tranches', and it was hoped that the reforms would come into effect from [[1994]] (the first batch) to [[1998]] (the fifth batch). However, the process took longer than expected. The first of tranche of reviews, covering [[County of Avon|Avon]], [[County of Cleveland|Cleveland]], [[County Durham]], [[Gloucestershire]], the [[Isle of Wight]], [[Humberside]], [[Lincolnshire]], [[North Yorkshire]] and [[Somerset]] was nearly done by the end of [[1993]].
 
In November 1993, the [[Secretary of State for the Environment]], [[John Gummer]] greatly accelerated the program of work. He directed the Commission to start reviews of all remaining shire counties the next month, and that they should be finished by the end of [[1994]]. He also revised the guidance given, making it clear that wholly unitary solutions should be preferred, particularly ones smaller than existing counties but larger than existing districts.
 
[[Lancashire]] and [[Derbyshire]] County Councils had taken the revised guidance to the [[High Court]], seeking a [[judicial review]] that it was illegal. On [[January 28]], the High Court ruled in their favour, implying that that the Commission should consider retaining the status quo, either in part or wholly, as an option as well.
 
The first proposal was the quite uncontroversial one to make [[Isle of Wight]] a single unitary authority. The island had been split quite artificially between [[South Wight]] and [[Medina (borough)|Medina]] boroughs, with a Wight County Council, since [[1974]].
 
From the first tranche, the commission recommended that [[County of Avon|Avon]], [[County of Cleveland|Cleveland]] and [[Humberside]] should be abolished and broken up into four unitary authorities each. It also recommended that the rump [[Somerset]] be broken up into three unitary authorities (overriden by John Gimmer). It suggested that North Yorkshire be split into three unitary authorities - one for [[York]], and two others called [[West Riding of Yorkshire]] and [[North Riding of Yorkshire]]. The latter two were rejected, and so an expanded York became a unitary authority, with the rest of North Yorkshire remaining two-tier. It recommended no change in [[Lincolnshire]] and [[Gloucestershire]].
 
From the second and later tranches, it recommended [[Buckinghamshire]], [[Bedfordshire]] and [[Berkshire]] county councils to be abolished. Elsewhere, it operated rather inconsistently, with large districts sometimes being recommended for unitary status, but sometimes not. In early [[1995]], soon after the report had been delivered, John Banham resigned as head of the Commission.
 
The government considered the final report of the Banham Commission. Avon, Cleveland and Humberside were creations of the [[1974]] reform and were unable to stop their abolition. However, in Buckinghamshire and Bedfordshire it did not accept the recommendations of the Commmission, which was for an entirely unitary structure, and decided to only make [[Luton]] and [[Milton Keynes (borough)|Milton Keynes]] unitary, with the rest of those counties retaining a two-tier structure. The proposal to abolish Berkshire County Council was accepted, however. This had been strongly supported by the County Council earlier, though as implementation drew closer, and the political composition of the Council altered, it changed its mind.
 
In many counties that were to remain unchanged, the government accepted the Report, with reservations about specific districts. The Environment Secretary referred the cases of twenty-one districts to the new commission, under [[David Cooksey]]. These were [[Basildon (district)|Basildon]], [[Blackburn with Darwen|Blackburn]], [[Blackpool]], [[Broxtowe]], [[Dartford]], [[Exeter]], [[Gedling]], [[Gillingham]], [[Gloucester]], [[Gravesham]], [[Halton (borough)|Halton]], [[Huntingdonshire]], [[Northampton]], [[Norwich]], [[City of Peterborough|Peterborough]], [[Rochester upon Medway]], [[Rushcliffe]], [[Spelthorne]], [[Thurrock]], [[Warrington]], and [[Telford and Wrekin|the Wrekin]]. About half of these were accepted by the Commission, and these changes were were implemented in [[1998]].
 
===Timetable===
 
On [[April 1]], [[1995]], the [[Isle of Wight]] became a single unitary authority. It had previously had a two-tier structure with an Isle of Wight County Council; and a [[Medina, England|Medina]] Borough Council and a [[South Wight]] Borough Council. Also on this day, two small areas were ceded from [[Surrey]] and [[Buckinghamshire]] to [[Berkshire]], giving it a border with [[Greater London]].
 
On [[April 1]], [[1996]], the unpopular counties of [[County of Avon|Avon]], [[Humberside]] and [[Cleveland, England|Cleveland]] were abolished and their districts turned into unitary authorities. Avon became [[Bath and North East Somerset]], [[North Somerset]], [[South Gloucestershire]] and [[Bristol]]. Cleveland's districts merely became unitary authorities directly, without any boundary changes. The part of [[Humberside]] north of the [[River Humber]] and historically part of [[Yorkshire]] became part of the new [[East Riding of Yorkshire]], apart from [[Kingston upon Hull|Hull]], which constituted a unitary authority itself. In the Lincolnshire part of Humberside, two new unitary authorities, [[North Lincolnshire]] and [[North East Lincolnshire]], were formed. Also at this time, the [[York|City of York]] was expanded and separated from [[North Yorkshire]].
 
On [[April 1]], [[1997]], the districts of [[Bournemouth]], [[Darlington]], [[Derby, England|Derby]], [[Leicester]], [[Luton]], [[Milton Keynes (borough)|Milton Keynes]], [[Poole]], [[Portsmouth]], [[Rutland]] and [[Southampton]] became unitary authorities. Also, the districts of [[Brighton]] and [[Hove, England|Hove]] were merged to form the new unitary authority of [[Brighton and Hove]].
 
On [[April 1]], [[1998]], [[Blackpool]], [[Blackburn with Darwen]], [[Halton (borough)|Halton]], [[Medway]], [[Nottingham]], [[City of Peterborough|Peterborough]], [[Plymouth]], [[Swindon (borough)|Swindon]], [[Stoke-on-Trent]], [[Southend-on-Sea]], [[Telford and Wrekin]], [[Torbay]], [[Thurrock]] and [[Warrington]] became unitary authorities. Also, [[Hereford and Worcester]] was abolished and replaced by the unitary authority of [[Herefordshire]] and the shire county of [[Worcestershire]]. [[Berkshire]] was split into six unitary authorities, but not formally abolished.
 
===Impact===
 
In [[County of Avon|Avon]] and [[Humberside]], which were being abolished, the successor unitary authorities were mergers of existing [[Districts of England|districts]]. Apart from these, nearly all the others were created using existing [[Districts of England|district]] boundaries, which had been set in [[1974]]. There was only one expansion ([[York]]) and two mergers - [[Brighton]] and [[Hove]] into [[Brighton and Hove]]), and [[Rochester, Kent|Rochester]] and [[Gillingham, Kent|Gillingham]] into [[Medway]].
 
Some quite large districts that had been historic county boroughs were not granted unitary status. The largest of these was [[Northampton]], with a population of about 200,000.
 
The local government reform did not affect [[British Police|police force areas]], or fire and rescue service areas.
 
The [[ceremonial counties of England|ceremonial counties]] were also affected by this reform. Avon, Humberside and Cleveland were abolished for ceremonial purposes. In Avon, the parts were allocated to their original [[Somerset]] and [[Gloucestershire]], with [[Bristol]] being restored as a ceremonial county in its own right. Cleveland was simply partitioned between [[County Durham]] and [[North Yorkshire]]. Humberside was split between [[Lincolnshire]] and the new ceremonial [[East Riding of Yorkshire]] (including Hull). [[Herefordshire]], [[Rutland]], and [[Worcestershire]] were also restored as ceremonial counties.
 
==External links==
*[http://www.psa.ac.uk/cps/1996/stok.pdf The experience in West Sussex] - [[Portable Document Format|PDF]]