Version 1.2.0
OPSIN is now available from Maven Central
Basic support for cylised carbohydrates e.g. alpha-D-glucopyranose
Basic support for systematic carbohydrate stems e.g. D-glycero-D-gluco-Heptose
Added heuristic for correcting esters with omitted spaces
Added support for xanthates/xanthic acid
Minor vocabulary improvements
Fixed a few minor bugs/limitations in the Cahn-Ingold-Prelog rules implementation and made more memory efficient
Many minor improvements and bug fixes

Version 1.1.0
Significant improvements to fused ring numbering code, specifically 3/4/5/7/8 member rings are no longer only allowed in chains of rings
Added support for outputting to StdInChI
Small improvements to fused ring building code
Improvements to heuristics for disambiguating what group is being referred to by a locant
Lower case indicated hydrogen is now recognised
Improvements to parsing speed
Many minor improvements and bug fixes

Version 1.0.0
Added native isomeric SMILES output
Improved command-line interface. The desired format i.e. CML/SMILES/InChI as well as options such as allowing radicals can now all be specified via flags
Debugging is now performed using log4j rather than by passing a verbose flag
Added traditional locants to carboxylic acids and alkanes e.g. beta-hydroxybutyric acid
Added support for cis/trans indicating the relative stereochemistry of two substituents on rings and fused rings sytems
Added support for stoichiometry ratios and mixture indicators
Added support for alpha/beta stereochemistry on steroids
Added support for the method for naming spiro systems described in the 1979 recommendations rule A-42
Added detailedFailureAnalysis option to detect the part of a chemical name that fails to parse
Added support for deoxy
Added open-chain saccharides
Improvements to CAS index name uninversion algorithm
Added support for isotopes into the program allowing deuterio/tritio
Added support for R/S stereochemistry indicated by a locant which is also used to indicate the point of substitution for a substituent
Many minor improvements and bug fixes

Version 0.9.0
Added transition metals/f-block elements and nobel gases
Added support for specifying the charge or oxidation number on elements e.g. aluminium(3+), iron(II)
Calculations based off a van Arkel diagram are now used to determine whether functional bonds to metals should be treated as ionic or covalent
Improved support for prefix functional replacement e.g. hydrazono/amido/imido/hydrazido/nitrido/pseudohalides can now be used for functional replacement on appropriate acids
Ortho/meta/para handling improved - can now only apply to six membered rings
Added support for methylenedioxy
Added support for simple bridge prefixes e.g. methano as in 2,3-methanoindene
Added support for perfluoro/perchloro/perbromo/periodo
Generalised alkane support to allow alkanes of lengths up to 9999 to be described without enumeration
Updated dependency on JNI-InChI to 0.7, hence InChI 1.03 is now used.
Improved algorithm for assigning unlocanted hydro terms
Improved heuristic for determing meaning of oxido
Improved charge balancing e.g. ionic substance of an implicit ratio 2:3 can now be handled rather than being represented as a net charged 1:1 mixture
Grammar is a bit more lenient of placement of stereochemistry and multipliers
Vocabulary improvements especially in the area of nucleosides and nucleotides
Esters of biochemical compounds e.g. triphosphates are now supported
Many minor improvements and bug fixes

Version 0.8.0
NameToStructureConfig can now be used to configure whether radicals e.g. ethyl are output or not.
Names like carbon tetrachloride are now supported
glycol ethers e.g. ethylene glycol ethyl ether are now supported
Prefix functional replacement support now includes halogens e.g. chlorophosphate
Added support for epoxy/epithio/episeleno/epitelluro
Added suport for hydrazides/fluorohydrins/chlorohydrins/bromohydrins/iodohydrins/cyanohydrins/acetals/ketals/hemiacetals/hemiketals/diketones/disulfones named using functional class nomenclature
Improvements to algorithm for assigning and finding atoms corresponding to element symbol locants
Added experimental right to left parser (ReverseParseRules.java)
Vocabulary improvements
Parsing is now even faster
Various bug fixes and name intepretation fixes

Version 0.7.0
Added full support for conjunctive nomenclature e.g. 1,3,5-benzenetriacetic acid
Added basic support for CAS names
Added trivial poly-noncarboxylic acids and more trivial carboxylic acids
Added support for spirobi/spiroter/dispiroter and the majority of spiro(ring-locant-ring) nomenclature
Indicators of the direction that a chemical rotates plane polarised light are now detected and ignored
Fixed many cases of trivial names being interpreted systematically by adding more trivial names and detecting such cases
Names such as oxalic bromide cyanide where a halide/pseudohalide replaces an oxygen are now supported
Amino acid ester named from the neutral amino acid are now supported e.g. glycine ethyl ester
Added more heteroatom replacement terms
Allowed creation of an OPSIN parse through NameToStructure.getOpsinParser()
Added support for dehydro - for unsaturating bonds
Improvements to element symbol locant assignment and retrieving appropriate atoms from locants like N2
OPSIN's SMILES parser now accept specification of number of hydrogens in cases other than chiral atoms
Mixtures specified by separating components by semicolonspace are now supported
Many internal improvements and bug fixes

Version 0.6.1
Counter ions are now duplicated such as to lead to if possible a neutral compound
In names like nitrous amide the atoms modified by the functional replacement can now be substituted
Allowed ~number~ for specifying superscripts
Vocabulary improvements
Added quinone suffix
Tetrahedral sulfur stereochemistry is now recognised
Bug fixes to fix incorrect interpretation of some names e.g. triphosgene is now unparseable rather than 3 x phosghene, phospho has different meanings depending on whether it used on an amino acid or another group etc.

Version 0.6.0
OPSIN is now a mavenised project consisting of two modules: core and inchi. Core does name -->CML, inchi depends on core and allows conversion to inchi
Instead of CML an OpsinResult can be returned which can yield information as to why a name was not interpretable
Added support for unlocanted R/S/E/Z stereochemistry. Removed limit on number of atoms that stereochemistry code can handle
Added support for polymers e.g. poly(ethylene)
Improvements in handling of multiplicative nomenclature
Improvements to fusion nomenclature handling: multiplied components and multi parent systems are now supported
Improved support for functional class nomenclature; space detection has been improved and support has been added for anhydride,oxide,oxime,hydrazone,semicarbazone,thiosemicarbazone,selenosemicarbazone,tellurosemicarbazone,imide
Support for the lambda convention
Locanted esters
Improvements in dearomatisation code
CML output changed to being CML-Lite compliant
Speed improvements
Support for greek letters e.g. as alpha or $a or α
Added more infixes
Added more suffixes
Vocabulary improvements
Systematic handling of amino acid nomenclature
Added support for perhydro
Support for ylium/uide
Support for locants like N-1 (instead of N1)
Fixed potential infinite loop in fused ring numbering
Made grammar more lenient in many places e.g. euphonic o, optional sqaure brackets
Sulph is now treated like sulf as in sulphuric acid
and many misc fixes and improvements

Version 0.5.3
Added support for amic, aldehydic, anilic, anilide, carboxanilide and amoyl suffixes
Added support for cyclic imides e.g. succinimide/succinimido
Added support for amide functional class
Support for locants such as N5 which means a nitrogen that is attached in some way to position 5. Locants of this type may also be used in ester formation.
Some improvements to functional replacement using prefixes e.g. thioethanoic acid now works
Disabled stereochemistry in molecules with over 300 atoms as a temporary fix to the problem in 0.52
Slight improvement in method for deciding which group detachable hydro prefixes apply to.
Minor vocabulary update

Version 0.5.2
Outputting directly to InChI is now supported using the separately available nameToInchi jar (an OPSIN jar is expected in the same location as the nameToInchi jar)
Fused rings with any number of rings in a chain or formed entirely of 6 membered rings can now be numbered
Added support for E/Z/R/S where locants are given. Unlocanted cases will be dealt with in a subsequent release. In very large molecules a lack of memory may be encountered, this will be resolved in a subsequent release
Some Infixes are now supported e.g. ethanthioic acid
All spiro systems with Von Baeyer brackets are now supported e.g. dispiro[4.2.4.2]tetradecane
Vocabulary increase (especially: terpenes, ingorganic acids, fused ring components)
Fixed some problems with components with both acylic and cyclic sections e.g. trityl
Improved locant assignments e.g. 2-furyl is now also fur-2-yl
Speed improvements
Removed dependence on Nux/Saxon
Misc minor fixes

Version 0.5.1
Huge reduction in OPSIN initialisation time (typical ~7 seconds -->800ms)
Allowed thio/seleno/telluro as divalent linkers and for functional replacement when used as prefixes. Peroxy can now be used for functional replacement
Better support for semi-trivally named hydrocarbon fused rings e.g. tetracene
Better handling of carbonic acid derivatives
Improvements to locant assignment
Support for names like triethyltetramine and triethylene glycol
Misc other fixes to prevent OPSIN generating the wrong structure for certain types of names

Version 0.5
Too many changes to list

Version 0.1
Initial release