Repository: ccurtsinger/stabilizer Branch: master Commit: f1aefc1a3799 Files: 1352 Total size: 105.8 MB Directory structure: gitextract_zpfbl9ua/ ├── .gitignore ├── .hgignore ├── LICENSE ├── Makefile ├── README.md ├── common.mk ├── pass/ │ ├── IntrinsicLibcalls.h │ ├── LowerIntrinsics.cpp │ ├── Makefile │ └── Stabilizer.cpp ├── platforms/ │ ├── Darwin.i386.mk │ ├── Darwin.x86_64.mk │ ├── Linux.i386.mk │ ├── Linux.i686.mk │ ├── Linux.ppc.mk │ └── Linux.x86_64.mk ├── process.py ├── run.py ├── runtime/ │ ├── Arch.h │ ├── Context.h │ ├── Debug.cpp │ ├── Debug.h │ ├── Function.cpp │ ├── Function.h │ ├── FunctionLocation.h │ ├── Heap.cpp │ ├── Heap.h │ ├── Intrinsics.cpp │ ├── Jump.h │ ├── MMapSource.h │ ├── Makefile │ ├── MemRange.h │ ├── Trap.h │ ├── Util.h │ └── libstabilizer.cpp ├── szc ├── szchi.cfg ├── szclo.cfg └── tests/ ├── Context/ │ ├── Makefile │ ├── hello.cpp │ └── stub.asm ├── HelloWorld/ │ ├── Makefile │ └── hello.cpp ├── LICENSE ├── Makefile ├── bzip2/ │ ├── Makefile │ ├── blocksort.c │ ├── bzip2.c │ ├── bzlib.c │ ├── bzlib.h │ ├── bzlib_private.h │ ├── compress.c │ ├── crctable.c │ ├── decompress.c │ ├── huffman.c │ ├── input.combined │ ├── randtable.c │ ├── spec.c │ └── spec.h ├── libquantum/ │ ├── Makefile │ ├── classic.c │ ├── classic.h │ ├── complex.c │ ├── config.h │ ├── decoherence.c │ ├── decoherence.h │ ├── defs.h │ ├── expn.c │ ├── gates.c │ ├── gates.h │ ├── lq_complex.h │ ├── matrix.c │ ├── matrix.h │ ├── measure.c │ ├── measure.h │ ├── oaddn.c │ ├── oaddn.h │ ├── objcode.c │ ├── objcode.h │ ├── omuln.c │ ├── omuln.h │ ├── qec.c │ ├── qec.h │ ├── qft.c │ ├── quantum.h │ ├── qureg.c │ ├── qureg.h │ ├── shor.c │ ├── specrand.c │ ├── specrand.h │ └── version.c └── perlbench/ ├── Base64.c ├── Cwd.c ├── Dumper.c ├── DynaLoader.c ├── EXTERN.h ├── HiRes.c ├── Hostname.c ├── INTERN.h ├── IO.c ├── MD5.c ├── Makefile ├── Opcode.c ├── Parser.c ├── Peek.c ├── Storable.c ├── WORDS ├── XSUB.h ├── attrs.c ├── av.c ├── av.h ├── config.h ├── const-c.inc ├── cop.h ├── cpu2006_mhonarc.rc ├── cv.h ├── deb.c ├── dictionary ├── doio.c ├── doop.c ├── dump.c ├── embed.h ├── embedvar.h ├── fakesdio.h ├── fakethr.h ├── form.h ├── globals.c ├── gv.c ├── gv.h ├── handy.h ├── hctype.h ├── hparser.c ├── hparser.h ├── hv.c ├── hv.h ├── input/ │ ├── checkspam.pl │ ├── diffmail.in │ ├── diffmail.pl │ ├── perfect.in │ ├── perfect.pl │ ├── scrabbl.in │ ├── scrabbl.pl │ ├── splitmail.in │ ├── splitmail.pl │ └── suns.pl ├── intrpvar.h ├── iperlsys.h ├── keywords.h ├── lib/ │ ├── AutoLoader.pm │ ├── Carp/ │ │ └── Heavy.pm │ ├── Carp.pm │ ├── Config.pm │ ├── Cwd.pm │ ├── DB_File.pm │ ├── Date/ │ │ ├── Format.pm │ │ ├── Language/ │ │ │ ├── Afar.pm │ │ │ ├── Amharic.pm │ │ │ ├── Austrian.pm │ │ │ ├── Brazilian.pm │ │ │ ├── Chinese_GB.pm │ │ │ ├── Czech.pm │ │ │ ├── Danish.pm │ │ │ ├── Dutch.pm │ │ │ ├── English.pm │ │ │ ├── Finnish.pm │ │ │ ├── French.pm │ │ │ ├── Gedeo.pm │ │ │ ├── German.pm │ │ │ ├── Greek.pm │ │ │ ├── Italian.pm │ │ │ ├── Norwegian.pm │ │ │ ├── Oromo.pm │ │ │ ├── Sidama.pm │ │ │ ├── Somali.pm │ │ │ ├── Swedish.pm │ │ │ ├── Tigrinya.pm │ │ │ ├── TigrinyaEritrean.pm │ │ │ └── TigrinyaEthiopian.pm │ │ ├── Language.pm │ │ └── Parse.pm │ ├── Digest/ │ │ └── MD5.pm │ ├── DynaLoader.pm │ ├── Exporter/ │ │ └── Heavy.pm │ ├── Exporter.pm │ ├── Fcntl.pm │ ├── File/ │ │ ├── Basename.pm │ │ ├── CheckTree.pm │ │ ├── Compare.pm │ │ ├── Copy.pm │ │ ├── DosGlob.pm │ │ ├── Find.pm │ │ ├── Path.pm │ │ ├── Spec/ │ │ │ ├── Epoc.pm │ │ │ ├── Functions.pm │ │ │ ├── Mac.pm │ │ │ ├── OS2.pm │ │ │ ├── Unix.pm │ │ │ ├── VMS.pm │ │ │ └── Win32.pm │ │ ├── Spec.pm │ │ ├── Temp.pm │ │ └── stat.pm │ ├── FileCache.pm │ ├── FileHandle.pm │ ├── Getopt/ │ │ ├── Long.pm │ │ └── Std.pm │ ├── HTML/ │ │ ├── Entities.pm │ │ ├── Filter.pm │ │ ├── HeadParser.pm │ │ ├── LinkExtor.pm │ │ ├── Parser.pm │ │ ├── PullParser.pm │ │ └── TokeParser.pm │ ├── IO/ │ │ ├── File.pm │ │ ├── Scalar.pm │ │ └── Socket/ │ │ ├── INET.pm │ │ └── UNIX.pm │ ├── MHonArc/ │ │ ├── Char/ │ │ │ ├── JP.pm │ │ │ └── KR.pm │ │ ├── Char.pm │ │ ├── CharEnt/ │ │ │ ├── AppleArabic.pm │ │ │ ├── AppleCenteuro.pm │ │ │ ├── AppleCroatian.pm │ │ │ ├── AppleCyrillic.pm │ │ │ ├── AppleGreek.pm │ │ │ ├── AppleHebrew.pm │ │ │ ├── AppleIceland.pm │ │ │ ├── AppleRoman.pm │ │ │ ├── AppleRomanian.pm │ │ │ ├── AppleThai.pm │ │ │ ├── AppleTurkish.pm │ │ │ ├── BIG5_ETEN.pm │ │ │ ├── BIG5_HKSCS.pm │ │ │ ├── CP1250.pm │ │ │ ├── CP1251.pm │ │ │ ├── CP1252.pm │ │ │ ├── CP1253.pm │ │ │ ├── CP1254.pm │ │ │ ├── CP1255.pm │ │ │ ├── CP1256.pm │ │ │ ├── CP1257.pm │ │ │ ├── CP1258.pm │ │ │ ├── CP866.pm │ │ │ ├── CP932.pm │ │ │ ├── CP936.pm │ │ │ ├── CP949.pm │ │ │ ├── CP950.pm │ │ │ ├── EUC_JP.pm │ │ │ ├── GB2312.pm │ │ │ ├── GOST19768_87.pm │ │ │ ├── HP_ROMAN8.pm │ │ │ ├── ISO8859_1.pm │ │ │ ├── ISO8859_10.pm │ │ │ ├── ISO8859_11.pm │ │ │ ├── ISO8859_13.pm │ │ │ ├── ISO8859_14.pm │ │ │ ├── ISO8859_15.pm │ │ │ ├── ISO8859_16.pm │ │ │ ├── ISO8859_2.pm │ │ │ ├── ISO8859_3.pm │ │ │ ├── ISO8859_4.pm │ │ │ ├── ISO8859_5.pm │ │ │ ├── ISO8859_6.pm │ │ │ ├── ISO8859_7.pm │ │ │ ├── ISO8859_8.pm │ │ │ ├── ISO8859_9.pm │ │ │ ├── KOI8_A.pm │ │ │ ├── KOI8_B.pm │ │ │ ├── KOI8_E.pm │ │ │ ├── KOI8_F.pm │ │ │ ├── KOI8_R.pm │ │ │ ├── KOI8_U.pm │ │ │ ├── KOI_0.pm │ │ │ ├── KOI_7.pm │ │ │ └── VISCII.pm │ │ ├── CharEnt.pm │ │ ├── CharMaps.pm │ │ ├── Encode.pm │ │ ├── RFC822.pm │ │ ├── UTF8/ │ │ │ ├── AppleArabic.pm │ │ │ ├── AppleCenteuro.pm │ │ │ ├── AppleCroatian.pm │ │ │ ├── AppleCyrillic.pm │ │ │ ├── AppleGreek.pm │ │ │ ├── AppleHebrew.pm │ │ │ ├── AppleIceland.pm │ │ │ ├── AppleRoman.pm │ │ │ ├── AppleRomanian.pm │ │ │ ├── AppleThai.pm │ │ │ ├── AppleTurkish.pm │ │ │ ├── BIG5_ETEN.pm │ │ │ ├── BIG5_HKSCS.pm │ │ │ ├── CP1250.pm │ │ │ ├── CP1251.pm │ │ │ ├── CP1252.pm │ │ │ ├── CP1253.pm │ │ │ ├── CP1254.pm │ │ │ ├── CP1255.pm │ │ │ ├── CP1256.pm │ │ │ ├── CP1257.pm │ │ │ ├── CP1258.pm │ │ │ ├── CP866.pm │ │ │ ├── CP932.pm │ │ │ ├── CP936.pm │ │ │ ├── CP949.pm │ │ │ ├── CP950.pm │ │ │ ├── EUC_JP.pm │ │ │ ├── Encode.pm │ │ │ ├── GB2312.pm │ │ │ ├── GOST19768_87.pm │ │ │ ├── HP_ROMAN8.pm │ │ │ ├── ISO8859_1.pm │ │ │ ├── ISO8859_10.pm │ │ │ ├── ISO8859_11.pm │ │ │ ├── ISO8859_13.pm │ │ │ ├── ISO8859_14.pm │ │ │ ├── ISO8859_15.pm │ │ │ ├── ISO8859_16.pm │ │ │ ├── ISO8859_2.pm │ │ │ ├── ISO8859_3.pm │ │ │ ├── ISO8859_4.pm │ │ │ ├── ISO8859_5.pm │ │ │ ├── ISO8859_6.pm │ │ │ ├── ISO8859_7.pm │ │ │ ├── ISO8859_8.pm │ │ │ ├── ISO8859_9.pm │ │ │ ├── KOI8_A.pm │ │ │ ├── KOI8_B.pm │ │ │ ├── KOI8_E.pm │ │ │ ├── KOI8_F.pm │ │ │ ├── KOI8_R.pm │ │ │ ├── KOI8_U.pm │ │ │ ├── KOI_0.pm │ │ │ ├── KOI_7.pm │ │ │ ├── MapUTF8.pm │ │ │ ├── MhaEncode.pm │ │ │ └── VISCII.pm │ │ └── UTF8.pm │ ├── MIME/ │ │ ├── Base64.pm │ │ └── QuotedPrint.pm │ ├── Mail/ │ │ ├── Header.pm │ │ ├── SpamAssassin/ │ │ │ ├── ArchiveIterator.pm │ │ │ ├── AuditMessage.pm │ │ │ ├── AutoWhitelist.pm │ │ │ ├── Bayes.pm │ │ │ ├── BayesStore.pm │ │ │ ├── CmdLearn.pm │ │ │ ├── Conf.pm │ │ │ ├── DBBasedAddrList.pm │ │ │ ├── Dns.pm │ │ │ ├── EncappedMIME.pm │ │ │ ├── EncappedMessage.pm │ │ │ ├── EvalTests.pm │ │ │ ├── HTML.pm │ │ │ ├── Locales.pm │ │ │ ├── Locker.pm │ │ │ ├── MailingList.pm │ │ │ ├── Message.pm │ │ │ ├── NetSet.pm │ │ │ ├── NoLocker.pm │ │ │ ├── NoMailAudit.pm │ │ │ ├── PerMsgLearner.pm │ │ │ ├── PerMsgStatus.pm │ │ │ ├── PersistentAddrList.pm │ │ │ ├── PhraseFreqs.pm │ │ │ ├── Received.pm │ │ │ ├── Replier.pm │ │ │ ├── Reporter.pm │ │ │ ├── SHA1.pm │ │ │ ├── TextCat.pm │ │ │ └── Util.pm │ │ ├── SpamAssassin.pm │ │ └── Util.pm │ ├── Math/ │ │ ├── BigFloat/ │ │ │ └── Trace.pm │ │ ├── BigFloat.pm │ │ ├── BigInt/ │ │ │ ├── Calc.pm │ │ │ ├── CalcEmu.pm │ │ │ ├── Scalar.pm │ │ │ └── Trace.pm │ │ ├── BigInt.pm │ │ ├── BigRat.pm │ │ ├── Complex.pm │ │ └── Trig.pm │ ├── Search/ │ │ ├── Dict.pm │ │ └── Dict.t │ ├── Storable.pm │ ├── Symbol.pm │ ├── Text/ │ │ ├── Tabs.pm │ │ └── Wrap.pm │ ├── Time/ │ │ ├── Local.pm │ │ ├── Zone.pm │ │ ├── gmtime.pm │ │ ├── localtime.pm │ │ └── tm.pm │ ├── Unicode/ │ │ ├── Collate/ │ │ │ ├── Changes │ │ │ ├── README │ │ │ └── keys.txt │ │ ├── Collate.pm │ │ ├── Normalize.pm │ │ ├── README │ │ ├── UCD.pm │ │ └── UCD.t │ ├── abbrev.pl │ ├── assert.pl │ ├── attributes.pm │ ├── auto/ │ │ └── Storable/ │ │ └── autosplit.ix │ ├── autouse.pm │ ├── base.pm │ ├── base64.pl │ ├── bigfloat.pl │ ├── bigint.pl │ ├── bigrat.pl │ ├── blib.pm │ ├── bytes.pm │ ├── bytes_heavy.pl │ ├── cacheout.pl │ ├── charnames.pm │ ├── chat2.pl │ ├── compare.pm │ ├── complete.pl │ ├── constant.pm │ ├── ctime.pl │ ├── diagnostics.pm │ ├── dotsh.pl │ ├── dumpvar.pl │ ├── ewhutil.pl │ ├── exceptions.pl │ ├── fastcwd.pl │ ├── fields.pm │ ├── filetest.pm │ ├── find.pl │ ├── finddepth.pl │ ├── flush.pl │ ├── ftp.pl │ ├── getcwd.pl │ ├── getopt.pl │ ├── getopts.pl │ ├── ham.pl │ ├── hostname.pl │ ├── importenv.pl │ ├── integer.pm │ ├── iso2022jp.pl │ ├── iso8859.pl │ ├── less.pm │ ├── lib.pm │ ├── locale.pm │ ├── look.pl │ ├── mailcomp.pm │ ├── mhamain.pl │ ├── mhdb.pl │ ├── mhdysub.pl │ ├── mhexternal.pl │ ├── mhfile.pl │ ├── mhidxrc.pl │ ├── mhindex.pl │ ├── mhinit.pl │ ├── mhlock.pl │ ├── mhmimetypes.pl │ ├── mhmsgextbody.pl │ ├── mhmsgfile.pl │ ├── mhnote.pl │ ├── mhnull.pl │ ├── mhopt.pl │ ├── mhrcfile.pl │ ├── mhrcvars.pl │ ├── mhrmm.pl │ ├── mhscan.pl │ ├── mhsingle.pl │ ├── mhthread.pl │ ├── mhtime.pl │ ├── mhtxtenrich.pl │ ├── mhtxthtml.pl │ ├── mhtxtplain.pl │ ├── mhtxttsv.pl │ ├── mhusage.pl │ ├── mhutil.pl │ ├── mungewords │ ├── newgetopt.pl │ ├── open.pm │ ├── open2.pl │ ├── open3.pl │ ├── osinit.pl │ ├── overload.pm │ ├── perl5db.pl │ ├── pwd.pl │ ├── qprint.pl │ ├── re.pm │ ├── readmail.pl │ ├── shellwords.pl │ ├── sigtrap.pm │ ├── spam.pl │ ├── specdiff.pm │ ├── stat.pl │ ├── strict.pm │ ├── subs.pm │ ├── syslog.pl │ ├── tainted.pl │ ├── termcap.pl │ ├── timelocal.pl │ ├── unicore/ │ │ ├── ArabLink.pl │ │ ├── ArabLnkGrp.pl │ │ ├── ArabicShaping.txt │ │ ├── BidiMirroring.txt │ │ ├── Bidirectional.pl │ │ ├── Blocks.pl │ │ ├── Blocks.txt │ │ ├── Canonical.pl │ │ ├── CaseFolding.txt │ │ ├── Category.pl │ │ ├── CombiningClass.pl │ │ ├── CompositionExclusions.txt │ │ ├── Decomposition.pl │ │ ├── EastAsianWidth.txt │ │ ├── Exact.pl │ │ ├── HangulSyllableType.txt │ │ ├── Index.txt │ │ ├── Jamo.txt │ │ ├── JamoShort.pl │ │ ├── Lbrk.pl │ │ ├── LineBreak.txt │ │ ├── Makefile │ │ ├── Name.pl │ │ ├── NamesList.txt │ │ ├── NormalizationCorrections.txt │ │ ├── Number.pl │ │ ├── PVA.pl │ │ ├── PropList.txt │ │ ├── PropValueAliases.txt │ │ ├── Properties │ │ ├── PropertyAliases.txt │ │ ├── README.perl │ │ ├── ReadMe.txt │ │ ├── Scripts.pl │ │ ├── Scripts.txt │ │ ├── SpecialCasing.txt │ │ ├── StandardizedVariants.txt │ │ ├── To/ │ │ │ ├── Digit.pl │ │ │ ├── Fold.pl │ │ │ ├── Lower.pl │ │ │ ├── Title.pl │ │ │ └── Upper.pl │ │ ├── UnicodeData.txt │ │ ├── lib/ │ │ │ ├── ASCII.pl │ │ │ ├── Alnum.pl │ │ │ ├── Alpha.pl │ │ │ ├── Alphabet.pl │ │ │ ├── Any.pl │ │ │ ├── Arabic.pl │ │ │ ├── Armenian.pl │ │ │ ├── AsciiHex.pl │ │ │ ├── Assigned.pl │ │ │ ├── Bengali.pl │ │ │ ├── BidiAL.pl │ │ │ ├── BidiAN.pl │ │ │ ├── BidiB.pl │ │ │ ├── BidiBN.pl │ │ │ ├── BidiCS.pl │ │ │ ├── BidiCont.pl │ │ │ ├── BidiEN.pl │ │ │ ├── BidiES.pl │ │ │ ├── BidiET.pl │ │ │ ├── BidiL.pl │ │ │ ├── BidiLRE.pl │ │ │ ├── BidiLRO.pl │ │ │ ├── BidiNSM.pl │ │ │ ├── BidiON.pl │ │ │ ├── BidiPDF.pl │ │ │ ├── BidiR.pl │ │ │ ├── BidiRLE.pl │ │ │ ├── BidiRLO.pl │ │ │ ├── BidiS.pl │ │ │ ├── BidiWS.pl │ │ │ ├── Blank.pl │ │ │ ├── Bopomofo.pl │ │ │ ├── Braille.pl │ │ │ ├── Buhid.pl │ │ │ ├── C.pl │ │ │ ├── Canadian.pl │ │ │ ├── Canon.pl │ │ │ ├── Cc.pl │ │ │ ├── Cf.pl │ │ │ ├── Cherokee.pl │ │ │ ├── Cn.pl │ │ │ ├── Cntrl.pl │ │ │ ├── Co.pl │ │ │ ├── Common.pl │ │ │ ├── Compat.pl │ │ │ ├── Cs.pl │ │ │ ├── Cypriot.pl │ │ │ ├── Cyrillic.pl │ │ │ ├── DCcircle.pl │ │ │ ├── DCcompat.pl │ │ │ ├── DCfinal.pl │ │ │ ├── DCfont.pl │ │ │ ├── DCfracti.pl │ │ │ ├── DCinitia.pl │ │ │ ├── DCisolat.pl │ │ │ ├── DCmedial.pl │ │ │ ├── DCnarrow.pl │ │ │ ├── DCnoBrea.pl │ │ │ ├── DCsmall.pl │ │ │ ├── DCsquare.pl │ │ │ ├── DCsub.pl │ │ │ ├── DCsuper.pl │ │ │ ├── DCvertic.pl │ │ │ ├── DCwide.pl │ │ │ ├── Dash.pl │ │ │ ├── Deprecat.pl │ │ │ ├── Deseret.pl │ │ │ ├── Devanaga.pl │ │ │ ├── Diacriti.pl │ │ │ ├── Digit.pl │ │ │ ├── Ethiopic.pl │ │ │ ├── Extender.pl │ │ │ ├── Georgian.pl │ │ │ ├── Gothic.pl │ │ │ ├── Graph.pl │ │ │ ├── Grapheme.pl │ │ │ ├── Greek.pl │ │ │ ├── Gujarati.pl │ │ │ ├── Gurmukhi.pl │ │ │ ├── Han.pl │ │ │ ├── Hangul.pl │ │ │ ├── Hanunoo.pl │ │ │ ├── Hebrew.pl │ │ │ ├── HexDigit.pl │ │ │ ├── Hiragana.pl │ │ │ ├── Hyphen.pl │ │ │ ├── IdContin.pl │ │ │ ├── IdStart.pl │ │ │ ├── Ideograp.pl │ │ │ ├── IdsBinar.pl │ │ │ ├── IdsTrina.pl │ │ │ ├── InAegean.pl │ │ │ ├── InAlphab.pl │ │ │ ├── InArabi2.pl │ │ │ ├── InArabi3.pl │ │ │ ├── InArabic.pl │ │ │ ├── InArmeni.pl │ │ │ ├── InArrows.pl │ │ │ ├── InBasicL.pl │ │ │ ├── InBengal.pl │ │ │ ├── InBlockE.pl │ │ │ ├── InBopom2.pl │ │ │ ├── InBopomo.pl │ │ │ ├── InBoxDra.pl │ │ │ ├── InBraill.pl │ │ │ ├── InBuhid.pl │ │ │ ├── InByzant.pl │ │ │ ├── InCherok.pl │ │ │ ├── InCjkCo2.pl │ │ │ ├── InCjkCo3.pl │ │ │ ├── InCjkCo4.pl │ │ │ ├── InCjkCom.pl │ │ │ ├── InCjkRad.pl │ │ │ ├── InCjkSym.pl │ │ │ ├── InCjkUn2.pl │ │ │ ├── InCjkUn3.pl │ │ │ ├── InCjkUni.pl │ │ │ ├── InCombi2.pl │ │ │ ├── InCombi3.pl │ │ │ ├── InCombin.pl │ │ │ ├── InContro.pl │ │ │ ├── InCurren.pl │ │ │ ├── InCyprio.pl │ │ │ ├── InCyril2.pl │ │ │ ├── InCyrill.pl │ │ │ ├── InDesere.pl │ │ │ ├── InDevana.pl │ │ │ ├── InDingba.pl │ │ │ ├── InEnclo2.pl │ │ │ ├── InEnclos.pl │ │ │ ├── InEthiop.pl │ │ │ ├── InGenera.pl │ │ │ ├── InGeomet.pl │ │ │ ├── InGeorgi.pl │ │ │ ├── InGothic.pl │ │ │ ├── InGreek.pl │ │ │ ├── InGreekA.pl │ │ │ ├── InGreekE.pl │ │ │ ├── InGujara.pl │ │ │ ├── InGurmuk.pl │ │ │ ├── InHalfwi.pl │ │ │ ├── InHangu2.pl │ │ │ ├── InHangu3.pl │ │ │ ├── InHangul.pl │ │ │ ├── InHanuno.pl │ │ │ ├── InHebrew.pl │ │ │ ├── InHighPr.pl │ │ │ ├── InHighSu.pl │ │ │ ├── InHiraga.pl │ │ │ ├── InIdeogr.pl │ │ │ ├── InIpaExt.pl │ │ │ ├── InKanbun.pl │ │ │ ├── InKangxi.pl │ │ │ ├── InKannad.pl │ │ │ ├── InKatak2.pl │ │ │ ├── InKataka.pl │ │ │ ├── InKhmer.pl │ │ │ ├── InKhmerS.pl │ │ │ ├── InLao.pl │ │ │ ├── InLatin1.pl │ │ │ ├── InLatin2.pl │ │ │ ├── InLatin3.pl │ │ │ ├── InLatinE.pl │ │ │ ├── InLetter.pl │ │ │ ├── InLimbu.pl │ │ │ ├── InLinea2.pl │ │ │ ├── InLinear.pl │ │ │ ├── InLowSur.pl │ │ │ ├── InMalaya.pl │ │ │ ├── InMathe2.pl │ │ │ ├── InMathem.pl │ │ │ ├── InMisce2.pl │ │ │ ├── InMisce3.pl │ │ │ ├── InMisce4.pl │ │ │ ├── InMisce5.pl │ │ │ ├── InMiscel.pl │ │ │ ├── InMongol.pl │ │ │ ├── InMusica.pl │ │ │ ├── InMyanma.pl │ │ │ ├── InNumber.pl │ │ │ ├── InOgham.pl │ │ │ ├── InOldIta.pl │ │ │ ├── InOptica.pl │ │ │ ├── InOriya.pl │ │ │ ├── InOsmany.pl │ │ │ ├── InPhonet.pl │ │ │ ├── InPrivat.pl │ │ │ ├── InRunic.pl │ │ │ ├── InShavia.pl │ │ │ ├── InSinhal.pl │ │ │ ├── InSmallF.pl │ │ │ ├── InSpacin.pl │ │ │ ├── InSpecia.pl │ │ │ ├── InSupers.pl │ │ │ ├── InSuppl2.pl │ │ │ ├── InSuppl3.pl │ │ │ ├── InSuppl4.pl │ │ │ ├── InSuppl5.pl │ │ │ ├── InSupple.pl │ │ │ ├── InSyriac.pl │ │ │ ├── InTagalo.pl │ │ │ ├── InTagban.pl │ │ │ ├── InTags.pl │ │ │ ├── InTaiLe.pl │ │ │ ├── InTaiXua.pl │ │ │ ├── InTamil.pl │ │ │ ├── InTelugu.pl │ │ │ ├── InThaana.pl │ │ │ ├── InThai.pl │ │ │ ├── InTibeta.pl │ │ │ ├── InUgarit.pl │ │ │ ├── InUnifie.pl │ │ │ ├── InVaria2.pl │ │ │ ├── InVariat.pl │ │ │ ├── InYiRadi.pl │ │ │ ├── InYiSyll.pl │ │ │ ├── InYijing.pl │ │ │ ├── Inherite.pl │ │ │ ├── JoinCont.pl │ │ │ ├── Kannada.pl │ │ │ ├── Katakana.pl │ │ │ ├── Khmer.pl │ │ │ ├── L.pl │ │ │ ├── L_.pl │ │ │ ├── Lao.pl │ │ │ ├── Latin.pl │ │ │ ├── Limbu.pl │ │ │ ├── LinearB.pl │ │ │ ├── Ll.pl │ │ │ ├── Lm.pl │ │ │ ├── Lo.pl │ │ │ ├── LogicalO.pl │ │ │ ├── Lower.pl │ │ │ ├── Lowercas.pl │ │ │ ├── Lt.pl │ │ │ ├── Lu.pl │ │ │ ├── M.pl │ │ │ ├── Malayala.pl │ │ │ ├── Math.pl │ │ │ ├── Mc.pl │ │ │ ├── Me.pl │ │ │ ├── Mirrored.pl │ │ │ ├── Mn.pl │ │ │ ├── Mongolia.pl │ │ │ ├── Myanmar.pl │ │ │ ├── N.pl │ │ │ ├── Nd.pl │ │ │ ├── Nl.pl │ │ │ ├── No.pl │ │ │ ├── Nonchara.pl │ │ │ ├── Ogham.pl │ │ │ ├── OldItali.pl │ │ │ ├── Oriya.pl │ │ │ ├── Osmanya.pl │ │ │ ├── OtherAlp.pl │ │ │ ├── OtherDef.pl │ │ │ ├── OtherGra.pl │ │ │ ├── OtherIdS.pl │ │ │ ├── OtherLow.pl │ │ │ ├── OtherMat.pl │ │ │ ├── OtherUpp.pl │ │ │ ├── P.pl │ │ │ ├── Pc.pl │ │ │ ├── Pd.pl │ │ │ ├── Pe.pl │ │ │ ├── Pf.pl │ │ │ ├── Pi.pl │ │ │ ├── Po.pl │ │ │ ├── Print.pl │ │ │ ├── Ps.pl │ │ │ ├── Punct.pl │ │ │ ├── Quotatio.pl │ │ │ ├── Radical.pl │ │ │ ├── Runic.pl │ │ │ ├── S.pl │ │ │ ├── Sc.pl │ │ │ ├── Shavian.pl │ │ │ ├── Sinhala.pl │ │ │ ├── Sk.pl │ │ │ ├── Sm.pl │ │ │ ├── So.pl │ │ │ ├── SoftDott.pl │ │ │ ├── Space.pl │ │ │ ├── SpacePer.pl │ │ │ ├── Syriac.pl │ │ │ ├── Tagalog.pl │ │ │ ├── Tagbanwa.pl │ │ │ ├── TaiLe.pl │ │ │ ├── Tamil.pl │ │ │ ├── Telugu.pl │ │ │ ├── Terminal.pl │ │ │ ├── Thaana.pl │ │ │ ├── Thai.pl │ │ │ ├── Tibetan.pl │ │ │ ├── Title.pl │ │ │ ├── Ugaritic.pl │ │ │ ├── UnifiedI.pl │ │ │ ├── Upper.pl │ │ │ ├── Uppercas.pl │ │ │ ├── WhiteSpa.pl │ │ │ ├── Word.pl │ │ │ ├── XDigit.pl │ │ │ ├── Yi.pl │ │ │ ├── Z.pl │ │ │ ├── Zl.pl │ │ │ ├── Zp.pl │ │ │ ├── Zs.pl │ │ │ ├── _CanonDC.pl │ │ │ ├── _CaseIgn.pl │ │ │ ├── _CombAbo.pl │ │ │ ├── bc/ │ │ │ │ ├── AL.pl │ │ │ │ ├── AN.pl │ │ │ │ ├── B.pl │ │ │ │ ├── BN.pl │ │ │ │ ├── CS.pl │ │ │ │ ├── EN.pl │ │ │ │ ├── ES.pl │ │ │ │ ├── ET.pl │ │ │ │ ├── L.pl │ │ │ │ ├── LRE.pl │ │ │ │ ├── LRO.pl │ │ │ │ ├── NSM.pl │ │ │ │ ├── ON.pl │ │ │ │ ├── PDF.pl │ │ │ │ ├── R.pl │ │ │ │ ├── RLE.pl │ │ │ │ ├── RLO.pl │ │ │ │ ├── S.pl │ │ │ │ └── WS.pl │ │ │ ├── ccc/ │ │ │ │ ├── A.pl │ │ │ │ ├── AL.pl │ │ │ │ ├── AR.pl │ │ │ │ ├── ATAR.pl │ │ │ │ ├── ATB.pl │ │ │ │ ├── ATBL.pl │ │ │ │ ├── B.pl │ │ │ │ ├── BL.pl │ │ │ │ ├── BR.pl │ │ │ │ ├── DA.pl │ │ │ │ ├── DB.pl │ │ │ │ ├── IS.pl │ │ │ │ ├── KV.pl │ │ │ │ ├── L.pl │ │ │ │ ├── NK.pl │ │ │ │ ├── NR.pl │ │ │ │ ├── OV.pl │ │ │ │ ├── R.pl │ │ │ │ └── VR.pl │ │ │ ├── dt/ │ │ │ │ ├── can.pl │ │ │ │ ├── com.pl │ │ │ │ ├── enc.pl │ │ │ │ ├── fin.pl │ │ │ │ ├── font.pl │ │ │ │ ├── fra.pl │ │ │ │ ├── init.pl │ │ │ │ ├── iso.pl │ │ │ │ ├── med.pl │ │ │ │ ├── nar.pl │ │ │ │ ├── nb.pl │ │ │ │ ├── sml.pl │ │ │ │ ├── sqr.pl │ │ │ │ ├── sub.pl │ │ │ │ ├── sup.pl │ │ │ │ ├── vert.pl │ │ │ │ └── wide.pl │ │ │ ├── ea/ │ │ │ │ ├── A.pl │ │ │ │ ├── F.pl │ │ │ │ ├── H.pl │ │ │ │ ├── N.pl │ │ │ │ ├── Na.pl │ │ │ │ └── W.pl │ │ │ ├── gc_sc/ │ │ │ │ ├── AHex.pl │ │ │ │ ├── ASCII.pl │ │ │ │ ├── Alnum.pl │ │ │ │ ├── Alpha.pl │ │ │ │ ├── Alphabet.pl │ │ │ │ ├── Any.pl │ │ │ │ ├── Arab.pl │ │ │ │ ├── Armn.pl │ │ │ │ ├── AsciiHex.pl │ │ │ │ ├── Assigned.pl │ │ │ │ ├── Beng.pl │ │ │ │ ├── BidiC.pl │ │ │ │ ├── BidiCont.pl │ │ │ │ ├── Blank.pl │ │ │ │ ├── Bopo.pl │ │ │ │ ├── Brai.pl │ │ │ │ ├── Buhd.pl │ │ │ │ ├── C.pl │ │ │ │ ├── Canadian.pl │ │ │ │ ├── Cc.pl │ │ │ │ ├── Cf.pl │ │ │ │ ├── Cher.pl │ │ │ │ ├── Cn.pl │ │ │ │ ├── Cntrl.pl │ │ │ │ ├── Co.pl │ │ │ │ ├── Cprt.pl │ │ │ │ ├── Cs.pl │ │ │ │ ├── Cyrl.pl │ │ │ │ ├── Dash.pl │ │ │ │ ├── Dash2.pl │ │ │ │ ├── Dep.pl │ │ │ │ ├── Deprecat.pl │ │ │ │ ├── Deva.pl │ │ │ │ ├── Dia.pl │ │ │ │ ├── Diacriti.pl │ │ │ │ ├── Digit.pl │ │ │ │ ├── Dsrt.pl │ │ │ │ ├── Ethi.pl │ │ │ │ ├── Ext.pl │ │ │ │ ├── Extender.pl │ │ │ │ ├── Geor.pl │ │ │ │ ├── Goth.pl │ │ │ │ ├── GrLink.pl │ │ │ │ ├── Graph.pl │ │ │ │ ├── Grapheme.pl │ │ │ │ ├── Grek.pl │ │ │ │ ├── Gujr.pl │ │ │ │ ├── Guru.pl │ │ │ │ ├── Hang.pl │ │ │ │ ├── Hani.pl │ │ │ │ ├── Hano.pl │ │ │ │ ├── Hebr.pl │ │ │ │ ├── Hex.pl │ │ │ │ ├── HexDigit.pl │ │ │ │ ├── Hira.pl │ │ │ │ ├── Hyphen.pl │ │ │ │ ├── Hyphen2.pl │ │ │ │ ├── IDSB.pl │ │ │ │ ├── IDST.pl │ │ │ │ ├── IdContin.pl │ │ │ │ ├── IdStart.pl │ │ │ │ ├── Ideo.pl │ │ │ │ ├── Ideograp.pl │ │ │ │ ├── IdsBinar.pl │ │ │ │ ├── IdsTrina.pl │ │ │ │ ├── InAegean.pl │ │ │ │ ├── InAlphab.pl │ │ │ │ ├── InArabi2.pl │ │ │ │ ├── InArabi3.pl │ │ │ │ ├── InArabic.pl │ │ │ │ ├── InArmeni.pl │ │ │ │ ├── InArrows.pl │ │ │ │ ├── InBasicL.pl │ │ │ │ ├── InBengal.pl │ │ │ │ ├── InBlockE.pl │ │ │ │ ├── InBopom2.pl │ │ │ │ ├── InBopomo.pl │ │ │ │ ├── InBoxDra.pl │ │ │ │ ├── InBraill.pl │ │ │ │ ├── InBuhid.pl │ │ │ │ ├── InByzant.pl │ │ │ │ ├── InCherok.pl │ │ │ │ ├── InCjkCo2.pl │ │ │ │ ├── InCjkCo3.pl │ │ │ │ ├── InCjkCo4.pl │ │ │ │ ├── InCjkCom.pl │ │ │ │ ├── InCjkRad.pl │ │ │ │ ├── InCjkSym.pl │ │ │ │ ├── InCjkUn2.pl │ │ │ │ ├── InCjkUn3.pl │ │ │ │ ├── InCjkUni.pl │ │ │ │ ├── InCombi2.pl │ │ │ │ ├── InCombi3.pl │ │ │ │ ├── InCombin.pl │ │ │ │ ├── InContro.pl │ │ │ │ ├── InCurren.pl │ │ │ │ ├── InCyprio.pl │ │ │ │ ├── InCyril2.pl │ │ │ │ ├── InCyrill.pl │ │ │ │ ├── InDesere.pl │ │ │ │ ├── InDevana.pl │ │ │ │ ├── InDingba.pl │ │ │ │ ├── InEnclo2.pl │ │ │ │ ├── InEnclos.pl │ │ │ │ ├── InEthiop.pl │ │ │ │ ├── InGenera.pl │ │ │ │ ├── InGeomet.pl │ │ │ │ ├── InGeorgi.pl │ │ │ │ ├── InGothic.pl │ │ │ │ ├── InGreekA.pl │ │ │ │ ├── InGreekE.pl │ │ │ │ ├── InGujara.pl │ │ │ │ ├── InGurmuk.pl │ │ │ │ ├── InHalfwi.pl │ │ │ │ ├── InHangu2.pl │ │ │ │ ├── InHangu3.pl │ │ │ │ ├── InHangul.pl │ │ │ │ ├── InHanuno.pl │ │ │ │ ├── InHebrew.pl │ │ │ │ ├── InHighPr.pl │ │ │ │ ├── InHighSu.pl │ │ │ │ ├── InHiraga.pl │ │ │ │ ├── InIdeogr.pl │ │ │ │ ├── InIpaExt.pl │ │ │ │ ├── InKanbun.pl │ │ │ │ ├── InKangxi.pl │ │ │ │ ├── InKannad.pl │ │ │ │ ├── InKatak2.pl │ │ │ │ ├── InKataka.pl │ │ │ │ ├── InKhmer.pl │ │ │ │ ├── InKhmerS.pl │ │ │ │ ├── InLao.pl │ │ │ │ ├── InLatin1.pl │ │ │ │ ├── InLatin2.pl │ │ │ │ ├── InLatin3.pl │ │ │ │ ├── InLatinE.pl │ │ │ │ ├── InLetter.pl │ │ │ │ ├── InLimbu.pl │ │ │ │ ├── InLinea2.pl │ │ │ │ ├── InLinear.pl │ │ │ │ ├── InLowSur.pl │ │ │ │ ├── InMalaya.pl │ │ │ │ ├── InMathe2.pl │ │ │ │ ├── InMathem.pl │ │ │ │ ├── InMisce2.pl │ │ │ │ ├── InMisce3.pl │ │ │ │ ├── InMisce4.pl │ │ │ │ ├── InMisce5.pl │ │ │ │ ├── InMiscel.pl │ │ │ │ ├── InMongol.pl │ │ │ │ ├── InMusica.pl │ │ │ │ ├── InMyanma.pl │ │ │ │ ├── InNumber.pl │ │ │ │ ├── InOgham.pl │ │ │ │ ├── InOldIta.pl │ │ │ │ ├── InOptica.pl │ │ │ │ ├── InOriya.pl │ │ │ │ ├── InOsmany.pl │ │ │ │ ├── InPhonet.pl │ │ │ │ ├── InPrivat.pl │ │ │ │ ├── InRunic.pl │ │ │ │ ├── InShavia.pl │ │ │ │ ├── InSinhal.pl │ │ │ │ ├── InSmallF.pl │ │ │ │ ├── InSpacin.pl │ │ │ │ ├── InSpecia.pl │ │ │ │ ├── InSupers.pl │ │ │ │ ├── InSuppl2.pl │ │ │ │ ├── InSuppl3.pl │ │ │ │ ├── InSuppl4.pl │ │ │ │ ├── InSuppl5.pl │ │ │ │ ├── InSupple.pl │ │ │ │ ├── InSyriac.pl │ │ │ │ ├── InTagalo.pl │ │ │ │ ├── InTagban.pl │ │ │ │ ├── InTags.pl │ │ │ │ ├── InTaiLe.pl │ │ │ │ ├── InTaiXua.pl │ │ │ │ ├── InTamil.pl │ │ │ │ ├── InTelugu.pl │ │ │ │ ├── InThaana.pl │ │ │ │ ├── InThai.pl │ │ │ │ ├── InTibeta.pl │ │ │ │ ├── InUgarit.pl │ │ │ │ ├── InUnifie.pl │ │ │ │ ├── InVaria2.pl │ │ │ │ ├── InVariat.pl │ │ │ │ ├── InYiRadi.pl │ │ │ │ ├── InYiSyll.pl │ │ │ │ ├── InYijing.pl │ │ │ │ ├── JoinC.pl │ │ │ │ ├── JoinCont.pl │ │ │ │ ├── Kana.pl │ │ │ │ ├── Katakana.pl │ │ │ │ ├── Khmr.pl │ │ │ │ ├── Knda.pl │ │ │ │ ├── L.pl │ │ │ │ ├── LC.pl │ │ │ │ ├── LOE.pl │ │ │ │ ├── Laoo.pl │ │ │ │ ├── Latn.pl │ │ │ │ ├── Limb.pl │ │ │ │ ├── LinearB.pl │ │ │ │ ├── Ll.pl │ │ │ │ ├── Lm.pl │ │ │ │ ├── Lo.pl │ │ │ │ ├── LogicalO.pl │ │ │ │ ├── Lower.pl │ │ │ │ ├── Lowercas.pl │ │ │ │ ├── Lt.pl │ │ │ │ ├── Lu.pl │ │ │ │ ├── M.pl │ │ │ │ ├── Math.pl │ │ │ │ ├── Mc.pl │ │ │ │ ├── Me.pl │ │ │ │ ├── Mlym.pl │ │ │ │ ├── Mn.pl │ │ │ │ ├── Mong.pl │ │ │ │ ├── Mymr.pl │ │ │ │ ├── N.pl │ │ │ │ ├── NChar.pl │ │ │ │ ├── Nd.pl │ │ │ │ ├── Nl.pl │ │ │ │ ├── No.pl │ │ │ │ ├── Nonchara.pl │ │ │ │ ├── OAlpha.pl │ │ │ │ ├── ODI.pl │ │ │ │ ├── OGrExt.pl │ │ │ │ ├── OIDS.pl │ │ │ │ ├── OLower.pl │ │ │ │ ├── OMath.pl │ │ │ │ ├── OUpper.pl │ │ │ │ ├── Ogam.pl │ │ │ │ ├── OldItali.pl │ │ │ │ ├── Orya.pl │ │ │ │ ├── Osma.pl │ │ │ │ ├── OtherAlp.pl │ │ │ │ ├── OtherDef.pl │ │ │ │ ├── OtherGra.pl │ │ │ │ ├── OtherIdS.pl │ │ │ │ ├── OtherLow.pl │ │ │ │ ├── OtherMat.pl │ │ │ │ ├── OtherUpp.pl │ │ │ │ ├── P.pl │ │ │ │ ├── Pc.pl │ │ │ │ ├── Pd.pl │ │ │ │ ├── Pe.pl │ │ │ │ ├── Pf.pl │ │ │ │ ├── Pi.pl │ │ │ │ ├── Po.pl │ │ │ │ ├── Print.pl │ │ │ │ ├── Ps.pl │ │ │ │ ├── Punct.pl │ │ │ │ ├── QMark.pl │ │ │ │ ├── Qaai.pl │ │ │ │ ├── Quotatio.pl │ │ │ │ ├── Radical.pl │ │ │ │ ├── Radical2.pl │ │ │ │ ├── Runr.pl │ │ │ │ ├── S.pl │ │ │ │ ├── SD.pl │ │ │ │ ├── STerm.pl │ │ │ │ ├── Sc.pl │ │ │ │ ├── Shaw.pl │ │ │ │ ├── Sinh.pl │ │ │ │ ├── Sk.pl │ │ │ │ ├── Sm.pl │ │ │ │ ├── So.pl │ │ │ │ ├── SoftDott.pl │ │ │ │ ├── Space.pl │ │ │ │ ├── SpacePer.pl │ │ │ │ ├── Sterm2.pl │ │ │ │ ├── Syrc.pl │ │ │ │ ├── Tagb.pl │ │ │ │ ├── TaiLe.pl │ │ │ │ ├── Taml.pl │ │ │ │ ├── Telu.pl │ │ │ │ ├── Term.pl │ │ │ │ ├── Terminal.pl │ │ │ │ ├── Tglg.pl │ │ │ │ ├── Thaa.pl │ │ │ │ ├── Thai.pl │ │ │ │ ├── Tibt.pl │ │ │ │ ├── Title.pl │ │ │ │ ├── UIdeo.pl │ │ │ │ ├── Ugar.pl │ │ │ │ ├── UnifiedI.pl │ │ │ │ ├── Upper.pl │ │ │ │ ├── Uppercas.pl │ │ │ │ ├── VS.pl │ │ │ │ ├── Variatio.pl │ │ │ │ ├── WSpace.pl │ │ │ │ ├── WhiteSpa.pl │ │ │ │ ├── Word.pl │ │ │ │ ├── XDigit.pl │ │ │ │ ├── Yiii.pl │ │ │ │ ├── Z.pl │ │ │ │ ├── Zl.pl │ │ │ │ ├── Zp.pl │ │ │ │ ├── Zs.pl │ │ │ │ ├── Zyyy.pl │ │ │ │ ├── _CanonDC.pl │ │ │ │ ├── _CaseIgn.pl │ │ │ │ └── _CombAbo.pl │ │ │ ├── hst/ │ │ │ │ ├── L.pl │ │ │ │ ├── LV.pl │ │ │ │ ├── LVT.pl │ │ │ │ ├── T.pl │ │ │ │ └── V.pl │ │ │ ├── jt/ │ │ │ │ ├── C.pl │ │ │ │ ├── D.pl │ │ │ │ ├── R.pl │ │ │ │ └── U.pl │ │ │ ├── lb/ │ │ │ │ ├── AI.pl │ │ │ │ ├── AL.pl │ │ │ │ ├── B2.pl │ │ │ │ ├── BA.pl │ │ │ │ ├── BB.pl │ │ │ │ ├── BK.pl │ │ │ │ ├── CB.pl │ │ │ │ ├── CL.pl │ │ │ │ ├── CM.pl │ │ │ │ ├── CR.pl │ │ │ │ ├── EX.pl │ │ │ │ ├── GL.pl │ │ │ │ ├── HY.pl │ │ │ │ ├── ID.pl │ │ │ │ ├── IN.pl │ │ │ │ ├── IS.pl │ │ │ │ ├── LF.pl │ │ │ │ ├── NL.pl │ │ │ │ ├── NS.pl │ │ │ │ ├── NU.pl │ │ │ │ ├── OP.pl │ │ │ │ ├── PO.pl │ │ │ │ ├── PR.pl │ │ │ │ ├── QU.pl │ │ │ │ ├── SA.pl │ │ │ │ ├── SG.pl │ │ │ │ ├── SP.pl │ │ │ │ ├── SY.pl │ │ │ │ ├── WJ.pl │ │ │ │ ├── XX.pl │ │ │ │ └── ZW.pl │ │ │ └── nt/ │ │ │ ├── De.pl │ │ │ ├── Di.pl │ │ │ └── Nu.pl │ │ ├── mktables │ │ └── version │ ├── utf8.pm │ ├── utf8_heavy.pl │ ├── util.pm │ ├── validate.pl │ ├── vars.pm │ ├── warnings/ │ │ └── register.pm │ └── warnings.pm ├── locale.c ├── mg.c ├── mg.h ├── nostdio.h ├── numeric.c ├── op.c ├── op.h ├── opcode.h ├── opnames.h ├── out.txt ├── pad.c ├── pad.h ├── parser-util.c ├── patchlevel.h ├── perl.c ├── perl.h ├── perlapi.c ├── perlapi.h ├── perlio.c ├── perlio.h ├── perliol.h ├── perlmain.c ├── perlsdio.h ├── perlsfio.h ├── perlvars.h ├── perly.c ├── perly.h ├── pfunc.h ├── poll.c ├── poll.h ├── pp.c ├── pp.h ├── pp_ctl.c ├── pp_hot.c ├── pp_pack.c ├── pp_proto.h ├── pp_sort.c ├── pp_sys.c ├── ppport.h ├── proto.h ├── reentr.h ├── reentr.inc ├── regcomp.c ├── regcomp.h ├── regexec.c ├── regexp.h ├── regnodes.h ├── run.c ├── scope.c ├── scope.h ├── spec_config.h ├── specrand.c ├── specrand.h ├── stdio.c ├── sv.c ├── sv.h ├── taint.c ├── thrdvar.h ├── thread.h ├── toke.c ├── tokenpos.h ├── universal.c ├── utf8.c ├── utf8.h ├── utfebcdic.h ├── util.c ├── util.h ├── warnings.h ├── win32/ │ ├── dirent.h │ ├── netdb.h │ ├── perlhost.h │ ├── perllib.c │ ├── sys/ │ │ └── socket.h │ ├── vdir.h │ ├── vmem.h │ ├── win32.c │ ├── win32.h │ ├── win32io.c │ ├── win32iop.h │ ├── win32sck.c │ ├── win32thread.c │ └── win32thread.h └── xsutils.c ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ Heap-Layers DieHard LLVMStabilizer.so LLVMStabilizer.dylib libstabilizer.a libstabilizer.so libstabilizer.dylib runtime/obj pass/obj tests/HelloWorld/obj tests/HelloWorld/hello tests/libquantum/obj tests/libquantum/libquantum tests/bzip2/obj tests/bzip2/bzip2 tests/perlbench/obj tests/perlbench/perlbench tests/perlbench/validate nbproject ================================================ FILE: .hgignore ================================================ LLVMStabilizer.so LLVMStabilizer.dylib libstabilizer.so libstabilizer.dylib pass/obj runtime/obj tests/HelloWorld/obj tests/libquantum/obj ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: Makefile ================================================ ROOT = . DIRS = pass runtime include $(ROOT)/common.mk clean:: @$(MAKE) -C tests clean test: build @$(MAKE) -C tests test ================================================ FILE: README.md ================================================ ## Stabilizer: Statistically Sound Performance Evaluation [Charlie Curtsinger](https://curtsinger.cs.grinnell.edu/) and [Emery D. Berger](https://www.emeryberger.com) University of Massachusetts Amherst ### Abstract Researchers and software developers require effective performance evaluation. Researchers must evaluate optimizations or measure overhead. Software developers use automatic performance regression tests to discover when changes improve or degrade performance. The standard methodology is to compare execution times before and after applying changes. Unfortunately, modern architectural features make this approach unsound. Statistically sound evaluation requires multiple samples to test whether one can or cannot (with high confidence) reject the null hypothesis that results are the same before and after. However, caches and branch predictors make performance dependent on machine-specific parameters and the exact layout of code, stack frames, and heap objects. A single binary constitutes just one sample from the space of program layouts, regardless of the number of runs. Since compiler optimizations and code changes also alter layout, it is currently impossible to distinguish the impact of an optimization from that of its layout effects. **Stabilizer** is a system that enables the use of the powerful statistical techniques required for sound performance evaluation on modern architectures. Stabilizer forces executions to sample the space of memory configurations by repeatedly rerandomizing layouts of code, stack, and heap objects at runtime. STABILIZER thus makes it possible to control for layout effects. Re-randomization also ensures that layout effects follow a Gaussian distribution, enabling the use of statistical tests like ANOVA. We demonstrate Stabilizer's’s efficiency (< 7% median overhead) and its effectiveness by evaluating the impact of LLVM’s optimizations on the SPEC CPU2006 benchmark suite. We find that, while `-O2` has a significant impact relative to `-O1`, the performance impact of `-O3` over `-O2` optimizations is indistinguishable from random noise. A full description of Stabilizer is available in the [technical paper](http://www.cs.umass.edu/~emery/pubs/stabilizer-asplos13.pdf), which appeared at ASPLOS 2013. See also this [nice blog post](https://fgiesen.wordpress.com/2017/09/02/papers-i-like-part-5/) about this research. ### Building Requirements _NOTE: This project is no longer being actively maintained, and only works on quite old versions of LLVM._ Stabilizer requires [LLVM 3.1](http://llvm.org/releases/download.html#3.1). Stabilizer runs on OSX and Linux, and supports x86, x86_64, and PowerPC. Stabilizer requires LLVM 3.1. Follow the directions [here](http://clang.llvm.org/get_started.html) to build LLVM 3.1 and the Clang front-end. Stabilizer's build system assumes LLVM include files will be accessible through your default include path. By default, Stabilizer will use GCC and the [Dragonegg](http://dragonegg.llvm.org/) plugin to produce LLVM IR. Fortran programs can only be built with the GCC front end. Stabilizer is tested against GCC version 4.6.2. Stabilizer's compiler driver `szc` is written in Python. It uses the `argparse` module, so a relatively modern version of Python (>=2.7) is required. ### Building Stabilizer ``` $ git clone git://github.com/ccurtsinger/stabilizer.git stabilizer $ make ``` By default, Stabilizer is build with debug output enabled. Run `make clean release` to build the release version with asserts and debug output disabled. ### Using Stabilizer Stabilizer includes the `szc` compiler driver, which builds programs using the Stabilizer compiler transformations. `szc` passes on common GCC flags, and is compatible with C, C++ and Fortran inputs. To compile a program in `foo.c` with Stabilizer, run: ``` $ szc -Rcode -Rstack -Rheap foo.c -o foo ``` The `-R` flags enable randomizations, and may be used in any combination. Stabilizer uses GCC with the Dragonegg plugin as its default front-end. To use clang, pass `-frontend=clang` to `szc`. The resulting executable is linked against with `libstabilizer.so` (or `.dylib` on OSX). Place this library somewhere in your system's dynamic library search path or (preferably) add the Stabilizer base directory to your `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` environment variable. ### SPEC CPU2006 The `szchi.cfg` and `szclo.cfg` config files can be installed in a SPEC CPU2006 config directory to build and run benchmarks with Stabilizer. The szchi config `-O2` for base and `-O3` for peak tuning, and szclo uses `-O0` and `-O1`. The `run.py` and `process.py` scripts were used to drive experiments and collect results. The run script accepts optimization levels, benchmarks to enable (or disable with a "-" prefix), a number of runs, and build configurations in any order. For example: ``` $ ./run.py 10 bzip2 code code.stack code.heap.stack ``` This will run the `bzip2` benchmark 10 times in each of three randomization configurations. The `runspec` tool must be in your path, so `cd` to your SPEC installation and `sourceh shrc` first. ``` $ ./run.py 10 -astar code link O2 O3 ``` This will run every benchmark except `astar` 10 times with link randomization at `-O2` and `-O3` optimization levels. Be warned: there is no easy way to distinguish `O2` and `O0` results after the fact: both are marked as "base" tuning. Keep these results in separate directories. The process script reads `.rsf` files from SPEC and provides some summary statistics, or collects results in an easy-to-process format. ``` $ ./process.py $SPEC/result/*.rsf ``` This will print average runtimes for each benchmark in each configuration and tuning level for the runs in your SPEC results directory. Pass the `-trim` flag to remove the highest and lowest runtimes before computing the average. The `-norm` flag tests the results for normality using the Shapiro-Wilk test. The `-all` flag dumps all results to console, suitable for pasting into a spreadsheet or CSV file. ================================================ FILE: common.mk ================================================ # Get the current OS and architecture OS ?= $(shell uname -s) CPU ?= $(shell uname -m) PLATFORM ?= $(OS).$(CPU) TARGET_PLATFORM ?= $(PLATFORM) # Set the default compilers and flags CC = clang CXX = clang++ CFLAGS ?= -Os CXXFLAGS ?= $(CFLAGS) # Include platform-specific rules ifneq ($(CROSS_TARGET),) include $(ROOT)/platforms/$(TARGET_PLATFORM).mk else include $(ROOT)/platforms/$(PLATFORM).mk endif # Set the default shared library filename suffix SHLIB_SUFFIX ?= so # Don't build into subdirectories by default DIRS ?= # Don't require any libraries by default LIBS ?= # Set the default include directories INCLUDE_DIRS ?= # Recurse into subdirectories for the 'clean' and 'build' targets RECURSIVE_TARGETS ?= clean build # Build by default all: debug # Just remove the targets clean:: ifneq ($(TARGETS),) @rm -f $(TARGETS) endif # Set the default source and include files with wildcards SRCS ?= $(wildcard *.c) $(wildcard *.cpp) $(wildcard *.cc) $(wildcard *.C) OBJS ?= $(addprefix obj/, $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(patsubst %.cc, %.o, $(patsubst %.C, %.o, $(SRCS)))))) INCLUDES ?= $(wildcard *.h) $(wildcard *.hpp) $(wildcard *.hh) $(wildcard *.H) $(wildcard $(addsuffix /*.h, $(INCLUDE_DIRS))) $(wildcard $(addsuffix /*.hpp, $(INCLUDE_DIRS))) $(wildcard $(addsuffix /*.hh, $(INCLUDE_DIRS))) $(wildcard $(addsuffix /*.H, $(INCLUDE_DIRS))) # Clean up objects clean:: ifneq ($(OBJS),) @rm -f $(OBJS) endif INDENT +=" " export INDENT # Generate flags to link required libraries and get includes LIBFLAGS = $(addprefix -l, $(LIBS)) INCFLAGS = $(addprefix -I, $(INCLUDE_DIRS)) SHARED_LIB_TARGETS = $(filter %.$(SHLIB_SUFFIX), $(TARGETS)) STATIC_LIB_TARGETS = $(filter %.a, $(TARGETS)) OTHER_TARGETS = $(filter-out %.$(SHLIB_SUFFIX), $(filter-out %.a, $(TARGETS))) release: DEBUG= release: build debug: DEBUG=1 debug: build build:: $(TARGETS) $(INCLUDE_DIRS) obj/%.o:: %.c Makefile $(ROOT)/common.mk $(INCLUDE_DIRS) $(INCLUDES) @mkdir -p obj @echo $(INDENT)[$(notdir $(firstword $(CC)))] Compiling $< for $(if $(DEBUG),Debug,Release) build @$(CC) $(CFLAGS) $(if $(DEBUG),-g,-DNDEBUG) $(INCFLAGS) -c $< -o $@ obj/%.o:: %.cpp Makefile $(ROOT)/common.mk $(INCLUDE_DIRS) $(INCLUDES) @mkdir -p obj @echo $(INDENT)[$(notdir $(firstword $(CXX)))] Compiling $< for $(if $(DEBUG),Debug,Release) build @$(CXX) $(CXXFLAGS) $(if $(DEBUG),-g,-DNDEBUG) $(INCFLAGS) -c $< -o $@ obj/%.o:: %.cc Makefile $(ROOT)/common.mk $(INCLUDE_DIRS) $(INCLUDES) @mkdir -p obj @echo $(INDENT)[$(notdir $(firstword $(CXX)))] Compiling $< for $(if $(DEBUG),Debug,Release) build @$(CXX) $(CXXFLAGS) $(if $(DEBUG),-g,-DNDEBUG) $(INCFLAGS) -c $< -o $@ obj/%.o:: %.C Makefile $(ROOT)/common.mk $(INCLUDE_DIRS) $(INCLUDES) @mkdir -p obj @echo $(INDENT)[$(notdir $(firstword $(CXX)))] Compiling $< for $(if $(DEBUG),Debug,Release) build @$(CXX) $(CXXFLAGS) $(if $(DEBUG),-g,-DNDEBUG) $(INCFLAGS) -c $< -o $@ $(SHARED_LIB_TARGETS):: $(OBJS) $(INCLUDE_DIRS) $(INCLUDES) Makefile $(ROOT)/common.mk @echo $(INDENT)[$(notdir $(firstword $(CXXLIB)))] Linking $@ for $(if $(DEBUG),Debug,Release) build @$(CXXLIB) $(CXXFLAGS) $(INCFLAGS) $(OBJS) -o $@ $(LIBFLAGS) $(STATIC_LIB_TARGETS):: $(OBJS) $(INCLUDE_DIRS) $(INCLUDES) Makefile $(ROOT)/common.mk @echo $(INDENT)[ar] Linking $@ for $(if $(DEBUG),Debug,Release) build @ar rcs $@ $(OBJS) $(OTHER_TARGETS):: $(OBJS) $(INCLUDE_DIRS) $(INCLUDES) Makefile $(ROOT)/common.mk @echo $(INDENT)[$(notdir $(firstword $(CXX)))] Linking $@ for $(if $(DEBUG),Debug,Release) build @$(CXX) $(CXXFLAGS) $(if $(DEBUG),-g,-DNDEBUG) $(INCFLAGS) $(OBJS) -o $@ $(LIBFLAGS) $(RECURSIVE_TARGETS):: @for dir in $(DIRS); do \ echo "$(INDENT)[$@] Entering $$dir"; \ $(MAKE) -C $$dir $@ DEBUG=$(DEBUG); \ done $(ROOT)/Heap-Layers: @ echo $(INDENT)[git] Checking out Heap-Layers @rm -rf $(ROOT)/Heap-Layers @git clone https://github.com/emeryberger/Heap-Layers.git $(ROOT)/Heap-Layers $(ROOT)/DieHard/src/include $(ROOT)/DieHard/src/include/math $(ROOT)/DieHard/src/include/rng $(ROOT)/DieHard/src/include/static $(ROOT)/DieHard/src/include/util: @echo $(INDENT)[git] Checking out DieHard @rm -rf $(ROOT)/DieHard @git clone https://github.com/emeryberger/DieHard.git $(ROOT)/DieHard ================================================ FILE: pass/IntrinsicLibcalls.h ================================================ /* * IntrinsicLibcalls.h * * Created on: Apr 2, 2010 * Author: charlie */ #ifndef INTRINSICLIBCALLS_H_ #define INTRINSICLIBCALLS_H_ #include #include using namespace std; using namespace llvm; map libcall_map; set inlined; void InitLibcalls() { inlined.insert("llvm.va_start"); inlined.insert("llvm.va_copy"); inlined.insert("llvm.va_end"); inlined.insert("llvm.dbg.declare"); inlined.insert("llvm.dbg.value"); inlined.insert("llvm.expect.i8"); inlined.insert("llvm.expect.i16"); inlined.insert("llvm.expect.i32"); inlined.insert("llvm.expect.i64"); inlined.insert("llvm.uadd.with.overflow.i32"); inlined.insert("llvm.objectsize.i8"); inlined.insert("llvm.objectsize.i16"); inlined.insert("llvm.objectsize.i32"); inlined.insert("llvm.objectsize.i64"); inlined.insert("llvm.bswap.i8"); inlined.insert("llvm.bswap.i16"); inlined.insert("llvm.bswap.i32"); inlined.insert("llvm.stacksave"); inlined.insert("llvm.stackrestore"); inlined.insert("llvm.trap"); inlined.insert("llvm.uadd.with.overflow.i64"); inlined.insert("llvm.umul.with.overflow.i64"); inlined.insert("llvm.eh.exception"); inlined.insert("llvm.eh.selector"); inlined.insert("llvm.lifetime.start"); inlined.insert("llvm.lifetime.end"); libcall_map["llvm.memcpy.p0i8.p0i8.i8"] = "memcpy"; libcall_map["llvm.memcpy.p0i8.p0i8.i16"] = "memcpy"; libcall_map["llvm.memcpy.p0i8.p0i8.i32"] = "memcpy"; libcall_map["llvm.memcpy.p0i8.p0i8.i64"] = "memcpy"; libcall_map["llvm.memcpy.i8"] = "memcpy"; libcall_map["llvm.memcpy.i16"] = "memcpy"; libcall_map["llvm.memcpy.i32"] = "memcpy"; libcall_map["llvm.memcpy.i64"] = "memcpy"; libcall_map["llvm.memmove.p0i8.p0i8.i8"] = "memmove"; libcall_map["llvm.memmove.p0i8.p0i8.i16"] = "memmove"; libcall_map["llvm.memmove.p0i8.p0i8.i32"] = "memmove"; libcall_map["llvm.memmove.p0i8.p0i8.i64"] = "memmove"; libcall_map["llvm.memmove.i8"] = "memmove"; libcall_map["llvm.memmove.i16"] = "memmove"; libcall_map["llvm.memmove.i32"] = "memmove"; libcall_map["llvm.memmove.i64"] = "memmove"; libcall_map["llvm.memset.p0i8.i8"] = "memset_i8"; libcall_map["llvm.memset.p0i8.i16"] = "memset_i16"; libcall_map["llvm.memset.p0i8.i32"] = "memset_i32"; libcall_map["llvm.memset.p0i8.i64"] = "memset_i64"; libcall_map["llvm.memset.i8"] = "memset_i8"; libcall_map["llvm.memset.i16"] = "memset_i16"; libcall_map["llvm.memset.i32"] = "memset_i32"; libcall_map["llvm.memset.i64"] = "memset_i64"; libcall_map["llvm.sqrt.f32"] = "sqrtf"; libcall_map["llvm.sqrt.f64"] = "sqrt"; libcall_map["llvm.sqrt.f80"] = "sqrtl"; libcall_map["llvm.log.f32"] = "logf"; libcall_map["llvm.log.f64"] = "log"; libcall_map["llvm.log.f80"] = "logl"; libcall_map["llvm.exp.f32"] = "expf"; libcall_map["llvm.exp.f64"] = "exp"; libcall_map["llvm.exp.f80"] = "expl"; libcall_map["llvm.pow.f32"] = "powf"; libcall_map["llvm.pow.f64"] = "pow"; libcall_map["llvm.pow.f80"] = "powl"; libcall_map["llvm.powi.f32"] = "powif"; libcall_map["llvm.powi.f64"] = "powif"; libcall_map["llvm.powi.f80"] = "powil"; libcall_map["llvm.log10.f32"] = "log10f"; libcall_map["llvm.log10.f64"] = "log10"; libcall_map["llvm.log10.f80"] = "log10l"; } bool isAlwaysInlined(StringRef intrinsic) { return inlined.find(intrinsic) != inlined.end(); } StringRef GetLibcall(StringRef intrinsic) { return libcall_map[intrinsic]; map::iterator i = libcall_map.find(intrinsic); if(i == libcall_map.end()) { return ""; } else { return i->second; } } #endif /* INTRINSICLIBCALLS_H_ */ ================================================ FILE: pass/LowerIntrinsics.cpp ================================================ #define DEBUG_TYPE "lower_intrinsics" #include #include #include "llvm/Module.h" #include "llvm/Pass.h" #include "llvm/Instructions.h" #include "llvm/Support/raw_ostream.h" #include "IntrinsicLibcalls.h" using namespace std; using namespace llvm; struct LowerIntrinsics: public ModulePass { static char ID; LowerIntrinsics() : ModulePass(ID) { } virtual bool runOnModule(Module &m) { InitLibcalls(); set toDelete; for(Module::iterator fun = m.begin(); fun != m.end(); fun++) { llvm::Function &f = *fun; if(f.isIntrinsic() && !isAlwaysInlined(f.getName())) { StringRef r = GetLibcall(f.getName()); if(!r.empty()) { Function *f_extern = m.getFunction(r); if(!f_extern) { f_extern = Function::Create( f.getFunctionType(), Function::ExternalLinkage, r, &m ); } f.replaceAllUsesWith(f_extern); toDelete.insert(&f); } else { errs()<<"warning: unable to handle intrinsic "<::iterator iter = toDelete.begin(); iter != toDelete.end(); iter++) { (*iter)->eraseFromParent(); } return true; } }; char LowerIntrinsics::ID = 0; static RegisterPass X("lower-intrinsics", "Replace all intrinsics with direct libcalls"); ================================================ FILE: pass/Makefile ================================================ ROOT = .. TARGETS = $(ROOT)/LLVMStabilizer.$(SHLIB_SUFFIX) LIBS = include $(ROOT)/common.mk CXXFLAGS += -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-exceptions -fno-rtti -fno-common ================================================ FILE: pass/Stabilizer.cpp ================================================ #define DEBUG_TYPE "stabilizer" #include #include #include #include #include #include #include #include #include #include #include #include using namespace llvm; using namespace llvm::types; using namespace llvm::cl; using namespace std; enum { ALIGN = 64 }; // Randomization configuration options opt stabilize_heap ("stabilize-heap", init(false), desc("Randomize heap object placement")); opt stabilize_stack ("stabilize-stack", init(false), desc("Randomize stack frame placement")); opt stabilize_code ("stabilize-code", init(false), desc("Randomize function placement")); struct StabilizerPass : public ModulePass { static char ID; Function* registerFunction; Function* registerConstructor; Function* registerStackPad; StabilizerPass() : ModulePass(ID) {} enum Platform { x86_64, x86_32, PowerPC, INVALID }; /** * \brief Get the architecture targeted by a given module * \arg m The module being transformed * \returns A Platform value */ Platform getPlatform(Module& m) { string triple = m.getTargetTriple(); // Convert the target-triple to lowercase using C++'s elegant, intuitive API transform(triple.begin(), triple.end(), triple.begin(), ::tolower); if(triple.find("x86_64") != string::npos || triple.find("amd64") != string::npos) { return x86_64; } else if(triple.find("i386") != string::npos || triple.find("i486") != string::npos || triple.find("i586") != string::npos || triple.find("i686") != string::npos) { return x86_32; } else if(triple.find("powerpc") != string::npos) { return PowerPC; } else { return INVALID; } } /** * \brief Get the intptr_t type for the given platform * \arg m The module being transformed * \returns The width of a pointer in bits */ Type* getIntptrType(Module& m) { if(m.getPointerSize() == Module::Pointer32) { return Type::getInt32Ty(m.getContext()); } else { return Type::getInt64Ty(m.getContext()); } } size_t getIntptrSize(Module& m) { if(m.getPointerSize() == Module::Pointer32) { return 32; } else { return 64; } } Constant* getInt(Module& m, size_t bits, uint64_t value, bool is_signed) { return Constant::getIntegerValue(Type::getIntNTy(m.getContext(), bits), APInt(bits, value, is_signed)); } Constant* getIntptr(Module& m, uint64_t value, bool is_signed) { return getInt(m, getIntptrSize(m), value, is_signed); } /** * \brief Check if the target platform uses PC-relative addressing for data * \arg m The module being transformed * \returns true if the platform supports PC-relative data addressing modes */ bool isDataPCRelative(Module& m) { switch(getPlatform(m)) { case x86_64: return true; case x86_32: case PowerPC: return false; default: return true; } } /** * \brief Entry point for the Stabilizer compiler pass * \arg m The module being transformed * \returns whether or not the module was modified (always true) */ virtual bool runOnModule(Module &m) { // Replace calls to heap functions with Stabilizer's random heap if(stabilize_heap) { randomizeHeap(m); } // Build a set of locally-defined functions set local_functions; for(Module::iterator f = m.begin(); f != m.end(); f++) { if(!f->isIntrinsic() && !f->isDeclaration() && !f->getName().equals("__gxx_personality_v0")) { local_functions.insert(&*f); } } declareRuntimeFunctions(m); map stackPads; // Declare the stack pad table type Type* stackPadType = Type::getInt8Ty(m.getContext()); // Enable stack randomization if(stabilize_stack) { // Transform each function for(set::iterator f_iter = local_functions.begin(); f_iter != local_functions.end(); f_iter++) { Function* f = *f_iter; // Create the stack pad table GlobalVariable* pad = new GlobalVariable( m, stackPadType, false, GlobalValue::InternalLinkage, getInt(m, 8, 0, false), f->getName()+".stack_pad" ); stackPads[f] = pad; randomizeStack(m, *f, pad); } } // Get any existing module constructors vector old_ctors = getConstructors(m); // Create a new constructor Function* ctor = makeConstructor(m, "stabilizer.module_ctor"); BasicBlock* ctor_bb = BasicBlock::Create(m.getContext(), "", ctor); // Enable code randomization if(stabilize_code) { // Transform each function and register it with the stabilizer runtime for(set::iterator f_iter = local_functions.begin(); f_iter != local_functions.end(); f_iter++) { Function* f = *f_iter; vector args = randomizeCode(m, *f); Value* table = stackPads[f]; if(table == NULL) { table = Constant::getNullValue(PointerType::get(stackPadType, 0)); } args.push_back(table); CallInst::Create(registerFunction, args, "", ctor_bb); } } // Register each existing constructor with the stabilizer runtime for(vector::iterator ctor_iter = old_ctors.begin(); ctor_iter != old_ctors.end(); ctor_iter++) { vector args; args.push_back(*ctor_iter); CallInst::Create(registerConstructor, args, "", ctor_bb); } // If we're not randomizing code, declare the stack tables by themselves if(stabilize_stack && !stabilize_code) { for(map::iterator iter = stackPads.begin(); iter != stackPads.end(); iter++) { vector args; args.push_back(iter->second); CallInst::Create(registerStackPad, args, "", ctor_bb); } } ReturnInst::Create(m.getContext(), ctor_bb); Function *main = m.getFunction("main"); if(main != NULL) { main->setName("stabilizer_main"); } return true; } /** * \brief Get a list of module constructors * \arg m The module to scan */ vector getConstructors(Module& m) { vector result; // Get the constructor table GlobalVariable *ctors = m.getGlobalVariable("llvm.global_ctors", false); // If not found, there aren't any constructors if(ctors != NULL) { // Get the constructor table initializer Constant* initializer = ctors->getInitializer(); if(isa(initializer)) { ConstantArray* table = dyn_cast(initializer); // Get each entry in the table for(ConstantArray::op_iterator i = table->op_begin(); i != table->op_end(); i++) { ConstantStruct* entry = dyn_cast(i->get()); Constant* f = entry->getOperand(1); result.push_back(f); } } else { // Must be an empty ctor table... } } return result; } /** * \brief Create a single module constructor * Replaces any existing constructors * \arg m The module to add a constructor to * \arg name The name of the new constructor function * \returns The new constructor function */ Function* makeConstructor(Module& m, StringRef name) { // Void type Type* void_t = Type::getVoidTy(m.getContext()); // 32 bit integer type Type* i32_t = Type::getInt32Ty(m.getContext()); // Constructor function type FunctionType* ctor_fn_t = FunctionType::get(void_t, false); PointerType* ctor_fn_p_t = PointerType::get(ctor_fn_t, 0); // Constructor table entry type StructType* ctor_entry_t = StructType::get(i32_t, ctor_fn_p_t, NULL); // Create constructor function Function* init = Function::Create(ctor_fn_t, Function::InternalLinkage, name, &m); // Sequence of constructor table entries vector ctor_entries; // Add the entry for the new constructor ctor_entries.push_back( ConstantStruct::get(ctor_entry_t, ConstantInt::get(i32_t, 65535, false), init, NULL ) ); // set up the constant initializer for the new constructor table Constant *ctor_array_const = ConstantArray::get( ArrayType::get( ctor_entries[0]->getType(), ctor_entries.size() ), ctor_entries ); // create the new constructor table GlobalVariable *new_ctors = new GlobalVariable( m, ctor_array_const->getType(), true, GlobalVariable::AppendingLinkage, ctor_array_const, "" ); // Get the existing constructor array from the module, if any GlobalVariable *ctors = m.getGlobalVariable("llvm.global_ctors", false); // give the new constructor table the appropriate name, taking it from the current table if one exists if(ctors) { new_ctors->takeName(ctors); ctors->setName("old.llvm.global_ctors"); ctors->setLinkage(GlobalVariable::PrivateLinkage); ctors->eraseFromParent(); } else { new_ctors->setName("llvm.global_ctors"); } return init; } /** * \brief Randomize the program stack on each function call * Adds a random pad (obtained from the Stabilizer runtime) to the stack * pointer prior to each function call, then restores the stack after the call. * * \arg m The module being transformed * \arg f The function being transformed */ void randomizeStack(Module& m, llvm::Function& f, GlobalVariable* stackPad) { Function* stacksave = Intrinsic::getDeclaration(&m, Intrinsic::stacksave); Function* stackrestore = Intrinsic::getDeclaration(&m, Intrinsic::stackrestore); // Get all the callsites in this function vector calls; for(Function::iterator b_iter = f.begin(); b_iter != f.end(); b_iter++) { BasicBlock& b = *b_iter; for(BasicBlock::iterator i_iter = b.begin(); i_iter != b.end(); i_iter++) { Instruction& i = *i_iter; if(isa(&i)) { CallInst* c = dyn_cast(&i); calls.push_back(c); } } } ////////////////////////////////// // Pad the stack before each callsite for(vector::iterator c_iter = calls.begin(); c_iter != calls.end(); c_iter++) { CallInst* c = *c_iter; Instruction* next = c->getNextNode(); // Load the stack pad size and widen it to an intptr Value* pad = new LoadInst(stackPad, "pad", c); Value* wide_pad = ZExtInst::CreateZExtOrBitCast(pad, getIntptrType(m), "", c); // Multiply the pad by the required stack alignment BinaryOperator* padSize = BinaryOperator::CreateNUWMul( wide_pad, getIntptr(m, 16, false), "aligned_pad", c ); CallInst* oldStack = CallInst::Create(stacksave, "", c); PtrToIntInst* oldStackInt = new PtrToIntInst(oldStack, getIntptrType(m), "", c); BinaryOperator* newStackInt = BinaryOperator::CreateSub(oldStackInt, padSize, "", c); IntToPtrInst* newStack = new IntToPtrInst(newStackInt, Type::getInt8PtrTy(m.getContext()), "", c); vector newStackArgs; newStackArgs.push_back(newStack); CallInst::Create(stackrestore, newStackArgs, "", c); vector oldStackArgs; oldStackArgs.push_back(oldStack); CallInst::Create(stackrestore, oldStackArgs, "", next); } } /** * \brief Transform a function to reference globals only through a relocation table. * * \arg m The module being transformed * \arg f The function being transformed * \returns The arguments to be passed to stabilizer_register_function */ vector randomizeCode(Module& m, Function& f) { // Add a dummy function used to compute the size Function* next = Function::Create( FunctionType::get(Type::getVoidTy(m.getContext()), false), GlobalValue::InternalLinkage, "stabilizer.dummy."+f.getName() ); // Align the following function to a cache line to avoid mixing code/data in cache next->setAlignment(ALIGN); // Put a basic block and return instruction into the dummy function BasicBlock *dummy_block = BasicBlock::Create(m.getContext(), "", next); ReturnInst::Create(m.getContext(), dummy_block); // Ensure the dummy is placed immediately after our function if(f.getNextNode() == NULL) { m.getFunctionList().setNext(&f, next); m.getFunctionList().addNodeToList(next); } else { m.getFunctionList().setNext(next, f.getNextNode()); m.getFunctionList().setNext(&f, next); m.getFunctionList().addNodeToList(next); } // Remove stack protection (creates implicit global references) f.removeFnAttr(Attribute::StackProtect); f.removeFnAttr(Attribute::StackProtectReq); // Remove linkonce_odr linkage if(f.getLinkage() == GlobalValue::LinkOnceODRLinkage) { f.setLinkage(GlobalValue::ExternalLinkage); } // Replace some floating point operations with calls to un-randomized functions //if(isDataPCRelative(m)) { // Always do this--required on PowerPC extractFloatOperations(f); //} // Collect all the referenced global values in this function map > references = findPCRelativeUsesIn(f); if(references.size() > 0) { // Build an ordered list of referenced constants vector referencedValues; for(map >::iterator p_iter = references.begin(); p_iter != references.end(); p_iter++) { pair > p = *p_iter; referencedValues.push_back(p.first); } // Create an ordered list of types for the referenced constants vector referencedTypes; for(vector::iterator c_iter = referencedValues.begin(); c_iter != referencedValues.end(); c_iter++) { Constant* c = *c_iter; referencedTypes.push_back(c->getType()); } // Create the struct type for the relocation table StructType* relocationTableType = StructType::create( referencedTypes, (f.getName()+".relocation_table_t").str(), false ); // Create the relocation table global variable GlobalVariable* relocationTable = new GlobalVariable( m, relocationTableType, false, // No, the table needs to be mutable GlobalVariable::InternalLinkage, ConstantStruct::get(relocationTableType, referencedValues), f.getName()+".relocation_table" ); // The referenced relocation table may not be the global one (for PC-relative data) Constant* actualRelocationTable = relocationTable; // Cast next-function pointer to the relocation table type for PC-relative data if(isDataPCRelative(m)) { Type* ptr = PointerType::get(relocationTableType, 0); actualRelocationTable = ConstantExpr::getPointerCast(next, ptr); } // Rewrite global references to use the relocation table size_t index = 0; for(vector::iterator c_iter = referencedValues.begin(); c_iter != referencedValues.end(); c_iter++) { Constant* c = *c_iter; for(set::iterator u_iter = references[c].begin(); u_iter != references[c].end(); u_iter++) { Use* u = *u_iter; Instruction* insertion_point = dyn_cast(u->getUser()); assert(insertion_point != NULL && "Only instruction uses can be rewritten"); if(isa(insertion_point)) { PHINode* phi = dyn_cast(insertion_point); BasicBlock *incoming = phi->getIncomingBlock(*u); insertion_point = incoming->getTerminator(); } // Get the relocation table slot vector indices; indices.push_back(Constant::getIntegerValue(Type::getInt32Ty(m.getContext()), APInt(32, 0, false))); indices.push_back(Constant::getIntegerValue(Type::getInt32Ty(m.getContext()), APInt(32, (uint64_t)index, false))); Constant* slot = ConstantExpr::getGetElementPtr( actualRelocationTable, indices, true // Yes, it is in bounds ); Value* loaded = new LoadInst( slot, c->getName()+".indirect", insertion_point ); u->set(loaded); } index++; } vector args; // The function base args.push_back(ConstantExpr::getPointerCast(&f, Type::getInt8PtrTy(m.getContext()))); // The function limit args.push_back(ConstantExpr::getPointerCast(next, Type::getInt8PtrTy(m.getContext()))); // The global relocation table args.push_back(ConstantExpr::getPointerCast(relocationTable, Type::getInt8PtrTy(m.getContext()))); // The size of the relocation table args.push_back(ConstantExpr::getIntegerCast(ConstantExpr::getSizeOf(relocationTableType), Type::getInt32Ty(m.getContext()), false)); // If true, the function uses an adjacent relocation table, not the global args.push_back(Constant::getIntegerValue(Type::getInt1Ty(m.getContext()), APInt(1, isDataPCRelative(m), false))); return args; } else { vector args; // The function base args.push_back(ConstantExpr::getPointerCast(&f, Type::getInt8PtrTy(m.getContext()))); // The function limit args.push_back(ConstantExpr::getPointerCast(next, Type::getInt8PtrTy(m.getContext()))); // The global relocation table (null) args.push_back(Constant::getNullValue(Type::getInt8PtrTy(m.getContext()))); // The size of the relocation table (0) args.push_back(Constant::getIntegerValue(Type::getInt32Ty(m.getContext()), APInt(32, 0, false))); // PC-relative data? Doesn't matter args.push_back(Constant::getIntegerValue(Type::getInt1Ty(m.getContext()), APInt(1, 0, false))); return args; } } /** * Check if a value is or contains a global value. */ bool containsGlobal(Value* v) { if(isa(v)) { Function* f = dyn_cast(v); if(f->isIntrinsic() || f->getName().equals("__gxx_personality_v0")) { return false; } else { return true; } } else if(isa(v)) { return true; } else if(isa(v)) { ConstantExpr* e = dyn_cast(v); for(ConstantExpr::op_iterator use = e->op_begin(); use != e->op_end(); use++) { if(containsGlobal(use->get())) { return true; } } } return false; } /** * \brief Find all uses inside instructions that may result in PC-relative addressing. * * \arg f The function to scan for PC-relative uses * \returns A map of all used values, each with a set of uses */ map > findPCRelativeUsesIn(Function& f) { map > result; for(Function::iterator b = f.begin(); b != f.end(); b++) { for(BasicBlock::iterator i_iter = b->begin(); i_iter != b->end(); i_iter++) { Instruction* i = &*i_iter; if(isa(i)) { PHINode* phi = dyn_cast(i); for(size_t index = 0; index < phi->getNumIncomingValues(); index++) { Value* operand = phi->getIncomingValue(index); if(isa(operand) && containsGlobal(operand)) { Constant* c = dyn_cast(operand); if(result.find(c) == result.end()) { result[c] = set(); } size_t operand_index = phi->getOperandNumForIncomingValue(index); Use& use = phi->getOperandUse(operand_index); result[c].insert(&use); } } } else { // TODO: only process control flow targets on platforms that don't have PC-relative data addressing for(Instruction::op_iterator use = i->op_begin(); use != i->op_end(); use++) { Value* operand = use->get(); if(isa(operand) && containsGlobal(operand)) { Constant* c = dyn_cast(operand); if(result.find(c) == result.end()) { result[c] = set(); } result[c].insert(use); } } } } } return result; } /** * \brief Replace certain floating point operations with function calls. * Some floating point operations (definitely int-to-float and float-to-int) * create implicit references to floating point constants. Replace these * with function calls so they don't produce PC-relative data references in * randomizable code. * * \arg f The function to scan for floating point operations */ void extractFloatOperations(Function& f) { Module& m = *f.getParent(); vector to_delete; for(Function::iterator b_iter = f.begin(); b_iter != f.end(); b_iter++) { BasicBlock& b = *b_iter; for(BasicBlock::iterator i_iter = b.begin(); i_iter != b.end(); i_iter++) { Instruction& i = *i_iter; if(isa(&i) || isa(&i) || isa(&i) || isa(&i) || (isa(&i) && getPlatform(m) == PowerPC)) { Function* f = getFloatConversion(m, i.getOpcode(), i.getOperand(0)->getType(), i.getType()); vector args; args.push_back(i.getOperand(0)); CallInst *ci = CallInst::Create(f, ArrayRef(args), "", &i); i.replaceAllUsesWith(ci); to_delete.push_back(&i); } else { for(Instruction::op_iterator op_iter = i.op_begin(); op_iter != i.op_end(); op_iter++) { Value* op = *op_iter; if(isa(op)) { Constant* c = dyn_cast(op); if(containsConstantFloat(c)) { Type* t = op->getType(); GlobalVariable* g = new GlobalVariable(m, t, true, GlobalVariable::InternalLinkage, c, "fconst"); Instruction* insertion_point = &i; if(isa(insertion_point)) { PHINode* phi = dyn_cast(insertion_point); BasicBlock *incoming = phi->getIncomingBlock(*op_iter); insertion_point = incoming->getTerminator(); } LoadInst* load = new LoadInst(g, "fconst.load", insertion_point); op_iter->set(load); } } } } } } for(vector::iterator i_iter = to_delete.begin(); i_iter != to_delete.end(); i_iter++) { Instruction* i = *i_iter; i->eraseFromParent(); } } /** * \brief Check if a constant value contains a floating point constant * \arg c The constant to check * \returns true if c is a ConstantFP or contains a ConstantFP */ bool containsConstantFloat(Constant* c) { if(isa(c)) { return true; } else if(isa(c)) { for(Constant::op_iterator op_iter = c->op_begin(); op_iter != c->op_end(); op_iter++) { Constant* op = dyn_cast(op_iter->get()); if(containsConstantFloat(op)) { return true; } } } return false; } /** * \brief Get a function to convert between floating point and integer types * Extracts floating point conversion operations into an unrandomized function, * which sidesteps issues caused by implicit global references by the ftosi, * ftoui, uitof, and sitof instructions. * * \arg m The module being processed * \arg in The type of the input value (some float or int type) * \arg out The type of the output value (some float or int type) * \arg is_signed If true, the function should generate a signed integer conversion * \returns A pointer to a function that performs the required type conversion */ Function* getFloatConversion(Module& m, unsigned opcode, Type* in, Type* out) { // LLVM stream bullshit string name; raw_string_ostream ss(name); if(opcode == Instruction::FPToUI) { ss << "fptoui"; } else if(opcode == Instruction::FPToSI) { ss << "fptosi"; } else if(opcode == Instruction::UIToFP) { ss << "uitofp"; } else if(opcode == Instruction::SIToFP) { ss << "sitofp"; } else if(opcode == Instruction::FPTrunc) { ss << "fptrunc"; } else { errs() << "Invalid float conversion arguments\n"; errs() << " opcode: " << opcode << "\n"; errs() << " in: "; in->print(errs()); errs() << "\n"; errs() << " out: "; out->print(errs()); errs() << "\n"; abort(); } // Include in and out types in the function name ss<<"."; in->print(ss); ss<<"."; out->print(ss); // Check the module for a function with this name Function *f = m.getFunction(ss.str()); // If not found, create the function if(f == NULL) { vector params; params.push_back(in); f = Function::Create( FunctionType::get(out, params, false), Function::InternalLinkage, ss.str(), &m ); BasicBlock *b = BasicBlock::Create(m.getContext(), "", f); Instruction *r; // Insert the required conversion instruction if(opcode == Instruction::FPToUI) { r = new FPToUIInst(&*f->arg_begin(), out, "", b); } else if(opcode == Instruction::FPToSI) { r = new FPToSIInst(&*f->arg_begin(), out, "", b); } else if(opcode == Instruction::UIToFP) { r = new UIToFPInst(&*f->arg_begin(), out, "", b); } else if(opcode == Instruction::SIToFP) { r = new SIToFPInst(&*f->arg_begin(), out, "", b); } else if(opcode == Instruction::FPTrunc) { r = new FPTruncInst(&*f->arg_begin(), out, "", b); } ReturnInst::Create(m.getContext(), r, b); } return f; } /** * \brief Replace all heap calls with references to Stabilizer's randomized * heap. * * \arg m The module to transform */ void randomizeHeap(Module& m) { Function *malloc_fn = m.getFunction("malloc"); Function *calloc_fn = m.getFunction("calloc"); Function *realloc_fn = m.getFunction("realloc"); Function *free_fn = m.getFunction("free"); if(malloc_fn) { Function *stabilizer_malloc = Function::Create( malloc_fn->getFunctionType(), Function::ExternalLinkage, "stabilizer_malloc", &m ); malloc_fn->replaceAllUsesWith(stabilizer_malloc); } if(calloc_fn) { Function *stabilizer_calloc = Function::Create( calloc_fn->getFunctionType(), Function::ExternalLinkage, "stabilizer_calloc", &m ); calloc_fn->replaceAllUsesWith(stabilizer_calloc); } if(realloc_fn) { Function *stabilizer_realloc = Function::Create( realloc_fn->getFunctionType(), Function::ExternalLinkage, "stabilizer_realloc", &m ); realloc_fn->replaceAllUsesWith(stabilizer_realloc); } if(free_fn) { Function *stabilizer_free = Function::Create( free_fn->getFunctionType(), Function::ExternalLinkage, "stabilizer_free", &m ); free_fn->replaceAllUsesWith(stabilizer_free); } } /** * \brief Declare all of Stabilizer's runtime functions * \arg m The module to transform */ void declareRuntimeFunctions(Module& m) { // Declare the register_function runtime function vector register_function_params; register_function_params.push_back(Type::getInt8PtrTy(m.getContext())); register_function_params.push_back(Type::getInt8PtrTy(m.getContext())); register_function_params.push_back(Type::getInt8PtrTy(m.getContext())); register_function_params.push_back(Type::getInt32Ty(m.getContext())); register_function_params.push_back(Type::getInt1Ty(m.getContext())); register_function_params.push_back(PointerType::get(Type::getInt8Ty(m.getContext()), 0)); registerFunction = Function::Create( FunctionType::get(Type::getVoidTy(m.getContext()), register_function_params, false), Function::ExternalLinkage, "stabilizer_register_function", &m ); registerFunction->addFnAttr(Attribute::NonLazyBind); // Declare the register_constructor runtime function registerConstructor = Function::Create( TypeBuilder::get(m.getContext()), Function::ExternalLinkage, "stabilizer_register_constructor", &m ); registerConstructor->addFnAttr(Attribute::NonLazyBind); // Declare the register_stack_table runtime function vector params; params.push_back(PointerType::get(Type::getInt8Ty(m.getContext()), 0)); registerStackPad = Function::Create( FunctionType::get(Type::getVoidTy(m.getContext()), params, false), Function::ExternalLinkage, "stabilizer_register_stack_pad", &m ); registerStackPad->addFnAttr(Attribute::NonLazyBind); } }; char StabilizerPass::ID = 0; static RegisterPass X("stabilize", "Add support for runtime randomization of program layout"); ================================================ FILE: platforms/Darwin.i386.mk ================================================ include $(ROOT)/platforms/Darwin.x86_64.mk CFLAGS += -m32 CXXFLAGS += -m32 ================================================ FILE: platforms/Darwin.x86_64.mk ================================================ SHLIB_SUFFIX = dylib CFLAGS = -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS SZCFLAGS = -frontend=clang LD_PATH_VAR = DYLD_LIBRARY_PATH CXXLIB = $(CXX) -shared -fPIC -compatibility_version 1 -current_version 1 -Wl,-flat_namespace,-undefined,suppress -dynamiclib ================================================ FILE: platforms/Linux.i386.mk ================================================ include $(ROOT)/platforms/Linux.x86_64.mk CFLAGS += -m32 CXXFLAGS += -m32 ================================================ FILE: platforms/Linux.i686.mk ================================================ include $(ROOT)/platforms/Linux.i386.mk ================================================ FILE: platforms/Linux.ppc.mk ================================================ CC = gcc CXX = g++ CFLAGS = CXXFLAGS = $(CFLAGS) SZCFLAGS = -frontend=clang LD_PATH_VAR = LD_LIBRARY_PATH CXXLIB = $(CXX) -shared ================================================ FILE: platforms/Linux.x86_64.mk ================================================ SZCFLAGS = LD_PATH_VAR = LD_LIBRARY_PATH CXXFLAGS = -fPIC CXXLIB = $(CXX) -shared -fPIC ================================================ FILE: process.py ================================================ #!/usr/bin/env python import sys import argparse from numpy import mean, median, std, histogram from scipy.stats import shapiro, anderson parser = argparse.ArgumentParser(description='SPEC CPU2006 Output File Processor') parser.add_argument('-norm', action='store_true') parser.add_argument('-range', action='store_true') parser.add_argument('-len', action='store_true') parser.add_argument('-r', action='store_true') parser.add_argument('-trim', action='store_true') parser.add_argument('-all', action='store_true') parser.add_argument('-ext', choices=['code', 'code.stack', 'code.heap.stack', 'link'], default=False) parser.add_argument('-tune', choices=['base', 'peak'], default=False) parser.add_argument('files', nargs='+') args = parser.parse_args() if args.ext == False: args.ext = ['code', 'code.stack', 'code.heap.stack', 'link'] else: args.ext = [args.ext] if args.tune == False: args.tune = ['base', 'peak'] else: args.tune = [args.tune] results = [] for filename in args.files: f = open(filename, 'r') bits = {} for line in f: if line.startswith('spec.cpu2006.results'): (s, c, r, bmk, tune, n, key_value) = line.split('.', 6) (key, value) = key_value.split(':', 1) (ignore, bmk) = bmk.split('_') if bmk not in bits: bits[bmk] = {} if n not in bits[bmk]: bits[bmk][n] = {} bits[bmk][n]['tune'] = tune bits[bmk][n][key.strip()] = value.strip() for bmk in bits: for n in bits[bmk]: results.append(bits[bmk][n]) def where(results, key, *values): return filter(lambda r: r[key] in values, results) def distinct(results, key): values = [] for r in results: if r[key] not in values: values.append(r[key]) return values def keymap(results, key, f): next_results = [] for r in results: next_r = dict(r) next_r[key] = f(r[key]) next_results.append(next_r) return next_results def get(results, *keys): next_results = [] for r in results: next_r = {} for k in r: if k in keys: next_r[k] = r[k] next_results.append(next_r) return next_results def group(results, *keys): if len(keys) == 0: return results key = keys[0] grouped = {} for r in results: if r[key] not in grouped: grouped[r[key]] = [] new_r = dict(r) del new_r[key] if len(new_r) == 1: new_r = new_r.values()[0] grouped[r[key]].append(new_r) for g in grouped: grouped[g] = group(grouped[g], *keys[1:]) return grouped def pad(s, length=20): if len(s) < length: return s + ' '*(length - len(s)) else: return s[0:length] results = where(results, 'valid', 'S') results = get(results, 'benchmark', 'tune', 'reported_time', 'ext') results = keymap(results, 'benchmark', lambda b: b.split('.')[1]) results = keymap(results, 'reported_time', float) exts = distinct(results, 'ext') tunes = distinct(results, 'tune') benchmarks = distinct(results, 'benchmark') results = group(results, 'benchmark', 'tune', 'ext') if args.trim: for benchmark in results: for tune in results[benchmark]: for ext in results[benchmark][tune]: values = results[benchmark][tune][ext] hi = max(values) lo = min(values) del values[values.index(hi)] del values[values.index(lo)] results[benchmark][tune][ext] = values #if args.r: # for benchmark in results: # sets = [] # for tune in results[benchmark]: # for ext in results[benchmark][tune]: # name = benchmark+'_'+tune+'_'+ext.replace('.', '_') # values = results[benchmark][tune][ext] # print name+' = c('+', '.join(map(str, values))+')' # sets.append('"'+ext.replace('.', '_')+'"='+name) # print benchmark+' <- list(' + ', '.join(sets) + ')' if args.r: benchmarks = [] tunes = [] exts = [] times = [] for benchmark in results: for tune in results[benchmark]: if tune in args.tune: for ext in results[benchmark][tune]: if ext in args.ext: for time in results[benchmark][tune][ext]: benchmarks.append('"'+benchmark+'"') tunes.append('"'+tune+'"') exts.append('"'+ext+'"') times.append(str(time)) print 'dat <- data.frame(benchmark=c(' + ', '.join(benchmarks) + '), tune=c(' + ', '.join(tunes) + '), ext=c(' + ', '.join(exts) + '), time=c(' + ', '.join(times) + '))' elif args.all: benchmarks.sort() tunes.sort() exts.sort() for tune in tunes: if tune in args.tune: for benchmark in benchmarks: for ext in exts: if ext in args.ext: if tune in results[benchmark] and ext in results[benchmark][tune]: row = [benchmark+'_'+ext+'_'+tune] row += results[benchmark][tune][ext] print ', '.join(map(str, row)) else: benchmarks.sort() tunes.sort() exts.sort() headings = ['Benchmark'] columns = [] for ext in exts: if ext in args.ext: for tune in tunes: if tune in args.tune: found = False for benchmark in benchmarks: found |= tune in results[benchmark] and ext in results[benchmark][tune] if found: headings.append(ext+'_'+tune) columns.append(ext+'_'+tune) print ', '.join(map(pad, headings)) for benchmark in benchmarks: print pad(benchmark)+',', values = [] for ext in exts: if ext in args.ext: for tune in tunes: if tune in args.tune: if (ext+'_'+tune) in columns: if (tune not in results[benchmark] or ext not in results[benchmark][tune]): values.append('') elif args.norm: if len(results[benchmark][tune][ext]) < 3: values.append('') else: (k2, p) = shapiro(results[benchmark][tune][ext]) values.append(p > 0.05) #(A2, critical, sig) = anderson(results[benchmark][ext]) #values.append(A2 <= critical[1]) elif args.range: avg = mean(results[benchmark][tune][ext]) up = max(results[benchmark][tune][ext]) - avg down = avg - min(results[benchmark][tune][ext]) values.append(max(up / avg, down / avg)) elif args.len: values.append(len(results[benchmark][tune][ext])) else: values.append(mean(results[benchmark][tune][ext])) print ', '.join(map(pad, map(str, values))) ================================================ FILE: run.py ================================================ #!/usr/bin/env python import os import sys benchmarks = ['astar', 'bwaves', 'bzip2', 'cactusADM', 'calculix', 'gcc', 'gobmk', 'gromacs', 'h264ref', 'hmmer', 'lbm', 'leslie3d', 'libquantum', 'mcf', 'milc', 'namd', 'perlbench', 'sjeng', 'sphinx3', 'wrf', 'zeusmp'] iterations = 10 to_run = [] dont_run = [] configs = ['code', 'code.stack', 'code.heap.stack', 'stack', 'heap.stack', 'heap', 'link'] tune = 'O2' size = 'train' run_configs = [] for arg in sys.argv[1:]: if arg in benchmarks: to_run.append(arg) elif arg.startswith('-') and arg[1:] in benchmarks: dont_run.append(arg[1:]) elif arg in configs: run_configs.append(arg) elif arg in ['O0', 'O1', 'O2', 'O3']: tune = arg elif arg in ['test', 'train', 'ref']: size = arg else: iterations = int(arg) if len(to_run) == 0: to_run = benchmarks if len(run_configs) == 0: run_configs = configs for bmk in dont_run: if bmk in to_run: to_run.remove(bmk) def runspec(bench, size, tune, ext, n, rebuild=False): if tune == 'O0' or tune == 'O1': real_config = 'szclo' elif tune == 'O2' or tune == 'O3': real_config = 'szchi' if tune == 'O0' or tune == 'O2': real_tune = 'base' elif tune == 'O1' or tune == 'O3': real_tune = 'peak' cmd = 'runspec --config='+real_config+' --mach=linux --action=run --tune='+real_tune+' --size='+size+' --ext='+ext+' -n '+str(n) if rebuild: cmd += ' --rebuild' cmd += ' '+bench os.system(cmd) for bmk in to_run: for config in run_configs: if config == 'link': for i in range(0, iterations): runspec(bmk, size, tune, 'link', 1, rebuild=True) else: runspec(bmk, size, tune, config, iterations, rebuild=True) ================================================ FILE: runtime/Arch.h ================================================ /** * Macros for target-specific code. */ #if !defined(RUNTIME_ARCH_H) #define RUNTIME_ARCH_H #if defined(__APPLE__) # define _OSX(x) x # define IS_OSX 1 #else # define _OSX(x) # define IS_OSX 0 #endif #if defined(__linux__) # define _LINUX(x) x # define IS_LINUX 1 #else # define _LINUX(x) # define IS_LINUX 0 #endif #if defined(__i386__) # define _X86(x) x # define _AnyX86(x) x # define IS_X86 1 #else # define _X86(x) # define IS_X86 0 #endif #if defined(__x86_64__) # define _X86_64(x) x # define _AnyX86(x) x # define IS_X86_64 1 #else # define _X86_64(x) # define IS_X86_64 0 #endif #if defined(__powerpc__) || defined(__ppc__) # define _PPC(x) x # define _AnyX86(x) # define IS_PPC 1 #else # define _PPC(x) # define IS_PPC 0 #endif #endif ================================================ FILE: runtime/Context.h ================================================ /** * Signal context and stack-walking code */ #if !defined(RUNTIME_CONTEXT_H) #define RUNTIME_CONTEXT_H #if !defined(_XOPEN_SOURCE) // Digging inside of ucontext_t is deprecated unless this macros is defined #define _XOPEN_SOURCE #endif #include #include #include #include "Arch.h" /** * A stack walking iterator */ struct Stack { private: /// A pointer to the current stack frame void** _frame; public: /** * Initialize a stack with a frame address * \arg frame The starting frame pointer */ inline Stack(void* frame) : _frame((void**)frame) {} /** * Get the return address from the current frame * \returns A reference to the return address */ inline void*& ret() { return _frame[1]; } /** * Get the next frame pointer up the stack * \returns A reference to the next frame pointer */ inline void*& fp() { return _frame[0]; } /** * Move up to the next frame */ inline void operator++(int) { _frame = (void**)fp(); } }; struct Context { private: /// The actual signal context ucontext_t* _c; public: Context(void* c) : _c((ucontext_t*)c) {} inline void*& ip() { _OSX(_AnyX86(return *(void**)&_c->uc_mcontext->__ss.__rip)); _LINUX(_AnyX86(return *(void**)&_c->uc_mcontext.gregs[REG_RIP])); _LINUX(_PPC(return *(void**)&_c->uc_mcontext.regs->nip)); ABORT("Instruction pointer not available on current target"); } /** * Get a reference to the context stack pointer * \returns A reference to the stack pointer */ inline void*& sp() { _OSX(_AnyX86(return *(void**)&_c->uc_mcontext->__ss.__rsp)); _LINUX(_AnyX86(return *(void**)&_c->uc_mcontext.gregs[REG_RSP])); _LINUX(_PPC(return *(void**)&_c->uc_mcontext.regs->gpr[PT_R1])); ABORT("Stack pointer not available on current target"); } /** * Get a reference to the context frame pointer * \returns A reference to the frame pointer */ inline void*& fp() { _OSX(_AnyX86(return *(void**)&_c->uc_mcontext->__ss.__rbp)); _LINUX(_AnyX86(return *(void**)&_c->uc_mcontext.gregs[REG_RBP])); _LINUX(_PPC(return *(void**)&_c->uc_mcontext.regs->gpr[PT_R1])); ABORT("Frame pointer not available on current target"); } /** * Get an iterator to walk the context's stack * \returns A Stack iterator */ inline Stack stack() { return Stack(fp()); } }; #endif ================================================ FILE: runtime/Debug.cpp ================================================ #include #include "Debug.h" #include "FunctionLocation.h" /** * Dump a stack trace to screen. * * Use the system backtrace() function to get return address on the stack, * rewrite them to refer to original code locations, then use * backtrace_symbols() to resolve symbols. */ void panic() { void* real_buffer[100]; void* adjusted_buffer[100]; size_t num = backtrace(real_buffer, 100); for(size_t i=0; i #include #define DEBUG(...) fprintf(stderr, " [%s:%d] ", __FILE__, __LINE__); fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n") #else #define DEBUG(_fmt, ...) #endif #define ABORT(...) fprintf(stderr, " [%s:%d] ABORT: ", __FILE__, __LINE__); fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n"); panic(); abort() #endif ================================================ FILE: runtime/Function.cpp ================================================ #include "Function.h" #include "FunctionLocation.h" /** * Free the current function location and stack pad table */ Function::~Function() { if(_current != NULL) { _current->release(); } if(_stackPad != NULL) { getDataHeap()->free(_stackPad); } } /** * Copy the code and relocation table for this function. Use the pre-assembled * code/table chunk if the function has already been relocated. * * \arg target The destination of the copy. */ void Function::copyTo(void* target) { if(_current == NULL) { // Copy the code from the original function memcpy(target, _code.base(), _code.size()); // Patch in the saved header, since the original has been overwritten *(FunctionHeader*)target = _savedHeader; // If there is a stack pad table, move it to a random location if(_stackPad != NULL) { uintptr_t* table = (uintptr_t*)_table.base(); for(size_t i=0; i<_table.size(); i+=sizeof(uintptr_t)) { if(table[i] == (uintptr_t)_stackPad) { _stackPad = (uint8_t*)getDataHeap()->malloc(1); table[i] = (uintptr_t)_stackPad; } } } // Copy the relocation table, if needed if(_tableAdjacent) { uint8_t* a = (uint8_t*)target; memcpy(&a[_code.size()], _table.base(), _table.size()); } } else { memcpy(target, _current->_memory.base(), getAllocationSize()); } } /** * Create a new FunctionLocation for this Function. * \arg relocation The ID for the current relocation phase. * \returns Whether or not a new location was created */ FunctionLocation* Function::relocate() { FunctionLocation* oldLocation = _current; _current = new FunctionLocation(this); _current->activate(); // Fill the stack pad table with random bytes if(_stackPad != NULL) { // Update random stack pad *_stackPad = getRandomByte(); } return oldLocation; } ================================================ FILE: runtime/Function.h ================================================ #if !defined(RUNTIME_FUNCTION_H) #define RUNTIME_FUNCTION_H #include #include #include "Util.h" #include "Jump.h" #include "Trap.h" #include "Heap.h" #include "MemRange.h" struct Function; struct FunctionLocation; struct FunctionHeader { private: union { uint8_t _jmp[sizeof(Jump)]; uint8_t _trap[sizeof(Trap)]; }; Function* _f; public: FunctionHeader(Function* f) : _f(f) {} void jumpTo(void* target) { new(_jmp) Jump(target); } void trap() { new(_trap) Trap(); } Function* getFunction() { return _f; } }; struct Function { private: friend class FunctionLocation; MemRange _code; MemRange _table; FunctionHeader* _header; FunctionHeader _savedHeader; bool _tableAdjacent; //< If true, the relocation table should be placed next to the function uint8_t* _stackPad; //< The address of the stack pad value for this function FunctionLocation* _current; /** * \brief Place a jump instruction to forward calls to this function * \arg target The destination of the jump instruction */ inline void forward(void* target) { _header->jumpTo(target); flush_icache(_header, sizeof(FunctionHeader)); } void copyTo(void* target); public: /** * \brief Allocate Function objects on the randomized heap * \arg sz The object size */ void* operator new(size_t sz) { return getDataHeap()->malloc(sz); } /** * \brief Free allocated memory to the randomized heap * \arg p The object base pointer */ void operator delete(void* p) { getDataHeap()->free(p); } /** * \brief Create a new runtime representation of a function * \arg codeBase The address of the function * \arg codeLimit The top of the function * \arg tableBase The address of the function's relocation table * \arg tableSize The size of the function's relocation table * \arg tableAdjacent If true, the relocation table should be placed immediately after the function * \arg stackPad The address of this function's stack pad size */ inline Function(void* codeBase, void* codeLimit, void* tableBase, size_t tableSize, bool tableAdjacent, uint8_t* stackPad) : _code(codeBase, codeLimit), _table(tableBase, tableSize), _savedHeader(*(FunctionHeader*)_code.base()) { this->_tableAdjacent = tableAdjacent; this->_stackPad = stackPad; this->_current = NULL; // Make the function header writable if(mprotect(_code.pageBase(), _code.pageSize(), PROT_READ | PROT_WRITE | PROT_EXEC)) { perror("Unable make code writable"); abort(); } // Make a copy of the function header _savedHeader = *(FunctionHeader*)_code.base(); _header = new(_code.base()) FunctionHeader(this); } /** * \brief Free all code locations when deleted */ ~Function(); FunctionLocation* relocate(); /** * \brief Place a trap instruction at the beginning of this function */ inline void setTrap() { _header->trap(); } inline void* getCodeBase() { return _code.base(); } inline size_t getCodeSize() { return _code.size(); } inline size_t getAllocationSize() { if(_tableAdjacent) { return _code.size() + _table.size(); } else { return _code.size(); } } inline FunctionLocation* getCurrentLocation() { return _current; } }; #endif ================================================ FILE: runtime/FunctionLocation.h ================================================ #if !defined(RUNTIME_FUNCTIONLOCATION_H) #define RUNTIME_FUNCTIONLOCATION_H #include #include "MemRange.h" #include "Function.h" using namespace std; struct FunctionLocation { private: friend class Function; Function* _f; MemRange _memory; bool _defunct; bool _marked; static inline set& getRegistry() { static set _registry; return _registry; } static FunctionLocation* find(void* p) { for(set::iterator iter = getRegistry().begin(); iter != getRegistry().end(); iter++) { FunctionLocation* l = *iter; if(l->_memory.contains(p)) { return l; } } return NULL; } public: FunctionLocation(Function* f) : _f(f), _memory(getCodeHeap()->malloc(_f->getAllocationSize()), _f->getAllocationSize()) { if(_memory.base() == NULL) { perror("code malloc"); ABORT("Couldn't allocate memory for function relocation"); } _defunct = false; _marked = false; _f->copyTo(_memory.base()); getRegistry().insert(this); } ~FunctionLocation() { getCodeHeap()->free(_memory.base()); } /** * \brief Allocate FunctionLocation objects on the randomized heap * \arg sz The object size */ void* operator new(size_t sz) { return getDataHeap()->malloc(sz); } /** * \brief Free allocated memory to the randomized heap * \arg p The object base pointer */ void operator delete(void* p) { getDataHeap()->free(p); } void activate() { _f->forward(_memory.base()); } void release() { _defunct = true; } void* getBase() { return _memory.base(); } static void mark(void* p) { FunctionLocation* l = find(p); if(l != NULL) { l->_marked = true; } } static void sweep() { set::iterator iter = getRegistry().begin(); while(iter != getRegistry().end()) { FunctionLocation* l = *iter; if(l->_defunct && !l->_marked) { getRegistry().erase(iter++); delete l; } else { l->_marked = false; iter++; } } } static void* adjust(void* p) { FunctionLocation* l = find(p); if(l != NULL) { size_t offset = l->_memory.offsetOf(p); return l->_f->_code.offsetIn(offset); } else { return p; } } }; #endif ================================================ FILE: runtime/Heap.cpp ================================================ #include "Heap.h" DataHeapType* getDataHeap() { static char buf[sizeof(DataHeapType)]; static DataHeapType* _theDataHeap = new (buf) DataHeapType; return _theDataHeap; } CodeHeapType* getCodeHeap() { static char buf[sizeof(CodeHeapType)]; static CodeHeapType* _theCodeHeap = new (buf) CodeHeapType; return _theCodeHeap; } ================================================ FILE: runtime/Heap.h ================================================ #if !defined(RUNTIME_HEAP_H) #define RUNTIME_HEAP_H #include #include #include "Util.h" #include "MMapSource.h" enum { DataShuffle = 256, DataProt = PROT_READ | PROT_WRITE, DataFlags = MAP_PRIVATE | MAP_ANONYMOUS, DataSize = 0x2000000, CodeShuffle = 256, CodeProt = PROT_READ | PROT_WRITE | PROT_EXEC, CodeFlags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT, CodeSize = 0x2000000 }; class DataSource : public SizeHeap, 16> > > {}; class CodeSource : public SizeHeap, CODE_ALIGN> > > {}; typedef ANSIWrapper, DataSource> > DataHeapType; typedef ANSIWrapper, CodeSource> > CodeHeapType; DataHeapType* getDataHeap(); CodeHeapType* getCodeHeap(); #endif ================================================ FILE: runtime/Intrinsics.cpp ================================================ #include #include #include #include extern "C" { float powif(float b, int e) { return powf(b, (float)e); } void memset_i32(void* p, uint8_t val, uint32_t len, uint32_t align, bool isvolatile) { memset(p, val, len); } void memset_i64(void* p, uint8_t val, uint64_t len, uint32_t align, bool isvolatile) { memset(p, val, len); } } ================================================ FILE: runtime/Jump.h ================================================ #ifndef RUNTIME_JUMP_H #define RUNTIME_JUMP_H #include #include #include "Arch.h" #include "Debug.h" struct X86Jump32 { volatile uint8_t jmp_opcode; volatile uint32_t jmp_offset; X86Jump32(void *target) { jmp_opcode = 0xE9; jmp_offset = (uint32_t)((intptr_t)target - (intptr_t)this) - sizeof(struct X86Jump32); } } __attribute__((packed)); struct X86Jump64 { volatile uint32_t sub_8_rsp; volatile uint32_t mov_imm_0rsp; volatile uint32_t target_low; volatile uint32_t mov_imm_4rsp; volatile uint32_t target_high; volatile uint8_t retq; X86Jump64(void *target) { /* x86_64 doesn't have an immediate 64 bit jump, so build one: * 1. Move down 8 bytes on the stack * 2. Put the target address on the stack in 32 bit chunks * 3. Return */ sub_8_rsp = 0x08EC8348; // move the stack pointer down 8 bytes mov_imm_0rsp = 0x002444C7; // move an immediate to 0(%rsp) target_low = (uint32_t)(int64_t)target; mov_imm_4rsp = 0x042444C7; // move an immediate to 4(%rsp) target_high = (uint32_t)((int64_t)target >> 32); retq = 0xC3; } } __attribute__((packed)); struct X86_64Jump { union { uint8_t jmp32[sizeof(X86Jump32)]; uint8_t jmp64[sizeof(X86Jump64)]; }; X86_64Jump(void *target) { if((uintptr_t)target - (uintptr_t)this <= 0x00000000FFFFFFFFu || (uintptr_t)this - (uintptr_t)target <= 0x00000000FFFFFFFFu) { new(this) X86Jump32(target); } else { new(this) X86Jump64(target); } } } __attribute__((packed)); struct PPCJump { union { uint32_t ba; struct{ volatile uint32_t lis_to_r0; volatile uint32_t ori_r0; volatile uint32_t mtctr; volatile uint32_t bctr; }; } __attribute__((packed)); PPCJump(void *target) { uintptr_t t = (uintptr_t)target; uintptr_t pos_offset = t - (uintptr_t)this; intptr_t neg_offset = (intptr_t)this - (intptr_t)t; /*if(t < 1<<25) { DEBUG("absolute jump"); ba = 0x48000002; ba |= t & 0x03FFFFFCu; } else if(pos_offset < 1<<25) { DEBUG(" use positive offset"); ba = 0x48000000; ba |= (uint32_t)pos_offset & 0x03FFFFFC; } else if(-neg_offset < 1<<25) { DEBUG(" use negative offset\n"); ba = 0x48000000; ba |= neg_offset & 0x03FFFFFC; } else { */ DEBUG("slow jump"); lis_to_r0=0x3c000000 | ((t>>16)&0xFFFFu); ori_r0=0x60000000 | (t&0xFFFFu); mtctr=0x7c0903a6; bctr=0x4e800420; // } } } __attribute__((packed)); #if IS_X86 typedef X86Jump32 Jump; #elif IS_X86_64 typedef X86_64Jump Jump; #elif IS_PPC typedef PPCJump Jump; #endif #endif ================================================ FILE: runtime/MMapSource.h ================================================ #if !defined(RUNTIME_MMAPSOURCE_H) #define RUNTIME_MMAPSOURCE_H #include "Util.h" template class MMapSource { private: bool _exhausted32; public: enum { Alignment = PAGESIZE }; MMapSource() { _exhausted32 = false; } inline void* malloc(size_t sz) { void* ptr; if(Flags & MAP_32BIT) { // If we haven't exhausted the 32 bit pages if(!_exhausted32) { ptr = mmap(NULL, sz, Prot, Flags, -1, 0); if(ptr != MAP_FAILED) { return ptr; } else { _exhausted32 = true; } } } // Try the map without the MAP_32BIT flag set ptr = mmap(NULL, sz, Prot, Flags & ~MAP_32BIT, -1, 0); if(ptr == MAP_FAILED) { ptr = NULL; } return ptr; } }; #endif ================================================ FILE: runtime/Makefile ================================================ ROOT = .. CROSS_TARGET = 1 TARGETS = $(ROOT)/libstabilizer.$(SHLIB_SUFFIX) $(ROOT)/libstabilizer.a INCLUDE_DIRS = $(ROOT)/Heap-Layers \ $(ROOT)/DieHard/src/include \ $(ROOT)/DieHard/src/include/math \ $(ROOT)/DieHard/src/include/rng \ $(ROOT)/DieHard/src/include/static \ $(ROOT)/DieHard/src/include/util include $(ROOT)/common.mk ================================================ FILE: runtime/MemRange.h ================================================ #if !defined(RUNTIME_MEMRANGE_H) #define RUNTIME_MEMRANGE_H #include "Util.h" struct MemRange { private: uintptr_t _base; uintptr_t _limit; public: inline MemRange(void* base, size_t size) { _base = (uintptr_t)base; _limit = _base + size; } inline MemRange(void* base, void* limit) { _base = (uintptr_t)base; _limit = (uintptr_t)limit; } inline void* base() { return (void*)_base; } inline void* pageBase() { return (void*)(_base - _base % PAGESIZE); } inline void* pageLimit() { uintptr_t l = _limit + PAGESIZE - 1; return (void*)(l - l % PAGESIZE); } inline size_t pageSize() { return (uintptr_t)pageLimit() - (uintptr_t)pageBase(); } inline void* limit() { return (void*)_limit; } inline size_t size() { return (size_t)(_limit - _base); } inline size_t offsetOf(void* p) { return (uintptr_t)p - _base; } inline void* offsetIn(size_t offset) { return (void*)(_base + offset); } inline bool contains(void* p) { return offsetOf(p) < size(); } }; #endif ================================================ FILE: runtime/Trap.h ================================================ #if !defined(RUNTIME_TRAP_H) #define RUNTIME_TRAP_H #include #include "Arch.h" struct X86Trap { uint8_t trap_opcode; enum { TrapSignal = SIGTRAP }; enum { TrapAdjust = 1 }; X86Trap() { trap_opcode = 0xCC; } } __attribute__((packed)); struct PPCTrap { uint32_t trap_opcode; enum { TrapSignal = SIGILL }; enum { TrapAdjust = 0 }; PPCTrap() { trap_opcode = 0x0; } } __attribute__((packed)); #if IS_X86 typedef X86Trap Trap; #elif IS_X86_64 typedef X86Trap Trap; #elif IS_PPC typedef PPCTrap Trap; #endif #endif ================================================ FILE: runtime/Util.h ================================================ #ifndef RUNTIME_UTIL_H #define RUNTIME_UTIL_H #include #include #include #include "Arch.h" #ifndef PAGESIZE #define PAGESIZE 4096 #endif #ifndef MAP_ANONYMOUS #define MAP_ANONYMOUS MAP_ANON #endif #ifndef MAP_32BIT #define MAP_32BIT 0 #endif #if !defined(CODE_ALIGN) #define CODE_ALIGN 32 #endif static void flush_icache(void* begin, size_t size) { _PPC( uintptr_t p = (uintptr_t)begin & ~15UL; for (size_t i = 0; i < size; i += 16) { asm("icbi 0,%0" : : "r"(p)); p += 16; } asm("isync"); ) } static inline uint8_t getRandomByte() { static RandomNumberGenerator _rng; static uint8_t _randCount = 0; static union { uint8_t _rands[sizeof(int)]; int _bigRand; }; if(_randCount == sizeof(int)) { _bigRand = _rng.next(); _randCount = sizeof(int); } uint8_t r = _rands[_randCount]; _randCount++; return r; } #endif ================================================ FILE: runtime/libstabilizer.cpp ================================================ #include #include #include #include #include #include #include "Function.h" #include "FunctionLocation.h" #include "Debug.h" #include "Heap.h" #include "Context.h" using namespace std; extern "C" int stabilizer_main(int argc, char **argv); int main(int argc, char** argv); void onTrap(int sig, siginfo_t* info, void*); void onTimer(int sig, siginfo_t* info, void*); void onFault(int sig, siginfo_t* info, void*); void setTimer(int msec); void setHandler(int sig, void(*fn)(int, siginfo_t*, void*)); typedef void(*ctor_t)(); set functions; set live_functions; set stack_pads; vector constructors; bool rerandomizing = false; size_t interval = 500; void** topFrame = NULL; /** * Entry point for a program run with Stabilizer. The program's existing * main function has been renamed 'stabilizer_main' by the compiler pass. * * 1. Save the current top of the stack * 2. Set signal handlers for debug traps, timers, and segfaults for error handling * 3. Place a trap instruction at the start of each randomizable function to trigger relocation on-demand * 4. Set the re-randomization timer * 5. Call module constructors * 6. Invoke stabilizer_main */ int main(int argc, char **argv) { DEBUG("Initializing Stabilizer"); topFrame = (void**)__builtin_frame_address(0); DEBUG("Stack top is at %p", topFrame); // Register signal handlers setHandler(Trap::TrapSignal, onTrap); setHandler(SIGALRM, onTimer); setHandler(SIGSEGV, onFault); DEBUG("Signal handlers installed"); // Lazily relocate functions for(set::iterator iter = functions.begin(); iter != functions.end(); iter++) { Function* f = *iter; f->setTrap(); } DEBUG("Trapped all functions"); // Set the re-randomization timer setTimer(interval); DEBUG("Set re-randomization timer"); // Call all constructors for(vector::iterator i = constructors.begin(); i != constructors.end(); i++) { (*i)(); } DEBUG("Finished with program constructors"); // Call the old main function int r = stabilizer_main(argc, argv); DEBUG("Shutting down"); return r; } extern "C" { void stabilizer_register_function(void* codeBase, void* codeLimit, void* tableBase, size_t tableSize, bool adjacent, uint8_t* stackPad) { Function* f = new Function(codeBase, codeLimit, tableBase, tableSize, adjacent, stackPad); functions.insert(f); } void stabilizer_register_constructor(ctor_t ctor) { constructors.push_back(ctor); } void stabilizer_register_stack_pad(uint8_t* pad) { stack_pads.insert(pad); } void* stabilizer_malloc(size_t sz) { return getDataHeap()->malloc(sz); } void* stabilizer_calloc(size_t n, size_t sz) { return getDataHeap()->calloc(n, sz); } void* stabilizer_realloc(void *p, size_t sz) { return getDataHeap()->realloc(p, sz); } void stabilizer_free(void *p) { if(getDataHeap()->getSize(p) == 0) { free(p); } else { getDataHeap()->free(p); } } void reportDoubleFreeError() { ABORT("Double free error"); } } void onTrap(int sig, siginfo_t* info, void* p) { Context c(p); // Back up over the trap instruction c.ip() = (void*)((uintptr_t)c.ip() - Trap::TrapAdjust); // Extract the trapped function (stored next to the trap instruction) FunctionHeader* h = (FunctionHeader*)c.ip(); Function* f = h->getFunction(); // If the trap was placed to trigger a re-randomization if(rerandomizing) { DEBUG("Re-randomization started after trap on %p", c.ip()); live_functions.empty(); // Mark all on-stack function locations as used Stack s = c.stack(); while(s.fp() != topFrame) { FunctionLocation::mark(s.ret()); s++; } // Mark the current instruction pointer as used FunctionLocation::mark((void*)c.ip()); // Mark the top return address on the stack as used FunctionLocation::mark(*(void**)c.sp()); // Collect unused function locations FunctionLocation::sweep(); rerandomizing = false; setTimer(interval); } // Relocate the function FunctionLocation* oldLocation = f->relocate(); live_functions.insert(f); if(oldLocation != NULL) { oldLocation->release(); } c.ip() = f->getCurrentLocation()->getBase(); } void onTimer(int sig, siginfo_t* info, void* p) { Context c(p); DEBUG("Re-randomization timer fired at %p", c.ip()); if(functions.size() == 0) { DEBUG("Re-randomizing stack pads"); for(set::iterator iter = stack_pads.begin(); iter != stack_pads.end(); iter++) { uint8_t* pad = *iter; **iter = getRandomByte(); } setTimer(interval); } else { DEBUG("Placing traps"); for(set::iterator iter = live_functions.begin(); iter != live_functions.end(); iter++) { Function* f = *iter; if(c.ip() == f->getCodeBase()) { DEBUG("Forwarding from trap at %p", c.ip()); c.ip() = f->getCurrentLocation()->getBase(); } f->setTrap(); } live_functions.clear(); } rerandomizing = true; } void onFault(int sig, siginfo_t* info, void* p) { Context c(p); ABORT("Fault at %p, accessing address %p", c.ip(), info->si_addr); } void setTimer(int msec) { struct itimerval timer; timer.it_value.tv_sec = (msec - msec % 1000) / 1000; timer.it_value.tv_usec = 1000 * (msec % 1000); timer.it_interval.tv_sec = 0; timer.it_interval.tv_usec = 0; setitimer(ITIMER_REAL, &timer, 0); } void setHandler(int sig, void(*fn)(int, siginfo_t*, void*)) { struct sigaction sa; sa.sa_sigaction = (void(*)(int, siginfo_t*, void*))fn; sa.sa_flags = SA_SIGINFO; sigaction(sig, &sa, NULL); } ================================================ FILE: szc ================================================ #!/usr/bin/env python import os import sys import random import argparse from distutils import util parser = argparse.ArgumentParser(description="Stabilizer Compiler Driver") # Which randomizations should be run parser.add_argument('-R', action='append', choices=['code', 'heap', 'stack', 'link'], default=[]) # Driver control arguments parser.add_argument('-v', action='store_true') parser.add_argument('-lang', choices=['c', 'c++', 'fortran']) parser.add_argument('-platform', choices=['auto', 'linux', 'osx'], default='auto') parser.add_argument('-frontend', choices=['gcc', 'clang'], default='gcc') # Compiler pass-through arguments parser.add_argument('-c', action='store_true') parser.add_argument('-o') parser.add_argument('-O', type=int, default=2) parser.add_argument('-g', action='store_true') parser.add_argument('-f', action='append', default=[]) parser.add_argument('-D', action='append', default=[]) parser.add_argument('-L', action='append', default=[]) parser.add_argument('-I', action='append', default=[]) parser.add_argument('-l', action='append', default=[]) parser.add_argument('input', nargs='+') # Do the parse args = parser.parse_args() def getPlatform(): if util.get_platform().startswith('macosx'): return 'osx' elif util.get_platform().startswith('linux'): return 'linux' else: print 'Unsupported platform' exit(2) def arg(flag, values): if not isinstance(values, list): values = [values] cmd = '' for v in values: if v == True: cmd += ' -'+flag elif v == False: pass else: cmd += ' -'+flag+v return cmd if args.platform == 'auto': args.platform = getPlatform() STABILIZER_HOME = os.path.dirname(__file__) if args.platform == 'osx': LIBSUFFIX = 'dylib' args.frontend = 'clang' else: LIBSUFFIX = 'so' opts = [] args.l.append('stdc++') #args.v = True if 'code' in args.R: opts.append('lower-intrinsics') opts.append('lowerswitch') opts.append('lowerinvoke') opts.append('stabilize-code') if 'stack' in args.R: opts.append('stabilize-stack') if 'heap' in args.R: opts.append('stabilize-heap') if 'code' in args.R or 'heap' in args.R or 'stack' in args.R: args.L.append(STABILIZER_HOME) args.l.append('stabilizer') opts.append('stabilize') def compile(input): if input.endswith('.o'): return input needsAssembly = False if args.lang == 'fortran': cmd = 'gfortran -O0 -fplugin=dragonegg -S -fplugin-arg-dragonegg-emit-ir' cmd += arg('o ', args.o+'.s') needsAssembly = True elif args.frontend == 'gcc': cmd = 'gcc -O0 -fplugin=dragonegg -S -fplugin-arg-dragonegg-emit-ir' cmd += arg('o ', args.o+'.s') needsAssembly = True else: cmd = 'clang -O0 -c -emit-llvm' cmd += arg('o ', args.o) cmd += arg('O', 0) cmd += arg('g', args.g) cmd += arg('I', args.I) cmd += arg('f', args.f) cmd += arg('D', args.D) cmd += ' '+input if args.v: print cmd os.system(cmd) if needsAssembly: cmd = 'llvm-as -o ' + args.o + ' ' + args.o + '.s' if args.v: print cmd os.system(cmd) return args.o def link(inputs): cmd = 'llvm-link -o ' + args.o + '.bc ' if 'link' in args.R: random.shuffle(inputs) cmd += ' '.join(inputs) if args.v: print cmd os.system(cmd) return args.o + '.bc' def transform(input): cmd = 'opt -o ' + args.o + '.opt.bc' cmd += ' ' + input if args.O > 0: cmd += ' -O'+str(args.O) cmd += ' -load='+STABILIZER_HOME+'/LLVMStabilizer.'+LIBSUFFIX cmd += arg('', opts) if args.v: print cmd os.system(cmd) return args.o + '.opt.bc' def codegen(input): cmd = 'llc -O0 -relocation-model=pic -disable-fp-elim' cmd += ' -o ' + args.o + '.s' cmd += ' ' + input if args.v: print cmd os.system(cmd) if args.lang == 'fortran': cmd = 'gfortran' else: cmd = args.frontend cmd += ' ' + args.o + '.s' cmd += arg('o ', args.o) cmd += arg('f', args.f) cmd += arg('L', args.L) cmd += arg('l', args.l) if args.v: print cmd os.system(cmd) return args.o # Build up program arguments object_files = map(compile, args.input) if not args.c: linked = link(object_files) transformed = transform(linked) codegen(transformed) ================================================ FILE: szchi.cfg ================================================ ignore_errors = no tune = base ext = szc output_format = csv,screen reportable = no teeout = yes teerunout = yes makeflags = -j ########################################## # Compiler and Runtime ########################################## default: CC = szc -lang=c CXX = szc -lang=c++ FC = szc -lang=fortran default=default=code,code.heap,code.link,code.stack,code.heap.link,code.heap.stack,code.link.stack,code.heap.link.stack: CC += -Rcode CXX += -Rcode FC += -Rcode default=default=heap,code.heap,heap.link,heap.stack,code.heap.link,code.heap.stack,heap.link.stack,code.heap.link.stack: CC += -Rheap CXX += -Rheap FC += -Rheap default=default=stack,code.stack,heap.stack,link.stack,code.heap.stack,code.link.stack,heap.link.stack,code.heap.link.stack: CC += -Rstack CXX += -Rstack FC += -Rstack default=default=link,code.link,heap.link,link.stack,code.heap.link,code.link.stack,heap.link.stack,code.heap.link.stack: CC += -Rlink CXX += -Rlink FC += -Rlink ########################################## # Optimization ########################################## default=base: COPTIMIZE = -O2 -fno-strict-aliasing CXXOPTIMIZE = -O2 -fno-strict-aliasing FOPTIMIZE = -O2 -fno-strict-aliasing default=peak: COPTIMIZE = -O3 -fno-strict-aliasing CXXOPTIMIZE = -O3 -fno-strict-aliasing FOPTIMIZE = -O3 -fno-strict-aliasing ########################################## # Portability ########################################## default: PORTABILITY = -DSPEC_CPU_LP64 400.perlbench=default=default=linux: CPORTABILITY = -DSPEC_CPU_LINUX_X64 403.gcc=default=default=osx: CPORTABILITY = -DSPEC_CPU_MACOSX 462.libquantum=default=default=linux: CPORTABILITY = -DSPEC_CPU_LINUX 462.libquantum=default=defaut=osx: CPORTABILITY = -DSPEC_CPU_MACOSX 481.wrf=default=default=linux: CPORTABILITY = -DSPEC_CPU_CASE_FLAG -DSPEC_CPU_LINUX 483.xalancbmk=default=default=linux: CXXPORTABILITY = -DSPEC_CPU_LINUX 483.xalancbmk=default=default=osx: CXXPORTABILITY = -DSPEC_CPU_MACOSX ================================================ FILE: szclo.cfg ================================================ ignore_errors = no tune = base ext = szc output_format = csv,screen reportable = no teeout = yes teerunout = yes makeflags = -j ########################################## # Compiler and Runtime ########################################## default: CC = szc -lang=c CXX = szc -lang=c++ FC = szc -lang=fortran default=default=code,code.heap,code.link,code.stack,code.heap.link,code.heap.stack,code.link.stack,code.heap.link.stack: CC += -Rcode CXX += -Rcode FC += -Rcode default=default=heap,code.heap,heap.link,heap.stack,code.heap.link,code.heap.stack,heap.link.stack,code.heap.link.stack: CC += -Rheap CXX += -Rheap FC += -Rheap default=default=stack,code.stack,heap.stack,link.stack,code.heap.stack,code.link.stack,heap.link.stack,code.heap.link.stack: CC += -Rstack CXX += -Rstack FC += -Rstack default=default=link,code.link,heap.link,link.stack,code.heap.link,code.link.stack,heap.link.stack,code.heap.link.stack: CC += -Rlink CXX += -Rlink FC += -Rlink ########################################## # Optimization ########################################## default=base: COPTIMIZE = -O0 -fno-strict-aliasing CXXOPTIMIZE = -O0 -fno-strict-aliasing FOPTIMIZE = -O0 -fno-strict-aliasing default=peak: COPTIMIZE = -O1 -fno-strict-aliasing CXXOPTIMIZE = -O1 -fno-strict-aliasing FOPTIMIZE = -O1 -fno-strict-aliasing ########################################## # Portability ########################################## default: PORTABILITY = -DSPEC_CPU_LP64 400.perlbench=default=default=linux: CPORTABILITY = -DSPEC_CPU_LINUX_X64 -frontend=gcc 403.gcc=default=default=osx: CPORTABILITY = -DSPEC_CPU_MACOSX 462.libquantum=default=default=linux: CPORTABILITY = -DSPEC_CPU_LINUX 462.libquantum=default=defaut=osx: CPORTABILITY = -DSPEC_CPU_MACOSX 481.wrf=default=default=linux: CPORTABILITY = -DSPEC_CPU_CASE_FLAG -DSPEC_CPU_LINUX 483.xalancbmk=default=default=linux: CXXPORTABILITY = -DSPEC_CPU_LINUX 483.xalancbmk=default=default=osx: CXXPORTABILITY = -DSPEC_CPU_MACOSX ================================================ FILE: tests/Context/Makefile ================================================ ROOT = ../.. include $(ROOT)/common.mk test:: hello.cpp stub.asm yasm -o stub.o -f macho64 stub.asm clang++ -g -I$(ROOT)/runtime -o hello hello.cpp stub.o ./hello ================================================ FILE: tests/Context/hello.cpp ================================================ #include #include #include #include #include #include #include #include "Util.h" #include "Jump.h" using namespace std; extern "C" uint8_t saveState; extern "C" uint8_t stub; extern "C" size_t stubSize; void foo(int x, int y, int z) { char buf[512]; sprintf(buf, "in foo: %x %x %x\n", x, y, z); } void bar(int x, int y, int z) { char buf[512]; sprintf(buf, "in bar: %x %x %x\n", x, y, z); } void placeStub(void* p) { size_t copySize = stubSize + sizeof(X86Jump64) + sizeof(void*); void* base = ALIGN_DOWN(p, PAGESIZE); void* limit = ALIGN_UP((uintptr_t)p + copySize, PAGESIZE); size_t size = (uintptr_t)limit - (uintptr_t)base; if(mprotect(base, size, PROT_READ | PROT_WRITE | PROT_EXEC)) { perror("mprotect"); } uint8_t* restore = new uint8_t[copySize]; memcpy(restore, (void*)p, copySize); uint8_t* x = (uint8_t*)p; memcpy((void*)x, (void*)&stub, stubSize); x += stubSize; new(x) Jump((void*)&saveState); x += sizeof(X86Jump64); *(void**)x = restore; } void placeTrap(void* p) { size_t copySize = stubSize + sizeof(X86Jump64) + sizeof(void*); void* base = ALIGN_DOWN(p, PAGESIZE); void* limit = ALIGN_UP((uintptr_t)p + copySize, PAGESIZE); size_t size = (uintptr_t)limit - (uintptr_t)base; if(mprotect(base, size, PROT_READ | PROT_WRITE | PROT_EXEC)) { perror("mprotect"); } uint8_t* restore = new uint8_t[copySize]; memcpy(restore, (void*)p, copySize); uint8_t* x = (uint8_t*)p; *x = 0xCC; x += stubSize + sizeof(X86Jump64); *(void**)x = restore; } extern "C" void doStuff(void* source, void* restore) { /*int count = 0; int primes[100]; for(int x=2; count<100; x++) { bool is_prime = true; for(int d=0; d void ctor() __attribute__((constructor)); void ctor() { printf("Hello Constructor!\n"); } int main(int argc, char** argv) { printf("Hello World!\n"); return 0; } ================================================ FILE: tests/LICENSE ================================================ The test programs in this directory are included for convenience, but are not integral parts of Stabilizer. Each test package has its own license independent of Stabilizer's top-level license. ================================================ FILE: tests/Makefile ================================================ ROOT = .. RECURSIVE_TARGETS = test DIRS = HelloWorld libquantum bzip2 include $(ROOT)/common.mk ================================================ FILE: tests/bzip2/Makefile ================================================ ROOT = ../.. TARGETS = bzip2 build:: bzip2 include $(ROOT)/common.mk CC = $(ROOT)/szc $(SZCFLAGS) -Rcode -Rheap -Rstack CXX = $(CC) CFLAGS = -DSPEC_CPU -DSPEC_CPU_MACOSX CXXFLAGS = $(OBJS):: $(ROOT)/szc $(ROOT)/LLVMStabilizer.$(SHLIB_SUFFIX) test:: bzip2 @echo $(INDENT)[test] Running 'bzip2' @echo @$(LD_PATH_VAR)=$(ROOT) ./bzip2 input.combined @echo ================================================ FILE: tests/bzip2/blocksort.c ================================================ /*-------------------------------------------------------------*/ /*--- Block sorting machinery ---*/ /*--- blocksort.c ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. To get some idea how the block sorting algorithms in this file work, read my paper On the Performance of BWT Sorting Algorithms in Proceedings of the IEEE Data Compression Conference 2000, Snowbird, Utah, USA, 27-30 March 2000. The main sort in this file implements the algorithm called cache in the paper. --*/ #include "bzlib_private.h" /*---------------------------------------------*/ /*--- Fallback O(N log(N)^2) sorting ---*/ /*--- algorithm, for repetitive blocks ---*/ /*---------------------------------------------*/ /*---------------------------------------------*/ static __inline__ void fallbackSimpleSort ( UInt32* fmap, UInt32* eclass, Int32 lo, Int32 hi ) { Int32 i, j, tmp; UInt32 ec_tmp; if (lo == hi) return; if (hi - lo > 3) { for ( i = hi-4; i >= lo; i-- ) { tmp = fmap[i]; ec_tmp = eclass[tmp]; for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 ) fmap[j-4] = fmap[j]; fmap[j-4] = tmp; } } for ( i = hi-1; i >= lo; i-- ) { tmp = fmap[i]; ec_tmp = eclass[tmp]; for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ ) fmap[j-1] = fmap[j]; fmap[j-1] = tmp; } } /*---------------------------------------------*/ #define fswap(zz1, zz2) \ { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; } #define fvswap(zzp1, zzp2, zzn) \ { \ Int32 yyp1 = (zzp1); \ Int32 yyp2 = (zzp2); \ Int32 yyn = (zzn); \ while (yyn > 0) { \ fswap(fmap[yyp1], fmap[yyp2]); \ yyp1++; yyp2++; yyn--; \ } \ } #define fmin(a,b) ((a) < (b)) ? (a) : (b) #define fpush(lz,hz) { stackLo[sp] = lz; \ stackHi[sp] = hz; \ sp++; } #define fpop(lz,hz) { sp--; \ lz = stackLo[sp]; \ hz = stackHi[sp]; } #define FALLBACK_QSORT_SMALL_THRESH 10 #define FALLBACK_QSORT_STACK_SIZE 100 static void fallbackQSort3 ( UInt32* fmap, UInt32* eclass, Int32 loSt, Int32 hiSt ) { Int32 unLo, unHi, ltLo, gtHi, n, m; Int32 sp, lo, hi; UInt32 med, r, r3; Int32 stackLo[FALLBACK_QSORT_STACK_SIZE]; Int32 stackHi[FALLBACK_QSORT_STACK_SIZE]; r = 0; sp = 0; fpush ( loSt, hiSt ); while (sp > 0) { AssertH ( sp < FALLBACK_QSORT_STACK_SIZE, 1004 ); fpop ( lo, hi ); if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) { fallbackSimpleSort ( fmap, eclass, lo, hi ); continue; } /* Random partitioning. Median of 3 sometimes fails to avoid bad cases. Median of 9 seems to help but looks rather expensive. This too seems to work but is cheaper. Guidance for the magic constants 7621 and 32768 is taken from Sedgewick's algorithms book, chapter 35. */ r = ((r * 7621) + 1) % 32768; r3 = r % 3; if (r3 == 0) med = eclass[fmap[lo]]; else if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else med = eclass[fmap[hi]]; unLo = ltLo = lo; unHi = gtHi = hi; while (1) { while (1) { if (unLo > unHi) break; n = (Int32)eclass[fmap[unLo]] - (Int32)med; if (n == 0) { fswap(fmap[unLo], fmap[ltLo]); ltLo++; unLo++; continue; }; if (n > 0) break; unLo++; } while (1) { if (unLo > unHi) break; n = (Int32)eclass[fmap[unHi]] - (Int32)med; if (n == 0) { fswap(fmap[unHi], fmap[gtHi]); gtHi--; unHi--; continue; }; if (n < 0) break; unHi--; } if (unLo > unHi) break; fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--; } AssertD ( unHi == unLo-1, "fallbackQSort3(2)" ); if (gtHi < ltLo) continue; n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n); m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m); n = lo + unLo - ltLo - 1; m = hi - (gtHi - unHi) + 1; if (n - lo > hi - m) { fpush ( lo, n ); fpush ( m, hi ); } else { fpush ( m, hi ); fpush ( lo, n ); } } } #undef fmin #undef fpush #undef fpop #undef fswap #undef fvswap #undef FALLBACK_QSORT_SMALL_THRESH #undef FALLBACK_QSORT_STACK_SIZE /*---------------------------------------------*/ /* Pre: nblock > 0 eclass exists for [0 .. nblock-1] ((UChar*)eclass) [0 .. nblock-1] holds block ptr exists for [0 .. nblock-1] Post: ((UChar*)eclass) [0 .. nblock-1] holds block All other areas of eclass destroyed fmap [0 .. nblock-1] holds sorted order bhtab [ 0 .. 2+(nblock/32) ] destroyed */ #define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31)) #define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31)) #define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31))) #define WORD_BH(zz) bhtab[(zz) >> 5] #define UNALIGNED_BH(zz) ((zz) & 0x01f) static void fallbackSort ( UInt32* fmap, UInt32* eclass, UInt32* bhtab, Int32 nblock, Int32 verb ) { Int32 ftab[257]; Int32 ftabCopy[256]; Int32 H, i, j, k, l, r, cc, cc1; Int32 nNotDone; Int32 nBhtab; UChar* eclass8 = (UChar*)eclass; /*-- Initial 1-char radix sort to generate initial fmap and initial BH bits. --*/ if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" ); for (i = 0; i < 257; i++) ftab[i] = 0; for (i = 0; i < nblock; i++) ftab[eclass8[i]]++; for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i]; for (i = 1; i < 257; i++) ftab[i] += ftab[i-1]; for (i = 0; i < nblock; i++) { j = eclass8[i]; k = ftab[j] - 1; ftab[j] = k; fmap[k] = i; } nBhtab = 2 + (nblock / 32); for (i = 0; i < nBhtab; i++) bhtab[i] = 0; for (i = 0; i < 256; i++) SET_BH(ftab[i]); /*-- Inductively refine the buckets. Kind-of an "exponential radix sort" (!), inspired by the Manber-Myers suffix array construction algorithm. --*/ /*-- set sentinel bits for block-end detection --*/ for (i = 0; i < 32; i++) { SET_BH(nblock + 2*i); CLEAR_BH(nblock + 2*i + 1); } /*-- the log(N) loop --*/ H = 1; while (1) { if (verb >= 4) VPrintf1 ( " depth %6d has ", H ); j = 0; for (i = 0; i < nblock; i++) { if (ISSET_BH(i)) j = i; k = fmap[i] - H; if (k < 0) k += nblock; eclass[k] = j; } nNotDone = 0; r = -1; while (1) { /*-- find the next non-singleton bucket --*/ k = r + 1; while (ISSET_BH(k) && UNALIGNED_BH(k)) k++; if (ISSET_BH(k)) { while (WORD_BH(k) == 0xffffffff) k += 32; while (ISSET_BH(k)) k++; } l = k - 1; if (l >= nblock) break; while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++; if (!ISSET_BH(k)) { while (WORD_BH(k) == 0x00000000) k += 32; while (!ISSET_BH(k)) k++; } r = k - 1; if (r >= nblock) break; /*-- now [l, r] bracket current bucket --*/ if (r > l) { nNotDone += (r - l + 1); fallbackQSort3 ( fmap, eclass, l, r ); /*-- scan bucket and generate header bits-- */ cc = -1; for (i = l; i <= r; i++) { cc1 = eclass[fmap[i]]; if (cc != cc1) { SET_BH(i); cc = cc1; }; } } } if (verb >= 4) VPrintf1 ( "%6d unresolved strings\n", nNotDone ); H *= 2; if (H > nblock || nNotDone == 0) break; } /*-- Reconstruct the original block in eclass8 [0 .. nblock-1], since the previous phase destroyed it. --*/ if (verb >= 4) VPrintf0 ( " reconstructing block ...\n" ); j = 0; for (i = 0; i < nblock; i++) { while (ftabCopy[j] == 0) j++; ftabCopy[j]--; eclass8[fmap[i]] = (UChar)j; } AssertH ( j < 256, 1005 ); } #undef SET_BH #undef CLEAR_BH #undef ISSET_BH #undef WORD_BH #undef UNALIGNED_BH /*---------------------------------------------*/ /*--- The main, O(N^2 log(N)) sorting ---*/ /*--- algorithm. Faster for "normal" ---*/ /*--- non-repetitive blocks. ---*/ /*---------------------------------------------*/ /*---------------------------------------------*/ static __inline__ Bool mainGtU ( UInt32 i1, UInt32 i2, UChar* block, UInt16* quadrant, UInt32 nblock, Int32* budget ) { Int32 k; UChar c1, c2; UInt16 s1, s2; AssertD ( i1 != i2, "mainGtU" ); /* 1 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 2 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 3 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 4 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 5 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 6 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 7 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 8 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 9 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 10 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 11 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; /* 12 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); i1++; i2++; k = nblock + 8; do { /* 1 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); s1 = quadrant[i1]; s2 = quadrant[i2]; if (s1 != s2) return (s1 > s2); i1++; i2++; /* 2 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); s1 = quadrant[i1]; s2 = quadrant[i2]; if (s1 != s2) return (s1 > s2); i1++; i2++; /* 3 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); s1 = quadrant[i1]; s2 = quadrant[i2]; if (s1 != s2) return (s1 > s2); i1++; i2++; /* 4 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); s1 = quadrant[i1]; s2 = quadrant[i2]; if (s1 != s2) return (s1 > s2); i1++; i2++; /* 5 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); s1 = quadrant[i1]; s2 = quadrant[i2]; if (s1 != s2) return (s1 > s2); i1++; i2++; /* 6 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); s1 = quadrant[i1]; s2 = quadrant[i2]; if (s1 != s2) return (s1 > s2); i1++; i2++; /* 7 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); s1 = quadrant[i1]; s2 = quadrant[i2]; if (s1 != s2) return (s1 > s2); i1++; i2++; /* 8 */ c1 = block[i1]; c2 = block[i2]; if (c1 != c2) return (c1 > c2); s1 = quadrant[i1]; s2 = quadrant[i2]; if (s1 != s2) return (s1 > s2); i1++; i2++; if (i1 >= nblock) i1 -= nblock; if (i2 >= nblock) i2 -= nblock; k -= 8; (*budget)--; } while (k >= 0); return False; } /*---------------------------------------------*/ /*-- Knuth's increments seem to work better than Incerpi-Sedgewick here. Possibly because the number of elems to sort is usually small, typically <= 20. --*/ static Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280, 9841, 29524, 88573, 265720, 797161, 2391484 }; static void mainSimpleSort ( UInt32* ptr, UChar* block, UInt16* quadrant, Int32 nblock, Int32 lo, Int32 hi, Int32 d, Int32* budget ) { Int32 i, j, h, bigN, hp; UInt32 v; bigN = hi - lo + 1; if (bigN < 2) return; hp = 0; while (incs[hp] < bigN) hp++; hp--; for (; hp >= 0; hp--) { h = incs[hp]; i = lo + h; while (True) { /*-- copy 1 --*/ if (i > hi) break; v = ptr[i]; j = i; while ( mainGtU ( ptr[j-h]+d, v+d, block, quadrant, nblock, budget ) ) { ptr[j] = ptr[j-h]; j = j - h; if (j <= (lo + h - 1)) break; } ptr[j] = v; i++; /*-- copy 2 --*/ if (i > hi) break; v = ptr[i]; j = i; while ( mainGtU ( ptr[j-h]+d, v+d, block, quadrant, nblock, budget ) ) { ptr[j] = ptr[j-h]; j = j - h; if (j <= (lo + h - 1)) break; } ptr[j] = v; i++; /*-- copy 3 --*/ if (i > hi) break; v = ptr[i]; j = i; while ( mainGtU ( ptr[j-h]+d, v+d, block, quadrant, nblock, budget ) ) { ptr[j] = ptr[j-h]; j = j - h; if (j <= (lo + h - 1)) break; } ptr[j] = v; i++; if (*budget < 0) return; } } } /*---------------------------------------------*/ /*-- The following is an implementation of an elegant 3-way quicksort for strings, described in a paper "Fast Algorithms for Sorting and Searching Strings", by Robert Sedgewick and Jon L. Bentley. --*/ #define mswap(zz1, zz2) \ { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; } #define mvswap(zzp1, zzp2, zzn) \ { \ Int32 yyp1 = (zzp1); \ Int32 yyp2 = (zzp2); \ Int32 yyn = (zzn); \ while (yyn > 0) { \ mswap(ptr[yyp1], ptr[yyp2]); \ yyp1++; yyp2++; yyn--; \ } \ } static __inline__ UChar mmed3 ( UChar a, UChar b, UChar c ) { UChar t; if (a > b) { t = a; a = b; b = t; }; if (b > c) { b = c; if (a > b) b = a; } return b; } #define mmin(a,b) ((a) < (b)) ? (a) : (b) #define mpush(lz,hz,dz) { stackLo[sp] = lz; \ stackHi[sp] = hz; \ stackD [sp] = dz; \ sp++; } #define mpop(lz,hz,dz) { sp--; \ lz = stackLo[sp]; \ hz = stackHi[sp]; \ dz = stackD [sp]; } #define mnextsize(az) (nextHi[az]-nextLo[az]) #define mnextswap(az,bz) \ { Int32 tz; \ tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \ tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \ tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; } #define MAIN_QSORT_SMALL_THRESH 20 #define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT) #define MAIN_QSORT_STACK_SIZE 100 static void mainQSort3 ( UInt32* ptr, UChar* block, UInt16* quadrant, Int32 nblock, Int32 loSt, Int32 hiSt, Int32 dSt, Int32* budget ) { Int32 unLo, unHi, ltLo, gtHi, n, m, med; Int32 sp, lo, hi, d; Int32 stackLo[MAIN_QSORT_STACK_SIZE]; Int32 stackHi[MAIN_QSORT_STACK_SIZE]; Int32 stackD [MAIN_QSORT_STACK_SIZE]; Int32 nextLo[3]; Int32 nextHi[3]; Int32 nextD [3]; sp = 0; mpush ( loSt, hiSt, dSt ); while (sp > 0) { AssertH ( sp < MAIN_QSORT_STACK_SIZE, 1001 ); mpop ( lo, hi, d ); if (hi - lo < MAIN_QSORT_SMALL_THRESH || d > MAIN_QSORT_DEPTH_THRESH) { mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget ); if (*budget < 0) return; continue; } med = (Int32) mmed3 ( block[ptr[ lo ]+d], block[ptr[ hi ]+d], block[ptr[ (lo+hi)>>1 ]+d] ); unLo = ltLo = lo; unHi = gtHi = hi; while (True) { while (True) { if (unLo > unHi) break; n = ((Int32)block[ptr[unLo]+d]) - med; if (n == 0) { mswap(ptr[unLo], ptr[ltLo]); ltLo++; unLo++; continue; }; if (n > 0) break; unLo++; } while (True) { if (unLo > unHi) break; n = ((Int32)block[ptr[unHi]+d]) - med; if (n == 0) { mswap(ptr[unHi], ptr[gtHi]); gtHi--; unHi--; continue; }; if (n < 0) break; unHi--; } if (unLo > unHi) break; mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--; } AssertD ( unHi == unLo-1, "mainQSort3(2)" ); if (gtHi < ltLo) { mpush(lo, hi, d+1 ); continue; } n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n); m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m); n = lo + unLo - ltLo - 1; m = hi - (gtHi - unHi) + 1; nextLo[0] = lo; nextHi[0] = n; nextD[0] = d; nextLo[1] = m; nextHi[1] = hi; nextD[1] = d; nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1; if (mnextsize(0) < mnextsize(1)) mnextswap(0,1); if (mnextsize(1) < mnextsize(2)) mnextswap(1,2); if (mnextsize(0) < mnextsize(1)) mnextswap(0,1); AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" ); AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" ); mpush (nextLo[0], nextHi[0], nextD[0]); mpush (nextLo[1], nextHi[1], nextD[1]); mpush (nextLo[2], nextHi[2], nextD[2]); } } #undef mswap #undef mvswap #undef mpush #undef mpop #undef mmin #undef mnextsize #undef mnextswap #undef MAIN_QSORT_SMALL_THRESH #undef MAIN_QSORT_DEPTH_THRESH #undef MAIN_QSORT_STACK_SIZE /*---------------------------------------------*/ /* Pre: nblock > N_OVERSHOOT block32 exists for [0 .. nblock-1 +N_OVERSHOOT] ((UChar*)block32) [0 .. nblock-1] holds block ptr exists for [0 .. nblock-1] Post: ((UChar*)block32) [0 .. nblock-1] holds block All other areas of block32 destroyed ftab [0 .. 65536 ] destroyed ptr [0 .. nblock-1] holds sorted order if (*budget < 0), sorting was abandoned */ #define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8]) #define SETMASK (1 << 21) #define CLEARMASK (~(SETMASK)) static void mainSort ( UInt32* ptr, UChar* block, UInt16* quadrant, UInt32* ftab, Int32 nblock, Int32 verb, Int32* budget ) { Int32 i, j, k, ss, sb; Int32 runningOrder[256]; Bool bigDone[256]; Int32 copyStart[256]; Int32 copyEnd [256]; UChar c1; Int32 numQSorted; UInt16 s; if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" ); /*-- set up the 2-byte frequency table --*/ for (i = 65536; i >= 0; i--) ftab[i] = 0; j = block[0] << 8; i = nblock-1; for (; i >= 3; i -= 4) { quadrant[i] = 0; j = (j >> 8) | ( ((UInt16)block[i]) << 8); ftab[j]++; quadrant[i-1] = 0; j = (j >> 8) | ( ((UInt16)block[i-1]) << 8); ftab[j]++; quadrant[i-2] = 0; j = (j >> 8) | ( ((UInt16)block[i-2]) << 8); ftab[j]++; quadrant[i-3] = 0; j = (j >> 8) | ( ((UInt16)block[i-3]) << 8); ftab[j]++; } for (; i >= 0; i--) { quadrant[i] = 0; j = (j >> 8) | ( ((UInt16)block[i]) << 8); ftab[j]++; } /*-- (emphasises close relationship of block & quadrant) --*/ for (i = 0; i < BZ_N_OVERSHOOT; i++) { block [nblock+i] = block[i]; quadrant[nblock+i] = 0; } if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" ); /*-- Complete the initial radix sort --*/ for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1]; s = block[0] << 8; i = nblock-1; for (; i >= 3; i -= 4) { s = (s >> 8) | (block[i] << 8); j = ftab[s] -1; ftab[s] = j; ptr[j] = i; s = (s >> 8) | (block[i-1] << 8); j = ftab[s] -1; ftab[s] = j; ptr[j] = i-1; s = (s >> 8) | (block[i-2] << 8); j = ftab[s] -1; ftab[s] = j; ptr[j] = i-2; s = (s >> 8) | (block[i-3] << 8); j = ftab[s] -1; ftab[s] = j; ptr[j] = i-3; } for (; i >= 0; i--) { s = (s >> 8) | (block[i] << 8); j = ftab[s] -1; ftab[s] = j; ptr[j] = i; } /*-- Now ftab contains the first loc of every small bucket. Calculate the running order, from smallest to largest big bucket. --*/ for (i = 0; i <= 255; i++) { bigDone [i] = False; runningOrder[i] = i; } { Int32 vv; Int32 h = 1; do h = 3 * h + 1; while (h <= 256); do { h = h / 3; for (i = h; i <= 255; i++) { vv = runningOrder[i]; j = i; while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) { runningOrder[j] = runningOrder[j-h]; j = j - h; if (j <= (h - 1)) goto zero; } zero: runningOrder[j] = vv; } } while (h != 1); } /*-- The main sorting loop. --*/ numQSorted = 0; for (i = 0; i <= 255; i++) { /*-- Process big buckets, starting with the least full. Basically this is a 3-step process in which we call mainQSort3 to sort the small buckets [ss, j], but also make a big effort to avoid the calls if we can. --*/ ss = runningOrder[i]; /*-- Step 1: Complete the big bucket [ss] by quicksorting any unsorted small buckets [ss, j], for j != ss. Hopefully previous pointer-scanning phases have already completed many of the small buckets [ss, j], so we don't have to sort them at all. --*/ for (j = 0; j <= 255; j++) { if (j != ss) { sb = (ss << 8) + j; if ( ! (ftab[sb] & SETMASK) ) { Int32 lo = ftab[sb] & CLEARMASK; Int32 hi = (ftab[sb+1] & CLEARMASK) - 1; if (hi > lo) { if (verb >= 4) VPrintf4 ( " qsort [0x%x, 0x%x] " "done %d this %d\n", (unsigned)ss, (unsigned)j, numQSorted, hi - lo + 1 ); mainQSort3 ( ptr, block, quadrant, nblock, lo, hi, BZ_N_RADIX, budget ); numQSorted += (hi - lo + 1); if (*budget < 0) return; } } ftab[sb] |= SETMASK; } } AssertH ( !bigDone[ss], 1006 ); /*-- Step 2: Now scan this big bucket [ss] so as to synthesise the sorted order for small buckets [t, ss] for all t, including, magically, the bucket [ss,ss] too. This will avoid doing Real Work in subsequent Step 1's. --*/ { for (j = 0; j <= 255; j++) { copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK; copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1; } for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) { k = ptr[j]-1; if (k < 0) k += nblock; c1 = block[k]; if (!bigDone[c1]) ptr[ copyStart[c1]++ ] = k; } for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) { k = ptr[j]-1; if (k < 0) k += nblock; c1 = block[k]; if (!bigDone[c1]) ptr[ copyEnd[c1]-- ] = k; } } AssertH ( (copyStart[ss]-1 == copyEnd[ss]) || /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1. Necessity for this case is demonstrated by compressing a sequence of approximately 48.5 million of character 251; 1.0.0/1.0.1 will then die here. */ (copyStart[ss] == 0 && copyEnd[ss] == nblock-1), 1007 ) for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK; /*-- Step 3: The [ss] big bucket is now done. Record this fact, and update the quadrant descriptors. Remember to update quadrants in the overshoot area too, if necessary. The "if (i < 255)" test merely skips this updating for the last bucket processed, since updating for the last bucket is pointless. The quadrant array provides a way to incrementally cache sort orderings, as they appear, so as to make subsequent comparisons in fullGtU() complete faster. For repetitive blocks this makes a big difference (but not big enough to be able to avoid the fallback sorting mechanism, exponential radix sort). The precise meaning is: at all times: for 0 <= i < nblock and 0 <= j <= nblock if block[i] != block[j], then the relative values of quadrant[i] and quadrant[j] are meaningless. else { if quadrant[i] < quadrant[j] then the string starting at i lexicographically precedes the string starting at j else if quadrant[i] > quadrant[j] then the string starting at j lexicographically precedes the string starting at i else the relative ordering of the strings starting at i and j has not yet been determined. } --*/ bigDone[ss] = True; if (i < 255) { Int32 bbStart = ftab[ss << 8] & CLEARMASK; Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart; Int32 shifts = 0; while ((bbSize >> shifts) > 65534) shifts++; for (j = bbSize-1; j >= 0; j--) { Int32 a2update = ptr[bbStart + j]; UInt16 qVal = (UInt16)(j >> shifts); quadrant[a2update] = qVal; if (a2update < BZ_N_OVERSHOOT) quadrant[a2update + nblock] = qVal; } AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 ); } } if (verb >= 4) VPrintf3 ( " %d pointers, %d sorted, %d scanned\n", nblock, numQSorted, nblock - numQSorted ); } #undef BIGFREQ #undef SETMASK #undef CLEARMASK /*---------------------------------------------*/ /* Pre: nblock > 0 arr2 exists for [0 .. nblock-1 +N_OVERSHOOT] ((UChar*)arr2) [0 .. nblock-1] holds block arr1 exists for [0 .. nblock-1] Post: ((UChar*)arr2) [0 .. nblock-1] holds block All other areas of block destroyed ftab [ 0 .. 65536 ] destroyed arr1 [0 .. nblock-1] holds sorted order */ void BZ2_blockSort ( EState* s ) { UInt32* ptr = s->ptr; UChar* block = s->block; UInt32* ftab = s->ftab; Int32 nblock = s->nblock; Int32 verb = s->verbosity; Int32 wfact = s->workFactor; UInt16* quadrant; Int32 budget; Int32 budgetInit; Int32 i; if (nblock < 10000) { fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb ); } else { /* Calculate the location for quadrant, remembering to get the alignment right. Assumes that &(block[0]) is at least 2-byte aligned -- this should be ok since block is really the first section of arr2. */ i = nblock+BZ_N_OVERSHOOT; if (i & 1) i++; quadrant = (UInt16*)(&(block[i])); /* (wfact-1) / 3 puts the default-factor-30 transition point at very roughly the same place as with v0.1 and v0.9.0. Not that it particularly matters any more, since the resulting compressed stream is now the same regardless of whether or not we use the main sort or fallback sort. */ if (wfact < 1 ) wfact = 1; if (wfact > 100) wfact = 100; budgetInit = nblock * ((wfact-1) / 3); budget = budgetInit; mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget ); if (verb >= 3) VPrintf3 ( " %d work, %d block, ratio %5.2f\n", budgetInit - budget, nblock, (float)(budgetInit - budget) / (float)(nblock==0 ? 1 : nblock) ); if (budget < 0) { if (verb >= 2) VPrintf0 ( " too repetitive; using fallback" " sorting algorithm\n" ); fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb ); } } s->origPtr = -1; for (i = 0; i < s->nblock; i++) if (ptr[i] == 0) { s->origPtr = i; break; }; AssertH( s->origPtr != -1, 1003 ); } /*-------------------------------------------------------------*/ /*--- end blocksort.c ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/bzip2.c ================================================ /*-----------------------------------------------------------*/ /*--- A block-sorting, lossless compressor bzip2.c ---*/ /*-----------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ /*----------------------------------------------------*/ /*--- IMPORTANT ---*/ /*----------------------------------------------------*/ /*-- WARNING: This program and library (attempts to) compress data by performing several non-trivial transformations on it. Unless you are 100% familiar with *all* the algorithms contained herein, and with the consequences of modifying them, you should NOT meddle with the compression or decompression machinery. Incorrect changes can and very likely *will* lead to disasterous loss of data. DISCLAIMER: I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE USE OF THIS PROGRAM, HOWSOEVER CAUSED. Every compression of a file implies an assumption that the compressed file can be decompressed to reproduce the original. Great efforts in design, coding and testing have been made to ensure that this program works correctly. However, the complexity of the algorithms, and, in particular, the presence of various special cases in the code which occur with very low but non-zero probability make it impossible to rule out the possibility of bugs remaining in the program. DO NOT COMPRESS ANY DATA WITH THIS PROGRAM AND/OR LIBRARY UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER SMALL, THAT THE DATA WILL NOT BE RECOVERABLE. That is not to say this program is inherently unreliable. Indeed, I very much hope the opposite is true. bzip2/libbzip2 has been carefully constructed and extensively tested. PATENTS: To the best of my knowledge, bzip2/libbzip2 does not use any patented algorithms. However, I do not have the resources available to carry out a full patent search. Therefore I cannot give any guarantee of the above statement. --*/ /*----------------------------------------------------*/ /*--- and now for something much more pleasant :-) ---*/ /*----------------------------------------------------*/ /*---------------------------------------------*/ /*-- Place a 1 beside your platform, and 0 elsewhere. --*/ /*-- Generic 32-bit Unix. Also works on 64-bit Unix boxes. This is the default. --*/ #if defined(SPEC_CPU) #define BZ_UNIX 0 #else #define BZ_UNIX 1 #endif /*-- Win32, as seen by Jacob Navia's excellent port of (Chris Fraser & David Hanson)'s excellent lcc compiler. Or with MS Visual C. This is selected automatically if compiled by a compiler which defines _WIN32, not including the Cygwin GCC. --*/ #define BZ_LCCWIN32 0 #if !defined(SPEC_CPU) #if defined(_WIN32) && !defined(__CYGWIN__) #undef BZ_LCCWIN32 #define BZ_LCCWIN32 1 #undef BZ_UNIX #define BZ_UNIX 0 #endif #endif /* !SPEC_CPU */ /*---------------------------------------------*/ /*-- Some stuff for all platforms. --*/ #include #include #include #include #include #include #include #include "bzlib.h" #include "spec.h" #define ERROR_IF_EOF(i) { if ((i) == EOF) ioError(); } #define ERROR_IF_NOT_ZERO(i) { if ((i) != 0) ioError(); } #define ERROR_IF_MINUS_ONE(i) { if ((i) == (-1)) ioError(); } /*---------------------------------------------*/ /*-- Platform-specific stuff. --*/ #if BZ_UNIX # include # include # include # include # include # include # define PATH_SEP '/' # define MY_LSTAT lstat # define MY_STAT stat # define MY_S_ISREG S_ISREG # define MY_S_ISDIR S_ISDIR # define APPEND_FILESPEC(root, name) \ root=snocString((root), (name)) # define APPEND_FLAG(root, name) \ root=snocString((root), (name)) # define SET_BINARY_MODE(fd) /**/ # if !defined(SPEC_CPU) && defined(__GNUC__) # define NORETURN __attribute__ ((noreturn)) # else # define NORETURN /**/ # endif # ifdef __DJGPP__ # include # include # undef MY_LSTAT # undef MY_STAT # define MY_LSTAT stat # define MY_STAT stat # undef SET_BINARY_MODE # define SET_BINARY_MODE(fd) \ do { \ int retVal = setmode ( fileno ( fd ), \ O_BINARY ); \ ERROR_IF_MINUS_ONE ( retVal ); \ } while ( 0 ) # endif # ifdef __CYGWIN__ # include # include # undef SET_BINARY_MODE # define SET_BINARY_MODE(fd) \ do { \ int retVal = setmode ( fileno ( fd ), \ O_BINARY ); \ ERROR_IF_MINUS_ONE ( retVal ); \ } while ( 0 ) # endif #endif /* BZ_UNIX */ #if BZ_LCCWIN32 # include # include # include # define NORETURN /**/ # define PATH_SEP '\\' # define MY_LSTAT _stat # define MY_STAT _stat # define MY_S_ISREG(x) ((x) & _S_IFREG) # define MY_S_ISDIR(x) ((x) & _S_IFDIR) # define APPEND_FLAG(root, name) \ root=snocString((root), (name)) # define APPEND_FILESPEC(root, name) \ root = snocString ((root), (name)) # define SET_BINARY_MODE(fd) \ do { \ int retVal = setmode ( fileno ( fd ), \ O_BINARY ); \ ERROR_IF_MINUS_ONE ( retVal ); \ } while ( 0 ) #endif /* BZ_LCCWIN32 */ /*---------------------------------------------*/ /*-- Some more stuff for all platforms :-) --*/ typedef char Char; typedef unsigned char Bool; typedef unsigned char UChar; typedef int Int32; typedef unsigned int UInt32; typedef short Int16; typedef unsigned short UInt16; #define True ((Bool)1) #define False ((Bool)0) /*-- IntNative is your platform's `native' int size. Only here to avoid probs with 64-bit platforms. --*/ typedef int IntNative; /*---------------------------------------------------*/ /*--- Misc (file handling) data decls ---*/ /*---------------------------------------------------*/ Int32 verbosity; Bool keepInputFiles, smallMode, deleteOutputOnInterrupt; Bool forceOverwrite, testFailsExist, unzFailsExist, noisy; Int32 numFileNames, numFilesProcessed, blockSize100k; Int32 exitValue; /*-- source modes; F==file, I==stdin, O==stdout --*/ #define SM_I2O 1 #define SM_F2O 2 #define SM_F2F 3 /*-- operation modes --*/ #define OM_Z 1 #define OM_UNZ 2 #define OM_TEST 3 Int32 opMode; Int32 srcMode; #define FILE_NAME_LEN 1034 Int32 longestFileName; Char inName [FILE_NAME_LEN]; Char outName[FILE_NAME_LEN]; Char tmpName[FILE_NAME_LEN]; Char *progName; Char progNameReally[FILE_NAME_LEN]; #if defined(SPEC_CPU) int outputHandleJustInCase; #else FILE *outputHandleJustInCase; #endif Int32 workFactor; static void panic ( Char* ) NORETURN; static void ioError ( void ) NORETURN; static void outOfMemory ( void ) NORETURN; static void configError ( void ) NORETURN; static void crcError ( void ) NORETURN; static void cleanUpAndFail ( Int32 ) NORETURN; static void compressedStreamEOF ( void ) NORETURN; static void copyFileName ( Char*, Char* ); static void* myMalloc ( Int32 ); /*---------------------------------------------------*/ /*--- An implementation of 64-bit ints. Sigh. ---*/ /*--- Roll on widespread deployment of ANSI C9X ! ---*/ /*---------------------------------------------------*/ typedef struct { UChar b[8]; } UInt64; static void uInt64_from_UInt32s ( UInt64* n, UInt32 lo32, UInt32 hi32 ) { n->b[7] = (UChar)((hi32 >> 24) & 0xFF); n->b[6] = (UChar)((hi32 >> 16) & 0xFF); n->b[5] = (UChar)((hi32 >> 8) & 0xFF); n->b[4] = (UChar) (hi32 & 0xFF); n->b[3] = (UChar)((lo32 >> 24) & 0xFF); n->b[2] = (UChar)((lo32 >> 16) & 0xFF); n->b[1] = (UChar)((lo32 >> 8) & 0xFF); n->b[0] = (UChar) (lo32 & 0xFF); } static double uInt64_to_double ( UInt64* n ) { Int32 i; double base = 1.0; double sum = 0.0; for (i = 0; i < 8; i++) { sum += base * (double)(n->b[i]); base *= 256.0; } return sum; } static Bool uInt64_isZero ( UInt64* n ) { Int32 i; for (i = 0; i < 8; i++) if (n->b[i] != 0) return 0; return 1; } /* Divide *n by 10, and return the remainder. */ static Int32 uInt64_qrm10 ( UInt64* n ) { UInt32 rem, tmp; Int32 i; rem = 0; for (i = 7; i >= 0; i--) { tmp = rem * 256 + n->b[i]; n->b[i] = tmp / 10; rem = tmp % 10; } return rem; } /* ... and the Whole Entire Point of all this UInt64 stuff is so that we can supply the following function. */ static void uInt64_toAscii ( char* outbuf, UInt64* n ) { Int32 i, q; UChar buf[32]; Int32 nBuf = 0; UInt64 n_copy = *n; do { q = uInt64_qrm10 ( &n_copy ); buf[nBuf] = q + '0'; nBuf++; } while (!uInt64_isZero(&n_copy)); outbuf[nBuf] = 0; for (i = 0; i < nBuf; i++) outbuf[i] = buf[nBuf-i-1]; } /*---------------------------------------------------*/ /*--- Processing of complete files and streams ---*/ /*---------------------------------------------------*/ /*---------------------------------------------*/ static #if defined(SPEC_CPU) Bool myfeof ( int f ) #else Bool myfeof ( FILE* f ) #endif { Int32 c = fgetc ( f ); if (c == EOF) return True; ungetc ( c, f ); return False; } /*---------------------------------------------*/ #if defined(SPEC_CPU) void compressStream ( int stream, int zStream ) #else static void compressStream ( FILE *stream, FILE *zStream ) #endif { BZFILE* bzf = NULL; UChar ibuf[5000]; Int32 nIbuf; UInt32 nbytes_in_lo32, nbytes_in_hi32; UInt32 nbytes_out_lo32, nbytes_out_hi32; Int32 bzerr, bzerr_dummy, ret; SET_BINARY_MODE(stream); SET_BINARY_MODE(zStream); if (ferror(stream)) goto errhandler_io; if (ferror(zStream)) goto errhandler_io; bzf = BZ2_bzWriteOpen ( &bzerr, zStream, blockSize100k, verbosity, workFactor ); if (bzerr != BZ_OK) goto errhandler; if (verbosity >= 2) fprintf ( stderr, "\n" ); while (True) { if (myfeof(stream)) break; nIbuf = fread ( ibuf, sizeof(UChar), 5000, stream ); if (ferror(stream)) goto errhandler_io; if (nIbuf > 0) BZ2_bzWrite ( &bzerr, bzf, (void*)ibuf, nIbuf ); if (bzerr != BZ_OK) goto errhandler; } BZ2_bzWriteClose64 ( &bzerr, bzf, 0, &nbytes_in_lo32, &nbytes_in_hi32, &nbytes_out_lo32, &nbytes_out_hi32 ); if (bzerr != BZ_OK) goto errhandler; if (ferror(zStream)) goto errhandler_io; ret = fflush ( zStream ); if (ret == EOF) goto errhandler_io; #if defined(SPEC_CPU) if (zStream != SPEC_STDOUT) { #else if (zStream != stdout) { #endif ret = fclose ( zStream ); outputHandleJustInCase = SPEC_NULLCAST NULL; if (ret == EOF) goto errhandler_io; } outputHandleJustInCase = NULL; if (ferror(stream)) goto errhandler_io; ret = fclose ( stream ); if (ret == EOF) goto errhandler_io; if (verbosity >= 1) { if (nbytes_in_lo32 == 0 && nbytes_in_hi32 == 0) { fprintf ( stderr, " no data compressed.\n"); } else { Char buf_nin[32], buf_nout[32]; UInt64 nbytes_in, nbytes_out; double nbytes_in_d, nbytes_out_d; uInt64_from_UInt32s ( &nbytes_in, nbytes_in_lo32, nbytes_in_hi32 ); uInt64_from_UInt32s ( &nbytes_out, nbytes_out_lo32, nbytes_out_hi32 ); nbytes_in_d = uInt64_to_double ( &nbytes_in ); nbytes_out_d = uInt64_to_double ( &nbytes_out ); uInt64_toAscii ( buf_nin, &nbytes_in ); uInt64_toAscii ( buf_nout, &nbytes_out ); fprintf ( stderr, "%6.3f:1, %6.3f bits/byte, " "%5.2f%% saved, %s in, %s out.\n", nbytes_in_d / nbytes_out_d, (8.0 * nbytes_out_d) / nbytes_in_d, 100.0 * (1.0 - nbytes_out_d / nbytes_in_d), buf_nin, buf_nout ); } } return; errhandler: BZ2_bzWriteClose64 ( &bzerr_dummy, bzf, 1, &nbytes_in_lo32, &nbytes_in_hi32, &nbytes_out_lo32, &nbytes_out_hi32 ); switch (bzerr) { case BZ_CONFIG_ERROR: configError(); break; case BZ_MEM_ERROR: outOfMemory (); break; case BZ_IO_ERROR: errhandler_io: ioError(); break; default: panic ( "compress:unexpected error" ); } panic ( "compress:end" ); /*notreached*/ } /*---------------------------------------------*/ #if defined(SPEC_CPU) Bool uncompressStream ( int zStream, int stream ) #else static Bool uncompressStream ( FILE *zStream, FILE *stream ) #endif { BZFILE* bzf = NULL; Int32 bzerr, bzerr_dummy, ret, nread, streamNo, i; UChar obuf[5000]; UChar unused[BZ_MAX_UNUSED]; Int32 nUnused; void* unusedTmpV; UChar* unusedTmp; nUnused = 0; streamNo = 0; SET_BINARY_MODE(stream); SET_BINARY_MODE(zStream); if (ferror(stream)) goto errhandler_io; if (ferror(zStream)) goto errhandler_io; while (True) { bzf = BZ2_bzReadOpen ( &bzerr, zStream, verbosity, (int)smallMode, unused, nUnused ); if (bzf == NULL || bzerr != BZ_OK) goto errhandler; streamNo++; while (bzerr == BZ_OK) { nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 ); if (bzerr == BZ_DATA_ERROR_MAGIC) goto trycat; if ((bzerr == BZ_OK || bzerr == BZ_STREAM_END) && nread > 0) fwrite ( obuf, sizeof(UChar), nread, stream ); if (ferror(stream)) goto errhandler_io; } if (bzerr != BZ_STREAM_END) goto errhandler; BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused ); if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" ); unusedTmp = (UChar*)unusedTmpV; for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i]; BZ2_bzReadClose ( &bzerr, bzf ); if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" ); if (nUnused == 0 && myfeof(zStream)) break; } closeok: if (ferror(zStream)) goto errhandler_io; ret = fclose ( zStream ); if (ret == EOF) goto errhandler_io; if (ferror(stream)) goto errhandler_io; ret = fflush ( stream ); if (ret != 0) goto errhandler_io; #if defined(SPEC_CPU) if (stream != SPEC_STDOUT) { #else if (stream != stdout) { #endif ret = fclose ( stream ); outputHandleJustInCase = SPEC_NULLCAST NULL; if (ret == EOF) goto errhandler_io; } outputHandleJustInCase = NULL; if (verbosity >= 2) fprintf ( stderr, "\n " ); return True; trycat: if (forceOverwrite) { rewind(zStream); while (True) { if (myfeof(zStream)) break; nread = fread ( obuf, sizeof(UChar), 5000, zStream ); if (ferror(zStream)) goto errhandler_io; if (nread > 0) fwrite ( obuf, sizeof(UChar), nread, stream ); if (ferror(stream)) goto errhandler_io; } goto closeok; } errhandler: BZ2_bzReadClose ( &bzerr_dummy, bzf ); switch (bzerr) { case BZ_CONFIG_ERROR: configError(); break; case BZ_IO_ERROR: errhandler_io: ioError(); break; case BZ_DATA_ERROR: crcError(); case BZ_MEM_ERROR: outOfMemory(); case BZ_UNEXPECTED_EOF: compressedStreamEOF(); case BZ_DATA_ERROR_MAGIC: #if defined(SPEC_CPU) if (zStream != SPEC_STDIN) fclose(zStream); if (stream != SPEC_STDOUT) fclose(stream); #else if (zStream != stdin) fclose(zStream); if (stream != stdout) fclose(stream); #endif if (streamNo == 1) { return False; } else { if (noisy) fprintf ( stderr, "\n%s: %s: trailing garbage after EOF ignored\n", progName, inName ); return True; } default: panic ( "decompress:unexpected error" ); } panic ( "decompress:end" ); return True; /*notreached*/ } /*---------------------------------------------*/ static #if defined(SPEC_CPU) Bool testStream ( int zStream ) #else Bool testStream ( FILE *zStream ) #endif { BZFILE* bzf = NULL; Int32 bzerr, bzerr_dummy, ret, nread, streamNo, i; UChar obuf[5000]; UChar unused[BZ_MAX_UNUSED]; Int32 nUnused; void* unusedTmpV; UChar* unusedTmp; nUnused = 0; streamNo = 0; SET_BINARY_MODE(zStream); if (ferror(zStream)) goto errhandler_io; while (True) { bzf = BZ2_bzReadOpen ( &bzerr, zStream, verbosity, (int)smallMode, unused, nUnused ); if (bzf == NULL || bzerr != BZ_OK) goto errhandler; streamNo++; while (bzerr == BZ_OK) { nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 ); if (bzerr == BZ_DATA_ERROR_MAGIC) goto errhandler; } if (bzerr != BZ_STREAM_END) goto errhandler; BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused ); if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" ); unusedTmp = (UChar*)unusedTmpV; for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i]; BZ2_bzReadClose ( &bzerr, bzf ); if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" ); if (nUnused == 0 && myfeof(zStream)) break; } if (ferror(zStream)) goto errhandler_io; ret = fclose ( zStream ); if (ret == EOF) goto errhandler_io; if (verbosity >= 2) fprintf ( stderr, "\n " ); return True; errhandler: BZ2_bzReadClose ( &bzerr_dummy, bzf ); if (verbosity == 0) fprintf ( stderr, "%s: %s: ", progName, inName ); switch (bzerr) { case BZ_CONFIG_ERROR: configError(); break; case BZ_IO_ERROR: errhandler_io: ioError(); break; case BZ_DATA_ERROR: fprintf ( stderr, "data integrity (CRC) error in data\n" ); return False; case BZ_MEM_ERROR: outOfMemory(); case BZ_UNEXPECTED_EOF: fprintf ( stderr, "file ends unexpectedly\n" ); return False; case BZ_DATA_ERROR_MAGIC: #if defined(SPEC_CPU) if (zStream != SPEC_STDIN) fclose(zStream); #else if (zStream != stdin) fclose(zStream); #endif if (streamNo == 1) { fprintf ( stderr, "bad magic number (file not created by bzip2)\n" ); return False; } else { if (noisy) fprintf ( stderr, "trailing garbage after EOF ignored\n" ); return True; } default: panic ( "test:unexpected error" ); } panic ( "test:end" ); return True; /*notreached*/ } /*---------------------------------------------------*/ /*--- Error [non-] handling grunge ---*/ /*---------------------------------------------------*/ /*---------------------------------------------*/ static void setExit ( Int32 v ) { #if defined(SPEC_CPU) exitValue = 0; /* Only a crash should generate an RE */ #else if (v > exitValue) exitValue = v; #endif } /*---------------------------------------------*/ static void cadvise ( void ) { if (noisy) fprintf ( stderr, "\nIt is possible that the compressed file(s) have become corrupted.\n" "You can use the -tvv option to test integrity of such files.\n\n" "You can use the `bzip2recover' program to attempt to recover\n" "data from undamaged sections of corrupted files.\n\n" ); } /*---------------------------------------------*/ static void showFileNames ( void ) { if (noisy) fprintf ( stderr, "\tInput file = %s, output file = %s\n", inName, outName ); } /*---------------------------------------------*/ static void cleanUpAndFail ( Int32 ec ) { IntNative retVal; #if !defined(SPEC_CPU) struct MY_STAT statBuf; if ( srcMode == SM_F2F && opMode != OM_TEST && deleteOutputOnInterrupt ) { /* Check whether input file still exists. Delete output file only if input exists to avoid loss of data. Joerg Prante, 5 January 2002. (JRS 06-Jan-2002: other changes in 1.0.2 mean this is less likely to happen. But to be ultra-paranoid, we do the check anyway.) */ retVal = MY_STAT ( inName, &statBuf ); if (retVal == 0) { if (noisy) fprintf ( stderr, "%s: Deleting output file %s, if it exists.\n", progName, outName ); if (outputHandleJustInCase != NULL) fclose ( outputHandleJustInCase ); retVal = remove ( outName ); if (retVal != 0) fprintf ( stderr, "%s: WARNING: deletion of output file " "(apparently) failed.\n", progName ); } else { fprintf ( stderr, "%s: WARNING: deletion of output file suppressed\n", progName ); fprintf ( stderr, "%s: since input file no longer exists. Output file\n", progName ); fprintf ( stderr, "%s: `%s' may be incomplete.\n", progName, outName ); fprintf ( stderr, "%s: I suggest doing an integrity test (bzip2 -tv)" " of it.\n", progName ); } } if (noisy && numFileNames > 0 && numFilesProcessed < numFileNames) { fprintf ( stderr, "%s: WARNING: some files have not been processed:\n" "%s: %d specified on command line, %d not processed yet.\n\n", progName, progName, numFileNames, numFileNames - numFilesProcessed ); } #endif /* !SPEC_CPU */ setExit(ec); exit(exitValue); } /*---------------------------------------------*/ static void panic ( Char* s ) { fprintf ( stderr, "\n%s: PANIC -- internal consistency error:\n" "\t%s\n" #if defined(SPEC_CPU) "\tThis is probably a BUG, but it may be in your COMPILER. Please do not bother\n" "\tthe original author.\n", #else "\tThis is a BUG. Please report it to me at:\n" "\tjseward@bzip.org\n", #endif progName, s ); showFileNames(); cleanUpAndFail( 3 ); } /*---------------------------------------------*/ static void crcError ( void ) { fprintf ( stderr, "\n%s: Data integrity error when decompressing.\n", progName ); showFileNames(); cadvise(); cleanUpAndFail( 2 ); } /*---------------------------------------------*/ static void compressedStreamEOF ( void ) { if (noisy) { fprintf ( stderr, "\n%s: Compressed file ends unexpectedly;\n\t" "perhaps it is corrupted? *Possible* reason follows.\n", progName ); perror ( progName ); showFileNames(); cadvise(); } cleanUpAndFail( 2 ); } /*---------------------------------------------*/ static void ioError ( void ) { fprintf ( stderr, "\n%s: I/O or other error, bailing out. " "Possible reason follows.\n", progName ); perror ( progName ); showFileNames(); cleanUpAndFail( 1 ); } /*---------------------------------------------*/ static void mySignalCatcher ( IntNative n ) { fprintf ( stderr, "\n%s: Control-C or similar caught, quitting.\n", progName ); cleanUpAndFail(1); } /*---------------------------------------------*/ static void mySIGSEGVorSIGBUScatcher ( IntNative n ) { if (opMode == OM_Z) fprintf ( stderr, "\n%s: Caught a SIGSEGV or SIGBUS whilst compressing.\n" "\n" " Possible causes are (most likely first):\n" " (1) This computer has unreliable memory or cache hardware\n" " (a surprisingly common problem; try a different machine.)\n" " (2) A bug in the compiler used to create this executable\n" " (unlikely, if you didn't compile bzip2 yourself.)\n" " (3) A real bug in bzip2 -- I hope this should never be the case.\n" " The user's manual, Section 4.3, has more info on (1) and (2).\n" #if !defined(SPEC_CPU) " \n" " If you suspect this is a bug in bzip2, or are unsure about (1)\n" " or (2), feel free to report it to me at: jseward@bzip.org.\n" " Section 4.3 of the user's manual describes the info a useful\n" " bug report should have. If the manual is available on your\n" " system, please try and read it before mailing me. If you don't\n" " have the manual or can't be bothered to read it, mail me anyway.\n" #endif /* !SPEC_CPU */ "\n", progName ); else fprintf ( stderr, "\n%s: Caught a SIGSEGV or SIGBUS whilst decompressing.\n" "\n" " Possible causes are (most likely first):\n" " (1) The compressed data is corrupted, and bzip2's usual checks\n" " failed to detect this. Try bzip2 -tvv my_file.bz2.\n" " (2) This computer has unreliable memory or cache hardware\n" " (a surprisingly common problem; try a different machine.)\n" " (3) A bug in the compiler used to create this executable\n" " (unlikely, if you didn't compile bzip2 yourself.)\n" " (4) A real bug in bzip2 -- I hope this should never be the case.\n" " The user's manual, Section 4.3, has more info on (2) and (3).\n" #if !defined(SPEC_CPU) " \n" " If you suspect this is a bug in bzip2, or are unsure about (2)\n" " or (3), feel free to report it to me at: jseward@bzip.org.\n" " Section 4.3 of the user's manual describes the info a useful\n" " bug report should have. If the manual is available on your\n" " system, please try and read it before mailing me. If you don't\n" " have the manual or can't be bothered to read it, mail me anyway.\n" #endif /* !SPEC_CPU */ "\n", progName ); showFileNames(); if (opMode == OM_Z) cleanUpAndFail( 3 ); else { cadvise(); cleanUpAndFail( 2 ); } } /*---------------------------------------------*/ static void outOfMemory ( void ) { fprintf ( stderr, "\n%s: couldn't allocate enough memory\n", progName ); showFileNames(); cleanUpAndFail(1); } /*---------------------------------------------*/ static void configError ( void ) { fprintf ( stderr, "bzip2: I'm not configured correctly for this platform!\n" "\tI require Int32, Int16 and Char to have sizes\n" "\tof 4, 2 and 1 bytes to run properly, and they don't.\n" "\tProbably you can fix this by defining them correctly,\n" "\tand recompiling. Bye!\n" ); setExit(3); exit(exitValue); } /*---------------------------------------------------*/ /*--- The main driver machinery ---*/ /*---------------------------------------------------*/ #if !defined(SPEC_CPU) /* All rather crufty. The main problem is that input files are stat()d multiple times before use. This should be cleaned up. */ /*---------------------------------------------*/ static void pad ( Char *s ) { Int32 i; if ( (Int32)strlen(s) >= longestFileName ) return; for (i = 1; i <= longestFileName - (Int32)strlen(s); i++) fprintf ( stderr, " " ); } /*---------------------------------------------*/ static void copyFileName ( Char* to, Char* from ) { if ( strlen(from) > FILE_NAME_LEN-10 ) { fprintf ( stderr, "bzip2: file name\n`%s'\n" "is suspiciously (more than %d chars) long.\n" "Try using a reasonable file name instead. Sorry! :-)\n", from, FILE_NAME_LEN-10 ); setExit(1); exit(exitValue); } strncpy(to,from,FILE_NAME_LEN-10); to[FILE_NAME_LEN-10]='\0'; } /*---------------------------------------------*/ static Bool fileExists ( Char* name ) { FILE *tmp = fopen ( name, "rb" ); Bool exists = (tmp != NULL); if (tmp != NULL) fclose ( tmp ); return exists; } /*---------------------------------------------*/ /* Open an output file safely with O_EXCL and good permissions. This avoids a race condition in versions < 1.0.2, in which the file was first opened and then had its interim permissions set safely. We instead use open() to create the file with the interim permissions required. (--- --- rw-). For non-Unix platforms, if we are not worrying about security issues, simple this simply behaves like fopen. */ FILE* fopen_output_safely ( Char* name, const char* mode ) { # if BZ_UNIX FILE* fp; IntNative fh; fh = open(name, O_WRONLY|O_CREAT|O_EXCL, S_IWUSR|S_IRUSR); if (fh == -1) return NULL; fp = fdopen(fh, mode); if (fp == NULL) close(fh); return fp; # else return fopen(name, mode); # endif } /*---------------------------------------------*/ /*-- if in doubt, return True --*/ static Bool notAStandardFile ( Char* name ) { IntNative i; struct MY_STAT statBuf; i = MY_LSTAT ( name, &statBuf ); if (i != 0) return True; if (MY_S_ISREG(statBuf.st_mode)) return False; return True; } /*---------------------------------------------*/ /*-- rac 11/21/98 see if file has hard links to it --*/ static Int32 countHardLinks ( Char* name ) { IntNative i; struct MY_STAT statBuf; i = MY_LSTAT ( name, &statBuf ); if (i != 0) return 0; return (statBuf.st_nlink - 1); } /*---------------------------------------------*/ /* Copy modification date, access date, permissions and owner from the source to destination file. We have to copy this meta-info off into fileMetaInfo before starting to compress / decompress it, because doing it afterwards means we get the wrong access time. To complicate matters, in compress() and decompress() below, the sequence of tests preceding the call to saveInputFileMetaInfo() involves calling fileExists(), which in turn establishes its result by attempting to fopen() the file, and if successful, immediately fclose()ing it again. So we have to assume that the fopen() call does not cause the access time field to be updated. Reading of the man page for stat() (man 2 stat) on RedHat 7.2 seems to imply that merely doing open() will not affect the access time. Therefore we merely need to hope that the C library only does open() as a result of fopen(), and not any kind of read()-ahead cleverness. It sounds pretty fragile to me. Whether this carries across robustly to arbitrary Unix-like platforms (or even works robustly on this one, RedHat 7.2) is unknown to me. Nevertheless ... */ #if BZ_UNIX static struct MY_STAT fileMetaInfo; #endif static void saveInputFileMetaInfo ( Char *srcName ) { # if BZ_UNIX IntNative retVal; /* Note use of stat here, not lstat. */ retVal = MY_STAT( srcName, &fileMetaInfo ); ERROR_IF_NOT_ZERO ( retVal ); # endif } static void applySavedMetaInfoToOutputFile ( Char *dstName ) { # if BZ_UNIX IntNative retVal; struct utimbuf uTimBuf; uTimBuf.actime = fileMetaInfo.st_atime; uTimBuf.modtime = fileMetaInfo.st_mtime; retVal = chmod ( dstName, fileMetaInfo.st_mode ); ERROR_IF_NOT_ZERO ( retVal ); retVal = utime ( dstName, &uTimBuf ); ERROR_IF_NOT_ZERO ( retVal ); retVal = chown ( dstName, fileMetaInfo.st_uid, fileMetaInfo.st_gid ); /* chown() will in many cases return with EPERM, which can be safely ignored. */ # endif } /*---------------------------------------------*/ static Bool containsDubiousChars ( Char* name ) { # if BZ_UNIX /* On unix, files can contain any characters and the file expansion * is performed by the shell. */ return False; # else /* ! BZ_UNIX */ /* On non-unix (Win* platforms), wildcard characters are not allowed in * filenames. */ for (; *name != '\0'; name++) if (*name == '?' || *name == '*') return True; return False; # endif /* BZ_UNIX */ } /*---------------------------------------------*/ #define BZ_N_SUFFIX_PAIRS 4 Char* zSuffix[BZ_N_SUFFIX_PAIRS] = { ".bz2", ".bz", ".tbz2", ".tbz" }; Char* unzSuffix[BZ_N_SUFFIX_PAIRS] = { "", "", ".tar", ".tar" }; static Bool hasSuffix ( Char* s, Char* suffix ) { Int32 ns = strlen(s); Int32 nx = strlen(suffix); if (ns < nx) return False; if (strcmp(s + ns - nx, suffix) == 0) return True; return False; } static Bool mapSuffix ( Char* name, Char* oldSuffix, Char* newSuffix ) { if (!hasSuffix(name,oldSuffix)) return False; name[strlen(name)-strlen(oldSuffix)] = 0; strcat ( name, newSuffix ); return True; } /*---------------------------------------------*/ static void compress ( Char *name ) { FILE *inStr; FILE *outStr; Int32 n, i; struct MY_STAT statBuf; deleteOutputOnInterrupt = False; if (name == NULL && srcMode != SM_I2O) panic ( "compress: bad modes\n" ); switch (srcMode) { case SM_I2O: copyFileName ( inName, "(stdin)" ); copyFileName ( outName, "(stdout)" ); break; case SM_F2F: copyFileName ( inName, name ); copyFileName ( outName, name ); strcat ( outName, ".bz2" ); break; case SM_F2O: copyFileName ( inName, name ); copyFileName ( outName, "(stdout)" ); break; } if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) { if (noisy) fprintf ( stderr, "%s: There are no files matching `%s'.\n", progName, inName ); setExit(1); return; } if ( srcMode != SM_I2O && !fileExists ( inName ) ) { fprintf ( stderr, "%s: Can't open input file %s: %s.\n", progName, inName, strerror(errno) ); setExit(1); return; } for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++) { if (hasSuffix(inName, zSuffix[i])) { if (noisy) fprintf ( stderr, "%s: Input file %s already has %s suffix.\n", progName, inName, zSuffix[i] ); setExit(1); return; } } if ( srcMode == SM_F2F || srcMode == SM_F2O ) { MY_STAT(inName, &statBuf); if ( MY_S_ISDIR(statBuf.st_mode) ) { fprintf( stderr, "%s: Input file %s is a directory.\n", progName,inName); setExit(1); return; } } if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) { if (noisy) fprintf ( stderr, "%s: Input file %s is not a normal file.\n", progName, inName ); setExit(1); return; } if ( srcMode == SM_F2F && fileExists ( outName ) ) { if (forceOverwrite) { remove(outName); } else { fprintf ( stderr, "%s: Output file %s already exists.\n", progName, outName ); setExit(1); return; } } if ( srcMode == SM_F2F && !forceOverwrite && (n=countHardLinks ( inName )) > 0) { fprintf ( stderr, "%s: Input file %s has %d other link%s.\n", progName, inName, n, n > 1 ? "s" : "" ); setExit(1); return; } if ( srcMode == SM_F2F ) { /* Save the file's meta-info before we open it. Doing it later means we mess up the access times. */ saveInputFileMetaInfo ( inName ); } switch ( srcMode ) { case SM_I2O: inStr = stdin; outStr = stdout; if ( isatty ( fileno ( stdout ) ) ) { fprintf ( stderr, "%s: I won't write compressed data to a terminal.\n", progName ); fprintf ( stderr, "%s: For help, type: `%s --help'.\n", progName, progName ); setExit(1); return; }; break; case SM_F2O: inStr = fopen ( inName, "rb" ); outStr = stdout; if ( isatty ( fileno ( stdout ) ) ) { fprintf ( stderr, "%s: I won't write compressed data to a terminal.\n", progName ); fprintf ( stderr, "%s: For help, type: `%s --help'.\n", progName, progName ); if ( inStr != NULL ) fclose ( inStr ); setExit(1); return; }; if ( inStr == NULL ) { fprintf ( stderr, "%s: Can't open input file %s: %s.\n", progName, inName, strerror(errno) ); setExit(1); return; }; break; case SM_F2F: inStr = fopen ( inName, "rb" ); outStr = fopen_output_safely ( outName, "wb" ); if ( outStr == NULL) { fprintf ( stderr, "%s: Can't create output file %s: %s.\n", progName, outName, strerror(errno) ); if ( inStr != NULL ) fclose ( inStr ); setExit(1); return; } if ( inStr == NULL ) { fprintf ( stderr, "%s: Can't open input file %s: %s.\n", progName, inName, strerror(errno) ); if ( outStr != NULL ) fclose ( outStr ); setExit(1); return; }; break; default: panic ( "compress: bad srcMode" ); break; } if (verbosity >= 1) { fprintf ( stderr, " %s: ", inName ); pad ( inName ); fflush ( stderr ); } /*--- Now the input and output handles are sane. Do the Biz. ---*/ outputHandleJustInCase = outStr; deleteOutputOnInterrupt = True; compressStream ( inStr, outStr ); outputHandleJustInCase = NULL; /*--- If there was an I/O error, we won't get here. ---*/ if ( srcMode == SM_F2F ) { applySavedMetaInfoToOutputFile ( outName ); deleteOutputOnInterrupt = False; if ( !keepInputFiles ) { IntNative retVal = remove ( inName ); ERROR_IF_NOT_ZERO ( retVal ); } } deleteOutputOnInterrupt = False; } /*---------------------------------------------*/ static void uncompress ( Char *name ) { FILE *inStr; FILE *outStr; Int32 n, i; Bool magicNumberOK; Bool cantGuess; struct MY_STAT statBuf; deleteOutputOnInterrupt = False; if (name == NULL && srcMode != SM_I2O) panic ( "uncompress: bad modes\n" ); cantGuess = False; switch (srcMode) { case SM_I2O: copyFileName ( inName, "(stdin)" ); copyFileName ( outName, "(stdout)" ); break; case SM_F2F: copyFileName ( inName, name ); copyFileName ( outName, name ); for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++) if (mapSuffix(outName,zSuffix[i],unzSuffix[i])) goto zzz; cantGuess = True; strcat ( outName, ".out" ); break; case SM_F2O: copyFileName ( inName, name ); copyFileName ( outName, "(stdout)" ); break; } zzz: if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) { if (noisy) fprintf ( stderr, "%s: There are no files matching `%s'.\n", progName, inName ); setExit(1); return; } if ( srcMode != SM_I2O && !fileExists ( inName ) ) { fprintf ( stderr, "%s: Can't open input file %s: %s.\n", progName, inName, strerror(errno) ); setExit(1); return; } if ( srcMode == SM_F2F || srcMode == SM_F2O ) { MY_STAT(inName, &statBuf); if ( MY_S_ISDIR(statBuf.st_mode) ) { fprintf( stderr, "%s: Input file %s is a directory.\n", progName,inName); setExit(1); return; } } if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) { if (noisy) fprintf ( stderr, "%s: Input file %s is not a normal file.\n", progName, inName ); setExit(1); return; } if ( /* srcMode == SM_F2F implied && */ cantGuess ) { if (noisy) fprintf ( stderr, "%s: Can't guess original name for %s -- using %s\n", progName, inName, outName ); /* just a warning, no return */ } if ( srcMode == SM_F2F && fileExists ( outName ) ) { if (forceOverwrite) { remove(outName); } else { fprintf ( stderr, "%s: Output file %s already exists.\n", progName, outName ); setExit(1); return; } } if ( srcMode == SM_F2F && !forceOverwrite && (n=countHardLinks ( inName ) ) > 0) { fprintf ( stderr, "%s: Input file %s has %d other link%s.\n", progName, inName, n, n > 1 ? "s" : "" ); setExit(1); return; } if ( srcMode == SM_F2F ) { /* Save the file's meta-info before we open it. Doing it later means we mess up the access times. */ saveInputFileMetaInfo ( inName ); } switch ( srcMode ) { case SM_I2O: inStr = stdin; outStr = stdout; if ( isatty ( fileno ( stdin ) ) ) { fprintf ( stderr, "%s: I won't read compressed data from a terminal.\n", progName ); fprintf ( stderr, "%s: For help, type: `%s --help'.\n", progName, progName ); setExit(1); return; }; break; case SM_F2O: inStr = fopen ( inName, "rb" ); outStr = stdout; if ( inStr == NULL ) { fprintf ( stderr, "%s: Can't open input file %s:%s.\n", progName, inName, strerror(errno) ); if ( inStr != NULL ) fclose ( inStr ); setExit(1); return; }; break; case SM_F2F: inStr = fopen ( inName, "rb" ); outStr = fopen_output_safely ( outName, "wb" ); if ( outStr == NULL) { fprintf ( stderr, "%s: Can't create output file %s: %s.\n", progName, outName, strerror(errno) ); if ( inStr != NULL ) fclose ( inStr ); setExit(1); return; } if ( inStr == NULL ) { fprintf ( stderr, "%s: Can't open input file %s: %s.\n", progName, inName, strerror(errno) ); if ( outStr != NULL ) fclose ( outStr ); setExit(1); return; }; break; default: panic ( "uncompress: bad srcMode" ); break; } if (verbosity >= 1) { fprintf ( stderr, " %s: ", inName ); pad ( inName ); fflush ( stderr ); } /*--- Now the input and output handles are sane. Do the Biz. ---*/ outputHandleJustInCase = outStr; deleteOutputOnInterrupt = True; magicNumberOK = uncompressStream ( inStr, outStr ); outputHandleJustInCase = NULL; /*--- If there was an I/O error, we won't get here. ---*/ if ( magicNumberOK ) { if ( srcMode == SM_F2F ) { applySavedMetaInfoToOutputFile ( outName ); deleteOutputOnInterrupt = False; if ( !keepInputFiles ) { IntNative retVal = remove ( inName ); ERROR_IF_NOT_ZERO ( retVal ); } } } else { unzFailsExist = True; deleteOutputOnInterrupt = False; if ( srcMode == SM_F2F ) { IntNative retVal = remove ( outName ); ERROR_IF_NOT_ZERO ( retVal ); } } deleteOutputOnInterrupt = False; if ( magicNumberOK ) { if (verbosity >= 1) fprintf ( stderr, "done\n" ); } else { setExit(2); if (verbosity >= 1) fprintf ( stderr, "not a bzip2 file.\n" ); else fprintf ( stderr, "%s: %s is not a bzip2 file.\n", progName, inName ); } } /*---------------------------------------------*/ static void testf ( Char *name ) { FILE *inStr; Bool allOK; struct MY_STAT statBuf; deleteOutputOnInterrupt = False; if (name == NULL && srcMode != SM_I2O) panic ( "testf: bad modes\n" ); copyFileName ( outName, "(none)" ); switch (srcMode) { case SM_I2O: copyFileName ( inName, "(stdin)" ); break; case SM_F2F: copyFileName ( inName, name ); break; case SM_F2O: copyFileName ( inName, name ); break; } if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) { if (noisy) fprintf ( stderr, "%s: There are no files matching `%s'.\n", progName, inName ); setExit(1); return; } if ( srcMode != SM_I2O && !fileExists ( inName ) ) { fprintf ( stderr, "%s: Can't open input %s: %s.\n", progName, inName, strerror(errno) ); setExit(1); return; } if ( srcMode != SM_I2O ) { MY_STAT(inName, &statBuf); if ( MY_S_ISDIR(statBuf.st_mode) ) { fprintf( stderr, "%s: Input file %s is a directory.\n", progName,inName); setExit(1); return; } } switch ( srcMode ) { case SM_I2O: if ( isatty ( fileno ( stdin ) ) ) { fprintf ( stderr, "%s: I won't read compressed data from a terminal.\n", progName ); fprintf ( stderr, "%s: For help, type: `%s --help'.\n", progName, progName ); setExit(1); return; }; inStr = stdin; break; case SM_F2O: case SM_F2F: inStr = fopen ( inName, "rb" ); if ( inStr == NULL ) { fprintf ( stderr, "%s: Can't open input file %s:%s.\n", progName, inName, strerror(errno) ); setExit(1); return; }; break; default: panic ( "testf: bad srcMode" ); break; } if (verbosity >= 1) { fprintf ( stderr, " %s: ", inName ); pad ( inName ); fflush ( stderr ); } /*--- Now the input handle is sane. Do the Biz. ---*/ outputHandleJustInCase = NULL; allOK = testStream ( inStr ); if (allOK && verbosity >= 1) fprintf ( stderr, "ok\n" ); if (!allOK) testFailsExist = True; } /*---------------------------------------------*/ static void license ( void ) { fprintf ( stderr, "bzip2, a block-sorting file compressor. " "Version %s.\n" " \n" " Copyright (C) 1996-2005 by Julian Seward.\n" " \n" " This program is free software; you can redistribute it and/or modify\n" " it under the terms set out in the LICENSE file, which is included\n" " in the bzip2-1.0 source distribution.\n" " \n" " This program is distributed in the hope that it will be useful,\n" " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" " LICENSE file for more details.\n" " \n", BZ2_bzlibVersion() ); } /*---------------------------------------------*/ static void usage ( Char *fullProgName ) { fprintf ( stderr, "bzip2, a block-sorting file compressor. " "Version %s.\n" "\n usage: %s [flags and input files in any order]\n" "\n" " -h --help print this message\n" " -d --decompress force decompression\n" " -z --compress force compression\n" " -k --keep keep (don't delete) input files\n" " -f --force overwrite existing output files\n" " -t --test test compressed file integrity\n" " -c --stdout output to standard out\n" " -q --quiet suppress noncritical error messages\n" " -v --verbose be verbose (a 2nd -v gives more)\n" " -L --license display software version & license\n" " -V --version display software version & license\n" " -s --small use less memory (at most 2500k)\n" " -1 .. -9 set block size to 100k .. 900k\n" " --fast alias for -1\n" " --best alias for -9\n" "\n" " If invoked as `bzip2', default action is to compress.\n" " as `bunzip2', default action is to decompress.\n" " as `bzcat', default action is to decompress to stdout.\n" "\n" " If no file names are given, bzip2 compresses or decompresses\n" " from standard input to standard output. You can combine\n" " short flags, so `-v -4' means the same as -v4 or -4v, &c.\n" # if BZ_UNIX "\n" # endif , BZ2_bzlibVersion(), fullProgName ); } /*---------------------------------------------*/ static void redundant ( Char* flag ) { fprintf ( stderr, "%s: %s is redundant in versions 0.9.5 and above\n", progName, flag ); } /*---------------------------------------------*/ /*-- All the garbage from here to main() is purely to implement a linked list of command-line arguments, into which main() copies argv[1 .. argc-1]. The purpose of this exercise is to facilitate the expansion of wildcard characters * and ? in filenames for OSs which don't know how to do it themselves, like MSDOS, Windows 95 and NT. The actual Dirty Work is done by the platform- specific macro APPEND_FILESPEC. --*/ typedef struct zzzz { Char *name; struct zzzz *link; } Cell; /*---------------------------------------------*/ static void *myMalloc ( Int32 n ) { void* p; p = malloc ( (size_t)n ); if (p == NULL) outOfMemory (); return p; } /*---------------------------------------------*/ static Cell *mkCell ( void ) { Cell *c; c = (Cell*) myMalloc ( sizeof ( Cell ) ); c->name = NULL; c->link = NULL; return c; } /*---------------------------------------------*/ static Cell *snocString ( Cell *root, Char *name ) { if (root == NULL) { Cell *tmp = mkCell(); tmp->name = (Char*) myMalloc ( 5 + strlen(name) ); strcpy ( tmp->name, name ); return tmp; } else { Cell *tmp = root; while (tmp->link != NULL) tmp = tmp->link; tmp->link = snocString ( tmp->link, name ); return root; } } /*---------------------------------------------*/ static void addFlagsFromEnvVar ( Cell** argList, Char* varName ) { Int32 i, j, k; Char *envbase, *p; envbase = getenv(varName); if (envbase != NULL) { p = envbase; i = 0; while (True) { if (p[i] == 0) break; p += i; i = 0; while (isspace((Int32)(p[0]))) p++; while (p[i] != 0 && !isspace((Int32)(p[i]))) i++; if (i > 0) { k = i; if (k > FILE_NAME_LEN-10) k = FILE_NAME_LEN-10; for (j = 0; j < k; j++) tmpName[j] = p[j]; tmpName[k] = 0; APPEND_FLAG(*argList, tmpName); } } } } /*---------------------------------------------*/ #define ISFLAG(s) (strcmp(aa->name, (s))==0) IntNative main ( IntNative argc, Char *argv[] ) { Int32 i, j; Char *tmp; Cell *argList; Cell *aa; Bool decode; /*-- Be really really really paranoid :-) --*/ if (sizeof(Int32) != 4 || sizeof(UInt32) != 4 || sizeof(Int16) != 2 || sizeof(UInt16) != 2 || sizeof(Char) != 1 || sizeof(UChar) != 1) configError(); /*-- Initialise --*/ outputHandleJustInCase = NULL; smallMode = False; keepInputFiles = False; forceOverwrite = False; noisy = True; verbosity = 0; blockSize100k = 9; testFailsExist = False; unzFailsExist = False; numFileNames = 0; numFilesProcessed = 0; workFactor = 30; deleteOutputOnInterrupt = False; exitValue = 0; i = j = 0; /* avoid bogus warning from egcs-1.1.X */ /*-- Set up signal handlers for mem access errors --*/ signal (SIGSEGV, mySIGSEGVorSIGBUScatcher); # if BZ_UNIX # ifndef __DJGPP__ signal (SIGBUS, mySIGSEGVorSIGBUScatcher); # endif # endif copyFileName ( inName, "(none)" ); copyFileName ( outName, "(none)" ); copyFileName ( progNameReally, argv[0] ); progName = &progNameReally[0]; for (tmp = &progNameReally[0]; *tmp != '\0'; tmp++) if (*tmp == PATH_SEP) progName = tmp + 1; /*-- Copy flags from env var BZIP2, and expand filename wildcards in arg list. --*/ argList = NULL; addFlagsFromEnvVar ( &argList, "BZIP2" ); addFlagsFromEnvVar ( &argList, "BZIP" ); for (i = 1; i <= argc-1; i++) APPEND_FILESPEC(argList, argv[i]); /*-- Find the length of the longest filename --*/ longestFileName = 7; numFileNames = 0; decode = True; for (aa = argList; aa != NULL; aa = aa->link) { if (ISFLAG("--")) { decode = False; continue; } if (aa->name[0] == '-' && decode) continue; numFileNames++; if (longestFileName < (Int32)strlen(aa->name) ) longestFileName = (Int32)strlen(aa->name); } /*-- Determine source modes; flag handling may change this too. --*/ if (numFileNames == 0) srcMode = SM_I2O; else srcMode = SM_F2F; /*-- Determine what to do (compress/uncompress/test/cat). --*/ /*-- Note that subsequent flag handling may change this. --*/ opMode = OM_Z; if ( (strstr ( progName, "unzip" ) != 0) || (strstr ( progName, "UNZIP" ) != 0) ) opMode = OM_UNZ; if ( (strstr ( progName, "z2cat" ) != 0) || (strstr ( progName, "Z2CAT" ) != 0) || (strstr ( progName, "zcat" ) != 0) || (strstr ( progName, "ZCAT" ) != 0) ) { opMode = OM_UNZ; srcMode = (numFileNames == 0) ? SM_I2O : SM_F2O; } /*-- Look at the flags. --*/ for (aa = argList; aa != NULL; aa = aa->link) { if (ISFLAG("--")) break; if (aa->name[0] == '-' && aa->name[1] != '-') { for (j = 1; aa->name[j] != '\0'; j++) { switch (aa->name[j]) { case 'c': srcMode = SM_F2O; break; case 'd': opMode = OM_UNZ; break; case 'z': opMode = OM_Z; break; case 'f': forceOverwrite = True; break; case 't': opMode = OM_TEST; break; case 'k': keepInputFiles = True; break; case 's': smallMode = True; break; case 'q': noisy = False; break; case '1': blockSize100k = 1; break; case '2': blockSize100k = 2; break; case '3': blockSize100k = 3; break; case '4': blockSize100k = 4; break; case '5': blockSize100k = 5; break; case '6': blockSize100k = 6; break; case '7': blockSize100k = 7; break; case '8': blockSize100k = 8; break; case '9': blockSize100k = 9; break; case 'V': case 'L': license(); break; case 'v': verbosity++; break; case 'h': usage ( progName ); exit ( 0 ); break; default: fprintf ( stderr, "%s: Bad flag `%s'\n", progName, aa->name ); usage ( progName ); exit ( 1 ); break; } } } } /*-- And again ... --*/ for (aa = argList; aa != NULL; aa = aa->link) { if (ISFLAG("--")) break; if (ISFLAG("--stdout")) srcMode = SM_F2O; else if (ISFLAG("--decompress")) opMode = OM_UNZ; else if (ISFLAG("--compress")) opMode = OM_Z; else if (ISFLAG("--force")) forceOverwrite = True; else if (ISFLAG("--test")) opMode = OM_TEST; else if (ISFLAG("--keep")) keepInputFiles = True; else if (ISFLAG("--small")) smallMode = True; else if (ISFLAG("--quiet")) noisy = False; else if (ISFLAG("--version")) license(); else if (ISFLAG("--license")) license(); else if (ISFLAG("--exponential")) workFactor = 1; else if (ISFLAG("--repetitive-best")) redundant(aa->name); else if (ISFLAG("--repetitive-fast")) redundant(aa->name); else if (ISFLAG("--fast")) blockSize100k = 1; else if (ISFLAG("--best")) blockSize100k = 9; else if (ISFLAG("--verbose")) verbosity++; else if (ISFLAG("--help")) { usage ( progName ); exit ( 0 ); } else if (strncmp ( aa->name, "--", 2) == 0) { fprintf ( stderr, "%s: Bad flag `%s'\n", progName, aa->name ); usage ( progName ); exit ( 1 ); } } if (verbosity > 4) verbosity = 4; if (opMode == OM_Z && smallMode && blockSize100k > 2) blockSize100k = 2; if (opMode == OM_TEST && srcMode == SM_F2O) { fprintf ( stderr, "%s: -c and -t cannot be used together.\n", progName ); exit ( 1 ); } if (srcMode == SM_F2O && numFileNames == 0) srcMode = SM_I2O; if (opMode != OM_Z) blockSize100k = 0; if (srcMode == SM_F2F) { signal (SIGINT, mySignalCatcher); signal (SIGTERM, mySignalCatcher); # if BZ_UNIX signal (SIGHUP, mySignalCatcher); # endif } if (opMode == OM_Z) { if (srcMode == SM_I2O) { compress ( NULL ); } else { decode = True; for (aa = argList; aa != NULL; aa = aa->link) { if (ISFLAG("--")) { decode = False; continue; } if (aa->name[0] == '-' && decode) continue; numFilesProcessed++; compress ( aa->name ); } } } else if (opMode == OM_UNZ) { unzFailsExist = False; if (srcMode == SM_I2O) { uncompress ( NULL ); } else { decode = True; for (aa = argList; aa != NULL; aa = aa->link) { if (ISFLAG("--")) { decode = False; continue; } if (aa->name[0] == '-' && decode) continue; numFilesProcessed++; uncompress ( aa->name ); } } if (unzFailsExist) { setExit(2); exit(exitValue); } } else { testFailsExist = False; if (srcMode == SM_I2O) { testf ( NULL ); } else { decode = True; for (aa = argList; aa != NULL; aa = aa->link) { if (ISFLAG("--")) { decode = False; continue; } if (aa->name[0] == '-' && decode) continue; numFilesProcessed++; testf ( aa->name ); } } if (testFailsExist && noisy) { fprintf ( stderr, "\n" "You can use the `bzip2recover' program to attempt to recover\n" "data from undamaged sections of corrupted files.\n\n" ); setExit(2); exit(exitValue); } } /* Free the argument list memory to mollify leak detectors (eg) Purify, Checker. Serves no other useful purpose. */ aa = argList; while (aa != NULL) { Cell* aa2 = aa->link; if (aa->name != NULL) free(aa->name); free(aa); aa = aa2; } return exitValue; } #endif /* !SPEC_CPU */ /*-----------------------------------------------------------*/ /*--- end bzip2.c ---*/ /*-----------------------------------------------------------*/ ================================================ FILE: tests/bzip2/bzlib.c ================================================ /*-------------------------------------------------------------*/ /*--- Library top-level functions. ---*/ /*--- bzlib.c ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ /*-- CHANGES ~~~~~~~ 0.9.0 -- original version. 0.9.0a/b -- no changes in this file. 0.9.0c * made zero-length BZ_FLUSH work correctly in bzCompress(). * fixed bzWrite/bzRead to ignore zero-length requests. * fixed bzread to correctly handle read requests after EOF. * wrong parameter order in call to bzDecompressInit in bzBuffToBuffDecompress. Fixed. --*/ #include "spec.h" #include "bzlib_private.h" /*---------------------------------------------------*/ /*--- Compression stuff ---*/ /*---------------------------------------------------*/ /*---------------------------------------------------*/ #ifndef BZ_NO_STDIO void BZ2_bz__AssertH__fail ( int errcode ) { fprintf(stderr, "\n\nbzip2/libbzip2: internal error number %d.\n" #if !defined(SPEC_CPU) "This is a bug in bzip2/libbzip2, %s.\n" "Please report it to me at: jseward@bzip.org. If this happened\n" "when you were using some program which uses libbzip2 as a\n" "component, you should also report this bug to the author(s)\n" "of that program. Please make an effort to report this bug;\n" "timely and accurate bug reports eventually lead to higher\n" "quality software. Thanks. Julian Seward, 15 February 2005.\n\n", #else "This may be a bug in bzip2/libbzip2, %s.\n" "It may also be a bug in your compiler. Please do not bother the\n" "original author of bzip2 with a bug report for this. He\n" "doesn't know anything about bzip2 as it appears in CPU2006.\n\n", #endif /* SPEC_CPU */ errcode, BZ2_bzlibVersion() ); if (errcode == 1007) { fprintf(stderr, "\n*** A special note about internal error number 1007 ***\n" "\n" "Experience suggests that a common cause of i.e. 1007\n" "is unreliable memory or other hardware. The 1007 assertion\n" "just happens to cross-check the results of huge numbers of\n" "memory reads/writes, and so acts (unintendedly) as a stress\n" "test of your memory system.\n" "\n" "I suggest the following: try compressing the file again,\n" "possibly monitoring progress in detail with the -vv flag.\n" "\n" "* If the error cannot be reproduced, and/or happens at different\n" " points in compression, you may have a flaky memory system.\n" " Try a memory-test program. I have used Memtest86\n" " (www.memtest86.com). At the time of writing it is free (GPLd).\n" " Memtest86 tests memory much more thorougly than your BIOSs\n" " power-on test, and may find failures that the BIOS doesn't.\n" "\n" "* If the error can be repeatably reproduced, this is a bug in\n" " bzip2, and I would very much like to hear about it. Please\n" " let me know, and, ideally, save a copy of the file causing the\n" " problem -- without which I will be unable to investigate it.\n" "\n" ); } #if !defined(SPEC_CPU) exit(3); #else exit(0); #endif /* SPEC_CPU */ } #endif /*---------------------------------------------------*/ static int bz_config_ok ( void ) { if (sizeof(int) != 4) return 0; if (sizeof(short) != 2) return 0; if (sizeof(char) != 1) return 0; return 1; } /*---------------------------------------------------*/ static void* default_bzalloc ( void* opaque, Int32 items, Int32 size ) { void* v = malloc ( items * size ); return v; } static void default_bzfree ( void* opaque, void* addr ) { if (addr != NULL) free ( addr ); } /*---------------------------------------------------*/ static void prepare_new_block ( EState* s ) { Int32 i; s->nblock = 0; s->numZ = 0; s->state_out_pos = 0; BZ_INITIALISE_CRC ( s->blockCRC ); for (i = 0; i < 256; i++) s->inUse[i] = False; s->blockNo++; } /*---------------------------------------------------*/ static void init_RL ( EState* s ) { s->state_in_ch = 256; s->state_in_len = 0; } static Bool isempty_RL ( EState* s ) { if (s->state_in_ch < 256 && s->state_in_len > 0) return False; else return True; } /*---------------------------------------------------*/ int BZ_API(BZ2_bzCompressInit) ( bz_stream* strm, int blockSize100k, int verbosity, int workFactor ) { Int32 n; EState* s; if (!bz_config_ok()) return BZ_CONFIG_ERROR; if (strm == NULL || blockSize100k < 1 || blockSize100k > 9 || workFactor < 0 || workFactor > 250) return BZ_PARAM_ERROR; if (workFactor == 0) workFactor = 30; if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc; if (strm->bzfree == NULL) strm->bzfree = default_bzfree; s = BZALLOC( sizeof(EState) ); if (s == NULL) return BZ_MEM_ERROR; s->strm = strm; s->arr1 = NULL; s->arr2 = NULL; s->ftab = NULL; n = 100000 * blockSize100k; s->arr1 = BZALLOC( n * sizeof(UInt32) ); s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) ); s->ftab = BZALLOC( 65537 * sizeof(UInt32) ); if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) { if (s->arr1 != NULL) BZFREE(s->arr1); if (s->arr2 != NULL) BZFREE(s->arr2); if (s->ftab != NULL) BZFREE(s->ftab); if (s != NULL) BZFREE(s); return BZ_MEM_ERROR; } s->blockNo = 0; s->state = BZ_S_INPUT; s->mode = BZ_M_RUNNING; s->combinedCRC = 0; s->blockSize100k = blockSize100k; s->nblockMAX = 100000 * blockSize100k - 19; s->verbosity = verbosity; s->workFactor = workFactor; s->block = (UChar*)s->arr2; s->mtfv = (UInt16*)s->arr1; s->zbits = NULL; s->ptr = (UInt32*)s->arr1; strm->state = s; strm->total_in_lo32 = 0; strm->total_in_hi32 = 0; strm->total_out_lo32 = 0; strm->total_out_hi32 = 0; init_RL ( s ); prepare_new_block ( s ); return BZ_OK; } /*---------------------------------------------------*/ static void add_pair_to_block ( EState* s ) { Int32 i; UChar ch = (UChar)(s->state_in_ch); for (i = 0; i < s->state_in_len; i++) { BZ_UPDATE_CRC( s->blockCRC, ch ); } s->inUse[s->state_in_ch] = True; switch (s->state_in_len) { case 1: s->block[s->nblock] = (UChar)ch; s->nblock++; break; case 2: s->block[s->nblock] = (UChar)ch; s->nblock++; s->block[s->nblock] = (UChar)ch; s->nblock++; break; case 3: s->block[s->nblock] = (UChar)ch; s->nblock++; s->block[s->nblock] = (UChar)ch; s->nblock++; s->block[s->nblock] = (UChar)ch; s->nblock++; break; default: s->inUse[s->state_in_len-4] = True; s->block[s->nblock] = (UChar)ch; s->nblock++; s->block[s->nblock] = (UChar)ch; s->nblock++; s->block[s->nblock] = (UChar)ch; s->nblock++; s->block[s->nblock] = (UChar)ch; s->nblock++; s->block[s->nblock] = ((UChar)(s->state_in_len-4)); s->nblock++; break; } } /*---------------------------------------------------*/ static void flush_RL ( EState* s ) { if (s->state_in_ch < 256) add_pair_to_block ( s ); init_RL ( s ); } /*---------------------------------------------------*/ #define ADD_CHAR_TO_BLOCK(zs,zchh0) \ { \ UInt32 zchh = (UInt32)(zchh0); \ /*-- fast track the common case --*/ \ if (zchh != zs->state_in_ch && \ zs->state_in_len == 1) { \ UChar ch = (UChar)(zs->state_in_ch); \ BZ_UPDATE_CRC( zs->blockCRC, ch ); \ zs->inUse[zs->state_in_ch] = True; \ zs->block[zs->nblock] = (UChar)ch; \ zs->nblock++; \ zs->state_in_ch = zchh; \ } \ else \ /*-- general, uncommon cases --*/ \ if (zchh != zs->state_in_ch || \ zs->state_in_len == 255) { \ if (zs->state_in_ch < 256) \ add_pair_to_block ( zs ); \ zs->state_in_ch = zchh; \ zs->state_in_len = 1; \ } else { \ zs->state_in_len++; \ } \ } /*---------------------------------------------------*/ static Bool copy_input_until_stop ( EState* s ) { Bool progress_in = False; if (s->mode == BZ_M_RUNNING) { /*-- fast track the common case --*/ while (True) { /*-- block full? --*/ if (s->nblock >= s->nblockMAX) break; /*-- no input? --*/ if (s->strm->avail_in == 0) break; progress_in = True; ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); s->strm->next_in++; s->strm->avail_in--; s->strm->total_in_lo32++; if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; } } else { /*-- general, uncommon case --*/ while (True) { /*-- block full? --*/ if (s->nblock >= s->nblockMAX) break; /*-- no input? --*/ if (s->strm->avail_in == 0) break; /*-- flush/finish end? --*/ if (s->avail_in_expect == 0) break; progress_in = True; ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); s->strm->next_in++; s->strm->avail_in--; s->strm->total_in_lo32++; if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; s->avail_in_expect--; } } return progress_in; } /*---------------------------------------------------*/ static Bool copy_output_until_stop ( EState* s ) { Bool progress_out = False; while (True) { /*-- no output space? --*/ if (s->strm->avail_out == 0) break; /*-- block done? --*/ if (s->state_out_pos >= s->numZ) break; progress_out = True; *(s->strm->next_out) = s->zbits[s->state_out_pos]; s->state_out_pos++; s->strm->avail_out--; s->strm->next_out++; s->strm->total_out_lo32++; if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; } return progress_out; } /*---------------------------------------------------*/ static Bool handle_compress ( bz_stream* strm ) { Bool progress_in = False; Bool progress_out = False; EState* s = strm->state; while (True) { if (s->state == BZ_S_OUTPUT) { progress_out |= copy_output_until_stop ( s ); if (s->state_out_pos < s->numZ) break; if (s->mode == BZ_M_FINISHING && s->avail_in_expect == 0 && isempty_RL(s)) break; prepare_new_block ( s ); s->state = BZ_S_INPUT; if (s->mode == BZ_M_FLUSHING && s->avail_in_expect == 0 && isempty_RL(s)) break; } if (s->state == BZ_S_INPUT) { progress_in |= copy_input_until_stop ( s ); if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) { flush_RL ( s ); BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) ); s->state = BZ_S_OUTPUT; } else if (s->nblock >= s->nblockMAX) { BZ2_compressBlock ( s, False ); s->state = BZ_S_OUTPUT; } else if (s->strm->avail_in == 0) { break; } } } return progress_in || progress_out; } /*---------------------------------------------------*/ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action ) { Bool progress; EState* s; if (strm == NULL) return BZ_PARAM_ERROR; s = strm->state; if (s == NULL) return BZ_PARAM_ERROR; if (s->strm != strm) return BZ_PARAM_ERROR; preswitch: switch (s->mode) { case BZ_M_IDLE: return BZ_SEQUENCE_ERROR; case BZ_M_RUNNING: if (action == BZ_RUN) { progress = handle_compress ( strm ); return progress ? BZ_RUN_OK : BZ_PARAM_ERROR; } else if (action == BZ_FLUSH) { s->avail_in_expect = strm->avail_in; s->mode = BZ_M_FLUSHING; goto preswitch; } else if (action == BZ_FINISH) { s->avail_in_expect = strm->avail_in; s->mode = BZ_M_FINISHING; goto preswitch; } else return BZ_PARAM_ERROR; case BZ_M_FLUSHING: if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR; if (s->avail_in_expect != s->strm->avail_in) return BZ_SEQUENCE_ERROR; progress = handle_compress ( strm ); if (s->avail_in_expect > 0 || !isempty_RL(s) || s->state_out_pos < s->numZ) return BZ_FLUSH_OK; s->mode = BZ_M_RUNNING; return BZ_RUN_OK; case BZ_M_FINISHING: if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR; if (s->avail_in_expect != s->strm->avail_in) return BZ_SEQUENCE_ERROR; progress = handle_compress ( strm ); if (!progress) return BZ_SEQUENCE_ERROR; if (s->avail_in_expect > 0 || !isempty_RL(s) || s->state_out_pos < s->numZ) return BZ_FINISH_OK; s->mode = BZ_M_IDLE; return BZ_STREAM_END; } return BZ_OK; /*--not reached--*/ } /*---------------------------------------------------*/ int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm ) { EState* s; if (strm == NULL) return BZ_PARAM_ERROR; s = strm->state; if (s == NULL) return BZ_PARAM_ERROR; if (s->strm != strm) return BZ_PARAM_ERROR; if (s->arr1 != NULL) BZFREE(s->arr1); if (s->arr2 != NULL) BZFREE(s->arr2); if (s->ftab != NULL) BZFREE(s->ftab); BZFREE(strm->state); strm->state = NULL; return BZ_OK; } /*---------------------------------------------------*/ /*--- Decompression stuff ---*/ /*---------------------------------------------------*/ /*---------------------------------------------------*/ int BZ_API(BZ2_bzDecompressInit) ( bz_stream* strm, int verbosity, int small ) { DState* s; if (!bz_config_ok()) return BZ_CONFIG_ERROR; if (strm == NULL) return BZ_PARAM_ERROR; if (small != 0 && small != 1) return BZ_PARAM_ERROR; if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR; if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc; if (strm->bzfree == NULL) strm->bzfree = default_bzfree; s = BZALLOC( sizeof(DState) ); if (s == NULL) return BZ_MEM_ERROR; s->strm = strm; strm->state = s; s->state = BZ_X_MAGIC_1; s->bsLive = 0; s->bsBuff = 0; s->calculatedCombinedCRC = 0; strm->total_in_lo32 = 0; strm->total_in_hi32 = 0; strm->total_out_lo32 = 0; strm->total_out_hi32 = 0; s->smallDecompress = (Bool)small; s->ll4 = NULL; s->ll16 = NULL; s->tt = NULL; s->currBlockNo = 0; s->verbosity = verbosity; return BZ_OK; } /*---------------------------------------------------*/ /* Return True iff data corruption is discovered. Returns False if there is no problem. */ static Bool unRLE_obuf_to_output_FAST ( DState* s ) { UChar k1; if (s->blockRandomised) { while (True) { /* try to finish existing run */ while (True) { if (s->strm->avail_out == 0) return False; if (s->state_out_len == 0) break; *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); s->state_out_len--; s->strm->next_out++; s->strm->avail_out--; s->strm->total_out_lo32++; if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; } /* can a new run be started? */ if (s->nblock_used == s->save_nblock+1) return False; /* Only caused by corrupt data stream? */ if (s->nblock_used > s->save_nblock+1) return True; s->state_out_len = 1; s->state_out_ch = s->k0; BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; k1 ^= BZ_RAND_MASK; s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; s->state_out_len = 2; BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; k1 ^= BZ_RAND_MASK; s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; s->state_out_len = 3; BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; k1 ^= BZ_RAND_MASK; s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; k1 ^= BZ_RAND_MASK; s->nblock_used++; s->state_out_len = ((Int32)k1) + 4; BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; s->nblock_used++; } } else { /* restore */ UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC; UChar c_state_out_ch = s->state_out_ch; Int32 c_state_out_len = s->state_out_len; Int32 c_nblock_used = s->nblock_used; Int32 c_k0 = s->k0; UInt32* c_tt = s->tt; UInt32 c_tPos = s->tPos; char* cs_next_out = s->strm->next_out; unsigned int cs_avail_out = s->strm->avail_out; /* end restore */ UInt32 avail_out_INIT = cs_avail_out; Int32 s_save_nblockPP = s->save_nblock+1; unsigned int total_out_lo32_old; while (True) { /* try to finish existing run */ if (c_state_out_len > 0) { while (True) { if (cs_avail_out == 0) goto return_notr; if (c_state_out_len == 1) break; *( (UChar*)(cs_next_out) ) = c_state_out_ch; BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch ); c_state_out_len--; cs_next_out++; cs_avail_out--; } s_state_out_len_eq_one: { if (cs_avail_out == 0) { c_state_out_len = 1; goto return_notr; }; *( (UChar*)(cs_next_out) ) = c_state_out_ch; BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch ); cs_next_out++; cs_avail_out--; } } /* Only caused by corrupt data stream? */ if (c_nblock_used > s_save_nblockPP) return True; /* can a new run be started? */ if (c_nblock_used == s_save_nblockPP) { c_state_out_len = 0; goto return_notr; }; c_state_out_ch = c_k0; BZ_GET_FAST_C(k1); c_nblock_used++; if (k1 != c_k0) { c_k0 = k1; goto s_state_out_len_eq_one; }; if (c_nblock_used == s_save_nblockPP) goto s_state_out_len_eq_one; c_state_out_len = 2; BZ_GET_FAST_C(k1); c_nblock_used++; if (c_nblock_used == s_save_nblockPP) continue; if (k1 != c_k0) { c_k0 = k1; continue; }; c_state_out_len = 3; BZ_GET_FAST_C(k1); c_nblock_used++; if (c_nblock_used == s_save_nblockPP) continue; if (k1 != c_k0) { c_k0 = k1; continue; }; BZ_GET_FAST_C(k1); c_nblock_used++; c_state_out_len = ((Int32)k1) + 4; BZ_GET_FAST_C(c_k0); c_nblock_used++; } return_notr: total_out_lo32_old = s->strm->total_out_lo32; s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out); if (s->strm->total_out_lo32 < total_out_lo32_old) s->strm->total_out_hi32++; /* save */ s->calculatedBlockCRC = c_calculatedBlockCRC; s->state_out_ch = c_state_out_ch; s->state_out_len = c_state_out_len; s->nblock_used = c_nblock_used; s->k0 = c_k0; s->tt = c_tt; s->tPos = c_tPos; s->strm->next_out = cs_next_out; s->strm->avail_out = cs_avail_out; /* end save */ } return False; } /*---------------------------------------------------*/ __inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab ) { Int32 nb, na, mid; nb = 0; na = 256; do { mid = (nb + na) >> 1; if (indx >= cftab[mid]) nb = mid; else na = mid; } while (na - nb != 1); return nb; } /*---------------------------------------------------*/ /* Return True iff data corruption is discovered. Returns False if there is no problem. */ static Bool unRLE_obuf_to_output_SMALL ( DState* s ) { UChar k1; if (s->blockRandomised) { while (True) { /* try to finish existing run */ while (True) { if (s->strm->avail_out == 0) return False; if (s->state_out_len == 0) break; *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); s->state_out_len--; s->strm->next_out++; s->strm->avail_out--; s->strm->total_out_lo32++; if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; } /* can a new run be started? */ if (s->nblock_used == s->save_nblock+1) return False; /* Only caused by corrupt data stream? */ if (s->nblock_used > s->save_nblock+1) return True; s->state_out_len = 1; s->state_out_ch = s->k0; BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; k1 ^= BZ_RAND_MASK; s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; s->state_out_len = 2; BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; k1 ^= BZ_RAND_MASK; s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; s->state_out_len = 3; BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; k1 ^= BZ_RAND_MASK; s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; k1 ^= BZ_RAND_MASK; s->nblock_used++; s->state_out_len = ((Int32)k1) + 4; BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; s->nblock_used++; } } else { while (True) { /* try to finish existing run */ while (True) { if (s->strm->avail_out == 0) return False; if (s->state_out_len == 0) break; *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); s->state_out_len--; s->strm->next_out++; s->strm->avail_out--; s->strm->total_out_lo32++; if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; } /* can a new run be started? */ if (s->nblock_used == s->save_nblock+1) return False; /* Only caused by corrupt data stream? */ if (s->nblock_used > s->save_nblock+1) return True; s->state_out_len = 1; s->state_out_ch = s->k0; BZ_GET_SMALL(k1); s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; s->state_out_len = 2; BZ_GET_SMALL(k1); s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; s->state_out_len = 3; BZ_GET_SMALL(k1); s->nblock_used++; if (s->nblock_used == s->save_nblock+1) continue; if (k1 != s->k0) { s->k0 = k1; continue; }; BZ_GET_SMALL(k1); s->nblock_used++; s->state_out_len = ((Int32)k1) + 4; BZ_GET_SMALL(s->k0); s->nblock_used++; } } } /*---------------------------------------------------*/ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm ) { Bool corrupt; DState* s; if (strm == NULL) return BZ_PARAM_ERROR; s = strm->state; if (s == NULL) return BZ_PARAM_ERROR; if (s->strm != strm) return BZ_PARAM_ERROR; while (True) { if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR; if (s->state == BZ_X_OUTPUT) { if (s->smallDecompress) corrupt = unRLE_obuf_to_output_SMALL ( s ); else corrupt = unRLE_obuf_to_output_FAST ( s ); if (corrupt) return BZ_DATA_ERROR; if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) { BZ_FINALISE_CRC ( s->calculatedBlockCRC ); if (s->verbosity >= 3) VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC, s->calculatedBlockCRC ); if (s->verbosity >= 2) VPrintf0 ( "]" ); if (s->calculatedBlockCRC != s->storedBlockCRC) return BZ_DATA_ERROR; s->calculatedCombinedCRC = (s->calculatedCombinedCRC << 1) | (s->calculatedCombinedCRC >> 31); s->calculatedCombinedCRC ^= s->calculatedBlockCRC; s->state = BZ_X_BLKHDR_1; } else { return BZ_OK; } } if (s->state >= BZ_X_MAGIC_1) { Int32 r = BZ2_decompress ( s ); if (r == BZ_STREAM_END) { if (s->verbosity >= 3) VPrintf2 ( "\n combined CRCs: stored = 0x%08x, computed = 0x%08x", s->storedCombinedCRC, s->calculatedCombinedCRC ); if (s->calculatedCombinedCRC != s->storedCombinedCRC) return BZ_DATA_ERROR; return r; } if (s->state != BZ_X_OUTPUT) return r; } } AssertH ( 0, 6001 ); return 0; /*NOTREACHED*/ } /*---------------------------------------------------*/ int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm ) { DState* s; if (strm == NULL) return BZ_PARAM_ERROR; s = strm->state; if (s == NULL) return BZ_PARAM_ERROR; if (s->strm != strm) return BZ_PARAM_ERROR; if (s->tt != NULL) BZFREE(s->tt); if (s->ll16 != NULL) BZFREE(s->ll16); if (s->ll4 != NULL) BZFREE(s->ll4); BZFREE(strm->state); strm->state = NULL; return BZ_OK; } #ifndef BZ_NO_STDIO /*---------------------------------------------------*/ /*--- File I/O stuff ---*/ /*---------------------------------------------------*/ #define BZ_SETERR(eee) \ { \ if (bzerror != NULL) *bzerror = eee; \ if (bzf != NULL) bzf->lastErr = eee; \ } typedef struct { #if defined(SPEC_CPU) int handle; #else FILE* handle; #endif Char buf[BZ_MAX_UNUSED]; Int32 bufN; Bool writing; bz_stream strm; Int32 lastErr; Bool initialisedOk; } bzFile; /*---------------------------------------------*/ #if defined(SPEC_CPU) static Bool myfeof ( int f ) #else static Bool myfeof ( FILE* f ) #endif { Int32 c = fgetc ( f ); if (c == EOF) return True; ungetc ( c, f ); return False; } /*---------------------------------------------------*/ BZFILE* BZ_API(BZ2_bzWriteOpen) ( int* bzerror, #if defined(SPEC_CPU) int f, #else FILE* f, #endif int blockSize100k, int verbosity, int workFactor ) { Int32 ret; bzFile* bzf = NULL; BZ_SETERR(BZ_OK); if (f == SPEC_NULLCAST NULL || (blockSize100k < 1 || blockSize100k > 9) || (workFactor < 0 || workFactor > 250) || (verbosity < 0 || verbosity > 4)) { BZ_SETERR(BZ_PARAM_ERROR); return NULL; }; if (ferror(f)) { BZ_SETERR(BZ_IO_ERROR); return NULL; }; bzf = malloc ( sizeof(bzFile) ); if (bzf == NULL) { BZ_SETERR(BZ_MEM_ERROR); return NULL; }; BZ_SETERR(BZ_OK); bzf->initialisedOk = False; bzf->bufN = 0; bzf->handle = f; bzf->writing = True; bzf->strm.bzalloc = NULL; bzf->strm.bzfree = NULL; bzf->strm.opaque = NULL; if (workFactor == 0) workFactor = 30; ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k, verbosity, workFactor ); if (ret != BZ_OK) { BZ_SETERR(ret); free(bzf); return NULL; }; bzf->strm.avail_in = 0; bzf->initialisedOk = True; return bzf; } /*---------------------------------------------------*/ void BZ_API(BZ2_bzWrite) ( int* bzerror, BZFILE* b, void* buf, int len ) { Int32 n, n2, ret; bzFile* bzf = (bzFile*)b; BZ_SETERR(BZ_OK); if (bzf == NULL || buf == NULL || len < 0) { BZ_SETERR(BZ_PARAM_ERROR); return; }; if (!(bzf->writing)) { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; if (ferror(bzf->handle)) { BZ_SETERR(BZ_IO_ERROR); return; }; if (len == 0) { BZ_SETERR(BZ_OK); return; }; bzf->strm.avail_in = len; bzf->strm.next_in = buf; while (True) { bzf->strm.avail_out = BZ_MAX_UNUSED; bzf->strm.next_out = bzf->buf; ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN ); if (ret != BZ_RUN_OK) { BZ_SETERR(ret); return; }; if (bzf->strm.avail_out < BZ_MAX_UNUSED) { n = BZ_MAX_UNUSED - bzf->strm.avail_out; n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), n, bzf->handle ); if (n != n2 || ferror(bzf->handle)) { BZ_SETERR(BZ_IO_ERROR); return; }; } if (bzf->strm.avail_in == 0) { BZ_SETERR(BZ_OK); return; }; } } /*---------------------------------------------------*/ void BZ_API(BZ2_bzWriteClose) ( int* bzerror, BZFILE* b, int abandon, unsigned int* nbytes_in, unsigned int* nbytes_out ) { BZ2_bzWriteClose64 ( bzerror, b, abandon, nbytes_in, NULL, nbytes_out, NULL ); } void BZ_API(BZ2_bzWriteClose64) ( int* bzerror, BZFILE* b, int abandon, unsigned int* nbytes_in_lo32, unsigned int* nbytes_in_hi32, unsigned int* nbytes_out_lo32, unsigned int* nbytes_out_hi32 ) { Int32 n, n2, ret; bzFile* bzf = (bzFile*)b; if (bzf == NULL) { BZ_SETERR(BZ_OK); return; }; if (!(bzf->writing)) { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; if (ferror(bzf->handle)) { BZ_SETERR(BZ_IO_ERROR); return; }; if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0; if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0; if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0; if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0; if ((!abandon) && bzf->lastErr == BZ_OK) { while (True) { bzf->strm.avail_out = BZ_MAX_UNUSED; bzf->strm.next_out = bzf->buf; ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH ); if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END) { BZ_SETERR(ret); return; }; if (bzf->strm.avail_out < BZ_MAX_UNUSED) { n = BZ_MAX_UNUSED - bzf->strm.avail_out; n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), n, bzf->handle ); if (n != n2 || ferror(bzf->handle)) { BZ_SETERR(BZ_IO_ERROR); return; }; } if (ret == BZ_STREAM_END) break; } } if ( !abandon && !ferror ( bzf->handle ) ) { fflush ( bzf->handle ); if (ferror(bzf->handle)) { BZ_SETERR(BZ_IO_ERROR); return; }; } if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = bzf->strm.total_in_lo32; if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = bzf->strm.total_in_hi32; if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = bzf->strm.total_out_lo32; if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = bzf->strm.total_out_hi32; BZ_SETERR(BZ_OK); BZ2_bzCompressEnd ( &(bzf->strm) ); free ( bzf ); } /*---------------------------------------------------*/ BZFILE* BZ_API(BZ2_bzReadOpen) ( int* bzerror, #if defined(SPEC_CPU) int f, #else FILE* f, #endif int verbosity, int small, void* unused, int nUnused ) { bzFile* bzf = NULL; int ret; BZ_SETERR(BZ_OK); if (f == SPEC_NULLCAST NULL || (small != 0 && small != 1) || (verbosity < 0 || verbosity > 4) || (unused == NULL && nUnused != 0) || (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED))) { BZ_SETERR(BZ_PARAM_ERROR); return NULL; }; if (ferror(f)) { BZ_SETERR(BZ_IO_ERROR); return NULL; }; bzf = malloc ( sizeof(bzFile) ); if (bzf == NULL) { BZ_SETERR(BZ_MEM_ERROR); return NULL; }; BZ_SETERR(BZ_OK); bzf->initialisedOk = False; bzf->handle = f; bzf->bufN = 0; bzf->writing = False; bzf->strm.bzalloc = NULL; bzf->strm.bzfree = NULL; bzf->strm.opaque = NULL; while (nUnused > 0) { bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++; unused = ((void*)( 1 + ((UChar*)(unused)) )); nUnused--; } ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small ); if (ret != BZ_OK) { BZ_SETERR(ret); free(bzf); return NULL; }; bzf->strm.avail_in = bzf->bufN; bzf->strm.next_in = bzf->buf; bzf->initialisedOk = True; return bzf; } /*---------------------------------------------------*/ void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b ) { bzFile* bzf = (bzFile*)b; BZ_SETERR(BZ_OK); if (bzf == NULL) { BZ_SETERR(BZ_OK); return; }; if (bzf->writing) { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; if (bzf->initialisedOk) (void)BZ2_bzDecompressEnd ( &(bzf->strm) ); free ( bzf ); } /*---------------------------------------------------*/ int BZ_API(BZ2_bzRead) ( int* bzerror, BZFILE* b, void* buf, int len ) { Int32 n, ret; bzFile* bzf = (bzFile*)b; BZ_SETERR(BZ_OK); if (bzf == NULL || buf == NULL || len < 0) { BZ_SETERR(BZ_PARAM_ERROR); return 0; }; if (bzf->writing) { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; }; if (len == 0) { BZ_SETERR(BZ_OK); return 0; }; bzf->strm.avail_out = len; bzf->strm.next_out = buf; while (True) { if (ferror(bzf->handle)) { BZ_SETERR(BZ_IO_ERROR); return 0; }; if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) { n = fread ( (unsigned char *)bzf->buf, sizeof(UChar), BZ_MAX_UNUSED, bzf->handle ); if (ferror(bzf->handle)) { BZ_SETERR(BZ_IO_ERROR); return 0; }; bzf->bufN = n; bzf->strm.avail_in = bzf->bufN; bzf->strm.next_in = bzf->buf; } ret = BZ2_bzDecompress ( &(bzf->strm) ); if (ret != BZ_OK && ret != BZ_STREAM_END) { BZ_SETERR(ret); return 0; }; if (ret == BZ_OK && myfeof(bzf->handle) && bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0) { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; }; if (ret == BZ_STREAM_END) { BZ_SETERR(BZ_STREAM_END); return len - bzf->strm.avail_out; }; if (bzf->strm.avail_out == 0) { BZ_SETERR(BZ_OK); return len; }; } return 0; /*not reached*/ } /*---------------------------------------------------*/ void BZ_API(BZ2_bzReadGetUnused) ( int* bzerror, BZFILE* b, void** unused, int* nUnused ) { bzFile* bzf = (bzFile*)b; if (bzf == NULL) { BZ_SETERR(BZ_PARAM_ERROR); return; }; if (bzf->lastErr != BZ_STREAM_END) { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; if (unused == NULL || nUnused == NULL) { BZ_SETERR(BZ_PARAM_ERROR); return; }; BZ_SETERR(BZ_OK); *nUnused = bzf->strm.avail_in; *unused = bzf->strm.next_in; } #endif /*---------------------------------------------------*/ /*--- Misc convenience stuff ---*/ /*---------------------------------------------------*/ /*---------------------------------------------------*/ int BZ_API(BZ2_bzBuffToBuffCompress) ( char* dest, unsigned int* destLen, char* source, unsigned int sourceLen, int blockSize100k, int verbosity, int workFactor ) { bz_stream strm; int ret; if (dest == NULL || destLen == NULL || source == NULL || blockSize100k < 1 || blockSize100k > 9 || verbosity < 0 || verbosity > 4 || workFactor < 0 || workFactor > 250) return BZ_PARAM_ERROR; if (workFactor == 0) workFactor = 30; strm.bzalloc = NULL; strm.bzfree = NULL; strm.opaque = NULL; ret = BZ2_bzCompressInit ( &strm, blockSize100k, verbosity, workFactor ); if (ret != BZ_OK) return ret; strm.next_in = source; strm.next_out = dest; strm.avail_in = sourceLen; strm.avail_out = *destLen; ret = BZ2_bzCompress ( &strm, BZ_FINISH ); if (ret == BZ_FINISH_OK) goto output_overflow; if (ret != BZ_STREAM_END) goto errhandler; /* normal termination */ *destLen -= strm.avail_out; BZ2_bzCompressEnd ( &strm ); return BZ_OK; output_overflow: BZ2_bzCompressEnd ( &strm ); return BZ_OUTBUFF_FULL; errhandler: BZ2_bzCompressEnd ( &strm ); return ret; } /*---------------------------------------------------*/ int BZ_API(BZ2_bzBuffToBuffDecompress) ( char* dest, unsigned int* destLen, char* source, unsigned int sourceLen, int small, int verbosity ) { bz_stream strm; int ret; if (dest == NULL || destLen == NULL || source == NULL || (small != 0 && small != 1) || verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR; strm.bzalloc = NULL; strm.bzfree = NULL; strm.opaque = NULL; ret = BZ2_bzDecompressInit ( &strm, verbosity, small ); if (ret != BZ_OK) return ret; strm.next_in = source; strm.next_out = dest; strm.avail_in = sourceLen; strm.avail_out = *destLen; ret = BZ2_bzDecompress ( &strm ); if (ret == BZ_OK) goto output_overflow_or_eof; if (ret != BZ_STREAM_END) goto errhandler; /* normal termination */ *destLen -= strm.avail_out; BZ2_bzDecompressEnd ( &strm ); return BZ_OK; output_overflow_or_eof: if (strm.avail_out > 0) { BZ2_bzDecompressEnd ( &strm ); return BZ_UNEXPECTED_EOF; } else { BZ2_bzDecompressEnd ( &strm ); return BZ_OUTBUFF_FULL; }; errhandler: BZ2_bzDecompressEnd ( &strm ); return ret; } /*---------------------------------------------------*/ /*-- Code contributed by Yoshioka Tsuneo (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp), to support better zlib compatibility. This code is not _officially_ part of libbzip2 (yet); I haven't tested it, documented it, or considered the threading-safeness of it. If this code breaks, please contact both Yoshioka and me. --*/ /*---------------------------------------------------*/ /*---------------------------------------------------*/ /*-- return version like "0.9.0c". --*/ const char * BZ_API(BZ2_bzlibVersion)(void) { return BZ_VERSION; } #ifndef BZ_NO_STDIO /*---------------------------------------------------*/ #if !defined(SPEC_CPU) #if defined(_WIN32) || defined(OS2) || defined(MSDOS) # include # include # define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY) #else # define SET_BINARY_MODE(file) #endif #endif /* !SPEC_CPU */ static BZFILE * bzopen_or_bzdopen ( const char *path, /* no use when bzdopen */ int fd, /* no use when bzdopen */ const char *mode, int open_mode) /* bzopen: 0, bzdopen:1 */ { int bzerr; char unused[BZ_MAX_UNUSED]; int blockSize100k = 9; int writing = 0; char mode2[10] = ""; #if defined(SPEC_CPU) int fp = 0; #else FILE *fp = NULL; #endif BZFILE *bzfp = NULL; int verbosity = 0; int workFactor = 30; int smallMode = 0; int nUnused = 0; if (mode == NULL) return NULL; while (*mode) { switch (*mode) { case 'r': writing = 0; break; case 'w': writing = 1; break; case 's': smallMode = 1; break; default: if (isdigit((int)(*mode))) { blockSize100k = *mode-BZ_HDR_0; } } mode++; } strcat(mode2, writing ? "w" : "r" ); strcat(mode2,"b"); /* binary mode */ if (open_mode==0) { if (path==NULL || strcmp(path,"")==0) { #if defined(SPEC_CPU) fp = (writing ? SPEC_STDOUT : SPEC_STDIN); #else fp = (writing ? stdout : stdin); #endif SET_BINARY_MODE(fp); } else { fp = fopen(path,mode2); } } else { #if defined(SPEC_CPU) fp = SPEC_NULLCAST NULL; #else #ifdef BZ_STRICT_ANSI fp = NULL; #else fp = fdopen(fd,mode2); #endif #endif /* !SPEC_CPU */ } if (fp == SPEC_NULLCAST NULL) return NULL; if (writing) { /* Guard against total chaos and anarchy -- JRS */ if (blockSize100k < 1) blockSize100k = 1; if (blockSize100k > 9) blockSize100k = 9; bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k, verbosity,workFactor); } else { bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode, unused,nUnused); } if (bzfp == NULL) { #if defined(SPEC_CPU) if (fp != SPEC_STDIN && fp != SPEC_STDOUT) fclose(fp); #else if (fp != stdin && fp != stdout) fclose(fp); #endif return NULL; } return bzfp; } /*---------------------------------------------------*/ /*-- open file for read or write. ex) bzopen("file","w9") case path="" or NULL => use stdin or stdout. --*/ BZFILE * BZ_API(BZ2_bzopen) ( const char *path, const char *mode ) { return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0); } /*---------------------------------------------------*/ BZFILE * BZ_API(BZ2_bzdopen) ( int fd, const char *mode ) { return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1); } /*---------------------------------------------------*/ int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len ) { int bzerr, nread; if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0; nread = BZ2_bzRead(&bzerr,b,buf,len); if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) { return nread; } else { return -1; } } /*---------------------------------------------------*/ int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len ) { int bzerr; BZ2_bzWrite(&bzerr,b,buf,len); if(bzerr == BZ_OK){ return len; }else{ return -1; } } /*---------------------------------------------------*/ int BZ_API(BZ2_bzflush) (BZFILE *b) { /* do nothing now... */ return 0; } /*---------------------------------------------------*/ void BZ_API(BZ2_bzclose) (BZFILE* b) { int bzerr; #if defined(SPEC_CPU) int fp = ((bzFile *)b)->handle; #else FILE *fp = ((bzFile *)b)->handle; #endif if (b==NULL) {return;} if(((bzFile*)b)->writing){ BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL); if(bzerr != BZ_OK){ BZ2_bzWriteClose(NULL,b,1,NULL,NULL); } }else{ BZ2_bzReadClose(&bzerr,b); } #if defined(SPEC_CPU) if(fp!=SPEC_STDIN && fp!=SPEC_STDOUT){ #else if(fp!=stdin && fp!=stdout){ #endif fclose(fp); } } /*---------------------------------------------------*/ /*-- return last error code --*/ static char *bzerrorstrings[] = { "OK" ,"SEQUENCE_ERROR" ,"PARAM_ERROR" ,"MEM_ERROR" ,"DATA_ERROR" ,"DATA_ERROR_MAGIC" ,"IO_ERROR" ,"UNEXPECTED_EOF" ,"OUTBUFF_FULL" ,"CONFIG_ERROR" ,"???" /* for future */ ,"???" /* for future */ ,"???" /* for future */ ,"???" /* for future */ ,"???" /* for future */ ,"???" /* for future */ }; const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum) { int err = ((bzFile *)b)->lastErr; if(err>0) err = 0; *errnum = err; return bzerrorstrings[err*-1]; } #endif /*-------------------------------------------------------------*/ /*--- end bzlib.c ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/bzlib.h ================================================ /*-------------------------------------------------------------*/ /*--- Public header file for the library. ---*/ /*--- bzlib.h ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ #ifndef _BZLIB_H #define _BZLIB_H #ifdef __cplusplus extern "C" { #endif #ifdef SPEC_CPU #ifndef SPEC_STDIN # define SPEC_STDIN 0 #endif #ifndef SPEC_STDOUT # define SPEC_STDOUT 1 #endif #ifndef SPEC_STDERR # define SPEC_STDERR 1 #endif #ifndef SPEC_NULLCAST # define SPEC_NULLCAST (int) #endif /* Munge things for SPEC CPU2006 */ #include #define SET_BINARY_MODE(fd) /**/ #define NORETURN /**/ /* Fix-up rewind() */ #ifdef rewind #undef rewind #endif #define rewind(a) spec_rewind(a) /* Fix-up read() */ #ifdef read #undef read #endif #define read(a,b,c) spec_read(a,b,c) /* Fix-up write() */ #ifdef write #undef write #endif #define write(a,b,c) spec_write(a,b,c) /* Fix-up fread() */ #ifdef fread #undef fread #endif #define fread(a,b,c,d) spec_fread(a,b,c,d) /* Fix-up fwrite() */ #ifdef fwrite #undef fwrite #endif #define fwrite(a,b,c,d) spec_fwrite(a,b,c,d) /* Fix-up ferror() */ #ifdef ferror #undef ferror #endif #define ferror(x) 0 /* Fix-up fopen() */ #ifdef fopen #undef fopen #endif #define fopen(x,y) 0 /* Fix-up fflush() */ #ifdef fflush #undef fflush #endif #define fflush(x) 0 /* Fix-up fclose() */ #ifdef fclose #undef fclose #endif #define fclose(x) 0 /* Fix-up getc() */ #ifdef getc #undef getc #endif #define getc(f) spec_getc((int)f) /* Fix-up fgetc() */ #ifdef fgetc #undef fgetc #endif #define fgetc(f) spec_getc((int)f) /* Fix-up fputc() */ #ifdef fputc #undef fputc #endif #define fputc(c, f) spec_putc(c, (int)f) /* Fix-up putc() */ #ifdef putc #undef putc #endif #define putc(c, f) spec_putc(c, (int)f) /* Fix-up ungetc() */ #ifdef ungetc #undef ungetc #endif #define ungetc(c,f) spec_ungetc(c,(int)f) #else #ifndef SPEC_STDIN # define SPEC_STDIN stdin #endif #ifndef SPEC_STDOUT # define SPEC_STDOUT stdout #endif #ifndef SPEC_NULLCAST # define SPEC_NULLCAST #endif #endif /* SPEC_CPU */ #define BZ_RUN 0 #define BZ_FLUSH 1 #define BZ_FINISH 2 #define BZ_OK 0 #define BZ_RUN_OK 1 #define BZ_FLUSH_OK 2 #define BZ_FINISH_OK 3 #define BZ_STREAM_END 4 #define BZ_SEQUENCE_ERROR (-1) #define BZ_PARAM_ERROR (-2) #define BZ_MEM_ERROR (-3) #define BZ_DATA_ERROR (-4) #define BZ_DATA_ERROR_MAGIC (-5) #define BZ_IO_ERROR (-6) #define BZ_UNEXPECTED_EOF (-7) #define BZ_OUTBUFF_FULL (-8) #define BZ_CONFIG_ERROR (-9) typedef struct { char *next_in; unsigned int avail_in; unsigned int total_in_lo32; unsigned int total_in_hi32; char *next_out; unsigned int avail_out; unsigned int total_out_lo32; unsigned int total_out_hi32; void *state; void *(*bzalloc)(void *,int,int); void (*bzfree)(void *,void *); void *opaque; } bz_stream; #ifndef BZ_IMPORT #define BZ_EXPORT #endif #ifndef BZ_NO_STDIO /* Need a definitition for FILE */ #include #endif #ifdef _WIN32 # include # ifdef small /* windows.h define small to char */ # undef small # endif # ifdef BZ_EXPORT # define BZ_API(func) WINAPI func # define BZ_EXTERN extern # else /* import windows dll dynamically */ # define BZ_API(func) (WINAPI * func) # define BZ_EXTERN # endif #else # define BZ_API(func) func # define BZ_EXTERN extern #endif /*-- Core (low-level) library functions --*/ BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( bz_stream* strm, int blockSize100k, int verbosity, int workFactor ); BZ_EXTERN int BZ_API(BZ2_bzCompress) ( bz_stream* strm, int action ); BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( bz_stream* strm ); BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( bz_stream *strm, int verbosity, int small ); BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( bz_stream* strm ); BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm ); /*-- High(er) level library functions --*/ #ifndef BZ_NO_STDIO #define BZ_MAX_UNUSED 5000 typedef void BZFILE; BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( int* bzerror, #if defined(SPEC_CPU) int f, #else FILE* f, #endif int verbosity, int small, void* unused, int nUnused ); BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( int* bzerror, BZFILE* b ); BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( int* bzerror, BZFILE* b, void** unused, int* nUnused ); BZ_EXTERN int BZ_API(BZ2_bzRead) ( int* bzerror, BZFILE* b, void* buf, int len ); BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( int* bzerror, #if defined(SPEC_CPU) int f, #else FILE* f, #endif int blockSize100k, int verbosity, int workFactor ); BZ_EXTERN void BZ_API(BZ2_bzWrite) ( int* bzerror, BZFILE* b, void* buf, int len ); BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( int* bzerror, BZFILE* b, int abandon, unsigned int* nbytes_in, unsigned int* nbytes_out ); BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( int* bzerror, BZFILE* b, int abandon, unsigned int* nbytes_in_lo32, unsigned int* nbytes_in_hi32, unsigned int* nbytes_out_lo32, unsigned int* nbytes_out_hi32 ); #endif /*-- Utility functions --*/ BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( char* dest, unsigned int* destLen, char* source, unsigned int sourceLen, int blockSize100k, int verbosity, int workFactor ); BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( char* dest, unsigned int* destLen, char* source, unsigned int sourceLen, int small, int verbosity ); /*-- Code contributed by Yoshioka Tsuneo (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp), to support better zlib compatibility. This code is not _officially_ part of libbzip2 (yet); I haven't tested it, documented it, or considered the threading-safeness of it. If this code breaks, please contact both Yoshioka and me. --*/ BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) ( void ); #ifndef BZ_NO_STDIO BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) ( const char *path, const char *mode ); BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) ( int fd, const char *mode ); BZ_EXTERN int BZ_API(BZ2_bzread) ( BZFILE* b, void* buf, int len ); BZ_EXTERN int BZ_API(BZ2_bzwrite) ( BZFILE* b, void* buf, int len ); BZ_EXTERN int BZ_API(BZ2_bzflush) ( BZFILE* b ); BZ_EXTERN void BZ_API(BZ2_bzclose) ( BZFILE* b ); BZ_EXTERN const char * BZ_API(BZ2_bzerror) ( BZFILE *b, int *errnum ); #endif #ifdef __cplusplus } #endif #endif /*-------------------------------------------------------------*/ /*--- end bzlib.h ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/bzlib_private.h ================================================ /*-------------------------------------------------------------*/ /*--- Private header file for the library. ---*/ /*--- bzlib_private.h ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ #ifndef _BZLIB_PRIVATE_H #define _BZLIB_PRIVATE_H #include #ifndef BZ_NO_STDIO #include #include #include #endif #include "bzlib.h" /*-- General stuff. --*/ #define BZ_VERSION "1.0.3, 15-Feb-2005" typedef char Char; typedef unsigned char Bool; typedef unsigned char UChar; typedef int Int32; typedef unsigned int UInt32; typedef short Int16; typedef unsigned short UInt16; #define True ((Bool)1) #define False ((Bool)0) #if defined(SPEC_CPU) || !defined(__GNUC__) #define __inline__ /* */ #endif #ifndef BZ_NO_STDIO extern void BZ2_bz__AssertH__fail ( int errcode ); #define AssertH(cond,errcode) \ { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); } #if BZ_DEBUG #define AssertD(cond,msg) \ { if (!(cond)) { \ fprintf ( stderr, \ "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\ exit(1); \ }} #else #define AssertD(cond,msg) /* */ #endif #define VPrintf0(zf) \ fprintf(stderr,zf) #define VPrintf1(zf,za1) \ fprintf(stderr,zf,za1) #define VPrintf2(zf,za1,za2) \ fprintf(stderr,zf,za1,za2) #define VPrintf3(zf,za1,za2,za3) \ fprintf(stderr,zf,za1,za2,za3) #define VPrintf4(zf,za1,za2,za3,za4) \ fprintf(stderr,zf,za1,za2,za3,za4) #define VPrintf5(zf,za1,za2,za3,za4,za5) \ fprintf(stderr,zf,za1,za2,za3,za4,za5) #else extern void bz_internal_error ( int errcode ); #define AssertH(cond,errcode) \ { if (!(cond)) bz_internal_error ( errcode ); } #define AssertD(cond,msg) /* */ #define VPrintf0(zf) /* */ #define VPrintf1(zf,za1) /* */ #define VPrintf2(zf,za1,za2) /* */ #define VPrintf3(zf,za1,za2,za3) /* */ #define VPrintf4(zf,za1,za2,za3,za4) /* */ #define VPrintf5(zf,za1,za2,za3,za4,za5) /* */ #endif #define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1) #define BZFREE(ppp) (strm->bzfree)(strm->opaque,(ppp)) /*-- Header bytes. --*/ #define BZ_HDR_B 0x42 /* 'B' */ #define BZ_HDR_Z 0x5a /* 'Z' */ #define BZ_HDR_h 0x68 /* 'h' */ #define BZ_HDR_0 0x30 /* '0' */ /*-- Constants for the back end. --*/ #define BZ_MAX_ALPHA_SIZE 258 #define BZ_MAX_CODE_LEN 23 #define BZ_RUNA 0 #define BZ_RUNB 1 #define BZ_N_GROUPS 6 #define BZ_G_SIZE 50 #define BZ_N_ITERS 4 #define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE)) /*-- Stuff for randomising repetitive blocks. --*/ extern Int32 BZ2_rNums[512]; #define BZ_RAND_DECLS \ Int32 rNToGo; \ Int32 rTPos \ #define BZ_RAND_INIT_MASK \ s->rNToGo = 0; \ s->rTPos = 0 \ #define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0) #define BZ_RAND_UPD_MASK \ if (s->rNToGo == 0) { \ s->rNToGo = BZ2_rNums[s->rTPos]; \ s->rTPos++; \ if (s->rTPos == 512) s->rTPos = 0; \ } \ s->rNToGo--; /*-- Stuff for doing CRCs. --*/ extern UInt32 BZ2_crc32Table[256]; #define BZ_INITIALISE_CRC(crcVar) \ { \ crcVar = 0xffffffffL; \ } #define BZ_FINALISE_CRC(crcVar) \ { \ crcVar = ~(crcVar); \ } #define BZ_UPDATE_CRC(crcVar,cha) \ { \ crcVar = (crcVar << 8) ^ \ BZ2_crc32Table[(crcVar >> 24) ^ \ ((UChar)cha)]; \ } /*-- States and modes for compression. --*/ #define BZ_M_IDLE 1 #define BZ_M_RUNNING 2 #define BZ_M_FLUSHING 3 #define BZ_M_FINISHING 4 #define BZ_S_OUTPUT 1 #define BZ_S_INPUT 2 #define BZ_N_RADIX 2 #define BZ_N_QSORT 12 #define BZ_N_SHELL 18 #define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2) /*-- Structure holding all the compression-side stuff. --*/ typedef struct { /* pointer back to the struct bz_stream */ bz_stream* strm; /* mode this stream is in, and whether inputting */ /* or outputting data */ Int32 mode; Int32 state; /* remembers avail_in when flush/finish requested */ UInt32 avail_in_expect; /* for doing the block sorting */ UInt32* arr1; UInt32* arr2; UInt32* ftab; Int32 origPtr; /* aliases for arr1 and arr2 */ UInt32* ptr; UChar* block; UInt16* mtfv; UChar* zbits; /* for deciding when to use the fallback sorting algorithm */ Int32 workFactor; /* run-length-encoding of the input */ UInt32 state_in_ch; Int32 state_in_len; BZ_RAND_DECLS; /* input and output limits and current posns */ Int32 nblock; Int32 nblockMAX; Int32 numZ; Int32 state_out_pos; /* map of bytes used in block */ Int32 nInUse; Bool inUse[256]; UChar unseqToSeq[256]; /* the buffer for bit stream creation */ UInt32 bsBuff; Int32 bsLive; /* block and combined CRCs */ UInt32 blockCRC; UInt32 combinedCRC; /* misc administratium */ Int32 verbosity; Int32 blockNo; Int32 blockSize100k; /* stuff for coding the MTF values */ Int32 nMTF; Int32 mtfFreq [BZ_MAX_ALPHA_SIZE]; UChar selector [BZ_MAX_SELECTORS]; UChar selectorMtf[BZ_MAX_SELECTORS]; UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; Int32 code [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; Int32 rfreq [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; /* second dimension: only 3 needed; 4 makes index calculations faster */ UInt32 len_pack[BZ_MAX_ALPHA_SIZE][4]; } EState; /*-- externs for compression. --*/ extern void BZ2_blockSort ( EState* ); extern void BZ2_compressBlock ( EState*, Bool ); extern void BZ2_bsInitWrite ( EState* ); extern void BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 ); extern void BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 ); /*-- states for decompression. --*/ #define BZ_X_IDLE 1 #define BZ_X_OUTPUT 2 #define BZ_X_MAGIC_1 10 #define BZ_X_MAGIC_2 11 #define BZ_X_MAGIC_3 12 #define BZ_X_MAGIC_4 13 #define BZ_X_BLKHDR_1 14 #define BZ_X_BLKHDR_2 15 #define BZ_X_BLKHDR_3 16 #define BZ_X_BLKHDR_4 17 #define BZ_X_BLKHDR_5 18 #define BZ_X_BLKHDR_6 19 #define BZ_X_BCRC_1 20 #define BZ_X_BCRC_2 21 #define BZ_X_BCRC_3 22 #define BZ_X_BCRC_4 23 #define BZ_X_RANDBIT 24 #define BZ_X_ORIGPTR_1 25 #define BZ_X_ORIGPTR_2 26 #define BZ_X_ORIGPTR_3 27 #define BZ_X_MAPPING_1 28 #define BZ_X_MAPPING_2 29 #define BZ_X_SELECTOR_1 30 #define BZ_X_SELECTOR_2 31 #define BZ_X_SELECTOR_3 32 #define BZ_X_CODING_1 33 #define BZ_X_CODING_2 34 #define BZ_X_CODING_3 35 #define BZ_X_MTF_1 36 #define BZ_X_MTF_2 37 #define BZ_X_MTF_3 38 #define BZ_X_MTF_4 39 #define BZ_X_MTF_5 40 #define BZ_X_MTF_6 41 #define BZ_X_ENDHDR_2 42 #define BZ_X_ENDHDR_3 43 #define BZ_X_ENDHDR_4 44 #define BZ_X_ENDHDR_5 45 #define BZ_X_ENDHDR_6 46 #define BZ_X_CCRC_1 47 #define BZ_X_CCRC_2 48 #define BZ_X_CCRC_3 49 #define BZ_X_CCRC_4 50 /*-- Constants for the fast MTF decoder. --*/ #define MTFA_SIZE 4096 #define MTFL_SIZE 16 /*-- Structure holding all the decompression-side stuff. --*/ typedef struct { /* pointer back to the struct bz_stream */ bz_stream* strm; /* state indicator for this stream */ Int32 state; /* for doing the final run-length decoding */ UChar state_out_ch; Int32 state_out_len; Bool blockRandomised; BZ_RAND_DECLS; /* the buffer for bit stream reading */ UInt32 bsBuff; Int32 bsLive; /* misc administratium */ Int32 blockSize100k; Bool smallDecompress; Int32 currBlockNo; Int32 verbosity; /* for undoing the Burrows-Wheeler transform */ Int32 origPtr; UInt32 tPos; Int32 k0; Int32 unzftab[256]; Int32 nblock_used; Int32 cftab[257]; Int32 cftabCopy[257]; /* for undoing the Burrows-Wheeler transform (FAST) */ UInt32 *tt; /* for undoing the Burrows-Wheeler transform (SMALL) */ UInt16 *ll16; UChar *ll4; /* stored and calculated CRCs */ UInt32 storedBlockCRC; UInt32 storedCombinedCRC; UInt32 calculatedBlockCRC; UInt32 calculatedCombinedCRC; /* map of bytes used in block */ Int32 nInUse; Bool inUse[256]; Bool inUse16[16]; UChar seqToUnseq[256]; /* for decoding the MTF values */ UChar mtfa [MTFA_SIZE]; Int32 mtfbase[256 / MTFL_SIZE]; UChar selector [BZ_MAX_SELECTORS]; UChar selectorMtf[BZ_MAX_SELECTORS]; UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; Int32 limit [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; Int32 base [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; Int32 perm [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; Int32 minLens[BZ_N_GROUPS]; /* save area for scalars in the main decompress code */ Int32 save_i; Int32 save_j; Int32 save_t; Int32 save_alphaSize; Int32 save_nGroups; Int32 save_nSelectors; Int32 save_EOB; Int32 save_groupNo; Int32 save_groupPos; Int32 save_nextSym; Int32 save_nblockMAX; Int32 save_nblock; Int32 save_es; Int32 save_N; Int32 save_curr; Int32 save_zt; Int32 save_zn; Int32 save_zvec; Int32 save_zj; Int32 save_gSel; Int32 save_gMinlen; Int32* save_gLimit; Int32* save_gBase; Int32* save_gPerm; } DState; /*-- Macros for decompression. --*/ #define BZ_GET_FAST(cccc) \ s->tPos = s->tt[s->tPos]; \ cccc = (UChar)(s->tPos & 0xff); \ s->tPos >>= 8; #define BZ_GET_FAST_C(cccc) \ c_tPos = c_tt[c_tPos]; \ cccc = (UChar)(c_tPos & 0xff); \ c_tPos >>= 8; #define SET_LL4(i,n) \ { if (((i) & 0x1) == 0) \ s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else \ s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4); \ } #define GET_LL4(i) \ ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF) #define SET_LL(i,n) \ { s->ll16[i] = (UInt16)(n & 0x0000ffff); \ SET_LL4(i, n >> 16); \ } #define GET_LL(i) \ (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16)) #define BZ_GET_SMALL(cccc) \ cccc = BZ2_indexIntoF ( s->tPos, s->cftab ); \ s->tPos = GET_LL(s->tPos); /*-- externs for decompression. --*/ extern Int32 BZ2_indexIntoF ( Int32, Int32* ); extern Int32 BZ2_decompress ( DState* ); extern void BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*, Int32, Int32, Int32 ); #endif /*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/ #ifdef BZ_NO_STDIO #ifndef NULL #define NULL 0 #endif #endif /*-------------------------------------------------------------*/ /*--- end bzlib_private.h ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/compress.c ================================================ /*-------------------------------------------------------------*/ /*--- Compression machinery (not incl block sorting) ---*/ /*--- compress.c ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ /*-- CHANGES ~~~~~~~ 0.9.0 -- original version. 0.9.0a/b -- no changes in this file. 0.9.0c * changed setting of nGroups in sendMTFValues() so as to do a bit better on small files --*/ #include "bzlib_private.h" /*---------------------------------------------------*/ /*--- Bit stream I/O ---*/ /*---------------------------------------------------*/ /*---------------------------------------------------*/ void BZ2_bsInitWrite ( EState* s ) { s->bsLive = 0; s->bsBuff = 0; } /*---------------------------------------------------*/ static void bsFinishWrite ( EState* s ) { while (s->bsLive > 0) { s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24); s->numZ++; s->bsBuff <<= 8; s->bsLive -= 8; } } /*---------------------------------------------------*/ #define bsNEEDW(nz) \ { \ while (s->bsLive >= 8) { \ s->zbits[s->numZ] \ = (UChar)(s->bsBuff >> 24); \ s->numZ++; \ s->bsBuff <<= 8; \ s->bsLive -= 8; \ } \ } /*---------------------------------------------------*/ static __inline__ void bsW ( EState* s, Int32 n, UInt32 v ) { bsNEEDW ( n ); s->bsBuff |= (v << (32 - s->bsLive - n)); s->bsLive += n; } /*---------------------------------------------------*/ static void bsPutUInt32 ( EState* s, UInt32 u ) { bsW ( s, 8, (u >> 24) & 0xffL ); bsW ( s, 8, (u >> 16) & 0xffL ); bsW ( s, 8, (u >> 8) & 0xffL ); bsW ( s, 8, u & 0xffL ); } /*---------------------------------------------------*/ static void bsPutUChar ( EState* s, UChar c ) { bsW( s, 8, (UInt32)c ); } /*---------------------------------------------------*/ /*--- The back end proper ---*/ /*---------------------------------------------------*/ /*---------------------------------------------------*/ static void makeMaps_e ( EState* s ) { Int32 i; s->nInUse = 0; for (i = 0; i < 256; i++) if (s->inUse[i]) { s->unseqToSeq[i] = s->nInUse; s->nInUse++; } } /*---------------------------------------------------*/ static void generateMTFValues ( EState* s ) { UChar yy[256]; Int32 i, j; Int32 zPend; Int32 wr; Int32 EOB; /* After sorting (eg, here), s->arr1 [ 0 .. s->nblock-1 ] holds sorted order, and ((UChar*)s->arr2) [ 0 .. s->nblock-1 ] holds the original block data. The first thing to do is generate the MTF values, and put them in ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ]. Because there are strictly fewer or equal MTF values than block values, ptr values in this area are overwritten with MTF values only when they are no longer needed. The final compressed bitstream is generated into the area starting at (UChar*) (&((UChar*)s->arr2)[s->nblock]) These storage aliases are set up in bzCompressInit(), except for the last one, which is arranged in compressBlock(). */ UInt32* ptr = s->ptr; UChar* block = s->block; UInt16* mtfv = s->mtfv; makeMaps_e ( s ); EOB = s->nInUse+1; for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0; wr = 0; zPend = 0; for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i; for (i = 0; i < s->nblock; i++) { UChar ll_i; AssertD ( wr <= i, "generateMTFValues(1)" ); j = ptr[i]-1; if (j < 0) j += s->nblock; ll_i = s->unseqToSeq[block[j]]; AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" ); if (yy[0] == ll_i) { zPend++; } else { if (zPend > 0) { zPend--; while (True) { if (zPend & 1) { mtfv[wr] = BZ_RUNB; wr++; s->mtfFreq[BZ_RUNB]++; } else { mtfv[wr] = BZ_RUNA; wr++; s->mtfFreq[BZ_RUNA]++; } if (zPend < 2) break; zPend = (zPend - 2) / 2; }; zPend = 0; } { register UChar rtmp; register UChar* ryy_j; register UChar rll_i; rtmp = yy[1]; yy[1] = yy[0]; ryy_j = &(yy[1]); rll_i = ll_i; while ( rll_i != rtmp ) { register UChar rtmp2; ryy_j++; rtmp2 = rtmp; rtmp = *ryy_j; *ryy_j = rtmp2; }; yy[0] = rtmp; j = ryy_j - &(yy[0]); mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++; } } } if (zPend > 0) { zPend--; while (True) { if (zPend & 1) { mtfv[wr] = BZ_RUNB; wr++; s->mtfFreq[BZ_RUNB]++; } else { mtfv[wr] = BZ_RUNA; wr++; s->mtfFreq[BZ_RUNA]++; } if (zPend < 2) break; zPend = (zPend - 2) / 2; }; zPend = 0; } mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++; s->nMTF = wr; } /*---------------------------------------------------*/ #define BZ_LESSER_ICOST 0 #define BZ_GREATER_ICOST 15 static void sendMTFValues ( EState* s ) { Int32 v, t, i, j, gs, ge, totc, bt, bc, iter; Int32 nSelectors, alphaSize, minLen, maxLen, selCtr; Int32 nGroups, nBytes; /*-- UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; is a global since the decoder also needs it. Int32 code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; Int32 rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; are also globals only used in this proc. Made global to keep stack frame size small. --*/ UInt16 cost[BZ_N_GROUPS]; Int32 fave[BZ_N_GROUPS]; UInt16* mtfv = s->mtfv; if (s->verbosity >= 3) VPrintf3( " %d in block, %d after MTF & 1-2 coding, " "%d+2 syms in use\n", s->nblock, s->nMTF, s->nInUse ); alphaSize = s->nInUse+2; for (t = 0; t < BZ_N_GROUPS; t++) for (v = 0; v < alphaSize; v++) s->len[t][v] = BZ_GREATER_ICOST; /*--- Decide how many coding tables to use ---*/ AssertH ( s->nMTF > 0, 3001 ); if (s->nMTF < 200) nGroups = 2; else if (s->nMTF < 600) nGroups = 3; else if (s->nMTF < 1200) nGroups = 4; else if (s->nMTF < 2400) nGroups = 5; else nGroups = 6; /*--- Generate an initial set of coding tables ---*/ { Int32 nPart, remF, tFreq, aFreq; nPart = nGroups; remF = s->nMTF; gs = 0; while (nPart > 0) { tFreq = remF / nPart; ge = gs-1; aFreq = 0; while (aFreq < tFreq && ge < alphaSize-1) { ge++; aFreq += s->mtfFreq[ge]; } if (ge > gs && nPart != nGroups && nPart != 1 && ((nGroups-nPart) % 2 == 1)) { aFreq -= s->mtfFreq[ge]; ge--; } if (s->verbosity >= 3) VPrintf5( " initial group %d, [%d .. %d], " "has %d syms (%4.1f%%)\n", nPart, gs, ge, aFreq, (100.0 * (float)aFreq) / (float)(s->nMTF) ); for (v = 0; v < alphaSize; v++) if (v >= gs && v <= ge) s->len[nPart-1][v] = BZ_LESSER_ICOST; else s->len[nPart-1][v] = BZ_GREATER_ICOST; nPart--; gs = ge+1; remF -= aFreq; } } /*--- Iterate up to BZ_N_ITERS times to improve the tables. ---*/ for (iter = 0; iter < BZ_N_ITERS; iter++) { for (t = 0; t < nGroups; t++) fave[t] = 0; for (t = 0; t < nGroups; t++) for (v = 0; v < alphaSize; v++) s->rfreq[t][v] = 0; /*--- Set up an auxiliary length table which is used to fast-track the common case (nGroups == 6). ---*/ if (nGroups == 6) { for (v = 0; v < alphaSize; v++) { s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v]; s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v]; s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v]; } } nSelectors = 0; totc = 0; gs = 0; while (True) { /*--- Set group start & end marks. --*/ if (gs >= s->nMTF) break; ge = gs + BZ_G_SIZE - 1; if (ge >= s->nMTF) ge = s->nMTF-1; /*-- Calculate the cost of this group as coded by each of the coding tables. --*/ for (t = 0; t < nGroups; t++) cost[t] = 0; if (nGroups == 6 && 50 == ge-gs+1) { /*--- fast track the common case ---*/ register UInt32 cost01, cost23, cost45; register UInt16 icv; cost01 = cost23 = cost45 = 0; # define BZ_ITER(nn) \ icv = mtfv[gs+(nn)]; \ cost01 += s->len_pack[icv][0]; \ cost23 += s->len_pack[icv][1]; \ cost45 += s->len_pack[icv][2]; \ BZ_ITER(0); BZ_ITER(1); BZ_ITER(2); BZ_ITER(3); BZ_ITER(4); BZ_ITER(5); BZ_ITER(6); BZ_ITER(7); BZ_ITER(8); BZ_ITER(9); BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14); BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19); BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24); BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29); BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34); BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39); BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44); BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49); # undef BZ_ITER cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16; cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16; cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16; } else { /*--- slow version which correctly handles all situations ---*/ for (i = gs; i <= ge; i++) { UInt16 icv = mtfv[i]; for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv]; } } /*-- Find the coding table which is best for this group, and record its identity in the selector table. --*/ bc = 999999999; bt = -1; for (t = 0; t < nGroups; t++) if (cost[t] < bc) { bc = cost[t]; bt = t; }; totc += bc; fave[bt]++; s->selector[nSelectors] = bt; nSelectors++; /*-- Increment the symbol frequencies for the selected table. --*/ if (nGroups == 6 && 50 == ge-gs+1) { /*--- fast track the common case ---*/ # define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++ BZ_ITUR(0); BZ_ITUR(1); BZ_ITUR(2); BZ_ITUR(3); BZ_ITUR(4); BZ_ITUR(5); BZ_ITUR(6); BZ_ITUR(7); BZ_ITUR(8); BZ_ITUR(9); BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14); BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19); BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24); BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29); BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34); BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39); BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44); BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49); # undef BZ_ITUR } else { /*--- slow version which correctly handles all situations ---*/ for (i = gs; i <= ge; i++) s->rfreq[bt][ mtfv[i] ]++; } gs = ge+1; } if (s->verbosity >= 3) { VPrintf2 ( " pass %d: size is %d, grp uses are ", iter+1, totc/8 ); for (t = 0; t < nGroups; t++) VPrintf1 ( "%d ", fave[t] ); VPrintf0 ( "\n" ); } /*-- Recompute the tables based on the accumulated frequencies. --*/ /* maxLen was changed from 20 to 17 in bzip2-1.0.3. See comment in huffman.c for details. */ for (t = 0; t < nGroups; t++) BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), alphaSize, 17 /*20*/ ); } AssertH( nGroups < 8, 3002 ); AssertH( nSelectors < 32768 && nSelectors <= (2 + (900000 / BZ_G_SIZE)), 3003 ); /*--- Compute MTF values for the selectors. ---*/ { UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp; for (i = 0; i < nGroups; i++) pos[i] = i; for (i = 0; i < nSelectors; i++) { ll_i = s->selector[i]; j = 0; tmp = pos[j]; while ( ll_i != tmp ) { j++; tmp2 = tmp; tmp = pos[j]; pos[j] = tmp2; }; pos[0] = tmp; s->selectorMtf[i] = j; } }; /*--- Assign actual codes for the tables. --*/ for (t = 0; t < nGroups; t++) { minLen = 32; maxLen = 0; for (i = 0; i < alphaSize; i++) { if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; if (s->len[t][i] < minLen) minLen = s->len[t][i]; } AssertH ( !(maxLen > 17 /*20*/ ), 3004 ); AssertH ( !(minLen < 1), 3005 ); BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), minLen, maxLen, alphaSize ); } /*--- Transmit the mapping table. ---*/ { Bool inUse16[16]; for (i = 0; i < 16; i++) { inUse16[i] = False; for (j = 0; j < 16; j++) if (s->inUse[i * 16 + j]) inUse16[i] = True; } nBytes = s->numZ; for (i = 0; i < 16; i++) if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0); for (i = 0; i < 16; i++) if (inUse16[i]) for (j = 0; j < 16; j++) { if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0); } if (s->verbosity >= 3) VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes ); } /*--- Now the selectors. ---*/ nBytes = s->numZ; bsW ( s, 3, nGroups ); bsW ( s, 15, nSelectors ); for (i = 0; i < nSelectors; i++) { for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1); bsW(s,1,0); } if (s->verbosity >= 3) VPrintf1( "selectors %d, ", s->numZ-nBytes ); /*--- Now the coding tables. ---*/ nBytes = s->numZ; for (t = 0; t < nGroups; t++) { Int32 curr = s->len[t][0]; bsW ( s, 5, curr ); for (i = 0; i < alphaSize; i++) { while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ }; while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ }; bsW ( s, 1, 0 ); } } if (s->verbosity >= 3) VPrintf1 ( "code lengths %d, ", s->numZ-nBytes ); /*--- And finally, the block data proper ---*/ nBytes = s->numZ; selCtr = 0; gs = 0; while (True) { if (gs >= s->nMTF) break; ge = gs + BZ_G_SIZE - 1; if (ge >= s->nMTF) ge = s->nMTF-1; AssertH ( s->selector[selCtr] < nGroups, 3006 ); if (nGroups == 6 && 50 == ge-gs+1) { /*--- fast track the common case ---*/ UInt16 mtfv_i; UChar* s_len_sel_selCtr = &(s->len[s->selector[selCtr]][0]); Int32* s_code_sel_selCtr = &(s->code[s->selector[selCtr]][0]); # define BZ_ITAH(nn) \ mtfv_i = mtfv[gs+(nn)]; \ bsW ( s, \ s_len_sel_selCtr[mtfv_i], \ s_code_sel_selCtr[mtfv_i] ) BZ_ITAH(0); BZ_ITAH(1); BZ_ITAH(2); BZ_ITAH(3); BZ_ITAH(4); BZ_ITAH(5); BZ_ITAH(6); BZ_ITAH(7); BZ_ITAH(8); BZ_ITAH(9); BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14); BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19); BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24); BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29); BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34); BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39); BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44); BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49); # undef BZ_ITAH } else { /*--- slow version which correctly handles all situations ---*/ for (i = gs; i <= ge; i++) { bsW ( s, s->len [s->selector[selCtr]] [mtfv[i]], s->code [s->selector[selCtr]] [mtfv[i]] ); } } gs = ge+1; selCtr++; } AssertH( selCtr == nSelectors, 3007 ); if (s->verbosity >= 3) VPrintf1( "codes %d\n", s->numZ-nBytes ); } /*---------------------------------------------------*/ void BZ2_compressBlock ( EState* s, Bool is_last_block ) { if (s->nblock > 0) { BZ_FINALISE_CRC ( s->blockCRC ); s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31); s->combinedCRC ^= s->blockCRC; if (s->blockNo > 1) s->numZ = 0; if (s->verbosity >= 2) VPrintf4( " block %d: crc = 0x%08x, " "combined CRC = 0x%08x, size = %d\n", s->blockNo, s->blockCRC, s->combinedCRC, s->nblock ); BZ2_blockSort ( s ); } s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]); /*-- If this is the first block, create the stream header. --*/ if (s->blockNo == 1) { BZ2_bsInitWrite ( s ); bsPutUChar ( s, BZ_HDR_B ); bsPutUChar ( s, BZ_HDR_Z ); bsPutUChar ( s, BZ_HDR_h ); bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) ); } if (s->nblock > 0) { bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 ); bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 ); bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 ); /*-- Now the block's CRC, so it is in a known place. --*/ bsPutUInt32 ( s, s->blockCRC ); /*-- Now a single bit indicating (non-)randomisation. As of version 0.9.5, we use a better sorting algorithm which makes randomisation unnecessary. So always set the randomised bit to 'no'. Of course, the decoder still needs to be able to handle randomised blocks so as to maintain backwards compatibility with older versions of bzip2. --*/ bsW(s,1,0); bsW ( s, 24, s->origPtr ); generateMTFValues ( s ); sendMTFValues ( s ); } /*-- If this is the last block, add the stream trailer. --*/ if (is_last_block) { bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 ); bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 ); bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 ); bsPutUInt32 ( s, s->combinedCRC ); if (s->verbosity >= 2) VPrintf1( " final combined CRC = 0x%08x\n ", s->combinedCRC ); bsFinishWrite ( s ); } } /*-------------------------------------------------------------*/ /*--- end compress.c ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/crctable.c ================================================ /*-------------------------------------------------------------*/ /*--- Table for doing CRCs ---*/ /*--- crctable.c ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ #include "bzlib_private.h" /*-- I think this is an implementation of the AUTODIN-II, Ethernet & FDDI 32-bit CRC standard. Vaguely derived from code by Rob Warnock, in Section 51 of the comp.compression FAQ. --*/ UInt32 BZ2_crc32Table[256] = { /*-- Ugly, innit? --*/ 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L, 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL, 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L, 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L, 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L, 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL, 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L, 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L, 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL, 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L, 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL, 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L, 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL, 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L, 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL, 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L, 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L, 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L, 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL, 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L, 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L }; /*-------------------------------------------------------------*/ /*--- end crctable.c ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/decompress.c ================================================ /*-------------------------------------------------------------*/ /*--- Decompression machinery ---*/ /*--- decompress.c ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ #include "bzlib_private.h" /*---------------------------------------------------*/ static void makeMaps_d ( DState* s ) { Int32 i; s->nInUse = 0; for (i = 0; i < 256; i++) if (s->inUse[i]) { s->seqToUnseq[s->nInUse] = i; s->nInUse++; } } /*---------------------------------------------------*/ #define RETURN(rrr) \ { retVal = rrr; goto save_state_and_return; }; #define GET_BITS(lll,vvv,nnn) \ case lll: s->state = lll; \ while (True) { \ if (s->bsLive >= nnn) { \ UInt32 v; \ v = (s->bsBuff >> \ (s->bsLive-nnn)) & ((1 << nnn)-1); \ s->bsLive -= nnn; \ vvv = v; \ break; \ } \ if (s->strm->avail_in == 0) RETURN(BZ_OK); \ s->bsBuff \ = (s->bsBuff << 8) | \ ((UInt32) \ (*((UChar*)(s->strm->next_in)))); \ s->bsLive += 8; \ s->strm->next_in++; \ s->strm->avail_in--; \ s->strm->total_in_lo32++; \ if (s->strm->total_in_lo32 == 0) \ s->strm->total_in_hi32++; \ } #define GET_UCHAR(lll,uuu) \ GET_BITS(lll,uuu,8) #define GET_BIT(lll,uuu) \ GET_BITS(lll,uuu,1) /*---------------------------------------------------*/ #define GET_MTF_VAL(label1,label2,lval) \ { \ if (groupPos == 0) { \ groupNo++; \ if (groupNo >= nSelectors) \ RETURN(BZ_DATA_ERROR); \ groupPos = BZ_G_SIZE; \ gSel = s->selector[groupNo]; \ gMinlen = s->minLens[gSel]; \ gLimit = &(s->limit[gSel][0]); \ gPerm = &(s->perm[gSel][0]); \ gBase = &(s->base[gSel][0]); \ } \ groupPos--; \ zn = gMinlen; \ GET_BITS(label1, zvec, zn); \ while (1) { \ if (zn > 20 /* the longest code */) \ RETURN(BZ_DATA_ERROR); \ if (zvec <= gLimit[zn]) break; \ zn++; \ GET_BIT(label2, zj); \ zvec = (zvec << 1) | zj; \ }; \ if (zvec - gBase[zn] < 0 \ || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE) \ RETURN(BZ_DATA_ERROR); \ lval = gPerm[zvec - gBase[zn]]; \ } /*---------------------------------------------------*/ Int32 BZ2_decompress ( DState* s ) { UChar uc; Int32 retVal; Int32 minLen, maxLen; bz_stream* strm = s->strm; /* stuff that needs to be saved/restored */ Int32 i; Int32 j; Int32 t; Int32 alphaSize; Int32 nGroups; Int32 nSelectors; Int32 EOB; Int32 groupNo; Int32 groupPos; Int32 nextSym; Int32 nblockMAX; Int32 nblock; Int32 es; Int32 N; Int32 curr; Int32 zt; Int32 zn; Int32 zvec; Int32 zj; Int32 gSel; Int32 gMinlen; Int32* gLimit; Int32* gBase; Int32* gPerm; if (s->state == BZ_X_MAGIC_1) { /*initialise the save area*/ s->save_i = 0; s->save_j = 0; s->save_t = 0; s->save_alphaSize = 0; s->save_nGroups = 0; s->save_nSelectors = 0; s->save_EOB = 0; s->save_groupNo = 0; s->save_groupPos = 0; s->save_nextSym = 0; s->save_nblockMAX = 0; s->save_nblock = 0; s->save_es = 0; s->save_N = 0; s->save_curr = 0; s->save_zt = 0; s->save_zn = 0; s->save_zvec = 0; s->save_zj = 0; s->save_gSel = 0; s->save_gMinlen = 0; s->save_gLimit = NULL; s->save_gBase = NULL; s->save_gPerm = NULL; } /*restore from the save area*/ i = s->save_i; j = s->save_j; t = s->save_t; alphaSize = s->save_alphaSize; nGroups = s->save_nGroups; nSelectors = s->save_nSelectors; EOB = s->save_EOB; groupNo = s->save_groupNo; groupPos = s->save_groupPos; nextSym = s->save_nextSym; nblockMAX = s->save_nblockMAX; nblock = s->save_nblock; es = s->save_es; N = s->save_N; curr = s->save_curr; zt = s->save_zt; zn = s->save_zn; zvec = s->save_zvec; zj = s->save_zj; gSel = s->save_gSel; gMinlen = s->save_gMinlen; gLimit = s->save_gLimit; gBase = s->save_gBase; gPerm = s->save_gPerm; retVal = BZ_OK; switch (s->state) { GET_UCHAR(BZ_X_MAGIC_1, uc); if (uc != BZ_HDR_B) RETURN(BZ_DATA_ERROR_MAGIC); GET_UCHAR(BZ_X_MAGIC_2, uc); if (uc != BZ_HDR_Z) RETURN(BZ_DATA_ERROR_MAGIC); GET_UCHAR(BZ_X_MAGIC_3, uc) if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC); GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8) if (s->blockSize100k < (BZ_HDR_0 + 1) || s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC); s->blockSize100k -= BZ_HDR_0; if (s->smallDecompress) { s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) ); s->ll4 = BZALLOC( ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) ); if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR); } else { s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) ); if (s->tt == NULL) RETURN(BZ_MEM_ERROR); } GET_UCHAR(BZ_X_BLKHDR_1, uc); if (uc == 0x17) goto endhdr_2; if (uc != 0x31) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_BLKHDR_2, uc); if (uc != 0x41) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_BLKHDR_3, uc); if (uc != 0x59) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_BLKHDR_4, uc); if (uc != 0x26) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_BLKHDR_5, uc); if (uc != 0x53) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_BLKHDR_6, uc); if (uc != 0x59) RETURN(BZ_DATA_ERROR); s->currBlockNo++; if (s->verbosity >= 2) VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo ); s->storedBlockCRC = 0; GET_UCHAR(BZ_X_BCRC_1, uc); s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); GET_UCHAR(BZ_X_BCRC_2, uc); s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); GET_UCHAR(BZ_X_BCRC_3, uc); s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); GET_UCHAR(BZ_X_BCRC_4, uc); s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1); s->origPtr = 0; GET_UCHAR(BZ_X_ORIGPTR_1, uc); s->origPtr = (s->origPtr << 8) | ((Int32)uc); GET_UCHAR(BZ_X_ORIGPTR_2, uc); s->origPtr = (s->origPtr << 8) | ((Int32)uc); GET_UCHAR(BZ_X_ORIGPTR_3, uc); s->origPtr = (s->origPtr << 8) | ((Int32)uc); if (s->origPtr < 0) RETURN(BZ_DATA_ERROR); if (s->origPtr > 10 + 100000*s->blockSize100k) RETURN(BZ_DATA_ERROR); /*--- Receive the mapping table ---*/ for (i = 0; i < 16; i++) { GET_BIT(BZ_X_MAPPING_1, uc); if (uc == 1) s->inUse16[i] = True; else s->inUse16[i] = False; } for (i = 0; i < 256; i++) s->inUse[i] = False; for (i = 0; i < 16; i++) if (s->inUse16[i]) for (j = 0; j < 16; j++) { GET_BIT(BZ_X_MAPPING_2, uc); if (uc == 1) s->inUse[i * 16 + j] = True; } makeMaps_d ( s ); if (s->nInUse == 0) RETURN(BZ_DATA_ERROR); alphaSize = s->nInUse+2; /*--- Now the selectors ---*/ GET_BITS(BZ_X_SELECTOR_1, nGroups, 3); if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR); GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15); if (nSelectors < 1) RETURN(BZ_DATA_ERROR); for (i = 0; i < nSelectors; i++) { j = 0; while (True) { GET_BIT(BZ_X_SELECTOR_3, uc); if (uc == 0) break; j++; if (j >= nGroups) RETURN(BZ_DATA_ERROR); } s->selectorMtf[i] = j; } /*--- Undo the MTF values for the selectors. ---*/ { UChar pos[BZ_N_GROUPS], tmp, v; for (v = 0; v < nGroups; v++) pos[v] = v; for (i = 0; i < nSelectors; i++) { v = s->selectorMtf[i]; tmp = pos[v]; while (v > 0) { pos[v] = pos[v-1]; v--; } pos[0] = tmp; s->selector[i] = tmp; } } /*--- Now the coding tables ---*/ for (t = 0; t < nGroups; t++) { GET_BITS(BZ_X_CODING_1, curr, 5); for (i = 0; i < alphaSize; i++) { while (True) { if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR); GET_BIT(BZ_X_CODING_2, uc); if (uc == 0) break; GET_BIT(BZ_X_CODING_3, uc); if (uc == 0) curr++; else curr--; } s->len[t][i] = curr; } } /*--- Create the Huffman decoding tables ---*/ for (t = 0; t < nGroups; t++) { minLen = 32; maxLen = 0; for (i = 0; i < alphaSize; i++) { if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; if (s->len[t][i] < minLen) minLen = s->len[t][i]; } BZ2_hbCreateDecodeTables ( &(s->limit[t][0]), &(s->base[t][0]), &(s->perm[t][0]), &(s->len[t][0]), minLen, maxLen, alphaSize ); s->minLens[t] = minLen; } /*--- Now the MTF values ---*/ EOB = s->nInUse+1; nblockMAX = 100000 * s->blockSize100k; groupNo = -1; groupPos = 0; for (i = 0; i <= 255; i++) s->unzftab[i] = 0; /*-- MTF init --*/ { Int32 ii, jj, kk; kk = MTFA_SIZE-1; for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) { for (jj = MTFL_SIZE-1; jj >= 0; jj--) { s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj); kk--; } s->mtfbase[ii] = kk + 1; } } /*-- end MTF init --*/ nblock = 0; GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym); while (True) { if (nextSym == EOB) break; if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) { es = -1; N = 1; do { if (nextSym == BZ_RUNA) es = es + (0+1) * N; else if (nextSym == BZ_RUNB) es = es + (1+1) * N; N = N * 2; GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym); } while (nextSym == BZ_RUNA || nextSym == BZ_RUNB); es++; uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ]; s->unzftab[uc] += es; if (s->smallDecompress) while (es > 0) { if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); s->ll16[nblock] = (UInt16)uc; nblock++; es--; } else while (es > 0) { if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); s->tt[nblock] = (UInt32)uc; nblock++; es--; }; continue; } else { if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); /*-- uc = MTF ( nextSym-1 ) --*/ { Int32 ii, jj, kk, pp, lno, off; UInt32 nn; nn = (UInt32)(nextSym - 1); if (nn < MTFL_SIZE) { /* avoid general-case expense */ pp = s->mtfbase[0]; uc = s->mtfa[pp+nn]; while (nn > 3) { Int32 z = pp+nn; s->mtfa[(z) ] = s->mtfa[(z)-1]; s->mtfa[(z)-1] = s->mtfa[(z)-2]; s->mtfa[(z)-2] = s->mtfa[(z)-3]; s->mtfa[(z)-3] = s->mtfa[(z)-4]; nn -= 4; } while (nn > 0) { s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; }; s->mtfa[pp] = uc; } else { /* general case */ lno = nn / MTFL_SIZE; off = nn % MTFL_SIZE; pp = s->mtfbase[lno] + off; uc = s->mtfa[pp]; while (pp > s->mtfbase[lno]) { s->mtfa[pp] = s->mtfa[pp-1]; pp--; }; s->mtfbase[lno]++; while (lno > 0) { s->mtfbase[lno]--; s->mtfa[s->mtfbase[lno]] = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1]; lno--; } s->mtfbase[0]--; s->mtfa[s->mtfbase[0]] = uc; if (s->mtfbase[0] == 0) { kk = MTFA_SIZE-1; for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) { for (jj = MTFL_SIZE-1; jj >= 0; jj--) { s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj]; kk--; } s->mtfbase[ii] = kk + 1; } } } } /*-- end uc = MTF ( nextSym-1 ) --*/ s->unzftab[s->seqToUnseq[uc]]++; if (s->smallDecompress) s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else s->tt[nblock] = (UInt32)(s->seqToUnseq[uc]); nblock++; GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym); continue; } } /* Now we know what nblock is, we can do a better sanity check on s->origPtr. */ if (s->origPtr < 0 || s->origPtr >= nblock) RETURN(BZ_DATA_ERROR); /*-- Set up cftab to facilitate generation of T^(-1) --*/ s->cftab[0] = 0; for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1]; for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1]; for (i = 0; i <= 256; i++) { if (s->cftab[i] < 0 || s->cftab[i] > nblock) { /* s->cftab[i] can legitimately be == nblock */ RETURN(BZ_DATA_ERROR); } } s->state_out_len = 0; s->state_out_ch = 0; BZ_INITIALISE_CRC ( s->calculatedBlockCRC ); s->state = BZ_X_OUTPUT; if (s->verbosity >= 2) VPrintf0 ( "rt+rld" ); if (s->smallDecompress) { /*-- Make a copy of cftab, used in generation of T --*/ for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i]; /*-- compute the T vector --*/ for (i = 0; i < nblock; i++) { uc = (UChar)(s->ll16[i]); SET_LL(i, s->cftabCopy[uc]); s->cftabCopy[uc]++; } /*-- Compute T^(-1) by pointer reversal on T --*/ i = s->origPtr; j = GET_LL(i); do { Int32 tmp = GET_LL(j); SET_LL(j, i); i = j; j = tmp; } while (i != s->origPtr); s->tPos = s->origPtr; s->nblock_used = 0; if (s->blockRandomised) { BZ_RAND_INIT_MASK; BZ_GET_SMALL(s->k0); s->nblock_used++; BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; } else { BZ_GET_SMALL(s->k0); s->nblock_used++; } } else { /*-- compute the T^(-1) vector --*/ for (i = 0; i < nblock; i++) { uc = (UChar)(s->tt[i] & 0xff); s->tt[s->cftab[uc]] |= (i << 8); s->cftab[uc]++; } s->tPos = s->tt[s->origPtr] >> 8; s->nblock_used = 0; if (s->blockRandomised) { BZ_RAND_INIT_MASK; BZ_GET_FAST(s->k0); s->nblock_used++; BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; } else { BZ_GET_FAST(s->k0); s->nblock_used++; } } RETURN(BZ_OK); endhdr_2: GET_UCHAR(BZ_X_ENDHDR_2, uc); if (uc != 0x72) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_ENDHDR_3, uc); if (uc != 0x45) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_ENDHDR_4, uc); if (uc != 0x38) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_ENDHDR_5, uc); if (uc != 0x50) RETURN(BZ_DATA_ERROR); GET_UCHAR(BZ_X_ENDHDR_6, uc); if (uc != 0x90) RETURN(BZ_DATA_ERROR); s->storedCombinedCRC = 0; GET_UCHAR(BZ_X_CCRC_1, uc); s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); GET_UCHAR(BZ_X_CCRC_2, uc); s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); GET_UCHAR(BZ_X_CCRC_3, uc); s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); GET_UCHAR(BZ_X_CCRC_4, uc); s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); s->state = BZ_X_IDLE; RETURN(BZ_STREAM_END); default: AssertH ( False, 4001 ); } AssertH ( False, 4002 ); save_state_and_return: s->save_i = i; s->save_j = j; s->save_t = t; s->save_alphaSize = alphaSize; s->save_nGroups = nGroups; s->save_nSelectors = nSelectors; s->save_EOB = EOB; s->save_groupNo = groupNo; s->save_groupPos = groupPos; s->save_nextSym = nextSym; s->save_nblockMAX = nblockMAX; s->save_nblock = nblock; s->save_es = es; s->save_N = N; s->save_curr = curr; s->save_zt = zt; s->save_zn = zn; s->save_zvec = zvec; s->save_zj = zj; s->save_gSel = gSel; s->save_gMinlen = gMinlen; s->save_gLimit = gLimit; s->save_gBase = gBase; s->save_gPerm = gPerm; return retVal; } /*-------------------------------------------------------------*/ /*--- end decompress.c ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/huffman.c ================================================ /*-------------------------------------------------------------*/ /*--- Huffman coding low-level stuff ---*/ /*--- huffman.c ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ #include "bzlib_private.h" /*---------------------------------------------------*/ #define WEIGHTOF(zz0) ((zz0) & 0xffffff00) #define DEPTHOF(zz1) ((zz1) & 0x000000ff) #define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3)) #define ADDWEIGHTS(zw1,zw2) \ (WEIGHTOF(zw1)+WEIGHTOF(zw2)) | \ (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2))) #define UPHEAP(z) \ { \ Int32 zz, tmp; \ zz = z; tmp = heap[zz]; \ while (weight[tmp] < weight[heap[zz >> 1]]) { \ heap[zz] = heap[zz >> 1]; \ zz >>= 1; \ } \ heap[zz] = tmp; \ } #define DOWNHEAP(z) \ { \ Int32 zz, yy, tmp; \ zz = z; tmp = heap[zz]; \ while (True) { \ yy = zz << 1; \ if (yy > nHeap) break; \ if (yy < nHeap && \ weight[heap[yy+1]] < weight[heap[yy]]) \ yy++; \ if (weight[tmp] < weight[heap[yy]]) break; \ heap[zz] = heap[yy]; \ zz = yy; \ } \ heap[zz] = tmp; \ } /*---------------------------------------------------*/ void BZ2_hbMakeCodeLengths ( UChar *len, Int32 *freq, Int32 alphaSize, Int32 maxLen ) { /*-- Nodes and heap entries run from 1. Entry 0 for both the heap and nodes is a sentinel. --*/ Int32 nNodes, nHeap, n1, n2, i, j, k; Bool tooLong; Int32 heap [ BZ_MAX_ALPHA_SIZE + 2 ]; Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ]; Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ]; for (i = 0; i < alphaSize; i++) weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8; while (True) { nNodes = alphaSize; nHeap = 0; heap[0] = 0; weight[0] = 0; parent[0] = -2; for (i = 1; i <= alphaSize; i++) { parent[i] = -1; nHeap++; heap[nHeap] = i; UPHEAP(nHeap); } AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 ); while (nHeap > 1) { n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1); n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1); nNodes++; parent[n1] = parent[n2] = nNodes; weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]); parent[nNodes] = -1; nHeap++; heap[nHeap] = nNodes; UPHEAP(nHeap); } AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 ); tooLong = False; for (i = 1; i <= alphaSize; i++) { j = 0; k = i; while (parent[k] >= 0) { k = parent[k]; j++; } len[i-1] = j; if (j > maxLen) tooLong = True; } if (! tooLong) break; /* 17 Oct 04: keep-going condition for the following loop used to be 'i < alphaSize', which missed the last element, theoretically leading to the possibility of the compressor looping. However, this count-scaling step is only needed if one of the generated Huffman code words is longer than maxLen, which up to and including version 1.0.2 was 20 bits, which is extremely unlikely. In version 1.0.3 maxLen was changed to 17 bits, which has minimal effect on compression ratio, but does mean this scaling step is used from time to time, enough to verify that it works. This means that bzip2-1.0.3 and later will only produce Huffman codes with a maximum length of 17 bits. However, in order to preserve backwards compatibility with bitstreams produced by versions pre-1.0.3, the decompressor must still handle lengths of up to 20. */ for (i = 1; i <= alphaSize; i++) { j = weight[i] >> 8; j = 1 + (j / 2); weight[i] = j << 8; } } } /*---------------------------------------------------*/ void BZ2_hbAssignCodes ( Int32 *code, UChar *length, Int32 minLen, Int32 maxLen, Int32 alphaSize ) { Int32 n, vec, i; vec = 0; for (n = minLen; n <= maxLen; n++) { for (i = 0; i < alphaSize; i++) if (length[i] == n) { code[i] = vec; vec++; }; vec <<= 1; } } /*---------------------------------------------------*/ void BZ2_hbCreateDecodeTables ( Int32 *limit, Int32 *base, Int32 *perm, UChar *length, Int32 minLen, Int32 maxLen, Int32 alphaSize ) { Int32 pp, i, j, vec; pp = 0; for (i = minLen; i <= maxLen; i++) for (j = 0; j < alphaSize; j++) if (length[j] == i) { perm[pp] = j; pp++; }; for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0; for (i = 0; i < alphaSize; i++) base[length[i]+1]++; for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1]; for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0; vec = 0; for (i = minLen; i <= maxLen; i++) { vec += (base[i+1] - base[i]); limit[i] = vec-1; vec <<= 1; } for (i = minLen + 1; i <= maxLen; i++) base[i] = ((limit[i-1] + 1) << 1) - base[i]; } /*-------------------------------------------------------------*/ /*--- end huffman.c ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/input.combined ================================================ [File too large to display: 51.3 MB] ================================================ FILE: tests/bzip2/randtable.c ================================================ /*-------------------------------------------------------------*/ /*--- Table for randomising repetitive blocks ---*/ /*--- randtable.c ---*/ /*-------------------------------------------------------------*/ /*-- This file is a part of bzip2 and/or libbzip2, a program and library for lossless, block-sorting data compression. Copyright (C) 1996-2005 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, Cambridge, UK. jseward@bzip.org bzip2/libbzip2 version 1.0 of 21 March 2000 This program is based on (at least) the work of: Mike Burrows David Wheeler Peter Fenwick Alistair Moffat Radford Neal Ian H. Witten Robert Sedgewick Jon L. Bentley For more information on these sources, see the manual. --*/ #include "bzlib_private.h" /*---------------------------------------------*/ Int32 BZ2_rNums[512] = { 619, 720, 127, 481, 931, 816, 813, 233, 566, 247, 985, 724, 205, 454, 863, 491, 741, 242, 949, 214, 733, 859, 335, 708, 621, 574, 73, 654, 730, 472, 419, 436, 278, 496, 867, 210, 399, 680, 480, 51, 878, 465, 811, 169, 869, 675, 611, 697, 867, 561, 862, 687, 507, 283, 482, 129, 807, 591, 733, 623, 150, 238, 59, 379, 684, 877, 625, 169, 643, 105, 170, 607, 520, 932, 727, 476, 693, 425, 174, 647, 73, 122, 335, 530, 442, 853, 695, 249, 445, 515, 909, 545, 703, 919, 874, 474, 882, 500, 594, 612, 641, 801, 220, 162, 819, 984, 589, 513, 495, 799, 161, 604, 958, 533, 221, 400, 386, 867, 600, 782, 382, 596, 414, 171, 516, 375, 682, 485, 911, 276, 98, 553, 163, 354, 666, 933, 424, 341, 533, 870, 227, 730, 475, 186, 263, 647, 537, 686, 600, 224, 469, 68, 770, 919, 190, 373, 294, 822, 808, 206, 184, 943, 795, 384, 383, 461, 404, 758, 839, 887, 715, 67, 618, 276, 204, 918, 873, 777, 604, 560, 951, 160, 578, 722, 79, 804, 96, 409, 713, 940, 652, 934, 970, 447, 318, 353, 859, 672, 112, 785, 645, 863, 803, 350, 139, 93, 354, 99, 820, 908, 609, 772, 154, 274, 580, 184, 79, 626, 630, 742, 653, 282, 762, 623, 680, 81, 927, 626, 789, 125, 411, 521, 938, 300, 821, 78, 343, 175, 128, 250, 170, 774, 972, 275, 999, 639, 495, 78, 352, 126, 857, 956, 358, 619, 580, 124, 737, 594, 701, 612, 669, 112, 134, 694, 363, 992, 809, 743, 168, 974, 944, 375, 748, 52, 600, 747, 642, 182, 862, 81, 344, 805, 988, 739, 511, 655, 814, 334, 249, 515, 897, 955, 664, 981, 649, 113, 974, 459, 893, 228, 433, 837, 553, 268, 926, 240, 102, 654, 459, 51, 686, 754, 806, 760, 493, 403, 415, 394, 687, 700, 946, 670, 656, 610, 738, 392, 760, 799, 887, 653, 978, 321, 576, 617, 626, 502, 894, 679, 243, 440, 680, 879, 194, 572, 640, 724, 926, 56, 204, 700, 707, 151, 457, 449, 797, 195, 791, 558, 945, 679, 297, 59, 87, 824, 713, 663, 412, 693, 342, 606, 134, 108, 571, 364, 631, 212, 174, 643, 304, 329, 343, 97, 430, 751, 497, 314, 983, 374, 822, 928, 140, 206, 73, 263, 980, 736, 876, 478, 430, 305, 170, 514, 364, 692, 829, 82, 855, 953, 676, 246, 369, 970, 294, 750, 807, 827, 150, 790, 288, 923, 804, 378, 215, 828, 592, 281, 565, 555, 710, 82, 896, 831, 547, 261, 524, 462, 293, 465, 502, 56, 661, 821, 976, 991, 658, 869, 905, 758, 745, 193, 768, 550, 608, 933, 378, 286, 215, 979, 792, 961, 61, 688, 793, 644, 986, 403, 106, 366, 905, 644, 372, 567, 466, 434, 645, 210, 389, 550, 919, 135, 780, 773, 635, 389, 707, 100, 626, 958, 165, 504, 920, 176, 193, 713, 857, 265, 203, 50, 668, 108, 645, 990, 626, 197, 510, 357, 358, 850, 858, 364, 936, 638 }; /*-------------------------------------------------------------*/ /*--- end randtable.c ---*/ /*-------------------------------------------------------------*/ ================================================ FILE: tests/bzip2/spec.c ================================================ #include #include #include #include #ifdef TIMING_OUTPUT #include #include #endif /* TIMING_OUTPUT */ #include #if !defined(SPEC_CPU_WINDOWS) # include #endif #include "spec.h" #define SPEC_BZIP #define ALREADY_SPEC #define Bool unsigned char /* Prototypes for stuff in bzip2.c */ Bool uncompressStream ( int zStream, int stream ); void compressStream ( int zStream, int stream ); void allocateCompressStructures ( void ); #define DEBUG #ifdef DEBUG int dbglvl=4; #define debug(level,str) { if (level 0) { seedi = test; } else { seedi = test + _M_MODULUS; } return ( (float) seedi / _M_MODULUS); } int spec_init () { int i, j; debug(3,"spec_init\n"); /* Clear the spec_fd structure */ /* Allocate some large chunks of memory, we can tune this later */ for (i = 0; i < MAX_SPEC_FD; i++) { int limit = spec_fd[i].limit; memset(&spec_fd[i], 0, sizeof(*spec_fd)); spec_fd[i].limit = limit; spec_fd[i].buf = (unsigned char *)malloc(limit+FUDGE_BUF); if (spec_fd[i].buf == NULL) { printf ("spec_init: Error mallocing memory!\n"); exit(0); } for (j = 0; j < limit; j+=1024) { spec_fd[i].buf[j] = 0; } } return 0; } int spec_random_load (int fd) { /* Now fill up the first chunk with random data, if this data is truly random then we will not get much of a boost out of it */ #define RANDOM_CHUNK_SIZE (128*1024) #define RANDOM_CHUNKS (32) /* First get some "chunks" of random data, because the gzip algorithms do not look past 32K */ int i, j; char random_text[RANDOM_CHUNKS][RANDOM_CHUNK_SIZE]; debug(4,"Creating Chunks\n"); for (i = 0; i < RANDOM_CHUNKS; i++) { debug1(5,"Creating Chunk %d\n", i); for (j = 0; j < RANDOM_CHUNK_SIZE; j++) { random_text[i][j] = (int)(ran()*256); } } debug(4,"Filling input file\n"); /* Now populate the input "file" with random chunks */ for (i = 0 ; i < spec_fd[fd].limit; i+= RANDOM_CHUNK_SIZE) { memcpy(spec_fd[fd].buf + i, random_text[(int)(ran()*RANDOM_CHUNKS)], RANDOM_CHUNK_SIZE); } /* TODO-REMOVE: Pretend we only did 1M */ spec_fd[fd].len = 1024*1024; return 0; } int spec_load (int num, char *filename, int size) { #define FILE_CHUNK (128*1024) int fd, rc, i; #ifndef O_BINARY #define O_BINARY 0 #endif fd = open(filename, O_RDONLY|O_BINARY); if (fd < 0) { fprintf(stderr, "Can't open file %s: %s\n", filename, strerror(errno)); exit (0); } spec_fd[num].pos = spec_fd[num].len = 0; for (i = 0 ; i < size; i+= rc) { rc = read(fd, spec_fd[num].buf+i, FILE_CHUNK); if (rc == 0) break; if (rc < 0) { fprintf(stderr, "Error reading from %s: %s\n", filename, strerror(errno)); exit (0); } spec_fd[num].len += rc; } close(fd); while (spec_fd[num].len < size) { int tmp = size - spec_fd[num].len; if (tmp > spec_fd[num].len) tmp = spec_fd[num].len; debug1(3,"Duplicating %d bytes\n", tmp); memcpy(spec_fd[num].buf+spec_fd[num].len, spec_fd[num].buf, tmp); spec_fd[num].len += tmp; } return 0; } int spec_read (int fd, unsigned char *buf, int size) { int rc = 0; debug3(4,"spec_read: %d, %p, %d = ", fd, (void *)buf, size); if (fd > MAX_SPEC_FD) { fprintf(stderr, "spec_read: fd=%d, > MAX_SPEC_FD!\n", fd); exit (0); } if (spec_fd[fd].pos >= spec_fd[fd].len) { debug(4,"EOF\n"); return EOF; } if (spec_fd[fd].pos + size >= spec_fd[fd].len) { rc = spec_fd[fd].len - spec_fd[fd].pos; } else { rc = size; } memcpy(buf, &(spec_fd[fd].buf[spec_fd[fd].pos]), rc); spec_fd[fd].pos += rc; debug1(4,"%d\n", rc); return rc; } int spec_fread (unsigned char *buf, int size, int num, int fd) { int rc = 0; debug4(4,"spec_fread: %p, (%d x %d) fd %d =", (void *)buf, size, num, fd); if (fd > MAX_SPEC_FD) { fprintf(stderr, "spec_fread: fd=%d, > MAX_SPEC_FD!\n", fd); exit (0); } if (spec_fd[fd].pos >= spec_fd[fd].len) { debug(4,"EOF\n"); return EOF; } if (spec_fd[fd].pos + (size*num) >= spec_fd[fd].len) { rc = (spec_fd[fd].len - spec_fd[fd].pos) / size; } else { rc = num; } memcpy(buf, &(spec_fd[fd].buf[spec_fd[fd].pos]), rc); spec_fd[fd].pos += rc * size; debug1(4,"%d\n", rc * size); return rc; } int spec_getc (int fd) { int rc = 0; debug1(4,"spec_getc: %d = ", fd); if (fd > MAX_SPEC_FD) { fprintf(stderr, "spec_read: fd=%d, > MAX_SPEC_FD!\n", fd); exit (0); } if (spec_fd[fd].pos >= spec_fd[fd].len) { debug(4,"EOF\n"); return EOF; } rc = spec_fd[fd].buf[spec_fd[fd].pos++]; debug1(4,"%d\n", rc); return rc; } int spec_ungetc (unsigned char ch, int fd) { int rc = 0; debug1(4,"spec_ungetc: %d = ", fd); if (fd > MAX_SPEC_FD) { fprintf(stderr, "spec_read: fd=%d, > MAX_SPEC_FD!\n", fd); exit (0); } if (spec_fd[fd].pos <= 0) { fprintf(stderr, "spec_ungetc: pos %d <= 0\n", spec_fd[fd].pos); exit (0); } if (spec_fd[fd].buf[--spec_fd[fd].pos] != ch) { fprintf(stderr, "spec_ungetc: can't unget something that wasn't what was in the buffer!\n"); exit (0); } debug1(4,"%d\n", rc); return ch; } int spec_rewind(int fd) { spec_fd[fd].pos = 0; return 0; } int spec_reset(int fd) { memset(spec_fd[fd].buf, 0, spec_fd[fd].len); spec_fd[fd].pos = spec_fd[fd].len = 0; return 0; } int spec_write(int fd, unsigned char *buf, int size) { debug3(4,"spec_write: %d, %p, %d = ", fd, (void *)buf, size); if (fd > MAX_SPEC_FD) { fprintf(stderr, "spec_write: fd=%d, > MAX_SPEC_FD!\n", fd); exit (0); } memcpy(&(spec_fd[fd].buf[spec_fd[fd].pos]), buf, size); spec_fd[fd].len += size; spec_fd[fd].pos += size; debug1(4,"%d\n", size); return size; } int spec_fwrite(unsigned char *buf, int size, int num, int fd) { debug4(4,"spec_fwrite: %p, %d, %d, %d = ", (void *)buf, size, num, fd); if (fd > MAX_SPEC_FD) { fprintf(stderr, "spec_fwrite: fd=%d, > MAX_SPEC_FD!\n", fd); exit (0); } memcpy(&(spec_fd[fd].buf[spec_fd[fd].pos]), buf, size*num); spec_fd[fd].len += size*num; spec_fd[fd].pos += size*num; debug1(4,"%d\n", num); return num; } int spec_putc(unsigned char ch, int fd) { debug2(4,"spec_putc: %d, %d = ", ch, fd); if (fd > MAX_SPEC_FD) { fprintf(stderr, "spec_write: fd=%d, > MAX_SPEC_FD!\n", fd); exit (0); } spec_fd[fd].buf[spec_fd[fd].pos++] = ch; spec_fd[fd].len ++; return ch; } #define MB (1024*1024) #ifdef SPEC_CPU int main (int argc, char *argv[]) { int i, level; int input_size=64, compressed_size; char *input_name="input.combined"; unsigned char *validate_array; seedi = 10; if (argc > 1) input_name=argv[1]; if (argc > 2) input_size=atoi(argv[2]); if (argc > 3) compressed_size=atoi(argv[3]); else compressed_size=input_size; spec_fd[0].limit=input_size*MB; spec_fd[1].limit=compressed_size*MB; spec_fd[2].limit=input_size*MB; spec_init(); debug_time(); debug(2, "Loading Input Data\n"); spec_load(0, input_name, input_size*MB); debug1(3, "Input data %d bytes in length\n", spec_fd[0].len); validate_array = (unsigned char *)malloc(input_size*MB/1024); if (validate_array == NULL) { printf ("main: Error mallocing memory!\n"); exit (0); } /* Save off one byte every ~1k for validation */ for (i = 0; i*VALIDATE_SKIP < input_size*MB; i++) { validate_array[i] = spec_fd[0].buf[i*VALIDATE_SKIP]; } #ifdef DEBUG_DUMP fd = open ("out.uncompressed", O_RDWR|O_CREAT, 0644); write(fd, spec_fd[0].buf, spec_fd[0].len); close(fd); #endif spec_initbufs(); for (level=5; level <= 9; level += 2) { debug_time(); debug1(2, "Compressing Input Data, level %d\n", level); spec_compress(0,1, level); debug_time(); debug1(3, "Compressed data %d bytes in length\n", spec_fd[1].len); #ifdef DEBUG_DUMP { char buf[256]; sprintf(buf, "out.compress.%d", level); fd = open (buf, O_RDWR|O_CREAT, 0644); write(fd, spec_fd[1].buf, spec_fd[1].len); close(fd); } #endif spec_reset(0); spec_rewind(1); debug_time(); debug(2, "Uncompressing Data\n"); spec_uncompress(1,0, level); debug_time(); debug1(3, "Uncompressed data %d bytes in length\n", spec_fd[0].len); #ifdef DEBUG_DUMP { char buf[256]; sprintf(buf, "out.uncompress.%d", level); fd = open (buf, O_RDWR|O_CREAT, 0644); write(fd, spec_fd[0].buf, spec_fd[0].len); close(fd); } #endif for (i = 0; i*VALIDATE_SKIP < input_size*MB; i++) { if (validate_array[i] != spec_fd[0].buf[i*VALIDATE_SKIP]) { printf ("Tested %dMB buffer: Miscompared!!\n", input_size); exit (0); } } debug_time(); debug(3, "Uncompressed data compared correctly\n"); spec_reset(1); spec_rewind(0); } printf ("Tested %dMB buffer: OK!\n", input_size); return 0; } #if defined(SPEC_BZIP) extern unsigned char smallMode; extern int verbosity; extern int bsStream; extern int workFactor, blockSize100k; void spec_initbufs() { smallMode = 0; verbosity = 0; blockSize100k = 9; /* bsStream = 0; */ workFactor = 30; /* allocateCompressStructures(); */ } void spec_compress(int in, int out, int lev) { blockSize100k = lev; compressStream ( in, out ); } void spec_uncompress(int in, int out, int lev) { blockSize100k = 0; uncompressStream( in, out ); } #else #error You must have SPEC_BZIP defined! #endif int debug_time () { #ifdef TIMING_OUTPUT static int last = 0; struct timeval tv; gettimeofday(&tv,NULL); debug2(2, "Time: %10d, %10d\n", tv.tv_sec, tv.tv_sec-last); last = tv.tv_sec; #endif return 0; } #endif ================================================ FILE: tests/bzip2/spec.h ================================================ /* Prototypes for stuff in spec.c */ void spec_initbufs(); void spec_compress(int in, int out, int level); void spec_uncompress(int in, int out, int level); int spec_init (); int spec_random_load (int fd); int spec_load (int num, char *filename, int size); int spec_read (int fd, unsigned char *buf, int size); int spec_reset (int fd); int spec_write (int fd, unsigned char *buf, int size); int spec_getc (int fd); int spec_ungetc (unsigned char ch, int fd); int spec_fread (unsigned char *buf, int size, int num, int fd); int spec_fwrite (unsigned char *buf, int size, int num, int fd); int spec_rewind (int fd); int spec_putc (unsigned char ch, int fd); int debug_time(); ================================================ FILE: tests/libquantum/Makefile ================================================ ROOT = ../.. TARGETS = libquantum build:: libquantum include $(ROOT)/common.mk CC = $(ROOT)/szc $(SZCFLAGS) -Rcode -Rheap -Rstack CXX = $(CC) CFLAGS = -DSPEC_CPU -DSPEC_CPU_MACOSX CXXFLAGS = $(OBJS):: $(ROOT)/szc $(ROOT)/LLVMStabilizer.$(SHLIB_SUFFIX) test:: libquantum @echo $(INDENT)[test] Running 'libquantum' @echo @$(LD_PATH_VAR)=$(ROOT) ./libquantum 128 @echo ================================================ FILE: tests/libquantum/classic.c ================================================ /* classic.c: Classic operations used in libquantum Copyright 2003, 2004 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #if !defined(SPEC_CPU_WINDOWS_ICL) #include #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #if defined(SPEC_CPU_NO_FABSF) #define fabsf(num) ((float) fabs((double) (num))) #endif /* Calculate A^B with A and B as integers */ int quantum_ipow(int a, int b) { int i; int r=1; for(i=0; i 1< 1.0 / (2 * (1 << width))); #else } while(fabsf(((float) num / den) - f) > 1.0 / (2 * (1 << width))); #endif /* SPEC_CPU */ *a = num; *b = den; return; } /* Calculates the number of qubits required to store N */ int quantum_getwidth(int n) { int i; for(i=1; 1< #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #include "lq_complex.h" #include "config.h" /* Return the complex conjugate of a complex number */ COMPLEX_FLOAT quantum_conj(COMPLEX_FLOAT a) { float r, i; r = quantum_real(a); i = quantum_imag(a); return r - IMAGINARY * i; } /* Calculate the square of a complex number (i.e. the probability) */ float quantum_prob(COMPLEX_FLOAT a) { return quantum_prob_inline(a); } /* Calculate e^(i * phi) */ COMPLEX_FLOAT quantum_cexp(float phi) { return cos(phi) + IMAGINARY * sin(phi); } ================================================ FILE: tests/libquantum/config.h ================================================ /* config.h.in. Generated from configure.in by autoheader. */ #if defined(SPEC_CPU) #define PACKAGE_BUGREPORT "libquantum@enyo.de" #define PACKAGE_NAME "libquantum" #define PACKAGE_STRING "libquantum 0.2.4" #define PACKAGE_TARNAME "libquantum" #define PACKAGE_VERSION "0.2.4" #define STDC_HEADERS 1 #define COMPLEX_FLOAT float _Complex #if defined(SPEC_CPU_HPUX) && !defined(inline) # define inline __inline #endif #if defined(SPEC_CPU_NEED_COMPLEX_I) # define _Complex_I 1.0fi #endif #if defined(SPEC_CPU_MACOSX) || defined(SPEC_CPU_AIX) \ || defined(SPEC_CPU_IRIX) || defined(SPEC_CPU_HPUX) \ || defined(SPEC_CPU_SOLARIS) || defined(SPEC_CPU_LINUX) # if !defined(SPEC_CPU_NO_COMPLEX_H) # include # endif #define HAVE_DLFCN_H 1 #define HAVE_FCNTL_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_LIBM 1 #define HAVE_MEMORY_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #if defined(SPEC_CPU_ICL) #define IMAGINARY __I__ #else #define IMAGINARY _Complex_I #endif /* SPEC_CPU_ICL */ #define MAX_UNSIGNED unsigned long long #endif /* SPEC_CPU_MACOSX || AIX || IRIX || HPUX || SOLARIS || LINUX */ #if defined(SPEC_CPU_WINDOWS) # if defined(SPEC_CPU_COMPLEX_I) # define IMAGINARY _Complex_I # else # define IMAGINARY __I__ # endif /* SPEC_CPU_COMPLEX_I */ #define MAX_UNSIGNED unsigned __int64 #endif /* SPEC_CPU_WINDOWS */ #else /* SPEC_CPU */ /* Complex data type */ #undef COMPLEX_FLOAT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Imaginary unit */ #undef IMAGINARY /* Integer type for quantum registers */ #undef MAX_UNSIGNED /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define as `__inline' if that's what the C compiler calls it, or to nothing if it is not supported. */ #undef inline #endif /* SPEC_CPU */ ================================================ FILE: tests/libquantum/decoherence.c ================================================ /* decoherence.c: Simulation of decoherence effects Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #if !defined(SPEC_CPU_WINDOWS_ICL) #include #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #include #include #include "measure.h" #include "qureg.h" #include "gates.h" #include "lq_complex.h" /* Status of the decoherence simulation. Non-zero means enabled and decoherence effects will be simulated. */ int status = 0; /* Decoherence parameter. The higher the value, the greater the decoherence impact. */ float lambda = 0; float quantum_get_decoherence() { return lambda; } /* Initialize the decoherence simulation and set the decoherence parameter. */ void quantum_set_decoherence(float l) { if(l) { status = 1; lambda = l; } else status = 0; } /* Perform the actual decoherence of a quantum register for a single step of time. This is done by applying a phase shift by a normal distributed angle with the variance LAMBDA. */ void quantum_decohere(quantum_reg *reg) { float u, v, s, x; float *nrands; float angle; int i, j; /* Increase the gate counter */ quantum_gate_counter(1); if(status) { nrands = calloc(reg->width, sizeof(float)); if(!nrands) { printf("Not enough memory for %i-sized array of float!\n", reg->width); exit(1); } quantum_memman(reg->width * sizeof(float)); for(i=0; iwidth; i++) { /* Generate normal distributed random numbers */ do { u = 2 * quantum_frand() - 1; v = 2 * quantum_frand() - 1; s = u * u + v * v; } while (s >= 1); x = u * sqrt(-2 * log(s) / s); x *= sqrt(2 * lambda); nrands[i] = x/2; } /* Apply the phase shifts for decoherence simulation */ for(i=0; isize; i++) { angle = 0; for(j=0; jwidth; j++) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << j)) angle += nrands[j]; else angle -= nrands[j]; } reg->node[i].amplitude *= quantum_cexp(angle); } free(nrands); quantum_memman(-reg->width * sizeof(float)); } } ================================================ FILE: tests/libquantum/decoherence.h ================================================ /* decoherence.h: Declarations for decoherence.c Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __DECOHERENCE_H #define __DECOHERENCE_H extern float quantum_get_decoherence(); extern void quantum_set_decoherence(float lambda); extern void quantum_decohere(quantum_reg *reg); #endif ================================================ FILE: tests/libquantum/defs.h ================================================ /* defs.h: Global definitions Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __DEFS_H #define __DEFS_H #define pi 3.141592654 #define byte unsigned char #define num_regs 4 #endif ================================================ FILE: tests/libquantum/expn.c ================================================ /* expn.c: x^a mod n Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #if !defined(SPEC_CPU_WINDOWS_ICL) #include #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #include "defs.h" #include "gates.h" #include "omuln.h" #include "qureg.h" void quantum_exp_mod_n(int N, int x, int width_input, int width, quantum_reg *reg) { int i, j, f; quantum_sigma_x(2*width+2, reg); for (i=1; i<=width_input;i++){ f=x%N; //compute for (j=1;j #include #if !defined(SPEC_CPU_WINDOWS_ICL) #include #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #include #include "matrix.h" #include "defs.h" #include "lq_complex.h" #include "qureg.h" #include "decoherence.h" #include "qec.h" #include "objcode.h" #if defined(SPEC_CPU) #define EPSILON 1.0e-9 #endif /* SPEC_CPU */ /* Apply a controlled-not gate */ void quantum_cnot(int control, int target, quantum_reg *reg) { int i; int qec; quantum_qec_get_status(&qec, NULL); if(qec) quantum_cnot_ft(control, target, reg); else { if(quantum_objcode_put(CNOT, control, target)) return; for(i=0; isize; i++) { /* Flip the target bit of a basis state if the control bit is set */ if((reg->node[i].state & ((MAX_UNSIGNED) 1 << control))) reg->node[i].state ^= ((MAX_UNSIGNED) 1 << target); } quantum_decohere(reg); } } /* Apply a toffoli (or controlled-controlled-not) gate */ void quantum_toffoli(int control1, int control2, int target, quantum_reg *reg) { int i; int qec; quantum_qec_get_status(&qec, NULL); if(qec) quantum_toffoli_ft(control1, control2, target, reg); else { if(quantum_objcode_put(TOFFOLI, control1, control2, target)) return; for(i=0; isize; i++) { /* Flip the target bit of a basis state if both control bits are set */ if(reg->node[i].state & ((MAX_UNSIGNED) 1 << control1)) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << control2)) { reg->node[i].state ^= ((MAX_UNSIGNED) 1 << target); } } } quantum_decohere(reg); } } /* Apply an unbounded toffoli gate. This gate is not considered elementary and is not available on all physical realizations of a quantum computer. Be sure to pass the function the correct number of controlling qubits. The target is given in the last argument. */ void quantum_unbounded_toffoli(int controlling, quantum_reg *reg, ...) { va_list bits; int target; int *controls; int i, j; controls = malloc(controlling * sizeof(int)); if(!controls) { printf("Error allocating %i-element int array!\n", controlling); exit(1); } quantum_memman(controlling * sizeof(int)); va_start(bits, reg); for(i=0; isize; i++) { for(j=0; (j < controlling) && (reg->node[i].state & (MAX_UNSIGNED) 1 << controls[j]); j++); if(j == controlling) /* all control bits are set */ reg->node[i].state ^= ((MAX_UNSIGNED) 1 << target); } free(controls); quantum_memman(-controlling * sizeof(int)); quantum_decohere(reg); } /* Apply a sigma_x (or not) gate */ void quantum_sigma_x(int target, quantum_reg *reg) { int i; int qec; quantum_qec_get_status(&qec, NULL); if(qec) quantum_sigma_x_ft(target, reg); else { if(quantum_objcode_put(SIGMA_X, target)) return; for(i=0; isize; i++) { /* Flip the target bit of each basis state */ reg->node[i].state ^= ((MAX_UNSIGNED) 1 << target); } quantum_decohere(reg); } } /* Apply a sigma_y gate */ void quantum_sigma_y(int target, quantum_reg *reg) { int i; if(quantum_objcode_put(SIGMA_Y, target)) return; for(i=0; isize;i++) { /* Flip the target bit of each basis state and multiply with +/- i */ reg->node[i].state ^= ((MAX_UNSIGNED) 1 << target); if(reg->node[i].state & ((MAX_UNSIGNED) 1 << target)) reg->node[i].amplitude *= IMAGINARY; else reg->node[i].amplitude *= -IMAGINARY; } quantum_decohere(reg); } /* Apply a sigma_y gate */ void quantum_sigma_z(int target, quantum_reg *reg) { int i; if(quantum_objcode_put(SIGMA_Z, target)) return; for(i=0; isize; i++) { /* Multiply with -1 if the target bit is set */ if(reg->node[i].state & ((MAX_UNSIGNED) 1 << target)) reg->node[i].amplitude *= -1; } quantum_decohere(reg); } /* Swap the first WIDTH bits of the quantum register. This is done classically by renaming the bits, unless QEC is enabled. */ void quantum_swaptheleads(int width, quantum_reg *reg) { int i, j; int pat1, pat2; int qec; MAX_UNSIGNED l; quantum_qec_get_status(&qec, NULL); if(qec) { for(i=0; isize; i++) { if(quantum_objcode_put(SWAPLEADS, width)) return; /* calculate left bit pattern */ pat1 = reg->node[i].state % ((MAX_UNSIGNED) 1 << width); /*calculate right but pattern */ pat2 = 0; for(j=0; jnode[i].state & ((MAX_UNSIGNED) 1 << (width + j)); /* construct the new basis state */ l = reg->node[i].state - (pat1 + pat2); l += (pat1 << width); l += (pat2 >> width); reg->node[i].state = l; } } } /* Swap WIDTH bits starting at WIDTH and 2*WIDTH+2 controlled by CONTROL */ void quantum_swaptheleads_omuln_controlled(int control, int width, quantum_reg *reg) { int i; for(i=0; ihashw); i++) reg->hash[i] = 0; for(i=0; isize; i++) quantum_add_hash(reg->node[i].state, i, reg); /* calculate the number of basis states to be added */ for(i=0; isize; i++) { j = quantum_get_state(reg->node[i].state ^ ((MAX_UNSIGNED) 1 << target), *reg); if(j == -1) { #if !defined(SPEC_CPU) if((m.t[1] != 0) && (reg->node[i].state & ((MAX_UNSIGNED) 1 << target))) addsize++; if((m.t[2] != 0) && !(reg->node[i].state & ((MAX_UNSIGNED) 1 << target))) addsize++; #else if((quantum_prob_inline(m.t[1]) > EPSILON) && (reg->node[i].state & ((MAX_UNSIGNED) 1 << target))) addsize++; if((quantum_prob_inline(m.t[2]) > EPSILON) && !(reg->node[i].state & ((MAX_UNSIGNED) 1 << target))) addsize++; #endif /* SPEC_CPU */ } } /* allocate memory for the new basis states */ reg->node = realloc(reg->node, (reg->size + addsize) * sizeof(quantum_reg_node)); if(!reg->node) { printf("Not enough memory for %i-sized qubit!\n", reg->size + addsize); exit(1); } quantum_memman(addsize*sizeof(quantum_reg_node)); for(i=0; inode[i+reg->size].state = 0; reg->node[i+reg->size].amplitude = 0; } done = calloc(reg->size + addsize, sizeof(char)); if(!done) { printf("Not enough memory for %i bytes array!\n", (reg->size + addsize) * sizeof(char)); exit(1); } quantum_memman(reg->size + addsize * sizeof(char)); k = reg->size; limit = (1.0 / ((MAX_UNSIGNED) 1 << reg->width)) / 1000000; /* perform the actual matrix multiplication */ for(i=0; isize; i++) { if(!done[i]) { /* determine if the target of the basis state is set */ iset = reg->node[i].state & ((MAX_UNSIGNED) 1 << target); tnot = 0; j = quantum_get_state(reg->node[i].state ^ ((MAX_UNSIGNED) 1<node[i].amplitude; if(j >= 0) tnot = reg->node[j].amplitude; if(iset) reg->node[i].amplitude = m.t[2] * tnot + m.t[3] * t; else reg->node[i].amplitude = m.t[0] * t + m.t[1] * tnot; if(j >= 0) { if(iset) reg->node[j].amplitude = m.t[0] * tnot + m.t[1] * t; else reg->node[j].amplitude = m.t[2] * t + m.t[3] * tnot; } else /* new basis state will be created */ { #if !defined(SPEC_CPU) if((m.t[1] == 0) && (iset)) break; if((m.t[2] == 0) && !(iset)) break; #else if((quantum_prob_inline(m.t[1]) < EPSILON) && (iset)) break; if((quantum_prob_inline(m.t[2]) < EPSILON) && !(iset)) break; #endif /* SPEC_CPU */ reg->node[k].state = reg->node[i].state ^ ((MAX_UNSIGNED) 1 << target); if(iset) reg->node[k].amplitude = m.t[1] * t; else reg->node[k].amplitude = m.t[2] * t; k++; } if(j >= 0) done[j] = 1; } } reg->size += addsize; free(done); quantum_memman(-reg->size * sizeof(char)); /* remove basis states with extremely small amplitude */ for(i=0, j=0; isize; i++) { if(quantum_prob_inline(reg->node[i].amplitude) < limit) { j++; decsize++; } else if(j) { reg->node[i-j].state = reg->node[i].state; reg->node[i-j].amplitude = reg->node[i].amplitude; } } if(decsize) { reg->size -= decsize; reg->node = realloc(reg->node, reg->size * sizeof(quantum_reg_node)); if(!reg->node) { printf("Not enough memory for %i-sized qubit!\n", reg->size + addsize); exit(1); } quantum_memman(-decsize * sizeof(quantum_reg_node)); } quantum_decohere(reg); } /* Apply the 4x4 matrix M to the target bit, controlled by CONTROL. M should be unitary. */ /* WARNING: THIS FUNCTION IS INCOMPLETE AND DOES NOT WORK AS INTENDED! */ void quantum_gate2(int control, int target, quantum_matrix m, quantum_reg *reg) { int i, j, k, iset; int addsize=0, decsize=0; COMPLEX_FLOAT t, tnot=0; float limit; char *done; if((m.cols != 4) || (m.rows != 4)) { printf("Matrix is not a 4x4 matrix!\n"); exit(1); } /* Build hash table */ for(i=0; i<(1 << reg->hashw); i++) reg->hash[i] = 0; for(i=0; isize; i++) quantum_add_hash(reg->node[i].state, i, reg); /* calculate the number of basis states to be added */ for(i=0; isize; i++) { j = quantum_get_state(reg->node[i].state ^ ((MAX_UNSIGNED) 1 << target), *reg); if(j == -1) { if((m.t[1] != 0) && (reg->node[i].state & ((MAX_UNSIGNED) 1 << target))) addsize++; if((m.t[2] != 0) && !(reg->node[i].state & ((MAX_UNSIGNED) 1 << target))) addsize++; } } /* allocate memory for the new basis states */ reg->node = realloc(reg->node, (reg->size + addsize) * sizeof(quantum_reg_node)); if(!reg->node) { printf("Not enough memory for %i-sized qubit!\n", reg->size + addsize); exit(1); } quantum_memman(addsize*sizeof(quantum_reg_node)); for(i=0; inode[i+reg->size].state = 0; reg->node[i+reg->size].amplitude = 0; } done = calloc(reg->size + addsize, sizeof(char)); if(!done) { printf("Not enough memory for %i bytes array!\n", (reg->size + addsize) * sizeof(char)); exit(1); } quantum_memman(reg->size + addsize * sizeof(char)); k = reg->size; limit = (1.0 / ((MAX_UNSIGNED) 1 << reg->width)) / 1000000; /* perform the actual matrix multiplication */ for(i=0; isize; i++) { if(!done[i]) { /* determine if the target of the basis state is set */ iset = reg->node[i].state & ((MAX_UNSIGNED) 1 << target); tnot = 0; j = quantum_get_state(reg->node[i].state ^ ((MAX_UNSIGNED) 1<node[i].amplitude; if(j >= 0) tnot = reg->node[j].amplitude; if(iset) reg->node[i].amplitude = m.t[2] * tnot + m.t[3] * t; else reg->node[i].amplitude = m.t[0] * t + m.t[1] * tnot; if(j >= 0) { if(iset) reg->node[j].amplitude = m.t[0] * tnot + m.t[1] * t; else reg->node[j].amplitude = m.t[2] * t + m.t[3] * tnot; } else /* new basis state will be created */ { if((m.t[1] == 0) && (iset)) break; if((m.t[2] == 0) && !(iset)) break; reg->node[k].state = reg->node[i].state ^ ((MAX_UNSIGNED) 1 << target); if(iset) reg->node[k].amplitude = m.t[1] * t; else reg->node[k].amplitude = m.t[2] * t; k++; } if(j >= 0) done[j] = 1; } } reg->size += addsize; free(done); quantum_memman(-reg->size * sizeof(char)); /* remove basis states with extremely small amplitude */ for(i=0, j=0; isize; i++) { if(quantum_prob_inline(reg->node[i].amplitude) < limit) { j++; decsize++; } else if(j) { reg->node[i-j].state = reg->node[i].state; reg->node[i-j].amplitude = reg->node[i].amplitude; } } if(decsize) { reg->size -= decsize; reg->node = realloc(reg->node, reg->size * sizeof(quantum_reg_node)); if(!reg->node) { printf("Not enough memory for %i-sized qubit!\n", reg->size + addsize); exit(1); } quantum_memman(-decsize * sizeof(quantum_reg_node)); } quantum_decohere(reg); } /* Apply a hadamard gate */ void quantum_hadamard(int target, quantum_reg *reg) { quantum_matrix m; if(quantum_objcode_put(HADAMARD, target)) return; m = quantum_new_matrix(2, 2); m.t[0] = sqrt(1.0/2); m.t[1] = sqrt(1.0/2); m.t[2] = sqrt(1.0/2); m.t[3] = -sqrt(1.0/2); quantum_gate1(target, m, reg); quantum_delete_matrix(&m); } /* Apply a walsh-hadamard transform */ void quantum_walsh(int width, quantum_reg *reg) { int i; for(i=0; isize; i++) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << target)) reg->node[i].amplitude *= z; else reg->node[i].amplitude /= z; } quantum_decohere(reg); } /* Scale the phase of qubit */ void quantum_phase_scale(int target, float gamma, quantum_reg *reg) { int i; COMPLEX_FLOAT z; if(quantum_objcode_put(PHASE_SCALE, target, (double) gamma)) return; z = quantum_cexp(gamma); for(i=0; isize; i++) { reg->node[i].amplitude *= z; } quantum_decohere(reg); } /* Apply a phase kick by the angle GAMMA */ void quantum_phase_kick(int target, float gamma, quantum_reg *reg) { int i; COMPLEX_FLOAT z; if(quantum_objcode_put(PHASE_KICK, target, (double) gamma)) return; z = quantum_cexp(gamma); for(i=0; isize; i++) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << target)) reg->node[i].amplitude *= z; } quantum_decohere(reg); } /* Apply a conditional phase shift by PI / 2^(CONTROL - TARGET) */ void quantum_cond_phase(int control, int target, quantum_reg *reg) { int i; COMPLEX_FLOAT z; if(quantum_objcode_put(COND_PHASE, control, target)) return; z = quantum_cexp(pi / ((MAX_UNSIGNED) 1 << (control - target))); for(i=0; isize; i++) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << control)) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << target)) reg->node[i].amplitude *= z; } } quantum_decohere(reg); } void quantum_cond_phase_inv(int control, int target, quantum_reg *reg) { int i; COMPLEX_FLOAT z; z = quantum_cexp(-pi / ((MAX_UNSIGNED) 1 << (control - target))); for(i=0; isize; i++) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << control)) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << target)) reg->node[i].amplitude *= z; } } quantum_decohere(reg); } void quantum_cond_phase_kick(int control, int target, float gamma, quantum_reg *reg) { int i; COMPLEX_FLOAT z; if(quantum_objcode_put(COND_PHASE, control, target, (double) gamma)) return; z = quantum_cexp(gamma); for(i=0; isize; i++) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << control)) { if(reg->node[i].state & ((MAX_UNSIGNED) 1 << target)) reg->node[i].amplitude *= z; } } quantum_decohere(reg); } /* Increase the gate counter by INC steps or reset it if INC < 0. The current value of the counter is returned. */ int quantum_gate_counter(int inc) { static int counter = 0; if(inc > 0) counter += inc; else if(inc < 0) counter = 0; return counter; } ================================================ FILE: tests/libquantum/gates.h ================================================ /* gates.h: Declarations for gates.c Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __GATES_H #define __GATES_H #include "matrix.h" #include "qureg.h" extern void quantum_cnot(int control, int target, quantum_reg *reg); extern void quantum_toffoli(int control1, int control2, int target, quantum_reg *reg); extern void quantum_unbounded_toffoli(int controlling, quantum_reg *reg, ...); extern void quantum_sigma_x(int target, quantum_reg *reg); extern void quantum_sigma_y(int target, quantum_reg *reg); extern void quantum_sigma_z(int target, quantum_reg *reg); extern void quantum_swaptheleads(int width, quantum_reg *reg); extern void quantum_swaptheleads_omuln_controlled(int control, int width, quantum_reg *); extern void quantum_gate1(int target, quantum_matrix m, quantum_reg *reg); extern void quantum_r_x(int target, float gamma, quantum_reg *reg); extern void quantum_r_y(int target, float gamma, quantum_reg *reg); extern void quantum_r_z(int target, float gamma, quantum_reg *reg); extern void quantum_hadamard(int target, quantum_reg *reg); extern void quantum_walsh(int width, quantum_reg *reg); extern void quantum_phase_scale(int target, float gamma, quantum_reg *reg); extern void quantum_phase_kick(int target, float gamma, quantum_reg *reg); extern void quantum_cond_phase(int control, int target, quantum_reg *reg); extern void quantum_cond_phase_inv(int control, int target, quantum_reg *reg); extern void quantum_cond_phase_kick(int control, int target, float gamma, quantum_reg *reg); extern int quantum_gate_counter(int inc); #endif ================================================ FILE: tests/libquantum/lq_complex.h ================================================ /* complex.h: Declarations for complex.c Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __COMPLEX_H #define __COMPLEX_H #include "config.h" extern COMPLEX_FLOAT quantum_conj(COMPLEX_FLOAT a); extern float quantum_prob (COMPLEX_FLOAT a); extern COMPLEX_FLOAT quantum_cexp(float phi); /* Return the real part of a complex number */ static inline float quantum_real(COMPLEX_FLOAT a) { float *p = (float *) &a; return p[0]; } /* Return the imaginary part of a complex number */ static inline float quantum_imag(COMPLEX_FLOAT a) { float *p = (float *) &a; return p[1]; } /* Calculate the square of a complex number (i.e. the probability) */ static inline float quantum_prob_inline(COMPLEX_FLOAT a) { float r, i; r = quantum_real(a); i = quantum_imag(a); return r * r + i * i; } #endif ================================================ FILE: tests/libquantum/matrix.c ================================================ /* matrix.c: Matrix operations Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "matrix.h" #include "config.h" #include "lq_complex.h" /* Statistics of the memory consumption */ unsigned long quantum_memman(long change) { static long mem = 0, max = 0; mem += change; if(mem > max) max = mem; return mem; } /* Create a new COLS x ROWS matrix */ quantum_matrix quantum_new_matrix(int cols, int rows) { quantum_matrix m; m.rows = rows; m.cols = cols; m.t = calloc(cols * rows, sizeof(COMPLEX_FLOAT)); #if (DEBUG_MEM) printf("allocating %i bytes of memory for %ix%i matrix at 0x%X\n", sizeof(COMPLEX_FLOAT) * cols * rows, cols, rows, (int) m.t); #endif if(!m.t) { printf("Not enogh memory for %ix%i-Matrix!",rows,cols); exit(1); } quantum_memman(sizeof(COMPLEX_FLOAT) * cols * rows); return m; } /* Delete a matrix */ void quantum_delete_matrix(quantum_matrix *m) { #if (DEBUG_MEM) printf("freeing %i bytes of memory for %ix%i matrix at 0x%X\n", sizeof(COMPLEX_FLOAT) * m->cols * m->rows, m->cols, m->rows, (int) m->t); #endif free(m->t); quantum_memman(-sizeof(COMPLEX_FLOAT) * m->cols * m->rows); m->t=0; } /* Print the contents of a matrix to stdout */ void quantum_print_matrix(quantum_matrix m) { int i, j, z=0; /* int l; */ while ((1 << z++) < m.rows); z--; for(i=0; i=0; l--) { if ((l % 4 == 3)) printf(" "); printf("%i", (i >> l) & 1); } */ for(j=0; j #include #include #include #if !defined(SPEC_CPU_WINDOWS_ICL) #include #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #if defined(HAVE_UNISTD_H) #include #endif /* HAVE_UNISTD_H */ #include #include "qureg.h" #include "lq_complex.h" #include "config.h" #include "objcode.h" #if defined(SPEC_CPU) #include "specrand.h" #endif /* SPEC_CPU */ /* Generate a uniformly distributed random number between 0 and 1 */ double quantum_frand() { #if defined(SPEC_CPU) return (double) spec_rand() ; #else return (double) rand() / RAND_MAX; #endif /* SPEC_CPU */ } /* Measure the contents of a quantum register */ MAX_UNSIGNED quantum_measure(quantum_reg reg) { double r; int i; if(quantum_objcode_put(MEASURE)) return 0; /* Get a random number between 0 and 1 */ r = quantum_frand(); for (i=0; i= r) return reg.node[i].state; } /* The sum of all probabilities is less than 1. Usually, the cause for this is the application of a non-normalized matrix, but there is a slim chance that rounding errors may lead to this as well. */ return -1; } /* Measure a single bit of a quantum register. The bit measured is indicated by its position POS, starting with 0 as the least significant bit. The new state of the quantum register depends on the result of the measurement. */ int quantum_bmeasure(int pos, quantum_reg *reg) { int i; int result=0; double pa=0, r; MAX_UNSIGNED pos2; quantum_reg out; if(quantum_objcode_put(BMEASURE, pos)) return 0; pos2 = (MAX_UNSIGNED) 1 << pos; /* Sum up the probability for 0 being the result */ for(i=0; isize; i++) { if(!(reg->node[i].state & pos2)) pa += quantum_prob_inline(reg->node[i].amplitude); } /* Compare the probability for 0 with a random number and determine the result of the measurement */ r = quantum_frand(); if (r > pa) result = 1; out = quantum_state_collapse(pos, result, *reg); quantum_delete_qureg_hashpreserve(reg); *reg = out; return result; } /* Measure a single bit, but do not remove it from the quantum register */ int quantum_bmeasure_bitpreserve(int pos, quantum_reg *reg) { int i, j; int size=0, result=0; double d=0, pa=0, r; MAX_UNSIGNED pos2; quantum_reg out; if(quantum_objcode_put(BMEASURE_P, pos)) return 0; pos2 = (MAX_UNSIGNED) 1 << pos; /* Sum up the probability for 0 being the result */ for(i=0; isize; i++) { if(!(reg->node[i].state & pos2)) pa += quantum_prob_inline(reg->node[i].amplitude); } /* Compare the probability for 0 with a random number and determine the result of the measurement */ r = quantum_frand(); if (r > pa) result = 1; /* Eradicate all amplitudes of base states which have been ruled out by the measurement and get the absolute of the new register */ for(i=0;isize;i++) { if(reg->node[i].state & pos2) { if(!result) reg->node[i].amplitude = 0; else { d += quantum_prob_inline(reg->node[i].amplitude); size++; } } else { if(result) reg->node[i].amplitude = 0; else { d += quantum_prob_inline(reg->node[i].amplitude); size++; } } } /* Build the new quantum register */ out.size = size; out.node = calloc(size, sizeof(quantum_reg_node)); if(!out.node) { printf("Not enough memory for %i-sized qubit!\n", size); exit(1); } quantum_memman(size * sizeof(quantum_reg_node)); out.hashw = reg->hashw; out.hash = reg->hash; out.width = reg->width; /* Determine the numbers of the new base states and norm the quantum register */ for(i=0, j=0; isize; i++) { if(reg->node[i].amplitude) { out.node[j].state = reg->node[i].state; out.node[j].amplitude = reg->node[i].amplitude * 1 / (float) sqrt(d); j++; } } quantum_delete_qureg_hashpreserve(reg); *reg = out; return result; } ================================================ FILE: tests/libquantum/measure.h ================================================ /* measure.h: Declarations for measure.c Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __MEASURE_H #define __MEASURE_H #include "matrix.h" #include "qureg.h" #include "config.h" extern double quantum_frand(); extern MAX_UNSIGNED quantum_measure(quantum_reg reg); extern int quantum_bmeasure(int pos, quantum_reg *reg); extern int quantum_bmeasure_bitpreserve(int pos, quantum_reg *reg); #endif ================================================ FILE: tests/libquantum/oaddn.c ================================================ /* oaddn.c: Addition modulo an integer N Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #if !defined(SPEC_CPU_WINDOWS_ICL) #include #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #include "matrix.h" #include "measure.h" #include "defs.h" #include "gates.h" #include "qureg.h" #include "config.h" /* if bit "compare" - the global enable bit - is set, test_sums checks, if the sum of the c-number and the q-number in register add_sum is greater than n and sets the next lower bit to "compare" */ void test_sum(int compare, int width, quantum_reg *reg) { int i; if (compare & ((MAX_UNSIGNED) 1 << (width - 1))) { quantum_cnot(2*width-1, width-1, reg); quantum_sigma_x(2*width-1, reg); quantum_cnot(2*width-1, 0, reg); } else { quantum_sigma_x(2*width-1, reg); quantum_cnot(2*width-1,width-1, reg); } for (i = (width-2);i>0;i--) { if (compare & (1<=0; i--){ if((1< #include #include #include #include "objcode.h" #include "config.h" #include "matrix.h" #include "qureg.h" #include "gates.h" #include "measure.h" /* status of the objcode functionality (0 = disabled) */ int opstatus = 0; /* Generated OBJCODE data */ unsigned char *objcode = 0; /* Current POSITION of the last instruction in the OBJCODE array */ unsigned long position = 0; /* Number of ALLOCATED pages */ unsigned long allocated = 0; /* file to write the object code to, if not given */ char *globalfile; /* Convert a big integer to a byte array */ void quantum_mu2char(MAX_UNSIGNED mu, unsigned char *buf) { int i, size; size = sizeof(MAX_UNSIGNED); for(i=0; i=0 ; i--) mu += buf[i] * ((MAX_UNSIGNED) 1 << (8 * (size - i - 1))); return mu; } int quantum_char2int(unsigned char *buf) { int i, size; int j = 0; size = sizeof(int); for(i=size-1; i>=0 ; i--) j += buf[i] * (1 << (8 * (size - i - 1))); return j; } double quantum_char2double(unsigned char *buf) { double *d = (double *) buf; return *d; } /* Start object code recording */ void quantum_objcode_start() { opstatus = 1; allocated = 1; objcode = malloc(OBJCODE_PAGE * sizeof(char)); if(!objcode) { printf("Error allocating memory for objcode data!\n"); exit(1); } quantum_memman(OBJCODE_PAGE * sizeof(char)); } /* Stop object code recording */ void quantum_objcode_stop() { opstatus = 0; free(objcode); objcode = 0; quantum_memman(- allocated * OBJCODE_PAGE * sizeof(char)); allocated = 0; } /* Store an operation with its arguments in the object code data */ int quantum_objcode_put(unsigned char operation, ...) { int i, size; va_list args; unsigned char buf[80]; double d; MAX_UNSIGNED mu; if(!opstatus) return 0; va_start(args, operation); buf[0] = operation; switch(operation) { case INIT: mu = va_arg(args, MAX_UNSIGNED); quantum_mu2char(mu, &buf[1]); size = sizeof(MAX_UNSIGNED) + 1; break; case CNOT: case COND_PHASE: i = va_arg(args, int); quantum_int2char(i, &buf[1]); i = va_arg(args, int); quantum_int2char(i, &buf[sizeof(int)+1]); size = 2 * sizeof(int) + 1; break; case TOFFOLI: i = va_arg(args, int); quantum_int2char(i, &buf[1]); i = va_arg(args, int); quantum_int2char(i, &buf[sizeof(int)+1]); i = va_arg(args, int); quantum_int2char(i, &buf[2*sizeof(int)+1]); size = 3 * sizeof(int) + 1; break; case SIGMA_X: case SIGMA_Y: case SIGMA_Z: case HADAMARD: case BMEASURE: case BMEASURE_P: case SWAPLEADS: i = va_arg(args, int); quantum_int2char(i, &buf[1]); size = sizeof(int) + 1; break; case ROT_X: case ROT_Y: case ROT_Z: case PHASE_KICK: case PHASE_SCALE: i = va_arg(args, int); d = va_arg(args, double); quantum_int2char(i, &buf[1]); quantum_double2char(d, &buf[sizeof(int)+1]); size = sizeof(int) + sizeof(double) + 1; break; case CPHASE_KICK: i = va_arg(args, int); quantum_int2char(i, &buf[1]); i = va_arg(args, int); quantum_int2char(i, &buf[sizeof(int)+1]); d = va_arg(args, double); quantum_double2char(d, &buf[2*sizeof(int)+1]); size = 2 * sizeof(int) + sizeof(double) + 1; break; case MEASURE: case NOP: size = 1; break; default: printf("Unknown opcode 0x(%X)!\n", operation); exit(1); } if((position+size) / OBJCODE_PAGE > position / OBJCODE_PAGE) { allocated++; objcode = realloc(objcode, allocated * OBJCODE_PAGE); if(!objcode) { printf("Error reallocating memory for objcode data!\n"); exit(1); } quantum_memman(OBJCODE_PAGE * sizeof(char)); } for(i=0; i=0;i--) if ((a>>i) & 1) { quantum_toffoli(2*width+2,L,width+i,reg); } } void muln(int N, int a, int ctl, int width, quantum_reg *reg){//ctl tells, which bit is the external enable bit int i; int L = 2*width+1; quantum_toffoli(ctl,2*width+2,L,reg); emul(a%N, L, width, reg); quantum_toffoli(ctl,2*width+2,L,reg); for(i=1;i0;i--){ quantum_toffoli(ctl,2*width+2+i,L,reg); add_mod_n(N,N-((1< #include "qureg.h" #include "gates.h" #include "config.h" #include "decoherence.h" #include "measure.h" /* Type of the QEC. Currently implemented versions are: 0: no QEC (default) 1: Steane's 3-bit code */ int type = 0; /* How many qubits are protected */ int width = 0; /* Change the status of the QEC. */ void quantum_qec_set_status(int stype, int swidth) { type = stype; width = swidth; } /* Get the current QEC status */ void quantum_qec_get_status(int *ptype, int *pwidth) { if(ptype) *ptype = type; if(pwidth) *pwidth = width; } /* Encode a quantum register. All qubits up to SWIDTH are protected, the rest is expanded with a repition code. */ void quantum_qec_encode(int type, int width, quantum_reg *reg) { int i; float lambda; lambda = quantum_get_decoherence(); quantum_set_decoherence(0); for(i=0;iwidth;i++) { if(i==reg->width-1) quantum_set_decoherence(lambda); if(iwidth+i, reg); quantum_hadamard(2*reg->width+i, reg); quantum_cnot(reg->width+i, i, reg); quantum_cnot(2*reg->width+i, i, reg); } else { quantum_cnot(i, reg->width+i, reg); quantum_cnot(i, 2*reg->width+i, reg); } } quantum_qec_set_status(1, reg->width); reg->width *= 3; } /* Decode a quantum register and perform Quantum Error Correction on it */ void quantum_qec_decode(int type, int width, quantum_reg *reg) { int i, a, b; int swidth; float lambda; lambda = quantum_get_decoherence(); quantum_set_decoherence(0); swidth=reg->width/3; quantum_qec_set_status(0, 0); for(i=reg->width/3-1;i>=0;i--) { if(i==0) quantum_set_decoherence(lambda); if(i 0) counter += inc; else if(inc < 0) counter = 0; if(frequency > 0) freq = frequency; if(counter >= freq) { counter = 0; quantum_qec_decode(type, width, reg); quantum_qec_encode(type, width, reg); } return counter; } /* Fault-tolerant version of the NOT gate */ void quantum_sigma_x_ft(int target, quantum_reg *reg) { int tmp; float lambda; tmp = type; type = 0; lambda = quantum_get_decoherence(); quantum_set_decoherence(0); /* These operations can be performed simultaneously */ quantum_sigma_x(target, reg); quantum_sigma_x(target+width, reg); quantum_set_decoherence(lambda); quantum_sigma_x(target+2*width, reg); quantum_qec_counter(1, 0, reg); type = tmp; } /* Fault-tolerant version of the Controlled NOT gate */ void quantum_cnot_ft(int control, int target, quantum_reg *reg) { int tmp; float lambda; tmp = type; type = 0; /* These operations can be performed simultaneously */ lambda = quantum_get_decoherence(); quantum_set_decoherence(0); quantum_cnot(control, target, reg); quantum_cnot(control+width, target+width, reg); quantum_set_decoherence(lambda); quantum_cnot(control+2*width, target+2*width, reg); quantum_qec_counter(1, 0, reg); type = tmp; } /* Fault-tolerant version of the Toffoli gate */ void quantum_toffoli_ft(int control1, int control2, int target, quantum_reg *reg) { int i; int c1, c2; MAX_UNSIGNED mask; mask = ((MAX_UNSIGNED) 1 << target) + ((MAX_UNSIGNED) 1 << (target+width)) + ((MAX_UNSIGNED) 1 << (target+2*width)); for(i=0;isize;i++) { c1 = 0; c2 = 0; if(reg->node[i].state & ((MAX_UNSIGNED) 1 << control1)) c1 = 1; if(reg->node[i].state & ((MAX_UNSIGNED) 1 << (control1+width))) { c1 ^= 1; } if(reg->node[i].state & ((MAX_UNSIGNED) 1 << (control1+2*width))) { c1 ^= 1; } if(reg->node[i].state & ((MAX_UNSIGNED) 1 << control2)) c2 = 1; if(reg->node[i].state & ((MAX_UNSIGNED) 1 << (control2+width))) { c2 ^= 1; } if(reg->node[i].state & ((MAX_UNSIGNED) 1 << (control2+2*width))) { c2 ^= 1; } if(c1 == 1 && c2 == 1) reg->node[i].state = reg->node[i].state ^ mask; } quantum_decohere(reg); quantum_qec_counter(1, 0, reg); } ================================================ FILE: tests/libquantum/qec.h ================================================ /* gates.h: Declarations for qec.c Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __QEC_H #define __QEC_H #include "qureg.h" extern void quantum_qec_set_status(int stype, int swidth); extern void quantum_qec_get_status(int *ptype, int *pwidth); extern void quantum_qec_encode(int type, int width, quantum_reg *reg); extern void quantum_qec_decode(int type, int width, quantum_reg *reg); extern void quantum_sigma_x_ft(int target, quantum_reg *reg); extern void quantum_cnot_ft(int control, int target, quantum_reg *reg); extern void quantum_toffoli_ft(int control1, int control2, int target, quantum_reg *reg); #endif ================================================ FILE: tests/libquantum/qft.c ================================================ /* qft.c: Quantum Fourier Transform Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "gates.h" #include "qureg.h" /* Perform a QFT on a quantum register. This is done by application of conditional phase shifts and hadamard gates. At the end, the position of the bits is reversed. */ void quantum_qft(int width, quantum_reg *reg) { int i, j; for(i=width-1; i>=0; i--) { for(j=width-1; j>i; j--) quantum_cond_phase(j, i, reg); quantum_hadamard(i, reg); } } void quantum_qft_inv(int width, quantum_reg *reg) { int i, j; for(i=0; i #include #if !defined(SPEC_CPU_WINDOWS_ICL) #include #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #include "matrix.h" #include "qureg.h" #include "config.h" #include "lq_complex.h" #include "objcode.h" /* Rahul: Must use SPEC's random number functions and not srandom and rand */ #if defined(SPEC_CPU) #include "specrand.h" #endif /* SPEC_CPU */ /* Convert a vector to a quantum register */ quantum_reg quantum_matrix2qureg(quantum_matrix *m, int width) { quantum_reg reg; int i, j, size=0; if(m->cols != 1) { printf("Error! Cannot convert a multi-column-matrix (%i)!\n", m->cols); exit(1); } reg.width = width; /* Determine the size of the quantum register */ for(i=0; irows; i++) { if(m->t[i]) size++; } /* Allocate the required memory */ reg.size = size; reg.hashw = width + 2; reg.node = calloc(size, sizeof(quantum_reg_node)); if(!reg.node) { printf("Not enough memory for %i-sized qubit!\n", size); exit(1); } quantum_memman(size * sizeof(quantum_reg_node)); /* Allocate the hash table */ reg.hash = calloc(1 << reg.hashw, sizeof(int)); if(!reg.hash) { printf("Not enough memory for %i-sized hash!\n", 1 << reg.hashw); exit(1); } quantum_memman((1 << reg.hashw) * sizeof(int)); /* Copy the nonzero amplitudes of the vector into the quantum register */ for(i=0, j=0; irows; i++) { if(m->t[i]) { reg.node[j].state = i; reg.node[j].amplitude = m->t[i]; j++; } } return reg; } /* Create a new quantum register from scratch */ quantum_reg quantum_new_qureg(MAX_UNSIGNED initval, int width) { quantum_reg reg; char *c; reg.width = width; reg.size = 1; reg.hashw = width + 2; /* Allocate memory for 1 base state */ reg.node = calloc(1, sizeof(quantum_reg_node)); if(!reg.node) { printf("Not enough memory for %i-sized qubit!\n", 1); exit(1); } quantum_memman(sizeof(quantum_reg_node)); /* Allocate the hash table */ reg.hash = calloc(1 << reg.hashw, sizeof(int)); if(!reg.hash) { printf("Not enough memory for %i-sized hash!\n", 1 << reg.hashw); exit(1); } quantum_memman((1 << reg.hashw) * sizeof(int)); /* Initialize the quantum register */ reg.node[0].state = initval; reg.node[0].amplitude = 1; /* Initialize the PRNG */ /* srandom(time(0)); */ c = getenv("QUOBFILE"); if(c) { quantum_objcode_start(); quantum_objcode_file(c); atexit((void *) &quantum_objcode_exit); } quantum_objcode_put(INIT, initval); return reg; } /* Convert a quantum register to a vector */ quantum_matrix quantum_qureg2matrix(quantum_reg reg) { quantum_matrix m; int i; m = quantum_new_matrix(1, 1 << reg.width); for(i=0; ihash); quantum_memman(-(1 << reg->hashw) * sizeof(int)); reg->hash = 0; } /* Delete a quantum register */ void quantum_delete_qureg(quantum_reg *reg) { quantum_destroy_hash(reg); free(reg->node); quantum_memman(-reg->size * sizeof(quantum_reg_node)); reg->node = 0; } /* Delete a quantum register but leave the hash table alive */ void quantum_delete_qureg_hashpreserve(quantum_reg *reg) { free(reg->node); quantum_memman(-reg->size * sizeof(quantum_reg_node)); reg->node = 0; } /* Print the contents of a quantum register to stdout */ void quantum_print_qureg(quantum_reg reg) { int i,j; for(i=0; i (%e) (|", quantum_real(reg.node[i].amplitude), quantum_imag(reg.node[i].amplitude), reg.node[i].state, quantum_prob_inline(reg.node[i].amplitude)); for(j=reg.width-1;j>=0;j--) { if(j % 4 == 3) printf(" "); printf("%i", ((((MAX_UNSIGNED) 1 << j) & reg.node[i].state) > 0)); } printf(">)\n"); } printf("\n"); } /* Print the output of the modular exponentation algorithm */ void quantum_print_expn(quantum_reg reg) { int i; for(i=0; iwidth; reg->width += bits; for(i=0; isize; i++) { l = reg->node[i].state << bits; reg->node[i].state = l; } } /* Print the hash table to stdout and test if the hash table is corrupted */ void quantum_print_hash(quantum_reg reg) { int i; for(i=0; i < (1 << reg.hashw); i++) { if(i) printf("%i: %i %llu\n", i, reg.hash[i]-1, reg.node[reg.hash[i]-1].state); } } /* Compute the Kronecker product of two quantum registers */ quantum_reg quantum_kronecker(quantum_reg *reg1, quantum_reg *reg2) { int i,j; quantum_reg reg; reg.width = reg1->width+reg2->width; reg.size = reg1->size*reg2->size; reg.hashw = reg1->size*reg2->size + 2; /* allocate memory for the new basis states */ reg.node = calloc(reg.size, sizeof(quantum_reg_node)); if(!reg.node) { printf("Not enough memory for %i-sized qubit!\n", reg.size); exit(1); } quantum_memman((reg.size)*sizeof(quantum_reg_node)); /* Allocate the hash table */ reg.hash = calloc(1 << reg.hashw, sizeof(int)); if(!reg.hash) { printf("Not enough memory for %i-sized hash!\n", 1 << reg.hashw); exit(1); } quantum_memman((1 << reg.hashw) * sizeof(int)); for(i=0; isize; i++) for(j=0; jsize; j++) { /* printf("processing |%lli> x |%lli>\n", reg1->node[i].state, reg2->node[j].state); printf("%lli\n", (reg1->node[i].state) << reg2->width); */ reg.node[i*reg2->size+j].state = ((reg1->node[i].state) << reg2->width) | reg2->node[j].state; reg.node[i*reg2->size+j].amplitude = reg1->node[i].amplitude * reg2->node[j].amplitude; } return reg; } /* Reduce the state vector after measurement or partial trace */ quantum_reg quantum_state_collapse(int pos, int value, quantum_reg reg) { int i, j, k; int size=0; double d=0; MAX_UNSIGNED lpat=0, rpat=0, pos2; quantum_reg out; pos2 = (MAX_UNSIGNED) 1 << pos; /* Eradicate all amplitudes of base states which have been ruled out by the measurement and get the norm of the new register */ for(i=0;ipos; k--) lpat += (MAX_UNSIGNED) 1 << k; lpat &= reg.node[i].state; out.node[j].state = (lpat >> 1) | rpat; out.node[j].amplitude = reg.node[i].amplitude * 1 / (float) sqrt(d); j++; } } return out; } /* Compute the dot product of two quantum registers */ COMPLEX_FLOAT quantum_dot_product(quantum_reg *reg1, quantum_reg *reg2) { int i, j; COMPLEX_FLOAT f = 0; for(i=0; i<(1 << reg2->hashw); i++) reg2->hash[i] = 0; for(i=0; isize; i++) quantum_add_hash(reg2->node[i].state, i, reg2); for(i=0; isize; i++) { j = quantum_get_state(reg1->node[i].state, *reg2); if(j > -1) /* state exists in reg2 */ f += quantum_conj(reg1->node[i].amplitude) * reg2->node[j].amplitude; } return f; } ================================================ FILE: tests/libquantum/qureg.h ================================================ /* qureg.h: Declarations for qureg.c and inline hashing functions Copyright 2003, 2004 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __QUREG_H #define __QUREG_H #include #include "config.h" #include "matrix.h" /* Representation of a base state of a quantum register: alpha_j |j> */ struct quantum_reg_node_struct { COMPLEX_FLOAT amplitude; /* alpha_j */ MAX_UNSIGNED state; /* j */ }; typedef struct quantum_reg_node_struct quantum_reg_node; /* The quantum register */ struct quantum_reg_struct { int width; /* number of qubits in the qureg */ int size; /* number of non-zero vectors */ int hashw; /* width of the hash array */ quantum_reg_node *node; int *hash; }; typedef struct quantum_reg_struct quantum_reg; extern quantum_reg quantum_matrix2qureg(quantum_matrix *m, int width); extern quantum_reg quantum_new_qureg(MAX_UNSIGNED initval, int width); extern quantum_matrix quantum_qureg2matrix(quantum_reg reg); extern void quantum_destroy_hash(quantum_reg *reg); extern void quantum_delete_qureg(quantum_reg *reg); extern void quantum_delete_qureg_hashpreserve(quantum_reg *reg); extern void quantum_print_qureg(quantum_reg reg); extern void quantum_print_expn(quantum_reg reg); extern void quantum_addscratch(int bits, quantum_reg *reg); extern void quantum_print_hash(quantum_reg reg); extern quantum_reg quantum_kronecker(quantum_reg *reg1, quantum_reg *reg2); extern quantum_reg quantum_state_collapse(int bit, int value, quantum_reg reg); extern COMPLEX_FLOAT quantum_dot_product(quantum_reg *reg1, quantum_reg *reg2); /* Our 64-bit multiplicative hash function */ static inline unsigned int quantum_hash64(MAX_UNSIGNED key, int width) { unsigned int k32; k32 = (key & 0xFFFFFFFF) ^ (key >> 32); k32 *= 0x9e370001UL; k32 = k32 >> (32-width); return k32; } /* Get the position of a given base state via the hash table */ static inline int quantum_get_state(MAX_UNSIGNED a, quantum_reg reg) { int i; i = quantum_hash64(a, reg.hashw); while(reg.hash[i]) { if(reg.node[reg.hash[i]-1].state == a) return reg.hash[i]-1; i++; if(i == (1 << reg.hashw)) i = 0; } return -1; } /* Add an element to the hash table */ static inline void quantum_add_hash(MAX_UNSIGNED a, int pos, quantum_reg *reg) { int i; i = quantum_hash64(a, reg->hashw); while(reg->hash[i]) { i++; if(i == (1 << reg->hashw)) i = 0; } reg->hash[i] = pos+1; } #endif ================================================ FILE: tests/libquantum/shor.c ================================================ /* shor.c: Implementation of Shor's factoring algorithm Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #if !defined(SPEC_CPU_WINDOWS_ICL) #include #else #include #endif /* SPEC_CPU_WINDOWS_ICL */ #include #if !defined(SPEC_CPU) #include #else #include "quantum.h" #endif /* SPEC_CPU */ /* Rahul: Must use SPEC's random number functions and not srandom and rand */ #if defined(SPEC_CPU) #include "specrand.h" #endif /* SPEC_CPU */ int main(int argc, char **argv) { quantum_reg qr; int i; int width, swidth; int x = 0; int N; int c,q,a,b, factor; #if defined(SPEC_CPU) spec_srand(26); #else srandom(time(0)); #endif /* SPEC_CPU */ if(argc == 1) { printf("Usage: shor [number]\n\n"); return 3; } N=atoi(argv[1]); if(N<15) { printf("Invalid number\n\n"); return 3; } width=quantum_getwidth(N*N); swidth=quantum_getwidth(N); printf("N = %i, %i qubits required\n", N, width+3*swidth+2); if(argc >= 3) { x = atoi(argv[2]); } while((quantum_gcd(N, x) > 1) || (x < 2)) { #if defined(SPEC_CPU) x = (long)(spec_rand() * 2147483647L) % N; #else x = random() % N; #endif /* SPEC_CPU */ } printf("Random seed: %i\n", x); qr=quantum_new_qureg(0, width); for(i=0;ib) factor=a; else factor=b; if((factor < N) && (factor > 1)) { printf("%i = %i * %i\n", N, factor, N/factor); } else { printf("Unable to determine factors, try again.\n"); #if defined(SPEC_CPU) exit(0); #else exit(2); #endif /* SPEC_CPU */ } quantum_delete_qureg(&qr); /* printf("Memory leak: %i bytes\n", (int) quantum_memman(0)); */ return 0; } ================================================ FILE: tests/libquantum/specrand.c ================================================ /* **************************************************************************** * * HEY! * * Absolutely do NOT forget to include "specrand.h" in any file in which you * call EITHER spec_rand OR spec_srand. * * Failure to heed this warning will likely result in strange, hard-to-diagnose * bugs. YOU HAVE BEEN WARNED! * **************************************************************************** */ static int seedi; void spec_srand(int seed) { seedi = seed; } /* See "Random Number Generators: Good Ones Are Hard To Find", */ /* Park & Miller, CACM 31#10 October 1988 pages 1192-1201. */ /***********************************************************/ /* THIS IMPLEMENTATION REQUIRES AT LEAST 32 BIT INTEGERS ! */ /***********************************************************/ double spec_rand(void) #define _A_MULTIPLIER 16807L #define _M_MODULUS 2147483647L /* (2**31)-1 */ #define _Q_QUOTIENT 127773L /* 2147483647 / 16807 */ #define _R_REMAINDER 2836L /* 2147483647 % 16807 */ { int lo; int hi; int test; hi = seedi / _Q_QUOTIENT; lo = seedi % _Q_QUOTIENT; test = _A_MULTIPLIER * lo - _R_REMAINDER * hi; if (test > 0) { seedi = test; } else { seedi = test + _M_MODULUS; } return ( (double) seedi / _M_MODULUS); } ================================================ FILE: tests/libquantum/specrand.h ================================================ void spec_srand(int seed); double spec_rand(void); ================================================ FILE: tests/libquantum/version.c ================================================ /* version.c: libquantum version information Copyright 2003 Bjoern Butscher, Hendrik Weimer This file is part of libquantum libquantum is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. libquantum is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libquantum; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "config.h" const char * quantum_get_version() { return PACKAGE_VERSION; } ================================================ FILE: tests/perlbench/Base64.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of Base64.xs. Do not edit this file, edit Base64.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "Base64.xs" */ /* $Id: Base64.xs,v 3.4 2004/08/24 16:29:35 gisle Exp $ Copyright 1997-2004 Gisle Aas This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The tables and some of the code that used to be here was borrowed from metamail, which comes with this message: Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) Permission to use, copy, modify, and distribute this material for any purpose and without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies, and that the name of Bellcore not be used in advertising or publicity pertaining to this material without the specific, prior written permission of an authorized representative of Bellcore. BELLCORE MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. */ #ifdef __cplusplus extern "C" { #endif #define PERL_NO_GET_CONTEXT /* we want efficiency */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #ifdef __cplusplus } #endif #ifndef PATCHLEVEL # include "patchlevel.h" /* SPEC CPU */ # if !(defined(PERL_VERSION) || (SUBVERSION > 0 && defined(PATCHLEVEL))) # include # endif #endif #if PATCHLEVEL <= 4 && !defined(PL_dowarn) #define PL_dowarn dowarn #endif #ifdef G_WARN_ON #define DOWARN (PL_dowarn & G_WARN_ON) #else #define DOWARN PL_dowarn #endif #define MAX_LINE 76 /* size of encoded lines */ static char basis_64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; #define XX 255 /* illegal base64 char */ #define EQ 254 /* padding */ #define INVALID XX static unsigned char index_64[256] = { XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,62, XX,XX,XX,63, 52,53,54,55, 56,57,58,59, 60,61,XX,XX, XX,EQ,XX,XX, XX, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14, 15,16,17,18, 19,20,21,22, 23,24,25,XX, XX,XX,XX,XX, XX,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40, 41,42,43,44, 45,46,47,48, 49,50,51,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, XX,XX,XX,XX, }; #ifdef SvPVbyte # if PERL_REVISION == 5 && PERL_VERSION < 7 /* SvPVbyte does not work in perl-5.6.1, borrowed version for 5.7.3 */ # undef SvPVbyte # define SvPVbyte(sv, lp) \ ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \ ? ((lp = SvCUR(sv)), SvPVX(sv)) : my_sv_2pvbyte(aTHX_ sv, &lp)) static char * my_sv_2pvbyte(pTHX_ register SV *sv, STRLEN *lp) { sv_utf8_downgrade(sv,0); return SvPV(sv,*lp); } # endif #else # define SvPVbyte SvPV #endif #ifndef isXDIGIT # define isXDIGIT isxdigit #endif #ifndef NATIVE_TO_ASCII # define NATIVE_TO_ASCII(ch) (ch) #endif /* #line 122 "Base64.c" */ XS(XS_MIME__Base64_encode_base64); /* prototype to pass -Wmissing-prototypes */ XS(XS_MIME__Base64_encode_base64) { dXSARGS; if (items < 1) Perl_croak(aTHX_ "Usage: MIME::Base64::encode_base64(sv, ...)"); { SV* sv = ST(0); /* #line 120 "Base64.xs" */ char *str; /* string to encode */ SSize_t len; /* length of the string */ char *eol; /* the end-of-line sequence to use */ STRLEN eollen; /* length of the EOL sequence */ char *r; /* result string */ STRLEN rlen; /* length of result string */ unsigned char c1, c2, c3; int chunk; /* #line 141 "Base64.c" */ SV * RETVAL; /* #line 130 "Base64.xs" */ #if PERL_REVISION == 5 && PERL_VERSION >= 6 sv_utf8_downgrade(sv, FALSE); #endif str = SvPV(sv, rlen); /* SvPV(sv, len) gives warning for signed len */ len = (SSize_t)rlen; /* set up EOL from the second argument if present, default to "\n" */ if (items > 1 && SvOK(ST(1))) { eol = SvPV(ST(1), eollen); } else { eol = "\n"; eollen = 1; } /* calculate the length of the result */ rlen = (len+2) / 3 * 4; /* encoded bytes */ if (rlen) { /* add space for EOL */ rlen += ((rlen-1) / MAX_LINE + 1) * eollen; } /* allocate a result buffer */ RETVAL = newSV(rlen ? rlen : 1); SvPOK_on(RETVAL); SvCUR_set(RETVAL, rlen); r = SvPVX(RETVAL); /* encode */ for (chunk=0; len > 0; len -= 3, chunk++) { if (chunk == (MAX_LINE/4)) { char *c = eol; char *e = eol + eollen; while (c < e) *r++ = *c++; chunk = 0; } c1 = *str++; c2 = len > 1 ? *str++ : '\0'; *r++ = basis_64[c1>>2]; *r++ = basis_64[((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)]; if (len > 2) { c3 = *str++; *r++ = basis_64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)]; *r++ = basis_64[c3 & 0x3F]; } else if (len == 2) { *r++ = basis_64[(c2 & 0xF) << 2]; *r++ = '='; } else { /* len == 1 */ *r++ = '='; *r++ = '='; } } if (rlen) { /* append eol to the result string */ char *c = eol; char *e = eol + eollen; while (c < e) *r++ = *c++; } *r = '\0'; /* every SV in perl should be NUL-terminated */ /* #line 205 "Base64.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_MIME__Base64_decode_base64); /* prototype to pass -Wmissing-prototypes */ XS(XS_MIME__Base64_decode_base64) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: MIME::Base64::decode_base64(sv)"); { SV* sv = ST(0); /* #line 200 "Base64.xs" */ STRLEN len; register unsigned char *str = (unsigned char*)SvPVbyte(sv, len); unsigned char const* end = str + len; char *r; unsigned char c[4]; /* #line 227 "Base64.c" */ SV * RETVAL; /* #line 207 "Base64.xs" */ { /* always enough, but might be too much */ STRLEN rlen = len * 3 / 4; RETVAL = newSV(rlen ? rlen : 1); } SvPOK_on(RETVAL); r = SvPVX(RETVAL); while (str < end) { int i = 0; do { unsigned char uc = index_64[NATIVE_TO_ASCII(*str++)]; if (uc != INVALID) c[i++] = uc; if (str == end) { if (i < 4) { if (i && DOWARN) warn("Premature end of base64 data"); if (i < 2) goto thats_it; if (i == 2) c[2] = EQ; c[3] = EQ; } break; } } while (i < 4); if (c[0] == EQ || c[1] == EQ) { if (DOWARN) warn("Premature padding of base64 data"); break; } /* printf("c0=%d,c1=%d,c2=%d,c3=%d\n", c[0],c[1],c[2],c[3]);*/ *r++ = (c[0] << 2) | ((c[1] & 0x30) >> 4); if (c[2] == EQ) break; *r++ = ((c[1] & 0x0F) << 4) | ((c[2] & 0x3C) >> 2); if (c[3] == EQ) break; *r++ = ((c[2] & 0x03) << 6) | c[3]; } thats_it: SvCUR_set(RETVAL, r - SvPVX(RETVAL)); *r = '\0'; /* #line 278 "Base64.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } #define qp_isplain(c) ((c) == '\t' || (((c) >= ' ' && (c) <= '~') && (c) != '=')) XS(XS_MIME__QuotedPrint_encode_qp); /* prototype to pass -Wmissing-prototypes */ XS(XS_MIME__QuotedPrint_encode_qp) { dXSARGS; if (items < 1) Perl_croak(aTHX_ "Usage: MIME::QuotedPrint::encode_qp(sv, ...)"); { SV* sv = ST(0); /* #line 269 "Base64.xs" */ char *eol; STRLEN eol_len; int binary; STRLEN sv_len; STRLEN linelen; char *beg; char *end; char *p; char *p_beg; STRLEN p_len; /* #line 306 "Base64.c" */ SV * RETVAL; /* #line 281 "Base64.xs" */ #if PERL_REVISION == 5 && PERL_VERSION >= 6 sv_utf8_downgrade(sv, FALSE); #endif /* set up EOL from the second argument if present, default to "\n" */ if (items > 1 && SvOK(ST(1))) { eol = SvPV(ST(1), eol_len); } else { eol = "\n"; eol_len = 1; } binary = (items > 2 && SvTRUE(ST(2))); beg = SvPV(sv, sv_len); end = beg + sv_len; RETVAL = newSV(sv_len + 1); sv_setpv(RETVAL, ""); linelen = 0; p = beg; while (1) { p_beg = p; /* skip past as much plain text as possible */ while (p < end && qp_isplain(*p)) { p++; } if (p == end || *p == '\n') { /* whitespace at end of line must be encoded */ while (p > p_beg && (*(p - 1) == '\t' || *(p - 1) == ' ')) p--; } p_len = p - p_beg; if (p_len) { /* output plain text (with line breaks) */ if (eol_len) { STRLEN max_last_line = (p == end || *p == '\n') ? MAX_LINE /* .......\n */ : ((p + 1) == end || *(p + 1) == '\n') ? MAX_LINE - 3 /* ....=XX\n */ : MAX_LINE - 4; /* ...=XX=\n */ while (p_len + linelen > max_last_line) { STRLEN len = MAX_LINE - 1 - linelen; if (len > p_len) len = p_len; sv_catpvn(RETVAL, p_beg, len); p_beg += len; p_len -= len; sv_catpvn(RETVAL, "=", 1); sv_catpvn(RETVAL, eol, eol_len); linelen = 0; } } if (p_len) { sv_catpvn(RETVAL, p_beg, p_len); linelen += p_len; } } if (p == end) { break; } else if (*p == '\n' && eol_len && !binary) { sv_catpvn(RETVAL, eol, eol_len); p++; linelen = 0; } else { /* output escaped char (with line breaks) */ assert(p < end); if (eol_len && linelen > MAX_LINE - 4) { sv_catpvn(RETVAL, "=", 1); sv_catpvn(RETVAL, eol, eol_len); linelen = 0; } sv_catpvf(RETVAL, "=%02X", (unsigned char)*p); p++; linelen += 3; } /* optimize reallocs a bit */ if (SvLEN(RETVAL) > 80 && SvLEN(RETVAL) - SvCUR(RETVAL) < 3) { STRLEN expected_len = (SvCUR(RETVAL) * sv_len) / (p - beg); SvGROW(RETVAL, expected_len); } } if (SvCUR(RETVAL) && eol_len && linelen) { sv_catpvn(RETVAL, "=", 1); sv_catpvn(RETVAL, eol, eol_len); } /* #line 403 "Base64.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_MIME__QuotedPrint_decode_qp); /* prototype to pass -Wmissing-prototypes */ XS(XS_MIME__QuotedPrint_decode_qp) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: MIME::QuotedPrint::decode_qp(sv)"); { SV* sv = ST(0); /* #line 384 "Base64.xs" */ STRLEN len; char *str = SvPVbyte(sv, len); char const* end = str + len; char *r; char *whitespace = 0; /* #line 425 "Base64.c" */ SV * RETVAL; /* #line 391 "Base64.xs" */ RETVAL = newSV(len ? len : 1); SvPOK_on(RETVAL); r = SvPVX(RETVAL); while (str < end) { if (*str == ' ' || *str == '\t') { if (!whitespace) whitespace = str; str++; } else if (*str == '\r' && (str + 1) < end && str[1] == '\n') { str++; } else if (*str == '\n') { whitespace = 0; *r++ = *str++; } else { if (whitespace) { while (whitespace < str) { *r++ = *whitespace++; } whitespace = 0; } if (*str == '=') { if ((str + 2) < end && isXDIGIT(str[1]) && isXDIGIT(str[2])) { char buf[3]; str++; buf[0] = *str++; buf[1] = *str++; buf[2] = '\0'; *r++ = (char)strtol(buf, 0, 16); } else { /* look for soft line break */ char *p = str + 1; while (p < end && (*p == ' ' || *p == '\t')) p++; if (p < end && *p == '\n') str = p + 1; else if ((p + 1) < end && *p == '\r' && *(p + 1) == '\n') str = p + 2; else *r++ = *str++; /* give up */ } } else { *r++ = *str++; } } } if (whitespace) { while (whitespace < str) { *r++ = *whitespace++; } } *r = '\0'; SvCUR_set(RETVAL, r - SvPVX(RETVAL)); /* #line 486 "Base64.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_MIME__Base64); /* prototype to pass -Wmissing-prototypes */ XS(boot_MIME__Base64) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXSproto("MIME::Base64::encode_base64", XS_MIME__Base64_encode_base64, file, "$;$"); newXSproto("MIME::Base64::decode_base64", XS_MIME__Base64_decode_base64, file, "$"); newXSproto("MIME::QuotedPrint::encode_qp", XS_MIME__QuotedPrint_encode_qp, file, "$;$$"); newXSproto("MIME::QuotedPrint::decode_qp", XS_MIME__QuotedPrint_decode_qp, file, "$"); XSRETURN_YES; } ================================================ FILE: tests/perlbench/Cwd.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of Cwd.xs. Do not edit this file, edit Cwd.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "Cwd.xs" */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #define NEED_sv_2pv_nolen #include "ppport.h" #ifdef I_UNISTD # include #endif /* The realpath() implementation from OpenBSD 2.9 (realpath.c 1.4) * Renamed here to bsd_realpath() to avoid library conflicts. * --jhi 2000-06-20 */ /* See * http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2004-11/msg00979.html * for the details of why the BSD license is compatible with the * AL/GPL standard perl license. */ /* * Copyright (c) 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Jan-Simon Pendry. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #if defined(LIBC_SCCS) && !defined(lint) static char *rcsid = "$OpenBSD: realpath.c,v 1.4 1998/05/18 09:55:19 deraadt Exp $"; #endif /* LIBC_SCCS and not lint */ /* OpenBSD system #includes removed since the Perl ones should do. --jhi */ #ifndef MAXSYMLINKS #define MAXSYMLINKS 8 #endif /* * char *realpath(const char *path, char resolved_path[MAXPATHLEN]); * * Find the real name of path, by removing all ".", ".." and symlink * components. Returns (resolved) on success, or (NULL) on failure, * in which case the path which caused trouble is left in (resolved). */ static char * bsd_realpath(path, resolved) const char *path; char *resolved; { #ifdef VMS dTHX; return Perl_rmsexpand(aTHX_ (char*)path, resolved, NULL, 0); #else int rootd, serrno; char *p, *q, wbuf[MAXPATHLEN]; int symlinks = 0; /* Save the starting point. */ #ifdef HAS_FCHDIR int fd; if ((fd = open(".", O_RDONLY)) < 0) { (void)strcpy(resolved, "."); return (NULL); } #else char wd[MAXPATHLEN]; if (getcwd(wd, MAXPATHLEN - 1) == NULL) { (void)strcpy(resolved, "."); return (NULL); } #endif /* * Find the dirname and basename from the path to be resolved. * Change directory to the dirname component. * lstat the basename part. * if it is a symlink, read in the value and loop. * if it is a directory, then change to that directory. * get the current directory name and append the basename. */ (void)strncpy(resolved, path, MAXPATHLEN - 1); resolved[MAXPATHLEN - 1] = '\0'; loop: q = strrchr(resolved, '/'); if (q != NULL) { p = q + 1; if (q == resolved) q = "/"; else { do { --q; } while (q > resolved && *q == '/'); q[1] = '\0'; q = resolved; } if (chdir(q) < 0) goto err1; } else p = resolved; #if defined(HAS_LSTAT) && defined(HAS_READLINK) && defined(HAS_SYMLINK) { struct stat sb; /* Deal with the last component. */ if (lstat(p, &sb) == 0) { if (S_ISLNK(sb.st_mode)) { int n; if (++symlinks > MAXSYMLINKS) { errno = ELOOP; goto err1; } n = readlink(p, resolved, MAXPATHLEN-1); if (n < 0) goto err1; resolved[n] = '\0'; goto loop; } if (S_ISDIR(sb.st_mode)) { if (chdir(p) < 0) goto err1; p = ""; } } } #endif /* * Save the last component name and get the full pathname of * the current directory. */ (void)strcpy(wbuf, p); if (getcwd(resolved, MAXPATHLEN) == 0) goto err1; /* * Join the two strings together, ensuring that the right thing * happens if the last component is empty, or the dirname is root. */ if (resolved[0] == '/' && resolved[1] == '\0') rootd = 1; else rootd = 0; if (*wbuf) { if (strlen(resolved) + strlen(wbuf) + (1 - rootd) + 1 > MAXPATHLEN) { errno = ENAMETOOLONG; goto err1; } if (rootd == 0) (void)strcat(resolved, "/"); (void)strcat(resolved, wbuf); } /* Go back to where we came from. */ #ifdef HAS_FCHDIR if (fchdir(fd) < 0) { serrno = errno; goto err2; } #else if (chdir(wd) < 0) { serrno = errno; goto err2; } #endif /* It's okay if the close fails, what's an fd more or less? */ #ifdef HAS_FCHDIR (void)close(fd); #endif return (resolved); err1: serrno = errno; #ifdef HAS_FCHDIR (void)fchdir(fd); #else (void)chdir(wd); #endif err2: #ifdef HAS_FCHDIR (void)close(fd); #endif errno = serrno; return (NULL); #endif } #ifndef SV_CWD_RETURN_UNDEF #define SV_CWD_RETURN_UNDEF \ sv_setsv(sv, &PL_sv_undef); \ return FALSE #endif #ifndef OPpENTERSUB_HASTARG #define OPpENTERSUB_HASTARG 32 /* Called from OP tree. */ #endif #ifndef dXSTARG #define dXSTARG SV * targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \ ? PAD_SV(PL_op->op_targ) : sv_newmortal()) #endif #ifndef XSprePUSH #define XSprePUSH (sp = PL_stack_base + ax - 1) #endif #ifndef SV_CWD_ISDOT #define SV_CWD_ISDOT(dp) \ (dp->d_name[0] == '.' && (dp->d_name[1] == '\0' || \ (dp->d_name[1] == '.' && dp->d_name[2] == '\0'))) #endif #ifndef getcwd_sv /* Taken from perl 5.8's util.c */ #define getcwd_sv(a) Perl_getcwd_sv(aTHX_ a) int Perl_getcwd_sv(pTHX_ register SV *sv) { #ifndef PERL_MICRO #ifndef INCOMPLETE_TAINTS SvTAINTED_on(sv); #endif #ifdef HAS_GETCWD { char buf[MAXPATHLEN]; /* Some getcwd()s automatically allocate a buffer of the given * size from the heap if they are given a NULL buffer pointer. * The problem is that this behaviour is not portable. */ if (getcwd(buf, sizeof(buf) - 1)) { STRLEN len = strlen(buf); sv_setpvn(sv, buf, len); return TRUE; } else { sv_setsv(sv, &PL_sv_undef); return FALSE; } } #else Stat_t statbuf; int orig_cdev, orig_cino, cdev, cino, odev, oino, tdev, tino; int namelen, pathlen=0; DIR *dir; Direntry_t *dp; (void)SvUPGRADE(sv, SVt_PV); if (PerlLIO_lstat(".", &statbuf) < 0) { SV_CWD_RETURN_UNDEF; } orig_cdev = statbuf.st_dev; orig_cino = statbuf.st_ino; cdev = orig_cdev; cino = orig_cino; for (;;) { odev = cdev; oino = cino; if (PerlDir_chdir("..") < 0) { SV_CWD_RETURN_UNDEF; } if (PerlLIO_stat(".", &statbuf) < 0) { SV_CWD_RETURN_UNDEF; } cdev = statbuf.st_dev; cino = statbuf.st_ino; if (odev == cdev && oino == cino) { break; } if (!(dir = PerlDir_open("."))) { SV_CWD_RETURN_UNDEF; } while ((dp = PerlDir_read(dir)) != NULL) { #ifdef DIRNAMLEN namelen = dp->d_namlen; #else namelen = strlen(dp->d_name); #endif /* skip . and .. */ if (SV_CWD_ISDOT(dp)) { continue; } if (PerlLIO_lstat(dp->d_name, &statbuf) < 0) { SV_CWD_RETURN_UNDEF; } tdev = statbuf.st_dev; tino = statbuf.st_ino; if (tino == oino && tdev == odev) { break; } } if (!dp) { SV_CWD_RETURN_UNDEF; } if (pathlen + namelen + 1 >= MAXPATHLEN) { SV_CWD_RETURN_UNDEF; } SvGROW(sv, pathlen + namelen + 1); if (pathlen) { /* shift down */ Move(SvPVX(sv), SvPVX(sv) + namelen + 1, pathlen, char); } /* prepend current directory to the front */ *SvPVX(sv) = '/'; Move(dp->d_name, SvPVX(sv)+1, namelen, char); pathlen += (namelen + 1); #ifdef VOID_CLOSEDIR PerlDir_close(dir); #else if (PerlDir_close(dir) < 0) { SV_CWD_RETURN_UNDEF; } #endif } if (pathlen) { SvCUR_set(sv, pathlen); *SvEND(sv) = '\0'; SvPOK_only(sv); if (PerlDir_chdir(SvPVX(sv)) < 0) { SV_CWD_RETURN_UNDEF; } } if (PerlLIO_stat(".", &statbuf) < 0) { SV_CWD_RETURN_UNDEF; } cdev = statbuf.st_dev; cino = statbuf.st_ino; if (cdev != orig_cdev || cino != orig_cino) { Perl_croak(aTHX_ "Unstable directory path, " "current directory changed unexpectedly"); } return TRUE; #endif #else return FALSE; #endif } #endif /* #line 405 "Cwd.c" */ XS(XS_Cwd_fastcwd); /* prototype to pass -Wmissing-prototypes */ XS(XS_Cwd_fastcwd) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Cwd::fastcwd()"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 403 "Cwd.xs" */ { dXSTARG; getcwd_sv(TARG); XSprePUSH; PUSHTARG; #ifndef INCOMPLETE_TAINTS SvTAINTED_on(TARG); #endif } /* #line 424 "Cwd.c" */ PUTBACK; return; } } XS(XS_Cwd_abs_path); /* prototype to pass -Wmissing-prototypes */ XS(XS_Cwd_abs_path) { dXSARGS; if (items < 0 || items > 1) Perl_croak(aTHX_ "Usage: Cwd::abs_path(pathsv=Nullsv)"); SP -= items; { SV * pathsv; if (items < 1) pathsv = Nullsv; else { pathsv = ST(0); } /* #line 417 "Cwd.xs" */ { dXSTARG; char *path; char buf[MAXPATHLEN]; path = pathsv ? SvPV_nolen(pathsv) : "."; if (bsd_realpath(path, buf)) { sv_setpvn(TARG, buf, strlen(buf)); SvPOK_only(TARG); SvTAINTED_on(TARG); } else sv_setsv(TARG, &PL_sv_undef); XSprePUSH; PUSHTARG; #ifndef INCOMPLETE_TAINTS SvTAINTED_on(TARG); #endif } /* #line 466 "Cwd.c" */ PUTBACK; return; } } #ifdef WIN32 #define XSubPPtmpAAAA 1 XS(XS_Cwd_getdcwd); /* prototype to pass -Wmissing-prototypes */ XS(XS_Cwd_getdcwd) { dXSARGS; PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 443 "Cwd.xs" */ { dXSTARG; int drive; char *dir; /* Drive 0 is the current drive, 1 is A:, 2 is B:, 3 is C: and so on. */ if ( items == 0 || (items == 1 && (!SvOK(ST(0)) || (SvPOK(ST(0)) && !SvCUR(ST(0)))))) drive = 0; else if (items == 1 && SvPOK(ST(0)) && SvCUR(ST(0)) && isALPHA(SvPVX(ST(0))[0])) drive = toUPPER(SvPVX(ST(0))[0]) - 'A' + 1; else croak("Usage: getdcwd(DRIVE)"); New(0,dir,MAXPATHLEN,char); if (_getdcwd(drive, dir, MAXPATHLEN)) { sv_setpvn(TARG, dir, strlen(dir)); SvPOK_only(TARG); } else sv_setsv(TARG, &PL_sv_undef); Safefree(dir); XSprePUSH; PUSHTARG; #ifndef INCOMPLETE_TAINTS SvTAINTED_on(TARG); #endif } /* #line 513 "Cwd.c" */ PUTBACK; return; } } #endif #ifdef __cplusplus extern "C" #endif XS(boot_Cwd); /* prototype to pass -Wmissing-prototypes */ XS(boot_Cwd) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXS("Cwd::fastcwd", XS_Cwd_fastcwd, file); newXS("Cwd::abs_path", XS_Cwd_abs_path, file); #if XSubPPtmpAAAA newXSproto("Cwd::getdcwd", XS_Cwd_getdcwd, file, ";@"); #endif /* Initialisation Section */ #if XSubPPtmpAAAA #endif /* #line 541 "Cwd.c" */ /* End of Initialisation Section */ XSRETURN_YES; } ================================================ FILE: tests/perlbench/Dumper.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of Dumper.xs. Do not edit this file, edit Dumper.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "Dumper.xs" */ #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" static I32 num_q (char *s, STRLEN slen); static I32 esc_q (char *dest, char *src, STRLEN slen); static I32 esc_q_utf8 (pTHX_ SV *sv, char *src, STRLEN slen); static SV *sv_x (pTHX_ SV *sv, char *str, STRLEN len, I32 n); static I32 DD_dump (pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, AV *postav, I32 *levelp, I32 indent, SV *pad, SV *xpad, SV *apad, SV *sep, SV *pair, SV *freezer, SV *toaster, I32 purity, I32 deepcopy, I32 quotekeys, SV *bless, I32 maxdepth, SV *sortkeys); #if PERL_VERSION <= 6 /* Perl 5.6 and earlier */ # ifdef EBCDIC # define UNI_TO_NATIVE(ch) (((ch) > 255) ? (ch) : ASCII_TO_NATIVE(ch)) # else # define UNI_TO_NATIVE(ch) (ch) # endif UV Perl_utf8_to_uvchr(pTHX_ U8 *s, STRLEN *retlen) { UV uv = utf8_to_uv(s, UTF8_MAXLEN, retlen, ckWARN(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY); return UNI_TO_NATIVE(uv); } # if !defined(PERL_IMPLICIT_CONTEXT) # define utf8_to_uvchr Perl_utf8_to_uvchr # else # define utf8_to_uvchr(a,b) Perl_utf8_to_uvchr(aTHX_ a,b) # endif #endif /* PERL_VERSION <= 6 */ /* Changes in 5.7 series mean that now IOK is only set if scalar is precisely integer but in 5.6 and earlier we need to do a more complex test */ #if PERL_VERSION <= 6 #define DD_is_integer(sv) (SvIOK(sv) && (SvIsUV(val) ? SvUV(sv) == SvNV(sv) : SvIV(sv) == SvNV(sv))) #else #define DD_is_integer(sv) SvIOK(sv) #endif /* does a string need to be protected? */ static I32 needs_quote(register char *s) { TOP: if (s[0] == ':') { if (*++s) { if (*s++ != ':') return 1; } else return 1; } if (isIDFIRST(*s)) { while (*++s) if (!isALNUM(*s)) { if (*s == ':') goto TOP; else return 1; } } else return 1; return 0; } /* count the number of "'"s and "\"s in string */ static I32 num_q(register char *s, register STRLEN slen) { register I32 ret = 0; while (slen > 0) { if (*s == '\'' || *s == '\\') ++ret; ++s; --slen; } return ret; } /* returns number of chars added to escape "'"s and "\"s in s */ /* slen number of characters in s will be escaped */ /* destination must be long enough for additional chars */ static I32 esc_q(register char *d, register char *s, register STRLEN slen) { register I32 ret = 0; while (slen > 0) { switch (*s) { case '\'': case '\\': *d = '\\'; ++d; ++ret; default: *d = *s; ++d; ++s; --slen; break; } } return ret; } static I32 esc_q_utf8(pTHX_ SV* sv, register char *src, register STRLEN slen) { char *s, *send, *r, *rstart; STRLEN j, cur = SvCUR(sv); /* Could count 128-255 and 256+ in two variables, if we want to be like &qquote and make a distinction. */ STRLEN grow = 0; /* bytes needed to represent chars 128+ */ /* STRLEN topbit_grow = 0; bytes needed to represent chars 128-255 */ STRLEN backslashes = 0; STRLEN single_quotes = 0; STRLEN qq_escapables = 0; /* " $ @ will need a \ in "" strings. */ STRLEN normal = 0; /* this will need EBCDICification */ for (s = src, send = src + slen; s < send; s += UTF8SKIP(s)) { UV k = utf8_to_uvchr((U8*)s, NULL); if (k > 127) { /* 4: \x{} then count the number of hex digits. */ grow += 4 + (k <= 0xFF ? 2 : k <= 0xFFF ? 3 : k <= 0xFFFF ? 4 : #if UVSIZE == 4 8 /* We may allocate a bit more than the minimum here. */ #else k <= 0xFFFFFFFF ? 8 : UVSIZE * 4 #endif ); } else if (k == '\\') { backslashes++; } else if (k == '\'') { single_quotes++; } else if (k == '"' || k == '$' || k == '@') { qq_escapables++; } else { normal++; } } if (grow) { /* We have something needing hex. 3 is ""\0 */ sv_grow(sv, cur + 3 + grow + 2*backslashes + single_quotes + 2*qq_escapables + normal); rstart = r = SvPVX(sv) + cur; *r++ = '"'; for (s = src; s < send; s += UTF8SKIP(s)) { UV k = utf8_to_uvchr((U8*)s, NULL); if (k == '"' || k == '\\' || k == '$' || k == '@') { *r++ = '\\'; *r++ = (char)k; } else if (k < 0x80) *r++ = (char)k; else { /* The return value of sprintf() is unportable. * In modern systems it returns (int) the number of characters, * but in older systems it might return (char*) the original * buffer, or it might even be (void). The easiest portable * thing to do is probably use sprintf() in void context and * then strlen(buffer) for the length. The more proper way * would of course be to figure out the prototype of sprintf. * --jhi */ sprintf(r, "\\x{%"UVxf"}", k); r += strlen(r); } } *r++ = '"'; } else { /* Single quotes. */ sv_grow(sv, cur + 3 + 2*backslashes + 2*single_quotes + qq_escapables + normal); rstart = r = SvPVX(sv) + cur; *r++ = '\''; for (s = src; s < send; s ++) { char k = *s; if (k == '\'' || k == '\\') *r++ = '\\'; *r++ = k; } *r++ = '\''; } *r = '\0'; j = r - rstart; SvCUR_set(sv, cur + j); return j; } /* append a repeated string to an SV */ static SV * sv_x(pTHX_ SV *sv, register char *str, STRLEN len, I32 n) { if (sv == Nullsv) sv = newSVpvn("", 0); else assert(SvTYPE(sv) >= SVt_PV); if (n > 0) { SvGROW(sv, len*n + SvCUR(sv) + 1); if (len == 1) { char *start = SvPVX(sv) + SvCUR(sv); SvCUR(sv) += n; start[n] = '\0'; while (n > 0) start[--n] = str[0]; } else while (n > 0) { sv_catpvn(sv, str, len); --n; } } return sv; } /* * This ought to be split into smaller functions. (it is one long function since * it exactly parallels the perl version, which was one long thing for * efficiency raisins.) Ugggh! */ static I32 DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, AV *postav, I32 *levelp, I32 indent, SV *pad, SV *xpad, SV *apad, SV *sep, SV *pair, SV *freezer, SV *toaster, I32 purity, I32 deepcopy, I32 quotekeys, SV *bless, I32 maxdepth, SV *sortkeys) { char tmpbuf[128]; U32 i; char *c, *r, *realpack, id[128]; SV **svp; SV *sv, *ipad, *ival; SV *blesspad = Nullsv; AV *seenentry = Nullav; char *iname; STRLEN inamelen, idlen = 0; U32 realtype; if (!val) return 0; realtype = SvTYPE(val); if (SvGMAGICAL(val)) mg_get(val); if (SvROK(val)) { /* If a freeze method is provided and the object has it, call it. Warn on errors. */ if (SvOBJECT(SvRV(val)) && freezer && SvPOK(freezer) && SvCUR(freezer) && gv_fetchmeth(SvSTASH(SvRV(val)), SvPVX(freezer), SvCUR(freezer), -1) != NULL) { dSP; ENTER; SAVETMPS; PUSHMARK(sp); XPUSHs(val); PUTBACK; i = call_method(SvPVX(freezer), G_EVAL|G_VOID); SPAGAIN; if (SvTRUE(ERRSV)) warn("WARNING(Freezer method call failed): %"SVf"", ERRSV); PUTBACK; FREETMPS; LEAVE; } ival = SvRV(val); realtype = SvTYPE(ival); (void) sprintf(id, "0x%"UVxf, PTR2UV(ival)); idlen = strlen(id); if (SvOBJECT(ival)) realpack = HvNAME(SvSTASH(ival)); else realpack = Nullch; /* if it has a name, we need to either look it up, or keep a tab * on it so we know when we hit it later */ if (namelen) { if ((svp = hv_fetch(seenhv, id, idlen, FALSE)) && (sv = *svp) && SvROK(sv) && (seenentry = (AV*)SvRV(sv))) { SV *othername; if ((svp = av_fetch(seenentry, 0, FALSE)) && (othername = *svp)) { if (purity && *levelp > 0) { SV *postentry; if (realtype == SVt_PVHV) sv_catpvn(retval, "{}", 2); else if (realtype == SVt_PVAV) sv_catpvn(retval, "[]", 2); else sv_catpvn(retval, "do{my $o}", 9); postentry = newSVpvn(name, namelen); sv_catpvn(postentry, " = ", 3); sv_catsv(postentry, othername); av_push(postav, postentry); } else { if (name[0] == '@' || name[0] == '%') { if ((SvPVX(othername))[0] == '\\' && (SvPVX(othername))[1] == name[0]) { sv_catpvn(retval, SvPVX(othername)+1, SvCUR(othername)-1); } else { sv_catpvn(retval, name, 1); sv_catpvn(retval, "{", 1); sv_catsv(retval, othername); sv_catpvn(retval, "}", 1); } } else sv_catsv(retval, othername); } return 1; } else { warn("ref name not found for %s", id); return 0; } } else { /* store our name and continue */ SV *namesv; if (name[0] == '@' || name[0] == '%') { namesv = newSVpvn("\\", 1); sv_catpvn(namesv, name, namelen); } else if (realtype == SVt_PVCV && name[0] == '*') { namesv = newSVpvn("\\", 2); sv_catpvn(namesv, name, namelen); (SvPVX(namesv))[1] = '&'; } else namesv = newSVpvn(name, namelen); seenentry = newAV(); av_push(seenentry, namesv); (void)SvREFCNT_inc(val); av_push(seenentry, val); (void)hv_store(seenhv, id, strlen(id), newRV_inc((SV*)seenentry), 0); SvREFCNT_dec(seenentry); } } if (realpack && *realpack == 'R' && strEQ(realpack, "Regexp")) { STRLEN rlen; char *rval = SvPV(val, rlen); char *slash = strchr(rval, '/'); sv_catpvn(retval, "qr/", 3); while (slash) { sv_catpvn(retval, rval, slash-rval); sv_catpvn(retval, "\\/", 2); rlen -= slash-rval+1; rval = slash+1; slash = strchr(rval, '/'); } sv_catpvn(retval, rval, rlen); sv_catpvn(retval, "/", 1); return 1; } /* If purity is not set and maxdepth is set, then check depth: * if we have reached maximum depth, return the string * representation of the thing we are currently examining * at this depth (i.e., 'Foo=ARRAY(0xdeadbeef)'). */ if (!purity && maxdepth > 0 && *levelp >= maxdepth) { STRLEN vallen; char *valstr = SvPV(val,vallen); sv_catpvn(retval, "'", 1); sv_catpvn(retval, valstr, vallen); sv_catpvn(retval, "'", 1); return 1; } if (realpack) { /* we have a blessed ref */ STRLEN blesslen; char *blessstr = SvPV(bless, blesslen); sv_catpvn(retval, blessstr, blesslen); sv_catpvn(retval, "( ", 2); if (indent >= 2) { blesspad = apad; apad = newSVsv(apad); sv_x(aTHX_ apad, " ", 1, blesslen+2); } } (*levelp)++; ipad = sv_x(aTHX_ Nullsv, SvPVX(xpad), SvCUR(xpad), *levelp); if (realtype <= SVt_PVBM) { /* scalar ref */ SV *namesv = newSVpvn("${", 2); sv_catpvn(namesv, name, namelen); sv_catpvn(namesv, "}", 1); if (realpack) { /* blessed */ sv_catpvn(retval, "do{\\(my $o = ", 13); DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, postav, levelp, indent, pad, xpad, apad, sep, pair, freezer, toaster, purity, deepcopy, quotekeys, bless, maxdepth, sortkeys); sv_catpvn(retval, ")}", 2); } /* plain */ else { sv_catpvn(retval, "\\", 1); DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, postav, levelp, indent, pad, xpad, apad, sep, pair, freezer, toaster, purity, deepcopy, quotekeys, bless, maxdepth, sortkeys); } SvREFCNT_dec(namesv); } else if (realtype == SVt_PVGV) { /* glob ref */ SV *namesv = newSVpvn("*{", 2); sv_catpvn(namesv, name, namelen); sv_catpvn(namesv, "}", 1); sv_catpvn(retval, "\\", 1); DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, postav, levelp, indent, pad, xpad, apad, sep, pair, freezer, toaster, purity, deepcopy, quotekeys, bless, maxdepth, sortkeys); SvREFCNT_dec(namesv); } else if (realtype == SVt_PVAV) { SV *totpad; I32 ix = 0; I32 ixmax = av_len((AV *)ival); SV *ixsv = newSViv(0); /* allowing for a 24 char wide array index */ New(0, iname, namelen+28, char); (void)strcpy(iname, name); inamelen = namelen; if (name[0] == '@') { sv_catpvn(retval, "(", 1); iname[0] = '$'; } else { sv_catpvn(retval, "[", 1); /* omit "->" in $foo{bar}->[0], but not in ${$foo}->[0] */ /*if (namelen > 0 && name[namelen-1] != ']' && name[namelen-1] != '}' && (namelen < 4 || (name[1] != '{' && name[2] != '{')))*/ if ((namelen > 0 && name[namelen-1] != ']' && name[namelen-1] != '}') || (namelen > 4 && (name[1] == '{' || (name[0] == '\\' && name[2] == '{')))) { iname[inamelen++] = '-'; iname[inamelen++] = '>'; iname[inamelen] = '\0'; } } if (iname[0] == '*' && iname[inamelen-1] == '}' && inamelen >= 8 && (instr(iname+inamelen-8, "{SCALAR}") || instr(iname+inamelen-7, "{ARRAY}") || instr(iname+inamelen-6, "{HASH}"))) { iname[inamelen++] = '-'; iname[inamelen++] = '>'; } iname[inamelen++] = '['; iname[inamelen] = '\0'; totpad = newSVsv(sep); sv_catsv(totpad, pad); sv_catsv(totpad, apad); for (ix = 0; ix <= ixmax; ++ix) { STRLEN ilen; SV *elem; svp = av_fetch((AV*)ival, ix, FALSE); if (svp) elem = *svp; else elem = &PL_sv_undef; ilen = inamelen; sv_setiv(ixsv, ix); (void) sprintf(iname+ilen, "%"IVdf, (IV)ix); ilen = strlen(iname); iname[ilen++] = ']'; iname[ilen] = '\0'; if (indent >= 3) { sv_catsv(retval, totpad); sv_catsv(retval, ipad); sv_catpvn(retval, "#", 1); sv_catsv(retval, ixsv); } sv_catsv(retval, totpad); sv_catsv(retval, ipad); DD_dump(aTHX_ elem, iname, ilen, retval, seenhv, postav, levelp, indent, pad, xpad, apad, sep, pair, freezer, toaster, purity, deepcopy, quotekeys, bless, maxdepth, sortkeys); if (ix < ixmax) sv_catpvn(retval, ",", 1); } if (ixmax >= 0) { SV *opad = sv_x(aTHX_ Nullsv, SvPVX(xpad), SvCUR(xpad), (*levelp)-1); sv_catsv(retval, totpad); sv_catsv(retval, opad); SvREFCNT_dec(opad); } if (name[0] == '@') sv_catpvn(retval, ")", 1); else sv_catpvn(retval, "]", 1); SvREFCNT_dec(ixsv); SvREFCNT_dec(totpad); Safefree(iname); } else if (realtype == SVt_PVHV) { SV *totpad, *newapad; SV *iname, *sname; HE *entry; char *key; I32 klen; SV *hval; AV *keys = Nullav; iname = newSVpvn(name, namelen); if (name[0] == '%') { sv_catpvn(retval, "(", 1); (SvPVX(iname))[0] = '$'; } else { sv_catpvn(retval, "{", 1); /* omit "->" in $foo[0]->{bar}, but not in ${$foo}->{bar} */ if ((namelen > 0 && name[namelen-1] != ']' && name[namelen-1] != '}') || (namelen > 4 && (name[1] == '{' || (name[0] == '\\' && name[2] == '{')))) { sv_catpvn(iname, "->", 2); } } if (name[0] == '*' && name[namelen-1] == '}' && namelen >= 8 && (instr(name+namelen-8, "{SCALAR}") || instr(name+namelen-7, "{ARRAY}") || instr(name+namelen-6, "{HASH}"))) { sv_catpvn(iname, "->", 2); } sv_catpvn(iname, "{", 1); totpad = newSVsv(sep); sv_catsv(totpad, pad); sv_catsv(totpad, apad); /* If requested, get a sorted/filtered array of hash keys */ if (sortkeys) { if (sortkeys == &PL_sv_yes) { #if PERL_VERSION < 8 sortkeys = sv_2mortal(newSVpvn("Data::Dumper::_sortkeys", 23)); #else keys = newAV(); (void)hv_iterinit((HV*)ival); while ((entry = hv_iternext((HV*)ival))) { sv = hv_iterkeysv(entry); SvREFCNT_inc(sv); av_push(keys, sv); } # ifdef USE_LOCALE_NUMERIC sortsv(AvARRAY(keys), av_len(keys)+1, IN_LOCALE ? Perl_sv_cmp_locale : Perl_sv_cmp); # else sortsv(AvARRAY(keys), av_len(keys)+1, Perl_sv_cmp); # endif #endif } if (sortkeys != &PL_sv_yes) { dSP; ENTER; SAVETMPS; PUSHMARK(sp); XPUSHs(sv_2mortal(newRV_inc(ival))); PUTBACK; i = call_sv(sortkeys, G_SCALAR | G_EVAL); SPAGAIN; if (i) { sv = POPs; if (SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVAV)) keys = (AV*)SvREFCNT_inc(SvRV(sv)); } if (! keys) warn("Sortkeys subroutine did not return ARRAYREF\n"); PUTBACK; FREETMPS; LEAVE; } if (keys) sv_2mortal((SV*)keys); } else (void)hv_iterinit((HV*)ival); /* foreach (keys %hash) */ for (i = 0; 1; i++) { char *nkey; char *nkey_buffer = NULL; I32 nticks = 0; SV* keysv; STRLEN keylen; I32 nlen; bool do_utf8 = FALSE; if ((sortkeys && !(keys && (I32)i <= av_len(keys))) || !(entry = hv_iternext((HV *)ival))) break; if (i) sv_catpvn(retval, ",", 1); if (sortkeys) { char *key; svp = av_fetch(keys, i, FALSE); keysv = svp ? *svp : sv_mortalcopy(&PL_sv_undef); key = SvPV(keysv, keylen); svp = hv_fetch((HV*)ival, key, SvUTF8(keysv) ? -(I32)keylen : keylen, 0); hval = svp ? *svp : sv_mortalcopy(&PL_sv_undef); } else { keysv = hv_iterkeysv(entry); hval = hv_iterval((HV*)ival, entry); } do_utf8 = DO_UTF8(keysv); key = SvPV(keysv, keylen); klen = keylen; sv_catsv(retval, totpad); sv_catsv(retval, ipad); /* old logic was first to check utf8 flag, and if utf8 always call esc_q_utf8. This caused test to break under -Mutf8, because there even strings like 'c' have utf8 flag on. Hence with quotekeys == 0 the XS code would still '' quote them based on flags, whereas the perl code would not, based on regexps. The perl code is correct. needs_quote() decides that anything that isn't a valid perl identifier needs to be quoted, hence only correctly formed strings with no characters outside [A-Za-z0-9_:] won't need quoting. None of those characters are used in the byte encoding of utf8, so anything with utf8 encoded characters in will need quoting. Hence strings with utf8 encoded characters in will end up inside do_utf8 just like before, but now strings with utf8 flag set but only ascii characters will end up in the unquoted section. There should also be less tests for the (probably currently) more common doesn't need quoting case. The code is also smaller (22044 vs 22260) because I've been able to pull the common logic out to both sides. */ if (quotekeys || needs_quote(key)) { if (do_utf8) { STRLEN ocur = SvCUR(retval); nlen = esc_q_utf8(aTHX_ retval, key, klen); nkey = SvPVX(retval) + ocur; } else { nticks = num_q(key, klen); New(0, nkey_buffer, klen+nticks+3, char); nkey = nkey_buffer; nkey[0] = '\''; if (nticks) klen += esc_q(nkey+1, key, klen); else (void)Copy(key, nkey+1, klen, char); nkey[++klen] = '\''; nkey[++klen] = '\0'; nlen = klen; sv_catpvn(retval, nkey, klen); } } else { nkey = key; nlen = klen; sv_catpvn(retval, nkey, klen); } sname = newSVsv(iname); sv_catpvn(sname, nkey, nlen); sv_catpvn(sname, "}", 1); sv_catsv(retval, pair); if (indent >= 2) { char *extra; I32 elen = 0; newapad = newSVsv(apad); New(0, extra, klen+4+1, char); while (elen < (klen+4)) extra[elen++] = ' '; extra[elen] = '\0'; sv_catpvn(newapad, extra, elen); Safefree(extra); } else newapad = apad; DD_dump(aTHX_ hval, SvPVX(sname), SvCUR(sname), retval, seenhv, postav, levelp, indent, pad, xpad, newapad, sep, pair, freezer, toaster, purity, deepcopy, quotekeys, bless, maxdepth, sortkeys); SvREFCNT_dec(sname); Safefree(nkey_buffer); if (indent >= 2) SvREFCNT_dec(newapad); } if (i) { SV *opad = sv_x(aTHX_ Nullsv, SvPVX(xpad), SvCUR(xpad), *levelp-1); sv_catsv(retval, totpad); sv_catsv(retval, opad); SvREFCNT_dec(opad); } if (name[0] == '%') sv_catpvn(retval, ")", 1); else sv_catpvn(retval, "}", 1); SvREFCNT_dec(iname); SvREFCNT_dec(totpad); } else if (realtype == SVt_PVCV) { sv_catpvn(retval, "sub { \"DUMMY\" }", 15); if (purity) warn("Encountered CODE ref, using dummy placeholder"); } else { warn("cannot handle ref type %ld", realtype); } if (realpack) { /* free blessed allocs */ if (indent >= 2) { SvREFCNT_dec(apad); apad = blesspad; } sv_catpvn(retval, ", '", 3); sv_catpvn(retval, realpack, strlen(realpack)); sv_catpvn(retval, "' )", 3); if (toaster && SvPOK(toaster) && SvCUR(toaster)) { sv_catpvn(retval, "->", 2); sv_catsv(retval, toaster); sv_catpvn(retval, "()", 2); } } SvREFCNT_dec(ipad); (*levelp)--; } else { STRLEN i; if (namelen) { (void) sprintf(id, "0x%"UVxf, PTR2UV(val)); if ((svp = hv_fetch(seenhv, id, (idlen = strlen(id)), FALSE)) && (sv = *svp) && SvROK(sv) && (seenentry = (AV*)SvRV(sv))) { SV *othername; if ((svp = av_fetch(seenentry, 0, FALSE)) && (othername = *svp) && (svp = av_fetch(seenentry, 2, FALSE)) && *svp && SvIV(*svp) > 0) { sv_catpvn(retval, "${", 2); sv_catsv(retval, othername); sv_catpvn(retval, "}", 1); return 1; } } else if (val != &PL_sv_undef) { SV *namesv; namesv = newSVpvn("\\", 1); sv_catpvn(namesv, name, namelen); seenentry = newAV(); av_push(seenentry, namesv); av_push(seenentry, newRV_inc(val)); (void)hv_store(seenhv, id, strlen(id), newRV_inc((SV*)seenentry), 0); SvREFCNT_dec(seenentry); } } if (DD_is_integer(val)) { STRLEN len; if (SvIsUV(val)) (void) sprintf(tmpbuf, "%"UVuf, SvUV(val)); else (void) sprintf(tmpbuf, "%"IVdf, SvIV(val)); len = strlen(tmpbuf); if (SvPOK(val)) { /* Need to check to see if this is a string such as " 0". I'm assuming from sprintf isn't going to clash with utf8. Is this valid on EBCDIC? */ STRLEN pvlen; const char *pv = SvPV(val, pvlen); if (pvlen != len || memNE(pv, tmpbuf, len)) goto integer_came_from_string; } if (len > 10) { /* Looks like we're on a 64 bit system. Make it a string so that if a 32 bit system reads the number it will cope better. */ sv_catpvf(retval, "'%s'", tmpbuf); } else sv_catpvn(retval, tmpbuf, len); } else if (realtype == SVt_PVGV) {/* GLOBs can end up with scribbly names */ c = SvPV(val, i); ++c; --i; /* just get the name */ if (i >= 6 && strncmp(c, "main::", 6) == 0) { c += 4; i -= 4; } if (needs_quote(c)) { sv_grow(retval, SvCUR(retval)+6+2*i); r = SvPVX(retval)+SvCUR(retval); r[0] = '*'; r[1] = '{'; r[2] = '\''; i += esc_q(r+3, c, i); i += 3; r[i++] = '\''; r[i++] = '}'; r[i] = '\0'; } else { sv_grow(retval, SvCUR(retval)+i+2); r = SvPVX(retval)+SvCUR(retval); r[0] = '*'; strcpy(r+1, c); i++; } SvCUR_set(retval, SvCUR(retval)+i); if (purity) { static char *entries[] = { "{SCALAR}", "{ARRAY}", "{HASH}" }; static STRLEN sizes[] = { 8, 7, 6 }; SV *e; SV *nname = newSVpvn("", 0); SV *newapad = newSVpvn("", 0); GV *gv = (GV*)val; I32 j; for (j=0; j<3; j++) { e = ((j == 0) ? GvSV(gv) : (j == 1) ? (SV*)GvAV(gv) : (SV*)GvHV(gv)); if (!e) continue; if (j == 0 && !SvOK(e)) continue; { I32 nlevel = 0; SV *postentry = newSVpvn(r,i); sv_setsv(nname, postentry); sv_catpvn(nname, entries[j], sizes[j]); sv_catpvn(postentry, " = ", 3); av_push(postav, postentry); e = newRV_inc(e); SvCUR(newapad) = 0; if (indent >= 2) (void)sv_x(aTHX_ newapad, " ", 1, SvCUR(postentry)); DD_dump(aTHX_ e, SvPVX(nname), SvCUR(nname), postentry, seenhv, postav, &nlevel, indent, pad, xpad, newapad, sep, pair, freezer, toaster, purity, deepcopy, quotekeys, bless, maxdepth, sortkeys); SvREFCNT_dec(e); } } SvREFCNT_dec(newapad); SvREFCNT_dec(nname); } } else if (val == &PL_sv_undef || !SvOK(val)) { sv_catpvn(retval, "undef", 5); } else { integer_came_from_string: c = SvPV(val, i); if (DO_UTF8(val)) i += esc_q_utf8(aTHX_ retval, c, i); else { sv_grow(retval, SvCUR(retval)+3+2*i); /* 3: ""\0 */ r = SvPVX(retval) + SvCUR(retval); r[0] = '\''; i += esc_q(r+1, c, i); ++i; r[i++] = '\''; r[i] = '\0'; SvCUR_set(retval, SvCUR(retval)+i); } } } if (idlen) { if (deepcopy) (void)hv_delete(seenhv, id, idlen, G_DISCARD); else if (namelen && seenentry) { SV *mark = *av_fetch(seenentry, 2, TRUE); sv_setiv(mark,1); } } return 1; } /* #line 918 "Dumper.c" */ XS(XS_Data__Dumper_Dumpxs); /* prototype to pass -Wmissing-prototypes */ XS(XS_Data__Dumper_Dumpxs) { dXSARGS; if (items < 1) Perl_croak(aTHX_ "Usage: Data::Dumper::Dumpxs(href, ...)"); SP -= items; { SV * href = ST(0); /* #line 921 "Dumper.xs" */ { HV *hv; SV *retval, *valstr; HV *seenhv = Nullhv; AV *postav, *todumpav, *namesav; I32 level = 0; I32 indent, terse, i, imax, postlen; SV **svp; SV *val, *name, *pad, *xpad, *apad, *sep, *pair, *varname; SV *freezer, *toaster, *bless, *sortkeys; I32 purity, deepcopy, quotekeys, maxdepth = 0; char tmpbuf[1024]; I32 gimme = GIMME; if (!SvROK(href)) { /* call new to get an object first */ if (items < 2) croak("Usage: Data::Dumper::Dumpxs(PACKAGE, VAL_ARY_REF, [NAME_ARY_REF])"); ENTER; SAVETMPS; PUSHMARK(sp); XPUSHs(href); XPUSHs(sv_2mortal(newSVsv(ST(1)))); if (items >= 3) XPUSHs(sv_2mortal(newSVsv(ST(2)))); PUTBACK; i = call_method("new", G_SCALAR); SPAGAIN; if (i) href = newSVsv(POPs); PUTBACK; FREETMPS; LEAVE; if (i) (void)sv_2mortal(href); } todumpav = namesav = Nullav; seenhv = Nullhv; val = pad = xpad = apad = sep = pair = varname = freezer = toaster = bless = &PL_sv_undef; name = sv_newmortal(); indent = 2; terse = purity = deepcopy = 0; quotekeys = 1; retval = newSVpvn("", 0); if (SvROK(href) && (hv = (HV*)SvRV((SV*)href)) && SvTYPE(hv) == SVt_PVHV) { if ((svp = hv_fetch(hv, "seen", 4, FALSE)) && SvROK(*svp)) seenhv = (HV*)SvRV(*svp); if ((svp = hv_fetch(hv, "todump", 6, FALSE)) && SvROK(*svp)) todumpav = (AV*)SvRV(*svp); if ((svp = hv_fetch(hv, "names", 5, FALSE)) && SvROK(*svp)) namesav = (AV*)SvRV(*svp); if ((svp = hv_fetch(hv, "indent", 6, FALSE))) indent = SvIV(*svp); if ((svp = hv_fetch(hv, "purity", 6, FALSE))) purity = SvIV(*svp); if ((svp = hv_fetch(hv, "terse", 5, FALSE))) terse = SvTRUE(*svp); #if 0 /* useqq currently unused */ if ((svp = hv_fetch(hv, "useqq", 5, FALSE))) useqq = SvTRUE(*svp); #endif if ((svp = hv_fetch(hv, "pad", 3, FALSE))) pad = *svp; if ((svp = hv_fetch(hv, "xpad", 4, FALSE))) xpad = *svp; if ((svp = hv_fetch(hv, "apad", 4, FALSE))) apad = *svp; if ((svp = hv_fetch(hv, "sep", 3, FALSE))) sep = *svp; if ((svp = hv_fetch(hv, "pair", 4, FALSE))) pair = *svp; if ((svp = hv_fetch(hv, "varname", 7, FALSE))) varname = *svp; if ((svp = hv_fetch(hv, "freezer", 7, FALSE))) freezer = *svp; if ((svp = hv_fetch(hv, "toaster", 7, FALSE))) toaster = *svp; if ((svp = hv_fetch(hv, "deepcopy", 8, FALSE))) deepcopy = SvTRUE(*svp); if ((svp = hv_fetch(hv, "quotekeys", 9, FALSE))) quotekeys = SvTRUE(*svp); if ((svp = hv_fetch(hv, "bless", 5, FALSE))) bless = *svp; if ((svp = hv_fetch(hv, "maxdepth", 8, FALSE))) maxdepth = SvIV(*svp); if ((svp = hv_fetch(hv, "sortkeys", 8, FALSE))) { sortkeys = *svp; if (! SvTRUE(sortkeys)) sortkeys = NULL; else if (! (SvROK(sortkeys) && SvTYPE(SvRV(sortkeys)) == SVt_PVCV) ) { /* flag to use qsortsv() for sorting hash keys */ sortkeys = &PL_sv_yes; } } postav = newAV(); if (todumpav) imax = av_len(todumpav); else imax = -1; valstr = newSVpvn("",0); for (i = 0; i <= imax; ++i) { SV *newapad; av_clear(postav); if ((svp = av_fetch(todumpav, i, FALSE))) val = *svp; else val = &PL_sv_undef; if ((svp = av_fetch(namesav, i, TRUE))) sv_setsv(name, *svp); else (void)SvOK_off(name); if (SvOK(name)) { if ((SvPVX(name))[0] == '*') { if (SvROK(val)) { switch (SvTYPE(SvRV(val))) { case SVt_PVAV: (SvPVX(name))[0] = '@'; break; case SVt_PVHV: (SvPVX(name))[0] = '%'; break; case SVt_PVCV: (SvPVX(name))[0] = '*'; break; default: (SvPVX(name))[0] = '$'; break; } } else (SvPVX(name))[0] = '$'; } else if ((SvPVX(name))[0] != '$') sv_insert(name, 0, 0, "$", 1); } else { STRLEN nchars = 0; sv_setpvn(name, "$", 1); sv_catsv(name, varname); (void) sprintf(tmpbuf, "%"IVdf, (IV)(i+1)); nchars = strlen(tmpbuf); sv_catpvn(name, tmpbuf, nchars); } if (indent >= 2) { SV *tmpsv = sv_x(aTHX_ Nullsv, " ", 1, SvCUR(name)+3); newapad = newSVsv(apad); sv_catsv(newapad, tmpsv); SvREFCNT_dec(tmpsv); } else newapad = apad; DD_dump(aTHX_ val, SvPVX(name), SvCUR(name), valstr, seenhv, postav, &level, indent, pad, xpad, newapad, sep, pair, freezer, toaster, purity, deepcopy, quotekeys, bless, maxdepth, sortkeys); if (indent >= 2) SvREFCNT_dec(newapad); postlen = av_len(postav); if (postlen >= 0 || !terse) { sv_insert(valstr, 0, 0, " = ", 3); sv_insert(valstr, 0, 0, SvPVX(name), SvCUR(name)); sv_catpvn(valstr, ";", 1); } sv_catsv(retval, pad); sv_catsv(retval, valstr); sv_catsv(retval, sep); if (postlen >= 0) { I32 i; sv_catsv(retval, pad); for (i = 0; i <= postlen; ++i) { SV *elem; svp = av_fetch(postav, i, FALSE); if (svp && (elem = *svp)) { sv_catsv(retval, elem); if (i < postlen) { sv_catpvn(retval, ";", 1); sv_catsv(retval, sep); sv_catsv(retval, pad); } } } sv_catpvn(retval, ";", 1); sv_catsv(retval, sep); } sv_setpvn(valstr, "", 0); if (gimme == G_ARRAY) { XPUSHs(sv_2mortal(retval)); if (i < imax) /* not the last time thro ? */ retval = newSVpvn("",0); } } SvREFCNT_dec(postav); SvREFCNT_dec(valstr); } else croak("Call to new() method failed to return HASH ref"); if (gimme == G_SCALAR) XPUSHs(sv_2mortal(retval)); } /* #line 1145 "Dumper.c" */ PUTBACK; return; } } #ifdef __cplusplus extern "C" #endif XS(boot_Data__Dumper); /* prototype to pass -Wmissing-prototypes */ XS(boot_Data__Dumper) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXSproto("Data::Dumper::Dumpxs", XS_Data__Dumper_Dumpxs, file, "$;$$"); XSRETURN_YES; } ================================================ FILE: tests/perlbench/DynaLoader.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of DynaLoader.xs. Do not edit this file, edit DynaLoader.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "DynaLoader.xs" */ /* dl_none.xs * * Stubs for platforms that do not support dynamic linking */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" /* #line 20 "DynaLoader.c" */ XS(XS_DynaLoader_dl_error); /* prototype to pass -Wmissing-prototypes */ XS(XS_DynaLoader_dl_error) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: DynaLoader::dl_error()"); { char * RETVAL; dXSTARG; /* #line 15 "DynaLoader.xs" */ RETVAL = "Not implemented"; /* #line 32 "DynaLoader.c" */ sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_DynaLoader); /* prototype to pass -Wmissing-prototypes */ XS(boot_DynaLoader) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXS("DynaLoader::dl_error", XS_DynaLoader_dl_error, file); XSRETURN_YES; } ================================================ FILE: tests/perlbench/EXTERN.h ================================================ /* EXTERN.h * * Copyright (C) 1991, 1992, 1993, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * EXT designates a global var which is defined in perl.h * dEXT designates a global var which is defined in another * file, so we can't count on finding it in perl.h * (this practice should be avoided). */ #undef EXT #undef dEXT #undef EXTCONST #undef dEXTCONST #if defined(VMS) && !defined(__GNUC__) /* Suppress portability warnings from DECC for VMS-specific extensions */ # ifdef __DECC # pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT) # endif # define EXT globalref # define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare # define EXTCONST globalref # define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly #else # if defined(WIN32) && !defined(PERL_STATIC_SYMS) # ifdef PERLDLL # define EXT extern __declspec(dllexport) # define dEXT # define EXTCONST extern __declspec(dllexport) const # define dEXTCONST const # else # define EXT extern __declspec(dllimport) # define dEXT # define EXTCONST extern __declspec(dllimport) const # define dEXTCONST const # endif # else # if defined(__CYGWIN__) && defined(USEIMPORTLIB) # define EXT extern __declspec(dllimport) # define dEXT # define EXTCONST extern __declspec(dllimport) const # define dEXTCONST const # else # define EXT extern # define dEXT # define EXTCONST extern const # define dEXTCONST const # endif # endif #endif #undef INIT #define INIT(x) #undef DOINIT ================================================ FILE: tests/perlbench/HiRes.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of HiRes.xs. Do not edit this file, edit HiRes.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "HiRes.xs" */ #ifdef __cplusplus extern "C" { #endif #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #if defined(__CYGWIN__) && defined(HAS_W32API_WINDOWS_H) # include # define CYGWIN_WITH_W32API #endif #ifdef WIN32 # include #else # include #endif #ifdef HAS_SELECT # ifdef I_SYS_SELECT # include # endif #endif #ifdef __cplusplus } #endif #ifndef PerlProc_pause # define PerlProc_pause() Pause() #endif #if !defined(SPEC_CPU) #ifdef HAS_PAUSE # define Pause pause #else # define Pause() sleep(~0) /* Zzz for a long time. */ #endif #endif /* !SPEC_CPU */ /* Though the cpp define ITIMER_VIRTUAL is available the functionality * is not supported in Cygwin as of August 2004, ditto for Win32. * Neither are ITIMER_PROF or ITIMER_REALPROF implemented. --jhi */ #if defined(__CYGWIN__) || defined(WIN32) # undef ITIMER_VIRTUAL # undef ITIMER_PROF # undef ITIMER_REALPROF #endif #if !defined(SPEC_CPU) /* 5.004 doesn't define PL_sv_undef */ #ifndef ATLEASTFIVEOHOHFIVE # ifndef PL_sv_undef # define PL_sv_undef sv_undef # endif #endif #endif /* !SPEC_CPU */ #include "const-c.inc" #if defined(WIN32) || defined(CYGWIN_WITH_W32API) #ifndef HAS_GETTIMEOFDAY # define HAS_GETTIMEOFDAY #endif /* shows up in winsock.h? struct timeval { long tv_sec; long tv_usec; } */ typedef union { unsigned __int64 ft_i64; FILETIME ft_val; } FT_t; #define MY_CXT_KEY "Time::HiRes_" XS_VERSION typedef struct { unsigned long run_count; unsigned __int64 base_ticks; unsigned __int64 tick_frequency; FT_t base_systime_as_filetime; unsigned __int64 reset_time; } my_cxt_t; START_MY_CXT /* Number of 100 nanosecond units from 1/1/1601 to 1/1/1970 */ #if defined(__GNUC__) || defined(SPEC_CPU_CONST64_LL) # define Const64(x) x##LL #else # define Const64(x) x##i64 #endif #define EPOCH_BIAS Const64(116444736000000000) /* NOTE: This does not compute the timezone info (doing so can be expensive, * and appears to be unsupported even by glibc) */ /* dMY_CXT needs a Perl context and we don't want to call PERL_GET_CONTEXT for performance reasons */ #undef gettimeofday #define gettimeofday(tp, not_used) _gettimeofday(aTHX_ tp, not_used) /* If the performance counter delta drifts more than 0.5 seconds from the * system time then we recalibrate to the system time. This means we may * move *backwards* in time! */ #define MAX_PERF_COUNTER_SKEW Const64(5000000) /* 0.5 seconds */ /* Reset reading from the performance counter every five minutes. * Many PC clocks just seem to be so bad. */ #define MAX_PERF_COUNTER_TICKS Const64(300000000) /* 300 seconds */ static int _gettimeofday(pTHX_ struct timeval *tp, void *not_used) { dMY_CXT; unsigned __int64 ticks; FT_t ft; if (MY_CXT.run_count++ == 0 || MY_CXT.base_systime_as_filetime.ft_i64 > MY_CXT.reset_time) { QueryPerformanceFrequency((LARGE_INTEGER*)&MY_CXT.tick_frequency); QueryPerformanceCounter((LARGE_INTEGER*)&MY_CXT.base_ticks); GetSystemTimeAsFileTime(&MY_CXT.base_systime_as_filetime.ft_val); ft.ft_i64 = MY_CXT.base_systime_as_filetime.ft_i64; MY_CXT.reset_time = ft.ft_i64 + MAX_PERF_COUNTER_TICKS; } else { __int64 diff; QueryPerformanceCounter((LARGE_INTEGER*)&ticks); ticks -= MY_CXT.base_ticks; ft.ft_i64 = MY_CXT.base_systime_as_filetime.ft_i64 + Const64(10000000) * (ticks / MY_CXT.tick_frequency) +(Const64(10000000) * (ticks % MY_CXT.tick_frequency)) / MY_CXT.tick_frequency; diff = ft.ft_i64 - MY_CXT.base_systime_as_filetime.ft_i64; if (diff < -MAX_PERF_COUNTER_SKEW || diff > MAX_PERF_COUNTER_SKEW) { MY_CXT.base_ticks += ticks; GetSystemTimeAsFileTime(&MY_CXT.base_systime_as_filetime.ft_val); ft.ft_i64 = MY_CXT.base_systime_as_filetime.ft_i64; } } /* seconds since epoch */ tp->tv_sec = (long)((ft.ft_i64 - EPOCH_BIAS) / Const64(10000000)); /* microseconds remaining */ tp->tv_usec = (long)((ft.ft_i64 / Const64(10)) % Const64(1000000)); return 0; } #endif #if defined(WIN32) && !defined(ATLEASTFIVEOHOHFIVE) && !defined(SPEC_CPU) static unsigned int sleep(unsigned int t) { Sleep(t*1000); return 0; } #endif #if !defined(HAS_GETTIMEOFDAY) && defined(VMS) #define HAS_GETTIMEOFDAY #include #include /* gettimeofday */ #include /* qdiv */ #include /* sys$gettim */ #include #ifdef __VAX #include /* lib$ediv() */ #endif /* VMS binary time is expressed in 100 nano-seconds since system base time which is 17-NOV-1858 00:00:00.00 */ #define DIV_100NS_TO_SECS 10000000L #define DIV_100NS_TO_USECS 10L /* gettimeofday is supposed to return times since the epoch so need to determine this in terms of VMS base time */ static $DESCRIPTOR(dscepoch,"01-JAN-1970 00:00:00.00"); #ifdef __VAX static long base_adjust[2]={0L,0L}; #else static __int64 base_adjust=0; #endif /* If we don't have gettimeofday, then likely we are on a VMS machine that operates on local time rather than UTC...so we have to zone-adjust. This code gleefully swiped from VMS.C */ /* method used to handle UTC conversions: * 1 == CRTL gmtime(); 2 == SYS$TIMEZONE_DIFFERENTIAL; 3 == no correction */ static int gmtime_emulation_type; /* number of secs to add to UTC POSIX-style time to get local time */ static long int utc_offset_secs; static struct dsc$descriptor_s fildevdsc = { 12, DSC$K_DTYPE_T, DSC$K_CLASS_S, "LNM$FILE_DEV" }; static struct dsc$descriptor_s *fildev[] = { &fildevdsc, NULL }; static time_t toutc_dst(time_t loc) { struct tm *rsltmp; if ((rsltmp = localtime(&loc)) == NULL) return -1; loc -= utc_offset_secs; if (rsltmp->tm_isdst) loc -= 3600; return loc; } static time_t toloc_dst(time_t utc) { struct tm *rsltmp; utc += utc_offset_secs; if ((rsltmp = localtime(&utc)) == NULL) return -1; if (rsltmp->tm_isdst) utc += 3600; return utc; } #define _toutc(secs) ((secs) == (time_t) -1 ? (time_t) -1 : \ ((gmtime_emulation_type || timezone_setup()), \ (gmtime_emulation_type == 1 ? toutc_dst(secs) : \ ((secs) - utc_offset_secs)))) #define _toloc(secs) ((secs) == (time_t) -1 ? (time_t) -1 : \ ((gmtime_emulation_type || timezone_setup()), \ (gmtime_emulation_type == 1 ? toloc_dst(secs) : \ ((secs) + utc_offset_secs)))) static int timezone_setup(void) { struct tm *tm_p; if (gmtime_emulation_type == 0) { int dstnow; time_t base = 15 * 86400; /* 15jan71; to avoid month/year ends between */ /* results of calls to gmtime() and localtime() */ /* for same &base */ gmtime_emulation_type++; if ((tm_p = gmtime(&base)) == NULL) { /* CRTL gmtime() is a fake */ char off[LNM$C_NAMLENGTH+1];; gmtime_emulation_type++; if (!Perl_vmstrnenv("SYS$TIMEZONE_DIFFERENTIAL",off,0,fildev,0)) { gmtime_emulation_type++; utc_offset_secs = 0; Perl_warn(aTHX_ "no UTC offset information; assuming local time is UTC"); } else { utc_offset_secs = atol(off); } } else { /* We've got a working gmtime() */ struct tm gmt, local; gmt = *tm_p; tm_p = localtime(&base); local = *tm_p; utc_offset_secs = (local.tm_mday - gmt.tm_mday) * 86400; utc_offset_secs += (local.tm_hour - gmt.tm_hour) * 3600; utc_offset_secs += (local.tm_min - gmt.tm_min) * 60; utc_offset_secs += (local.tm_sec - gmt.tm_sec); } } return 1; } int gettimeofday (struct timeval *tp, void *tpz) { long ret; #ifdef __VAX long quad[2]; long quad1[2]; long div_100ns_to_secs; long div_100ns_to_usecs; long quo,rem; long quo1,rem1; #else __int64 quad; __qdiv_t ans1,ans2; #endif /* In case of error, tv_usec = 0 and tv_sec = VMS condition code. The return from function is also set to -1. This is not exactly as per the manual page. */ tp->tv_usec = 0; #ifdef __VAX if (base_adjust[0]==0 && base_adjust[1]==0) { #else if (base_adjust==0) { /* Need to determine epoch adjustment */ #endif ret=sys$bintim(&dscepoch,&base_adjust); if (1 != (ret &&1)) { tp->tv_sec = ret; return -1; } } ret=sys$gettim(&quad); /* Get VMS system time */ if ((1 && ret) == 1) { #ifdef __VAX quad[0] -= base_adjust[0]; /* convert to epoch offset */ quad[1] -= base_adjust[1]; /* convert 2nd half of quadword */ div_100ns_to_secs = DIV_100NS_TO_SECS; div_100ns_to_usecs = DIV_100NS_TO_USECS; lib$ediv(&div_100ns_to_secs,&quad,&quo,&rem); quad1[0] = rem; quad1[1] = 0L; lib$ediv(&div_100ns_to_usecs,&quad1,&quo1,&rem1); tp->tv_sec = quo; /* Whole seconds */ tp->tv_usec = quo1; /* Micro-seconds */ #else quad -= base_adjust; /* convert to epoch offset */ ans1=qdiv(quad,DIV_100NS_TO_SECS); ans2=qdiv(ans1.rem,DIV_100NS_TO_USECS); tp->tv_sec = ans1.quot; /* Whole seconds */ tp->tv_usec = ans2.quot; /* Micro-seconds */ #endif } else { tp->tv_sec = ret; return -1; } # ifdef VMSISH_TIME # ifdef RTL_USES_UTC if (VMSISH_TIME) tp->tv_sec = _toloc(tp->tv_sec); # else if (!VMSISH_TIME) tp->tv_sec = _toutc(tp->tv_sec); # endif # endif return 0; } #endif /* Do not use H A S _ N A N O S L E E P * so that Perl Configure doesn't scan for it. * The TIME_HIRES_NANOSLEEP is set by Makefile.PL. */ #if !defined(HAS_USLEEP) && defined(TIME_HIRES_NANOSLEEP) #define HAS_USLEEP #define usleep hrt_unanosleep /* could conflict with ncurses for static build */ void hrt_unanosleep(unsigned long usec) /* This is used to emulate usleep. */ { struct timespec res; res.tv_sec = usec/1000/1000; res.tv_nsec = ( usec - res.tv_sec*1000*1000 ) * 1000; nanosleep(&res, NULL); } #endif /* #if !defined(HAS_USLEEP) && defined(TIME_HIRES_NANOSLEEP) */ #if !defined(HAS_USLEEP) && defined(HAS_SELECT) #ifndef SELECT_IS_BROKEN #define HAS_USLEEP #define usleep hrt_usleep /* could conflict with ncurses for static build */ void hrt_usleep(unsigned long usec) { struct timeval tv; tv.tv_sec = 0; tv.tv_usec = usec; select(0, (Select_fd_set_t)NULL, (Select_fd_set_t)NULL, (Select_fd_set_t)NULL, &tv); } #endif #endif /* #if !defined(HAS_USLEEP) && defined(HAS_SELECT) */ #if !defined(HAS_USLEEP) && defined(WIN32) #define HAS_USLEEP #define usleep hrt_usleep /* could conflict with ncurses for static build */ void hrt_usleep(unsigned long usec) { long msec; msec = usec / 1000; Sleep (msec); } #endif /* #if !defined(HAS_USLEEP) && defined(WIN32) */ #if !defined(HAS_UALARM) && defined(HAS_SETITIMER) #define HAS_UALARM #define ualarm hrt_ualarm /* could conflict with ncurses for static build */ int hrt_ualarm(int usec, int interval) { struct itimerval itv; itv.it_value.tv_sec = usec / 1000000; itv.it_value.tv_usec = usec % 1000000; itv.it_interval.tv_sec = interval / 1000000; itv.it_interval.tv_usec = interval % 1000000; return setitimer(ITIMER_REAL, &itv, 0); } #endif /* #if !defined(HAS_UALARM) && defined(HAS_SETITIMER) */ #if !defined(HAS_UALARM) && defined(VMS) #define HAS_UALARM #define ualarm vms_ualarm #include #include #include #include #include #include #include #define VMSERR(s) (!((s)&1)) static void us_to_VMS(useconds_t mseconds, unsigned long v[]) { int iss; unsigned long qq[2]; qq[0] = mseconds; qq[1] = 0; v[0] = v[1] = 0; iss = lib$addx(qq,qq,qq); if (VMSERR(iss)) lib$signal(iss); iss = lib$subx(v,qq,v); if (VMSERR(iss)) lib$signal(iss); iss = lib$addx(qq,qq,qq); if (VMSERR(iss)) lib$signal(iss); iss = lib$subx(v,qq,v); if (VMSERR(iss)) lib$signal(iss); iss = lib$subx(v,qq,v); if (VMSERR(iss)) lib$signal(iss); } static int VMS_to_us(unsigned long v[]) { int iss; unsigned long div=10,quot, rem; iss = lib$ediv(&div,v,",&rem); if (VMSERR(iss)) lib$signal(iss); return quot; } typedef unsigned short word; typedef struct _ualarm { int function; int repeat; unsigned long delay[2]; unsigned long interval[2]; unsigned long remain[2]; } Alarm; static int alarm_ef; static Alarm *a0, alarm_base; #define UAL_NULL 0 #define UAL_SET 1 #define UAL_CLEAR 2 #define UAL_ACTIVE 4 static void ualarm_AST(Alarm *a); static int vms_ualarm(int mseconds, int interval) { Alarm *a, abase; struct item_list3 { word length; word code; void *bufaddr; void *retlenaddr; } ; static struct item_list3 itmlst[2]; static int first = 1; unsigned long asten; int iss, enabled; if (first) { first = 0; itmlst[0].code = JPI$_ASTEN; itmlst[0].length = sizeof(asten); itmlst[0].retlenaddr = NULL; itmlst[1].code = 0; itmlst[1].length = 0; itmlst[1].bufaddr = NULL; itmlst[1].retlenaddr = NULL; iss = lib$get_ef(&alarm_ef); if (VMSERR(iss)) lib$signal(iss); a0 = &alarm_base; a0->function = UAL_NULL; } itmlst[0].bufaddr = &asten; iss = sys$getjpiw(0,0,0,itmlst,0,0,0); if (VMSERR(iss)) lib$signal(iss); if (!(asten&0x08)) return -1; a = &abase; if (mseconds) { a->function = UAL_SET; } else { a->function = UAL_CLEAR; } us_to_VMS(mseconds, a->delay); if (interval) { us_to_VMS(interval, a->interval); a->repeat = 1; } else a->repeat = 0; iss = sys$clref(alarm_ef); if (VMSERR(iss)) lib$signal(iss); iss = sys$dclast(ualarm_AST,a,0); if (VMSERR(iss)) lib$signal(iss); iss = sys$waitfr(alarm_ef); if (VMSERR(iss)) lib$signal(iss); if (a->function == UAL_ACTIVE) return VMS_to_us(a->remain); else return 0; } static void ualarm_AST(Alarm *a) { int iss; unsigned long now[2]; iss = sys$gettim(now); if (VMSERR(iss)) lib$signal(iss); if (a->function == UAL_SET || a->function == UAL_CLEAR) { if (a0->function == UAL_ACTIVE) { iss = sys$cantim(a0,PSL$C_USER); if (VMSERR(iss)) lib$signal(iss); iss = lib$subx(a0->remain, now, a->remain); if (VMSERR(iss)) lib$signal(iss); if (a->remain[1] & 0x80000000) a->remain[0] = a->remain[1] = 0; } if (a->function == UAL_SET) { a->function = a0->function; a0->function = UAL_ACTIVE; a0->repeat = a->repeat; if (a0->repeat) { a0->interval[0] = a->interval[0]; a0->interval[1] = a->interval[1]; } a0->delay[0] = a->delay[0]; a0->delay[1] = a->delay[1]; iss = lib$subx(now, a0->delay, a0->remain); if (VMSERR(iss)) lib$signal(iss); iss = sys$setimr(0,a0->delay,ualarm_AST,a0); if (VMSERR(iss)) lib$signal(iss); } else { a->function = a0->function; a0->function = UAL_NULL; } iss = sys$setef(alarm_ef); if (VMSERR(iss)) lib$signal(iss); } else if (a->function == UAL_ACTIVE) { if (a->repeat) { iss = lib$subx(now, a->interval, a->remain); if (VMSERR(iss)) lib$signal(iss); iss = sys$setimr(0,a->interval,ualarm_AST,a); if (VMSERR(iss)) lib$signal(iss); } else { a->function = UAL_NULL; } iss = sys$wake(0,0); if (VMSERR(iss)) lib$signal(iss); lib$signal(SS$_ASTFLT); } else { lib$signal(SS$_BADPARAM); } } #endif /* #if !defined(HAS_UALARM) && defined(VMS) */ #ifdef HAS_GETTIMEOFDAY static int myU2time(pTHX_ UV *ret) { struct timeval Tp; int status; status = gettimeofday (&Tp, NULL); ret[0] = Tp.tv_sec; ret[1] = Tp.tv_usec; return status; } static NV myNVtime() { #ifdef WIN32 dTHX; #endif struct timeval Tp; int status; status = gettimeofday (&Tp, NULL); return status == 0 ? Tp.tv_sec + (Tp.tv_usec / 1000000.) : -1.0; } #endif /* #ifdef HAS_GETTIMEOFDAY */ /* #line 648 "HiRes.c" */ #if defined(USE_ITHREADS) && defined(MY_CXT_KEY) #define XSubPPtmpAAAA 1 XS(XS_Time__HiRes_CLONE); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_CLONE) { dXSARGS; { /* #line 664 "HiRes.xs" */ MY_CXT_CLONE; /* #line 659 "HiRes.c" */ } XSRETURN_EMPTY; } #endif /* INCLUDE: Including 'const-xs.inc' from 'HiRes.xs' */ XS(XS_Time__HiRes_constant); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_constant) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Time::HiRes::constant(sv)"); SP -= items; { /* #line 4 "const-xs.inc" */ #ifdef dXSTARG dXSTARG; /* Faster if we have it. */ #else dTARGET; #endif STRLEN len; int type; IV iv; /* NV nv; Uncomment this if you need to return NVs */ /* const char *pv; Uncomment this if you need to return PVs */ /* #line 687 "HiRes.c" */ SV * sv = ST(0); const char * s = SvPV(sv, len); /* #line 18 "const-xs.inc" */ /* Change this to constant(aTHX_ s, len, &iv, &nv); if you need to return both NVs and IVs */ type = constant(aTHX_ s, len, &iv); /* Return 1 or 2 items. First is error message, or undef if no error. Second, if present, is found value */ switch (type) { case PERL_constant_NOTFOUND: sv = sv_2mortal(newSVpvf("%s is not a valid Time::HiRes macro", s)); PUSHs(sv); break; case PERL_constant_NOTDEF: sv = sv_2mortal(newSVpvf( "Your vendor has not defined Time::HiRes macro %s, used", s)); PUSHs(sv); break; case PERL_constant_ISIV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHi(iv); break; /* Uncomment this if you need to return NOs case PERL_constant_ISNO: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(&PL_sv_no); break; */ /* Uncomment this if you need to return NVs case PERL_constant_ISNV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHn(nv); break; */ /* Uncomment this if you need to return PVs case PERL_constant_ISPV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHp(pv, strlen(pv)); break; */ /* Uncomment this if you need to return PVNs case PERL_constant_ISPVN: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHp(pv, iv); break; */ /* Uncomment this if you need to return SVs case PERL_constant_ISSV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(sv); break; */ /* Uncomment this if you need to return UNDEFs case PERL_constant_ISUNDEF: break; */ /* Uncomment this if you need to return UVs case PERL_constant_ISUV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHu((UV)iv); break; */ /* Uncomment this if you need to return YESs case PERL_constant_ISYES: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(&PL_sv_yes); break; */ default: sv = sv_2mortal(newSVpvf( "Unexpected return type %d while processing Time::HiRes macro %s, used", type, s)); PUSHs(sv); } /* #line 762 "HiRes.c" */ PUTBACK; return; } } /* INCLUDE: Returning to 'HiRes.xs' from 'const-xs.inc' */ #if defined(HAS_USLEEP) && defined(HAS_GETTIMEOFDAY) #define XSubPPtmpAAAB 1 XS(XS_Time__HiRes_usleep); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_usleep) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Time::HiRes::usleep(useconds)"); { NV useconds = (NV)SvNV(ST(0)); /* #line 676 "HiRes.xs" */ struct timeval Ta, Tb; /* #line 784 "HiRes.c" */ NV RETVAL; dXSTARG; /* #line 678 "HiRes.xs" */ gettimeofday(&Ta, NULL); if (items > 0) { if (useconds > 1E6) { IV seconds = (IV) (useconds / 1E6); /* If usleep() has been implemented using setitimer() * then this contortion is unnecessary-- but usleep() * may be implemented in some other way, so let's contort. */ if (seconds) { sleep(seconds); useconds -= 1E6 * seconds; } } else if (useconds < 0.0) croak("Time::HiRes::usleep(%"NVgf"): negative time not invented yet", useconds); usleep((U32)useconds); } else PerlProc_pause(); gettimeofday(&Tb, NULL); #if 0 printf("[%ld %ld] [%ld %ld]\n", Tb.tv_sec, Tb.tv_usec, Ta.tv_sec, Ta.tv_usec); #endif RETVAL = 1E6*(Tb.tv_sec-Ta.tv_sec)+(NV)((IV)Tb.tv_usec-(IV)Ta.tv_usec); /* #line 810 "HiRes.c" */ XSprePUSH; PUSHn((NV)RETVAL); } XSRETURN(1); } #if defined(TIME_HIRES_NANOSLEEP) #define XSubPPtmpAAAC 1 XS(XS_Time__HiRes_nanosleep); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_nanosleep) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Time::HiRes::nanosleep(nseconds)"); { NV nseconds = (NV)SvNV(ST(0)); /* #line 709 "HiRes.xs" */ struct timeval Ta, Tb; /* #line 829 "HiRes.c" */ NV RETVAL; dXSTARG; /* #line 711 "HiRes.xs" */ gettimeofday(&Ta, NULL); if (items > 0) { struct timespec tsa; if (nseconds > 1E9) { IV seconds = (IV) (nseconds / 1E9); if (seconds) { sleep(seconds); nseconds -= 1E9 * seconds; } } else if (nseconds < 0.0) croak("Time::HiRes::nanosleep(%"NVgf"): negative time not invented yet", nseconds); tsa.tv_sec = (IV) (nseconds / 1E9); tsa.tv_nsec = (IV) nseconds - tsa.tv_sec * 1E9; nanosleep(&tsa, NULL); } else PerlProc_pause(); gettimeofday(&Tb, NULL); RETVAL = 1E3*(1E6*(Tb.tv_sec-Ta.tv_sec)+(NV)((IV)Tb.tv_usec-(IV)Ta.tv_usec)); /* #line 852 "HiRes.c" */ XSprePUSH; PUSHn((NV)RETVAL); } XSRETURN(1); } #endif /* #if defined(TIME_HIRES_NANOSLEEP) */ XS(XS_Time__HiRes_sleep); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_sleep) { dXSARGS; { /* #line 738 "HiRes.xs" */ struct timeval Ta, Tb; /* #line 866 "HiRes.c" */ NV RETVAL; dXSTARG; /* #line 740 "HiRes.xs" */ gettimeofday(&Ta, NULL); if (items > 0) { NV seconds = SvNV(ST(0)); if (seconds >= 0.0) { UV useconds = (UV)(1E6 * (seconds - (UV)seconds)); if (seconds >= 1.0) sleep((U32)seconds); if ((IV)useconds < 0) { #if !defined(SPEC_CPU) #if defined(__sparc64__) && defined(__GNUC__) /* Sparc64 gcc 2.95.3 (e.g. on NetBSD) has a bug * where (0.5 - (UV)(0.5)) will under certain * circumstances (if the double is cast to UV more * than once?) evaluate to -0.5, instead of 0.5. */ useconds = -(IV)useconds; #endif /* #if defined(__sparc64__) && defined(__GNUC__) */ #endif /* !SPEC_CPU */ if ((IV)useconds < 0) croak("Time::HiRes::sleep(%"NVgf"): internal error: useconds < 0 (unsigned %"UVuf" signed %"IVdf")", seconds, useconds, (IV)useconds); } usleep(useconds); } else croak("Time::HiRes::sleep(%"NVgf"): negative time not invented yet", seconds); } else PerlProc_pause(); gettimeofday(&Tb, NULL); #if 0 printf("[%ld %ld] [%ld %ld]\n", Tb.tv_sec, Tb.tv_usec, Ta.tv_sec, Ta.tv_usec); #endif RETVAL = (NV)(Tb.tv_sec-Ta.tv_sec)+0.000001*(NV)(Tb.tv_usec-Ta.tv_usec); /* #line 899 "HiRes.c" */ XSprePUSH; PUSHn((NV)RETVAL); } XSRETURN(1); } #endif /* #if defined(HAS_USLEEP) && defined(HAS_GETTIMEOFDAY) */ #ifdef HAS_UALARM #define XSubPPtmpAAAD 1 XS(XS_Time__HiRes_ualarm); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_ualarm) { dXSARGS; if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: Time::HiRes::ualarm(useconds, interval=0)"); { int useconds = (int)SvIV(ST(0)); int interval; int RETVAL; dXSTARG; if (items < 2) interval = 0; else { interval = (int)SvIV(ST(1)); } /* #line 781 "HiRes.xs" */ if (useconds < 0 || interval < 0) croak("Time::HiRes::ualarm(%d, %d): negative time not invented yet", useconds, interval); RETVAL = ualarm(useconds, interval); /* #line 931 "HiRes.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_Time__HiRes_alarm); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_alarm) { dXSARGS; if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: Time::HiRes::alarm(seconds, interval=0)"); { NV seconds = (NV)SvNV(ST(0)); NV interval; NV RETVAL; dXSTARG; if (items < 2) interval = 0; else { interval = (NV)SvNV(ST(1)); } /* #line 793 "HiRes.xs" */ if (seconds < 0.0 || interval < 0.0) croak("Time::HiRes::alarm(%"NVgf", %"NVgf"): negative time not invented yet", seconds, interval); RETVAL = (NV)ualarm(seconds * 1000000, interval * 1000000) / 1E6; /* #line 960 "HiRes.c" */ XSprePUSH; PUSHn((NV)RETVAL); } XSRETURN(1); } #endif /* #ifdef HAS_UALARM */ #ifdef HAS_GETTIMEOFDAY # ifdef MACOS_TRADITIONAL /* fix epoch TZ and use unsigned time_t */ #define XSubPPtmpAAAE 1 XS(XS_Time__HiRes_gettimeofday); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_gettimeofday) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Time::HiRes::gettimeofday()"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 808 "HiRes.xs" */ struct timeval Tp; struct timezone Tz; /* #line 983 "HiRes.c" */ /* #line 811 "HiRes.xs" */ int status; status = gettimeofday (&Tp, &Tz); Tp.tv_sec += Tz.tz_minuteswest * 60; /* adjust for TZ */ if (GIMME == G_ARRAY) { EXTEND(sp, 2); /* Mac OS (Classic) has unsigned time_t */ PUSHs(sv_2mortal(newSVuv(Tp.tv_sec))); PUSHs(sv_2mortal(newSViv(Tp.tv_usec))); } else { EXTEND(sp, 1); PUSHs(sv_2mortal(newSVnv(Tp.tv_sec + (Tp.tv_usec / 1000000.0)))); } /* #line 998 "HiRes.c" */ PUTBACK; return; } } XS(XS_Time__HiRes_time); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_time) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Time::HiRes::time()"); { /* #line 828 "HiRes.xs" */ struct timeval Tp; struct timezone Tz; /* #line 1014 "HiRes.c" */ NV RETVAL; dXSTARG; /* #line 831 "HiRes.xs" */ int status; status = gettimeofday (&Tp, &Tz); Tp.tv_sec += Tz.tz_minuteswest * 60; /* adjust for TZ */ RETVAL = Tp.tv_sec + (Tp.tv_usec / 1000000.0); /* #line 1022 "HiRes.c" */ XSprePUSH; PUSHn((NV)RETVAL); } XSRETURN(1); } # else /* MACOS_TRADITIONAL */ #define XSubPPtmpAAAF 1 XS(XS_Time__HiRes_gettimeofday); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_gettimeofday) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Time::HiRes::gettimeofday()"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 842 "HiRes.xs" */ struct timeval Tp; /* #line 1042 "HiRes.c" */ /* #line 844 "HiRes.xs" */ int status; status = gettimeofday (&Tp, NULL); if (GIMME == G_ARRAY) { EXTEND(sp, 2); PUSHs(sv_2mortal(newSViv(Tp.tv_sec))); PUSHs(sv_2mortal(newSViv(Tp.tv_usec))); } else { EXTEND(sp, 1); PUSHs(sv_2mortal(newSVnv(Tp.tv_sec + (Tp.tv_usec / 1000000.0)))); } /* #line 1054 "HiRes.c" */ PUTBACK; return; } } XS(XS_Time__HiRes_time); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_time) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Time::HiRes::time()"); { /* #line 858 "HiRes.xs" */ struct timeval Tp; /* #line 1069 "HiRes.c" */ NV RETVAL; dXSTARG; /* #line 860 "HiRes.xs" */ int status; status = gettimeofday (&Tp, NULL); RETVAL = Tp.tv_sec + (Tp.tv_usec / 1000000.); /* #line 1076 "HiRes.c" */ XSprePUSH; PUSHn((NV)RETVAL); } XSRETURN(1); } # endif /* MACOS_TRADITIONAL */ #endif /* #ifdef HAS_GETTIMEOFDAY */ #if defined(HAS_GETITIMER) && defined(HAS_SETITIMER) #define TV2NV(tv) ((NV)((tv).tv_sec) + 0.000001 * (NV)((tv).tv_usec)) #define XSubPPtmpAAAG 1 XS(XS_Time__HiRes_setitimer); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_setitimer) { dXSARGS; if (items < 2 || items > 3) Perl_croak(aTHX_ "Usage: Time::HiRes::setitimer(which, seconds, interval = 0)"); SP -= items; { int which = (int)SvIV(ST(0)); NV seconds = (NV)SvNV(ST(1)); NV interval; /* #line 879 "HiRes.xs" */ struct itimerval newit; struct itimerval oldit; /* #line 1102 "HiRes.c" */ if (items < 3) interval = 0; else { interval = (NV)SvNV(ST(2)); } /* #line 882 "HiRes.xs" */ if (seconds < 0.0 || interval < 0.0) croak("Time::HiRes::setitimer(%"IVdf", %"NVgf", %"NVgf"): negative time not invented yet", (IV)which, seconds, interval); newit.it_value.tv_sec = seconds; newit.it_value.tv_usec = (seconds - (NV)newit.it_value.tv_sec) * 1000000.0; newit.it_interval.tv_sec = interval; newit.it_interval.tv_usec = (interval - (NV)newit.it_interval.tv_sec) * 1000000.0; if (setitimer(which, &newit, &oldit) == 0) { EXTEND(sp, 1); PUSHs(sv_2mortal(newSVnv(TV2NV(oldit.it_value)))); if (GIMME == G_ARRAY) { EXTEND(sp, 1); PUSHs(sv_2mortal(newSVnv(TV2NV(oldit.it_interval)))); } } /* #line 1126 "HiRes.c" */ PUTBACK; return; } } XS(XS_Time__HiRes_getitimer); /* prototype to pass -Wmissing-prototypes */ XS(XS_Time__HiRes_getitimer) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Time::HiRes::getitimer(which)"); SP -= items; { int which = (int)SvIV(ST(0)); /* #line 903 "HiRes.xs" */ struct itimerval nowit; /* #line 1143 "HiRes.c" */ /* #line 905 "HiRes.xs" */ if (getitimer(which, &nowit) == 0) { EXTEND(sp, 1); PUSHs(sv_2mortal(newSVnv(TV2NV(nowit.it_value)))); if (GIMME == G_ARRAY) { EXTEND(sp, 1); PUSHs(sv_2mortal(newSVnv(TV2NV(nowit.it_interval)))); } } /* #line 1153 "HiRes.c" */ PUTBACK; return; } } #endif /* #if defined(HAS_GETITIMER) && defined(HAS_SETITIMER) */ #ifdef __cplusplus extern "C" #endif XS(boot_Time__HiRes); /* prototype to pass -Wmissing-prototypes */ XS(boot_Time__HiRes) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; #if XSubPPtmpAAAA newXSproto("Time::HiRes::CLONE", XS_Time__HiRes_CLONE, file, ";@"); #endif newXSproto("Time::HiRes::constant", XS_Time__HiRes_constant, file, "$"); #if XSubPPtmpAAAB newXSproto("Time::HiRes::usleep", XS_Time__HiRes_usleep, file, "$"); #if XSubPPtmpAAAC newXSproto("Time::HiRes::nanosleep", XS_Time__HiRes_nanosleep, file, "$"); #endif newXSproto("Time::HiRes::sleep", XS_Time__HiRes_sleep, file, ";@"); #endif #if XSubPPtmpAAAD newXSproto("Time::HiRes::ualarm", XS_Time__HiRes_ualarm, file, "$;$"); newXSproto("Time::HiRes::alarm", XS_Time__HiRes_alarm, file, "$;$"); #endif #if XSubPPtmpAAAE newXSproto("Time::HiRes::gettimeofday", XS_Time__HiRes_gettimeofday, file, ""); newXSproto("Time::HiRes::time", XS_Time__HiRes_time, file, ""); #endif #if XSubPPtmpAAAF newXSproto("Time::HiRes::gettimeofday", XS_Time__HiRes_gettimeofday, file, ""); newXSproto("Time::HiRes::time", XS_Time__HiRes_time, file, ""); #endif #if XSubPPtmpAAAG newXSproto("Time::HiRes::setitimer", XS_Time__HiRes_setitimer, file, "$$;$"); newXSproto("Time::HiRes::getitimer", XS_Time__HiRes_getitimer, file, "$"); #endif /* Initialisation Section */ /* #line 643 "HiRes.xs" */ { #ifdef MY_CXT_KEY MY_CXT_INIT; #endif #ifdef ATLEASTFIVEOHOHFIVE #ifdef HAS_GETTIMEOFDAY { UV auv[2]; hv_store(PL_modglobal, "Time::NVtime", 12, newSViv(PTR2IV(myNVtime)), 0); if (myU2time(aTHX_ auv) == 0) hv_store(PL_modglobal, "Time::U2time", 12, newSViv((IV) auv[0]), 0); } #endif #endif } #if XSubPPtmpAAAA #endif #if XSubPPtmpAAAB #if XSubPPtmpAAAC #endif #endif #if XSubPPtmpAAAD #endif #if XSubPPtmpAAAE #endif #if XSubPPtmpAAAF #endif #if XSubPPtmpAAAG #endif /* #line 1232 "HiRes.c" */ /* End of Initialisation Section */ XSRETURN_YES; } ================================================ FILE: tests/perlbench/Hostname.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of Hostname.xs. Do not edit this file, edit Hostname.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "Hostname.xs" */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #if defined(I_UNISTD) && defined(HAS_GETHOSTNAME) # include #endif /* a reasonable default */ #ifndef MAXHOSTNAMELEN # define MAXHOSTNAMELEN 256 #endif /* swiped from POSIX.xs */ #if defined(__VMS) && !defined(__POSIX_SOURCE) # if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000) # include # endif #endif #ifdef I_SYSUTSNAME # include #endif /* #line 35 "Hostname.c" */ XS(XS_Sys__Hostname_ghname); /* prototype to pass -Wmissing-prototypes */ XS(XS_Sys__Hostname_ghname) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Sys::Hostname::ghname()"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 30 "Hostname.xs" */ IV retval = -1; SV *sv = (SV *)0; /* SPEC CPU */ /* #line 48 "Hostname.c" */ /* #line 33 "Hostname.xs" */ EXTEND(SP, 1); #ifdef HAS_GETHOSTNAME { char tmps[MAXHOSTNAMELEN]; retval = PerlSock_gethostname(tmps, sizeof(tmps)); sv = newSVpvn(tmps, strlen(tmps)); } #else # ifdef HAS_PHOSTNAME { PerlIO *io; char tmps[MAXHOSTNAMELEN]; char *p = tmps; char c; io = PerlProc_popen(PHOSTNAME, "r"); if (!io) goto check_out; while (PerlIO_read(io, &c, sizeof(c)) == 1) { if (isSPACE(c) || p - tmps >= sizeof(tmps)) break; *p++ = c; } PerlProc_pclose(io); *p = '\0'; retval = 0; sv = newSVpvn(tmps, strlen(tmps)); } # else # ifdef HAS_UNAME { struct utsname u; if (PerlEnv_uname(&u) == -1) goto check_out; sv = newSVpvn(u.nodename, strlen(u.nodename)); retval = 0; } # endif # endif #endif #ifndef HAS_GETHOSTNAME check_out: #endif if (retval == -1) XSRETURN_UNDEF; else PUSHs(sv_2mortal(sv)); /* #line 96 "Hostname.c" */ PUTBACK; return; } } #ifdef __cplusplus extern "C" #endif XS(boot_Sys__Hostname); /* prototype to pass -Wmissing-prototypes */ XS(boot_Sys__Hostname) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXS("Sys::Hostname::ghname", XS_Sys__Hostname_ghname, file); XSRETURN_YES; } ================================================ FILE: tests/perlbench/INTERN.h ================================================ /* INTERN.h * * Copyright (C) 1991, 1992, 1993, 1995, 1996, 1998, 2000, 2001, * by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * EXT designates a global var which is defined in perl.h * dEXT designates a global var which is defined in another * file, so we can't count on finding it in perl.h * (this practice should be avoided). */ #undef EXT #undef dEXT #undef EXTCONST #undef dEXTCONST #if defined(VMS) && !defined(__GNUC__) /* Suppress portability warnings from DECC for VMS-specific extensions */ # ifdef __DECC # pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT) # endif # define EXT globaldef {"$GLOBAL_RW_VARS"} noshare # define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare # define EXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly # define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly #else #if defined(WIN32) && defined(__MINGW32__) # define EXT __declspec(dllexport) # define dEXT # define EXTCONST __declspec(dllexport) const # define dEXTCONST const #else #ifdef __cplusplus # define EXT # define dEXT # define EXTCONST extern const # define dEXTCONST const #else # define EXT # define dEXT # define EXTCONST const # define dEXTCONST const #endif #endif #endif #undef INIT #define INIT(x) = x #define DOINIT ================================================ FILE: tests/perlbench/IO.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of IO.xs. Do not edit this file, edit IO.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "IO.xs" */ /* * Copyright (c) 1997-8 Graham Barr . All rights reserved. * This program is free software; you can redistribute it and/or * modify it under the same terms as Perl itself. */ #define PERL_EXT_IO #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #define PERLIO_NOT_STDIO 1 #include "perl.h" #include "XSUB.h" #include "poll.h" #ifdef I_UNISTD # include #endif #if defined(I_FCNTL) || defined(HAS_FCNTL) # include #endif #ifndef SIOCATMARK # ifdef I_SYS_SOCKIO # include # endif #endif #ifdef PerlIO #if defined(MACOS_TRADITIONAL) && defined(USE_SFIO) #define PERLIO_IS_STDIO 1 #undef setbuf #undef setvbuf #define setvbuf _stdsetvbuf #define setbuf(f,b) ( __sf_setbuf(f,b) ) #endif typedef int SysRet; typedef PerlIO * InputStream; typedef PerlIO * OutputStream; #else #define PERLIO_IS_STDIO 1 typedef int SysRet; typedef FILE * InputStream; typedef FILE * OutputStream; #endif #define MY_start_subparse(fmt,flags) start_subparse(fmt,flags) #ifndef gv_stashpvn #define gv_stashpvn(str,len,flags) gv_stashpv(str,flags) #endif static int not_here(char *s) { croak("%s not implemented on this architecture", s); return -1; } #ifndef PerlIO #define PerlIO_fileno(f) fileno(f) #endif static int io_blocking(pTHX_ InputStream f, int block) { #if defined(HAS_FCNTL) int RETVAL; if(!f) { errno = EBADF; return -1; } RETVAL = fcntl(PerlIO_fileno(f), F_GETFL, 0); if (RETVAL >= 0) { int mode = RETVAL; int newmode = mode; #ifdef O_NONBLOCK /* POSIX style */ # ifndef O_NDELAY # define O_NDELAY O_NONBLOCK # endif /* Note: UNICOS and UNICOS/mk a F_GETFL returns an O_NDELAY * after a successful F_SETFL of an O_NONBLOCK. */ RETVAL = RETVAL & (O_NONBLOCK | O_NDELAY) ? 0 : 1; if (block == 0) { newmode &= ~O_NDELAY; newmode |= O_NONBLOCK; } else if (block > 0) { newmode &= ~(O_NDELAY|O_NONBLOCK); } #else /* Not POSIX - better have O_NDELAY or we can't cope. * for BSD-ish machines this is an acceptable alternative * for SysV we can't tell "would block" from EOF but that is * the way SysV is... */ RETVAL = RETVAL & O_NDELAY ? 0 : 1; if (block == 0) { newmode |= O_NDELAY; } else if (block > 0) { newmode &= ~O_NDELAY; } #endif if (newmode != mode) { int ret; ret = fcntl(PerlIO_fileno(f),F_SETFL,newmode); if (ret < 0) RETVAL = ret; } } return RETVAL; #else return -1; #endif } /* #line 130 "IO.c" */ XS(XS_IO__Seekable_getpos); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Seekable_getpos) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: IO::Seekable::getpos(handle)"); { InputStream handle = IoIFP(sv_2io(ST(0))); /* #line 126 "IO.xs" */ if (handle) { #ifdef PerlIO ST(0) = sv_2mortal(newSV(0)); if (PerlIO_getpos(handle, ST(0)) != 0) { ST(0) = &PL_sv_undef; } #else if (fgetpos(handle, &pos)) { ST(0) = &PL_sv_undef; } else { ST(0) = sv_2mortal(newSVpv((char*)&pos, sizeof(Fpos_t))); } #endif } else { ST(0) = &PL_sv_undef; errno = EINVAL; } /* #line 158 "IO.c" */ } XSRETURN(1); } XS(XS_IO__Seekable_setpos); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Seekable_setpos) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: IO::Seekable::setpos(handle, pos)"); { InputStream handle = IoIFP(sv_2io(ST(0))); SV * pos = ST(1); SysRet RETVAL; /* #line 150 "IO.xs" */ if (handle) { #ifdef PerlIO RETVAL = PerlIO_setpos(handle, pos); #else char *p; STRLEN len; if ((p = SvPV(pos,len)) && len == sizeof(Fpos_t)) { RETVAL = fsetpos(handle, (Fpos_t*)p); } else { RETVAL = -1; errno = EINVAL; } #endif } else { RETVAL = -1; errno = EINVAL; } /* #line 193 "IO.c" */ ST(0) = sv_newmortal(); if (RETVAL != -1) { if (RETVAL == 0) sv_setpvn(ST(0), "0 but true", 10); else sv_setiv(ST(0), (IV)RETVAL); } } XSRETURN(1); } XS(XS_IO__File_new_tmpfile); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__File_new_tmpfile) { dXSARGS; if (items < 0 || items > 1) Perl_croak(aTHX_ "Usage: IO::File::new_tmpfile(packname = \"IO::File\")"); { char * packname; /* #line 178 "IO.xs" */ OutputStream fp; GV *gv; /* #line 216 "IO.c" */ if (items < 1) packname = "IO::File"; else { packname = (char *)SvPV_nolen(ST(0)); } /* #line 181 "IO.xs" */ #ifdef PerlIO fp = PerlIO_tmpfile(); #else fp = tmpfile(); #endif gv = (GV*)SvREFCNT_inc(newGVgen(packname)); hv_delete(GvSTASH(gv), GvNAME(gv), GvNAMELEN(gv), G_DISCARD); if (do_open(gv, "+>&", 3, FALSE, 0, 0, fp)) { ST(0) = sv_2mortal(newRV((SV*)gv)); sv_bless(ST(0), gv_stashpv(packname, TRUE)); SvREFCNT_dec(gv); /* undo increment in newRV() */ } else { ST(0) = &PL_sv_undef; SvREFCNT_dec(gv); } /* #line 240 "IO.c" */ } XSRETURN(1); } XS(XS_IO__Poll__poll); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Poll__poll) { dXSARGS; if (items < 1) Perl_croak(aTHX_ "Usage: IO::Poll::_poll(timeout, ...)"); SP -= items; { int timeout = (int)SvIV(ST(0)); /* #line 204 "IO.xs" */ { #ifdef HAS_POLL int nfd = (items - 1) / 2; SV *tmpsv = NEWSV(999,nfd * sizeof(struct pollfd)); struct pollfd *fds = (struct pollfd *)SvPVX(tmpsv); int i,j,ret; for(i=1, j=0 ; j < nfd ; j++) { fds[j].fd = SvIV(ST(i)); i++; fds[j].events = (short)SvIV(ST(i)); i++; fds[j].revents = 0; } if((ret = poll(fds,nfd,timeout)) >= 0) { for(i=1, j=0 ; j < nfd ; j++) { sv_setiv(ST(i), fds[j].fd); i++; sv_setiv(ST(i), fds[j].revents); i++; } } SvREFCNT_dec(tmpsv); XSRETURN_IV(ret); #else not_here("IO::Poll::poll"); #endif } /* #line 280 "IO.c" */ PUTBACK; return; } } XS(XS_IO__Handle_blocking); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_blocking) { dXSARGS; if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: IO::Handle::blocking(handle, blk=-1)"); { InputStream handle = IoIFP(sv_2io(ST(0))); int blk; if (items < 2) blk = -1; else { blk = (int)SvIV(ST(1)); } /* #line 238 "IO.xs" */ { int ret = io_blocking(aTHX_ handle, items == 1 ? -1 : blk ? 1 : 0); if(ret >= 0) XSRETURN_IV(ret); else XSRETURN_UNDEF; } /* #line 309 "IO.c" */ } XSRETURN_EMPTY; } XS(XS_IO__Handle_ungetc); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_ungetc) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: IO::Handle::ungetc(handle, c)"); { InputStream handle = IoIFP(sv_2io(ST(0))); int c = (int)SvIV(ST(1)); int RETVAL; dXSTARG; /* #line 253 "IO.xs" */ if (handle) #ifdef PerlIO RETVAL = PerlIO_ungetc(handle, c); #else RETVAL = ungetc(c, handle); #endif else { RETVAL = -1; errno = EINVAL; } /* #line 336 "IO.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_IO__Handle_error); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_error) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: IO::Handle::error(handle)"); { InputStream handle = IoIFP(sv_2io(ST(0))); int RETVAL; dXSTARG; /* #line 270 "IO.xs" */ if (handle) #ifdef PerlIO RETVAL = PerlIO_error(handle); #else RETVAL = ferror(handle); #endif else { RETVAL = -1; errno = EINVAL; } /* #line 363 "IO.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_IO__Handle_clearerr); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_clearerr) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: IO::Handle::clearerr(handle)"); { InputStream handle = IoIFP(sv_2io(ST(0))); int RETVAL; dXSTARG; /* #line 287 "IO.xs" */ if (handle) { #ifdef PerlIO PerlIO_clearerr(handle); #else clearerr(handle); #endif RETVAL = 0; } else { RETVAL = -1; errno = EINVAL; } /* #line 392 "IO.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_IO__Handle_untaint); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_untaint) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: IO::Handle::untaint(handle)"); { SV * handle = ST(0); int RETVAL; dXSTARG; /* #line 306 "IO.xs" */ #ifdef IOf_UNTAINT IO * io; io = sv_2io(handle); if (io) { IoFLAGS(io) |= IOf_UNTAINT; RETVAL = 0; } else { #endif RETVAL = -1; errno = EINVAL; #ifdef IOf_UNTAINT } #endif /* #line 423 "IO.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_IO__Handle_flush); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_flush) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: IO::Handle::flush(handle)"); { OutputStream handle = IoOFP(sv_2io(ST(0))); SysRet RETVAL; /* #line 327 "IO.xs" */ if (handle) #ifdef PerlIO RETVAL = PerlIO_flush(handle); #else RETVAL = Fflush(handle); #endif else { RETVAL = -1; errno = EINVAL; } /* #line 449 "IO.c" */ ST(0) = sv_newmortal(); if (RETVAL != -1) { if (RETVAL == 0) sv_setpvn(ST(0), "0 but true", 10); else sv_setiv(ST(0), (IV)RETVAL); } } XSRETURN(1); } XS(XS_IO__Handle_setbuf); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_setbuf) { dXSARGS; if (items < 1) Perl_croak(aTHX_ "Usage: IO::Handle::setbuf(handle, ...)"); { OutputStream handle = IoOFP(sv_2io(ST(0))); /* #line 344 "IO.xs" */ if (handle) #ifdef PERLIO_IS_STDIO { char *buf = items == 2 && SvPOK(ST(1)) ? sv_grow(ST(1), BUFSIZ) : 0; setbuf(handle, buf); } #else not_here("IO::Handle::setbuf"); #endif /* #line 480 "IO.c" */ } XSRETURN_EMPTY; } XS(XS_IO__Handle_setvbuf); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_setvbuf) { dXSARGS; { SysRet RETVAL; /* #line 358 "IO.xs" */ if (items != 4) Perl_croak(aTHX_ "Usage: IO::Handle::setvbuf(handle, buf, type, size)"); #if defined(PERLIO_IS_STDIO) && defined(_IOFBF) && defined(HAS_SETVBUF) { OutputStream handle = 0; char * buf = SvPOK(ST(1)) ? sv_grow(ST(1), SvIV(ST(3))) : 0; int type; int size; if (items == 4) { handle = IoOFP(sv_2io(ST(0))); buf = SvPOK(ST(1)) ? sv_grow(ST(1), SvIV(ST(3))) : 0; type = (int)SvIV(ST(2)); size = (int)SvIV(ST(3)); } if (!handle) /* Try input stream. */ handle = IoIFP(sv_2io(ST(0))); if (items == 4 && handle) RETVAL = setvbuf(handle, buf, type, size); else { RETVAL = -1; errno = EINVAL; } } #else RETVAL = (SysRet) not_here("IO::Handle::setvbuf"); #endif /* #line 519 "IO.c" */ ST(0) = sv_newmortal(); if (RETVAL != -1) { if (RETVAL == 0) sv_setpvn(ST(0), "0 but true", 10); else sv_setiv(ST(0), (IV)RETVAL); } } XSRETURN(1); } XS(XS_IO__Handle_sync); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Handle_sync) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: IO::Handle::sync(handle)"); { OutputStream handle = IoOFP(sv_2io(ST(0))); SysRet RETVAL; /* #line 393 "IO.xs" */ #ifdef HAS_FSYNC if(handle) RETVAL = fsync(PerlIO_fileno(handle)); else { RETVAL = -1; errno = EINVAL; } #else RETVAL = (SysRet) not_here("IO::Handle::sync"); #endif /* #line 551 "IO.c" */ ST(0) = sv_newmortal(); if (RETVAL != -1) { if (RETVAL == 0) sv_setpvn(ST(0), "0 but true", 10); else sv_setiv(ST(0), (IV)RETVAL); } } XSRETURN(1); } XS(XS_IO__Socket_sockatmark); /* prototype to pass -Wmissing-prototypes */ XS(XS_IO__Socket_sockatmark) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: IO::Socket::sockatmark(sock)"); { InputStream sock = IoIFP(sv_2io(ST(0))); /* #line 414 "IO.xs" */ int fd; /* #line 573 "IO.c" */ SysRet RETVAL; /* #line 416 "IO.xs" */ { fd = PerlIO_fileno(sock); #ifdef HAS_SOCKATMARK RETVAL = sockatmark(fd); #else { int flag = 0; # ifdef SIOCATMARK # if defined(NETWARE) || defined(WIN32) if (ioctl(fd, SIOCATMARK, (void*)&flag) != 0) # else if (ioctl(fd, SIOCATMARK, &flag) != 0) # endif XSRETURN_UNDEF; # else not_here("IO::Socket::atmark"); # endif RETVAL = flag; } #endif } /* #line 597 "IO.c" */ ST(0) = sv_newmortal(); if (RETVAL != -1) { if (RETVAL == 0) sv_setpvn(ST(0), "0 but true", 10); else sv_setiv(ST(0), (IV)RETVAL); } } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_IO); /* prototype to pass -Wmissing-prototypes */ XS(boot_IO) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXS("IO::Seekable::getpos", XS_IO__Seekable_getpos, file); newXS("IO::Seekable::setpos", XS_IO__Seekable_setpos, file); newXS("IO::File::new_tmpfile", XS_IO__File_new_tmpfile, file); newXS("IO::Poll::_poll", XS_IO__Poll__poll, file); newXSproto("IO::Handle::blocking", XS_IO__Handle_blocking, file, "$;$"); newXS("IO::Handle::ungetc", XS_IO__Handle_ungetc, file); newXS("IO::Handle::error", XS_IO__Handle_error, file); newXS("IO::Handle::clearerr", XS_IO__Handle_clearerr, file); newXS("IO::Handle::untaint", XS_IO__Handle_untaint, file); newXS("IO::Handle::flush", XS_IO__Handle_flush, file); newXS("IO::Handle::setbuf", XS_IO__Handle_setbuf, file); newXS("IO::Handle::setvbuf", XS_IO__Handle_setvbuf, file); newXS("IO::Handle::sync", XS_IO__Handle_sync, file); newXSproto("IO::Socket::sockatmark", XS_IO__Socket_sockatmark, file, "$"); /* Initialisation Section */ /* #line 441 "IO.xs" */ { HV *stash; /* * constant subs for IO::Poll */ stash = gv_stashpvn("IO::Poll", 8, TRUE); #ifdef POLLIN newCONSTSUB(stash,"POLLIN",newSViv(POLLIN)); #endif #ifdef POLLPRI newCONSTSUB(stash,"POLLPRI", newSViv(POLLPRI)); #endif #ifdef POLLOUT newCONSTSUB(stash,"POLLOUT", newSViv(POLLOUT)); #endif #ifdef POLLRDNORM newCONSTSUB(stash,"POLLRDNORM", newSViv(POLLRDNORM)); #endif #ifdef POLLWRNORM newCONSTSUB(stash,"POLLWRNORM", newSViv(POLLWRNORM)); #endif #ifdef POLLRDBAND newCONSTSUB(stash,"POLLRDBAND", newSViv(POLLRDBAND)); #endif #ifdef POLLWRBAND newCONSTSUB(stash,"POLLWRBAND", newSViv(POLLWRBAND)); #endif #ifdef POLLNORM newCONSTSUB(stash,"POLLNORM", newSViv(POLLNORM)); #endif #ifdef POLLERR newCONSTSUB(stash,"POLLERR", newSViv(POLLERR)); #endif #ifdef POLLHUP newCONSTSUB(stash,"POLLHUP", newSViv(POLLHUP)); #endif #ifdef POLLNVAL newCONSTSUB(stash,"POLLNVAL", newSViv(POLLNVAL)); #endif /* * constant subs for IO::Handle */ stash = gv_stashpvn("IO::Handle", 10, TRUE); #ifdef _IOFBF newCONSTSUB(stash,"_IOFBF", newSViv(_IOFBF)); #endif #ifdef _IOLBF newCONSTSUB(stash,"_IOLBF", newSViv(_IOLBF)); #endif #ifdef _IONBF newCONSTSUB(stash,"_IONBF", newSViv(_IONBF)); #endif #ifdef SEEK_SET newCONSTSUB(stash,"SEEK_SET", newSViv(SEEK_SET)); #endif #ifdef SEEK_CUR newCONSTSUB(stash,"SEEK_CUR", newSViv(SEEK_CUR)); #endif #ifdef SEEK_END newCONSTSUB(stash,"SEEK_END", newSViv(SEEK_END)); #endif } /* #line 701 "IO.c" */ /* End of Initialisation Section */ XSRETURN_YES; } ================================================ FILE: tests/perlbench/MD5.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of MD5.xs. Do not edit this file, edit MD5.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "MD5.xs" */ /* $Id: MD5.xs,v 1.42 2003/12/06 22:35:16 gisle Exp $ */ /* * This library is free software; you can redistribute it and/or * modify it under the same terms as Perl itself. * * Copyright 1998-2000 Gisle Aas. * Copyright 1995-1996 Neil Winton. * Copyright 1991-1992 RSA Data Security, Inc. * * This code is derived from Neil Winton's MD5-1.7 Perl module, which in * turn is derived from the reference implementation in RFC 1321 which * comes with this message: * * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All * rights reserved. * * License to copy and use this software is granted provided that it * is identified as the "RSA Data Security, Inc. MD5 Message-Digest * Algorithm" in all material mentioning or referencing this software * or this function. * * License is also granted to make and use derivative works provided * that such works are identified as "derived from the RSA Data * Security, Inc. MD5 Message-Digest Algorithm" in all material * mentioning or referencing the derived work. * * RSA Data Security, Inc. makes no representations concerning either * the merchantability of this software or the suitability of this * software for any particular purpose. It is provided "as is" * without express or implied warranty of any kind. * * These notices must be retained in any copies of any part of this * documentation and/or software. */ #ifdef __cplusplus extern "C" { #endif #define PERL_NO_GET_CONTEXT /* we want efficiency */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #ifdef __cplusplus } #endif #ifndef PERL_VERSION # include # if !(defined(PERL_VERSION) || (SUBVERSION > 0 && defined(PATCHLEVEL))) # include # endif # define PERL_REVISION 5 # define PERL_VERSION PATCHLEVEL # define PERL_SUBVERSION SUBVERSION #endif #if PERL_VERSION <= 4 && !defined(PL_dowarn) #define PL_dowarn dowarn #endif #ifdef G_WARN_ON #define DOWARN (PL_dowarn & G_WARN_ON) #else #define DOWARN PL_dowarn #endif #ifdef SvPVbyte #if PERL_REVISION == 5 && PERL_VERSION < 7 /* SvPVbyte does not work in perl-5.6.1, borrowed version for 5.7.3 */ #undef SvPVbyte #define SvPVbyte(sv, lp) \ ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \ ? ((lp = SvCUR(sv)), SvPVX(sv)) : my_sv_2pvbyte(aTHX_ sv, &lp)) static char * my_sv_2pvbyte(pTHX_ register SV *sv, STRLEN *lp) { sv_utf8_downgrade(sv,0); return SvPV(sv,*lp); } #endif #else #define SvPVbyte SvPV #endif #ifndef dTHX #define pTHX_ #define aTHX_ #endif /* Perl does not guarantee that U32 is exactly 32 bits. Some system * has no integral type with exactly 32 bits. For instance, A Cray has * short, int and long all at 64 bits so we need to apply this macro * to reduce U32 values to 32 bits at appropriate places. If U32 * really does have 32 bits then this is a no-op. */ #if BYTEORDER > 0x4321 || defined(TRUNCATE_U32) #define TO32(x) ((x) & 0xFFFFffff) #define TRUNC32(x) ((x) &= 0xFFFFffff) #else #define TO32(x) (x) #define TRUNC32(x) /*nothing*/ #endif /* The MD5 algorithm is defined in terms of little endian 32-bit * values. The following macros (and functions) allow us to convert * between native integers and such values. */ #undef BYTESWAP #ifndef U32_ALIGNMENT_REQUIRED #if BYTEORDER == 0x1234 /* 32-bit little endian */ #define BYTESWAP(x) (x) /* no-op */ #elif BYTEORDER == 0x4321 /* 32-bit big endian */ #define BYTESWAP(x) ((((x)&0xFF)<<24) \ |(((x)>>24)&0xFF) \ |(((x)&0x0000FF00)<<8) \ |(((x)&0x00FF0000)>>8) ) #endif #endif #ifndef BYTESWAP static void u2s(U32 u, U8* s) { *s++ = (U8)(u & 0xFF); *s++ = (U8)((u >> 8) & 0xFF); *s++ = (U8)((u >> 16) & 0xFF); *s = (U8)((u >> 24) & 0xFF); } #define s2u(s,u) ((u) = (U32)(*s) | \ ((U32)(*(s+1)) << 8) | \ ((U32)(*(s+2)) << 16) | \ ((U32)(*(s+3)) << 24)) #endif #define MD5_CTX_SIGNATURE 200003165 /* This stucture keeps the current state of algorithm. */ typedef struct { U32 signature; /* safer cast in get_md5_ctx() */ U32 A, B, C, D; /* current digest */ U32 bytes_low; /* counts bytes in message */ U32 bytes_high; /* turn it into a 64-bit counter */ U8 buffer[128]; /* collect complete 64 byte blocks */ } MD5_CTX; /* Padding is added at the end of the message in order to fill a * complete 64 byte block (- 8 bytes for the message length). The * padding is also the reason the buffer in MD5_CTX have to be * 128 bytes. */ static unsigned char PADDING[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; /* Constants for MD5Transform routine. */ #define S11 7 #define S12 12 #define S13 17 #define S14 22 #define S21 5 #define S22 9 #define S23 14 #define S24 20 #define S31 4 #define S32 11 #define S33 16 #define S34 23 #define S41 6 #define S42 10 #define S43 15 #define S44 21 /* F, G, H and I are basic MD5 functions. */ #define F(x, y, z) ((((x) & ((y) ^ (z))) ^ (z))) #define G(x, y, z) F(z, x, y) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | (~z))) /* ROTATE_LEFT rotates x left n bits. */ #define ROTATE_LEFT(x, n) (((x) << (n) | ((x) >> (32-(n))))) /* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. * Rotation is separate from addition to prevent recomputation. */ #define FF(a, b, c, d, s, ac) \ (a) += F ((b), (c), (d)) + (NEXTx) + (U32)(ac); \ TRUNC32((a)); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ TRUNC32((a)); #define GG(a, b, c, d, x, s, ac) \ (a) += G ((b), (c), (d)) + X[x] + (U32)(ac); \ TRUNC32((a)); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ TRUNC32((a)); #define HH(a, b, c, d, x, s, ac) \ (a) += H ((b), (c), (d)) + X[x] + (U32)(ac); \ TRUNC32((a)); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ TRUNC32((a)); #define II(a, b, c, d, x, s, ac) \ (a) += I ((b), (c), (d)) + X[x] + (U32)(ac); \ TRUNC32((a)); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ TRUNC32((a)); static void MD5Init(MD5_CTX *ctx) { /* Start state */ ctx->A = 0x67452301; ctx->B = 0xefcdab89; ctx->C = 0x98badcfe; ctx->D = 0x10325476; /* message length */ ctx->bytes_low = ctx->bytes_high = 0; } static void MD5Transform(MD5_CTX* ctx, const U8* buf, STRLEN blocks) { #ifdef MD5_DEBUG static int tcount = 0; #endif U32 A = ctx->A; U32 B = ctx->B; U32 C = ctx->C; U32 D = ctx->D; #ifndef U32_ALIGNMENT_REQUIRED const U32 *x = (U32*)buf; /* really just type casting */ #endif do { U32 a = A; U32 b = B; U32 c = C; U32 d = D; #if BYTEORDER == 0x1234 && !defined(U32_ALIGNMENT_REQUIRED) const U32 *X = x; #define NEXTx (*x++) #else U32 X[16]; /* converted values, used in round 2-4 */ U32 *uptr = X; U32 tmp; #ifdef BYTESWAP #define NEXTx (tmp=*x++, *uptr++ = BYTESWAP(tmp)) #else #define NEXTx (s2u(buf,tmp), buf += 4, *uptr++ = tmp) #endif #endif #ifdef MD5_DEBUG if (buf == ctx->buffer) fprintf(stderr,"%5d: Transform ctx->buffer", ++tcount); else fprintf(stderr,"%5d: Transform %p (%d)", ++tcount, buf, blocks); { int i; fprintf(stderr,"["); for (i = 0; i < 16; i++) { fprintf(stderr,"%x,", x[i]); } fprintf(stderr,"]\n"); } #endif /* Round 1 */ FF (a, b, c, d, S11, 0xd76aa478); /* 1 */ FF (d, a, b, c, S12, 0xe8c7b756); /* 2 */ FF (c, d, a, b, S13, 0x242070db); /* 3 */ FF (b, c, d, a, S14, 0xc1bdceee); /* 4 */ FF (a, b, c, d, S11, 0xf57c0faf); /* 5 */ FF (d, a, b, c, S12, 0x4787c62a); /* 6 */ FF (c, d, a, b, S13, 0xa8304613); /* 7 */ FF (b, c, d, a, S14, 0xfd469501); /* 8 */ FF (a, b, c, d, S11, 0x698098d8); /* 9 */ FF (d, a, b, c, S12, 0x8b44f7af); /* 10 */ FF (c, d, a, b, S13, 0xffff5bb1); /* 11 */ FF (b, c, d, a, S14, 0x895cd7be); /* 12 */ FF (a, b, c, d, S11, 0x6b901122); /* 13 */ FF (d, a, b, c, S12, 0xfd987193); /* 14 */ FF (c, d, a, b, S13, 0xa679438e); /* 15 */ FF (b, c, d, a, S14, 0x49b40821); /* 16 */ /* Round 2 */ GG (a, b, c, d, 1, S21, 0xf61e2562); /* 17 */ GG (d, a, b, c, 6, S22, 0xc040b340); /* 18 */ GG (c, d, a, b, 11, S23, 0x265e5a51); /* 19 */ GG (b, c, d, a, 0, S24, 0xe9b6c7aa); /* 20 */ GG (a, b, c, d, 5, S21, 0xd62f105d); /* 21 */ GG (d, a, b, c, 10, S22, 0x2441453); /* 22 */ GG (c, d, a, b, 15, S23, 0xd8a1e681); /* 23 */ GG (b, c, d, a, 4, S24, 0xe7d3fbc8); /* 24 */ GG (a, b, c, d, 9, S21, 0x21e1cde6); /* 25 */ GG (d, a, b, c, 14, S22, 0xc33707d6); /* 26 */ GG (c, d, a, b, 3, S23, 0xf4d50d87); /* 27 */ GG (b, c, d, a, 8, S24, 0x455a14ed); /* 28 */ GG (a, b, c, d, 13, S21, 0xa9e3e905); /* 29 */ GG (d, a, b, c, 2, S22, 0xfcefa3f8); /* 30 */ GG (c, d, a, b, 7, S23, 0x676f02d9); /* 31 */ GG (b, c, d, a, 12, S24, 0x8d2a4c8a); /* 32 */ /* Round 3 */ HH (a, b, c, d, 5, S31, 0xfffa3942); /* 33 */ HH (d, a, b, c, 8, S32, 0x8771f681); /* 34 */ HH (c, d, a, b, 11, S33, 0x6d9d6122); /* 35 */ HH (b, c, d, a, 14, S34, 0xfde5380c); /* 36 */ HH (a, b, c, d, 1, S31, 0xa4beea44); /* 37 */ HH (d, a, b, c, 4, S32, 0x4bdecfa9); /* 38 */ HH (c, d, a, b, 7, S33, 0xf6bb4b60); /* 39 */ HH (b, c, d, a, 10, S34, 0xbebfbc70); /* 40 */ HH (a, b, c, d, 13, S31, 0x289b7ec6); /* 41 */ HH (d, a, b, c, 0, S32, 0xeaa127fa); /* 42 */ HH (c, d, a, b, 3, S33, 0xd4ef3085); /* 43 */ HH (b, c, d, a, 6, S34, 0x4881d05); /* 44 */ HH (a, b, c, d, 9, S31, 0xd9d4d039); /* 45 */ HH (d, a, b, c, 12, S32, 0xe6db99e5); /* 46 */ HH (c, d, a, b, 15, S33, 0x1fa27cf8); /* 47 */ HH (b, c, d, a, 2, S34, 0xc4ac5665); /* 48 */ /* Round 4 */ II (a, b, c, d, 0, S41, 0xf4292244); /* 49 */ II (d, a, b, c, 7, S42, 0x432aff97); /* 50 */ II (c, d, a, b, 14, S43, 0xab9423a7); /* 51 */ II (b, c, d, a, 5, S44, 0xfc93a039); /* 52 */ II (a, b, c, d, 12, S41, 0x655b59c3); /* 53 */ II (d, a, b, c, 3, S42, 0x8f0ccc92); /* 54 */ II (c, d, a, b, 10, S43, 0xffeff47d); /* 55 */ II (b, c, d, a, 1, S44, 0x85845dd1); /* 56 */ II (a, b, c, d, 8, S41, 0x6fa87e4f); /* 57 */ II (d, a, b, c, 15, S42, 0xfe2ce6e0); /* 58 */ II (c, d, a, b, 6, S43, 0xa3014314); /* 59 */ II (b, c, d, a, 13, S44, 0x4e0811a1); /* 60 */ II (a, b, c, d, 4, S41, 0xf7537e82); /* 61 */ II (d, a, b, c, 11, S42, 0xbd3af235); /* 62 */ II (c, d, a, b, 2, S43, 0x2ad7d2bb); /* 63 */ II (b, c, d, a, 9, S44, 0xeb86d391); /* 64 */ A += a; TRUNC32(A); B += b; TRUNC32(B); C += c; TRUNC32(C); D += d; TRUNC32(D); } while (--blocks); ctx->A = A; ctx->B = B; ctx->C = C; ctx->D = D; } #ifdef MD5_DEBUG static char* ctx_dump(MD5_CTX* ctx) { static char buf[1024]; sprintf(buf, "{A=%x,B=%x,C=%x,D=%x,%d,%d(%d)}", ctx->A, ctx->B, ctx->C, ctx->D, ctx->bytes_low, ctx->bytes_high, (ctx->bytes_low&0x3F)); return buf; } #endif static void MD5Update(MD5_CTX* ctx, const U8* buf, STRLEN len) { STRLEN blocks; STRLEN fill = ctx->bytes_low & 0x3F; #ifdef MD5_DEBUG static int ucount = 0; fprintf(stderr,"%5i: Update(%s, %p, %d)\n", ++ucount, ctx_dump(ctx), buf, len); #endif ctx->bytes_low += len; if (ctx->bytes_low < len) /* wrap around */ ctx->bytes_high++; if (fill) { STRLEN missing = 64 - fill; if (len < missing) { Copy(buf, ctx->buffer + fill, len, U8); return; } Copy(buf, ctx->buffer + fill, missing, U8); MD5Transform(ctx, ctx->buffer, 1); buf += missing; len -= missing; } blocks = len >> 6; if (blocks) MD5Transform(ctx, buf, blocks); if ( (len &= 0x3F)) { Copy(buf + (blocks << 6), ctx->buffer, len, U8); } } static void MD5Final(U8* digest, MD5_CTX *ctx) { STRLEN fill = ctx->bytes_low & 0x3F; STRLEN padlen = (fill < 56 ? 56 : 120) - fill; U32 bits_low, bits_high; #ifdef MD5_DEBUG fprintf(stderr," Final: %s\n", ctx_dump(ctx)); #endif Copy(PADDING, ctx->buffer + fill, padlen, U8); fill += padlen; bits_low = ctx->bytes_low << 3; bits_high = (ctx->bytes_high << 3) | (ctx->bytes_low >> 29); #ifdef BYTESWAP *(U32*)(ctx->buffer + fill) = BYTESWAP(bits_low); fill += 4; *(U32*)(ctx->buffer + fill) = BYTESWAP(bits_high); fill += 4; #else u2s(bits_low, ctx->buffer + fill); fill += 4; u2s(bits_high, ctx->buffer + fill); fill += 4; #endif MD5Transform(ctx, ctx->buffer, fill >> 6); #ifdef MD5_DEBUG fprintf(stderr," Result: %s\n", ctx_dump(ctx)); #endif #ifdef BYTESWAP *(U32*)digest = BYTESWAP(ctx->A); digest += 4; *(U32*)digest = BYTESWAP(ctx->B); digest += 4; *(U32*)digest = BYTESWAP(ctx->C); digest += 4; *(U32*)digest = BYTESWAP(ctx->D); #else u2s(ctx->A, digest); u2s(ctx->B, digest+4); u2s(ctx->C, digest+8); u2s(ctx->D, digest+12); #endif } #ifndef INT2PTR #define INT2PTR(any,d) (any)(d) #endif static MD5_CTX* get_md5_ctx(pTHX_ SV* sv) { if (SvROK(sv)) { sv = SvRV(sv); if (SvIOK(sv)) { MD5_CTX* ctx = INT2PTR(MD5_CTX*, SvIV(sv)); if (ctx && ctx->signature == MD5_CTX_SIGNATURE) { return ctx; } } } croak("Not a reference to a Digest::MD5 object"); return (MD5_CTX*)0; /* some compilers insist on a return value */ } static char* hex_16(const unsigned char* from, char* to) { static char *hexdigits = "0123456789abcdef"; const unsigned char *end = from + 16; char *d = to; while (from < end) { *d++ = hexdigits[(*from >> 4)]; *d++ = hexdigits[(*from & 0x0F)]; from++; } *d = '\0'; return to; } static char* base64_16(const unsigned char* from, char* to) { static char* base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; const unsigned char *end = from + 16; unsigned char c1, c2, c3; char *d = to; while (1) { c1 = *from++; *d++ = base64[c1>>2]; if (from == end) { *d++ = base64[(c1 & 0x3) << 4]; break; } c2 = *from++; c3 = *from++; *d++ = base64[((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)]; *d++ = base64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)]; *d++ = base64[c3 & 0x3F]; } *d = '\0'; return to; } /* Formats */ #define F_BIN 0 #define F_HEX 1 #define F_B64 2 static SV* make_mortal_sv(pTHX_ const unsigned char *src, int type) { STRLEN len; char result[33]; char *ret; switch (type) { case F_BIN: ret = (char*)src; len = 16; break; case F_HEX: ret = hex_16(src, result); len = 32; break; case F_B64: ret = base64_16(src, result); len = 22; break; default: croak("Bad convertion type (%d)", type); break; } return sv_2mortal(newSVpv(ret,len)); } /********************************************************************/ typedef PerlIO* InputStream; /* #line 571 "MD5.c" */ XS(XS_Digest__MD5_new); /* prototype to pass -Wmissing-prototypes */ XS(XS_Digest__MD5_new) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Digest::MD5::new(xclass)"); SP -= items; { SV* xclass = ST(0); /* #line 569 "MD5.xs" */ MD5_CTX* context; /* #line 583 "MD5.c" */ /* #line 571 "MD5.xs" */ if (!SvROK(xclass)) { STRLEN my_na; char *sclass = SvPV(xclass, my_na); New(55, context, 1, MD5_CTX); context->signature = MD5_CTX_SIGNATURE; ST(0) = sv_newmortal(); sv_setref_pv(ST(0), sclass, (void*)context); SvREADONLY_on(SvRV(ST(0))); } else { context = get_md5_ctx(aTHX_ xclass); } MD5Init(context); XSRETURN(1); /* #line 598 "MD5.c" */ PUTBACK; return; } } XS(XS_Digest__MD5_clone); /* prototype to pass -Wmissing-prototypes */ XS(XS_Digest__MD5_clone) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Digest::MD5::clone(self)"); SP -= items; { SV* self = ST(0); /* #line 589 "MD5.xs" */ MD5_CTX* cont = get_md5_ctx(aTHX_ self); char *myname = sv_reftype(SvRV(self),TRUE); MD5_CTX* context; /* #line 617 "MD5.c" */ /* #line 593 "MD5.xs" */ STRLEN my_na; New(55, context, 1, MD5_CTX); ST(0) = sv_newmortal(); sv_setref_pv(ST(0), myname , (void*)context); SvREADONLY_on(SvRV(ST(0))); memcpy(context,cont,sizeof(MD5_CTX)); XSRETURN(1); /* #line 626 "MD5.c" */ PUTBACK; return; } } XS(XS_Digest__MD5_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_Digest__MD5_DESTROY) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Digest::MD5::DESTROY(context)"); { MD5_CTX* context = get_md5_ctx(aTHX_ ST(0)); /* #line 605 "MD5.xs" */ Safefree(context); /* #line 642 "MD5.c" */ } XSRETURN_EMPTY; } XS(XS_Digest__MD5_add); /* prototype to pass -Wmissing-prototypes */ XS(XS_Digest__MD5_add) { dXSARGS; if (items < 1) Perl_croak(aTHX_ "Usage: Digest::MD5::add(self, ...)"); SP -= items; { SV* self = ST(0); /* #line 611 "MD5.xs" */ MD5_CTX* context = get_md5_ctx(aTHX_ self); int i; unsigned char *data; STRLEN len; /* #line 661 "MD5.c" */ /* #line 616 "MD5.xs" */ for (i = 1; i < items; i++) { data = (unsigned char *)(SvPVbyte(ST(i), len)); MD5Update(context, data, len); } XSRETURN(1); /* self */ /* #line 668 "MD5.c" */ PUTBACK; return; } } XS(XS_Digest__MD5_addfile); /* prototype to pass -Wmissing-prototypes */ XS(XS_Digest__MD5_addfile) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: Digest::MD5::addfile(self, fh)"); { SV* self = ST(0); InputStream fh = IoIFP(sv_2io(ST(1))); /* #line 627 "MD5.xs" */ MD5_CTX* context = get_md5_ctx(aTHX_ self); STRLEN fill = context->bytes_low & 0x3F; unsigned char buffer[4096]; int n; /* #line 688 "MD5.c" */ /* #line 632 "MD5.xs" */ if (fh) { if (fill) { /* The MD5Update() function is faster if it can work with * complete blocks. This will fill up any buffered block * first. */ STRLEN missing = 64 - fill; if ( (n = PerlIO_read(fh, buffer, missing)) > 0) MD5Update(context, buffer, n); else XSRETURN(1); /* self */ } /* Process blocks until EOF or error */ while ( (n = PerlIO_read(fh, buffer, sizeof(buffer))) > 0) { MD5Update(context, buffer, n); } if (PerlIO_error(fh)) { croak("Reading from filehandle failed"); } } else { croak("No filehandle passed"); } XSRETURN(1); /* self */ /* #line 716 "MD5.c" */ } XSRETURN_EMPTY; } XS(XS_Digest__MD5_digest); /* prototype to pass -Wmissing-prototypes */ XS(XS_Digest__MD5_digest) { dXSARGS; dXSI32; if (items != 1) Perl_croak(aTHX_ "Usage: %s(context)", GvNAME(CvGV(cv))); SP -= items; { MD5_CTX* context = get_md5_ctx(aTHX_ ST(0)); /* #line 667 "MD5.xs" */ unsigned char digeststr[16]; /* #line 733 "MD5.c" */ /* #line 669 "MD5.xs" */ MD5Final(digeststr, context); MD5Init(context); /* In case it is reused */ ST(0) = make_mortal_sv(aTHX_ digeststr, ix); XSRETURN(1); /* #line 739 "MD5.c" */ PUTBACK; return; } } XS(XS_Digest__MD5_md5); /* prototype to pass -Wmissing-prototypes */ XS(XS_Digest__MD5_md5) { dXSARGS; dXSI32; PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 681 "MD5.xs" */ MD5_CTX ctx; int i; unsigned char *data; STRLEN len; unsigned char digeststr[16]; /* #line 759 "MD5.c" */ /* #line 687 "MD5.xs" */ MD5Init(&ctx); if (DOWARN) { char *msg = 0; if (items == 1) { if (SvROK(ST(0))) { SV* sv = SvRV(ST(0)); if (SvOBJECT(sv) && strEQ(HvNAME(SvSTASH(sv)), "Digest::MD5")) msg = "probably called as method"; else msg = "called with reference argument"; } } else if (items > 1) { data = (unsigned char *)SvPVbyte(ST(0), len); if (len == 11 && memEQ("Digest::MD5", data, 11)) { msg = "probably called as class method"; } } if (msg) { char *f = (ix == F_BIN) ? "md5" : (ix == F_HEX) ? "md5_hex" : "md5_base64"; warn("&Digest::MD5::%s function %s", f, msg); } } for (i = 0; i < items; i++) { data = (unsigned char *)(SvPVbyte(ST(i), len)); MD5Update(&ctx, data, len); } MD5Final(digeststr, &ctx); ST(0) = make_mortal_sv(aTHX_ digeststr, ix); XSRETURN(1); /* #line 794 "MD5.c" */ PUTBACK; return; } } #ifdef __cplusplus extern "C" #endif XS(boot_Digest__MD5); /* prototype to pass -Wmissing-prototypes */ XS(boot_Digest__MD5) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; { CV * cv ; newXS("Digest::MD5::new", XS_Digest__MD5_new, file); newXS("Digest::MD5::clone", XS_Digest__MD5_clone, file); newXS("Digest::MD5::DESTROY", XS_Digest__MD5_DESTROY, file); newXS("Digest::MD5::add", XS_Digest__MD5_add, file); newXS("Digest::MD5::addfile", XS_Digest__MD5_addfile, file); cv = newXS("Digest::MD5::hexdigest", XS_Digest__MD5_digest, file); XSANY.any_i32 = F_HEX ; cv = newXS("Digest::MD5::digest", XS_Digest__MD5_digest, file); XSANY.any_i32 = F_BIN ; cv = newXS("Digest::MD5::b64digest", XS_Digest__MD5_digest, file); XSANY.any_i32 = F_B64 ; cv = newXS("Digest::MD5::md5", XS_Digest__MD5_md5, file); XSANY.any_i32 = F_BIN ; cv = newXS("Digest::MD5::md5_base64", XS_Digest__MD5_md5, file); XSANY.any_i32 = F_B64 ; cv = newXS("Digest::MD5::md5_hex", XS_Digest__MD5_md5, file); XSANY.any_i32 = F_HEX ; } XSRETURN_YES; } ================================================ FILE: tests/perlbench/Makefile ================================================ ROOT = ../.. TARGETS = perlbench LIBS = m SRCS = av.c deb.c doio.c doop.c dump.c globals.c gv.c hv.c locale.c mg.c numeric.c op.c pad.c perl.c perlapi.c perlio.c perlmain.c perly.c pp.c pp_ctl.c pp_hot.c pp_pack.c pp_sort.c pp_sys.c regcomp.c regexec.c run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c xsutils.c Base64.c Cwd.c Dumper.c HiRes.c IO.c Peek.c attrs.c poll.c stdio.c DynaLoader.c MD5.c Storable.c Parser.c specrand.c Hostname.c Opcode.c build:: perlbench include $(ROOT)/common.mk CC = $(ROOT)/szc $(SZCFLAGS) -Rcode -Rheap -Rstack CXX = $(CC) CFLAGS = -DSPEC_CPU -DNEED_VA_COPY -DPERL_CORE -DSPEC_CPU_MACOSX -DSPEC_CPU_LP64 #CFLAGS = -DSPEC_CPU -DPERL_CORE -DSPEC_CPU_LINUX_X64 -DSPEC_CPU_LP64 CXXFLAGS = $(OBJS):: $(ROOT)/szc $(ROOT)/LLVMStabilizer.$(SHLIB_SUFFIX) test:: perlbench @echo $(INDENT)[test] Running 'perlbench' @echo @$(LD_PATH_VAR)=$(ROOT) ./perlbench -Ilib input/suns.pl @$(LD_PATH_VAR)=$(ROOT) ./perlbench -Ilib input/scrabbl.pl < input/scrabbl.in @$(LD_PATH_VAR)=$(ROOT) ./perlbench -Ilib input/splitmail.pl 535 13 25 24 1091 @echo ================================================ FILE: tests/perlbench/Opcode.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of Opcode.xs. Do not edit this file, edit Opcode.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "Opcode.xs" */ #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" /* PL_maxo shouldn't differ from MAXO but leave room anyway (see BOOT:) */ #define OP_MASK_BUF_SIZE (MAXO + 100) /* XXX op_named_bits and opset_all are never freed */ #define MY_CXT_KEY "Opcode::_guts" XS_VERSION typedef struct { HV * x_op_named_bits; /* cache shared for whole process */ SV * x_opset_all; /* mask with all bits set */ IV x_opset_len; /* length of opmasks in bytes */ int x_opcode_debug; } my_cxt_t; START_MY_CXT #define op_named_bits (MY_CXT.x_op_named_bits) #define opset_all (MY_CXT.x_opset_all) #define opset_len (MY_CXT.x_opset_len) #define opcode_debug (MY_CXT.x_opcode_debug) static SV *new_opset (pTHX_ SV *old_opset); static int verify_opset (pTHX_ SV *opset, int fatal); static void set_opset_bits (pTHX_ char *bitmap, SV *bitspec, int on, char *opname); static void put_op_bitspec (pTHX_ char *optag, STRLEN len, SV *opset); static SV *get_op_bitspec (pTHX_ char *opname, STRLEN len, int fatal); /* Initialise our private op_named_bits HV. * It is first loaded with the name and number of each perl operator. * Then the builtin tags :none and :all are added. * Opcode.pm loads the standard optags from __DATA__ * XXX leak-alert: data allocated here is never freed, call this * at most once */ static void op_names_init(pTHX) { int i; STRLEN len; char **op_names; char *bitmap; dMY_CXT; op_named_bits = newHV(); op_names = get_op_names(); for(i=0; i < PL_maxo; ++i) { SV *sv; sv = newSViv(i); SvREADONLY_on(sv); hv_store(op_named_bits, op_names[i], strlen(op_names[i]), sv, 0); } put_op_bitspec(aTHX_ ":none",0, sv_2mortal(new_opset(aTHX_ Nullsv))); opset_all = new_opset(aTHX_ Nullsv); bitmap = SvPV(opset_all, len); i = len-1; /* deal with last byte specially, see below */ while(i-- > 0) bitmap[i] = (char)0xFF; /* Take care to set the right number of bits in the last byte */ bitmap[len-1] = (PL_maxo & 0x07) ? ~(0xFF << (PL_maxo & 0x07)) : 0xFF; put_op_bitspec(aTHX_ ":all",0, opset_all); /* don't mortalise */ } /* Store a new tag definition. Always a mask. * The tag must not already be defined. * SV *mask is copied not referenced. */ static void put_op_bitspec(pTHX_ char *optag, STRLEN len, SV *mask) { SV **svp; dMY_CXT; verify_opset(aTHX_ mask,1); if (!len) len = strlen(optag); svp = hv_fetch(op_named_bits, optag, len, 1); if (SvOK(*svp)) croak("Opcode tag \"%s\" already defined", optag); sv_setsv(*svp, mask); SvREADONLY_on(*svp); } /* Fetch a 'bits' entry for an opname or optag (IV/PV). * Note that we return the actual entry for speed. * Always sv_mortalcopy() if returing it to user code. */ static SV * get_op_bitspec(pTHX_ char *opname, STRLEN len, int fatal) { SV **svp; dMY_CXT; if (!len) len = strlen(opname); svp = hv_fetch(op_named_bits, opname, len, 0); if (!svp || !SvOK(*svp)) { if (!fatal) return Nullsv; if (*opname == ':') croak("Unknown operator tag \"%s\"", opname); if (*opname == '!') /* XXX here later, or elsewhere? */ croak("Can't negate operators here (\"%s\")", opname); if (isALPHA(*opname)) croak("Unknown operator name \"%s\"", opname); croak("Unknown operator prefix \"%s\"", opname); } return *svp; } static SV * new_opset(pTHX_ SV *old_opset) { SV *opset; dMY_CXT; if (old_opset) { verify_opset(aTHX_ old_opset,1); opset = newSVsv(old_opset); } else { opset = NEWSV(1156, opset_len); Zero(SvPVX(opset), opset_len + 1, char); SvCUR_set(opset, opset_len); (void)SvPOK_only(opset); } /* not mortalised here */ return opset; } static int verify_opset(pTHX_ SV *opset, int fatal) { char *err = Nullch; dMY_CXT; if (!SvOK(opset)) err = "undefined"; else if (!SvPOK(opset)) err = "wrong type"; else if (SvCUR(opset) != (STRLEN)opset_len) err = "wrong size"; if (err && fatal) { croak("Invalid opset: %s", err); } return !err; } static void set_opset_bits(pTHX_ char *bitmap, SV *bitspec, int on, char *opname) { dMY_CXT; if (SvIOK(bitspec)) { int myopcode = SvIV(bitspec); int offset = myopcode >> 3; int bit = myopcode & 0x07; if (myopcode >= PL_maxo || myopcode < 0) croak("panic: opcode \"%s\" value %d is invalid", opname, myopcode); if (opcode_debug >= 2) warn("set_opset_bits bit %2d (off=%d, bit=%d) %s %s\n", myopcode, offset, bit, opname, (on)?"on":"off"); if (on) bitmap[offset] |= 1 << bit; else bitmap[offset] &= ~(1 << bit); } else if (SvPOK(bitspec) && SvCUR(bitspec) == (STRLEN)opset_len) { STRLEN len; char *specbits = SvPV(bitspec, len); if (opcode_debug >= 2) warn("set_opset_bits opset %s %s\n", opname, (on)?"on":"off"); if (on) while(len-- > 0) bitmap[len] |= specbits[len]; else while(len-- > 0) bitmap[len] &= ~specbits[len]; } else croak("panic: invalid bitspec for \"%s\" (type %u)", opname, (unsigned)SvTYPE(bitspec)); } static void opmask_add(pTHX_ SV *opset) /* THE ONLY FUNCTION TO EDIT PL_op_mask ITSELF */ { int i,j; char *bitmask; STRLEN len; int myopcode = 0; dMY_CXT; verify_opset(aTHX_ opset,1); /* croaks on bad opset */ if (!PL_op_mask) /* caller must ensure PL_op_mask exists */ croak("Can't add to uninitialised PL_op_mask"); /* OPCODES ALREADY MASKED ARE NEVER UNMASKED. See opmask_addlocal() */ bitmask = SvPV(opset, len); for (i=0; i < opset_len; i++) { U16 bits = bitmask[i]; if (!bits) { /* optimise for sparse masks */ myopcode += 8; continue; } for (j=0; j < 8 && myopcode < PL_maxo; ) PL_op_mask[myopcode++] |= bits & (1 << j++); } } static void opmask_addlocal(pTHX_ SV *opset, char *op_mask_buf) /* Localise PL_op_mask then opmask_add() */ { char *orig_op_mask = PL_op_mask; dMY_CXT; SAVEVPTR(PL_op_mask); /* XXX casting to an ordinary function ptr from a member function ptr * is disallowed by Borland */ if (opcode_debug >= 2) SAVEDESTRUCTOR((void(*)(void*))Perl_warn,"PL_op_mask restored"); PL_op_mask = &op_mask_buf[0]; if (orig_op_mask) Copy(orig_op_mask, PL_op_mask, PL_maxo, char); else Zero(PL_op_mask, PL_maxo, char); opmask_add(aTHX_ opset); } /* #line 258 "Opcode.c" */ XS(XS_Opcode__safe_pkg_prep); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode__safe_pkg_prep) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Opcode::_safe_pkg_prep(Package)"); SP -= items; { char * Package = (char *)SvPV_nolen(ST(0)); /* #line 266 "Opcode.xs" */ HV *hv; ENTER; hv = gv_stashpv(Package, GV_ADDWARN); /* should exist already */ if (strNE(HvNAME(hv),"main")) { Safefree(HvNAME(hv)); HvNAME(hv) = savepv("main"); /* make it think it's in main:: */ hv_store(hv,"_",1,(SV *)PL_defgv,0); /* connect _ to global */ SvREFCNT_inc((SV *)PL_defgv); /* want to keep _ around! */ } LEAVE; /* #line 281 "Opcode.c" */ PUTBACK; return; } } XS(XS_Opcode__safe_call_sv); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode__safe_call_sv) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: Opcode::_safe_call_sv(Package, mask, codesv)"); SP -= items; { char * Package = (char *)SvPV_nolen(ST(0)); SV * mask = ST(1); SV * codesv = ST(2); /* #line 289 "Opcode.xs" */ char op_mask_buf[OP_MASK_BUF_SIZE]; GV *gv; HV *dummy_hv; ENTER; opmask_addlocal(aTHX_ mask, op_mask_buf); save_aptr(&PL_endav); PL_endav = (AV*)sv_2mortal((SV*)newAV()); /* ignore END blocks for now */ save_hptr(&PL_defstash); /* save current default stash */ /* the assignment to global defstash changes our sense of 'main' */ PL_defstash = gv_stashpv(Package, GV_ADDWARN); /* should exist already */ save_hptr(&PL_curstash); PL_curstash = PL_defstash; /* defstash must itself contain a main:: so we'll add that now */ /* take care with the ref counts (was cause of long standing bug) */ /* XXX I'm still not sure if this is right, GV_ADDWARN should warn! */ gv = gv_fetchpv("main::", GV_ADDWARN, SVt_PVHV); sv_free((SV*)GvHV(gv)); GvHV(gv) = (HV*)SvREFCNT_inc(PL_defstash); /* %INC must be clean for use/require in compartment */ dummy_hv = save_hash(PL_incgv); GvHV(PL_incgv) = (HV*)SvREFCNT_inc(GvHV(gv_HVadd(gv_fetchpv("INC",TRUE,SVt_PVHV)))); PUSHMARK(SP); call_sv(codesv, GIMME|G_EVAL|G_KEEPERR); /* use callers context */ /* SPEC CPU */ sv_free( (SV *) dummy_hv); /* get rid of what save_hash gave us*/ SPAGAIN; /* for the PUTBACK added by xsubpp */ LEAVE; /* #line 333 "Opcode.c" */ PUTBACK; return; } } XS(XS_Opcode_verify_opset); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_verify_opset) { dXSARGS; if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: Opcode::verify_opset(opset, fatal = 0)"); { SV * opset = ST(0); int fatal; int RETVAL; dXSTARG; if (items < 2) fatal = 0; else { fatal = (int)SvIV(ST(1)); } /* #line 330 "Opcode.xs" */ RETVAL = verify_opset(aTHX_ opset,fatal); /* #line 358 "Opcode.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_Opcode_invert_opset); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_invert_opset) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Opcode::invert_opset(opset)"); { SV * opset = ST(0); /* #line 338 "Opcode.xs" */ { char *bitmap; dMY_CXT; STRLEN len = opset_len; opset = sv_2mortal(new_opset(aTHX_ opset)); /* verify and clone opset */ bitmap = SvPVX(opset); while(len-- > 0) bitmap[len] = ~bitmap[len]; /* take care of extra bits beyond PL_maxo in last byte */ if (PL_maxo & 07) bitmap[opset_len-1] &= ~(0xFF << (PL_maxo & 0x07)); } ST(0) = opset; /* #line 387 "Opcode.c" */ } XSRETURN(1); } XS(XS_Opcode_opset_to_ops); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_opset_to_ops) { dXSARGS; if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: Opcode::opset_to_ops(opset, desc = 0)"); SP -= items; { SV * opset = ST(0); int desc; if (items < 2) desc = 0; else { desc = (int)SvIV(ST(1)); } /* #line 359 "Opcode.xs" */ { STRLEN len; int i, j, myopcode; char *bitmap = SvPV(opset, len); char **names = (desc) ? get_op_descs() : get_op_names(); dMY_CXT; verify_opset(aTHX_ opset,1); for (myopcode=0, i=0; i < opset_len; i++) { U16 bits = bitmap[i]; for (j=0; j < 8 && myopcode < PL_maxo; j++, myopcode++) { if ( bits & (1 << j) ) XPUSHs(sv_2mortal(newSVpv(names[myopcode], 0))); } } } /* #line 425 "Opcode.c" */ PUTBACK; return; } } XS(XS_Opcode_opset); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_opset) { dXSARGS; { /* #line 380 "Opcode.xs" */ int i; SV *bitspec, *opset; char *bitmap; STRLEN len, on; opset = sv_2mortal(new_opset(aTHX_ Nullsv)); bitmap = SvPVX(opset); for (i = 0; i < items; i++) { char *opname; on = 1; if (verify_opset(aTHX_ ST(i),0)) { opname = "(opset)"; bitspec = ST(i); } else { opname = SvPV(ST(i), len); if (*opname == '!') { on=0; ++opname;--len; } bitspec = get_op_bitspec(aTHX_ opname, len, 1); } set_opset_bits(aTHX_ bitmap, bitspec, on, opname); } ST(0) = opset; /* #line 459 "Opcode.c" */ } XSRETURN(1); } #define PERMITING (ix == 0 || ix == 1) #define ONLY_THESE (ix == 0 || ix == 2) XS(XS_Opcode_permit_only); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_permit_only) { dXSARGS; dXSI32; if (items < 1) Perl_croak(aTHX_ "Usage: %s(safe, ...)", GvNAME(CvGV(cv))); { SV * safe = ST(0); /* #line 415 "Opcode.xs" */ int i, on; SV *bitspec, *mask; char *bitmap, *opname; STRLEN len; dMY_CXT; if (!SvROK(safe) || !SvOBJECT(SvRV(safe)) || SvTYPE(SvRV(safe))!=SVt_PVHV) croak("Not a Safe object"); mask = *hv_fetch((HV*)SvRV(safe), "Mask",4, 1); if (ONLY_THESE) /* *_only = new mask, else edit current */ sv_setsv(mask, sv_2mortal(new_opset(aTHX_ PERMITING ? opset_all : Nullsv))); else verify_opset(aTHX_ mask,1); /* croaks */ bitmap = SvPVX(mask); for (i = 1; i < items; i++) { on = PERMITING ? 0 : 1; /* deny = mask bit on */ if (verify_opset(aTHX_ ST(i),0)) { /* it's a valid mask */ opname = "(opset)"; bitspec = ST(i); } else { /* it's an opname/optag */ opname = SvPV(ST(i), len); /* invert if op has ! prefix (only one allowed) */ if (*opname == '!') { on = !on; ++opname; --len; } bitspec = get_op_bitspec(aTHX_ opname, len, 1); /* croaks */ } set_opset_bits(aTHX_ bitmap, bitspec, on, opname); } ST(0) = &PL_sv_yes; /* #line 505 "Opcode.c" */ } XSRETURN(1); } XS(XS_Opcode_opdesc); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_opdesc) { dXSARGS; PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 450 "Opcode.xs" */ int i, myopcode; STRLEN len; SV **args; char **op_desc = get_op_descs(); dMY_CXT; /* copy args to a scratch area since we may push output values onto */ /* the stack faster than we read values off it if masks are used. */ args = (SV**)SvPVX(sv_2mortal(newSVpvn((char*)&ST(0), items*sizeof(SV*)))); for (i = 0; i < items; i++) { char *opname = SvPV(args[i], len); SV *bitspec = get_op_bitspec(aTHX_ opname, len, 1); if (SvIOK(bitspec)) { myopcode = SvIV(bitspec); if (myopcode < 0 || myopcode >= PL_maxo) croak("panic: opcode %d (%s) out of range",myopcode,opname); XPUSHs(sv_2mortal(newSVpv(op_desc[myopcode], 0))); } else if (SvPOK(bitspec) && SvCUR(bitspec) == (STRLEN)opset_len) { int b, j; STRLEN n_a; char *bitmap = SvPV(bitspec,n_a); myopcode = 0; for (b=0; b < opset_len; b++) { U16 bits = bitmap[b]; for (j=0; j < 8 && myopcode < PL_maxo; j++, myopcode++) if (bits & (1 << j)) XPUSHs(sv_2mortal(newSVpv(op_desc[myopcode], 0))); } } else croak("panic: invalid bitspec for \"%s\" (type %u)", opname, (unsigned)SvTYPE(bitspec)); } /* #line 552 "Opcode.c" */ PUTBACK; return; } } XS(XS_Opcode_define_optag); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_define_optag) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: Opcode::define_optag(optagsv, mask)"); { SV * optagsv = ST(0); SV * mask = ST(1); /* #line 491 "Opcode.xs" */ STRLEN len; char *optag = SvPV(optagsv, len); put_op_bitspec(aTHX_ optag, len, mask); /* croaks */ ST(0) = &PL_sv_yes; /* #line 573 "Opcode.c" */ } XSRETURN(1); } XS(XS_Opcode_empty_opset); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_empty_opset) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Opcode::empty_opset()"); { /* #line 501 "Opcode.xs" */ ST(0) = sv_2mortal(new_opset(aTHX_ Nullsv)); /* #line 587 "Opcode.c" */ } XSRETURN(1); } XS(XS_Opcode_full_opset); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_full_opset) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Opcode::full_opset()"); { /* #line 506 "Opcode.xs" */ dMY_CXT; ST(0) = sv_2mortal(new_opset(aTHX_ opset_all)); /* #line 602 "Opcode.c" */ } XSRETURN(1); } XS(XS_Opcode_opmask_add); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_opmask_add) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Opcode::opmask_add(opset)"); { SV * opset = ST(0); /* #line 513 "Opcode.xs" */ if (!PL_op_mask) Newz(0, PL_op_mask, PL_maxo, char); /* #line 618 "Opcode.c" */ /* #line 516 "Opcode.xs" */ opmask_add(aTHX_ opset); /* #line 621 "Opcode.c" */ } XSRETURN_EMPTY; } XS(XS_Opcode_opcodes); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_opcodes) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Opcode::opcodes()"); PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 521 "Opcode.xs" */ if (GIMME == G_ARRAY) { croak("opcodes in list context not yet implemented"); /* XXX */ } else { XPUSHs(sv_2mortal(newSViv(PL_maxo))); } /* #line 642 "Opcode.c" */ PUTBACK; return; } } XS(XS_Opcode_opmask); /* prototype to pass -Wmissing-prototypes */ XS(XS_Opcode_opmask) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Opcode::opmask()"); { /* #line 531 "Opcode.xs" */ ST(0) = sv_2mortal(new_opset(aTHX_ Nullsv)); if (PL_op_mask) { char *bitmap = SvPVX(ST(0)); int myopcode; for(myopcode=0; myopcode < PL_maxo; ++myopcode) { if (PL_op_mask[myopcode]) bitmap[myopcode >> 3] |= 1 << (myopcode & 0x07); } } /* #line 665 "Opcode.c" */ } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_Opcode); /* prototype to pass -Wmissing-prototypes */ XS(boot_Opcode) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; { CV * cv ; newXSproto("Opcode::_safe_pkg_prep", XS_Opcode__safe_pkg_prep, file, "$"); newXSproto("Opcode::_safe_call_sv", XS_Opcode__safe_call_sv, file, "$$$"); newXSproto("Opcode::verify_opset", XS_Opcode_verify_opset, file, "$;$"); newXSproto("Opcode::invert_opset", XS_Opcode_invert_opset, file, "$"); newXSproto("Opcode::opset_to_ops", XS_Opcode_opset_to_ops, file, "$;$"); newXSproto("Opcode::opset", XS_Opcode_opset, file, ";@"); cv = newXS("Opcode::permit_only", XS_Opcode_permit_only, file); XSANY.any_i32 = 0 ; sv_setpv((SV*)cv, "$;@") ; cv = newXS("Opcode::deny", XS_Opcode_permit_only, file); XSANY.any_i32 = 3 ; sv_setpv((SV*)cv, "$;@") ; cv = newXS("Opcode::deny_only", XS_Opcode_permit_only, file); XSANY.any_i32 = 2 ; sv_setpv((SV*)cv, "$;@") ; cv = newXS("Opcode::permit", XS_Opcode_permit_only, file); XSANY.any_i32 = 1 ; sv_setpv((SV*)cv, "$;@") ; newXSproto("Opcode::opdesc", XS_Opcode_opdesc, file, ";@"); newXSproto("Opcode::define_optag", XS_Opcode_define_optag, file, "$$"); newXSproto("Opcode::empty_opset", XS_Opcode_empty_opset, file, ""); newXSproto("Opcode::full_opset", XS_Opcode_full_opset, file, ""); newXSproto("Opcode::opmask_add", XS_Opcode_opmask_add, file, "$"); newXSproto("Opcode::opcodes", XS_Opcode_opcodes, file, ""); newXSproto("Opcode::opmask", XS_Opcode_opmask, file, ""); } /* Initialisation Section */ /* #line 253 "Opcode.xs" */ { MY_CXT_INIT; assert(PL_maxo < OP_MASK_BUF_SIZE); opset_len = (PL_maxo + 7) / 8; if (opcode_debug >= 1) warn("opset_len %ld\n", (long)opset_len); op_names_init(aTHX); } /* #line 723 "Opcode.c" */ /* End of Initialisation Section */ XSRETURN_YES; } ================================================ FILE: tests/perlbench/Parser.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of Parser.xs. Do not edit this file, edit Parser.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "Parser.xs" */ /* $Id: Parser.xs,v 2.131 2005/01/06 09:02:28 gisle Exp $ * * Copyright 1999-2005, Gisle Aas. * Copyright 1999-2000, Michael A. Chase. * * This library is free software; you can redistribute it and/or * modify it under the same terms as Perl itself. */ /* * Standard XS greeting. */ #ifdef __cplusplus extern "C" { #endif #define PERL_NO_GET_CONTEXT /* we want efficiency */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #ifdef __cplusplus } #endif /* Added for SPEC CPU */ #define MARKED_SECTION /* * Some perl version compatibility gruff. */ #include "patchlevel.h" #if PATCHLEVEL <= 4 /* perl5.004_XX */ #ifndef PL_sv_undef #define PL_sv_undef sv_undef #define PL_sv_yes sv_yes #endif #ifndef PL_hexdigit #define PL_hexdigit hexdigit #endif #ifndef ERRSV #define ERRSV GvSV(errgv) #endif #if (PATCHLEVEL == 4 && SUBVERSION <= 4) /* The newSVpvn function was introduced in perl5.004_05 */ static SV * newSVpvn(char *s, STRLEN len) { register SV *sv = newSV(0); sv_setpvn(sv,s,len); return sv; } #endif /* not perl5.004_05 */ #endif /* perl5.004_XX */ #ifndef dNOOP #define dNOOP extern int errno #endif #ifndef dTHX #define dTHX dNOOP #define pTHX_ #define aTHX_ #endif #ifndef MEMBER_TO_FPTR #define MEMBER_TO_FPTR(x) (x) #endif #ifndef INT2PTR #define INT2PTR(any,d) (any)(d) #define PTR2IV(p) (IV)(p) #endif #if PATCHLEVEL > 6 || (PATCHLEVEL == 6 && SUBVERSION > 0) #define RETHROW croak(Nullch) #else #define RETHROW { STRLEN my_na; croak("%s", SvPV(ERRSV, my_na)); } #endif #if PATCHLEVEL < 8 /* No useable Unicode support */ /* Make these harmless if present */ #undef SvUTF8 #undef SvUTF8_on #undef SvUTF8_off #define SvUTF8(sv) 0 #define SvUTF8_on(sv) 0 #define SvUTF8_off(sv) 0 #else #define UNICODE_HTML_PARSER #endif #ifdef G_WARN_ON #define DOWARN (PL_dowarn & G_WARN_ON) #else #define DOWARN PL_dowarn #endif /* * Include stuff. We include .c files instead of linking them, * so that they don't have to pollute the external dll name space. */ #ifdef EXTERN #undef EXTERN #endif #define EXTERN static /* Don't pollute */ #include "hparser.h" #include "parser-util.c" #include "hparser.c" /* * Support functions for the XS glue */ static SV* check_handler(pTHX_ SV* h) { if (SvROK(h)) { SV* myref = SvRV(h); if (SvTYPE(myref) == SVt_PVCV) return newSVsv(h); if (SvTYPE(myref) == SVt_PVAV) return SvREFCNT_inc(myref); croak("Only code or array references allowed as handler"); } return SvOK(h) ? newSVsv(h) : 0; } static PSTATE* get_pstate_iv(pTHX_ SV* sv) { PSTATE* p = INT2PTR(PSTATE*, SvIV(sv)); if (p->signature != P_SIGNATURE) croak("Bad signature in parser state object at %p", p); return p; } static PSTATE* get_pstate_hv(pTHX_ SV* sv) /* used by XS typemap */ { HV* hv; SV** svp; sv = SvRV(sv); if (!sv || SvTYPE(sv) != SVt_PVHV) croak("Not a reference to a hash"); hv = (HV*)sv; svp = hv_fetch(hv, "_hparser_xs_state", 17, 0); if (svp) { if (SvROK(*svp)) return get_pstate_iv(aTHX_ SvRV(*svp)); else croak("_hparser_xs_state element is not a reference"); } croak("Can't find '_hparser_xs_state' element in HTML::Parser hash"); return 0; } static void free_pstate(pTHX_ PSTATE* pstate) { int i; SvREFCNT_dec(pstate->buf); SvREFCNT_dec(pstate->pend_text); SvREFCNT_dec(pstate->skipped_text); #ifdef MARKED_SECTION SvREFCNT_dec(pstate->ms_stack); #endif SvREFCNT_dec(pstate->bool_attr_val); for (i = 0; i < EVENT_COUNT; i++) { SvREFCNT_dec(pstate->handlers[i].cb); SvREFCNT_dec(pstate->handlers[i].argspec); } SvREFCNT_dec(pstate->report_tags); SvREFCNT_dec(pstate->ignore_tags); SvREFCNT_dec(pstate->ignore_elements); SvREFCNT_dec(pstate->ignoring_element); SvREFCNT_dec(pstate->tmp); pstate->signature = 0; Safefree(pstate); } static int magic_free_pstate(pTHX_ SV *sv, MAGIC *mg) { free_pstate(aTHX_ get_pstate_iv(aTHX_ sv)); return 0; } MGVTBL vtbl_free_pstate = {0, 0, 0, 0, MEMBER_TO_FPTR(magic_free_pstate)}; /* * XS interface definition. */ /* #line 223 "Parser.c" */ XS(XS_HTML__Parser__alloc_pstate); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Parser__alloc_pstate) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: HTML::Parser::_alloc_pstate(self)"); { SV* self = ST(0); /* #line 221 "Parser.xs" */ PSTATE* pstate; SV* sv; HV* hv; MAGIC* mg; /* #line 238 "Parser.c" */ /* #line 227 "Parser.xs" */ sv = SvRV(self); if (!sv || SvTYPE(sv) != SVt_PVHV) croak("Not a reference to a hash"); hv = (HV*)sv; Newz(56, pstate, 1, PSTATE); pstate->signature = P_SIGNATURE; pstate->entity2char = get_hv("HTML::Entities::entity2char", TRUE); pstate->tmp = NEWSV(0, 20); sv = newSViv(PTR2IV(pstate)); sv_magic(sv, 0, '~', 0, 0); mg = mg_find(sv, '~'); assert(mg); mg->mg_virtual = &vtbl_free_pstate; SvREADONLY_on(sv); hv_store(hv, "_hparser_xs_state", 17, newRV_noinc(sv), 0); /* #line 258 "Parser.c" */ } XSRETURN_EMPTY; } XS(XS_HTML__Parser_parse); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Parser_parse) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: HTML::Parser::parse(self, chunk)"); SP -= items; { SV* self = ST(0); SV* chunk = ST(1); /* #line 251 "Parser.xs" */ PSTATE* p_state = get_pstate_hv(aTHX_ self); /* #line 275 "Parser.c" */ /* #line 253 "Parser.xs" */ if (p_state->parsing) croak("Parse loop not allowed"); p_state->parsing = 1; if (SvROK(chunk) && SvTYPE(SvRV(chunk)) == SVt_PVCV) { SV* generator = chunk; STRLEN len; do { int count; PUSHMARK(SP); count = call_sv(generator, G_SCALAR|G_EVAL); SPAGAIN; chunk = count ? POPs : 0; PUTBACK; if (SvTRUE(ERRSV)) { p_state->parsing = 0; p_state->eof = 0; RETHROW; } if (chunk && SvOK(chunk)) { (void)SvPV(chunk, len); /* get length */ } else { len = 0; } parse(aTHX_ p_state, len ? chunk : 0, self); SPAGAIN; } while (len && !p_state->eof); } else { parse(aTHX_ p_state, chunk, self); SPAGAIN; } p_state->parsing = 0; if (p_state->eof) { p_state->eof = 0; PUSHs(sv_newmortal()); } else { PUSHs(self); } /* #line 320 "Parser.c" */ PUTBACK; return; } } XS(XS_HTML__Parser_eof); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Parser_eof) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: HTML::Parser::eof(self)"); SP -= items; { SV* self = ST(0); /* #line 301 "Parser.xs" */ PSTATE* p_state = get_pstate_hv(aTHX_ self); /* #line 337 "Parser.c" */ /* #line 303 "Parser.xs" */ if (p_state->parsing) p_state->eof = 1; else { p_state->parsing = 1; parse(aTHX_ p_state, 0, self); /* flush */ p_state->parsing = 0; } PUSHs(self); /* #line 347 "Parser.c" */ PUTBACK; return; } } XS(XS_HTML__Parser_strict_comment); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Parser_strict_comment) { dXSARGS; dXSI32; if (items < 1) Perl_croak(aTHX_ "Usage: %s(pstate, ...)", GvNAME(CvGV(cv))); { PSTATE* pstate = get_pstate_hv(aTHX_ ST(0)); /* #line 327 "Parser.xs" */ bool *attr; /* #line 364 "Parser.c" */ SV * RETVAL; /* #line 329 "Parser.xs" */ switch (ix) { case 1: attr = &pstate->strict_comment; break; case 2: attr = &pstate->strict_names; break; case 3: attr = &pstate->xml_mode; break; case 4: attr = &pstate->unbroken_text; break; case 5: #ifdef MARKED_SECTION attr = &pstate->marked_sections; break; #else croak("marked sections not supported"); break; #endif case 6: attr = &pstate->attr_encoded; break; case 7: attr = &pstate->case_sensitive; break; case 8: attr = &pstate->strict_end; break; case 9: attr = &pstate->closing_plaintext; break; #ifdef UNICODE_HTML_PARSER case 10: attr = &pstate->utf8_mode; break; #else case 10: croak("The utf8_mode does not work with this perl; perl-5.8 or better required"); #endif default: croak("Unknown boolean attribute (%d)", ix); } RETVAL = boolSV(*attr); if (items > 1) *attr = SvTRUE(ST(1)); /* #line 393 "Parser.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_HTML__Parser_boolean_attribute_value); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Parser_boolean_attribute_value) { dXSARGS; if (items < 1) Perl_croak(aTHX_ "Usage: HTML::Parser::boolean_attribute_value(pstate, ...)"); { PSTATE* pstate = get_pstate_hv(aTHX_ ST(0)); SV * RETVAL; /* #line 362 "Parser.xs" */ RETVAL = pstate->bool_attr_val ? newSVsv(pstate->bool_attr_val) : &PL_sv_undef; if (items > 1) { SvREFCNT_dec(pstate->bool_attr_val); pstate->bool_attr_val = newSVsv(ST(1)); } /* #line 416 "Parser.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_HTML__Parser_ignore_tags); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Parser_ignore_tags) { dXSARGS; dXSI32; if (items < 1) Perl_croak(aTHX_ "Usage: %s(pstate, ...)", GvNAME(CvGV(cv))); { PSTATE* pstate = get_pstate_hv(aTHX_ ST(0)); /* #line 379 "Parser.xs" */ HV** attr; int i; /* #line 435 "Parser.c" */ /* #line 382 "Parser.xs" */ switch (ix) { case 1: attr = &pstate->report_tags; break; case 2: attr = &pstate->ignore_tags; break; case 3: attr = &pstate->ignore_elements; break; default: croak("Unknown tag-list attribute (%d)", ix); } if (GIMME_V != G_VOID) croak("Can't report tag lists yet"); items--; /* pstate */ if (items) { if (*attr) hv_clear(*attr); else *attr = newHV(); for (i = 0; i < items; i++) { SV* sv = ST(i+1); if (SvROK(sv)) { sv = SvRV(sv); if (SvTYPE(sv) == SVt_PVAV) { AV* av = (AV*)sv; STRLEN j; STRLEN len = av_len(av) + 1; for (j = 0; j < len; j++) { SV**svp = av_fetch(av, j, 0); if (svp) { hv_store_ent(*attr, *svp, newSViv(0), 0); } } } else croak("Tag list must be plain scalars and arrays"); } else { hv_store_ent(*attr, sv, newSViv(0), 0); } } } else if (*attr) { SvREFCNT_dec(*attr); *attr = 0; } /* #line 481 "Parser.c" */ } XSRETURN_EMPTY; } XS(XS_HTML__Parser_handler); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Parser_handler) { dXSARGS; if (items < 2) Perl_croak(aTHX_ "Usage: HTML::Parser::handler(pstate, eventname, ...)"); SP -= items; { PSTATE* pstate = get_pstate_hv(aTHX_ ST(0)); SV* eventname = ST(1); /* #line 432 "Parser.xs" */ STRLEN name_len; char *name = SvPV(eventname, name_len); int event = -1; int i; struct p_handler *h; /* #line 502 "Parser.c" */ /* #line 438 "Parser.xs" */ /* map event name string to event_id */ for (i = 0; i < EVENT_COUNT; i++) { if (strEQ(name, event_id_str[i])) { event = i; break; } } if (event < 0) croak("No handler for %s events", name); h = &pstate->handlers[event]; /* set up return value */ if (h->cb) { PUSHs((SvTYPE(h->cb) == SVt_PVAV) ? sv_2mortal(newRV_inc(h->cb)) : sv_2mortal(newSVsv(h->cb))); } else { PUSHs(&PL_sv_undef); } /* update */ if (items > 3) { SvREFCNT_dec(h->argspec); h->argspec = 0; h->argspec = argspec_compile(ST(3), pstate); } if (items > 2) { SvREFCNT_dec(h->cb); h->cb = 0; h->cb = check_handler(aTHX_ ST(2)); } /* #line 537 "Parser.c" */ PUTBACK; return; } } XS(XS_HTML__Entities_decode_entities); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Entities_decode_entities) { dXSARGS; PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 478 "Parser.xs" */ int i; HV *entity2char = get_hv("HTML::Entities::entity2char", FALSE); /* #line 553 "Parser.c" */ /* #line 481 "Parser.xs" */ if (GIMME_V == G_SCALAR && items > 1) items = 1; for (i = 0; i < items; i++) { if (GIMME_V != G_VOID) ST(i) = sv_2mortal(newSVsv(ST(i))); else if (SvREADONLY(ST(i))) croak("Can't inline decode readonly string"); decode_entities(aTHX_ ST(i), entity2char, 0); } SP += items; /* #line 565 "Parser.c" */ PUTBACK; return; } } XS(XS_HTML__Entities__decode_entities); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Entities__decode_entities) { dXSARGS; if (items < 2) Perl_croak(aTHX_ "Usage: HTML::Entities::_decode_entities(string, entities, ...)"); { SV* string = ST(0); SV* entities = ST(1); /* #line 497 "Parser.xs" */ HV* entities_hv; bool allow_unterminated = (items > 2) ? SvTRUE(ST(2)) : 0; /* #line 583 "Parser.c" */ /* #line 500 "Parser.xs" */ if (SvOK(entities)) { if (SvROK(entities) && SvTYPE(SvRV(entities)) == SVt_PVHV) { entities_hv = (HV*)SvRV(entities); } else { croak("2nd argument must be hash reference"); } } else { entities_hv = 0; } if (SvREADONLY(string)) croak("Can't inline decode readonly string"); decode_entities(aTHX_ string, entities_hv, allow_unterminated); /* #line 599 "Parser.c" */ } XSRETURN_EMPTY; } XS(XS_HTML__Entities__probably_utf8_chunk); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Entities__probably_utf8_chunk) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: HTML::Entities::_probably_utf8_chunk(string)"); { SV* string = ST(0); /* #line 519 "Parser.xs" */ STRLEN len; char *s; /* #line 615 "Parser.c" */ bool RETVAL; /* #line 522 "Parser.xs" */ #ifdef UNICODE_HTML_PARSER sv_utf8_downgrade(string, 0); s = SvPV(string, len); RETVAL = probably_utf8_chunk(aTHX_ s, len); #else croak("_probably_utf8_chunk() only works for Unicode enabled perls"); #endif /* #line 625 "Parser.c" */ ST(0) = boolSV(RETVAL); sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_HTML__Entities_UNICODE_SUPPORT); /* prototype to pass -Wmissing-prototypes */ XS(XS_HTML__Entities_UNICODE_SUPPORT) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: HTML::Entities::UNICODE_SUPPORT()"); { int RETVAL; dXSTARG; /* #line 536 "Parser.xs" */ #ifdef UNICODE_HTML_PARSER RETVAL = 1; #else RETVAL = 0; #endif /* #line 647 "Parser.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_HTML__Parser); /* prototype to pass -Wmissing-prototypes */ XS(boot_HTML__Parser) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; { CV * cv ; newXS("HTML::Parser::_alloc_pstate", XS_HTML__Parser__alloc_pstate, file); newXS("HTML::Parser::parse", XS_HTML__Parser_parse, file); newXS("HTML::Parser::eof", XS_HTML__Parser_eof, file); cv = newXS("HTML::Parser::closing_plaintext", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 9 ; cv = newXS("HTML::Parser::strict_end", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 8 ; cv = newXS("HTML::Parser::marked_sections", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 5 ; cv = newXS("HTML::Parser::case_sensitive", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 7 ; cv = newXS("HTML::Parser::unbroken_text", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 4 ; cv = newXS("HTML::Parser::strict_comment", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 1 ; cv = newXS("HTML::Parser::xml_mode", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 3 ; cv = newXS("HTML::Parser::attr_encoded", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 6 ; cv = newXS("HTML::Parser::strict_names", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 2 ; cv = newXS("HTML::Parser::utf8_mode", XS_HTML__Parser_strict_comment, file); XSANY.any_i32 = 10 ; newXS("HTML::Parser::boolean_attribute_value", XS_HTML__Parser_boolean_attribute_value, file); cv = newXS("HTML::Parser::ignore_tags", XS_HTML__Parser_ignore_tags, file); XSANY.any_i32 = 2 ; cv = newXS("HTML::Parser::ignore_elements", XS_HTML__Parser_ignore_tags, file); XSANY.any_i32 = 3 ; cv = newXS("HTML::Parser::report_tags", XS_HTML__Parser_ignore_tags, file); XSANY.any_i32 = 1 ; newXS("HTML::Parser::handler", XS_HTML__Parser_handler, file); newXS("HTML::Entities::decode_entities", XS_HTML__Entities_decode_entities, file); newXS("HTML::Entities::_decode_entities", XS_HTML__Entities__decode_entities, file); newXS("HTML::Entities::_probably_utf8_chunk", XS_HTML__Entities__probably_utf8_chunk, file); newXSproto("HTML::Entities::UNICODE_SUPPORT", XS_HTML__Entities_UNICODE_SUPPORT, file, ""); } XSRETURN_YES; } ================================================ FILE: tests/perlbench/Peek.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of Peek.xs. Do not edit this file, edit Peek.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "Peek.xs" */ #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" bool _runops_debug(int flag) { dTHX; bool d = PL_runops == MEMBER_TO_FPTR(Perl_runops_debug); if (flag >= 0) PL_runops = MEMBER_TO_FPTR(flag ? Perl_runops_debug : Perl_runops_standard); return d; } SV * DeadCode(pTHX) { #ifdef PURIFY return Nullsv; #else SV* sva; SV* sv; SV* ret = newRV_noinc((SV*)newAV()); register SV* svend; int tm = 0, tref = 0, ts = 0, ta = 0, tas = 0; for (sva = PL_sv_arenaroot; sva; sva = (SV*)SvANY(sva)) { svend = &sva[SvREFCNT(sva)]; for (sv = sva + 1; sv < svend; ++sv) { if (SvTYPE(sv) == SVt_PVCV) { CV *cv = (CV*)sv; AV* padlist = CvPADLIST(cv), *argav; SV** svp; SV** pad; int i = 0, j, levelm, totm = 0, levelref, totref = 0; int levels, tots = 0, levela, tota = 0, levelas, totas = 0; int dumpit = 0; if (CvXSUB(sv)) { continue; /* XSUB */ } if (!CvGV(sv)) { continue; /* file-level scope. */ } if (!CvROOT(cv)) { /* PerlIO_printf(Perl_debug_log, " no root?!\n"); */ continue; /* autoloading stub. */ } do_gvgv_dump(0, Perl_debug_log, "GVGV::GV", CvGV(sv)); if (CvDEPTH(cv)) { PerlIO_printf(Perl_debug_log, " busy\n"); continue; } svp = AvARRAY(padlist); while (++i <= AvFILL(padlist)) { /* Depth. */ SV **args; pad = AvARRAY((AV*)svp[i]); argav = (AV*)pad[0]; if (!argav || (SV*)argav == &PL_sv_undef) { PerlIO_printf(Perl_debug_log, " closure-template\n"); continue; } args = AvARRAY(argav); levelm = levels = levelref = levelas = 0; levela = sizeof(SV*) * (AvMAX(argav) + 1); if (AvREAL(argav)) { for (j = 0; j < AvFILL(argav); j++) { if (SvROK(args[j])) { PerlIO_printf(Perl_debug_log, " ref in args!\n"); levelref++; } /* else if (SvPOK(args[j]) && SvPVX(args[j])) { */ else if (SvTYPE(args[j]) >= SVt_PV && SvLEN(args[j])) { levelas += SvLEN(args[j])/SvREFCNT(args[j]); } } } for (j = 1; j < AvFILL((AV*)svp[1]); j++) { /* Vars. */ if (SvROK(pad[j])) { levelref++; do_sv_dump(0, Perl_debug_log, pad[j], 0, 4, 0, 0); dumpit = 1; } /* else if (SvPOK(pad[j]) && SvPVX(pad[j])) { */ else if (SvTYPE(pad[j]) >= SVt_PVAV) { if (!SvPADMY(pad[j])) { levelref++; do_sv_dump(0, Perl_debug_log, pad[j], 0, 4, 0, 0); dumpit = 1; } } else if (SvTYPE(pad[j]) >= SVt_PV && SvLEN(pad[j])) { levels++; levelm += SvLEN(pad[j])/SvREFCNT(pad[j]); /* Dump(pad[j],4); */ } } PerlIO_printf(Perl_debug_log, " level %i: refs: %i, strings: %i in %i,\targsarray: %i, argsstrings: %i\n", i, levelref, levelm, levels, levela, levelas); totm += levelm; tota += levela; totas += levelas; tots += levels; totref += levelref; if (dumpit) do_sv_dump(0, Perl_debug_log, (SV*)cv, 0, 2, 0, 0); } if (AvFILL(padlist) > 1) { PerlIO_printf(Perl_debug_log, " total: refs: %i, strings: %i in %i,\targsarrays: %i, argsstrings: %i\n", totref, totm, tots, tota, totas); } tref += totref; tm += totm; ts += tots; ta += tota; tas += totas; } } } PerlIO_printf(Perl_debug_log, "total: refs: %i, strings: %i in %i\targsarray: %i, argsstrings: %i\n", tref, tm, ts, ta, tas); return ret; #endif /* !PURIFY */ } #if (defined(PERL_DEBUGGING_MSTATS) || defined(DEBUGGING_MSTATS)) \ && (defined(MYMALLOC) && !defined(PLAIN_MALLOC)) # define mstat(str) dump_mstats(str) #else # define mstat(str) \ PerlIO_printf(Perl_debug_log, "%s: perl not compiled with DEBUGGING_MSTATS\n",str); #endif #if (defined(PERL_DEBUGGING_MSTATS) || defined(DEBUGGING_MSTATS)) \ && (defined(MYMALLOC) && !defined(PLAIN_MALLOC)) /* Very coarse overestimate, 2-per-power-of-2, one more to determine NBUCKETS. */ # define _NBUCKETS (2*8*IVSIZE+1) struct mstats_buffer { perl_mstats_t buffer; UV buf[_NBUCKETS*4]; }; void _fill_mstats(struct mstats_buffer *b, int level) { dTHX; b->buffer.nfree = b->buf; b->buffer.ntotal = b->buf + _NBUCKETS; b->buffer.bucket_mem_size = b->buf + 2*_NBUCKETS; b->buffer.bucket_available_size = b->buf + 3*_NBUCKETS; Zero(b->buf, (level ? 4*_NBUCKETS: 2*_NBUCKETS), unsigned long); get_mstats(&(b->buffer), _NBUCKETS, level); } void fill_mstats(SV *sv, int level) { dTHX; if (SvREADONLY(sv)) croak("Cannot modify a readonly value"); SvGROW(sv, sizeof(struct mstats_buffer)+1); _fill_mstats((struct mstats_buffer*)SvPVX(sv),level); SvCUR_set(sv, sizeof(struct mstats_buffer)); *SvEND(sv) = '\0'; SvPOK_only(sv); } void _mstats_to_hv(HV *hv, struct mstats_buffer *b, int level) { dTHX; SV **svp; int type; svp = hv_fetch(hv, "topbucket", 9, 1); sv_setiv(*svp, b->buffer.topbucket); svp = hv_fetch(hv, "topbucket_ev", 12, 1); sv_setiv(*svp, b->buffer.topbucket_ev); svp = hv_fetch(hv, "topbucket_odd", 13, 1); sv_setiv(*svp, b->buffer.topbucket_odd); svp = hv_fetch(hv, "totfree", 7, 1); sv_setiv(*svp, b->buffer.totfree); svp = hv_fetch(hv, "total", 5, 1); sv_setiv(*svp, b->buffer.total); svp = hv_fetch(hv, "total_chain", 11, 1); sv_setiv(*svp, b->buffer.total_chain); svp = hv_fetch(hv, "total_sbrk", 10, 1); sv_setiv(*svp, b->buffer.total_sbrk); svp = hv_fetch(hv, "sbrks", 5, 1); sv_setiv(*svp, b->buffer.sbrks); svp = hv_fetch(hv, "sbrk_good", 9, 1); sv_setiv(*svp, b->buffer.sbrk_good); svp = hv_fetch(hv, "sbrk_slack", 10, 1); sv_setiv(*svp, b->buffer.sbrk_slack); svp = hv_fetch(hv, "start_slack", 11, 1); sv_setiv(*svp, b->buffer.start_slack); svp = hv_fetch(hv, "sbrked_remains", 14, 1); sv_setiv(*svp, b->buffer.sbrked_remains); svp = hv_fetch(hv, "minbucket", 9, 1); sv_setiv(*svp, b->buffer.minbucket); svp = hv_fetch(hv, "nbuckets", 8, 1); sv_setiv(*svp, b->buffer.nbuckets); if (_NBUCKETS < b->buffer.nbuckets) warn("FIXME: internal mstats buffer too short"); for (type = 0; type < (level ? 4 : 2); type++) { UV *p = 0, *p1 = 0; AV *av; int i; static const char *types[4] = { "free", "used", "mem_size", "available_size" }; svp = hv_fetch(hv, types[type], strlen(types[type]), 1); if (SvOK(*svp) && !(SvROK(*svp) && SvTYPE(SvRV(*svp)) == SVt_PVAV)) croak("Unexpected value for the key '%s' in the mstats hash", types[type]); if (!SvOK(*svp)) { av = newAV(); (void)SvUPGRADE(*svp, SVt_RV); SvRV(*svp) = (SV*)av; SvROK_on(*svp); } else av = (AV*)SvRV(*svp); av_extend(av, b->buffer.nbuckets - 1); /* XXXX What is the official way to reduce the size of the array? */ switch (type) { case 0: p = b->buffer.nfree; break; case 1: p = b->buffer.ntotal; p1 = b->buffer.nfree; break; case 2: p = b->buffer.bucket_mem_size; break; case 3: p = b->buffer.bucket_available_size; break; } for (i = 0; i < b->buffer.nbuckets; i++) { svp = av_fetch(av, i, 1); if (type == 1) sv_setiv(*svp, p[i]-p1[i]); else sv_setuv(*svp, p[i]); } } } void mstats_fillhash(SV *sv, int level) { struct mstats_buffer buf; if (!(SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVHV)) croak("Not a hash reference"); _fill_mstats(&buf, level); _mstats_to_hv((HV *)SvRV(sv), &buf, level); } void mstats2hash(SV *sv, SV *rv, int level) { if (!(SvROK(rv) && SvTYPE(SvRV(rv)) == SVt_PVHV)) croak("Not a hash reference"); if (!SvPOK(sv)) croak("Undefined value when expecting mstats buffer"); if (SvCUR(sv) != sizeof(struct mstats_buffer)) croak("Wrong size for a value with a mstats buffer"); _mstats_to_hv((HV *)SvRV(rv), (struct mstats_buffer*)SvPVX(sv), level); } #else /* !( defined(PERL_DEBUGGING_MSTATS) || defined(DEBUGGING_MSTATS) \ ) */ void fill_mstats(SV *sv, int level) { croak("Cannot report mstats without Perl malloc"); } void mstats_fillhash(SV *sv, int level) { croak("Cannot report mstats without Perl malloc"); } void mstats2hash(SV *sv, SV *rv, int level) { croak("Cannot report mstats without Perl malloc"); } #endif /* defined(PERL_DEBUGGING_MSTATS) || defined(DEBUGGING_MSTATS)... */ #define _CvGV(cv) \ (SvROK(cv) && (SvTYPE(SvRV(cv))==SVt_PVCV) \ ? SvREFCNT_inc(CvGV((CV*)SvRV(cv))) : &PL_sv_undef) /* #line 327 "Peek.c" */ XS(XS_Devel__Peek_mstat); /* prototype to pass -Wmissing-prototypes */ XS(XS_Devel__Peek_mstat) { dXSARGS; if (items < 0 || items > 1) Perl_croak(aTHX_ "Usage: Devel::Peek::mstat(str=\"Devel::Peek::mstat: \")"); { char * str; if (items < 1) str = "Devel::Peek::mstat: "; else { str = (char *)SvPV_nolen(ST(0)); } mstat(str); } XSRETURN_EMPTY; } XS(XS_Devel__Peek_fill_mstats); /* prototype to pass -Wmissing-prototypes */ XS(XS_Devel__Peek_fill_mstats) { dXSARGS; if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: Devel::Peek::fill_mstats(sv, level= 0)"); { SV * sv = ST(0); int level; if (items < 2) level = 0; else { level = (int)SvIV(ST(1)); } fill_mstats(sv, level); } XSRETURN_EMPTY; } XS(XS_Devel__Peek_mstats_fillhash); /* prototype to pass -Wmissing-prototypes */ XS(XS_Devel__Peek_mstats_fillhash) { dXSARGS; if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: Devel::Peek::mstats_fillhash(sv, level= 0)"); { SV * sv = ST(0); int level; if (items < 2) level = 0; else { level = (int)SvIV(ST(1)); } mstats_fillhash(sv, level); } XSRETURN_EMPTY; } XS(XS_Devel__Peek_mstats2hash); /* prototype to pass -Wmissing-prototypes */ XS(XS_Devel__Peek_mstats2hash) { dXSARGS; if (items < 2 || items > 3) Perl_croak(aTHX_ "Usage: Devel::Peek::mstats2hash(sv, rv, level= 0)"); { SV * sv = ST(0); SV * rv = ST(1); int level; if (items < 3) level = 0; else { level = (int)SvIV(ST(2)); } mstats2hash(sv, rv, level); } XSRETURN_EMPTY; } XS(XS_Devel__Peek_Dump); /* prototype to pass -Wmissing-prototypes */ XS(XS_Devel__Peek_Dump) { dXSARGS; if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: Devel::Peek::Dump(sv, lim=4)"); SP -= items; { SV * sv = ST(0); I32 lim; if (items < 2) lim = 4; else { lim = (I32)SvIV(ST(1)); } /* #line 339 "Peek.xs" */ { SV *pv_lim_sv = get_sv("Devel::Peek::pv_limit", FALSE); STRLEN pv_lim = pv_lim_sv ? SvIV(pv_lim_sv) : 0; SV *dumpop = get_sv("Devel::Peek::dump_ops", FALSE); I32 save_dumpindent = PL_dumpindent; PL_dumpindent = 2; do_sv_dump(0, Perl_debug_log, sv, 0, lim, (bool)(dumpop && SvTRUE(dumpop)), pv_lim); PL_dumpindent = save_dumpindent; } /* #line 439 "Peek.c" */ PUTBACK; return; } } XS(XS_Devel__Peek_DumpArray); /* prototype to pass -Wmissing-prototypes */ XS(XS_Devel__Peek_DumpArray) { dXSARGS; if (items < 1) Perl_croak(aTHX_ "Usage: Devel::Peek::DumpArray(lim, ...)"); SP -= items; { I32 lim = (I32)SvIV(ST(0)); /* #line 354 "Peek.xs" */ { long i; SV *pv_lim_sv = get_sv("Devel::Peek::pv_limit", FALSE); STRLEN pv_lim = pv_lim_sv ? SvIV(pv_lim_sv) : 0; SV *dumpop = get_sv("Devel::Peek::dump_ops", FALSE); I32 save_dumpindent = PL_dumpindent; PL_dumpindent = 2; for (i=1; i 1) Perl_croak(aTHX_ "Usage: Devel::Peek::runops_debug(flag= -1)"); { bool RETVAL; int flag; if (items < 1) flag = -1; else { flag = (int)SvIV(ST(0)); } RETVAL = _runops_debug(flag); ST(0) = boolSV(RETVAL); sv_2mortal(ST(0)); } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_Devel__Peek); /* prototype to pass -Wmissing-prototypes */ XS(boot_Devel__Peek) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXS("Devel::Peek::mstat", XS_Devel__Peek_mstat, file); newXS("Devel::Peek::fill_mstats", XS_Devel__Peek_fill_mstats, file); newXSproto("Devel::Peek::mstats_fillhash", XS_Devel__Peek_mstats_fillhash, file, "\\%;$"); newXSproto("Devel::Peek::mstats2hash", XS_Devel__Peek_mstats2hash, file, "$\\%;$"); newXS("Devel::Peek::Dump", XS_Devel__Peek_Dump, file); newXS("Devel::Peek::DumpArray", XS_Devel__Peek_DumpArray, file); newXS("Devel::Peek::DumpProg", XS_Devel__Peek_DumpProg, file); newXS("Devel::Peek::SvREFCNT", XS_Devel__Peek_SvREFCNT, file); newXS("Devel::Peek::SvREFCNT_inc", XS_Devel__Peek_SvREFCNT_inc, file); newXS("Devel::Peek::SvREFCNT_dec", XS_Devel__Peek_SvREFCNT_dec, file); newXS("Devel::Peek::DeadCode", XS_Devel__Peek_DeadCode, file); newXS("Devel::Peek::CvGV", XS_Devel__Peek_CvGV, file); newXS("Devel::Peek::runops_debug", XS_Devel__Peek_runops_debug, file); XSRETURN_YES; } ================================================ FILE: tests/perlbench/Storable.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of Storable.xs. Do not edit this file, edit Storable.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "Storable.xs" */ /* * Store and retrieve mechanism. * * Copyright (c) 1995-2000, Raphael Manfredi * * You may redistribute only under the same terms as Perl 5, as specified * in the README file that comes with the distribution. * */ #define PERL_NO_GET_CONTEXT /* we want efficiency */ /* SPEC CPU */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #ifndef PATCHLEVEL /* SPEC CPU */ # include "patchlevel.h" /* Perl's one, needed since 5.6 */ # if !(defined(PERL_VERSION) || (SUBVERSION > 0 && defined(PATCHLEVEL))) # include # endif #endif #if PERL_VERSION < 8 #include "ppport.h" /* handle old perls */ #endif #ifndef NETWARE #if 0 #define DEBUGME /* Debug mode, turns assertions on as well */ #define DASSERT /* Assertion mode */ #endif #else /* NETWARE */ #if 0 /* On NetWare USE_PERLIO is not used */ #define DEBUGME /* Debug mode, turns assertions on as well */ #define DASSERT /* Assertion mode */ #endif #endif /* * Pre PerlIO time when none of USE_PERLIO and PERLIO_IS_STDIO is defined * Provide them with the necessary defines so they can build with pre-5.004. */ #ifndef USE_PERLIO #ifndef PERLIO_IS_STDIO #define PerlIO FILE #define PerlIO_getc(x) getc(x) #define PerlIO_putc(f,x) putc(x,f) #define PerlIO_read(x,y,z) fread(y,1,z,x) #define PerlIO_write(x,y,z) fwrite(y,1,z,x) #define PerlIO_stdoutf printf #endif /* PERLIO_IS_STDIO */ #endif /* USE_PERLIO */ /* * Earlier versions of perl might be used, we can't assume they have the latest! */ #ifndef PERL_VERSION /* For perls < 5.6 */ #define PERL_VERSION PATCHLEVEL #ifndef newRV_noinc #define newRV_noinc(sv) ((Sv = newRV(sv)), --SvREFCNT(SvRV(Sv)), Sv) #endif #if (PATCHLEVEL <= 4) /* Older perls (<= 5.004) lack PL_ namespace */ #define PL_sv_yes sv_yes #define PL_sv_no sv_no #define PL_sv_undef sv_undef #if (SUBVERSION <= 4) /* 5.004_04 has been reported to lack newSVpvn */ #define newSVpvn newSVpv #endif #endif /* PATCHLEVEL <= 4 */ #ifndef HvSHAREKEYS_off #define HvSHAREKEYS_off(hv) /* Ignore */ #endif #ifndef AvFILLp /* Older perls (<=5.003) lack AvFILLp */ #define AvFILLp AvFILL #endif typedef double NV; /* Older perls lack the NV type */ #define IVdf "ld" /* Various printf formats for Perl types */ #define UVuf "lu" #define UVof "lo" #define UVxf "lx" #define INT2PTR(t,v) (t)(IV)(v) #define PTR2UV(v) (unsigned long)(v) #endif /* PERL_VERSION -- perls < 5.6 */ #ifndef NVef /* The following were not part of perl 5.6 */ #if defined(USE_LONG_DOUBLE) && \ defined(HAS_LONG_DOUBLE) && defined(PERL_PRIfldbl) #define NVef PERL_PRIeldbl #define NVff PERL_PRIfldbl #define NVgf PERL_PRIgldbl #else #define NVef "e" #define NVff "f" #define NVgf "g" #endif #endif #ifdef DEBUGME #ifndef DASSERT #define DASSERT #endif /* * TRACEME() will only output things when the $Storable::DEBUGME is true. */ #define TRACEME(x) \ STMT_START { \ if (SvTRUE(get_sv("Storable::DEBUGME", TRUE))) \ { PerlIO_stdoutf x; PerlIO_stdoutf("\n"); } \ } STMT_END #else #define TRACEME(x) #endif /* DEBUGME */ #ifdef DASSERT #define ASSERT(x,y) \ STMT_START { \ if (!(x)) { \ PerlIO_stdoutf("ASSERT FAILED (\"%s\", line %d): ", \ __FILE__, __LINE__); \ PerlIO_stdoutf y; PerlIO_stdoutf("\n"); \ } \ } STMT_END #else #define ASSERT(x,y) #endif /* * Type markers. */ #define C(x) ((char) (x)) /* For markers with dynamic retrieval handling */ #define SX_OBJECT C(0) /* Already stored object */ #define SX_LSCALAR C(1) /* Scalar (large binary) follows (length, data) */ #define SX_ARRAY C(2) /* Array forthcominng (size, item list) */ #define SX_HASH C(3) /* Hash forthcoming (size, key/value pair list) */ #define SX_REF C(4) /* Reference to object forthcoming */ #define SX_UNDEF C(5) /* Undefined scalar */ #define SX_INTEGER C(6) /* Integer forthcoming */ #define SX_DOUBLE C(7) /* Double forthcoming */ #define SX_BYTE C(8) /* (signed) byte forthcoming */ #define SX_NETINT C(9) /* Integer in network order forthcoming */ #define SX_SCALAR C(10) /* Scalar (binary, small) follows (length, data) */ #define SX_TIED_ARRAY C(11) /* Tied array forthcoming */ #define SX_TIED_HASH C(12) /* Tied hash forthcoming */ #define SX_TIED_SCALAR C(13) /* Tied scalar forthcoming */ #define SX_SV_UNDEF C(14) /* Perl's immortal PL_sv_undef */ #define SX_SV_YES C(15) /* Perl's immortal PL_sv_yes */ #define SX_SV_NO C(16) /* Perl's immortal PL_sv_no */ #define SX_BLESS C(17) /* Object is blessed */ #define SX_IX_BLESS C(18) /* Object is blessed, classname given by index */ #define SX_HOOK C(19) /* Stored via hook, user-defined */ #define SX_OVERLOAD C(20) /* Overloaded reference */ #define SX_TIED_KEY C(21) /* Tied magic key forthcoming */ #define SX_TIED_IDX C(22) /* Tied magic index forthcoming */ #define SX_UTF8STR C(23) /* UTF-8 string forthcoming (small) */ #define SX_LUTF8STR C(24) /* UTF-8 string forthcoming (large) */ #define SX_FLAG_HASH C(25) /* Hash with flags forthcoming (size, flags, key/flags/value triplet list) */ #define SX_CODE C(26) /* Code references as perl source code */ #define SX_ERROR C(27) /* Error */ /* * Those are only used to retrieve "old" pre-0.6 binary images. */ #define SX_ITEM 'i' /* An array item introducer */ #define SX_IT_UNDEF 'I' /* Undefined array item */ #define SX_KEY 'k' /* A hash key introducer */ #define SX_VALUE 'v' /* A hash value introducer */ #define SX_VL_UNDEF 'V' /* Undefined hash value */ /* * Those are only used to retrieve "old" pre-0.7 binary images */ #define SX_CLASS 'b' /* Object is blessed, class name length <255 */ #define SX_LG_CLASS 'B' /* Object is blessed, class name length >255 */ #define SX_STORED 'X' /* End of object */ /* * Limits between short/long length representation. */ #define LG_SCALAR 255 /* Large scalar length limit */ #define LG_BLESS 127 /* Large classname bless limit */ /* * Operation types */ #define ST_STORE 0x1 /* Store operation */ #define ST_RETRIEVE 0x2 /* Retrieval operation */ #define ST_CLONE 0x4 /* Deep cloning operation */ /* * The following structure is used for hash table key retrieval. Since, when * retrieving objects, we'll be facing blessed hash references, it's best * to pre-allocate that buffer once and resize it as the need arises, never * freeing it (keys will be saved away someplace else anyway, so even large * keys are not enough a motivation to reclaim that space). * * This structure is also used for memory store/retrieve operations which * happen in a fixed place before being malloc'ed elsewhere if persistency * is required. Hence the aptr pointer. */ struct extendable { char *arena; /* Will hold hash key strings, resized as needed */ STRLEN asiz; /* Size of aforementionned buffer */ char *aptr; /* Arena pointer, for in-place read/write ops */ char *aend; /* First invalid address */ }; /* * At store time: * A hash table records the objects which have already been stored. * Those are referred to as SX_OBJECT in the file, and their "tag" (i.e. * an arbitrary sequence number) is used to identify them. * * At retrieve time: * An array table records the objects which have already been retrieved, * as seen by the tag determind by counting the objects themselves. The * reference to that retrieved object is kept in the table, and is returned * when an SX_OBJECT is found bearing that same tag. * * The same processing is used to record "classname" for blessed objects: * indexing by a hash at store time, and via an array at retrieve time. */ typedef unsigned long stag_t; /* Used by pre-0.6 binary format */ /* * The following "thread-safe" related defines were contributed by * Murray Nesbitt and integrated by RAM, who * only renamed things a little bit to ensure consistency with surrounding * code. -- RAM, 14/09/1999 * * The original patch suffered from the fact that the stcxt_t structure * was global. Murray tried to minimize the impact on the code as much as * possible. * * Starting with 0.7, Storable can be re-entrant, via the STORABLE_xxx hooks * on objects. Therefore, the notion of context needs to be generalized, * threading or not. */ #define MY_VERSION "Storable(" XS_VERSION ")" /* * Conditional UTF8 support. * */ #ifdef SvUTF8_on #define STORE_UTF8STR(pv, len) STORE_PV_LEN(pv, len, SX_UTF8STR, SX_LUTF8STR) #define HAS_UTF8_SCALARS #ifdef HeKUTF8 #define HAS_UTF8_HASHES #define HAS_UTF8_ALL #else /* 5.6 perl has utf8 scalars but not hashes */ #endif #else #define SvUTF8(sv) 0 #define STORE_UTF8STR(pv, len) CROAK(("panic: storing UTF8 in non-UTF8 perl")) #endif #ifndef HAS_UTF8_ALL #define UTF8_CROAK() CROAK(("Cannot retrieve UTF8 data in non-UTF8 perl")) #endif #ifdef HvPLACEHOLDERS #define HAS_RESTRICTED_HASHES #else #define HVhek_PLACEHOLD 0x200 #define RESTRICTED_HASH_CROAK() CROAK(("Cannot retrieve restricted hash")) #endif #ifdef HvHASKFLAGS #define HAS_HASH_KEY_FLAGS #endif /* * Fields s_tainted and s_dirty are prefixed with s_ because Perl's include * files remap tainted and dirty when threading is enabled. That's bad for * perl to remap such common words. -- RAM, 29/09/00 */ typedef struct stcxt { int entry; /* flags recursion */ int optype; /* type of traversal operation */ HV *hseen; /* which objects have been seen, store time */ AV *hook_seen; /* which SVs were returned by STORABLE_freeze() */ AV *aseen; /* which objects have been seen, retrieve time */ IV where_is_undef; /* index in aseen of PL_sv_undef */ HV *hclass; /* which classnames have been seen, store time */ AV *aclass; /* which classnames have been seen, retrieve time */ HV *hook; /* cache for hook methods per class name */ IV tagnum; /* incremented at store time for each seen object */ IV classnum; /* incremented at store time for each seen classname */ int netorder; /* true if network order used */ int s_tainted; /* true if input source is tainted, at retrieve time */ int forgive_me; /* whether to be forgiving... */ int deparse; /* whether to deparse code refs */ SV *eval; /* whether to eval source code */ int canonical; /* whether to store hashes sorted by key */ #ifndef HAS_RESTRICTED_HASHES int derestrict; /* whether to downgrade restrcted hashes */ #endif #ifndef HAS_UTF8_ALL int use_bytes; /* whether to bytes-ify utf8 */ #endif int accept_future_minor; /* croak immediately on future minor versions? */ int s_dirty; /* context is dirty due to CROAK() -- can be cleaned */ int membuf_ro; /* true means membuf is read-only and msaved is rw */ struct extendable keybuf; /* for hash key retrieval */ struct extendable membuf; /* for memory store/retrieve operations */ struct extendable msaved; /* where potentially valid mbuf is saved */ PerlIO *fio; /* where I/O are performed, NULL for memory */ int ver_major; /* major of version for retrieved object */ int ver_minor; /* minor of version for retrieved object */ SV *(**retrieve_vtbl)(); /* retrieve dispatch table */ SV *prev; /* contexts chained backwards in real recursion */ SV *my_sv; /* the blessed scalar who's SvPVX() I am */ } stcxt_t; #define NEW_STORABLE_CXT_OBJ(cxt) \ STMT_START { \ SV *self = newSV(sizeof(stcxt_t) - 1); \ SV *my_sv = newRV_noinc(self); \ sv_bless(my_sv, gv_stashpv("Storable::Cxt", TRUE)); \ cxt = (stcxt_t *)SvPVX(self); \ Zero(cxt, 1, stcxt_t); \ cxt->my_sv = my_sv; \ } STMT_END #if defined(MULTIPLICITY) || defined(PERL_OBJECT) || defined(PERL_CAPI) #if (PATCHLEVEL <= 4) && (SUBVERSION < 68) #define dSTCXT_SV \ SV *perinterp_sv = get_sv(MY_VERSION, FALSE) #else /* >= perl5.004_68 */ #define dSTCXT_SV \ SV *perinterp_sv = *hv_fetch(PL_modglobal, \ MY_VERSION, sizeof(MY_VERSION)-1, TRUE) #endif /* < perl5.004_68 */ #define dSTCXT_PTR(T,name) \ T name = ((perinterp_sv && SvIOK(perinterp_sv) && SvIVX(perinterp_sv) \ ? (T)SvPVX(SvRV(INT2PTR(SV*,SvIVX(perinterp_sv)))) : (T) 0)) #define dSTCXT \ dSTCXT_SV; \ dSTCXT_PTR(stcxt_t *, cxt) #define INIT_STCXT \ dSTCXT; \ NEW_STORABLE_CXT_OBJ(cxt); \ sv_setiv(perinterp_sv, PTR2IV(cxt->my_sv)) #define SET_STCXT(x) \ STMT_START { \ dSTCXT_SV; \ sv_setiv(perinterp_sv, PTR2IV(x->my_sv)); \ } STMT_END #else /* !MULTIPLICITY && !PERL_OBJECT && !PERL_CAPI */ static stcxt_t *Context_ptr = NULL; #define dSTCXT stcxt_t *cxt = Context_ptr #define SET_STCXT(x) Context_ptr = x #define INIT_STCXT \ dSTCXT; \ NEW_STORABLE_CXT_OBJ(cxt); \ SET_STCXT(cxt) #endif /* MULTIPLICITY || PERL_OBJECT || PERL_CAPI */ /* * KNOWN BUG: * Croaking implies a memory leak, since we don't use setjmp/longjmp * to catch the exit and free memory used during store or retrieve * operations. This is not too difficult to fix, but I need to understand * how Perl does it, and croaking is exceptional anyway, so I lack the * motivation to do it. * * The current workaround is to mark the context as dirty when croaking, * so that data structures can be freed whenever we renter Storable code * (but only *then*: it's a workaround, not a fix). * * This is also imperfect, because we don't really know how far they trapped * the croak(), and when we were recursing, we won't be able to clean anything * but the topmost context stacked. */ #define CROAK(x) STMT_START { cxt->s_dirty = 1; croak x; } STMT_END /* * End of "thread-safe" related definitions. */ /* * LOW_32BITS * * Keep only the low 32 bits of a pointer (used for tags, which are not * really pointers). */ #if PTRSIZE <= 4 #define LOW_32BITS(x) ((I32) (x)) #else #define LOW_32BITS(x) ((I32) ((unsigned long) (x) & 0xffffffffUL)) #endif /* * oI, oS, oC * * Hack for Crays, where sizeof(I32) == 8, and which are big-endians. * Used in the WLEN and RLEN macros. */ #if INTSIZE > 4 #define oI(x) ((I32 *) ((char *) (x) + 4)) #define oS(x) ((x) - 4) #define oC(x) (x = 0) #define CRAY_HACK #else #define oI(x) (x) #define oS(x) (x) #define oC(x) #endif /* * key buffer handling */ #define kbuf (cxt->keybuf).arena #define ksiz (cxt->keybuf).asiz #define KBUFINIT() \ STMT_START { \ if (!kbuf) { \ TRACEME(("** allocating kbuf of 128 bytes")); \ New(10003, kbuf, 128, char); \ ksiz = 128; \ } \ } STMT_END #define KBUFCHK(x) \ STMT_START { \ if (x >= ksiz) { \ TRACEME(("** extending kbuf to %d bytes (had %d)", x+1, ksiz)); \ Renew(kbuf, x+1, char); \ ksiz = x+1; \ } \ } STMT_END /* * memory buffer handling */ #define mbase (cxt->membuf).arena #define msiz (cxt->membuf).asiz #define mptr (cxt->membuf).aptr #define mend (cxt->membuf).aend #define MGROW (1 << 13) #define MMASK (MGROW - 1) #define round_mgrow(x) \ ((unsigned long) (((unsigned long) (x) + MMASK) & ~MMASK)) #define trunc_int(x) \ ((unsigned long) ((unsigned long) (x) & ~(sizeof(int)-1))) #define int_aligned(x) \ ((unsigned long) (x) == trunc_int(x)) #define MBUF_INIT(x) \ STMT_START { \ if (!mbase) { \ TRACEME(("** allocating mbase of %d bytes", MGROW)); \ New(10003, mbase, MGROW, char); \ msiz = (STRLEN)MGROW; \ } \ mptr = mbase; \ if (x) \ mend = mbase + x; \ else \ mend = mbase + msiz; \ } STMT_END #define MBUF_TRUNC(x) mptr = mbase + x #define MBUF_SIZE() (mptr - mbase) /* * MBUF_SAVE_AND_LOAD * MBUF_RESTORE * * Those macros are used in do_retrieve() to save the current memory * buffer into cxt->msaved, before MBUF_LOAD() can be used to retrieve * data from a string. */ #define MBUF_SAVE_AND_LOAD(in) \ STMT_START { \ ASSERT(!cxt->membuf_ro, ("mbase not already saved")); \ cxt->membuf_ro = 1; \ TRACEME(("saving mbuf")); \ StructCopy(&cxt->membuf, &cxt->msaved, struct extendable); \ MBUF_LOAD(in); \ } STMT_END #define MBUF_RESTORE() \ STMT_START { \ ASSERT(cxt->membuf_ro, ("mbase is read-only")); \ cxt->membuf_ro = 0; \ TRACEME(("restoring mbuf")); \ StructCopy(&cxt->msaved, &cxt->membuf, struct extendable); \ } STMT_END /* * Use SvPOKp(), because SvPOK() fails on tainted scalars. * See store_scalar() for other usage of this workaround. */ #define MBUF_LOAD(v) \ STMT_START { \ ASSERT(cxt->membuf_ro, ("mbase is read-only")); \ if (!SvPOKp(v)) \ CROAK(("Not a scalar string")); \ mptr = mbase = SvPV(v, msiz); \ mend = mbase + msiz; \ } STMT_END #define MBUF_XTEND(x) \ STMT_START { \ int nsz = (int) round_mgrow((x)+msiz); \ int offset = mptr - mbase; \ ASSERT(!cxt->membuf_ro, ("mbase is not read-only")); \ TRACEME(("** extending mbase from %d to %d bytes (wants %d new)", \ msiz, nsz, (x))); \ Renew(mbase, nsz, char); \ msiz = nsz; \ mptr = mbase + offset; \ mend = mbase + nsz; \ } STMT_END #define MBUF_CHK(x) \ STMT_START { \ if ((mptr + (x)) > mend) \ MBUF_XTEND(x); \ } STMT_END #define MBUF_GETC(x) \ STMT_START { \ if (mptr < mend) \ x = (int) (unsigned char) *mptr++; \ else \ return (SV *) 0; \ } STMT_END #ifdef CRAY_HACK #define MBUF_GETINT(x) \ STMT_START { \ oC(x); \ if ((mptr + 4) <= mend) { \ memcpy(oI(&x), mptr, 4); \ mptr += 4; \ } else \ return (SV *) 0; \ } STMT_END #else #define MBUF_GETINT(x) \ STMT_START { \ if ((mptr + sizeof(int)) <= mend) { \ if (int_aligned(mptr)) \ x = *(int *) mptr; \ else \ memcpy(&x, mptr, sizeof(int)); \ mptr += sizeof(int); \ } else \ return (SV *) 0; \ } STMT_END #endif #define MBUF_READ(x,s) \ STMT_START { \ if ((mptr + (s)) <= mend) { \ memcpy(x, mptr, s); \ mptr += s; \ } else \ return (SV *) 0; \ } STMT_END #define MBUF_SAFEREAD(x,s,z) \ STMT_START { \ if ((mptr + (s)) <= mend) { \ memcpy(x, mptr, s); \ mptr += s; \ } else { \ sv_free(z); \ return (SV *) 0; \ } \ } STMT_END #define MBUF_PUTC(c) \ STMT_START { \ if (mptr < mend) \ *mptr++ = (char) c; \ else { \ MBUF_XTEND(1); \ *mptr++ = (char) c; \ } \ } STMT_END #ifdef CRAY_HACK #define MBUF_PUTINT(i) \ STMT_START { \ MBUF_CHK(4); \ memcpy(mptr, oI(&i), 4); \ mptr += 4; \ } STMT_END #else #define MBUF_PUTINT(i) \ STMT_START { \ MBUF_CHK(sizeof(int)); \ if (int_aligned(mptr)) \ *(int *) mptr = i; \ else \ memcpy(mptr, &i, sizeof(int)); \ mptr += sizeof(int); \ } STMT_END #endif #define MBUF_WRITE(x,s) \ STMT_START { \ MBUF_CHK(s); \ memcpy(mptr, x, s); \ mptr += s; \ } STMT_END /* * Possible return values for sv_type(). */ #define svis_REF 0 #define svis_SCALAR 1 #define svis_ARRAY 2 #define svis_HASH 3 #define svis_TIED 4 #define svis_TIED_ITEM 5 #define svis_CODE 6 #define svis_OTHER 7 /* * Flags for SX_HOOK. */ #define SHF_TYPE_MASK 0x03 #define SHF_LARGE_CLASSLEN 0x04 #define SHF_LARGE_STRLEN 0x08 #define SHF_LARGE_LISTLEN 0x10 #define SHF_IDX_CLASSNAME 0x20 #define SHF_NEED_RECURSE 0x40 #define SHF_HAS_LIST 0x80 /* * Types for SX_HOOK (last 2 bits in flags). */ #define SHT_SCALAR 0 #define SHT_ARRAY 1 #define SHT_HASH 2 #define SHT_EXTRA 3 /* Read extra byte for type */ /* * The following are held in the "extra byte"... */ #define SHT_TSCALAR 4 /* 4 + 0 -- tied scalar */ #define SHT_TARRAY 5 /* 4 + 1 -- tied array */ #define SHT_THASH 6 /* 4 + 2 -- tied hash */ /* * per hash flags for flagged hashes */ #define SHV_RESTRICTED 0x01 /* * per key flags for flagged hashes */ #define SHV_K_UTF8 0x01 #define SHV_K_WASUTF8 0x02 #define SHV_K_LOCKED 0x04 #define SHV_K_ISSV 0x08 #define SHV_K_PLACEHOLDER 0x10 /* * Before 0.6, the magic string was "perl-store" (binary version number 0). * * Since 0.6 introduced many binary incompatibilities, the magic string has * been changed to "pst0" to allow an old image to be properly retrieved by * a newer Storable, but ensure a newer image cannot be retrieved with an * older version. * * At 0.7, objects are given the ability to serialize themselves, and the * set of markers is extended, backward compatibility is not jeopardized, * so the binary version number could have remained unchanged. To correctly * spot errors if a file making use of 0.7-specific extensions is given to * 0.6 for retrieval, the binary version was moved to "2". And I'm introducing * a "minor" version, to better track this kind of evolution from now on. * */ static const char old_magicstr[] = "perl-store"; /* Magic number before 0.6 */ static const char magicstr[] = "pst0"; /* Used as a magic number */ #define MAGICSTR_BYTES 'p','s','t','0' #define OLDMAGICSTR_BYTES 'p','e','r','l','-','s','t','o','r','e' /* 5.6.x introduced the ability to have IVs as long long. However, Configure still defined BYTEORDER based on the size of a long. Storable uses the BYTEORDER value as part of the header, but doesn't explicity store sizeof(IV) anywhere in the header. Hence on 5.6.x built with IV as long long on a platform that uses Configure (ie most things except VMS and Windows) headers are identical for the different IV sizes, despite the files containing some fields based on sizeof(IV) Erk. Broken-ness. 5.8 is consistent - the following redifinition kludge is only needed on 5.6.x, but the interwork is needed on 5.8 while data survives in files with the 5.6 header. */ #if defined (IVSIZE) && (IVSIZE == 8) && (LONGSIZE == 4) #ifndef NO_56_INTERWORK_KLUDGE #define USE_56_INTERWORK_KLUDGE #endif #if BYTEORDER == 0x1234 #undef BYTEORDER #define BYTEORDER 0x12345678 #else #if BYTEORDER == 0x4321 #undef BYTEORDER #define BYTEORDER 0x87654321 #endif #endif #endif #if BYTEORDER == 0x1234 #define BYTEORDER_BYTES '1','2','3','4' #else #if BYTEORDER == 0x12345678 #define BYTEORDER_BYTES '1','2','3','4','5','6','7','8' #ifdef USE_56_INTERWORK_KLUDGE #define BYTEORDER_BYTES_56 '1','2','3','4' #endif #else #if BYTEORDER == 0x87654321 #define BYTEORDER_BYTES '8','7','6','5','4','3','2','1' #ifdef USE_56_INTERWORK_KLUDGE #define BYTEORDER_BYTES_56 '4','3','2','1' #endif #else #if BYTEORDER == 0x4321 #define BYTEORDER_BYTES '4','3','2','1' #else #error Unknown byteoder. Please append your byteorder to Storable.xs #endif #endif #endif #endif static const char byteorderstr[] = {BYTEORDER_BYTES, 0}; #ifdef USE_56_INTERWORK_KLUDGE static const char byteorderstr_56[] = {BYTEORDER_BYTES_56, 0}; #endif #define STORABLE_BIN_MAJOR 2 /* Binary major "version" */ #define STORABLE_BIN_MINOR 6 /* Binary minor "version" */ /* If we aren't 5.7.3 or later, we won't be writing out files that use the * new flagged hash introdued in 2.5, so put 2.4 in the binary header to * maximise ease of interoperation with older Storables. * Could we write 2.3s if we're on 5.005_03? NWC */ #if (PATCHLEVEL <= 6) #define STORABLE_BIN_WRITE_MINOR 4 #else /* * As of perl 5.7.3, utf8 hash key is introduced. * So this must change -- dankogai */ #define STORABLE_BIN_WRITE_MINOR 6 #endif /* (PATCHLEVEL <= 6) */ #if (PATCHLEVEL < 8 || (PATCHLEVEL == 8 && SUBVERSION < 1)) #define PL_sv_placeholder PL_sv_undef #endif /* * Useful store shortcuts... */ /* * Note that if you put more than one mark for storing a particular * type of thing, *and* in the retrieve_foo() function you mark both * the thingy's you get off with SEEN(), you *must* increase the * tagnum with cxt->tagnum++ along with this macro! * - samv 20Jan04 */ #define PUTMARK(x) \ STMT_START { \ if (!cxt->fio) \ MBUF_PUTC(x); \ else if (PerlIO_putc(cxt->fio, x) == EOF) \ return -1; \ } STMT_END #define WRITE_I32(x) \ STMT_START { \ ASSERT(sizeof(x) == sizeof(I32), ("writing an I32")); \ if (!cxt->fio) \ MBUF_PUTINT(x); \ else if (PerlIO_write(cxt->fio, oI(&x), oS(sizeof(x))) != oS(sizeof(x))) \ return -1; \ } STMT_END #ifdef HAS_HTONL #define WLEN(x) \ STMT_START { \ if (cxt->netorder) { \ int y = (int) htonl(x); \ if (!cxt->fio) \ MBUF_PUTINT(y); \ else if (PerlIO_write(cxt->fio,oI(&y),oS(sizeof(y))) != oS(sizeof(y))) \ return -1; \ } else { \ if (!cxt->fio) \ MBUF_PUTINT(x); \ else if (PerlIO_write(cxt->fio,oI(&x),oS(sizeof(x))) != oS(sizeof(x))) \ return -1; \ } \ } STMT_END #else #define WLEN(x) WRITE_I32(x) #endif #define WRITE(x,y) \ STMT_START { \ if (!cxt->fio) \ MBUF_WRITE(x,y); \ else if (PerlIO_write(cxt->fio, x, y) != y) \ return -1; \ } STMT_END #define STORE_PV_LEN(pv, len, small, large) \ STMT_START { \ if (len <= LG_SCALAR) { \ unsigned char clen = (unsigned char) len; \ PUTMARK(small); \ PUTMARK(clen); \ if (len) \ WRITE(pv, len); \ } else { \ PUTMARK(large); \ WLEN(len); \ WRITE(pv, len); \ } \ } STMT_END #define STORE_SCALAR(pv, len) STORE_PV_LEN(pv, len, SX_SCALAR, SX_LSCALAR) /* * Store &PL_sv_undef in arrays without recursing through store(). */ #define STORE_SV_UNDEF() \ STMT_START { \ cxt->tagnum++; \ PUTMARK(SX_SV_UNDEF); \ } STMT_END /* * Useful retrieve shortcuts... */ #define GETCHAR() \ (cxt->fio ? PerlIO_getc(cxt->fio) : (mptr >= mend ? EOF : (int) *mptr++)) #define GETMARK(x) \ STMT_START { \ if (!cxt->fio) \ MBUF_GETC(x); \ else if ((int) (x = PerlIO_getc(cxt->fio)) == EOF) \ return (SV *) 0; \ } STMT_END #define READ_I32(x) \ STMT_START { \ ASSERT(sizeof(x) == sizeof(I32), ("reading an I32")); \ oC(x); \ if (!cxt->fio) \ MBUF_GETINT(x); \ else if (PerlIO_read(cxt->fio, oI(&x), oS(sizeof(x))) != oS(sizeof(x))) \ return (SV *) 0; \ } STMT_END #ifdef HAS_NTOHL #define RLEN(x) \ STMT_START { \ oC(x); \ if (!cxt->fio) \ MBUF_GETINT(x); \ else if (PerlIO_read(cxt->fio, oI(&x), oS(sizeof(x))) != oS(sizeof(x))) \ return (SV *) 0; \ if (cxt->netorder) \ x = (int) ntohl(x); \ } STMT_END #else #define RLEN(x) READ_I32(x) #endif #define READ(x,y) \ STMT_START { \ if (!cxt->fio) \ MBUF_READ(x, y); \ else if (PerlIO_read(cxt->fio, x, y) != y) \ return (SV *) 0; \ } STMT_END #define SAFEREAD(x,y,z) \ STMT_START { \ if (!cxt->fio) \ MBUF_SAFEREAD(x,y,z); \ else if (PerlIO_read(cxt->fio, x, y) != y) { \ sv_free(z); \ return (SV *) 0; \ } \ } STMT_END /* * This macro is used at retrieve time, to remember where object 'y', bearing a * given tag 'tagnum', has been retrieved. Next time we see an SX_OBJECT marker, * we'll therefore know where it has been retrieved and will be able to * share the same reference, as in the original stored memory image. * * We also need to bless objects ASAP for hooks (which may compute "ref $x" * on the objects given to STORABLE_thaw and expect that to be defined), and * also for overloaded objects (for which we might not find the stash if the * object is not blessed yet--this might occur for overloaded objects that * refer to themselves indirectly: if we blessed upon return from a sub * retrieve(), the SX_OBJECT marker we'd found could not have overloading * restored on it because the underlying object would not be blessed yet!). * * To achieve that, the class name of the last retrieved object is passed down * recursively, and the first SEEN() call for which the class name is not NULL * will bless the object. * * i should be true iff sv is immortal (ie PL_sv_yes, PL_sv_no or PL_sv_undef) */ #define SEEN(y,c,i) \ STMT_START { \ if (!y) \ return (SV *) 0; \ if (av_store(cxt->aseen, cxt->tagnum++, i ? (SV*)(y) : SvREFCNT_inc(y)) == 0) \ return (SV *) 0; \ TRACEME(("aseen(#%d) = 0x%"UVxf" (refcnt=%d)", cxt->tagnum-1, \ PTR2UV(y), SvREFCNT(y)-1)); \ if (c) \ BLESS((SV *) (y), c); \ } STMT_END /* * Bless `s' in `p', via a temporary reference, required by sv_bless(). */ #define BLESS(s,p) \ STMT_START { \ SV *ref; \ HV *stash; \ TRACEME(("blessing 0x%"UVxf" in %s", PTR2UV(s), (p))); \ stash = gv_stashpv((p), TRUE); \ ref = newRV_noinc(s); \ (void) sv_bless(ref, stash); \ SvRV(ref) = 0; \ SvREFCNT_dec(ref); \ } STMT_END /* * sort (used in store_hash) - conditionally use qsort when * sortsv is not available ( <= 5.6.1 ). */ #if (PATCHLEVEL <= 6) #if defined(USE_ITHREADS) #define STORE_HASH_SORT \ ENTER; { \ PerlInterpreter *orig_perl = PERL_GET_CONTEXT; \ SAVESPTR(orig_perl); \ PERL_SET_CONTEXT(aTHX); \ qsort((char *) AvARRAY(av), len, sizeof(SV *), sortcmp); \ } LEAVE; #else /* ! USE_ITHREADS */ #define STORE_HASH_SORT \ qsort((char *) AvARRAY(av), len, sizeof(SV *), sortcmp); #endif /* USE_ITHREADS */ #else /* PATCHLEVEL > 6 */ #define STORE_HASH_SORT \ sortsv(AvARRAY(av), len, Perl_sv_cmp); #endif /* PATCHLEVEL <= 6 */ static int store(pTHX_ stcxt_t *cxt, SV *sv); static SV *retrieve(pTHX_ stcxt_t *cxt, char *cname); /* * Dynamic dispatching table for SV store. */ static int store_ref(pTHX_ stcxt_t *cxt, SV *sv); static int store_scalar(pTHX_ stcxt_t *cxt, SV *sv); static int store_array(pTHX_ stcxt_t *cxt, AV *av); static int store_hash(pTHX_ stcxt_t *cxt, HV *hv); static int store_tied(pTHX_ stcxt_t *cxt, SV *sv); static int store_tied_item(pTHX_ stcxt_t *cxt, SV *sv); static int store_code(pTHX_ stcxt_t *cxt, CV *cv); static int store_other(pTHX_ stcxt_t *cxt, SV *sv); static int store_blessed(pTHX_ stcxt_t *cxt, SV *sv, int type, HV *pkg); static int (*sv_store[])(pTHX_ stcxt_t *cxt, SV *sv) = { store_ref, /* svis_REF */ store_scalar, /* svis_SCALAR */ (int (*)(pTHX_ stcxt_t *cxt, SV *sv)) store_array, /* svis_ARRAY */ (int (*)(pTHX_ stcxt_t *cxt, SV *sv)) store_hash, /* svis_HASH */ store_tied, /* svis_TIED */ store_tied_item, /* svis_TIED_ITEM */ (int (*)(pTHX_ stcxt_t *cxt, SV *sv)) store_code, /* svis_CODE */ store_other, /* svis_OTHER */ }; #define SV_STORE(x) (*sv_store[x]) /* * Dynamic dispatching tables for SV retrieval. */ static SV *retrieve_lscalar(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_lutf8str(pTHX_ stcxt_t *cxt, char *cname); static SV *old_retrieve_array(pTHX_ stcxt_t *cxt, char *cname); static SV *old_retrieve_hash(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_ref(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_undef(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_integer(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_double(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_byte(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_netint(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_scalar(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_utf8str(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_tied_array(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_tied_hash(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_tied_scalar(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_other(pTHX_ stcxt_t *cxt, char *cname); static SV *(*sv_old_retrieve[])(pTHX_ stcxt_t *cxt, char *cname) = { 0, /* SX_OBJECT -- entry unused dynamically */ retrieve_lscalar, /* SX_LSCALAR */ old_retrieve_array, /* SX_ARRAY -- for pre-0.6 binaries */ old_retrieve_hash, /* SX_HASH -- for pre-0.6 binaries */ retrieve_ref, /* SX_REF */ retrieve_undef, /* SX_UNDEF */ retrieve_integer, /* SX_INTEGER */ retrieve_double, /* SX_DOUBLE */ retrieve_byte, /* SX_BYTE */ retrieve_netint, /* SX_NETINT */ retrieve_scalar, /* SX_SCALAR */ retrieve_tied_array, /* SX_ARRAY */ retrieve_tied_hash, /* SX_HASH */ retrieve_tied_scalar, /* SX_SCALAR */ retrieve_other, /* SX_SV_UNDEF not supported */ retrieve_other, /* SX_SV_YES not supported */ retrieve_other, /* SX_SV_NO not supported */ retrieve_other, /* SX_BLESS not supported */ retrieve_other, /* SX_IX_BLESS not supported */ retrieve_other, /* SX_HOOK not supported */ retrieve_other, /* SX_OVERLOADED not supported */ retrieve_other, /* SX_TIED_KEY not supported */ retrieve_other, /* SX_TIED_IDX not supported */ retrieve_other, /* SX_UTF8STR not supported */ retrieve_other, /* SX_LUTF8STR not supported */ retrieve_other, /* SX_FLAG_HASH not supported */ retrieve_other, /* SX_CODE not supported */ retrieve_other, /* SX_ERROR */ }; static SV *retrieve_array(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_hash(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_sv_undef(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_sv_yes(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_sv_no(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_blessed(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_idx_blessed(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_hook(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_overloaded(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_tied_key(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_tied_idx(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_flag_hash(pTHX_ stcxt_t *cxt, char *cname); static SV *retrieve_code(pTHX_ stcxt_t *cxt, char *cname); static SV *(*sv_retrieve[])(pTHX_ stcxt_t *cxt, char *cname) = { 0, /* SX_OBJECT -- entry unused dynamically */ retrieve_lscalar, /* SX_LSCALAR */ retrieve_array, /* SX_ARRAY */ retrieve_hash, /* SX_HASH */ retrieve_ref, /* SX_REF */ retrieve_undef, /* SX_UNDEF */ retrieve_integer, /* SX_INTEGER */ retrieve_double, /* SX_DOUBLE */ retrieve_byte, /* SX_BYTE */ retrieve_netint, /* SX_NETINT */ retrieve_scalar, /* SX_SCALAR */ retrieve_tied_array, /* SX_ARRAY */ retrieve_tied_hash, /* SX_HASH */ retrieve_tied_scalar, /* SX_SCALAR */ retrieve_sv_undef, /* SX_SV_UNDEF */ retrieve_sv_yes, /* SX_SV_YES */ retrieve_sv_no, /* SX_SV_NO */ retrieve_blessed, /* SX_BLESS */ retrieve_idx_blessed, /* SX_IX_BLESS */ retrieve_hook, /* SX_HOOK */ retrieve_overloaded, /* SX_OVERLOAD */ retrieve_tied_key, /* SX_TIED_KEY */ retrieve_tied_idx, /* SX_TIED_IDX */ retrieve_utf8str, /* SX_UTF8STR */ retrieve_lutf8str, /* SX_LUTF8STR */ retrieve_flag_hash, /* SX_HASH */ retrieve_code, /* SX_CODE */ retrieve_other, /* SX_ERROR */ }; #define RETRIEVE(c,x) (*(c)->retrieve_vtbl[(x) >= SX_ERROR ? SX_ERROR : (x)]) static SV *mbuf2sv(pTHX); /*** *** Context management. ***/ /* * init_perinterp * * Called once per "thread" (interpreter) to initialize some global context. */ static void init_perinterp(pTHX) { INIT_STCXT; cxt->netorder = 0; /* true if network order used */ cxt->forgive_me = -1; /* whether to be forgiving... */ } /* * reset_context * * Called at the end of every context cleaning, to perform common reset * operations. */ static void reset_context(stcxt_t *cxt) { cxt->entry = 0; cxt->s_dirty = 0; cxt->optype &= ~(ST_STORE|ST_RETRIEVE); /* Leave ST_CLONE alone */ } /* * init_store_context * * Initialize a new store context for real recursion. */ static void init_store_context( pTHX_ stcxt_t *cxt, PerlIO *f, int optype, int network_order) { TRACEME(("init_store_context")); cxt->netorder = network_order; cxt->forgive_me = -1; /* Fetched from perl if needed */ cxt->deparse = -1; /* Idem */ cxt->eval = NULL; /* Idem */ cxt->canonical = -1; /* Idem */ cxt->tagnum = -1; /* Reset tag numbers */ cxt->classnum = -1; /* Reset class numbers */ cxt->fio = f; /* Where I/O are performed */ cxt->optype = optype; /* A store, or a deep clone */ cxt->entry = 1; /* No recursion yet */ /* * The `hseen' table is used to keep track of each SV stored and their * associated tag numbers is special. It is "abused" because the * values stored are not real SV, just integers cast to (SV *), * which explains the freeing below. * * It is also one possible bottlneck to achieve good storing speed, * so the "shared keys" optimization is turned off (unlikely to be * of any use here), and the hash table is "pre-extended". Together, * those optimizations increase the throughput by 12%. */ cxt->hseen = newHV(); /* Table where seen objects are stored */ HvSHAREKEYS_off(cxt->hseen); /* * The following does not work well with perl5.004_04, and causes * a core dump later on, in a completely unrelated spot, which * makes me think there is a memory corruption going on. * * Calling hv_ksplit(hseen, HBUCKETS) instead of manually hacking * it below does not make any difference. It seems to work fine * with perl5.004_68 but given the probable nature of the bug, * that does not prove anything. * * It's a shame because increasing the amount of buckets raises * store() throughput by 5%, but until I figure this out, I can't * allow for this to go into production. * * It is reported fixed in 5.005, hence the #if. */ #if PERL_VERSION >= 5 #define HBUCKETS 4096 /* Buckets for %hseen */ HvMAX(cxt->hseen) = HBUCKETS - 1; /* keys %hseen = $HBUCKETS; */ #endif /* * The `hclass' hash uses the same settings as `hseen' above, but it is * used to assign sequential tags (numbers) to class names for blessed * objects. * * We turn the shared key optimization on. */ cxt->hclass = newHV(); /* Where seen classnames are stored */ #if PERL_VERSION >= 5 HvMAX(cxt->hclass) = HBUCKETS - 1; /* keys %hclass = $HBUCKETS; */ #endif /* * The `hook' hash table is used to keep track of the references on * the STORABLE_freeze hook routines, when found in some class name. * * It is assumed that the inheritance tree will not be changed during * storing, and that no new method will be dynamically created by the * hooks. */ cxt->hook = newHV(); /* Table where hooks are cached */ /* * The `hook_seen' array keeps track of all the SVs returned by * STORABLE_freeze hooks for us to serialize, so that they are not * reclaimed until the end of the serialization process. Each SV is * only stored once, the first time it is seen. */ cxt->hook_seen = newAV(); /* Lists SVs returned by STORABLE_freeze */ } /* * clean_store_context * * Clean store context by */ static void clean_store_context(pTHX_ stcxt_t *cxt) { HE *he; TRACEME(("clean_store_context")); ASSERT(cxt->optype & ST_STORE, ("was performing a store()")); /* * Insert real values into hashes where we stored faked pointers. */ if (cxt->hseen) { hv_iterinit(cxt->hseen); while ((he = hv_iternext(cxt->hseen))) /* Extra () for -Wall, grr.. */ HeVAL(he) = &PL_sv_undef; } if (cxt->hclass) { hv_iterinit(cxt->hclass); while ((he = hv_iternext(cxt->hclass))) /* Extra () for -Wall, grr.. */ HeVAL(he) = &PL_sv_undef; } /* * And now dispose of them... * * The surrounding if() protection has been added because there might be * some cases where this routine is called more than once, during * exceptionnal events. This was reported by Marc Lehmann when Storable * is executed from mod_perl, and the fix was suggested by him. * -- RAM, 20/12/2000 */ if (cxt->hseen) { HV *hseen = cxt->hseen; cxt->hseen = 0; hv_undef(hseen); sv_free((SV *) hseen); } if (cxt->hclass) { HV *hclass = cxt->hclass; cxt->hclass = 0; hv_undef(hclass); sv_free((SV *) hclass); } if (cxt->hook) { HV *hook = cxt->hook; cxt->hook = 0; hv_undef(hook); sv_free((SV *) hook); } if (cxt->hook_seen) { AV *hook_seen = cxt->hook_seen; cxt->hook_seen = 0; av_undef(hook_seen); sv_free((SV *) hook_seen); } cxt->forgive_me = -1; /* Fetched from perl if needed */ cxt->deparse = -1; /* Idem */ if (cxt->eval) { SvREFCNT_dec(cxt->eval); } cxt->eval = NULL; /* Idem */ cxt->canonical = -1; /* Idem */ reset_context(cxt); } /* * init_retrieve_context * * Initialize a new retrieve context for real recursion. */ static void init_retrieve_context(pTHX_ stcxt_t *cxt, int optype, int is_tainted) { TRACEME(("init_retrieve_context")); /* * The hook hash table is used to keep track of the references on * the STORABLE_thaw hook routines, when found in some class name. * * It is assumed that the inheritance tree will not be changed during * storing, and that no new method will be dynamically created by the * hooks. */ cxt->hook = newHV(); /* Caches STORABLE_thaw */ /* * If retrieving an old binary version, the cxt->retrieve_vtbl variable * was set to sv_old_retrieve. We'll need a hash table to keep track of * the correspondance between the tags and the tag number used by the * new retrieve routines. */ cxt->hseen = (((void*)cxt->retrieve_vtbl == (void*)sv_old_retrieve) ? newHV() : 0); cxt->aseen = newAV(); /* Where retrieved objects are kept */ cxt->where_is_undef = -1; /* Special case for PL_sv_undef */ cxt->aclass = newAV(); /* Where seen classnames are kept */ cxt->tagnum = 0; /* Have to count objects... */ cxt->classnum = 0; /* ...and class names as well */ cxt->optype = optype; cxt->s_tainted = is_tainted; cxt->entry = 1; /* No recursion yet */ #ifndef HAS_RESTRICTED_HASHES cxt->derestrict = -1; /* Fetched from perl if needed */ #endif #ifndef HAS_UTF8_ALL cxt->use_bytes = -1; /* Fetched from perl if needed */ #endif cxt->accept_future_minor = -1; /* Fetched from perl if needed */ } /* * clean_retrieve_context * * Clean retrieve context by */ static void clean_retrieve_context(pTHX_ stcxt_t *cxt) { TRACEME(("clean_retrieve_context")); ASSERT(cxt->optype & ST_RETRIEVE, ("was performing a retrieve()")); if (cxt->aseen) { AV *aseen = cxt->aseen; cxt->aseen = 0; av_undef(aseen); sv_free((SV *) aseen); } cxt->where_is_undef = -1; if (cxt->aclass) { AV *aclass = cxt->aclass; cxt->aclass = 0; av_undef(aclass); sv_free((SV *) aclass); } if (cxt->hook) { HV *hook = cxt->hook; cxt->hook = 0; hv_undef(hook); sv_free((SV *) hook); } if (cxt->hseen) { HV *hseen = cxt->hseen; cxt->hseen = 0; hv_undef(hseen); sv_free((SV *) hseen); /* optional HV, for backward compat. */ } #ifndef HAS_RESTRICTED_HASHES cxt->derestrict = -1; /* Fetched from perl if needed */ #endif #ifndef HAS_UTF8_ALL cxt->use_bytes = -1; /* Fetched from perl if needed */ #endif cxt->accept_future_minor = -1; /* Fetched from perl if needed */ reset_context(cxt); } /* * clean_context * * A workaround for the CROAK bug: cleanup the last context. */ static void clean_context(pTHX_ stcxt_t *cxt) { TRACEME(("clean_context")); ASSERT(cxt->s_dirty, ("dirty context")); if (cxt->membuf_ro) MBUF_RESTORE(); ASSERT(!cxt->membuf_ro, ("mbase is not read-only")); if (cxt->optype & ST_RETRIEVE) clean_retrieve_context(aTHX_ cxt); else if (cxt->optype & ST_STORE) clean_store_context(aTHX_ cxt); else reset_context(cxt); ASSERT(!cxt->s_dirty, ("context is clean")); ASSERT(cxt->entry == 0, ("context is reset")); } /* * allocate_context * * Allocate a new context and push it on top of the parent one. * This new context is made globally visible via SET_STCXT(). */ static stcxt_t *allocate_context(pTHX_ stcxt_t *parent_cxt) { stcxt_t *cxt; TRACEME(("allocate_context")); ASSERT(!parent_cxt->s_dirty, ("parent context clean")); NEW_STORABLE_CXT_OBJ(cxt); cxt->prev = parent_cxt->my_sv; SET_STCXT(cxt); ASSERT(!cxt->s_dirty, ("clean context")); return cxt; } /* * free_context * * Free current context, which cannot be the "root" one. * Make the context underneath globally visible via SET_STCXT(). */ static void free_context(pTHX_ stcxt_t *cxt) { stcxt_t *prev = (stcxt_t *)(cxt->prev ? SvPVX(SvRV(cxt->prev)) : 0); TRACEME(("free_context")); ASSERT(!cxt->s_dirty, ("clean context")); ASSERT(prev, ("not freeing root context")); SvREFCNT_dec(cxt->my_sv); SET_STCXT(prev); ASSERT(cxt, ("context not void")); } /*** *** Predicates. ***/ /* * is_storing * * Tells whether we're in the middle of a store operation. */ int is_storing(pTHX) { dSTCXT; return cxt->entry && (cxt->optype & ST_STORE); } /* * is_retrieving * * Tells whether we're in the middle of a retrieve operation. */ int is_retrieving(pTHX) { dSTCXT; return cxt->entry && (cxt->optype & ST_RETRIEVE); } /* * last_op_in_netorder * * Returns whether last operation was made using network order. * * This is typically out-of-band information that might prove useful * to people wishing to convert native to network order data when used. */ int last_op_in_netorder(pTHX) { dSTCXT; return cxt->netorder; } /*** *** Hook lookup and calling routines. ***/ /* * pkg_fetchmeth * * A wrapper on gv_fetchmethod_autoload() which caches results. * * Returns the routine reference as an SV*, or null if neither the package * nor its ancestors know about the method. */ static SV *pkg_fetchmeth( pTHX_ HV *cache, HV *pkg, char *method) { GV *gv; SV *sv; /* * The following code is the same as the one performed by UNIVERSAL::can * in the Perl core. */ gv = gv_fetchmethod_autoload(pkg, method, FALSE); if (gv && isGV(gv)) { sv = newRV((SV*) GvCV(gv)); TRACEME(("%s->%s: 0x%"UVxf, HvNAME(pkg), method, PTR2UV(sv))); } else { sv = newSVsv(&PL_sv_undef); TRACEME(("%s->%s: not found", HvNAME(pkg), method)); } /* * Cache the result, ignoring failure: if we can't store the value, * it just won't be cached. */ (void) hv_store(cache, HvNAME(pkg), strlen(HvNAME(pkg)), sv, 0); return SvOK(sv) ? sv : (SV *) 0; } /* * pkg_hide * * Force cached value to be undef: hook ignored even if present. */ static void pkg_hide( pTHX_ HV *cache, HV *pkg, char *method) { (void) hv_store(cache, HvNAME(pkg), strlen(HvNAME(pkg)), newSVsv(&PL_sv_undef), 0); } /* * pkg_uncache * * Discard cached value: a whole fetch loop will be retried at next lookup. */ static void pkg_uncache( pTHX_ HV *cache, HV *pkg, char *method) { (void) hv_delete(cache, HvNAME(pkg), strlen(HvNAME(pkg)), G_DISCARD); } /* * pkg_can * * Our own "UNIVERSAL::can", which caches results. * * Returns the routine reference as an SV*, or null if the object does not * know about the method. */ static SV *pkg_can( pTHX_ HV *cache, HV *pkg, char *method) { SV **svh; SV *sv; TRACEME(("pkg_can for %s->%s", HvNAME(pkg), method)); /* * Look into the cache to see whether we already have determined * where the routine was, if any. * * NOTA BENE: we don't use `method' at all in our lookup, since we know * that only one hook (i.e. always the same) is cached in a given cache. */ svh = hv_fetch(cache, HvNAME(pkg), strlen(HvNAME(pkg)), FALSE); if (svh) { sv = *svh; if (!SvOK(sv)) { TRACEME(("cached %s->%s: not found", HvNAME(pkg), method)); return (SV *) 0; } else { TRACEME(("cached %s->%s: 0x%"UVxf, HvNAME(pkg), method, PTR2UV(sv))); return sv; } } TRACEME(("not cached yet")); return pkg_fetchmeth(aTHX_ cache, pkg, method); /* Fetch and cache */ } /* * scalar_call * * Call routine as obj->hook(av) in scalar context. * Propagates the single returned value if not called in void context. */ static SV *scalar_call( pTHX_ SV *obj, SV *hook, int cloning, AV *av, I32 flags) { dSP; int count; SV *sv = 0; TRACEME(("scalar_call (cloning=%d)", cloning)); ENTER; SAVETMPS; PUSHMARK(sp); XPUSHs(obj); XPUSHs(sv_2mortal(newSViv(cloning))); /* Cloning flag */ if (av) { SV **ary = AvARRAY(av); int cnt = AvFILLp(av) + 1; int i; XPUSHs(ary[0]); /* Frozen string */ for (i = 1; i < cnt; i++) { TRACEME(("pushing arg #%d (0x%"UVxf")...", i, PTR2UV(ary[i]))); XPUSHs(sv_2mortal(newRV(ary[i]))); } } PUTBACK; TRACEME(("calling...")); count = call_sv(hook, flags); /* Go back to Perl code */ TRACEME(("count = %d", count)); SPAGAIN; if (count) { sv = POPs; SvREFCNT_inc(sv); /* We're returning it, must stay alive! */ } PUTBACK; FREETMPS; LEAVE; return sv; } /* * array_call * * Call routine obj->hook(cloning) in list context. * Returns the list of returned values in an array. */ static AV *array_call( pTHX_ SV *obj, SV *hook, int cloning) { dSP; int count; AV *av; int i; TRACEME(("array_call (cloning=%d)", cloning)); ENTER; SAVETMPS; PUSHMARK(sp); XPUSHs(obj); /* Target object */ XPUSHs(sv_2mortal(newSViv(cloning))); /* Cloning flag */ PUTBACK; count = call_sv(hook, G_ARRAY); /* Go back to Perl code */ SPAGAIN; av = newAV(); for (i = count - 1; i >= 0; i--) { SV *sv = POPs; av_store(av, i, SvREFCNT_inc(sv)); } PUTBACK; FREETMPS; LEAVE; return av; } /* * known_class * * Lookup the class name in the `hclass' table and either assign it a new ID * or return the existing one, by filling in `classnum'. * * Return true if the class was known, false if the ID was just generated. */ static int known_class( pTHX_ stcxt_t *cxt, char *name, /* Class name */ int len, /* Name length */ I32 *classnum) { SV **svh; HV *hclass = cxt->hclass; TRACEME(("known_class (%s)", name)); /* * Recall that we don't store pointers in this hash table, but tags. * Therefore, we need LOW_32BITS() to extract the relevant parts. */ svh = hv_fetch(hclass, name, len, FALSE); if (svh) { *classnum = LOW_32BITS(*svh); return TRUE; } /* * Unknown classname, we need to record it. */ cxt->classnum++; if (!hv_store(hclass, name, len, INT2PTR(SV*, cxt->classnum), 0)) CROAK(("Unable to record new classname")); *classnum = cxt->classnum; return FALSE; } /*** *** Sepcific store routines. ***/ /* * store_ref * * Store a reference. * Layout is SX_REF or SX_OVERLOAD . */ static int store_ref(pTHX_ stcxt_t *cxt, SV *sv) { TRACEME(("store_ref (0x%"UVxf")", PTR2UV(sv))); /* * Follow reference, and check if target is overloaded. */ sv = SvRV(sv); if (SvOBJECT(sv)) { HV *stash = (HV *) SvSTASH(sv); if (stash && Gv_AMG(stash)) { TRACEME(("ref (0x%"UVxf") is overloaded", PTR2UV(sv))); PUTMARK(SX_OVERLOAD); } else PUTMARK(SX_REF); } else PUTMARK(SX_REF); return store(aTHX_ cxt, sv); } /* * store_scalar * * Store a scalar. * * Layout is SX_LSCALAR , SX_SCALAR or SX_UNDEF. * The section is omitted if is 0. * * If integer or double, the layout is SX_INTEGER or SX_DOUBLE . * Small integers (within [-127, +127]) are stored as SX_BYTE . */ static int store_scalar(pTHX_ stcxt_t *cxt, SV *sv) { IV iv; char *pv; STRLEN len; U32 flags = SvFLAGS(sv); /* "cc -O" may put it in register */ TRACEME(("store_scalar (0x%"UVxf")", PTR2UV(sv))); /* * For efficiency, break the SV encapsulation by peaking at the flags * directly without using the Perl macros to avoid dereferencing * sv->sv_flags each time we wish to check the flags. */ if (!(flags & SVf_OK)) { /* !SvOK(sv) */ if (sv == &PL_sv_undef) { TRACEME(("immortal undef")); PUTMARK(SX_SV_UNDEF); } else { TRACEME(("undef at 0x%"UVxf, PTR2UV(sv))); PUTMARK(SX_UNDEF); } return 0; } /* * Always store the string representation of a scalar if it exists. * Gisle Aas provided me with this test case, better than a long speach: * * perl -MDevel::Peek -le '$a="abc"; $a+0; Dump($a)' * SV = PVNV(0x80c8520) * REFCNT = 1 * FLAGS = (NOK,POK,pNOK,pPOK) * IV = 0 * NV = 0 * PV = 0x80c83d0 "abc"\0 * CUR = 3 * LEN = 4 * * Write SX_SCALAR, length, followed by the actual data. * * Otherwise, write an SX_BYTE, SX_INTEGER or an SX_DOUBLE as * appropriate, followed by the actual (binary) data. A double * is written as a string if network order, for portability. * * NOTE: instead of using SvNOK(sv), we test for SvNOKp(sv). * The reason is that when the scalar value is tainted, the SvNOK(sv) * value is false. * * The test for a read-only scalar with both POK and NOK set is meant * to quickly detect &PL_sv_yes and &PL_sv_no without having to pay the * address comparison for each scalar we store. */ #define SV_MAYBE_IMMORTAL (SVf_READONLY|SVf_POK|SVf_NOK) if ((flags & SV_MAYBE_IMMORTAL) == SV_MAYBE_IMMORTAL) { if (sv == &PL_sv_yes) { TRACEME(("immortal yes")); PUTMARK(SX_SV_YES); } else if (sv == &PL_sv_no) { TRACEME(("immortal no")); PUTMARK(SX_SV_NO); } else { pv = SvPV(sv, len); /* We know it's SvPOK */ goto string; /* Share code below */ } } else if (flags & SVf_POK) { /* public string - go direct to string read. */ goto string_readlen; } else if ( #if (PATCHLEVEL <= 6) /* For 5.6 and earlier NV flag trumps IV flag, so only use integer direct if NV flag is off. */ (flags & (SVf_NOK | SVf_IOK)) == SVf_IOK #else /* 5.7 rules are that if IV public flag is set, IV value is as good, if not better, than NV value. */ flags & SVf_IOK #endif ) { iv = SvIV(sv); /* * Will come here from below with iv set if double is an integer. */ integer: /* Sorry. This isn't in 5.005_56 (IIRC) or earlier. */ #ifdef SVf_IVisUV /* Need to do this out here, else 0xFFFFFFFF becomes iv of -1 * (for example) and that ends up in the optimised small integer * case. */ if ((flags & SVf_IVisUV) && SvUV(sv) > IV_MAX) { TRACEME(("large unsigned integer as string, value = %"UVuf, SvUV(sv))); goto string_readlen; } #endif /* * Optimize small integers into a single byte, otherwise store as * a real integer (converted into network order if they asked). */ if (iv >= -128 && iv <= 127) { unsigned char siv = (unsigned char) (iv + 128); /* [0,255] */ PUTMARK(SX_BYTE); PUTMARK(siv); TRACEME(("small integer stored as %d", siv)); } else if (cxt->netorder) { #ifndef HAS_HTONL TRACEME(("no htonl, fall back to string for integer")); goto string_readlen; #else I32 niv; #if IVSIZE > 4 if ( #ifdef SVf_IVisUV /* Sorry. This isn't in 5.005_56 (IIRC) or earlier. */ ((flags & SVf_IVisUV) && SvUV(sv) > 0x7FFFFFFF) || #endif (iv > 0x7FFFFFFF) || (iv < -0x80000000)) { /* Bigger than 32 bits. */ TRACEME(("large network order integer as string, value = %"IVdf, iv)); goto string_readlen; } #endif niv = (I32) htonl((I32) iv); TRACEME(("using network order")); PUTMARK(SX_NETINT); WRITE_I32(niv); #endif } else { PUTMARK(SX_INTEGER); WRITE(&iv, sizeof(iv)); } TRACEME(("ok (integer 0x%"UVxf", value = %"IVdf")", PTR2UV(sv), iv)); } else if (flags & SVf_NOK) { NV nv; #if (PATCHLEVEL <= 6) nv = SvNV(sv); /* * Watch for number being an integer in disguise. */ if (nv == (NV) (iv = I_V(nv))) { TRACEME(("double %"NVff" is actually integer %"IVdf, nv, iv)); goto integer; /* Share code above */ } #else SvIV_please(sv); if (SvIOK_notUV(sv)) { iv = SvIV(sv); goto integer; /* Share code above */ } nv = SvNV(sv); #endif if (cxt->netorder) { TRACEME(("double %"NVff" stored as string", nv)); goto string_readlen; /* Share code below */ } PUTMARK(SX_DOUBLE); WRITE(&nv, sizeof(nv)); TRACEME(("ok (double 0x%"UVxf", value = %"NVff")", PTR2UV(sv), nv)); } else if (flags & (SVp_POK | SVp_NOK | SVp_IOK)) { I32 wlen; /* For 64-bit machines */ string_readlen: pv = SvPV(sv, len); /* * Will come here from above if it was readonly, POK and NOK but * neither &PL_sv_yes nor &PL_sv_no. */ string: wlen = (I32) len; /* WLEN via STORE_SCALAR expects I32 */ if (SvUTF8 (sv)) STORE_UTF8STR(pv, wlen); else STORE_SCALAR(pv, wlen); TRACEME(("ok (scalar 0x%"UVxf" '%s', length = %"IVdf")", PTR2UV(sv), SvPVX(sv), (IV)len)); } else CROAK(("Can't determine type of %s(0x%"UVxf")", sv_reftype(sv, FALSE), PTR2UV(sv))); return 0; /* Ok, no recursion on scalars */ } /* * store_array * * Store an array. * * Layout is SX_ARRAY followed by each item, in increading index order. * Each item is stored as . */ static int store_array(pTHX_ stcxt_t *cxt, AV *av) { SV **sav; I32 len = av_len(av) + 1; I32 i; int ret; TRACEME(("store_array (0x%"UVxf")", PTR2UV(av))); /* * Signal array by emitting SX_ARRAY, followed by the array length. */ PUTMARK(SX_ARRAY); WLEN(len); TRACEME(("size = %d", len)); /* * Now store each item recursively. */ for (i = 0; i < len; i++) { sav = av_fetch(av, i, 0); if (!sav) { TRACEME(("(#%d) undef item", i)); STORE_SV_UNDEF(); continue; } TRACEME(("(#%d) item", i)); if ((ret = store(aTHX_ cxt, *sav))) /* Extra () for -Wall, grr... */ return ret; } TRACEME(("ok (array)")); return 0; } #if (PATCHLEVEL <= 6) /* * sortcmp * * Sort two SVs * Borrowed from perl source file pp_ctl.c, where it is used by pp_sort. */ static int sortcmp(const void *a, const void *b) { #if defined(USE_ITHREADS) dTHX; #endif /* USE_ITHREADS */ return sv_cmp(*(SV * const *) a, *(SV * const *) b); } #endif /* PATCHLEVEL <= 6 */ /* * store_hash * * Store a hash table. * * For a "normal" hash (not restricted, no utf8 keys): * * Layout is SX_HASH followed by each key/value pair, in random order. * Values are stored as . * Keys are stored as , the section being omitted * if length is 0. * * For a "fancy" hash (restricted or utf8 keys): * * Layout is SX_FLAG_HASH followed by each key/value pair, * in random order. * Values are stored as . * Keys are stored as , the section being omitted * if length is 0. * Currently the only hash flag is "restriced" * Key flags are as for hv.h */ static int store_hash(pTHX_ stcxt_t *cxt, HV *hv) { I32 len = #ifdef HAS_RESTRICTED_HASHES HvTOTALKEYS(hv); #else HvKEYS(hv); #endif I32 i; int ret = 0; I32 riter; HE *eiter; int flagged_hash = ((SvREADONLY(hv) #ifdef HAS_HASH_KEY_FLAGS || HvHASKFLAGS(hv) #endif ) ? 1 : 0); unsigned char hash_flags = (SvREADONLY(hv) ? SHV_RESTRICTED : 0); if (flagged_hash) { /* needs int cast for C++ compilers, doesn't it? */ TRACEME(("store_hash (0x%"UVxf") (flags %x)", PTR2UV(hv), (int) hash_flags)); } else { TRACEME(("store_hash (0x%"UVxf")", PTR2UV(hv))); } /* * Signal hash by emitting SX_HASH, followed by the table length. */ if (flagged_hash) { PUTMARK(SX_FLAG_HASH); PUTMARK(hash_flags); } else { PUTMARK(SX_HASH); } WLEN(len); TRACEME(("size = %d", len)); /* * Save possible iteration state via each() on that table. */ riter = HvRITER(hv); eiter = HvEITER(hv); hv_iterinit(hv); /* * Now store each item recursively. * * If canonical is defined to some true value then store each * key/value pair in sorted order otherwise the order is random. * Canonical order is irrelevant when a deep clone operation is performed. * * Fetch the value from perl only once per store() operation, and only * when needed. */ if ( !(cxt->optype & ST_CLONE) && (cxt->canonical == 1 || (cxt->canonical < 0 && (cxt->canonical = (SvTRUE(get_sv("Storable::canonical", TRUE)) ? 1 : 0)))) ) { /* * Storing in order, sorted by key. * Run through the hash, building up an array of keys in a * mortal array, sort the array and then run through the * array. */ AV *av = newAV(); /*av_extend (av, len);*/ TRACEME(("using canonical order")); for (i = 0; i < len; i++) { #ifdef HAS_RESTRICTED_HASHES HE *he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS); #else HE *he = hv_iternext(hv); #endif SV *key = hv_iterkeysv(he); av_store(av, AvFILLp(av)+1, key); /* av_push(), really */ } STORE_HASH_SORT; for (i = 0; i < len; i++) { #ifdef HAS_RESTRICTED_HASHES int placeholders = HvPLACEHOLDERS(hv); #endif unsigned char flags = 0; char *keyval; STRLEN keylen_tmp; I32 keylen; SV *key = av_shift(av); /* This will fail if key is a placeholder. Track how many placeholders we have, and error if we "see" too many. */ HE *he = hv_fetch_ent(hv, key, 0, 0); SV *val; if (he) { if (!(val = HeVAL(he))) { /* Internal error, not I/O error */ return 1; } } else { #ifdef HAS_RESTRICTED_HASHES /* Should be a placeholder. */ if (placeholders-- < 0) { /* This should not happen - number of retrieves should be identical to number of placeholders. */ return 1; } /* Value is never needed, and PL_sv_undef is more space efficient to store. */ val = &PL_sv_undef; ASSERT (flags == 0, ("Flags not 0 but %d", flags)); flags = SHV_K_PLACEHOLDER; #else return 1; #endif } /* * Store value first. */ TRACEME(("(#%d) value 0x%"UVxf, i, PTR2UV(val))); if ((ret = store(aTHX_ cxt, val))) /* Extra () for -Wall, grr... */ goto out; /* * Write key string. * Keys are written after values to make sure retrieval * can be optimal in terms of memory usage, where keys are * read into a fixed unique buffer called kbuf. * See retrieve_hash() for details. */ /* Implementation of restricted hashes isn't nicely abstracted: */ if ((hash_flags & SHV_RESTRICTED) && SvREADONLY(val)) { flags |= SHV_K_LOCKED; } keyval = SvPV(key, keylen_tmp); keylen = keylen_tmp; #ifdef HAS_UTF8_HASHES /* If you build without optimisation on pre 5.6 then nothing spots that SvUTF8(key) is always 0, so the block isn't optimised away, at which point the linker dislikes the reference to bytes_from_utf8. */ if (SvUTF8(key)) { const char *keysave = keyval; bool is_utf8 = TRUE; /* Just casting the &klen to (STRLEN) won't work well if STRLEN and I32 are of different widths. --jhi */ keyval = (char*)bytes_from_utf8((U8*)keyval, &keylen_tmp, &is_utf8); /* If we were able to downgrade here, then than means that we have a key which only had chars 0-255, but was utf8 encoded. */ if (keyval != keysave) { keylen = keylen_tmp; flags |= SHV_K_WASUTF8; } else { /* keylen_tmp can't have changed, so no need to assign back to keylen. */ flags |= SHV_K_UTF8; } } #endif if (flagged_hash) { PUTMARK(flags); TRACEME(("(#%d) key '%s' flags %x %u", i, keyval, flags, *keyval)); } else { /* This is a workaround for a bug in 5.8.0 that causes the HEK_WASUTF8 flag to be set on an HEK without the hash being marked as having key flags. We just cross our fingers and drop the flag. AMS 20030901 */ assert (flags == 0 || flags == SHV_K_WASUTF8); TRACEME(("(#%d) key '%s'", i, keyval)); } WLEN(keylen); if (keylen) WRITE(keyval, keylen); if (flags & SHV_K_WASUTF8) Safefree (keyval); } /* * Free up the temporary array */ av_undef(av); sv_free((SV *) av); } else { /* * Storing in "random" order (in the order the keys are stored * within the hash). This is the default and will be faster! */ for (i = 0; i < len; i++) { char *key; I32 len; unsigned char flags; #ifdef HV_ITERNEXT_WANTPLACEHOLDERS HE *he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS); #else HE *he = hv_iternext(hv); #endif SV *val = (he ? hv_iterval(hv, he) : 0); SV *key_sv = NULL; HEK *hek; if (val == 0) return 1; /* Internal error, not I/O error */ /* Implementation of restricted hashes isn't nicely abstracted: */ flags = (((hash_flags & SHV_RESTRICTED) && SvREADONLY(val)) ? SHV_K_LOCKED : 0); if (val == &PL_sv_placeholder) { flags |= SHV_K_PLACEHOLDER; val = &PL_sv_undef; } /* * Store value first. */ TRACEME(("(#%d) value 0x%"UVxf, i, PTR2UV(val))); if ((ret = store(aTHX_ cxt, val))) /* Extra () for -Wall, grr... */ goto out; hek = HeKEY_hek(he); len = HEK_LEN(hek); if (len == HEf_SVKEY) { /* This is somewhat sick, but the internal APIs are * such that XS code could put one of these in in * a regular hash. * Maybe we should be capable of storing one if * found. */ key_sv = HeKEY_sv(he); flags |= SHV_K_ISSV; } else { /* Regular string key. */ #ifdef HAS_HASH_KEY_FLAGS if (HEK_UTF8(hek)) flags |= SHV_K_UTF8; if (HEK_WASUTF8(hek)) flags |= SHV_K_WASUTF8; #endif key = HEK_KEY(hek); } /* * Write key string. * Keys are written after values to make sure retrieval * can be optimal in terms of memory usage, where keys are * read into a fixed unique buffer called kbuf. * See retrieve_hash() for details. */ if (flagged_hash) { PUTMARK(flags); TRACEME(("(#%d) key '%s' flags %x", i, key, flags)); } else { /* This is a workaround for a bug in 5.8.0 that causes the HEK_WASUTF8 flag to be set on an HEK without the hash being marked as having key flags. We just cross our fingers and drop the flag. AMS 20030901 */ assert (flags == 0 || flags == SHV_K_WASUTF8); TRACEME(("(#%d) key '%s'", i, key)); } if (flags & SHV_K_ISSV) { store(aTHX_ cxt, key_sv); } else { WLEN(len); if (len) WRITE(key, len); } } } TRACEME(("ok (hash 0x%"UVxf")", PTR2UV(hv))); out: HvRITER(hv) = riter; /* Restore hash iterator state */ HvEITER(hv) = eiter; return ret; } /* * store_code * * Store a code reference. * * Layout is SX_CODE followed by a scalar containing the perl * source code of the code reference. */ static int store_code(pTHX_ stcxt_t *cxt, CV *cv) { #if PERL_VERSION < 6 /* * retrieve_code does not work with perl 5.005 or less */ return store_other(aTHX_ cxt, (SV*)cv); #else dSP; I32 len; int count, reallen; SV *text, *bdeparse; TRACEME(("store_code (0x%"UVxf")", PTR2UV(cv))); if ( cxt->deparse == 0 || (cxt->deparse < 0 && !(cxt->deparse = SvTRUE(get_sv("Storable::Deparse", TRUE)) ? 1 : 0)) ) { return store_other(aTHX_ cxt, (SV*)cv); } /* * Require B::Deparse. At least B::Deparse 0.61 is needed for * blessed code references. */ /* Ownership of both SVs is passed to load_module, which frees them. */ load_module(PERL_LOADMOD_NOIMPORT, newSVpvn("B::Deparse",10), newSVnv(0.61)); ENTER; SAVETMPS; /* * create the B::Deparse object */ PUSHMARK(sp); XPUSHs(sv_2mortal(newSVpvn("B::Deparse",10))); PUTBACK; count = call_method("new", G_SCALAR); SPAGAIN; if (count != 1) CROAK(("Unexpected return value from B::Deparse::new\n")); bdeparse = POPs; /* * call the coderef2text method */ PUSHMARK(sp); XPUSHs(bdeparse); /* XXX is this already mortal? */ XPUSHs(sv_2mortal(newRV_inc((SV*)cv))); PUTBACK; count = call_method("coderef2text", G_SCALAR); SPAGAIN; if (count != 1) CROAK(("Unexpected return value from B::Deparse::coderef2text\n")); text = POPs; len = SvLEN(text); reallen = strlen(SvPV_nolen(text)); /* * Empty code references or XS functions are deparsed as * "(prototype) ;" or ";". */ if (len == 0 || *(SvPV_nolen(text)+reallen-1) == ';') { CROAK(("The result of B::Deparse::coderef2text was empty - maybe you're trying to serialize an XS function?\n")); } /* * Signal code by emitting SX_CODE. */ PUTMARK(SX_CODE); cxt->tagnum++; /* necessary, as SX_CODE is a SEEN() candidate */ TRACEME(("size = %d", len)); TRACEME(("code = %s", SvPV_nolen(text))); /* * Now store the source code. */ STORE_SCALAR(SvPV_nolen(text), len); FREETMPS; LEAVE; TRACEME(("ok (code)")); return 0; #endif } /* * store_tied * * When storing a tied object (be it a tied scalar, array or hash), we lay out * a special mark, followed by the underlying tied object. For instance, when * dealing with a tied hash, we store SX_TIED_HASH , where * stands for the serialization of the tied hash. */ static int store_tied(pTHX_ stcxt_t *cxt, SV *sv) { MAGIC *mg; SV *obj = NULL; int ret = 0; int svt = SvTYPE(sv); char mtype = 'P'; TRACEME(("store_tied (0x%"UVxf")", PTR2UV(sv))); /* * We have a small run-time penalty here because we chose to factorise * all tieds objects into the same routine, and not have a store_tied_hash, * a store_tied_array, etc... * * Don't use a switch() statement, as most compilers don't optimize that * well for 2/3 values. An if() else if() cascade is just fine. We put * tied hashes first, as they are the most likely beasts. */ if (svt == SVt_PVHV) { TRACEME(("tied hash")); PUTMARK(SX_TIED_HASH); /* Introduces tied hash */ } else if (svt == SVt_PVAV) { TRACEME(("tied array")); PUTMARK(SX_TIED_ARRAY); /* Introduces tied array */ } else { TRACEME(("tied scalar")); PUTMARK(SX_TIED_SCALAR); /* Introduces tied scalar */ mtype = 'q'; } if (!(mg = mg_find(sv, mtype))) CROAK(("No magic '%c' found while storing tied %s", mtype, (svt == SVt_PVHV) ? "hash" : (svt == SVt_PVAV) ? "array" : "scalar")); /* * The mg->mg_obj found by mg_find() above actually points to the * underlying tied Perl object implementation. For instance, if the * original SV was that of a tied array, then mg->mg_obj is an AV. * * Note that we store the Perl object as-is. We don't call its FETCH * method along the way. At retrieval time, we won't call its STORE * method either, but the tieing magic will be re-installed. In itself, * that ensures that the tieing semantics are preserved since futher * accesses on the retrieved object will indeed call the magic methods... */ /* [#17040] mg_obj is NULL for scalar self-ties. AMS 20030416 */ obj = mg->mg_obj ? mg->mg_obj : newSV(0); if ((ret = store(aTHX_ cxt, obj))) return ret; TRACEME(("ok (tied)")); return 0; } /* * store_tied_item * * Stores a reference to an item within a tied structure: * * . \$h{key}, stores both the (tied %h) object and 'key'. * . \$a[idx], stores both the (tied @a) object and 'idx'. * * Layout is therefore either: * SX_TIED_KEY * SX_TIED_IDX */ static int store_tied_item(pTHX_ stcxt_t *cxt, SV *sv) { MAGIC *mg; int ret; TRACEME(("store_tied_item (0x%"UVxf")", PTR2UV(sv))); if (!(mg = mg_find(sv, 'p'))) CROAK(("No magic 'p' found while storing reference to tied item")); /* * We discriminate between \$h{key} and \$a[idx] via mg_ptr. */ if (mg->mg_ptr) { TRACEME(("store_tied_item: storing a ref to a tied hash item")); PUTMARK(SX_TIED_KEY); TRACEME(("store_tied_item: storing OBJ 0x%"UVxf, PTR2UV(mg->mg_obj))); if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Extra () for -Wall, grr... */ return ret; TRACEME(("store_tied_item: storing PTR 0x%"UVxf, PTR2UV(mg->mg_ptr))); if ((ret = store(aTHX_ cxt, (SV *) mg->mg_ptr))) /* Idem, for -Wall */ return ret; } else { I32 idx = mg->mg_len; TRACEME(("store_tied_item: storing a ref to a tied array item ")); PUTMARK(SX_TIED_IDX); TRACEME(("store_tied_item: storing OBJ 0x%"UVxf, PTR2UV(mg->mg_obj))); if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Idem, for -Wall */ return ret; TRACEME(("store_tied_item: storing IDX %d", idx)); WLEN(idx); } TRACEME(("ok (tied item)")); return 0; } /* * store_hook -- dispatched manually, not via sv_store[] * * The blessed SV is serialized by a hook. * * Simple Layout is: * * SX_HOOK [ ] * * where indicates how long , and are, whether * the trailing part [] is present, the type of object (scalar, array or hash). * There is also a bit which says how the classname is stored between: * * * * * and when the form is used (classname already seen), the "large * classname" bit in indicates how large the is. * * The serialized string returned by the hook is of length and comes * next. It is an opaque string for us. * * Those object IDs which are listed last represent the extra references * not directly serialized by the hook, but which are linked to the object. * * When recursion is mandated to resolve object-IDs not yet seen, we have * instead, with
being flags with bits set to indicate the object type * and that recursion was indeed needed: * * SX_HOOK
* * that same header being repeated between serialized objects obtained through * recursion, until we reach flags indicating no recursion, at which point * we know we've resynchronized with a single layout, after . * * When storing a blessed ref to a tied variable, the following format is * used: * * SX_HOOK ... [ ] * * The first indication carries an object of type SHT_EXTRA, and the * real object type is held in the flag. At the very end of the * serialization stream, the underlying magic object is serialized, just like * any other tied variable. */ static int store_hook( pTHX_ stcxt_t *cxt, SV *sv, int type, HV *pkg, SV *hook) { I32 len; char *class; STRLEN len2; SV *ref; AV *av; SV **ary; int count; /* really len3 + 1 */ unsigned char flags; char *pv; int i; int recursed = 0; /* counts recursion */ int obj_type; /* object type, on 2 bits */ I32 classnum; int ret; int clone = cxt->optype & ST_CLONE; char mtype = '\0'; /* for blessed ref to tied structures */ unsigned char eflags = '\0'; /* used when object type is SHT_EXTRA */ TRACEME(("store_hook, class \"%s\", tagged #%d", HvNAME(pkg), cxt->tagnum)); /* * Determine object type on 2 bits. */ switch (type) { case svis_SCALAR: obj_type = SHT_SCALAR; break; case svis_ARRAY: obj_type = SHT_ARRAY; break; case svis_HASH: obj_type = SHT_HASH; break; case svis_TIED: /* * Produced by a blessed ref to a tied data structure, $o in the * following Perl code. * * my %h; * tie %h, 'FOO'; * my $o = bless \%h, 'BAR'; * * Signal the tie-ing magic by setting the object type as SHT_EXTRA * (since we have only 2 bits in to store the type), and an * byte flag will be emitted after the FIRST in the * stream, carrying what we put in `eflags'. */ obj_type = SHT_EXTRA; switch (SvTYPE(sv)) { case SVt_PVHV: eflags = (unsigned char) SHT_THASH; mtype = 'P'; break; case SVt_PVAV: eflags = (unsigned char) SHT_TARRAY; mtype = 'P'; break; default: eflags = (unsigned char) SHT_TSCALAR; mtype = 'q'; break; } break; default: CROAK(("Unexpected object type (%d) in store_hook()", type)); } flags = SHF_NEED_RECURSE | obj_type; class = HvNAME(pkg); len = strlen(class); /* * To call the hook, we need to fake a call like: * * $object->STORABLE_freeze($cloning); * * but we don't have the $object here. For instance, if $object is * a blessed array, what we have in `sv' is the array, and we can't * call a method on those. * * Therefore, we need to create a temporary reference to the object and * make the call on that reference. */ TRACEME(("about to call STORABLE_freeze on class %s", class)); ref = newRV_noinc(sv); /* Temporary reference */ av = array_call(aTHX_ ref, hook, clone); /* @a = $object->STORABLE_freeze($c) */ SvRV(ref) = 0; SvREFCNT_dec(ref); /* Reclaim temporary reference */ count = AvFILLp(av) + 1; TRACEME(("store_hook, array holds %d items", count)); /* * If they return an empty list, it means they wish to ignore the * hook for this class (and not just this instance -- that's for them * to handle if they so wish). * * Simply disable the cached entry for the hook (it won't be recomputed * since it's present in the cache) and recurse to store_blessed(). */ if (!count) { /* * They must not change their mind in the middle of a serialization. */ if (hv_fetch(cxt->hclass, class, len, FALSE)) CROAK(("Too late to ignore hooks for %s class \"%s\"", (cxt->optype & ST_CLONE) ? "cloning" : "storing", class)); pkg_hide(aTHX_ cxt->hook, pkg, "STORABLE_freeze"); ASSERT(!pkg_can(aTHX_ cxt->hook, pkg, "STORABLE_freeze"), ("hook invisible")); TRACEME(("ignoring STORABLE_freeze in class \"%s\"", class)); return store_blessed(aTHX_ cxt, sv, type, pkg); } /* * Get frozen string. */ ary = AvARRAY(av); pv = SvPV(ary[0], len2); /* * If they returned more than one item, we need to serialize some * extra references if not already done. * * Loop over the array, starting at position #1, and for each item, * ensure it is a reference, serialize it if not already done, and * replace the entry with the tag ID of the corresponding serialized * object. * * We CHEAT by not calling av_fetch() and read directly within the * array, for speed. */ for (i = 1; i < count; i++) { SV **svh; SV *rsv = ary[i]; SV *xsv; AV *av_hook = cxt->hook_seen; if (!SvROK(rsv)) CROAK(("Item #%d returned by STORABLE_freeze " "for %s is not a reference", i, class)); xsv = SvRV(rsv); /* Follow ref to know what to look for */ /* * Look in hseen and see if we have a tag already. * Serialize entry if not done already, and get its tag. */ if ((svh = hv_fetch(cxt->hseen, (char *) &xsv, sizeof(xsv), FALSE))) goto sv_seen; /* Avoid moving code too far to the right */ TRACEME(("listed object %d at 0x%"UVxf" is unknown", i-1, PTR2UV(xsv))); /* * We need to recurse to store that object and get it to be known * so that we can resolve the list of object-IDs at retrieve time. * * The first time we do this, we need to emit the proper header * indicating that we recursed, and what the type of object is (the * object we're storing via a user-hook). Indeed, during retrieval, * we'll have to create the object before recursing to retrieve the * others, in case those would point back at that object. */ /* [SX_HOOK] [] */ if (!recursed++) { PUTMARK(SX_HOOK); PUTMARK(flags); if (obj_type == SHT_EXTRA) PUTMARK(eflags); } else PUTMARK(flags); if ((ret = store(aTHX_ cxt, xsv))) /* Given by hook for us to store */ return ret; svh = hv_fetch(cxt->hseen, (char *) &xsv, sizeof(xsv), FALSE); if (!svh) CROAK(("Could not serialize item #%d from hook in %s", i, class)); /* * It was the first time we serialized `xsv'. * * Keep this SV alive until the end of the serialization: if we * disposed of it right now by decrementing its refcount, and it was * a temporary value, some next temporary value allocated during * another STORABLE_freeze might take its place, and we'd wrongly * assume that new SV was already serialized, based on its presence * in cxt->hseen. * * Therefore, push it away in cxt->hook_seen. */ av_store(av_hook, AvFILLp(av_hook)+1, SvREFCNT_inc(xsv)); sv_seen: /* * Dispose of the REF they returned. If we saved the `xsv' away * in the array of returned SVs, that will not cause the underlying * referenced SV to be reclaimed. */ ASSERT(SvREFCNT(xsv) > 1, ("SV will survive disposal of its REF")); SvREFCNT_dec(rsv); /* Dispose of reference */ /* * Replace entry with its tag (not a real SV, so no refcnt increment) */ ary[i] = *svh; TRACEME(("listed object %d at 0x%"UVxf" is tag #%"UVuf, i-1, PTR2UV(xsv), PTR2UV(*svh))); } /* * Allocate a class ID if not already done. * * This needs to be done after the recursion above, since at retrieval * time, we'll see the inner objects first. Many thanks to * Salvador Ortiz Garcia who spot that bug and * proposed the right fix. -- RAM, 15/09/2000 */ if (!known_class(aTHX_ cxt, class, len, &classnum)) { TRACEME(("first time we see class %s, ID = %d", class, classnum)); classnum = -1; /* Mark: we must store classname */ } else { TRACEME(("already seen class %s, ID = %d", class, classnum)); } /* * Compute leading flags. */ flags = obj_type; if (((classnum == -1) ? len : classnum) > LG_SCALAR) flags |= SHF_LARGE_CLASSLEN; if (classnum != -1) flags |= SHF_IDX_CLASSNAME; if (len2 > LG_SCALAR) flags |= SHF_LARGE_STRLEN; if (count > 1) flags |= SHF_HAS_LIST; if (count > (LG_SCALAR + 1)) flags |= SHF_LARGE_LISTLEN; /* * We're ready to emit either serialized form: * * SX_HOOK [ ] * SX_HOOK [ ] * * If we recursed, the SX_HOOK has already been emitted. */ TRACEME(("SX_HOOK (recursed=%d) flags=0x%x " "class=%"IVdf" len=%"IVdf" len2=%"IVdf" len3=%d", recursed, flags, (IV)classnum, (IV)len, (IV)len2, count-1)); /* SX_HOOK [] */ if (!recursed) { PUTMARK(SX_HOOK); PUTMARK(flags); if (obj_type == SHT_EXTRA) PUTMARK(eflags); } else PUTMARK(flags); /* or */ if (flags & SHF_IDX_CLASSNAME) { if (flags & SHF_LARGE_CLASSLEN) WLEN(classnum); else { unsigned char cnum = (unsigned char) classnum; PUTMARK(cnum); } } else { if (flags & SHF_LARGE_CLASSLEN) WLEN(len); else { unsigned char clen = (unsigned char) len; PUTMARK(clen); } WRITE(class, len); /* Final \0 is omitted */ } /* */ if (flags & SHF_LARGE_STRLEN) { I32 wlen2 = len2; /* STRLEN might be 8 bytes */ WLEN(wlen2); /* Must write an I32 for 64-bit machines */ } else { unsigned char clen = (unsigned char) len2; PUTMARK(clen); } if (len2) WRITE(pv, (SSize_t)len2); /* Final \0 is omitted */ /* [ ] */ if (flags & SHF_HAS_LIST) { int len3 = count - 1; if (flags & SHF_LARGE_LISTLEN) WLEN(len3); else { unsigned char clen = (unsigned char) len3; PUTMARK(clen); } /* * NOTA BENE, for 64-bit machines: the ary[i] below does not yield a * real pointer, rather a tag number, well under the 32-bit limit. */ for (i = 1; i < count; i++) { I32 tagval = htonl(LOW_32BITS(ary[i])); WRITE_I32(tagval); TRACEME(("object %d, tag #%d", i-1, ntohl(tagval))); } } /* * Free the array. We need extra care for indices after 0, since they * don't hold real SVs but integers cast. */ if (count > 1) AvFILLp(av) = 0; /* Cheat, nothing after 0 interests us */ av_undef(av); sv_free((SV *) av); /* * If object was tied, need to insert serialization of the magic object. */ if (obj_type == SHT_EXTRA) { MAGIC *mg; if (!(mg = mg_find(sv, mtype))) { int svt = SvTYPE(sv); CROAK(("No magic '%c' found while storing ref to tied %s with hook", mtype, (svt == SVt_PVHV) ? "hash" : (svt == SVt_PVAV) ? "array" : "scalar")); } TRACEME(("handling the magic object 0x%"UVxf" part of 0x%"UVxf, PTR2UV(mg->mg_obj), PTR2UV(sv))); /* * [] */ if ((ret = store(aTHX_ cxt, mg->mg_obj))) /* Extra () for -Wall, grr... */ return ret; } return 0; } /* * store_blessed -- dispatched manually, not via sv_store[] * * Check whether there is a STORABLE_xxx hook defined in the class or in one * of its ancestors. If there is, then redispatch to store_hook(); * * Otherwise, the blessed SV is stored using the following layout: * * SX_BLESS * * where indicates whether is stored on 0 or 4 bytes, depending * on the high-order bit in flag: if 1, then length follows on 4 bytes. * Otherwise, the low order bits give the length, thereby giving a compact * representation for class names less than 127 chars long. * * Each seen is remembered and indexed, so that the next time * an object in the blessed in the same is stored, the following * will be emitted: * * SX_IX_BLESS * * where is the classname index, stored on 0 or 4 bytes depending * on the high-order bit in flag (same encoding as above for ). */ static int store_blessed( pTHX_ stcxt_t *cxt, SV *sv, int type, HV *pkg) { SV *hook; I32 len; char *class; I32 classnum; TRACEME(("store_blessed, type %d, class \"%s\"", type, HvNAME(pkg))); /* * Look for a hook for this blessed SV and redirect to store_hook() * if needed. */ hook = pkg_can(aTHX_ cxt->hook, pkg, "STORABLE_freeze"); if (hook) return store_hook(aTHX_ cxt, sv, type, pkg, hook); /* * This is a blessed SV without any serialization hook. */ class = HvNAME(pkg); len = strlen(class); TRACEME(("blessed 0x%"UVxf" in %s, no hook: tagged #%d", PTR2UV(sv), class, cxt->tagnum)); /* * Determine whether it is the first time we see that class name (in which * case it will be stored in the SX_BLESS form), or whether we already * saw that class name before (in which case the SX_IX_BLESS form will be * used). */ if (known_class(aTHX_ cxt, class, len, &classnum)) { TRACEME(("already seen class %s, ID = %d", class, classnum)); PUTMARK(SX_IX_BLESS); if (classnum <= LG_BLESS) { unsigned char cnum = (unsigned char) classnum; PUTMARK(cnum); } else { unsigned char flag = (unsigned char) 0x80; PUTMARK(flag); WLEN(classnum); } } else { TRACEME(("first time we see class %s, ID = %d", class, classnum)); PUTMARK(SX_BLESS); if (len <= LG_BLESS) { unsigned char clen = (unsigned char) len; PUTMARK(clen); } else { unsigned char flag = (unsigned char) 0x80; PUTMARK(flag); WLEN(len); /* Don't BER-encode, this should be rare */ } WRITE(class, len); /* Final \0 is omitted */ } /* * Now emit the part. */ return SV_STORE(type)(aTHX_ cxt, sv); } /* * store_other * * We don't know how to store the item we reached, so return an error condition. * (it's probably a GLOB, some CODE reference, etc...) * * If they defined the `forgive_me' variable at the Perl level to some * true value, then don't croak, just warn, and store a placeholder string * instead. */ static int store_other(pTHX_ stcxt_t *cxt, SV *sv) { I32 len; static char buf[80]; TRACEME(("store_other")); /* * Fetch the value from perl only once per store() operation. */ if ( cxt->forgive_me == 0 || (cxt->forgive_me < 0 && !(cxt->forgive_me = SvTRUE(get_sv("Storable::forgive_me", TRUE)) ? 1 : 0)) ) CROAK(("Can't store %s items", sv_reftype(sv, FALSE))); warn("Can't store item %s(0x%"UVxf")", sv_reftype(sv, FALSE), PTR2UV(sv)); /* * Store placeholder string as a scalar instead... */ (void) sprintf(buf, "You lost %s(0x%"UVxf")%c", sv_reftype(sv, FALSE), PTR2UV(sv), (char) 0); len = strlen(buf); STORE_SCALAR(buf, len); TRACEME(("ok (dummy \"%s\", length = %"IVdf")", buf, (IV) len)); return 0; } /*** *** Store driving routines ***/ /* * sv_type * * WARNING: partially duplicates Perl's sv_reftype for speed. * * Returns the type of the SV, identified by an integer. That integer * may then be used to index the dynamic routine dispatch table. */ static int sv_type(pTHX_ SV *sv) { switch (SvTYPE(sv)) { case SVt_NULL: case SVt_IV: case SVt_NV: /* * No need to check for ROK, that can't be set here since there * is no field capable of hodling the xrv_rv reference. */ return svis_SCALAR; case SVt_PV: case SVt_RV: case SVt_PVIV: case SVt_PVNV: /* * Starting from SVt_PV, it is possible to have the ROK flag * set, the pointer to the other SV being either stored in * the xrv_rv (in the case of a pure SVt_RV), or as the * xpv_pv field of an SVt_PV and its heirs. * * However, those SV cannot be magical or they would be an * SVt_PVMG at least. */ return SvROK(sv) ? svis_REF : svis_SCALAR; case SVt_PVMG: case SVt_PVLV: /* Workaround for perl5.004_04 "LVALUE" bug */ if (SvRMAGICAL(sv) && (mg_find(sv, 'p'))) return svis_TIED_ITEM; /* FALL THROUGH */ case SVt_PVBM: if (SvRMAGICAL(sv) && (mg_find(sv, 'q'))) return svis_TIED; return SvROK(sv) ? svis_REF : svis_SCALAR; case SVt_PVAV: if (SvRMAGICAL(sv) && (mg_find(sv, 'P'))) return svis_TIED; return svis_ARRAY; case SVt_PVHV: if (SvRMAGICAL(sv) && (mg_find(sv, 'P'))) return svis_TIED; return svis_HASH; case SVt_PVCV: return svis_CODE; default: break; } return svis_OTHER; } /* * store * * Recursively store objects pointed to by the sv to the specified file. * * Layout is or SX_OBJECT if we reach an already stored * object (one for which storage has started -- it may not be over if we have * a self-referenced structure). This data set forms a stored . */ static int store(pTHX_ stcxt_t *cxt, SV *sv) { SV **svh; int ret; int type; HV *hseen = cxt->hseen; TRACEME(("store (0x%"UVxf")", PTR2UV(sv))); /* * If object has already been stored, do not duplicate data. * Simply emit the SX_OBJECT marker followed by its tag data. * The tag is always written in network order. * * NOTA BENE, for 64-bit machines: the "*svh" below does not yield a * real pointer, rather a tag number (watch the insertion code below). * That means it probably safe to assume it is well under the 32-bit limit, * and makes the truncation safe. * -- RAM, 14/09/1999 */ svh = hv_fetch(hseen, (char *) &sv, sizeof(sv), FALSE); if (svh) { I32 tagval; if (sv == &PL_sv_undef) { /* We have seen PL_sv_undef before, but fake it as if we have not. Not the simplest solution to making restricted hashes work on 5.8.0, but it does mean that repeated references to the one true undef will take up less space in the output file. */ /* Need to jump past the next hv_store, because on the second store of undef the old hash value will be SvREFCNT_dec()ed, and as Storable cheats horribly by storing non-SVs in the hash a SEGV will ensure. Need to increase the tag number so that the receiver has no idea what games we're up to. This special casing doesn't affect hooks that store undef, as the hook routine does its own lookup into hseen. Also this means that any references back to PL_sv_undef (from the pathological case of hooks storing references to it) will find the seen hash entry for the first time, as if we didn't have this hackery here. (That hseen lookup works even on 5.8.0 because it's a key of &PL_sv_undef and a value which is a tag number, not a value which is PL_sv_undef.) */ cxt->tagnum++; type = svis_SCALAR; goto undef_special_case; } tagval = htonl(LOW_32BITS(*svh)); TRACEME(("object 0x%"UVxf" seen as #%d", PTR2UV(sv), ntohl(tagval))); PUTMARK(SX_OBJECT); WRITE_I32(tagval); return 0; } /* * Allocate a new tag and associate it with the address of the sv being * stored, before recursing... * * In order to avoid creating new SvIVs to hold the tagnum we just * cast the tagnum to an SV pointer and store that in the hash. This * means that we must clean up the hash manually afterwards, but gives * us a 15% throughput increase. * */ cxt->tagnum++; if (!hv_store(hseen, (char *) &sv, sizeof(sv), INT2PTR(SV*, cxt->tagnum), 0)) return -1; /* * Store `sv' and everything beneath it, using appropriate routine. * Abort immediately if we get a non-zero status back. */ type = sv_type(aTHX_ sv); undef_special_case: TRACEME(("storing 0x%"UVxf" tag #%d, type %d...", PTR2UV(sv), cxt->tagnum, type)); if (SvOBJECT(sv)) { HV *pkg = SvSTASH(sv); ret = store_blessed(aTHX_ cxt, sv, type, pkg); } else ret = SV_STORE(type)(aTHX_ cxt, sv); TRACEME(("%s (stored 0x%"UVxf", refcnt=%d, %s)", ret ? "FAILED" : "ok", PTR2UV(sv), SvREFCNT(sv), sv_reftype(sv, FALSE))); return ret; } /* * magic_write * * Write magic number and system information into the file. * Layout is [ * ] where is the length of the byteorder hexa string. * All size and lenghts are written as single characters here. * * Note that no byte ordering info is emitted when is true, since * integers will be emitted in network order in that case. */ static int magic_write(pTHX_ stcxt_t *cxt) { /* * Starting with 0.6, the "use_network_order" byte flag is also used to * indicate the version number of the binary image, encoded in the upper * bits. The bit 0 is always used to indicate network order. */ /* * Starting with 0.7, a full byte is dedicated to the minor version of * the binary format, which is incremented only when new markers are * introduced, for instance, but when backward compatibility is preserved. */ /* Make these at compile time. The WRITE() macro is sufficiently complex that it saves about 200 bytes doing it this way and only using it once. */ static const unsigned char network_file_header[] = { MAGICSTR_BYTES, (STORABLE_BIN_MAJOR << 1) | 1, STORABLE_BIN_WRITE_MINOR }; static const unsigned char file_header[] = { MAGICSTR_BYTES, (STORABLE_BIN_MAJOR << 1) | 0, STORABLE_BIN_WRITE_MINOR, /* sizeof the array includes the 0 byte at the end: */ (char) sizeof (byteorderstr) - 1, BYTEORDER_BYTES, (unsigned char) sizeof(int), (unsigned char) sizeof(long), (unsigned char) sizeof(char *), (unsigned char) sizeof(NV) }; #ifdef USE_56_INTERWORK_KLUDGE static const unsigned char file_header_56[] = { MAGICSTR_BYTES, (STORABLE_BIN_MAJOR << 1) | 0, STORABLE_BIN_WRITE_MINOR, /* sizeof the array includes the 0 byte at the end: */ (char) sizeof (byteorderstr_56) - 1, BYTEORDER_BYTES_56, (unsigned char) sizeof(int), (unsigned char) sizeof(long), (unsigned char) sizeof(char *), (unsigned char) sizeof(NV) }; #endif const unsigned char *header; SSize_t length; TRACEME(("magic_write on fd=%d", cxt->fio ? PerlIO_fileno(cxt->fio) : -1)); if (cxt->netorder) { header = network_file_header; length = sizeof (network_file_header); } else { #ifdef USE_56_INTERWORK_KLUDGE if (SvTRUE(get_sv("Storable::interwork_56_64bit", TRUE))) { header = file_header_56; length = sizeof (file_header_56); } else #endif { header = file_header; length = sizeof (file_header); } } if (!cxt->fio) { /* sizeof the array includes the 0 byte at the end. */ header += sizeof (magicstr) - 1; length -= sizeof (magicstr) - 1; } WRITE( (unsigned char*) header, length); if (!cxt->netorder) { TRACEME(("ok (magic_write byteorder = 0x%lx [%d], I%d L%d P%d D%d)", (unsigned long) BYTEORDER, (int) sizeof (byteorderstr) - 1, (int) sizeof(int), (int) sizeof(long), (int) sizeof(char *), (int) sizeof(NV))); } return 0; } /* * do_store * * Common code for store operations. * * When memory store is requested (f = NULL) and a non null SV* is given in * `res', it is filled with a new SV created out of the memory buffer. * * It is required to provide a non-null `res' when the operation type is not * dclone() and store() is performed to memory. */ static int do_store( pTHX_ PerlIO *f, SV *sv, int optype, int network_order, SV **res) { dSTCXT; int status; ASSERT(!(f == 0 && !(optype & ST_CLONE)) || res, ("must supply result SV pointer for real recursion to memory")); TRACEME(("do_store (optype=%d, netorder=%d)", optype, network_order)); optype |= ST_STORE; /* * Workaround for CROAK leak: if they enter with a "dirty" context, * free up memory for them now. */ if (cxt->s_dirty) clean_context(aTHX_ cxt); /* * Now that STORABLE_xxx hooks exist, it is possible that they try to * re-enter store() via the hooks. We need to stack contexts. */ if (cxt->entry) cxt = allocate_context(aTHX_ cxt); cxt->entry++; ASSERT(cxt->entry == 1, ("starting new recursion")); ASSERT(!cxt->s_dirty, ("clean context")); /* * Ensure sv is actually a reference. From perl, we called something * like: * pstore(aTHX_ FILE, \@array); * so we must get the scalar value behing that reference. */ if (!SvROK(sv)) CROAK(("Not a reference")); sv = SvRV(sv); /* So follow it to know what to store */ /* * If we're going to store to memory, reset the buffer. */ if (!f) MBUF_INIT(0); /* * Prepare context and emit headers. */ init_store_context(aTHX_ cxt, f, optype, network_order); if (-1 == magic_write(aTHX_ cxt)) /* Emit magic and ILP info */ return 0; /* Error */ /* * Recursively store object... */ ASSERT(is_storing(), ("within store operation")); status = store(aTHX_ cxt, sv); /* Just do it! */ /* * If they asked for a memory store and they provided an SV pointer, * make an SV string out of the buffer and fill their pointer. * * When asking for ST_REAL, it's MANDATORY for the caller to provide * an SV, since context cleanup might free the buffer if we did recurse. * (unless caller is dclone(), which is aware of that). */ if (!cxt->fio && res) *res = mbuf2sv(aTHX); /* * Final cleanup. * * The "root" context is never freed, since it is meant to be always * handy for the common case where no recursion occurs at all (i.e. * we enter store() outside of any Storable code and leave it, period). * We know it's the "root" context because there's nothing stacked * underneath it. * * OPTIMIZATION: * * When deep cloning, we don't free the context: doing so would force * us to copy the data in the memory buffer. Sicne we know we're * about to enter do_retrieve... */ clean_store_context(aTHX_ cxt); if (cxt->prev && !(cxt->optype & ST_CLONE)) free_context(aTHX_ cxt); TRACEME(("do_store returns %d", status)); return status == 0; } /* * pstore * * Store the transitive data closure of given object to disk. * Returns 0 on error, a true value otherwise. */ int pstore(pTHX_ PerlIO *f, SV *sv) { TRACEME(("pstore")); return do_store(aTHX_ f, sv, 0, FALSE, (SV**) 0); } /* * net_pstore * * Same as pstore(), but network order is used for integers and doubles are * emitted as strings. */ int net_pstore(pTHX_ PerlIO *f, SV *sv) { TRACEME(("net_pstore")); return do_store(aTHX_ f, sv, 0, TRUE, (SV**) 0); } /*** *** Memory stores. ***/ /* * mbuf2sv * * Build a new SV out of the content of the internal memory buffer. */ static SV *mbuf2sv(pTHX) { dSTCXT; return newSVpv(mbase, MBUF_SIZE()); } /* * mstore * * Store the transitive data closure of given object to memory. * Returns undef on error, a scalar value containing the data otherwise. */ SV *mstore(pTHX_ SV *sv) { SV *out; TRACEME(("mstore")); if (!do_store(aTHX_ (PerlIO*) 0, sv, 0, FALSE, &out)) return &PL_sv_undef; return out; } /* * net_mstore * * Same as mstore(), but network order is used for integers and doubles are * emitted as strings. */ SV *net_mstore(pTHX_ SV *sv) { SV *out; TRACEME(("net_mstore")); if (!do_store(aTHX_ (PerlIO*) 0, sv, 0, TRUE, &out)) return &PL_sv_undef; return out; } /*** *** Specific retrieve callbacks. ***/ /* * retrieve_other * * Return an error via croak, since it is not possible that we get here * under normal conditions, when facing a file produced via pstore(). */ static SV *retrieve_other(pTHX_ stcxt_t *cxt, char *cname) { if ( cxt->ver_major != STORABLE_BIN_MAJOR && cxt->ver_minor != STORABLE_BIN_MINOR ) { CROAK(("Corrupted storable %s (binary v%d.%d), current is v%d.%d", cxt->fio ? "file" : "string", cxt->ver_major, cxt->ver_minor, STORABLE_BIN_MAJOR, STORABLE_BIN_MINOR)); } else { CROAK(("Corrupted storable %s (binary v%d.%d)", cxt->fio ? "file" : "string", cxt->ver_major, cxt->ver_minor)); } return (SV *) 0; /* Just in case */ } /* * retrieve_idx_blessed * * Layout is SX_IX_BLESS with SX_IX_BLESS already read. * can be coded on either 1 or 5 bytes. */ static SV *retrieve_idx_blessed(pTHX_ stcxt_t *cxt, char *cname) { I32 idx; char *class; SV **sva; SV *sv; TRACEME(("retrieve_idx_blessed (#%d)", cxt->tagnum)); ASSERT(!cname, ("no bless-into class given here, got %s", cname)); GETMARK(idx); /* Index coded on a single char? */ if (idx & 0x80) RLEN(idx); /* * Fetch classname in `aclass' */ sva = av_fetch(cxt->aclass, idx, FALSE); if (!sva) CROAK(("Class name #%"IVdf" should have been seen already", (IV) idx)); class = SvPVX(*sva); /* We know it's a PV, by construction */ TRACEME(("class ID %d => %s", idx, class)); /* * Retrieve object and bless it. */ sv = retrieve(aTHX_ cxt, class); /* First SV which is SEEN will be blessed */ return sv; } /* * retrieve_blessed * * Layout is SX_BLESS with SX_BLESS already read. * can be coded on either 1 or 5 bytes. */ static SV *retrieve_blessed(pTHX_ stcxt_t *cxt, char *cname) { I32 len; SV *sv; char buf[LG_BLESS + 1]; /* Avoid malloc() if possible */ char *class = buf; TRACEME(("retrieve_blessed (#%d)", cxt->tagnum)); ASSERT(!cname, ("no bless-into class given here, got %s", cname)); /* * Decode class name length and read that name. * * Short classnames have two advantages: their length is stored on one * single byte, and the string can be read on the stack. */ GETMARK(len); /* Length coded on a single char? */ if (len & 0x80) { RLEN(len); TRACEME(("** allocating %d bytes for class name", len+1)); New(10003, class, len+1, char); } READ(class, len); class[len] = '\0'; /* Mark string end */ /* * It's a new classname, otherwise it would have been an SX_IX_BLESS. */ TRACEME(("new class name \"%s\" will bear ID = %d", class, cxt->classnum)); if (!av_store(cxt->aclass, cxt->classnum++, newSVpvn(class, len))) return (SV *) 0; /* * Retrieve object and bless it. */ sv = retrieve(aTHX_ cxt, class); /* First SV which is SEEN will be blessed */ if (class != buf) Safefree(class); return sv; } /* * retrieve_hook * * Layout: SX_HOOK [ ] * with leading mark already read, as usual. * * When recursion was involved during serialization of the object, there * is an unknown amount of serialized objects after the SX_HOOK mark. Until * we reach a marker with the recursion bit cleared. * * If the first byte contains a type of SHT_EXTRA, then the real type * is held in the byte, and if the object is tied, the serialized * magic object comes at the very end: * * SX_HOOK ... [ ] * * This means the STORABLE_thaw hook will NOT get a tied variable during its * processing (since we won't have seen the magic object by the time the hook * is called). See comments below for why it was done that way. */ static SV *retrieve_hook(pTHX_ stcxt_t *cxt, char *cname) { I32 len; char buf[LG_BLESS + 1]; /* Avoid malloc() if possible */ char *class = buf; unsigned int flags; I32 len2; SV *frozen; I32 len3 = 0; AV *av = 0; SV *hook; SV *sv; SV *rv; int obj_type; int clone = cxt->optype & ST_CLONE; char mtype = '\0'; unsigned int extra_type = 0; TRACEME(("retrieve_hook (#%d)", cxt->tagnum)); ASSERT(!cname, ("no bless-into class given here, got %s", cname)); /* * Read flags, which tell us about the type, and whether we need to recurse. */ GETMARK(flags); /* * Create the (empty) object, and mark it as seen. * * This must be done now, because tags are incremented, and during * serialization, the object tag was affected before recursion could * take place. */ obj_type = flags & SHF_TYPE_MASK; switch (obj_type) { case SHT_SCALAR: sv = newSV(0); break; case SHT_ARRAY: sv = (SV *) newAV(); break; case SHT_HASH: sv = (SV *) newHV(); break; case SHT_EXTRA: /* * Read flag to know the type of the object. * Record associated magic type for later. */ GETMARK(extra_type); switch (extra_type) { case SHT_TSCALAR: sv = newSV(0); mtype = 'q'; break; case SHT_TARRAY: sv = (SV *) newAV(); mtype = 'P'; break; case SHT_THASH: sv = (SV *) newHV(); mtype = 'P'; break; default: return retrieve_other(aTHX_ cxt, 0); /* Let it croak */ } break; default: return retrieve_other(aTHX_ cxt, 0); /* Let it croak */ } SEEN(sv, 0, 0); /* Don't bless yet */ /* * Whilst flags tell us to recurse, do so. * * We don't need to remember the addresses returned by retrieval, because * all the references will be obtained through indirection via the object * tags in the object-ID list. * * We need to decrement the reference count for these objects * because, if the user doesn't save a reference to them in the hook, * they must be freed when this context is cleaned. */ while (flags & SHF_NEED_RECURSE) { TRACEME(("retrieve_hook recursing...")); rv = retrieve(aTHX_ cxt, 0); if (!rv) return (SV *) 0; SvREFCNT_dec(rv); TRACEME(("retrieve_hook back with rv=0x%"UVxf, PTR2UV(rv))); GETMARK(flags); } if (flags & SHF_IDX_CLASSNAME) { SV **sva; I32 idx; /* * Fetch index from `aclass' */ if (flags & SHF_LARGE_CLASSLEN) RLEN(idx); else GETMARK(idx); sva = av_fetch(cxt->aclass, idx, FALSE); if (!sva) CROAK(("Class name #%"IVdf" should have been seen already", (IV) idx)); class = SvPVX(*sva); /* We know it's a PV, by construction */ TRACEME(("class ID %d => %s", idx, class)); } else { /* * Decode class name length and read that name. * * NOTA BENE: even if the length is stored on one byte, we don't read * on the stack. Just like retrieve_blessed(), we limit the name to * LG_BLESS bytes. This is an arbitrary decision. */ if (flags & SHF_LARGE_CLASSLEN) RLEN(len); else GETMARK(len); if (len > LG_BLESS) { TRACEME(("** allocating %d bytes for class name", len+1)); New(10003, class, len+1, char); } READ(class, len); class[len] = '\0'; /* Mark string end */ /* * Record new classname. */ if (!av_store(cxt->aclass, cxt->classnum++, newSVpvn(class, len))) return (SV *) 0; } TRACEME(("class name: %s", class)); /* * Decode user-frozen string length and read it in an SV. * * For efficiency reasons, we read data directly into the SV buffer. * To understand that code, read retrieve_scalar() */ if (flags & SHF_LARGE_STRLEN) RLEN(len2); else GETMARK(len2); frozen = NEWSV(10002, len2); if (len2) { SAFEREAD(SvPVX(frozen), len2, frozen); SvCUR_set(frozen, len2); *SvEND(frozen) = '\0'; } (void) SvPOK_only(frozen); /* Validates string pointer */ if (cxt->s_tainted) /* Is input source tainted? */ SvTAINT(frozen); TRACEME(("frozen string: %d bytes", len2)); /* * Decode object-ID list length, if present. */ if (flags & SHF_HAS_LIST) { if (flags & SHF_LARGE_LISTLEN) RLEN(len3); else GETMARK(len3); if (len3) { av = newAV(); av_extend(av, len3 + 1); /* Leave room for [0] */ AvFILLp(av) = len3; /* About to be filled anyway */ } } TRACEME(("has %d object IDs to link", len3)); /* * Read object-ID list into array. * Because we pre-extended it, we can cheat and fill it manually. * * We read object tags and we can convert them into SV* on the fly * because we know all the references listed in there (as tags) * have been already serialized, hence we have a valid correspondance * between each of those tags and the recreated SV. */ if (av) { SV **ary = AvARRAY(av); int i; for (i = 1; i <= len3; i++) { /* We leave [0] alone */ I32 tag; SV **svh; SV *xsv; READ_I32(tag); tag = ntohl(tag); svh = av_fetch(cxt->aseen, tag, FALSE); if (!svh) { if (tag == cxt->where_is_undef) { /* av_fetch uses PL_sv_undef internally, hence this somewhat gruesome hack. */ xsv = &PL_sv_undef; svh = &xsv; } else { CROAK(("Object #%"IVdf" should have been retrieved already", (IV) tag)); } } xsv = *svh; ary[i] = SvREFCNT_inc(xsv); } } /* * Bless the object and look up the STORABLE_thaw hook. */ BLESS(sv, class); hook = pkg_can(aTHX_ cxt->hook, SvSTASH(sv), "STORABLE_thaw"); if (!hook) { /* * Hook not found. Maybe they did not require the module where this * hook is defined yet? * * If the require below succeeds, we'll be able to find the hook. * Still, it only works reliably when each class is defined in a * file of its own. */ SV *psv = newSVpvn("require ", 8); sv_catpv(psv, class); TRACEME(("No STORABLE_thaw defined for objects of class %s", class)); TRACEME(("Going to require module '%s' with '%s'", class, SvPVX(psv))); eval_sv(psv, G_DISCARD); sv_free(psv); /* * We cache results of pkg_can, so we need to uncache before attempting * the lookup again. */ pkg_uncache(aTHX_ cxt->hook, SvSTASH(sv), "STORABLE_thaw"); hook = pkg_can(aTHX_ cxt->hook, SvSTASH(sv), "STORABLE_thaw"); if (!hook) CROAK(("No STORABLE_thaw defined for objects of class %s " "(even after a \"require %s;\")", class, class)); } /* * If we don't have an `av' yet, prepare one. * Then insert the frozen string as item [0]. */ if (!av) { av = newAV(); av_extend(av, 1); AvFILLp(av) = 0; } AvARRAY(av)[0] = SvREFCNT_inc(frozen); /* * Call the hook as: * * $object->STORABLE_thaw($cloning, $frozen, @refs); * * where $object is our blessed (empty) object, $cloning is a boolean * telling whether we're running a deep clone, $frozen is the frozen * string the user gave us in his serializing hook, and @refs, which may * be empty, is the list of extra references he returned along for us * to serialize. * * In effect, the hook is an alternate creation routine for the class, * the object itself being already created by the runtime. */ TRACEME(("calling STORABLE_thaw on %s at 0x%"UVxf" (%"IVdf" args)", class, PTR2UV(sv), (IV) AvFILLp(av) + 1)); rv = newRV(sv); (void) scalar_call(aTHX_ rv, hook, clone, av, G_SCALAR|G_DISCARD); SvREFCNT_dec(rv); /* * Final cleanup. */ SvREFCNT_dec(frozen); av_undef(av); sv_free((SV *) av); if (!(flags & SHF_IDX_CLASSNAME) && class != buf) Safefree(class); /* * If we had an type, then the object was not as simple, and * we need to restore extra magic now. */ if (!extra_type) return sv; TRACEME(("retrieving magic object for 0x%"UVxf"...", PTR2UV(sv))); rv = retrieve(aTHX_ cxt, 0); /* Retrieve */ TRACEME(("restoring the magic object 0x%"UVxf" part of 0x%"UVxf, PTR2UV(rv), PTR2UV(sv))); switch (extra_type) { case SHT_TSCALAR: sv_upgrade(sv, SVt_PVMG); break; case SHT_TARRAY: sv_upgrade(sv, SVt_PVAV); AvREAL_off((AV *)sv); break; case SHT_THASH: sv_upgrade(sv, SVt_PVHV); break; default: CROAK(("Forgot to deal with extra type %d", extra_type)); break; } /* * Adding the magic only now, well after the STORABLE_thaw hook was called * means the hook cannot know it deals with an object whose variable is * tied. But this is happening when retrieving $o in the following case: * * my %h; * tie %h, 'FOO'; * my $o = bless \%h, 'BAR'; * * The 'BAR' class is NOT the one where %h is tied into. Therefore, as * far as the 'BAR' class is concerned, the fact that %h is not a REAL * hash but a tied one should not matter at all, and remain transparent. * This means the magic must be restored by Storable AFTER the hook is * called. * * That looks very reasonable to me, but then I've come up with this * after a bug report from David Nesting, who was trying to store such * an object and caused Storable to fail. And unfortunately, it was * also the easiest way to retrofit support for blessed ref to tied objects * into the existing design. -- RAM, 17/02/2001 */ sv_magic(sv, rv, mtype, Nullch, 0); SvREFCNT_dec(rv); /* Undo refcnt inc from sv_magic() */ return sv; } /* * retrieve_ref * * Retrieve reference to some other scalar. * Layout is SX_REF , with SX_REF already read. */ static SV *retrieve_ref(pTHX_ stcxt_t *cxt, char *cname) { SV *rv; SV *sv; TRACEME(("retrieve_ref (#%d)", cxt->tagnum)); /* * We need to create the SV that holds the reference to the yet-to-retrieve * object now, so that we may record the address in the seen table. * Otherwise, if the object to retrieve references us, we won't be able * to resolve the SX_OBJECT we'll see at that point! Hence we cannot * do the retrieve first and use rv = newRV(sv) since it will be too late * for SEEN() recording. */ rv = NEWSV(10002, 0); SEEN(rv, cname, 0); /* Will return if rv is null */ sv = retrieve(aTHX_ cxt, 0); /* Retrieve */ if (!sv) return (SV *) 0; /* Failed */ /* * WARNING: breaks RV encapsulation. * * Now for the tricky part. We have to upgrade our existing SV, so that * it is now an RV on sv... Again, we cheat by duplicating the code * held in newSVrv(), since we already got our SV from retrieve(). * * We don't say: * * SvRV(rv) = SvREFCNT_inc(sv); * * here because the reference count we got from retrieve() above is * already correct: if the object was retrieved from the file, then * its reference count is one. Otherwise, if it was retrieved via * an SX_OBJECT indication, a ref count increment was done. */ if (cname) { /* No need to do anything, as rv will already be PVMG. */ assert (SvTYPE(rv) >= SVt_RV); } else { sv_upgrade(rv, SVt_RV); } SvRV(rv) = sv; /* $rv = \$sv */ SvROK_on(rv); TRACEME(("ok (retrieve_ref at 0x%"UVxf")", PTR2UV(rv))); return rv; } /* * retrieve_overloaded * * Retrieve reference to some other scalar with overloading. * Layout is SX_OVERLOAD , with SX_OVERLOAD already read. */ static SV *retrieve_overloaded(pTHX_ stcxt_t *cxt, char *cname) { SV *rv; SV *sv; HV *stash; TRACEME(("retrieve_overloaded (#%d)", cxt->tagnum)); /* * Same code as retrieve_ref(), duplicated to avoid extra call. */ rv = NEWSV(10002, 0); SEEN(rv, cname, 0); /* Will return if rv is null */ sv = retrieve(aTHX_ cxt, 0); /* Retrieve */ if (!sv) return (SV *) 0; /* Failed */ /* * WARNING: breaks RV encapsulation. */ sv_upgrade(rv, SVt_RV); SvRV(rv) = sv; /* $rv = \$sv */ SvROK_on(rv); /* * Restore overloading magic. */ stash = SvTYPE(sv) ? (HV *) SvSTASH (sv) : 0; if (!stash) { CROAK(("Cannot restore overloading on %s(0x%"UVxf ") (package )", sv_reftype(sv, FALSE), PTR2UV(sv))); } if (!Gv_AMG(stash)) { SV *psv = newSVpvn("require ", 8); const char *package = HvNAME(stash); sv_catpv(psv, package); TRACEME(("No overloading defined for package %s", package)); TRACEME(("Going to require module '%s' with '%s'", package, SvPVX(psv))); eval_sv(psv, G_DISCARD); sv_free(psv); if (!Gv_AMG(stash)) { CROAK(("Cannot restore overloading on %s(0x%"UVxf ") (package %s) (even after a \"require %s;\")", sv_reftype(sv, FALSE), PTR2UV(sv), package, package)); } } SvAMAGIC_on(rv); TRACEME(("ok (retrieve_overloaded at 0x%"UVxf")", PTR2UV(rv))); return rv; } /* * retrieve_tied_array * * Retrieve tied array * Layout is SX_TIED_ARRAY , with SX_TIED_ARRAY already read. */ static SV *retrieve_tied_array(pTHX_ stcxt_t *cxt, char *cname) { SV *tv; SV *sv; TRACEME(("retrieve_tied_array (#%d)", cxt->tagnum)); tv = NEWSV(10002, 0); SEEN(tv, cname, 0); /* Will return if tv is null */ sv = retrieve(aTHX_ cxt, 0); /* Retrieve */ if (!sv) return (SV *) 0; /* Failed */ sv_upgrade(tv, SVt_PVAV); AvREAL_off((AV *)tv); sv_magic(tv, sv, 'P', Nullch, 0); SvREFCNT_dec(sv); /* Undo refcnt inc from sv_magic() */ TRACEME(("ok (retrieve_tied_array at 0x%"UVxf")", PTR2UV(tv))); return tv; } /* * retrieve_tied_hash * * Retrieve tied hash * Layout is SX_TIED_HASH , with SX_TIED_HASH already read. */ static SV *retrieve_tied_hash(pTHX_ stcxt_t *cxt, char *cname) { SV *tv; SV *sv; TRACEME(("retrieve_tied_hash (#%d)", cxt->tagnum)); tv = NEWSV(10002, 0); SEEN(tv, cname, 0); /* Will return if tv is null */ sv = retrieve(aTHX_ cxt, 0); /* Retrieve */ if (!sv) return (SV *) 0; /* Failed */ sv_upgrade(tv, SVt_PVHV); sv_magic(tv, sv, 'P', Nullch, 0); SvREFCNT_dec(sv); /* Undo refcnt inc from sv_magic() */ TRACEME(("ok (retrieve_tied_hash at 0x%"UVxf")", PTR2UV(tv))); return tv; } /* * retrieve_tied_scalar * * Retrieve tied scalar * Layout is SX_TIED_SCALAR , with SX_TIED_SCALAR already read. */ static SV *retrieve_tied_scalar(pTHX_ stcxt_t *cxt, char *cname) { SV *tv; SV *sv, *obj = NULL; TRACEME(("retrieve_tied_scalar (#%d)", cxt->tagnum)); tv = NEWSV(10002, 0); SEEN(tv, cname, 0); /* Will return if rv is null */ sv = retrieve(aTHX_ cxt, 0); /* Retrieve */ if (!sv) { return (SV *) 0; /* Failed */ } else if (SvTYPE(sv) != SVt_NULL) { obj = sv; } sv_upgrade(tv, SVt_PVMG); sv_magic(tv, obj, 'q', Nullch, 0); if (obj) { /* Undo refcnt inc from sv_magic() */ SvREFCNT_dec(obj); } TRACEME(("ok (retrieve_tied_scalar at 0x%"UVxf")", PTR2UV(tv))); return tv; } /* * retrieve_tied_key * * Retrieve reference to value in a tied hash. * Layout is SX_TIED_KEY , with SX_TIED_KEY already read. */ static SV *retrieve_tied_key(pTHX_ stcxt_t *cxt, char *cname) { SV *tv; SV *sv; SV *key; TRACEME(("retrieve_tied_key (#%d)", cxt->tagnum)); tv = NEWSV(10002, 0); SEEN(tv, cname, 0); /* Will return if tv is null */ sv = retrieve(aTHX_ cxt, 0); /* Retrieve */ if (!sv) return (SV *) 0; /* Failed */ key = retrieve(aTHX_ cxt, 0); /* Retrieve */ if (!key) return (SV *) 0; /* Failed */ sv_upgrade(tv, SVt_PVMG); sv_magic(tv, sv, 'p', (char *)key, HEf_SVKEY); SvREFCNT_dec(key); /* Undo refcnt inc from sv_magic() */ SvREFCNT_dec(sv); /* Undo refcnt inc from sv_magic() */ return tv; } /* * retrieve_tied_idx * * Retrieve reference to value in a tied array. * Layout is SX_TIED_IDX , with SX_TIED_IDX already read. */ static SV *retrieve_tied_idx(pTHX_ stcxt_t *cxt, char *cname) { SV *tv; SV *sv; I32 idx; TRACEME(("retrieve_tied_idx (#%d)", cxt->tagnum)); tv = NEWSV(10002, 0); SEEN(tv, cname, 0); /* Will return if tv is null */ sv = retrieve(aTHX_ cxt, 0); /* Retrieve */ if (!sv) return (SV *) 0; /* Failed */ RLEN(idx); /* Retrieve */ sv_upgrade(tv, SVt_PVMG); sv_magic(tv, sv, 'p', Nullch, idx); SvREFCNT_dec(sv); /* Undo refcnt inc from sv_magic() */ return tv; } /* * retrieve_lscalar * * Retrieve defined long (string) scalar. * * Layout is SX_LSCALAR , with SX_LSCALAR already read. * The scalar is "long" in that is larger than LG_SCALAR so it * was not stored on a single byte. */ static SV *retrieve_lscalar(pTHX_ stcxt_t *cxt, char *cname) { I32 len; SV *sv; RLEN(len); TRACEME(("retrieve_lscalar (#%d), len = %"IVdf, cxt->tagnum, (IV) len)); /* * Allocate an empty scalar of the suitable length. */ sv = NEWSV(10002, len); SEEN(sv, cname, 0); /* Associate this new scalar with tag "tagnum" */ /* * WARNING: duplicates parts of sv_setpv and breaks SV data encapsulation. * * Now, for efficiency reasons, read data directly inside the SV buffer, * and perform the SV final settings directly by duplicating the final * work done by sv_setpv. Since we're going to allocate lots of scalars * this way, it's worth the hassle and risk. */ SAFEREAD(SvPVX(sv), len, sv); SvCUR_set(sv, len); /* Record C string length */ *SvEND(sv) = '\0'; /* Ensure it's null terminated anyway */ (void) SvPOK_only(sv); /* Validate string pointer */ if (cxt->s_tainted) /* Is input source tainted? */ SvTAINT(sv); /* External data cannot be trusted */ TRACEME(("large scalar len %"IVdf" '%s'", (IV) len, SvPVX(sv))); TRACEME(("ok (retrieve_lscalar at 0x%"UVxf")", PTR2UV(sv))); return sv; } /* * retrieve_scalar * * Retrieve defined short (string) scalar. * * Layout is SX_SCALAR , with SX_SCALAR already read. * The scalar is "short" so is single byte. If it is 0, there * is no section. */ static SV *retrieve_scalar(pTHX_ stcxt_t *cxt, char *cname) { int len; SV *sv; GETMARK(len); TRACEME(("retrieve_scalar (#%d), len = %d", cxt->tagnum, len)); /* * Allocate an empty scalar of the suitable length. */ sv = NEWSV(10002, len); SEEN(sv, cname, 0); /* Associate this new scalar with tag "tagnum" */ /* * WARNING: duplicates parts of sv_setpv and breaks SV data encapsulation. */ if (len == 0) { /* * newSV did not upgrade to SVt_PV so the scalar is undefined. * To make it defined with an empty length, upgrade it now... * Don't upgrade to a PV if the original type contains more * information than a scalar. */ if (SvTYPE(sv) <= SVt_PV) { sv_upgrade(sv, SVt_PV); } SvGROW(sv, 1); *SvEND(sv) = '\0'; /* Ensure it's null terminated anyway */ TRACEME(("ok (retrieve_scalar empty at 0x%"UVxf")", PTR2UV(sv))); } else { /* * Now, for efficiency reasons, read data directly inside the SV buffer, * and perform the SV final settings directly by duplicating the final * work done by sv_setpv. Since we're going to allocate lots of scalars * this way, it's worth the hassle and risk. */ SAFEREAD(SvPVX(sv), len, sv); SvCUR_set(sv, len); /* Record C string length */ *SvEND(sv) = '\0'; /* Ensure it's null terminated anyway */ TRACEME(("small scalar len %d '%s'", len, SvPVX(sv))); } (void) SvPOK_only(sv); /* Validate string pointer */ if (cxt->s_tainted) /* Is input source tainted? */ SvTAINT(sv); /* External data cannot be trusted */ TRACEME(("ok (retrieve_scalar at 0x%"UVxf")", PTR2UV(sv))); return sv; } /* * retrieve_utf8str * * Like retrieve_scalar(), but tag result as utf8. * If we're retrieving UTF8 data in a non-UTF8 perl, croaks. */ static SV *retrieve_utf8str(pTHX_ stcxt_t *cxt, char *cname) { SV *sv; TRACEME(("retrieve_utf8str")); sv = retrieve_scalar(aTHX_ cxt, cname); if (sv) { #ifdef HAS_UTF8_SCALARS SvUTF8_on(sv); #else if (cxt->use_bytes < 0) cxt->use_bytes = (SvTRUE(get_sv("Storable::drop_utf8", TRUE)) ? 1 : 0); if (cxt->use_bytes == 0) UTF8_CROAK(); #endif } return sv; } /* * retrieve_lutf8str * * Like retrieve_lscalar(), but tag result as utf8. * If we're retrieving UTF8 data in a non-UTF8 perl, croaks. */ static SV *retrieve_lutf8str(pTHX_ stcxt_t *cxt, char *cname) { SV *sv; TRACEME(("retrieve_lutf8str")); sv = retrieve_lscalar(aTHX_ cxt, cname); if (sv) { #ifdef HAS_UTF8_SCALARS SvUTF8_on(sv); #else if (cxt->use_bytes < 0) cxt->use_bytes = (SvTRUE(get_sv("Storable::drop_utf8", TRUE)) ? 1 : 0); if (cxt->use_bytes == 0) UTF8_CROAK(); #endif } return sv; } /* * retrieve_integer * * Retrieve defined integer. * Layout is SX_INTEGER , whith SX_INTEGER already read. */ static SV *retrieve_integer(pTHX_ stcxt_t *cxt, char *cname) { SV *sv; IV iv; TRACEME(("retrieve_integer (#%d)", cxt->tagnum)); READ(&iv, sizeof(iv)); sv = newSViv(iv); SEEN(sv, cname, 0); /* Associate this new scalar with tag "tagnum" */ TRACEME(("integer %"IVdf, iv)); TRACEME(("ok (retrieve_integer at 0x%"UVxf")", PTR2UV(sv))); return sv; } /* * retrieve_netint * * Retrieve defined integer in network order. * Layout is SX_NETINT , whith SX_NETINT already read. */ static SV *retrieve_netint(pTHX_ stcxt_t *cxt, char *cname) { SV *sv; I32 iv; TRACEME(("retrieve_netint (#%d)", cxt->tagnum)); READ_I32(iv); #ifdef HAS_NTOHL sv = newSViv((int) ntohl(iv)); TRACEME(("network integer %d", (int) ntohl(iv))); #else sv = newSViv(iv); TRACEME(("network integer (as-is) %d", iv)); #endif SEEN(sv, cname, 0); /* Associate this new scalar with tag "tagnum" */ TRACEME(("ok (retrieve_netint at 0x%"UVxf")", PTR2UV(sv))); return sv; } /* * retrieve_double * * Retrieve defined double. * Layout is SX_DOUBLE , whith SX_DOUBLE already read. */ static SV *retrieve_double(pTHX_ stcxt_t *cxt, char *cname) { SV *sv; NV nv; TRACEME(("retrieve_double (#%d)", cxt->tagnum)); READ(&nv, sizeof(nv)); sv = newSVnv(nv); SEEN(sv, cname, 0); /* Associate this new scalar with tag "tagnum" */ TRACEME(("double %"NVff, nv)); TRACEME(("ok (retrieve_double at 0x%"UVxf")", PTR2UV(sv))); return sv; } /* * retrieve_byte * * Retrieve defined byte (small integer within the [-128, +127] range). * Layout is SX_BYTE , whith SX_BYTE already read. */ static SV *retrieve_byte(pTHX_ stcxt_t *cxt, char *cname) { SV *sv; int siv; signed char tmp; /* Workaround for AIX cc bug --H.Merijn Brand */ TRACEME(("retrieve_byte (#%d)", cxt->tagnum)); GETMARK(siv); TRACEME(("small integer read as %d", (unsigned char) siv)); tmp = (unsigned char) siv - 128; sv = newSViv(tmp); SEEN(sv, cname, 0); /* Associate this new scalar with tag "tagnum" */ TRACEME(("byte %d", tmp)); TRACEME(("ok (retrieve_byte at 0x%"UVxf")", PTR2UV(sv))); return sv; } /* * retrieve_undef * * Return the undefined value. */ static SV *retrieve_undef(pTHX_ stcxt_t *cxt, char *cname) { SV* sv; TRACEME(("retrieve_undef")); sv = newSV(0); SEEN(sv, cname, 0); return sv; } /* * retrieve_sv_undef * * Return the immortal undefined value. */ static SV *retrieve_sv_undef(pTHX_ stcxt_t *cxt, char *cname) { SV *sv = &PL_sv_undef; TRACEME(("retrieve_sv_undef")); /* Special case PL_sv_undef, as av_fetch uses it internally to mark deleted elements, and will return NULL (fetch failed) whenever it is fetched. */ if (cxt->where_is_undef == -1) { cxt->where_is_undef = cxt->tagnum; } SEEN(sv, cname, 1); return sv; } /* * retrieve_sv_yes * * Return the immortal yes value. */ static SV *retrieve_sv_yes(pTHX_ stcxt_t *cxt, char *cname) { SV *sv = &PL_sv_yes; TRACEME(("retrieve_sv_yes")); SEEN(sv, cname, 1); return sv; } /* * retrieve_sv_no * * Return the immortal no value. */ static SV *retrieve_sv_no(pTHX_ stcxt_t *cxt, char *cname) { SV *sv = &PL_sv_no; TRACEME(("retrieve_sv_no")); SEEN(sv, cname, 1); return sv; } /* * retrieve_array * * Retrieve a whole array. * Layout is SX_ARRAY followed by each item, in increading index order. * Each item is stored as . * * When we come here, SX_ARRAY has been read already. */ static SV *retrieve_array(pTHX_ stcxt_t *cxt, char *cname) { I32 len; I32 i; AV *av; SV *sv; TRACEME(("retrieve_array (#%d)", cxt->tagnum)); /* * Read length, and allocate array, then pre-extend it. */ RLEN(len); TRACEME(("size = %d", len)); av = newAV(); SEEN(av, cname, 0); /* Will return if array not allocated nicely */ if (len) av_extend(av, len); else return (SV *) av; /* No data follow if array is empty */ /* * Now get each item in turn... */ for (i = 0; i < len; i++) { TRACEME(("(#%d) item", i)); sv = retrieve(aTHX_ cxt, 0); /* Retrieve item */ if (!sv) return (SV *) 0; if (av_store(av, i, sv) == 0) return (SV *) 0; } TRACEME(("ok (retrieve_array at 0x%"UVxf")", PTR2UV(av))); return (SV *) av; } /* * retrieve_hash * * Retrieve a whole hash table. * Layout is SX_HASH followed by each key/value pair, in random order. * Keys are stored as , the section being omitted * if length is 0. * Values are stored as . * * When we come here, SX_HASH has been read already. */ static SV *retrieve_hash(pTHX_ stcxt_t *cxt, char *cname) { I32 len; I32 size; I32 i; HV *hv; SV *sv; TRACEME(("retrieve_hash (#%d)", cxt->tagnum)); /* * Read length, allocate table. */ RLEN(len); TRACEME(("size = %d", len)); hv = newHV(); SEEN(hv, cname, 0); /* Will return if table not allocated properly */ if (len == 0) return (SV *) hv; /* No data follow if table empty */ hv_ksplit(hv, len); /* pre-extend hash to save multiple splits */ /* * Now get each key/value pair in turn... */ for (i = 0; i < len; i++) { /* * Get value first. */ TRACEME(("(#%d) value", i)); sv = retrieve(aTHX_ cxt, 0); if (!sv) return (SV *) 0; /* * Get key. * Since we're reading into kbuf, we must ensure we're not * recursing between the read and the hv_store() where it's used. * Hence the key comes after the value. */ RLEN(size); /* Get key size */ KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */ if (size) READ(kbuf, size); kbuf[size] = '\0'; /* Mark string end, just in case */ TRACEME(("(#%d) key '%s'", i, kbuf)); /* * Enter key/value pair into hash table. */ if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0) return (SV *) 0; } TRACEME(("ok (retrieve_hash at 0x%"UVxf")", PTR2UV(hv))); return (SV *) hv; } /* * retrieve_hash * * Retrieve a whole hash table. * Layout is SX_HASH followed by each key/value pair, in random order. * Keys are stored as , the section being omitted * if length is 0. * Values are stored as . * * When we come here, SX_HASH has been read already. */ static SV *retrieve_flag_hash(pTHX_ stcxt_t *cxt, char *cname) { I32 len; I32 size; I32 i; HV *hv; SV *sv; int hash_flags; GETMARK(hash_flags); TRACEME(("retrieve_flag_hash (#%d)", cxt->tagnum)); /* * Read length, allocate table. */ #ifndef HAS_RESTRICTED_HASHES if (hash_flags & SHV_RESTRICTED) { if (cxt->derestrict < 0) cxt->derestrict = (SvTRUE(get_sv("Storable::downgrade_restricted", TRUE)) ? 1 : 0); if (cxt->derestrict == 0) RESTRICTED_HASH_CROAK(); } #endif RLEN(len); TRACEME(("size = %d, flags = %d", len, hash_flags)); hv = newHV(); SEEN(hv, cname, 0); /* Will return if table not allocated properly */ if (len == 0) return (SV *) hv; /* No data follow if table empty */ hv_ksplit(hv, len); /* pre-extend hash to save multiple splits */ /* * Now get each key/value pair in turn... */ for (i = 0; i < len; i++) { int flags; int store_flags = 0; /* * Get value first. */ TRACEME(("(#%d) value", i)); sv = retrieve(aTHX_ cxt, 0); if (!sv) return (SV *) 0; GETMARK(flags); #ifdef HAS_RESTRICTED_HASHES if ((hash_flags & SHV_RESTRICTED) && (flags & SHV_K_LOCKED)) SvREADONLY_on(sv); #endif if (flags & SHV_K_ISSV) { /* XXX you can't set a placeholder with an SV key. Then again, you can't get an SV key. Without messing around beyond what the API is supposed to do. */ SV *keysv; TRACEME(("(#%d) keysv, flags=%d", i, flags)); keysv = retrieve(aTHX_ cxt, 0); if (!keysv) return (SV *) 0; if (!hv_store_ent(hv, keysv, sv, 0)) return (SV *) 0; } else { /* * Get key. * Since we're reading into kbuf, we must ensure we're not * recursing between the read and the hv_store() where it's used. * Hence the key comes after the value. */ if (flags & SHV_K_PLACEHOLDER) { SvREFCNT_dec (sv); sv = &PL_sv_placeholder; store_flags |= HVhek_PLACEHOLD; } if (flags & SHV_K_UTF8) { #ifdef HAS_UTF8_HASHES store_flags |= HVhek_UTF8; #else if (cxt->use_bytes < 0) cxt->use_bytes = (SvTRUE(get_sv("Storable::drop_utf8", TRUE)) ? 1 : 0); if (cxt->use_bytes == 0) UTF8_CROAK(); #endif } #ifdef HAS_UTF8_HASHES if (flags & SHV_K_WASUTF8) store_flags |= HVhek_WASUTF8; #endif RLEN(size); /* Get key size */ KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */ if (size) READ(kbuf, size); kbuf[size] = '\0'; /* Mark string end, just in case */ TRACEME(("(#%d) key '%s' flags %X store_flags %X", i, kbuf, flags, store_flags)); /* * Enter key/value pair into hash table. */ #ifdef HAS_RESTRICTED_HASHES if (hv_store_flags(hv, kbuf, size, sv, 0, store_flags) == 0) return (SV *) 0; #else if (!(store_flags & HVhek_PLACEHOLD)) if (hv_store(hv, kbuf, size, sv, 0) == 0) return (SV *) 0; #endif } } #ifdef HAS_RESTRICTED_HASHES if (hash_flags & SHV_RESTRICTED) SvREADONLY_on(hv); #endif TRACEME(("ok (retrieve_hash at 0x%"UVxf")", PTR2UV(hv))); return (SV *) hv; } /* * retrieve_code * * Return a code reference. */ static SV *retrieve_code(pTHX_ stcxt_t *cxt, char *cname) { #if PERL_VERSION < 6 CROAK(("retrieve_code does not work with perl 5.005 or less\n")); #else dSP; int type, count, tagnum; SV *cv; SV *sv, *text, *sub; TRACEME(("retrieve_code (#%d)", cxt->tagnum)); /* * Insert dummy SV in the aseen array so that we don't screw * up the tag numbers. We would just make the internal * scalar an untagged item in the stream, but * retrieve_scalar() calls SEEN(). So we just increase the * tag number. */ tagnum = cxt->tagnum; sv = newSViv(0); SEEN(sv, cname, 0); /* * Retrieve the source of the code reference * as a small or large scalar */ GETMARK(type); switch (type) { case SX_SCALAR: text = retrieve_scalar(aTHX_ cxt, cname); break; case SX_LSCALAR: text = retrieve_lscalar(aTHX_ cxt, cname); break; default: CROAK(("Unexpected type %d in retrieve_code\n", type)); } /* * prepend "sub " to the source */ sub = newSVpvn("sub ", 4); sv_catpv(sub, SvPV_nolen(text)); /* XXX no sv_catsv! */ SvREFCNT_dec(text); /* * evaluate the source to a code reference and use the CV value */ if (cxt->eval == NULL) { cxt->eval = get_sv("Storable::Eval", TRUE); SvREFCNT_inc(cxt->eval); } if (!SvTRUE(cxt->eval)) { if ( cxt->forgive_me == 0 || (cxt->forgive_me < 0 && !(cxt->forgive_me = SvTRUE(get_sv("Storable::forgive_me", TRUE)) ? 1 : 0)) ) { CROAK(("Can't eval, please set $Storable::Eval to a true value")); } else { sv = newSVsv(sub); /* fix up the dummy entry... */ av_store(cxt->aseen, tagnum, SvREFCNT_inc(sv)); return sv; } } ENTER; SAVETMPS; if (SvROK(cxt->eval) && SvTYPE(SvRV(cxt->eval)) == SVt_PVCV) { SV* errsv = get_sv("@", TRUE); sv_setpv(errsv, ""); /* clear $@ */ PUSHMARK(sp); XPUSHs(sv_2mortal(newSVsv(sub))); PUTBACK; count = call_sv(cxt->eval, G_SCALAR); SPAGAIN; if (count != 1) CROAK(("Unexpected return value from $Storable::Eval callback\n")); cv = POPs; if (SvTRUE(errsv)) { CROAK(("code %s caused an error: %s", SvPV_nolen(sub), SvPV_nolen(errsv))); } PUTBACK; } else { cv = eval_pv(SvPV_nolen(sub), TRUE); } if (cv && SvROK(cv) && SvTYPE(SvRV(cv)) == SVt_PVCV) { sv = SvRV(cv); } else { CROAK(("code %s did not evaluate to a subroutine reference\n", SvPV_nolen(sub))); } SvREFCNT_inc(sv); /* XXX seems to be necessary */ SvREFCNT_dec(sub); FREETMPS; LEAVE; /* fix up the dummy entry... */ av_store(cxt->aseen, tagnum, SvREFCNT_inc(sv)); return sv; #endif } /* * old_retrieve_array * * Retrieve a whole array in pre-0.6 binary format. * * Layout is SX_ARRAY followed by each item, in increading index order. * Each item is stored as SX_ITEM or SX_IT_UNDEF for "holes". * * When we come here, SX_ARRAY has been read already. */ static SV *old_retrieve_array(pTHX_ stcxt_t *cxt, char *cname) { I32 len; I32 i; AV *av; SV *sv; int c; TRACEME(("old_retrieve_array (#%d)", cxt->tagnum)); /* * Read length, and allocate array, then pre-extend it. */ RLEN(len); TRACEME(("size = %d", len)); av = newAV(); SEEN(av, 0, 0); /* Will return if array not allocated nicely */ if (len) av_extend(av, len); else return (SV *) av; /* No data follow if array is empty */ /* * Now get each item in turn... */ for (i = 0; i < len; i++) { GETMARK(c); if (c == SX_IT_UNDEF) { TRACEME(("(#%d) undef item", i)); continue; /* av_extend() already filled us with undef */ } if (c != SX_ITEM) (void) retrieve_other(aTHX_ (stcxt_t *) 0, 0); /* Will croak out */ TRACEME(("(#%d) item", i)); sv = retrieve(aTHX_ cxt, 0); /* Retrieve item */ if (!sv) return (SV *) 0; if (av_store(av, i, sv) == 0) return (SV *) 0; } TRACEME(("ok (old_retrieve_array at 0x%"UVxf")", PTR2UV(av))); return (SV *) av; } /* * old_retrieve_hash * * Retrieve a whole hash table in pre-0.6 binary format. * * Layout is SX_HASH followed by each key/value pair, in random order. * Keys are stored as SX_KEY , the section being omitted * if length is 0. * Values are stored as SX_VALUE or SX_VL_UNDEF for "holes". * * When we come here, SX_HASH has been read already. */ static SV *old_retrieve_hash(pTHX_ stcxt_t *cxt, char *cname) { I32 len; I32 size; I32 i; HV *hv; SV *sv = (SV *) 0; int c; static SV *sv_h_undef = (SV *) 0; /* hv_store() bug */ TRACEME(("old_retrieve_hash (#%d)", cxt->tagnum)); /* * Read length, allocate table. */ RLEN(len); TRACEME(("size = %d", len)); hv = newHV(); SEEN(hv, 0, 0); /* Will return if table not allocated properly */ if (len == 0) return (SV *) hv; /* No data follow if table empty */ hv_ksplit(hv, len); /* pre-extend hash to save multiple splits */ /* * Now get each key/value pair in turn... */ for (i = 0; i < len; i++) { /* * Get value first. */ GETMARK(c); if (c == SX_VL_UNDEF) { TRACEME(("(#%d) undef value", i)); /* * Due to a bug in hv_store(), it's not possible to pass * &PL_sv_undef to hv_store() as a value, otherwise the * associated key will not be creatable any more. -- RAM, 14/01/97 */ if (!sv_h_undef) sv_h_undef = newSVsv(&PL_sv_undef); sv = SvREFCNT_inc(sv_h_undef); } else if (c == SX_VALUE) { TRACEME(("(#%d) value", i)); sv = retrieve(aTHX_ cxt, 0); if (!sv) return (SV *) 0; } else (void) retrieve_other(aTHX_ (stcxt_t *) 0, 0); /* Will croak out */ /* * Get key. * Since we're reading into kbuf, we must ensure we're not * recursing between the read and the hv_store() where it's used. * Hence the key comes after the value. */ GETMARK(c); if (c != SX_KEY) (void) retrieve_other(aTHX_ (stcxt_t *) 0, 0); /* Will croak out */ RLEN(size); /* Get key size */ KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */ if (size) READ(kbuf, size); kbuf[size] = '\0'; /* Mark string end, just in case */ TRACEME(("(#%d) key '%s'", i, kbuf)); /* * Enter key/value pair into hash table. */ if (hv_store(hv, kbuf, (U32) size, sv, 0) == 0) return (SV *) 0; } TRACEME(("ok (retrieve_hash at 0x%"UVxf")", PTR2UV(hv))); return (SV *) hv; } /*** *** Retrieval engine. ***/ /* * magic_check * * Make sure the stored data we're trying to retrieve has been produced * on an ILP compatible system with the same byteorder. It croaks out in * case an error is detected. [ILP = integer-long-pointer sizes] * Returns null if error is detected, &PL_sv_undef otherwise. * * Note that there's no byte ordering info emitted when network order was * used at store time. */ static SV *magic_check(pTHX_ stcxt_t *cxt) { /* The worst case for a malicious header would be old magic (which is longer), major, minor, byteorder length byte of 255, 255 bytes of garbage, sizeof int, long, pointer, NV. So the worse of that we can read is 255 bytes of garbage plus 4. Err, I am assuming 8 bit bytes here. Please file a bug report if you're compiling perl on a system with chars that are larger than 8 bits. (Even Crays aren't *that* perverse). */ unsigned char buf[4 + 255]; unsigned char *current; int c; int length; int use_network_order; int use_NV_size; int version_major; int version_minor = 0; TRACEME(("magic_check")); /* * The "magic number" is only for files, not when freezing in memory. */ if (cxt->fio) { /* This includes the '\0' at the end. I want to read the extra byte, which is usually going to be the major version number. */ STRLEN len = sizeof(magicstr); STRLEN old_len; READ(buf, (SSize_t)(len)); /* Not null-terminated */ /* Point at the byte after the byte we read. */ current = buf + --len; /* Do the -- outside of macros. */ if (memNE(buf, magicstr, len)) { /* * Try to read more bytes to check for the old magic number, which * was longer. */ TRACEME(("trying for old magic number")); old_len = sizeof(old_magicstr) - 1; READ(current + 1, (SSize_t)(old_len - len)); if (memNE(buf, old_magicstr, old_len)) CROAK(("File is not a perl storable")); current = buf + old_len; } use_network_order = *current; } else GETMARK(use_network_order); /* * Starting with 0.6, the "use_network_order" byte flag is also used to * indicate the version number of the binary, and therefore governs the * setting of sv_retrieve_vtbl. See magic_write(). */ version_major = use_network_order >> 1; cxt->retrieve_vtbl = version_major ? sv_retrieve : sv_old_retrieve; TRACEME(("magic_check: netorder = 0x%x", use_network_order)); /* * Starting with 0.7 (binary major 2), a full byte is dedicated to the * minor version of the protocol. See magic_write(). */ if (version_major > 1) GETMARK(version_minor); cxt->ver_major = version_major; cxt->ver_minor = version_minor; TRACEME(("binary image version is %d.%d", version_major, version_minor)); /* * Inter-operability sanity check: we can't retrieve something stored * using a format more recent than ours, because we have no way to * know what has changed, and letting retrieval go would mean a probable * failure reporting a "corrupted" storable file. */ if ( version_major > STORABLE_BIN_MAJOR || (version_major == STORABLE_BIN_MAJOR && version_minor > STORABLE_BIN_MINOR) ) { int croak_now = 1; TRACEME(("but I am version is %d.%d", STORABLE_BIN_MAJOR, STORABLE_BIN_MINOR)); if (version_major == STORABLE_BIN_MAJOR) { TRACEME(("cxt->accept_future_minor is %d", cxt->accept_future_minor)); if (cxt->accept_future_minor < 0) cxt->accept_future_minor = (SvTRUE(get_sv("Storable::accept_future_minor", TRUE)) ? 1 : 0); if (cxt->accept_future_minor == 1) croak_now = 0; /* Don't croak yet. */ } if (croak_now) { CROAK(("Storable binary image v%d.%d more recent than I am (v%d.%d)", version_major, version_minor, STORABLE_BIN_MAJOR, STORABLE_BIN_MINOR)); } } /* * If they stored using network order, there's no byte ordering * information to check. */ if ((cxt->netorder = (use_network_order & 0x1))) /* Extra () for -Wall */ return &PL_sv_undef; /* No byte ordering info */ /* In C truth is 1, falsehood is 0. Very convienient. */ use_NV_size = version_major >= 2 && version_minor >= 2; GETMARK(c); length = c + 3 + use_NV_size; READ(buf, length); /* Not null-terminated */ TRACEME(("byte order '%.*s' %d", c, buf, c)); #ifdef USE_56_INTERWORK_KLUDGE /* No point in caching this in the context as we only need it once per retrieve, and we need to recheck it each read. */ if (SvTRUE(get_sv("Storable::interwork_56_64bit", TRUE))) { if ((c != (sizeof (byteorderstr_56) - 1)) || memNE(buf, byteorderstr_56, c)) CROAK(("Byte order is not compatible")); } else #endif { if ((c != (sizeof (byteorderstr) - 1)) || memNE(buf, byteorderstr, c)) CROAK(("Byte order is not compatible")); } current = buf + c; /* sizeof(int) */ if ((int) *current++ != sizeof(int)) CROAK(("Integer size is not compatible")); /* sizeof(long) */ if ((int) *current++ != sizeof(long)) CROAK(("Long integer size is not compatible")); /* sizeof(char *) */ if ((int) *current != sizeof(char *)) CROAK(("Pointer size is not compatible")); if (use_NV_size) { /* sizeof(NV) */ if ((int) *++current != sizeof(NV)) CROAK(("Double size is not compatible")); } return &PL_sv_undef; /* OK */ } /* * retrieve * * Recursively retrieve objects from the specified file and return their * root SV (which may be an AV or an HV for what we care). * Returns null if there is a problem. */ static SV *retrieve(pTHX_ stcxt_t *cxt, char *cname) { int type; SV **svh; SV *sv; TRACEME(("retrieve")); /* * Grab address tag which identifies the object if we are retrieving * an older format. Since the new binary format counts objects and no * longer explicitely tags them, we must keep track of the correspondance * ourselves. * * The following section will disappear one day when the old format is * no longer supported, hence the final "goto" in the "if" block. */ if (cxt->hseen) { /* Retrieving old binary */ stag_t tag; if (cxt->netorder) { I32 nettag; READ(&nettag, sizeof(I32)); /* Ordered sequence of I32 */ tag = (stag_t) nettag; } else READ(&tag, sizeof(stag_t)); /* Original address of the SV */ GETMARK(type); if (type == SX_OBJECT) { I32 tagn; svh = hv_fetch(cxt->hseen, (char *) &tag, sizeof(tag), FALSE); if (!svh) CROAK(("Old tag 0x%"UVxf" should have been mapped already", (UV) tag)); tagn = SvIV(*svh); /* Mapped tag number computed earlier below */ /* * The following code is common with the SX_OBJECT case below. */ svh = av_fetch(cxt->aseen, tagn, FALSE); if (!svh) CROAK(("Object #%"IVdf" should have been retrieved already", (IV) tagn)); sv = *svh; TRACEME(("has retrieved #%d at 0x%"UVxf, tagn, PTR2UV(sv))); SvREFCNT_inc(sv); /* One more reference to this same sv */ return sv; /* The SV pointer where object was retrieved */ } /* * Map new object, but don't increase tagnum. This will be done * by each of the retrieve_* functions when they call SEEN(). * * The mapping associates the "tag" initially present with a unique * tag number. See test for SX_OBJECT above to see how this is perused. */ if (!hv_store(cxt->hseen, (char *) &tag, sizeof(tag), newSViv(cxt->tagnum), 0)) return (SV *) 0; goto first_time; } /* * Regular post-0.6 binary format. */ GETMARK(type); TRACEME(("retrieve type = %d", type)); /* * Are we dealing with an object we should have already retrieved? */ if (type == SX_OBJECT) { I32 tag; READ_I32(tag); tag = ntohl(tag); svh = av_fetch(cxt->aseen, tag, FALSE); if (!svh) CROAK(("Object #%"IVdf" should have been retrieved already", (IV) tag)); sv = *svh; TRACEME(("had retrieved #%d at 0x%"UVxf, tag, PTR2UV(sv))); SvREFCNT_inc(sv); /* One more reference to this same sv */ return sv; /* The SV pointer where object was retrieved */ } else if (type >= SX_ERROR && cxt->ver_minor > STORABLE_BIN_MINOR) { if (cxt->accept_future_minor < 0) cxt->accept_future_minor = (SvTRUE(get_sv("Storable::accept_future_minor", TRUE)) ? 1 : 0); if (cxt->accept_future_minor == 1) { CROAK(("Storable binary image v%d.%d contains data of type %d. " "This Storable is v%d.%d and can only handle data types up to %d", cxt->ver_major, cxt->ver_minor, type, STORABLE_BIN_MAJOR, STORABLE_BIN_MINOR, SX_ERROR - 1)); } } first_time: /* Will disappear when support for old format is dropped */ /* * Okay, first time through for this one. */ sv = RETRIEVE(cxt, type)(aTHX_ cxt, cname); if (!sv) return (SV *) 0; /* Failed */ /* * Old binary formats (pre-0.7). * * Final notifications, ended by SX_STORED may now follow. * Currently, the only pertinent notification to apply on the * freshly retrieved object is either: * SX_CLASS for short classnames. * SX_LG_CLASS for larger one (rare!). * Class name is then read into the key buffer pool used by * hash table key retrieval. */ if (cxt->ver_major < 2) { while ((type = GETCHAR()) != SX_STORED) { I32 len; switch (type) { case SX_CLASS: GETMARK(len); /* Length coded on a single char */ break; case SX_LG_CLASS: /* Length coded on a regular integer */ RLEN(len); break; case EOF: default: return (SV *) 0; /* Failed */ } KBUFCHK((STRLEN)len); /* Grow buffer as necessary */ if (len) READ(kbuf, len); kbuf[len] = '\0'; /* Mark string end */ BLESS(sv, kbuf); } } TRACEME(("ok (retrieved 0x%"UVxf", refcnt=%d, %s)", PTR2UV(sv), SvREFCNT(sv) - 1, sv_reftype(sv, FALSE))); return sv; /* Ok */ } /* * do_retrieve * * Retrieve data held in file and return the root object. * Common routine for pretrieve and mretrieve. */ static SV *do_retrieve( pTHX_ PerlIO *f, SV *in, int optype) { dSTCXT; SV *sv; int is_tainted; /* Is input source tainted? */ int pre_06_fmt = 0; /* True with pre Storable 0.6 formats */ TRACEME(("do_retrieve (optype = 0x%x)", optype)); optype |= ST_RETRIEVE; /* * Sanity assertions for retrieve dispatch tables. */ ASSERT(sizeof(sv_old_retrieve) == sizeof(sv_retrieve), ("old and new retrieve dispatch table have same size")); ASSERT(sv_old_retrieve[SX_ERROR] == retrieve_other, ("SX_ERROR entry correctly initialized in old dispatch table")); ASSERT(sv_retrieve[SX_ERROR] == retrieve_other, ("SX_ERROR entry correctly initialized in new dispatch table")); /* * Workaround for CROAK leak: if they enter with a "dirty" context, * free up memory for them now. */ if (cxt->s_dirty) clean_context(aTHX_ cxt); /* * Now that STORABLE_xxx hooks exist, it is possible that they try to * re-enter retrieve() via the hooks. */ if (cxt->entry) cxt = allocate_context(aTHX_ cxt); cxt->entry++; ASSERT(cxt->entry == 1, ("starting new recursion")); ASSERT(!cxt->s_dirty, ("clean context")); /* * Prepare context. * * Data is loaded into the memory buffer when f is NULL, unless `in' is * also NULL, in which case we're expecting the data to already lie * in the buffer (dclone case). */ KBUFINIT(); /* Allocate hash key reading pool once */ if (!f && in) { #ifdef SvUTF8_on if (SvUTF8(in)) { STRLEN length; const char *orig = SvPV(in, length); char *asbytes; /* This is quite deliberate. I want the UTF8 routines to encounter the '\0' which perl adds at the end of all scalars, so that any new string also has this. */ STRLEN klen_tmp = length + 1; bool is_utf8 = TRUE; /* Just casting the &klen to (STRLEN) won't work well if STRLEN and I32 are of different widths. --jhi */ asbytes = (char*)bytes_from_utf8((U8*)orig, &klen_tmp, &is_utf8); if (is_utf8) { CROAK(("Frozen string corrupt - contains characters outside 0-255")); } if (asbytes != orig) { /* String has been converted. There is no need to keep any reference to the old string. */ in = sv_newmortal(); /* We donate the SV the malloc()ed string bytes_from_utf8 returned us. */ SvUPGRADE(in, SVt_PV); SvPOK_on(in); SvPVX(in) = asbytes; SvLEN(in) = klen_tmp; SvCUR(in) = klen_tmp - 1; } } #endif MBUF_SAVE_AND_LOAD(in); } /* * Magic number verifications. * * This needs to be done before calling init_retrieve_context() * since the format indication in the file are necessary to conduct * some of the initializations. */ cxt->fio = f; /* Where I/O are performed */ if (!magic_check(aTHX_ cxt)) CROAK(("Magic number checking on storable %s failed", cxt->fio ? "file" : "string")); TRACEME(("data stored in %s format", cxt->netorder ? "net order" : "native")); /* * Check whether input source is tainted, so that we don't wrongly * taint perfectly good values... * * We assume file input is always tainted. If both `f' and `in' are * NULL, then we come from dclone, and tainted is already filled in * the context. That's a kludge, but the whole dclone() thing is * already quite a kludge anyway! -- RAM, 15/09/2000. */ is_tainted = f ? 1 : (in ? SvTAINTED(in) : cxt->s_tainted); TRACEME(("input source is %s", is_tainted ? "tainted" : "trusted")); init_retrieve_context(aTHX_ cxt, optype, is_tainted); ASSERT(is_retrieving(), ("within retrieve operation")); sv = retrieve(aTHX_ cxt, 0); /* Recursively retrieve object, get root SV */ /* * Final cleanup. */ if (!f && in) MBUF_RESTORE(); pre_06_fmt = cxt->hseen != NULL; /* Before we clean context */ /* * The "root" context is never freed. */ clean_retrieve_context(aTHX_ cxt); if (cxt->prev) /* This context was stacked */ free_context(aTHX_ cxt); /* It was not the "root" context */ /* * Prepare returned value. */ if (!sv) { TRACEME(("retrieve ERROR")); #if (PATCHLEVEL <= 4) /* perl 5.00405 seems to screw up at this point with an 'attempt to modify a read only value' error reported in the eval { $self = pretrieve(*FILE) } in _retrieve. I can't see what the cause of this error is, but I suspect a bug in 5.004, as it seems to be capable of issuing spurious errors or core dumping with matches on $@. I'm not going to spend time on what could be a fruitless search for the cause, so here's a bodge. If you're running 5.004 and don't like this inefficiency, either upgrade to a newer perl, or you are welcome to find the problem and send in a patch. */ return newSV(0); #else return &PL_sv_undef; /* Something went wrong, return undef */ #endif } TRACEME(("retrieve got %s(0x%"UVxf")", sv_reftype(sv, FALSE), PTR2UV(sv))); /* * Backward compatibility with Storable-0.5@9 (which we know we * are retrieving if hseen is non-null): don't create an extra RV * for objects since we special-cased it at store time. * * Build a reference to the SV returned by pretrieve even if it is * already one and not a scalar, for consistency reasons. */ if (pre_06_fmt) { /* Was not handling overloading by then */ SV *rv; TRACEME(("fixing for old formats -- pre 0.6")); if (sv_type(aTHX_ sv) == svis_REF && (rv = SvRV(sv)) && SvOBJECT(rv)) { TRACEME(("ended do_retrieve() with an object -- pre 0.6")); return sv; } } /* * If reference is overloaded, restore behaviour. * * NB: minor glitch here: normally, overloaded refs are stored specially * so that we can croak when behaviour cannot be re-installed, and also * avoid testing for overloading magic at each reference retrieval. * * Unfortunately, the root reference is implicitely stored, so we must * check for possible overloading now. Furthermore, if we don't restore * overloading, we cannot croak as if the original ref was, because we * have no way to determine whether it was an overloaded ref or not in * the first place. * * It's a pity that overloading magic is attached to the rv, and not to * the underlying sv as blessing is. */ if (SvOBJECT(sv)) { HV *stash = (HV *) SvSTASH(sv); SV *rv = newRV_noinc(sv); if (stash && Gv_AMG(stash)) { SvAMAGIC_on(rv); TRACEME(("restored overloading on root reference")); } TRACEME(("ended do_retrieve() with an object")); return rv; } TRACEME(("regular do_retrieve() end")); return newRV_noinc(sv); } /* * pretrieve * * Retrieve data held in file and return the root object, undef on error. */ SV *pretrieve(pTHX_ PerlIO *f) { TRACEME(("pretrieve")); return do_retrieve(aTHX_ f, Nullsv, 0); } /* * mretrieve * * Retrieve data held in scalar and return the root object, undef on error. */ SV *mretrieve(pTHX_ SV *sv) { TRACEME(("mretrieve")); return do_retrieve(aTHX_ (PerlIO*) 0, sv, 0); } /*** *** Deep cloning ***/ /* * dclone * * Deep clone: returns a fresh copy of the original referenced SV tree. * * This is achieved by storing the object in memory and restoring from * there. Not that efficient, but it should be faster than doing it from * pure perl anyway. */ SV *dclone(pTHX_ SV *sv) { dSTCXT; int size; stcxt_t *real_context; SV *out; TRACEME(("dclone")); /* * Workaround for CROAK leak: if they enter with a "dirty" context, * free up memory for them now. */ if (cxt->s_dirty) clean_context(aTHX_ cxt); /* * do_store() optimizes for dclone by not freeing its context, should * we need to allocate one because we're deep cloning from a hook. */ if (!do_store(aTHX_ (PerlIO*) 0, sv, ST_CLONE, FALSE, (SV**) 0)) return &PL_sv_undef; /* Error during store */ /* * Because of the above optimization, we have to refresh the context, * since a new one could have been allocated and stacked by do_store(). */ { dSTCXT; real_context = cxt; } /* Sub-block needed for macro */ cxt = real_context; /* And we need this temporary... */ /* * Now, `cxt' may refer to a new context. */ ASSERT(!cxt->s_dirty, ("clean context")); ASSERT(!cxt->entry, ("entry will not cause new context allocation")); size = MBUF_SIZE(); TRACEME(("dclone stored %d bytes", size)); MBUF_INIT(size); /* * Since we're passing do_retrieve() both a NULL file and sv, we need * to pre-compute the taintedness of the input by setting cxt->tainted * to whatever state our own input string was. -- RAM, 15/09/2000 * * do_retrieve() will free non-root context. */ cxt->s_tainted = SvTAINTED(sv); out = do_retrieve(aTHX_ (PerlIO*) 0, Nullsv, ST_CLONE); TRACEME(("dclone returns 0x%"UVxf, PTR2UV(out))); return out; } /*** *** Glue with perl. ***/ /* * The Perl IO GV object distinguishes between input and output for sockets * but not for plain files. To allow Storable to transparently work on * plain files and sockets transparently, we have to ask xsubpp to fetch the * right object for us. Hence the OutputStream and InputStream declarations. * * Before perl 5.004_05, those entries in the standard typemap are not * defined in perl include files, so we do that here. */ #ifndef OutputStream #define OutputStream PerlIO * #define InputStream PerlIO * #endif /* !OutputStream */ /* #line 6095 "Storable.c" */ XS(XS_Storable__Cxt_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable__Cxt_DESTROY) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Storable::Cxt::DESTROY(self)"); SP -= items; { SV * self = ST(0); /* #line 6091 "Storable.xs" */ stcxt_t *cxt = (stcxt_t *)SvPVX(SvRV(self)); /* #line 6107 "Storable.c" */ /* #line 6093 "Storable.xs" */ if (kbuf) Safefree(kbuf); if (!cxt->membuf_ro && mbase) Safefree(mbase); if (cxt->membuf_ro && (cxt->msaved).arena) Safefree((cxt->msaved).arena); /* #line 6115 "Storable.c" */ PUTBACK; return; } } XS(XS_Storable_init_perinterp); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_init_perinterp) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Storable::init_perinterp()"); { /* #line 6119 "Storable.xs" */ init_perinterp(aTHX); /* #line 6130 "Storable.c" */ } XSRETURN_EMPTY; } XS(XS_Storable_pstore); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_pstore) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: Storable::pstore(f, obj)"); { OutputStream f = IoOFP(sv_2io(ST(0))); SV * obj = ST(1); int RETVAL; dXSTARG; /* #line 6126 "Storable.xs" */ RETVAL = pstore(aTHX_ f, obj); /* #line 6148 "Storable.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_Storable_net_pstore); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_net_pstore) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: Storable::net_pstore(f, obj)"); { OutputStream f = IoOFP(sv_2io(ST(0))); SV * obj = ST(1); int RETVAL; dXSTARG; /* #line 6135 "Storable.xs" */ RETVAL = net_pstore(aTHX_ f, obj); /* #line 6167 "Storable.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_Storable_mstore); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_mstore) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Storable::mstore(obj)"); { SV * obj = ST(0); SV * RETVAL; /* #line 6143 "Storable.xs" */ RETVAL = mstore(aTHX_ obj); /* #line 6184 "Storable.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_Storable_net_mstore); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_net_mstore) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Storable::net_mstore(obj)"); { SV * obj = ST(0); SV * RETVAL; /* #line 6151 "Storable.xs" */ RETVAL = net_mstore(aTHX_ obj); /* #line 6202 "Storable.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_Storable_pretrieve); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_pretrieve) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Storable::pretrieve(f)"); { InputStream f = IoIFP(sv_2io(ST(0))); SV * RETVAL; /* #line 6159 "Storable.xs" */ RETVAL = pretrieve(aTHX_ f); /* #line 6220 "Storable.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_Storable_mretrieve); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_mretrieve) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Storable::mretrieve(sv)"); { SV * sv = ST(0); SV * RETVAL; /* #line 6167 "Storable.xs" */ RETVAL = mretrieve(aTHX_ sv); /* #line 6238 "Storable.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_Storable_dclone); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_dclone) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: Storable::dclone(sv)"); { SV * sv = ST(0); SV * RETVAL; /* #line 6175 "Storable.xs" */ RETVAL = dclone(aTHX_ sv); /* #line 6256 "Storable.c" */ ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_Storable_last_op_in_netorder); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_last_op_in_netorder) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Storable::last_op_in_netorder()"); { int RETVAL; dXSTARG; /* #line 6182 "Storable.xs" */ RETVAL = last_op_in_netorder(aTHX); /* #line 6274 "Storable.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_Storable_is_storing); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_is_storing) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Storable::is_storing()"); { int RETVAL; dXSTARG; /* #line 6189 "Storable.xs" */ RETVAL = is_storing(aTHX); /* #line 6291 "Storable.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_Storable_is_retrieving); /* prototype to pass -Wmissing-prototypes */ XS(XS_Storable_is_retrieving) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: Storable::is_retrieving()"); { int RETVAL; dXSTARG; /* #line 6196 "Storable.xs" */ RETVAL = is_retrieving(aTHX); /* #line 6308 "Storable.c" */ XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_Storable); /* prototype to pass -Wmissing-prototypes */ XS(boot_Storable) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXS("Storable::Cxt::DESTROY", XS_Storable__Cxt_DESTROY, file); newXSproto("Storable::init_perinterp", XS_Storable_init_perinterp, file, ""); newXSproto("Storable::pstore", XS_Storable_pstore, file, "$$"); newXSproto("Storable::net_pstore", XS_Storable_net_pstore, file, "$$"); newXSproto("Storable::mstore", XS_Storable_mstore, file, "$"); newXSproto("Storable::net_mstore", XS_Storable_net_mstore, file, "$"); newXSproto("Storable::pretrieve", XS_Storable_pretrieve, file, "$"); newXSproto("Storable::mretrieve", XS_Storable_mretrieve, file, "$"); newXSproto("Storable::dclone", XS_Storable_dclone, file, "$"); newXSproto("Storable::last_op_in_netorder", XS_Storable_last_op_in_netorder, file, ""); newXSproto("Storable::is_storing", XS_Storable_is_storing, file, ""); newXSproto("Storable::is_retrieving", XS_Storable_is_retrieving, file, ""); /* Initialisation Section */ /* #line 6106 "Storable.xs" */ init_perinterp(aTHX); gv_fetchpv("Storable::drop_utf8", GV_ADDMULTI, SVt_PV); #ifdef DEBUGME /* Only disable the used only once warning if we are in debugging mode. */ gv_fetchpv("Storable::DEBUGME", GV_ADDMULTI, SVt_PV); #endif #ifdef USE_56_INTERWORK_KLUDGE gv_fetchpv("Storable::interwork_56_64bit", GV_ADDMULTI, SVt_PV); #endif /* #line 6351 "Storable.c" */ /* End of Initialisation Section */ XSRETURN_YES; } ================================================ FILE: tests/perlbench/WORDS ================================================ A-pattern AAV ABG ACP ADEPT AIDS-related ALT:AST ANF APACHE ARF AT-II ATRASS Aahme Aarskog-Scott Abaks Abdaker Abegg Abernethy Abgrde Ablagefach Abo Abreise Abschrfg Absidia Abstimmg Abtreg Abzg Accra Achorion Ackley Acrplis Actinomyxidia Activistas Adam Additie Adelia Adipiodone Adler Adqirir Adson's Aekdte Aeromonas Afgag African Afwarme Agatha Ageletz Agler Ahefrschg Aird Aker Akteschblade Alabamian Alban Alberto Alcmena Aleck Alexandre Alg Alicia Allen's Allstate Alpe Alsatian Altherr Alzheimer's Amberg's American Amherst Amos Amt Anagnostakis Andernach Andes Andrew Angeline Angles Anisakidae Annette Antares Antirrhinum Antyllus' Apfelsie Apparat Apthekerkst Araby Arbeitstier Arede Argetiie Arie-Pitanguy Arlen Armanni-Ebstein Armi Arndt Arrhenius-Madsen Artischche Asbete Ascarops Aschlaghammer Asdehg Asgag Ashman's Askft Asrichtg Assmann's Aston Ast At Atgraph Atlantic Attica Aubert Auerbach's Augusto Australis Avogadro Aydad Azerbaijan BAgQIC Barekla Bacchus Badeazg Bae Bagley Bakelite Balalaike Ballade Ballsaal Bamsse Banbury Barany Barnes Barrington Basalme Bathos Bavaria Bazills Bchstabe Beatrice Beckman Beethoven Beifall Bel-van't Belgian Belmont Bengal Benz Beresford Bergman Berlitz Bernie Bertram Beschleiggsmesser Bestaetigg Bethesda Bettdecke Beweggkrakheit Bibel Bierlkal Billett Birmingham Blackman Blatt Blinn Blomquist Blze Boe Bolshevik Bonneville Borneo Bowen Brady Brandt Braxton Brdstei Brenner Bridgetown Briefmschlag Brindisi Brkkli Brookhaven Brstkaste Brunswick Brhe Btstift Budapest Bundestag Burma Burundi Byrd Bcherei Brste CD CT Cadillac Calamidade Calkins Cambridge Canadian Cantrell Carboloy Carl-Henry Carmela Carr Casanova Catherwood Cch Celebes Cesar Chalmers Charakter Chartres Chemie Chiang Chinese Chou Christianson Chungking Claire Claudia Clifford Clytemnestra Cobb Colby Cologne Compton Conley Constantinople Cooper Corinthian Corvus Courtney Creole Crista~s Cruveilhier Cumberland Custer Cyrillic DARPA DPunjab Dagerrtypie Dakar Daly Daniel Darkschewitsch Datebak Datmsgreze Davison Dckarbeiter Debbie Deckegebhr Delano Delphic Denny Desifektismittel Devonshire Diapsitiv Diest Dillon Direcci Diskette Dktrat Dm Domenico Donald Dora Dortmund Doyle Drcheiader Dreyfuss Drse Dubreuilh Dunham Durrell Dyke EE Eagan Eben Ecole Edelsteie Edler Edward Egisms Egs Eiba Eierkche Eigeschaftswrt Eila Eisapfe Eiseware Eiszapfe Eizelteile Elaine Elektrifikati Elisabeth Elliott Elsevier Emery Endicott Enid Epiphany Erbsesppe Ereigisse Eriedrigg Ernestine Erskine Erzieher Esse Estonia Ethan Etschlss Eugenia Europe Evansville Exeter Estbche FACOG FCC FIFO FN-gelatinase FRSC Fab Facilissim Fahr's Fahrkarteschreiber Fairchild Falmouth Farabeuf's Farmer Fas Fatt Fax Febrary Fee Fehling's Feld Felty Ferguson Ferrein Fersprechzeller Fettleibigkeit Ficoll-Hypaque Figer Filatov-Gillies Fink Firma Fisk Flchtige Flammewerfer Flcke Fleischerlade Fletcher Flieger Flood's Flourens' Flte Folin-Looney Fontaine Forbes-Albright Formad's Fortescue Foundation Fralei Frage Francine Frankel Fraser Frche Frederick Freeman-Sheldon Freitag Fresnel Friday Friedreich's Frisre Frohn's Frtschritt Fssball Fuji Fusobacterium Fhre G-protein GB-D GH GMP GSR Gabardie Gade Gairdner's Galbreath Gallego's Galtonian-Fisher Gandy Gantzer's Gardner's Garre Gascony Gast Gastrophilus Gaulle Gay-Lussac Gebietkarte Gedoelstia Gefageher Gegeteil Geigel's Gelatie Gelee Gellerstedt Gemini Gennari's Gepaecktraeger Gerber Gerhardt-Mitchell Germanic Gerstmann-Straussler-Scheinker Geschlechtsteile Geschftsma Gesichtsseife Getreidepflaze Gewichte Ghon Giardia Gideon Gigli's Gilles Gilmore Ginsburg Gischtflasche GlabesEiferer Glatzkpf Gleichgewichte Glisson Glt Gmelin Godwin Goldblatt Goldscheider Golgi-Mazzoni Gompertz' Goodman's Gordon Gorton Goucher Grssergd Graefe's Grahamella Granit Gratlate Grbe Green Greensboro Greis Gridley's Grisolle Groenouw Grover's Grumman Gthabe Guatemala Guiana Gullstrand's Gunz' Gustave Guyon's Gte H/S HCV HIB HOCM HYL Haaresbreite Habe Hacker Hades Hadtch Haemichorda Haenszel Hagel Hah Haiti Halbkreis Hales' Halleljas Hallopeau Halsschmerze Ham's Hamman Hampton's Hanford Hannibal Hansen Haptrichtg Harcourt Harley Harris' Hartmann Hase Hasner Haswei Haudek's Hawaiian Hayflick Hchstrae Head's Heavy Hecate Heeres Hegglin Heilbtte Heineke Heizkrper Helga Hellin's Helvella Henderson Hennebert's Henseleit Herberge Herellea Hermansky Herpetomonas Hers' Herwigh Herzschmerze Hessian Heubner's Hey Hg Hid Hijas Hillcrest Hin Hippoboscidae Hirschberg's His-Tawara Hiterlad Hlm Hobbes Hodgkin Hoffmann's Holden Hollister Holmgren-Golgi Homalomyia Honeywell Hoover's Hornblower Horton Hovius Hre Hubbard Hueck's Hughes-Stovin Hummelsheim's Hunt's Hurler-Scheie Hutchinson's Hyalomma Hyman Hgematte Hlle I-TEVI ICC IDP IHSS IMP-aspartate IRI IUCD IX-a Icapacta Idetifizierg IgA Ihe Ilyushin Immunodeficiency Inappropriate Indochina Ino Iodamoeba Irene Irrgarte Isaacson Isel Islaer IstMs Italie Itleraz Ixodes JED Jaccard Jacksonian Jacobson's Jacquet Jaffe's Jakarta Jan Jansky Jarg Jatropha Jean-Baptiste Jellinek Jeno Jervell Jewett Ji Joan Joffroy Johnny Jolly Jordan Josephus Jr Judas Julie Junius Jutish KDRF Kaada Kabelschlach Kadiszcher Kah Kaka Kalik Kamerad Kandori Kapitalist Karen Karre Kashin Kasten's Katie Kawasaki Kd KebabPr Keifzage Kelleri Kendall Kent Kerandel's Kerr Kevin Kfitre Kid Kienbock Kiff Kiliani-Fischer Kinase Kipling Kirov Kiste Klager Klebs Kleidge Klenow Klippel Kluver Kmmist Knoll Knudson Koch-Weeks Koenig's Kohlrausch Kolliker's Konrad Kornzweig Kowalewski Kpfsprg Krakewage Kraske's Krebs-Kornberg Kreysig's Krigel Kronig's Krve Kst Kte Kugelberg Kummell Kuru Kveim-Stilzbach Klte Krperschaft Kstler L-carbamoylase L-radiation LAS LEEP LINAC LPS LTM Laband's Lachesis Ladeihaber Laelaps Lageweile Laki-Lorand Lambert Lancashire Landouzy-Grasset Lane's Langerhans Lansing Lappe Larrey Lasegue's Laszlo Latzko's Lauren Lavdovsky's Lcher Lebanese Lebesmittelgeschft Lederer's Legal Lehman Leidig Leishman's Lekamie Lemuel Lennert Leona Leptotrichia Lesbian Lethe Leukocytozoon Leviticus Leyden's Lh Liborius' Lide Liebhaver Liegesthl Lila Limnatis Lindner Lingelsheimia Lippestift Lise Listeria Litton Lloyd Locke Loeffler's Lois Long's Lorain's Loschmidt Louisa Lovibond's Lower's Ltse Lucerne Lucio's Ludwig's Luigi Luschka Luys Lyman Lrmschtzhabe MARCA MTIVATE MacDonald Macedonia Maciat Madeira Mae Mage Magetisme Magm Maharadschah Mais Makrele Maldive Maltese Manley Marcello Margery Marino Markovian Marriott Martinson Maschierie Massage Mathias Mattson Maximilian Mazda McCarthy McCracken McGee McIntyre McLean Md Medici Meere Meister Melissa Menzies Mervin Metallware Mexikaer Michelin Middleton Miefeld Miimalisms Milchwirtschaft Milliampere Minnie Mischgsalat Missy Mitte Mittelweg Moe Moline Monica Montenegrin Mooney Moritz Morton Mr Mschel Mtage Muir Murray Myers Mrkte N N-acetylgalactosaminyltransferase N-acetylhydrolase N-acyl-D-glutamate N-carbamoyl-D-amino N-formimidoyl N-methyl N-nitrosopyrrolidine NAD+ NAF NC NH NMR NPN Nabisco Nageli Names Naples Nasmyth's National Ndjamena Neff Neisser Nemethy Nernst's Neufeld Newbold Neyman-Pearson Nichols Nicosia Nigeria Nils Nitabuch's Noble-Collip Nomenclature Norma Northrup Nosopsyllus November Nuclear Nuttall O'Beirne's O-methyltransferase OCP OSHA Obermeier Oct Odyssey Ofuji's Ohio Ole Olsen Ommaya Ondiri Ophryoscolecidae Orbeli Orkney Oroya Orton Osiris Ota Ottoman Owens P-A PACKER PBS PEGs PID PMR PPCA PSA PTT PVY Pachon Pagenstecher's Pakistani Palladian Panama Panner's Papier Pappenheim's Parallel Pare's Parke Parrish Partizip Pasqa Pastete Paterson-Brown-Kelly Patrick Pauli Pautrier's Paxton's Pazifist Pecabaeme Peggy Pelham Pendred Pentecost Per Pericles Perls' Perthes Peter Pette Peyton Pfd Pfizer Pfrte Phasmidia Philippe Phlebotomus Phycomycetes Phytomastigina Pickering Pierre Pillsbury Pinel's Pirenella Pist Pius Pladermal Plateau Plaut Plimmer Plotz Plver Pogonomyrmex Polaris Polycomb Ponce Porocephalidae Porto Pott Powassan Pratt Precursor Prest Price-Jones Prinzmetal Prme Profeta Proteeae Providence Prtestat Przella Psilocybe Pstflgzeg PtdIns Puerto Purina Putnam Pyrex QED Qadrphie Quakeress Quenu Quincke's Rcke RBC RDA RF RISA RNA-dependent RQ Rache Radcliffe Radilarim Rahn Ram Ramsden's Ranikhet Raoult Rasiermesser Rastelli Rattus Rawlinson Rbe Rd Rebah Receptors Reckelage Redakter Reenstierna Regaud's Regis Reichel-Polya Reil Reise Reiserte Reiter's Remitetes Renshaw Reservati Retzius' Revlti Rh Rhinocladiella Rhodes Ribbert's Richardson-Steele-Olszewski Rico Riedel Riemannian Ringer Rippe Rits Rivers Rllsthl Roberts Robison-Embden Rockwell Rogers' Rolf Romania Romer Rorschach Rosen Rosenzweig Rotch's Rotor's Roussy Rowley Rstfreistahl Rudi Rumford Rushton Rutherford Rye Rckgrate S-T S-alkylcysteine SAED SE SIF SNAREs SRF STH Sabed Saccharomyces Sackleie Sadmschist Safari Saint's Sal Salina Salter Samba San Sandhoff's Sanford Santayana Saracen Sargent Sattler's Saundby Saxony Scanning Scedosporium Schaer's Schaltg Schapsbreerei Schaudinn Schede Scheibelafwerk Schelle Schenectady Schicksal Schiller Schitzerei Schlaf Schlckaf Schlesinger Schlss Schmid Schmorl Scholz Schpftch Schreibepapier Schriftseite Schsstier Schuffner's Schuster Schwalbe Schweif Schwg Schlig Scorpionida Scotty Sctthalde Se Sebileau's Sedg Seessel's Sehscht Seiler's Selbstbediegsrestarat Sellerie Semite Seneca Sephadex Seriellmmer Servetus' Setze Sezary Shanghai Shattuck Shelby Sheppard Shibasaburo Shipley Shrapnell Sibirie Sicilian Siegle Signora Silver Simmonds' Simonson Sioux Sistine Sjogren's Sklowsky Slavic Slyke Smith-Robinson Sneddon's Society Solomon Sonne Soret's Southey Spanish Specht Speise Sperry Spiele Spigelius' Spitzer Sporocystinea Sprengel's Sprlig Strm Stab Stadim Stag Stan Staphylococcal State Stde Steel Stehpltze Steinert's Stender Stephen Stetson Stewart-Hamilton Stickler Stiles-Crawford Stock Stokes-Adams Strafe Strahlg Strauss Streichhlzer Strm Stroud's Stuart-Prower Sturmdorf's Strke Sudan Sulzberger Susanne Sven Swedish Syagge Sylvia Syngamus Szial Sdste T-shirt TBPA TEPA THF TLE TNT TRH TTP TWA Tac Taetigkeit Tagg Taka-diastase Tallahassee Tananarive Tardieu's Tarzan Tastatrfahrer Tavere Tay's TbetaR-I Techiker Teesemmel Teil Tektronix Telephfrwlei Tenon's Terremti Tess Teutleben's Thal Thebesius Thema Theseus Thimbu Thomsen Thorpe Thygeson's Tierkreis Tim Tirane Tissierella Tkassette Tmmelplatz Togo Tomes' Topinard Torre Tourtual Toynbee's Traktr Trarigkeit Travase Trelat Trevelyan Trichinellicae Trichuris Trinidad Trkey Troisier's Trousseau Truman Trepl Tullio's Turck's Tuscany Tyndall Tyrrell Treigag UDP-Gal-beta-galactoside UDP-acetylglucosamine-beta-D-galactosylsaccharide UDPglucose-glycogen UPD-glucose-thiohydroximate USGS UV Ukraine Umbre Unna-Pappenheim Urban Usher V-esotropia VC VI VS Vaeter Valery Valsalva Varian Vater-Pacini Vegetati Velpeau Venusian Verbaer Verbreitg Verfgbarkeit Vergrsserge Verkafsstad Verlage Vermieteri Verocay Verrdg Versedgkste Vertrag Verzg Vetter Vicat Vide Vientiane Viertelfiale Vincent Virgil Vito Vlkscharakter Vogt's Vollmer Von Vrderseite Vrhersage Vrteil Wrde Wahrg Waderer Wageladge Waite Walgreen Walther Warehas Wartg Washington Wasserman Waterhouse Wayne Wder Wedekreis Weibrad Weiher Weize Wellington Wenzel Wertpapiere Westfield What White Whlttigkeit Widschtzscheibewischerflssigkeit Wikel Wilhelm Willeskraft Wilmington Winnie Wirti Witwer Wolff World Wsch Whler X-Pro XXX Xiphophorus Yakima Yeager Yonkers Yuki ZSR Zaglas' Zahlwrt Zan Zealand Zeicheaerkeg Zeit Zeitschrifte Zeppeli Zgkraft Ziehharmika Ziffer Zimmerlin Zion Zll Zollinger Zorn Zsammerttg Zuckerkandl Zweitkpie Zhler a-protein aPTT aaags aalisi aalyst aardvark aatema ababua abacist abacus abadar abadig abaiser abalone abanga abarthrosis abases abashmet abate abatimiet abattoirs abbad abbassi abbdada abberfe abbokinase abbregviati abbreviati abbreviazii abd abdar abdcets abdcts abdicabile abdicate abdiel abdmial abdominalis abdominohysterotomy abdominovaginal abductoris abecedarium abegar? abel abels aberdeen aberrad aberrate aberraziale abetmet abeyance abgebe abgeschafft abhominable abhr abhge abidig abietadiene abiett abigeetic abigeticamete abilidade abilo abiogenous abira abism abitale abiticamete abjection abjrar abjudication abkari ablaqueation ablatig ablaze ablehed ables abliciista ablisce ablitiary abliziari abltis ablgicamete abmiacig abmiaveis abnegator abnormalize abohm abolla abomine aborigine abortional abounding abovestairs abrade abral abranchiata abrasifs abrasively abraxas abreger abret abreviatras abrgatig abridger abrigialemet abrmale abrocome abrpcig abrrgad abrteir abrtisti abruption absadr abscder abschaffe abschwre abscisse abscopal abseista absenter abseta absetmidedess absinthe absinthol absividade absltism absltizes absolutely absolutory absorbability absorbers absorptive absrbat absrbible absrbtis absrdisme absrptive abstained abstei abstention abstetis abstinency abstraciista abstractig abstractive abstrahiere abstrict abstrusion absvolt abtmets abundance abuse abusion abutter abwarte abyect abyssobenthonic acacatechol academe academicia academize acaena acalescet acamar acanthamoeba acantho- acanthocytosis acanthological acanthopodia acanthopterygious acapnia acardius acaridean acarol acarus acatamathesia acathcephala acatilad accademic acceder acceglerer accelerated accelerator accelermeters accentor acceptability acceptati acception accesibilidad accessed accessibly accessoria accessries accetated acceti accettazii accidentality accidetalemet accidetes accipitrary acclaimed acclimare acclimati acclimatizer acclivity accmlable accmlatively accmmdatig accmpagatre accmpaimets accmplie accmplissemet accommodable accommodative accompanyist accomplishment accorder accouchement accountantship accra accrd accrdig accreditamet accrementitial accretion accruement accsatre accstm acctat accubation accumulable accuracy accusant accused accustomed acecaffine acefal aceitera acelerativ acemetic aceology acephalite acephalothoracia aceptad acerata acerbidad acerola acervose acessgris acetabular acetabulum acetalize acetaminosalol acetarsone acete acetifier aceto-orcein acetobacteraceae acetokinase acetonaemia acetonide acetophenetide acetosoluble acetoxyphthalide acetyl acetylate acetylcholine acetylenic acetylglycine acetylmuramyl-alanyl-isoglutamine acetylserotonin acgedr achaeta achariaceae achdem achenial achete achicht achievig achilles achinese achlamydeae achmittags achondritic achprfe achrmatism achroma achromatism achromatopia achromocyte achroous achts achylous acialidad aciculite acid-fast acidanthera acidifiant acidimeters acidize acidogenic acidoproteolytic acidulous aciet acinaces acinetarian acinotubular acisamete acknow acktheit acladas acleate aclimatiza acmaea acmiat acmladres acmpa~amiet acnemia acoelomata acokanthera acolyctine aconin acontia acormus acotyledonous acousmatamnesia acoustics acqiescece acqisire acqisti acquainted acquirability acquisition acquittance acrania acratia acrbatics acrds acreditad acridian acridone acrimoniously acrita acrmatizzare acroanesthesia acrobatically acrocephalic acrochordon acrodactylum acrodysostosis acrogeria acrolith acromegalic acromialis acromioscapular acron acronym acropathy acropolis acrosclerosis acrosporous acrosticism acrothoracica acrpetal acryl acrmicamete acsativgva actability actalized actely actigall acting actiniferous actino-chemistry actinocrinid actinoelectricity actinolitic actinomorphous actinomycoma actinophonic actinopterygian actinostome actinozoon actipylea activate activeess activize actriz actuarial acuaesthesia aculeata acumination acupuncturation acustici acutiator acutus acyl-ACP acylase acyloxymethane acstica adadres adam's adamas adamically adamson adaptable adaptational adaption adapts adattamet add addePrepsiti adderbolt addictedness adding addition-deletion additives addleheadedness addmi addressful adducer ade adeidal adelbert adelocerous adelphoi adenalgy adenia adenocarcinoma adenocyte adenographic adenoidea adenological adenomegaly adenomyxosarcoma adenophorous adenosis adenotyphus adenylylosuccinate adept adequation adermin adete adharma adherently adhesion-related adhesives adiactinic adiaphoretic adiate adicity adiestramiet adinidan adipocele adipogenic adipopexia adiposuria adir adits adjag adjetiv adjournment adjudicative adjure adjustment adjuvant adlescetes admaxillary admiistradres administerd administrator admiralship admiring admit admitting admonitions adnata adnexed adolescence adoniad adoperation adoptianism adorable adorer adoxa adpress adqisici adream adrenalitis adrenoceptive adrenocorticotropin adrenomyeloneuropathy adressierte adroitness adscript adsmithing adstipulation adulatress adulterator adultness adunc adv advancing advective adventitial adventureship adverbial adverse advertently advertisig advisatory advisive advocating adynamic aeaean aecidiostage aedile aegagropila aegina aegithognathism aehmbar aeluropodous aeolic aeolistic aeonian aequorin aerenchymous aeric aerkee aerobian aerobiont aerocamera aerodonetics aeroemphysema aerogenically aerographics aerolithology aeromarine aeronat aerope aerophilic aerophyte aeroscope aerosolization aerotactic aerotropism aeschylean aesopian aestheticize aestivoautumnal aethiops aetiotropic af afdad afenil affaibli affectable affectible affectious affenpinscher affichage affiliation affinity affirmatory affixture afflictionless afforce affranchise affricative affronted affslarsi afghanistan afifi aflare afluking aforethought afrasia africanist afrikander afs aft afterblow aftercataract aftercontraction afterdeck afterfeed aftergo afterhatch afterlife aftermath afteroar afterpressure aftersensations afterspeech aftertan aftertrial afterwit aftrage ag against agalaxy agama agammaglobulinaemia agamous agapemonist agaric agaristidae agastroneuria agathodaemon agave agdeza agecies agelacrinites agencies agenosomia agepat agets aggettiv agglomerant agglutinating agglutinophilic aggrandizer aggrecanase aggregative aggressively aggry agialid agilely agistor agitation agitprop aglaspis aglipayan aglossia-adactylia aglyphodontia agnate agnel agnoite agnosy agomphious agonist agonizingly agouta agradecimiet agram agranular agrarianize agreeingly agresiv agricere agriculturally agriochoerus agrise agrochemical agromania agroof agrostologic agrypnocoma aguavina aguish agynary ahankara ahegelege ahmadabad ahrendahronon ahungered ai't aide aids-associated aigles ail ailette ails aim aimamete aimer aims air-conditioner airbrasive airdrome airfoil airish airmanship airplaes airship airtightness airy aisteoir aitchpiece aiveess aizoaceous ajej ajste akamnik akatalektisch akedess akers akinesic akklimatisiere akoasma aks akwapim alabamian alabastron alactic alagille alalus alamosite alanine-oxomalonate alantolic alarmable alarmism alaskan alauda albainn albarium alber alberto albicant albiflorous albinistic albitization albopannin albugineotomy albumin albuminization albuminone albumoid albyn alcalesens alcanna alcedo alchemistical alchl alcidine alcmena alcoholdom alcoholize alcoholysis alcotate alcyonarian aldamine aldehyde-ketone aldermancy alderney aldocortin aldonic aldoxime aleberry alectoris alectryon alehoof alembicate alepidote alerting alethopteis aleukocytic aleuron aleutite alexandrianism alexipharmac aleyard alfaqui alfiona alfredo algaeological algarroba algebar algedi algerine algesthesis algieba algiomuscular algogenic algometer algophilist algorithmic algrithms alhenna alibility alicyclic alieare alienate alienist aliged alikewise alimentation alimetar alintatao aliquant alismales alister alizari alkahestical alkalie alkalimetric alkaliser alkalophile alkannan alkene alkoranic alkyldihydroxyacetone alkyloxy allabuta allamotti allantoid allanturic allaxis alle alleged allegorical allegr allei allelomorph allemand allerge allergised allethrolone alleviator allggiat alliage allieare alligator allis alliteratis allmahlich allocable allochiral allochrome allocution alloerotic allogenically alloisomeric allomerism allomucic allopathist allophanic allophytoid allopolyploidy allosaur allot allothigenous allotriodontia allotropic allottee allowableness alloxanic allozooid allude allusively allwace allylate allys almacigo almandite almhada almochoden almoravid almsgiving almuredin alnitak alodialist aloelike alogia aloma alonsoa alopecurus alowe alpen alpha-D-xylosidase alpha-allopregnanediol alpha-antagonists alpha-d-glucohydrolase alpha-hydroxy-gamma-aminobutyl alpha-ketoisocaproate alpha-n-acetylgalactosaminyltransferase alpha-prodine alphabetically alphabetizati alphamerical alphecca alphorn alpigene alpinism alquier alruna also altaian altarlet alterant altercate altering alternariose alternativeness alterocentric altheine altiloquence altiplano alto altrices alu alum alumine aluminography aluminum alumnus aluta alveoalgia alveolate alveolo- alveoloplasty alvine alymphopotent amaas amadeus amain amalgamable amalgamization amampondo amanitins amara amarantus amarillo amaryllidaceae amasthenic amateurishly amatorially amazed amazon ambagious ambasciatre ambassy amberoid ambidextrism ambiete ambilateralaterally ambisinistrous ambitiously amblate amblycephalidae amblyope amblystegite ambonnay ambrica ambrosian ambucetamide ambulation ambury amchoor ameazg amebula ameiuridae ameliorable ameloblastic amely amender amenorrheic amentiferous amerciament americanizer americomania amesake ametabola ameter ametriodinic amherst amianth amicably amidase amidine amidoaldehyde amidohydrolase amidoplastid amidship amigs amination amino-terminal aminoacridines aminobenzene aminoethanoic aminohydrolase aminomalonic aminophenazone aminopterin aminosulphonic amiodarone amissible amitotically ammalat ammine ammocoetes ammonate ammoniation ammonite ammonization ammonotelia amnesic amniocardiac amnioma amnioscopy amodiaquine amoebian amoebobacter amolilla amoral amoristic amorpha amorphously amortizement amourous ampa ampelitic amperemeter ampherotokous amphibaric amphibious amphiboliferous amphibrachic amphichrom amphictyon amphide amphierotic amphigenesis amphikaryon amphinesian amphioxididae amphiploid amphipodous amphisbaenian amphispore amphitheater amphithyron amphitropous amphochromatophil amphopeptone amphoriloquy amplectant amplicative amplifying ampullaceous ampullula ampyx amrinone amsed amtad amulet amusedly amusively amyctic amyelous amygdaliform amygdaloside amylamine amylidene amylodyspepsia amyloidosis: amylophosphate amylosynthesis amyosthenic amyridaceae ana anabasine anablepidae anabrosis anacanthine anacatadidymus anachronical anachueta anaclitic anacrisis anacusic anadipsic anaerobation anaerobiotic anaesthekinesia anaesthetization anagep anaglyptics anagogics anagua anakinesis analav analepsis analgesis anallantoidea analogism analphabet analyser analyzation anamite anamniote anan anandamide ananite anapaestically anaphia anaphroditous anaphyte anapnea anapsidan anaptyctical anarchism anaretic anarthrous anaschistic anastasian anastigmats anastomus anathematize anatinae anatomicobiological anatomization anatricrotic anaudia anbury ancestrian anchistea anchoret anchoritical anchusin ancienty ancon ancony ancylostomatic andabatarian andaste andevo andorite andreaea andria androclus androgametophore androginous androgyne androides andromede androphagous androsin androstenediols anecdota anele anemochord anemometrical anemonin anemosis anend anepithymia aneroidograph anesthesiology anestrous aneuploidy aneurysm aneutronic angaria angeleno angelican angelo angelot angeyok angiitis angio angiocardiopathy angiocyst angiofibrolipoma angiogliosis angioid angiolith angiomas angiomyoneuroma angioneurotic angiophorous angiosarcoma angiospermae angiostomous angiotensin-related angka anglesmith anglicanly anglish anglomaniac angora angster anguillulidae anguishous angulate anguloa angustifoliate anhalouidine anhematosis anhistic anhydrides anhydromyelia aniconic anidous anile anilingus anima animalcula animalian animalivorous animateness animi anion anisaldoxime aniseroot anisocarpic anisocytosis anisogamy anisomastia anisomycin anisopleurous anisospore anisotropical anisylidene ankee ankou ankyloglossia ankyloses ankyrins annalism annat annelides annet annexin anniellidae annite annotate announced annoying annuitant annulate annulled annulospiral anobiidae anodal anodos anoetic anolian anomalist anomaloscope anomer anomoean anomy anonymous anophelinae anoplanthus anopluriform anorectic anorganic anorthitite anoscope anosphresia anotto anoxemic ansarie anseriformes answerability ant antaean antagonizer antalkaline antapology antarctic antatrophic antebath antecedaneous antechinomys antecubital antefix antegrade antelegal antemeridian antenatalitial antennary antenor antepaschal antepirrhema anteprostate anterior anteroclusion anterointernal anteroparietal antes antetemple anthecologist anthelone anther antherogenous anthesterol anthocarp anthocyanidin anthoid anthomania anthophagous anthophyllitic anthoxanthins anthraceniferous anthracitization anthracometer anthracycline anthramycin anthrapurpurin anthraxolite anthropical anthropodus anthropogony anthropolitic anthropometrically anthropomorphite anthropomorphous anthropopathite anthropophagous anthropopsychic anthropoteleological anthroxanic anti-DNAse anti-arrhythmia anti-inflammatory antiabrasion antiager antialcoholic antiamylase antiannexationist antiaphthic antiarrhythmia antiautolysin antiberiberi antibiotics antibody-coated antiburgher anticarcinogen anticatalyzer anticeremonialism anticholinergic antichrome anticipation anticlassical anticlockwise anticoding anticomplex anticontagion anticorrosive anticreative anticrotalic anticytotoxin antidepressive antidicomarian antidiuretic antidotal antidromic antidyskinetic antiemetic antiephialtic antiethnic antifaction antifelony antifibrinolytic antiforeign antifundamentalist antigen-binding antighostism antigonus antigrowth antihemagglutinin antiheterolysin antihum antihypertensive antikenotoxin antilacrosser antileukocidin antilipoid antilochus antilottery antimachinery antimartyr antimatrimonial antimere antimetathetic antimilitarist antimnemonic antimonial antimoniureted antimoralism antimythic antinauseants antineurotoxin antinomianism antiochian antiopiumite antioxygenation antiparabema antiparastatitis antipascha antipathida antipedicular antiperistaltic antipetalous antiphon antiphospholipid antiplague antiplurality antipoetic antipooling antipoverty antipriestcraft antiprojectivity antiprudential antiputrefactive antipyryl antiquatedness antirabies antirationalism antireflection antirent antirheumatic antirrhinum antiscabious antiseborrheic antisensuousness antiseption antisideric antislickens antisoporific antispiritual antistalling antistreptococcal antistrophically antisun antitangent antitetanus antithermic antithrombic antitorpedo antitragic antitropic antituberculotic antityphoid antiuric antivenin antivitalist antiwit antlia anton antonym antri antrorsely antrustion anukabiet anuric anxieties anyhow anywhen aonach aortas aorticus aortomalacia aortostenosis apace apagoge apallic apara apargia apartments apathetic apathy ape apemantus aperiodic aperta apertured apetalose apfia aphanes apharsathacites aphelian aphengoscope aphicidal aphidious aphlogistic aphoria aphorizer aphrizite aphroditidae aphthic aphylactic apian apically apico- apicular apidaecins apinealism apionol apishly aplacad aplanatic aplectrum aplobasalt apluda apneumonous apocalypst apocarpy apochromatism apocrisiarius apocryphon apodeixis apodictive apogaeic apogeic apohyal apolipoprotein apollonic apologia apomecometer apomorphia aponia apophasis apophthegmatical apophysis apoplex aporia aporrhais aposia apostasy apostematous apostoli apostrophal apotelesmatic apothegmatic apothesis apoxesis appallment apparelled apparitor appealig appeared appeasingly appellative appendalgia appendices appendicoenterostomy appendiculariidae apperceive appertinent appetibleness appetizer appladiere applaudingly applejack applewoman applicancy applicator applosion appointe apportionable apposition appraising appreciational apprehendingly apprentice apprize approacher approof appropriativeness approver approximative appulsively apreder april aprobarbital aprons apse apstema apterial apterygotous aptness apulse apyretic aqaris aquabirnavirus aqualung aquarian aquaticus aqueductal aquic aquilaria aquinist aquod araari arabesquerie arabinoadenosine arabinosyl-hydroxyproline arabize araceous arachne arachnitis arachnologist aragallus arakawaite aralkyl-CoA-glycine aramitess aranein aranzada araras araucano arbacia arbela arbitrary arbitress arbored arboricole arborized arbre arbutase arcade arcaism arccosine archaean archaeographical archaeology archaeus archaistic archapostle archbishp archchief archcritic archdeaconess archdevil archdogmatist archearl archegonium archencephalic archer archetype archflamen archgunner archiater archicantor archicyte archie archigony archimedean archin archiplasm archistome architecturalist archival archlecher archmessenger archmurderer archontia archosyrinx archpillar archpractice archprimate archregent archsee archthief archvillainy arcidca arcing arcissistic arcocentrous arctamerican arctics arctogaeal arcturus arcuatus ardea ardently ardor areach areca arecolin aregar arenarious arenicolous areographically areologic areopagite arethuse argala argemone argentate argentinean argentometric arget argillocalcareous argininosuccinate argo argonne argufy argumentive argynnis argyrol arhatship arianistical aridian arietta arilliform arion arist aristocrat aristogenesis aristolochin aristotelic arithmetician arithmomania ark arktisch armadietti armale armamentarium armature armenic armia armillate armisonant armoracia armory armred arnebia arnusian aroint aromatically aromatophore aroused arpen arracach arrah arrangements arrastre arratr arrdillarse arrendation arrestee arretrare arrhenoblastoma arrhythmical arriere-pla arrival arroba arrojadite arrowlet arrssire arryish arsenal arseniasis arsenide arseniureted arsenophen arsenyl arsle arsonist artaba artel arteria arteriarum arteriles arteriofibrosis arteriolith arteriometer arteriorenal arteriostosis arteriovenous artflly arthralgia arthritics arthrobacter arthroclisis arthrodonteae arthrogram arthromere arthrophlogosis arthropodal arthrorisis arthrosporous arthrotropic arthuriana articles articulata articulations artifactitious artificialize artillerist artiphyllous artistically artocarpous arturo arumin aruspex ary aryl aryldialkylphosphatase arytenoidea arzisse asage asaphid asarum asbestoidal ascabart ascaridae ascellus ascender ascertain ascess aschalich ascidian ascidium asclent asclepidoid ascogenous ascomycetous ascorbyl ascriptitii asdic asecia aseismicity asemia aseqibilidad asexual asfrage asgewadert ashamedness asherah ashipboard ashley ashraf asia asiatically asideu asimina asistete askari aslager asmack asniffle asp asparagine-oxo-acid aspartate-ammonia aspatia asperae aspergillaceae asperifoliate asperous asperugo asphaltic asphyctic asphyxied aspidistra aspidospermine aspiratory asplanchnic asporulate asprout asquint assad assamese assassinator assayable assedation assemblatre assentator asserdem assertiveness assertum assessments asset asseveration assibilate assiduity assign assignor assimilator assishness assisted assistor assltism assmere associationalism assoil assort assrbed assrdita' assuade assumedly assumptiousness assurer assyriological astakiwi astatic asteam astelic asteria asterioid astern asterolepis astesie asthenopic asthmogenic astigmatically astilbe astonished astound astraeid astragaloid astrali astray astride astrobiology astrocytomata astrogony astrolithology astromancer astronautics astrophil astrophyton astroviruses astuciously astylosternus aswader aswers asyllabical asymmetrically asynaptic asynechia asystolia atabal atactic atagize ataqe atated atavus ataxiophemia atcakes atecamara atedilvia ateliotic ateloprosopia atera atestigagd athabasca athapascan atheisticalness athenee athericera athermosystaltic atherosclerosis athetosic athletically athodyd athrocyte athrplgy athymia athyroid atialisms atially atik atiseptic atlanta atlanto- atlas atlodidymus atmeal atmocautery atmolyzer atmospherics atokous atomicity atomization atonally atopen atoxyl atrabiliousness atracurium atralis atrament atrcha atresia atriad atriensis atriorum atrisee atrocious atrophia atrophy atropos atrpfagia atsacrifici attacher attacolite attained attar attegater attemperator attendancy attends attenuant atterminement attestive attical attiic attirig attivare attorney attracted attractivity attri attributive attritive atwater atym auberge auchlet audaciousness audient audiometrist auditive auditus augelite augitophyre augmentor augustal auhuhu aulete aulostomatidae aumous auntsary aurantiaceous aureity aureoline aurichalcite auriculare auriculate auriculotemporalis auriform aurinasal auriscope aurochromoderma aurora aurothioglucose aurum auscultoscope auspicious austerely australianize austrasian austrophil autarch autecious autemesia authigene authorise authorization autist autoagglutination autoanalyzer autoassimilation autobiographical autocade autocatalysis autochemical autochthonousness autocoid autoconverter autocratoric autocytotoxin autodifferentiation autoecious autoelevation autofluoroscope autogenetically autograph autoharp autoheterosis autoimmunization autointoxication autolaryngoscope autologist autolyzate automatic automaton automobiles automotive autonomic autonomously autophagi autophon autophyllogeny autoplasty autopoloist autoproteolysis autopsychosis autoreceptors autorotation autoscope autosexing autosomatognosis autostandardization autosuppression autotelic autotomic autotoxin autotrophic autotypography autoxidizability autumnity auxetic auxilin auxoamylase auxofluor auxotox avail aval avaradrano avast avegac avellaneous avenalin avenolith averagely averment averruncate aversive aves aviary aviatrices avicular avidably avidity avigable avignonese avirulent avivement avodire avoiding avouchable avowed avrter avvers awadhi awakenable awane awash aweather awesomely awhet awkwardish awning ax axhead axigli axillar axiobuccogingival axiologically axiomesiocervical axiramificate axletree axofugal axometry axonolipous axoplasm axumite aydar ayhw ayont azacitidine azan azatadine azeotropy azialismi azilut azin azobacter azocoralline azoflavine azole azophen azorian azotemia azotobacter azoxime azramiet azulmic azurmalachite azygography azzerat ae ba^tea baalism baba babbitter babbles babehood babeship babiism babism baboonery babuina babyhd babylonic babysitters bacalao bacca baccate bacchanalism bacchate bacchius bacharelad bachelorwise bachiller bacillariaceae bacillicidal bacillosis backaches backbiter backbreaking backdown backfatter backfold backhad backhooker backlashing backpack backs backside backspacer backstaff backstone backswig backtrack backwardess backwd backyard baconist bacteriaamete bactericidally bacteriocyte bacteriologist bacteriophagy bacterioscopy bacteriotropin bacteroides baculiform bada badarrah badeja badger badia badious badleers badness bae baetylic baffler bafyot bagat bagche baggagemaster bagginess bagles bagpipe bagwig bahan bahmanid baianism bail bailaries bailieship bailpiece bairam baisakh bait bajan bak bakelize bakers bakigs bakrtt bakwiri balacers balaenicipites balai balanced balandrana balanoblennorrhea balanoposthitis balantidiosis balatron balbceadr balbuties balcy balder baldmoney bale balefulness baligstic balistic balkar balladeer balladling ballantine ballav ballerina ballfields ballistics balloonet ballotade ballproof ballyh balminess balneographer balnibarbi balow balsamic balsamo balstrades baluba balustered bamako bambii bamboula ban bananalander banca bandaging bandbox banderole bandie bandlessness bandore bandwagon banewort banged bangled banisher banjuke bankfull bankrupture bannered bannister bansalague banteringly banya baptise baptistries baqer baracle baralipton baratteria barbae barbari barbarically barbarizar barbarsly barbecue barberfish barbier barbitone barbone barcan bard bardie bardolater bareboat barehanded baresma bargaiig bargeer bargoose baring barjt barkevikitic barkpeeler barleycr barmaster barmetrical barnabite barnhard barocyclonometer barometer baroness baronry barotaxy barqe barrack barragon barred barrelmaker barrette barriera barrio barrulet bartend bartholomewtide bartramia barwise baryphonia barytocelestine basalis bascology basehearted basella baseplate bashfl basialveolar basichromatic basidigital basidium basigenous basilateral basilics basilosaurus basing basipetal basiscopic basketball basketwood bason basqued bassanite bassia basstti bastardizzazie bastide bastnasite bataleur batch batement batfowling bathic bathochrome bathophobia bathtb bathybic bathylimnetic bathypelagic batik batismal batocrinidae bator batrachoplasty batta battell batterer batteryman battister battlefields battlestead battue baubling bauera bauta bavary bawd bawtie bayberry bayish bayoneteer bazzite bbligatga bche bdad bdellostomidae bdrateess beached beacon beading beadrow beakerful bealtared beamig beamsman beanfield bear bearbine beardtongue bearishness beas beastliness beate beatification beatus beaumont beautician beautyship beaverkin bebait bebe bebericar bebloom bebrine becalmment becense bechern becivet becky beclomethasone becobweb becomma becramp becrown becurse bedakt bedaze bedchamber bedebt beden bedflower bedieces bedim bedizenment bedless bedouin bedragglement bedriddenness bedrop bedsore bedticking bedur beearn beede beefheaded beefy beeishness beelzebubian beerhouse beers beethovenian beetmister beewise befan beferned befilleted beflannel befluster beforetime befreeze befrocked beg begartered begege beggarer beggary begiet begird beglerbeglic begluc begoniales begrain begroan beguess begun behatted behaviour beheld behest beholding behooving beiahe beingness beiwhe bejig bekilted beknit belftet belaites belatedly belching belebe belemnitic belgian belialic belieffulness believes belion belize bellbind bellerophon bellhp belligerent bellman bellow belltail bellwood bellyland belone belonosphaerite belshazzar beltine beluchi belyingly bemail bemata bemercy bemix bemolt bemuffle benacus benchfellow bend bendroflumethiazide benedict benedight beneficeless beneficiation benetnasch bengali benign benitoite bennettitaceae benshea benthic bentwood benzal benzalhydrazine benzantialdoxime benzdioxtriazine benzil benzobis benzofuroquinoxaline benzolate benzophenol benzopyrylium benzothiofuran benzoxycamphor benztrioxazine beowulf bepat bephrase beplague bepreach beqem berabe berattle berberis bereave bereit beresford bergamo berglet bergy beride berkeleyite berlinize bernardino berniece berossos berrigan berserker berther bertrum berycoidea beryllonate besagne bescent beschriebe bescorn bescurvy beseechingness besetment beshame beshow besie besing besleeve besmearer besmut besom besotting bespeak bespelled besplit besprent bessarabian bestab bestead bestiarian bestore bestrafe bestripe besuit beta beta-glycosidase betadine betangle beted bethel bethumb betis betorcinol betrample betreibt betrousered bett betterness betula betutored betwit bevel beverages bevr bewailing bewdert bewhbar bewilder bewirke bewith bewrayingly beyed bezantee bezoar bfal bfg bght bhaiyachara bhava bhoosa bhutani biacromial bianco biarcuated biatomic bibasic bibionid biblicist biblioclast bibliographize bibliomancy bibliopegistic bibliophily bibliopoly bibliotherapist biborate bicameral bicaudate bichir biciliated biclinium bicondylaris bicorne bicrenate bicuspidate bid bidde bident bidimensional bield biennially biettre bifara bifida biflecnode bifoliolate bifronted bigamistic bigeminal biggen bighorn bignoniad bigte bihai bijou bikig bilaci bilaterality bilch bile biliaris bilify bilingually bilipurpurin bilithon billback billeter billian billingsgate billon billyboy bilobular bilskirnir bimanal bimaxillary bimetallist bimotored binately bindingly binet bingo binocle binomial binoxide bioblast biochemistry biodynamical biogen biogeochemistry biographically biologically biomagnetism biometrically bionomical biophysical bioplast biopsychologist bioscopic biostatistics biotaxy biotripticum bipalmate bipartita bipedal bipetalous bipinnately biplosion biprong biqits biradiate birdbander birdeen birdlike birdwatch birefringent birkeniidae birny birth birthroot bisacromial biscayanism biscuitmaking bisectrix bisext bishari bishopric bisley bismol bismuthous bisphenoid bissext bistered bistratose bisulphate bitable bite bitig bitripartite bitter bittering bittersweet bituberculate bituminous bivalence bivascular bivocalized bixin bizone bjective bjetable bk blabberer blackbard blackboy blackener blackfire blackguardry blackishness blackmailer blackshirted blacktree bladderet blade blady blageries blakeberyed blamelessly blanchard blandiloquence blankard blanketmaking blanky blase blasted blastment blastodisk blastomeric blastophoral blastospheric blasty blathery blattidae blawort blazonry ble bleachfield bleaky bleatingly bleeding blema blencorn blennadenitis blennocystitis blennorrhagia blennothorax blepharelcosis blepharocera blepharomelasma blepharoplegia blepharosynechia blessed blest blgated blids bligate blige bligraf blinded blinding blinkard blintze blissless bliterate blithely blitz blizzardy bloated block blockheaded blockishly blodite blood-group blooded bloodleaf bloodripeness bloodstained bloodthirster bloody bloomfield bloop blossomtime blotting blowball blowing blows blqe blt blubbery bluebell bluebush bluehearts blueprint bluet bluffly blunderbuss blunk bluntness blush bluster blythe bmbs board boardy boast boatbill boatkeeper boatmen boatwright bobbie bobcat bobstay boccarella bocking bodenbenderite bodicemaking boding bodybuilder boebera boerdom bogeymen bogie bogomil bogus bohea boil boilersmith boist bolag boldo boletaceous bolivian bologna boloney bolshoi bolthead boltonia bomarea bombardment bombe bombo bombycilla bonair bonasus bonded bonds boneblack bonelet bonewood boniform bonneter bonnyclabber bonxie booby booger bookboard bookholder bookkeeping bookmaking bookroom bookstand boolean boomerang boondock boor boot boothian bootleg boots boozy boracic borane bordage bordering bordured boree borghalpenny borish bornite boroglycerate bororoan boroughmongering borromean borsht boscage bosker bosomy bosselated bostanji bosun botanize botchedly botflies bothersome bothrops botryllidae botryomycotic bottine bottleman bottoming botulism bouffancy boughless boulangism boulter boundable boundlessness bountith bourbonist bourignian bourtree boutique bovenland bovis bowdichia bowellike boweryish bowknot bowline bowpin bowyer boxful boxwallah boyce boyishly bozemanii brabbler brace brached brachialis brachiocephalicus brachiopoda brachiotomy brachyaxis brachyceral brachydactyly brachygnathia brachyoura brachypterous brachystomous bracing brackets bractea bradawl bradwde bradykinetic bradyphrasia bradyseismic brae braggartry bragite brahmanaspati brahmany brahui braille brainge brainstem brainy braiy braker brambled branchellion branchicolous branchiomerism branchiosaurus branchiura branded brandisite brandywine branle braqiad brasilia brasse brassiere brate brattishing brauronia braveness brawler brawniness brazalete braziery brazs brch breachful breadfruit breadth breakable breakfast breakshugh breastbeam breastmark breastwood breathiness breccia brede breechesless breeds breezily brekkle brendan bretche bretwalda breviary brevilingual brevit brewmaster brian bribemonger brice brickhood bricklining brickyard bridechamber bridelike bridewain bridged bridger bridgtown brief briered brigadier brigantes brigham brightness bril brilliant brimborium brimstone bring brink brised brissotine bristly brith britoness brittling brlad broach broaden broadpiece broadwife broccoli brock brogger broiderer broken brolga bromargyrite bromeikon bromhidrosis bromination bromize bromocresol bromoiodide bromometry bromthymol bronchially bronchioli bronchoadenitis bronchodilators bronchomotor bronchopneumonic bronchospasm bronchotyphus bronteum brontotherium bronzine broodless brookite brooky broomstaff brose brother brotocrystal browache browman browningesque browntail browst brsca brtale brtalizzazie bruang bruckheim bruin brulee brumstane brunetteness brunonism brushes brushlike brusqueness brutalize brutishly bryales bryonia bryozoum bscapersas bscratist bservatis bsess bsiessma bstetric bstiateess bstcls btarate btrsi bttle bubble bubinga buccal buccinator buccolabial bucephalus buchmanism buckboard bucketmaker buckishly buckling buckshot buckwasher bucolicism buddhahood buddle budget buds buerger buffer buffoonery bugaboo buggers bugled bugseed buildress bukidnon bulbil bulbocodium bulbourethralis bulgaric bulimic bulkily bullate bullcomber bullethead bullety bullheaded bullionism bullock bullpoll bullwhacker bullyragger bulwand bumblebee bumclock bummler bumpkinet bun bunda bundook bungee bungmaker bunkerman bunodont bunting buoyance bupleurum burbankian burden burdon bureaux burgensic burgherage burglarize burgul buried burl burliness burnable burniebee burnout burny burrish burry burse burster burushaski buscarle bushelman bushing bushnell bushwoman businesswoman buspirone bustic busybody butabarbital butanone butcherous butlerage butoxide butterbird butterfingers butterlike butterweed buttle buttonhold buttonwood butyl butyraldehyde butyrophenone buxomness buzz buzzsaw bxes bye byfried byline bypasses byrnie byronist byssaceous bystreet bywork bzzrraggie c-acetyltransferase cGMP caale caaries caback cabalisme caballer caba~as cabbie cabeleireirs cabie cabinet cabirean cablead cables caboceer cabree cabs caca cacasia cacciavite caceled cacellett cacfiga cache cachet cachinnatory cacicus cackles cacodaemoniac cacodorous cacoethes cacographical caconym cacophonous cacospermia cacotype cacr cactses cadagver cadaveria cadavre cadcity caddishness cadeced cadelieri caders cadeze cadidati caditre cadlestick cadmium cadrans cadrticamete caducibranchiate caeca caecitis caelometer caerphilly caesarist cafe cafeiic caffe caffeinism caffoline caga cageless caght caglatig cagrej cahita caiaqe caigbal caimakam cainitic cairngorum caissoned cajennense cajlig cajuputol cakes calabari calade calamariaceae calamidad calamistrum calamits calander calappidae calavera calcanei calcaneoscaphoid calcareoargillaceous calcarina calchaquian calcicole calcific calcifica calcigtic calcine calciphile calcispongiae calcium calclably calclatedly calclvel calculate calculatory caldera caledaris calefacient calendar calendula caletre calfski calibanism calibradres calibrator caliburn calicoed califal californium caligrafia caliologist caliphship calisthenics calker callant callianassidae calligrafic callionymidae callipygian callithumpian callose callower calluna calmare calmiar calmisly calomel calorically calorifier calorist calotype calria calrimetr caltta calumniousness calved calvinistical calycanthaceous calyciflorate calycophorae calydon calyptoblastea calyptro camacan camaleic camarer camball cambiamet cambodia cambuca camelidae camellike camelopardus cameograph cameramen camerinidae cami camisado camma cammilla camouflager campaiger campalgia campanini campanulales campa~a campeggi campestris camphene camphoraceous camphr campimetrical campodeiform campshedding campuses camrra camused canada canajong canaliculus canamary canariote canberra cancellated cancerate cancerroot cancrisocial candelilla candidateship candiot candlelighted candlerent candlewright candys canelo canework canichanan caninal canister cankerflower canna canned cannibalean cannily cannonproof canoeiro canonical canonization canorous cantabile cantar cantefable cantharidate cantholysis cantilevered cantle cantoon cantwise canzonet capable capacita' capacitor capcase capellet capernaite capes caphtorim capillariasis capilliform capitaldom capitalization capitative capitli capitoulate capitulum capnoides capote capper caprelline capricciamete capricisly caprifoliaceous caprine caproin caprylone capsid capsula capsulectomy capsulorrhaphy captainship captivatig captor capucine caqets carabieer caracas caractere caragmbas carambola caramiphen carangus carapidae caraunda caravanserai carbamate carbanil carbeen carbi carbizati carbodiimide carbolate carbomethoxy carbonate carboniferous carbonization carbonylic carboxyhemoglobin carboxypeptidase carbrizati carburation carbyl carcel carcharodon carcinogenic carcinomata carcinosis cardecu cardiacea cardialgia cardiasthma cardiemphraxia cardiidae cardinalitial cardiocele cardiogenesis cardiological cardiomotility cardiopathic cardiopulmonary cardiospasm cardiovascular cardmaker cardroom carecloth carefl carelessly caressive carey cargatd cariacine caribbee caricatrist caricology cariere carinatae carioling carissa carking carlina carloading carlyleian carmela carminite carnality carnationed carneol carniform carnivorous carob caroline caroon carotid carouse carpals carpentership carpeters carpetwork carping carpocapsa carpogenic carpology carpophore carposporangial carrageen carrell carriageful carries carrot carrs carse cartage carteolol cartgrafia carthamic cartilagineous cartmacy cartography cartulary carum carval carville caryatidal caryophyllin casa casaligha casasia cascade cascata caseful caseless caseous caseworm cashcuttee cashmere casis casque casse cassetta cassididae cassine cassiopeium cassytha castalio casta~ela castellar castidad castigates castill castles castoridae castrare casts casuariiformes casuistically catabibazon catachrestic cataclysmal catacromyodian catadromous catagstrfe catalase catalessi catalgs catallum cataloguist catalyte catamarenan catapan cataphract cataphysical catapultic cataratta catarrhina catastasis catastrophical catathymic catberry catchig catchpoleship catclaw catechismal catecholamines catedral categorical categries catenary catered caterwauling catglic catharpin cathartides cathedralesque catherine cathetus cathode catholic catholicness catic catkin catoblepas catonic catostomid catripartita cattabu cattish cattlemen caubeen cauda caudation caudocephalad cauldron cauliferous caulite caulosarc cauqui causational causelessly causingness causticize cauter cautioner cavalcade cavall cavass cavemen cavernosi cavia cavilingly cavitary cavum cayapa cayuse cb cbre ccasis ccered cchares cchiglia ccidetale ccidsgdas ccipitally ccktail cclt ccpatial ccr ccrret cdce cdicis cdrre ceagraficamete cealgic ceased cebian cebur cecidology cecity cecum cede cedrin cefaglic cegfir ceile ceiza celarent celebradr celebration celeomorph celestiality celia celibatic celiocolpotomy celiomyomotomy celioscopy cellarer celled celllar cells celluliferous celluloided celotex celtic celtist cembalo cementless cemeteries cenobite cenomanian cenozoology censoriousness census centaurian centena centerboard centerwise centgener centiloquy centipoise centralis centranth centric centrifugal centripetal centroacinar centrolecithal centrosema cents centurial cepacia cephalanthium cephalgia cephaloauricular cephalochordal cephalodiscus cephalology cephalomyitis cephaloplegic cephalosporin cephalothoracopagus cephas cequi cerambycidae ceramographic ceratectomy ceratitis ceratodus ceratophrys ceratopteridaceae ceratothecal cerberic cercidiphyllaceae cercopithecidae cerea cerebellar cerebellospinal cerebralization cerebricity cerebroganglionic cerebroparietal cerebrosensorial cerebrovascular ceremonialize cereus cerianthoid cerine cerithiidae ceroid-lipofuscinosis cerote cerradra certainly certificable certificatory certosino ceruleum cerussite cervicales cerviciplex cervicodynia cervicothoracicum cervoid cesarean cespititous cesrship cessionary cestoda cestrum cetav ceterpieces cetigrade cetological cetorhinoid cetries cevadilla ceylon cfdied cffie cfrmar-se cfse cghs ch chacal chachapuya chadacryst chaenomeles chaetodon chaetophorales chaetosomidae chaffer chaffman chagan chagried chailletiaceae chainman chairlady chairmender chais chakdar chalaza chalcedonian chalcididae chalcographical chalcopyrite chaldean chalicothere chalkboard chalkstone challenge challote chalutz chamad chamaenerion chamaisme chamberlainship chambray chameleon chamis chamomile champagneless champi champis chance chancellorism chancroid chandlering changeability changelessly changuinan channelize chantable chantress chapacura chapeau chapelles chaperonage chaplainship chapped chaptear chara characinoid characteristicness characterologist charadriiformes charca charer chargeling charioted charissa charka charlatanic charleston charmedly charmless charpit charsingha charterless chartres charybdian chasm chasselas chasteness chastity chater chatot chatted chatterer chattingly chauffer chauncey chavante chaviistic chawstick chcas cheaper cheat chebel checkbite checkered checkmate checkrower checkwork cheekbes cheep cheerfulize cheerleaders cheesebrger cheesemongerly cheetah cheilitis cheirography cheirosophy chelate chelidon cheliped cheloniidae chemakuan chemicalize chemicomechanical chemiluminescence chemisette chemoceptor chemoresistance chemotaxis chemurgic chenodiol cheqeras cherimoya chermidae cherrylike cherubimic cheson chessmen chestful chettik chevance chevrea chew cheyenne chiacchiera chiamata chiaroscurist chiasmus chibcha chicaner chichi chickahominy chickenhearted chicklets chico chidden chief chieftai chies chifforobe chiggers chilacavote childe childlessness childship chiliadal chilicothe chillar chillroom chilogrammo chilostomata chimaeroidei chime chimeys chimp china chinaphthol chinche chinesery chinking chinoiserie chintzy chionodoxa chipmunk chiqit chirby chiro chirographic chiromancy chironomid chiropodist chiropteran chirotherium chirpingly chirruper chiselled chitak chitinocalcareous chitter chive chlamydeous chlamydoselachus chleuh chloralformamide chloranemia chlorazide chlorhexidine chlorider chlorinize chlormethane chloroauric chlorococcum chloroformize chloromethane chlorophoenicite chlorophylliferous chloroplastic chlorosis chlorsalol chlrplast choanoflagellida chock choeropsis choicely choirwise chokerman cholalic choleate cholecystitis cholecystolithiasis choledochitis choleic cholepoietic cholerigenous cholestene cholesterolemia choliambic cholochrome cholorrhea chondral chondrilla chondritic chondroclasis chondrodystrophy chondrogeny chondromatosis chondrophyte chondroseptum chondroxiphoid choosableness chophouse chopunnish choraleon chordae chordomesoderm choregy chorepiscopal chorine chorioid chorioptes choristate chorizontic choroidea chorological chorti chott chouser choyroot chrches chrestomathic chrism chrisomloosing christeed christhood christianize christie christmas christology chrlgist chrmsmal chromaphore chromatid chromatogram chromatopathic chromatoplasm chromatype chromidial chromium chromocollography chromogenetic chromolith chromoparous chromophotograph chromoptometer chromospheric chromotypy chronaxy chronist chronogrammatical chronologer chronometrical chronoscopically chroococcoid chrysaline chrysanthous chrysene chrysobalanaceae chrysocracy chrysology chrysopee chrysopidae chrysothrix chtzpah chuckies chuckwalla chugging chumawi chumpivilca chunkiness churchcraft churchiness churchmanly churchway churlish churnstaff chuvash chyli chylocaulous chylopoietic chymification chytridiaceous cia ciarlatai ciboney cicadellidae cicatricule cicci ciceronianism cichoraceous ciconiae cidad ciderkin ciert cigarito cigua ciliated ciliiform cilium cimetidine cimmeria cinchonaceous cinchonization cinclidae cindery cinematograph cinenchymatous cineraria cinereus cinnabaric cinnamol cinnoline cinter cionotomy ciqata circcisi circinus circlati circmferece circuitor circulares circulates circumambiency circumaviate circumcallosal circumclude circumduct circumflex circumfusile circumitineration circumlocutionist circumnavigator circumorbital circumradius circumscript circumspection circumstantiable circumtropical circumventive cire cirrhosis cirripedia cirsocele cisandine cismarine cissoid cisterna cit citator citharexylum citify citizenize citramide citriculturist citronade citrs city cityscape civics civilizee cjgate clabbery clacket cladode cladophora cladoselachidae claimable clairce clairvoyant clamantly clamer clamorist clamshell clangful clank clannishness clapmatch clapwort clarenceuxship clarified clarissa clart clasp classic classicize classifier classy clathrose claudent clausa claustrophobia claval clavecin claviceps clavicula clavierist clavis clavus clayen clayton clckwise cleaer cleaning cleanser clearcole clearinghouses cleat cleavers cleeky cleidocranial cleistogamic cleithrum clemently cleptobiotic clerical cleridae clerkless cleruchial cleuch clgar clich client cliff cliflr cliical climacus climatizadr climatographical climax clinamen cline clinic clinium clinocephalous clinohedral clinopinacoid clint clipei clipsheet cliquy clite clitia clitoris clivis cllar cllq cloacean cloakmaker cloche clockless clocortolone clodhopper clogged clogwood cloisterliness clonal clonorchiasis cloriodid closely closeup clot clothesbrush clothilda clotted cloudcap cloudlike clout cloverleaf clownishness cloysome clragl clsed cltte clubby clubland clubweed clumpy clunist cluricaune clustery clyde clypeastridea clysis cmadreja cmbtta cmejeg cmezar cmiciare cmmad cmmemrate cmmestibili cmpagi cmpedia cmpetete cmpletar cmpra cmprmess cmpters cnemis cnidocell coabound coacher coachmen coaction coadjacent coadjutorship coadmire coadventurer coagitator coagulating coaita coalescency coalitionist coalternation coannihilate coaptation coarsely coassist coastland coatee coattailed coauthorship cob cobaltocyanide cobblerless cobego cobitidae coboundless coburghership cocainism cocash coccid coccidium coccochromatic coccolobis coccule coccygerector coccyodynia cochlear cochleitis cochrane cockaigne cockbird cockernony cocking cockling cockneyese cockroach cocksure cocle coconsciousness cocoroot cocrucify cocygis coddler codelinquency codfish codices codirectional codomestication coeditor coefficiently coelar coelector coelevate coeligenous coelodont coelomic coembedded coemptionator coendidae coengage coenocyte coenosite coenzyme coercement coercively coestate coevally coexistent coextensiveness coffea coffees coffey cofounder cogged cogitabund cogitativeness cognation cognizably cognosce cograil cohabit cohelper coheretic cohibitive cohosh coiler coincide coinclude coinfinity coinmaker cointension coistrel cokeman colander colberter colcine coldness colemouse coleopteroid coleridge colgate colicky colima coliseum collaboration collagenous collards collaterale collaud collectedly collectively collectorship collegian collembolic collet colley colliery collinal collinsia colloblast collock colloid colloq colloquium collum collyba colobium colocynthin colombina colongitude colonitis colonopexy colophane colophony colorably coloratura colorfulness coloring colorman colosseum colostrous colpeo colpoplastic colposcope coltpixie colubrina columbary columbier columbus columnarian columnization colymbus comaker comate combatable comber combinative combines combretaceous combustibility comeback comedones comer cometographer comfortableness comfortroot comicodidactic coming comitatus commandeer commandress commelinaceae commemorize commendam commensalistic comment commenter commerciality comminator commiphora commissary commissively committed committible commode commonalty commonplaceism commonwealth communa commune communicatee communique communitorium commutatively comortgagee compactedness compaginate companionate comparascope compares compartmentalize compassionate compatibly compellation compendiary compensating compete competitively compiled complacently complaintive complect complementation completes complexify complexively complicacy complice complimentariness complotter componendo composed compositional composture compoundedness comprehend comprehensively compressibility compressure compromising compsothlypidae compulsed compunctionary computable computerized comtism conamed concamerated concavation concealer conceitless concelebration concentrativeness conceptaculum conceptualist concerning concertinist concessible concettism conchifera conchological conchuela conciliate concinna conclamation conclusional concoction concord concordist concrescive concretize concubitous concurrent concussional condemnatory condensation condensible condescensive condiment conditionalize condole condonable conducingly conductio conductorless condylar condyloma cone conemaking confabulate confectioner confederatism conferrable confervaceae confessary confessionary confidency confidingly confinable confinity confirmedness confiscate conflagrative conflictory conform conformator confoundingly confrontational confusable confusions congeable congelifraction congeniality congeree conglobation congo congratulations congregationalism congresser congresswomen congruistic conically conidia coniferin coniophora conjective conjoined conjugale conjugateness conjunctionally conjunctly conjury connally connation connected connectively connexivum conniventes connotive conocephalus conolophus conorhinus conquerableness conquistador consanguineous conscientiousness conscriptionist consecute consensus consentience consequency conservandus conservatize conserving considerations consignable consignificator consisted consociation consolato consolidation consonantal consortial conspicuity conspiratory constablewick constantly consternate constitution constitutive constrainingly constrictoris constructing constructor consubstantialism consuetudinal consultant consultive consumes consummatory contabescence contagioned containable contaminate contection contemplable contemplator contemporize contendent contention conterminal contestation contextural continency contingency continualness continuatively continuist contorsive contortionistic contrabandista contract contractibleness contractiveness contradicter contradictoriness contrafagotto contraindication contrapone contraption contraremonstrant contrarotation contrasting contravalence contrecoup contributional contritely controllable controversial controvert contumacity contusive conus convalescence convectional conveniency conventional conventionist convergescence conversational conversibility converter convertor conveyable convictional convincement convivialist convocator convolutive convolvulus convulsionist cooba cookbooks cookies cookware coolheadedness cools cooniness cooperation cooree coothay copaiye coparent copatentee copelatae copepoda copesman copier copist copolymerization coppering coppersmith coppin copresbyter coproducer copromisor coprophilous copse copularium copycat copyrightable coquetry coquitlam coraciiformes coracohumeral coracopectoral coralbush coralligena coralloidal corbeil corbiestep cordage cordeau cordial cordigeri cordoba cordwainery corectome coregency coreign corelysis corer coreveller coriander corindon coriparian corking cormac cornaceae cornbread cornealis corneoscleralis cornerways cornflower corniculer corniplume cornrick cornubianite cornuted corodiastasis corolliferous coronae coronarii coronet coronobasilar coroplastic corporalship corporator corporeous corpsmen corpuscularity corralling correctible correctiveness correlated corresol correspondingly corrigenda corrivalry corroboratorily corrodier corrosivity corruptibility corruptor corseting cortex corticiferous corticoline corticosteroids cortisol corupay corvina corybulbin corydine corymbiated corynocarpaceae coryphene coscinodiscaceae cosegment cosgrove cosily cosmetical cosmically cosmogoner cosmography cosmoplastic cosmopolitical cosmotheism cosovereignty cosse costal costata costicartilage costless costochondralis costomediastinalis costotrachelian costs costusroot cosymmedian cotemporanean cothamore cothy cotland cotraitor cotta cotterite cottonee cottontail cotunnite cotyledonary cotylosacral couchant coueism could couma coumarone councils counseling countdom counteracted counteradvance counterambush counterassertion counteravouch counterblast counterbuilding counterclaimant countercoupe counterdecision counterdike counterearth counterentry counterexplanation counterfeitment counterflux countergauger counterimitate counterinterpretation counterlatration countermand countermigration counternatural counterorator counterpart counterplayer counterpole counterpreparation counterprophet counterquarterly counterreckoning counterresolution counters countersecure counterside counterstain counterstratagem counterswing counterterm countertraction countertruth countervengeance counterwave counterworker countrifiedness countrywoman couper couponed courap cours courteousness courtierism courtney cousiness couter couvade covariation covenantee coveralls coversed covetable covid covolume cowbane cowgate cowhiding cowlick cowpea cowquake cowtongue coxankylometer coxcombically coxofemoral coynye cozening cpacig cpidity cprire crabapple craberry crabstick crackbrained cracking crackpot cradlefellow cradling craftsmen cragex cragwork crake crambe crammer crampingly crandall craniacromial craniectomy craniognomy craniometer craniophore craniostosis crankcase crankous cranreuch crappie crapulousness craspedota crassly cratches craterellus cratometer craven craw crawleyroot crayer craziness crcdilibs cre^pe creaky creaminess creancer create creatinuria creatophagous creature crebrity credenciveness credible creditor credulity creedless creeler creeping cregacier crema crematorial cremsa crenelation crenula creolization creosotic crepitate crepy crescentlike cresorcinol cressida crestless cretaceous cretinic creutzfelt crewellery crgica criaa cribration cricetine cricoarytenoid cricothyroid crier crimeproof criminalistics criminogenesis crimp crinal cringingly crinium crinose criophoros criq crisidades crisped criss cristineaux criterium criticaster criticizingly crl crmeal croaky crocetin crockery crocodiline crocus croissant cromolyn cronk crooked crooknecked crooningly croppy crosier crossbeam crosscurrented crossflow crossite crossopodia crossrail crosstree crotalaria crotaphic crotchety crottels croupade crout crowdedness crowing crownling croydon crrecci crriclm crrzie crsr crte crtisa crucethouse cruciation crucifixion crud cruelness cruise crumblet crummier crumply crunkle crurogenital crushable crustaceal crustate crustless crutter crwded cryingly cryometer cryosel cryptanalyst cryptical cryptocarpic cryptococcus cryptogam cryptoglaux cryptographic cryptolunatic cryptoneurous cryptoprocta cryptoscope cryptovalency crystalliform crystallizability crystallogenic crystalloids crystalwort csat csejs csigied cspic cstat cstmbres ct ctables ctagally ctave cted ctemplar ctemprage ctene ctenoid ctenoplana cterffer cterprpsal ctetedess ctga ctietal ctrabbad ctraespiaje ctrarrevlciaris ctremader ctt cuarenta cubatory cube cubicalness cubist cubitocutaneous cubocuneiform cubomedusae cuckoo cuculidae cuculus cucurbite cuddyhole cueball cufflink cuisine culbertson culicide culinary culmen culottes culprits cultism cultivation culture culturology cum cumar cumbersomeness cumbu cuminic cummins cumulatively cunabular cunctipotent cuneiforme cuneonavicularis cunjevoi cunoniaceous cupeler cupidone cupper cupressus cuproiodargyrite cupstone curableness curate curatolatry curbing curculio curdwort curette curiboca curiology curl curliness curmudgeonly currawang curricularization curryfavel cursively cursorius curtailedly curtate curuba curvacious curver curvilinear curvity cuscuta cushion cushman cuspidal cusser custodier cut cutcher cuticolor cutinization cutleria cutover cutthroat cutup cveablemet cveti cwby cy cyanate cyanformic cyanidrosis cyanobenzene cyanogenic cyanometry cyanopia cyanotype cyathea cyathos cybister cycadofilicale cyclamin cyclarthrsis cyclidal cyclin cyclization cyclodiolefin cyclohexene cycloloma cyclonic cyclope cyclopentylpropionate cycloplegia cyclorrhapha cyclosporinae cyclostomidae cyclothymia cyclpege cyesis cylindered cylindricality cylindroconoidal cylindrosporium cymaphytism cymbalist cymbocephaly cymoidium cymraeg cynareous cynical cynism cynogale cynomoriaceous cynopithecidae cynoxylon cyphonautes cypressed cyprinidae cypriot cypseliform cyrenaic cyriological cyrtopia cystathionine cystenchymatous cystici cystigerous cystocarp cystofibroma cystolithectomy cystoneuralgia cystopus cystoscopic cystoureteritis cytidylyltransferase cytoblastematous cytode cytogenetical cytokinesis cytoma cytopathological cytoplasm cytosporina cytotrophoblast czardas czaristic czechoslovakian ca d'addresser d'ca d'etat d'reille da dabbing dabih dacelo dachte dacryadenitis dacryocystitis dacryolith dacryuria dactyliographer dactylogram dactylopore dactylozooid dadayag dadies daedalian daemonic daffery dafter dagame dagerretypy daggerbush dagherrtip daguerrean dahoman daijo daimler daintiness dairylea daitier dakir daleman dalias dallier dalmatias dalzell damager damascene dambonitol damiana dammed damnation damnonii damp dampishly damselhood danais dancers dandification dandruffy daneweed dangersome daniel dankali danny dantomania danziger daphnioid dappled darbyite dareall darf darii darkener darkling darky darndest darry dartboard dartoid darwinically daser dashing dasnt dasyatis dasypodoid dasyus datch datiere datiscoside dats daubentoniidae daughter daunch daunton daver daviesite dawdlingly dawson dayal daydreaming daylong daytale dazed daari dblar dce dchesse dcklig dctr dd ddity dePrepsiti deaconhood deadborn deadhearted deadlight deadtongue deafforest dealation dealing deamidate dean deanthropomorphization dearsenicator deaspirate deathify deaths deatialize debaix debarration debatefully debaucher debenture debilitated deblateration debord debrief debtorship debus decadal decadently decaf decahydrate decalcomaniac decalvation decanally decantate decapitation decarbonate decarboxylization decarnated decasualization decator decayless deceivability decelerometer decemjugate decemuiri decennia decentralism deceptious decerniture dechlorination decide deciduary decile decimally decims decir decius deckie declarable declaredly declericalize decline declivity decoctum decollated decolorimeter decomposability decompress deconsecrate deconvolve decorationist decorrugative decpage decree decrepitation decrete decrier decubitus decumbently decurring decussated decyne dedecoration dedicative dedition deducibleness dee deem deepening deepsome deerherd deertongue defacingly defamingly defeasibility defeature defectionist defeminize defense defensive deferentectomy deferrer defiance deficient defilement definement definitiones deflagrate deflect deflesh deflorate defog deforciant deformative defortify defreeze defunctionalization degasifier degcims degenerateness degesse degllader degrada degradation degrading degrees deguelia dehe dehonestate dehumanise dehydrate dehydrogenate deicide deifier deindividualize deinosauria deiphobus deistic deject dejeration dekle delano delator delaying delectation delegation deleterious delia deliberativeness delicense deliensis delightfulness delilah delineation deliquesce deliriousness deliveries delmarva delphian delphinium delta-chain deltidium delude delusions demade demagogism demandingly demargarinate deme dementedly demerol demethylation demibastioned demicannon demicuirass demidoctor demigentleman demihigh demilegato demimark deminude demipauldron demipriest demirobe demisecond demissness demitranslucence demivambrace demobilize democratize demographer demolition demoniacal demonism demonolatrous demonry demonstrater demophil demos demountable demulsion demurred demchst denationalization denazify dendritical dendrochirota dendroctonus dendroid dendrology denegation denierage denitrificans denizenship denominationalist denotatively denouncer denshire dent dentalization dentation dentel denticola dentigerous dentinal dentiroster dentition dentural denuder denunciation deoccidentalize deontology deorsumvergence deoxidization deoxyribose deparliament departmentally depasturable depediete dependence-independence deperition dephlegmation dephysicalize depigmentate deplasmolysis deplorable deployment depolarize depopulation depose depository depravedly deprecatorily depreciatoriness depressed depressiveness deprivative depsitari depuration deputatively deracialize derange deray deregulationize dereligionize derides derivability derivatist derma dermapteran dermatica dermatodynia dermatologist dermatomyoma dermatophobia dermatopnagic dermatoskeleton dermestes dermochelys dermoid dermoossification dermoreaction dermutation derogatory derricking derstad derust desactivad desampar desaturases descasaci descendant descendibility descets describably descriptionless descry deseasonalize desemple desertedly desertlessly deserveless desgarra desiccate desiderate desigat designation designfully desiliconization desipient desireful desistance deslate desmatippus desmitis desmognathae desmoncus desmopyknosis desmotropism desonation desoxycorticosterone despairingness desperadoism despilfarradr despistad despond despotic despumate dessei destain destie destitute destricig destroying destructive desubstantiate desulphuration desvetaja desynchronize detacher detain detax detecting detente deteriorated determent determinately determiner detersion detestable dethronable detlich detoxicator detractiveness detribalization detroit detune deuteranomal deuterocasease deuteromorphic deuteroplasm deuterovitellose deutonymph devachan devast devata development develped deviate devices deviling devilry devirgination devisor devoir devonite devoter devourable devoutly dewar dewdrop dewlapped dexamethasone dexterity dextran dextroamphetamine dextrogyratory dextrorse dextrotropous dezaley dg dhabb dharmakaya dhobi dhyal diabeticus diaboleptic diabolize diacetic diacid diaconate diacromyodi diadelphic diadochokinesia diagenetic diagnosis diagonally diagraphic diakinesis dialectician dialing diallelus dialogite dialyse dialyzate diamantoid diametrically diamond diana dianilide dianthus diapensiaceous diaphanometry diaphonical diaphragmatic diaplexal diapyesis diarian diarthric diascopy diaspore diastema diastrophy diathermize diatomacean diatomite diatropic diazeuxis diazohydroxide diazotizable dibbler dibrachius dibstone dicarbonic dicatalectic dicentrine dicese dichlamydeous dichondra dichotomist dichroic dichromism diciassettesim dickeybird diclofenac dicotyledon dicranterian dicruridae dictate dictatorialism dictatrs dictionaries dictyogen dictyosiphonaceae dict dicyclist did didactics didder didelphis didle didunculidae didymous diectasis dielich diervilla diesis dieted diethylamide dietitian dietz difda diffeomorphic differentialize differing difficult diffinity diffractiveness diffused diffusion dificltad digamist digenea digestant digestional dight digitalize digities digitonin digits diglyph dignity digrediency digt dihexagonal dihydrochloride dihydroxyacetone diipolia dikaryophytic dikkop dilatability dilate dilatometric dilemite dilettanti diligently dilligrout dilogarithm diluteness diluvialist dimastigate dimensionally dimercurion dimetapp dimeticare dimiire diminuendo dimissie dimmer dimorphism dimre dinaric dinette dinginess dinheiro dinitrophenol dinnertime dinoflagellate dinornithidae dinotheriidae diocletian dioeciopolygamous diogenite dionymal diopsis dioptric diorite diose diota dipala dipetalous diphenylchloroarsine diphospho-D-mannose diphtherian diphthongalize diphylla dipicrylamine diplarthrism diplex diplocephalous diplodia diplograph diploidy diplomatics diplophase diplopterous diplostemony dipneusti dipolar diprimary dipsaceous dipstick dipterocarpaceous diptote dirac directial directives directors direkt dirgeman dirndl disabilities disaccommodate disacknowledgement disadvantages disaffection disagglomeration disagreeing disally disanimation disappearance disappointingly disapprovable disarmed disasinize disastr disavowal disbark disbosom disburser discanter discastle discernible discerptible discharity discinoid disciplinarily disclaim disclosed discobolus discographical discoloration discomedusoid discommendable discommons discomycete disconcertingness disconjure disconsideration discontentful discontinued disconvenient discoplasm discorporate discourage discoursive discoverable discrdate discreetness discreteness discriminal discriminative disculpation discursus discussion disdain disdiaclastic diseaseful diselectrify disembellish disembowelled disempower disenchantment disenfranchisement disenshroud disenthrallment disentrancement disestablish disfavor disfigurement disfranchiser disgenius disgracefl disgregate disguisedness disgustful dishallow disheart disher dishevelled dishmonger dishonourable dishwashing disilicane disillusionment disimprove disincrustant disinfest disinherit disintegrative disinteresting disjasked disjunct diskless dislike dislocable dislodgement dismality dismask dismember dismissable dismount disney disobligation disomatous disorderedness disorganize disozonize disparateness dispatch dispelling dispensate dispensed dispericraniate dispersement dispersoidological dispireme displaceability displayer displeasurably disponent disposableness dispositioned dispraise disprize disproportionality disproven dispulp disputatiously disqualification disquietingly disquisitive disregard disrelish disrespecter disroot disrupting dissatisfactoriness dissecta disseizee disseminata dissensualize dissentious dissertative disshadow dissimilarity dissimulator dissipativity dissociate dissoluteness dissolvent dissoul dissuited dissympathize distance distastefully distemperer distent distillable distinct distinguish distiqe distomidae distortive distractingly distrainment distrbare distrett distributedly distributiveness distrustingly disturbs disulphide disunionism disvalue disyoke ditchside ditheistical dithionous ditremid ditroite dittography diuretics diva divaricating diverge diverseness diversiform divert diverticulitis divertive dividable dividingly divinatory divinityship divisionary divisural divulgater divus dixenite dizygotic djasakid dkelste dlerex dlre dmai dmiatly doable dobby docetically docibleness dockage dockman doctoral doctorize doctrinalist doctrinist documentize doddle dodecahedron dodecarchy dodecuplet dodkin dodrans doeth dogbite dogface doggerelism doggo dogie dogmaticalness dogra dogtrick doings dolabriform doleful dolesome dolichocephalous dolichopodous dolichuric dollarbird dollhouse dollyman dolomize dolorous doltish dombeya domesticality domic dominancy domineerer dominie domitian donaldson donatism dondia donjon donnered donorship doodle doolee doomful doorcheek doormaid doorstead dopa dopey dorado doreen doris dormered dornic dorsal dorsel dorsiduct dorsimeson dorsocaudal dorsolateralis dorsoradial dorsumbonal dosadh dosimetry dossier dotate dothiorella dotriacontane dotty doublehandedly doubles doubtable doubtless douche doughface doughtily dourine dove dover dowagerism doweling dowieite downbeat downdale downfolded downhill downline downright downsinking downstream downtrampling downweigh doxantha doxycycline doziness dr drabness draconian dracontic draft draftsmanship drager draggletailedly dragomanate dragonish dragoonade drainable drains dramatic dramatize drammer drapeable drastic draughtmanship draw-alpha-man drawboy drawgear drawlatch drawout drawtongs drcheiader dreaded dreadnought dreamig dreamlike dreamworld dredge dreggy drench drepanium dressig dressmaking drga drias drierman driftless drig drillmaster drinking drippy drive driverless drizzle drmat droddum droll dromaeus dromograph dronepipe droop dropflower dropped dropsicalness droseraceous drossiness drovy drpst drtdrbe drudgism druggister druidical drumfish drumming drunkenly drupel druxiness drycoal dryly dryopithecine drhe dtat duadic dualization dubbah dubiously dubius ducato duckblind ducking ducky ductilimeter ducula dudishness dueling duennaship duffy duggler dukeling dulcet dulcinea dullardness dullpate dumaist dumbness dummy dump dumple dunbird duncishly dunfish dunger dunkard dunnish duodecahedron duodena duodenitis duodenopancreatectomy duologue duotype duplet duplicature dupondius durain durant durbachite durian durometer durward dusken dust dustless dusun dutiability duumvir dves dwarfism dwelling dwtw dyarchy dyes dykehopper dynamically dynamitically dynamogenic dynamomorphic dynastid dyophysitical dysacousia dyschiria dyscrystalline dysesthesia dysgenics dyslexia dysmenorrhoea dysmotility dysoxidize dysphasia dysplasia dysraphicus dysteleological dystrophia dzeren dsivlte eg eagle earbob eared earful earless earlship earnestness earreach earsightedly earthen earthless earthmove earthquaking earthwall earwig easel east easternmost easy eate eave eavesdrpper ebar ebenaceous ebionitic ebonize ebullience eburated eburnisans ecarar ecatad eccaleobion eccetrica ecchymosis ecclesiasticale ecclesiography eccrine ecdysis ecessarily ech echeneididae echinacea echinochrome echinoid echinospermum echinuliform echizar echoist eci ecklein eclectic eclgic ecliptically ecmic ecmpass econometrica economite ecostate ecphoria ecrlgi ecstatic ectasia ecthyma ectocarpous ectocuniform ectoethmoid ectomorph ectopia ectoproctous ectosphenoid ectozoa ectromelia ecuador ecverb edaciously edcad edcazie edel edenization edeoscopy edged edgeways edibleness edificator edifying editing editre edmmagemet edriasteroidea educabilia education educators edulcorate edwardsia eedless eelery eelware eeste eferm effecter effectual effeminately effervescency effettareverb efficiecy effigiation effluence effodient effraction effuse efoliolate eftsoons egarsi egatively egci egcme egence eggcupful egglise egierde egista egjacler eglabre eglefis eglische egocerus egomania egotistical egregiously egsta egtiated egurgitate egyptologist ehlers ehuawa eichhornia eidetic eidouranion eifach eigenspace eigetmlich eighteenmo eightling eiheimisch eikonogen eimache eiraste eischlage eisner eitache eiwechs ejaclate ejaculator ejecti ejicient ekebergite ekrphilie elPr elabrates elaeis elaeoptene elaioplast elaphebolion elapidae elargemet elastase elasticus elastose elaterin elatrometer elbowroom elderbrotherly elderwood eleanor electi electivity electralize electrician electrify electroamalgamation electrobioscopy electrocatalytic electrochronographic electrocutional electrodesiccate electrodynamics electroengraving electrogalvanize electroharmonic electrokinetics electrolytes electromagnetical electromerism electromotion electronervous electroosmotic electrophoretic electrophysiology electropotential electroscission electrostenolysis electrotaxis electrothanasia electrothermics electrotropic electroviscous elegance elegiambus elektrisch elementarily elenchic eleomargaric elephantic elephat eleutherios eleutherozoa elevational eleven elfhood elfship elias elide elimiate eliminator elision elk elkwood ellasar ellipses elliptical ellsworth elocution elohimic elongation eloquently elsewhen eluate eluding elutriation elvet elysium elytropolypus elzevirian email emanativ emancipatory emarginate ematite emballonurine embarazsa embarking embarrassingly embattlement embelia embezzle embira emblema emblemize emboldener embolite emboly embosture embowment embracingly embree embrocate embryectomy embryographer embryon embryophagous embryotomy embusk emendandum emerged emeriti emesidae emication emigrator eminentia emissions emmanuel emmergoose emollient emotionalist emotive empanelment emparchment empeirema empfage emphatically empididae empiricist emplastration employee emplyee empower emprosthotonos emption empyesis emulable emulous emulsion emydinae enactable enaliornis enameled enamorato enanthesis enantiomorphy enarch enbrave encapsulate encashable encelia encephalitis encephalomalacia encephalon encephaloscope enchalice enchase enchodus enchytraeidae encist encloister encoding encomiast encompasses encountered encradle encrinital encroachment encumberingly encyclopedia encyrtid endamage endangered endarteritis endearing endellionite endep endgate endlichite endobiotic endocardium endocervical endocoeliac endocrinae endocrinopathy endodermal endofaradism endogenetic endokaryogamy endomastoiditis endomorph endonuclear endoperidium endophthalmitis endoplasmic endopoditic endopterygotous endorsee endoscopes endoskeleton endospore-forming endostitis endothecate endothelioma endothoracica endotys endromididae endurance endymion energeia energid enervation enfatico enfield enfoil enforcement enfranchisement engager engastrimyth enghosted enginery englander englishism englory engrace engrainedly engraphy engrieve engulf enhancer enhearten enhydrinae enicuridae enigmatology enjoinder enjoyment enlard enlarging enlightenedly enlistment enmass enneadic enneastyle ennobling enol enophthalmus enough enrage enravishment enrichment enrolled ensaint enseat enshawl ensigncy ensisternum ensnaring enstar ensuant ensweep entails entangler entelodon enteradenographic enterer entermete enterocleisis enterocyst enterohemorrhage enterolobium enteroparalysis enteropneusta enterostenosis enterpriseless entertainingness enthralldom enthusiasm entice entincture entitlement entocoelic entocyst entomb entomologically entomophthoraceae entomotomy entophytous entoptic entosphenal entozoa entrail entrancingly entreatment entrepreneurship entrusted enucleation enunciate envapor envelops envious environmentally envying enwrap enzymes eocarboniferous eonism eosinate eozoic epagoge epanaleptic epanthous epaulement epeiric epencephalon epepophysial epharmonic ephedrine ephemerida ephesine ephor ephraimitish ephydridae epiblastema epically epicarides epicenter epichirema epicleidian epicoeliac epicoracohumeral epicranialis epicurish epicystotomy epidemics epidendron epidermidalization epidermose epididymis epidotiferous epigastral epigean epiglottal epigonation epigrammatic epigraphically epihydrinic epilatory epileptoid epilogistic epimerase epimysium epineural epipaleolithic epiphegus epiphylline epiphytal epiplanktonic epiploic epipodium epirhizous episclera episcopalianize episcotister episkeletal epispadiac epistasis epistemophilia epistler epistolization epistroma episynthetic epitaphless epithalamion epithelial epitheliomatous epithesis epithymetical epitomize epitrite epitympanic epizoal epochal eponymism epopoeist epoxygenase epsomite epuloid eqiligbri eqivc equalist equals equationally equestrian equiarticulate equicrural equidistantly equiglacial equilibria equilobate equine equinumerally equipartition equipollently equipped equiradical equison equitant equivalency equivocacy equivoque era eradicative erase erastianize erbat erect erectness eremital eremopteris erethism erfrder ergastoplasmic ergatogynous ergogram ergonovine ergoted ergotoxine erian ericetum eridanid eriglossate eriocaulaceae eriophyes eritis erlabe erme ermgliche erodium erosional erotically erotopath errable errata erreiche erroneousness erschaffe erstat erteile erucic eruditely eruption ervenholder erwarted erwrme erysipelatous erythematosus erythremomelalgia erythritol erythroclastic erythrodegenerative erythrolein erythronium erythroplasia erythrosin erz es: esca escalator escalop escapee escarcha escchar eschara escheatable eschscholtzia escobilla escr escropulo escutcheoned esercitare eshin eskimo esmeraldite esonarthex esophagitis esophagoplasty esophagotomy esoterics espadas espave esperantido espias espino esponton esps esquireship essayist essen essentia essetially essorant establishig estacial estallar estate estdiar estemprae esterellite esterling estheria esthesiometer estibrd estimatingly estoc estpid estrahs estrazie estrella estrogens estuary et etble ete eternalization etfehre ethanal ethanolysis etheostoma ethereally etherin ethicalism ethicophysical ethionamide ethmoidales ethmopalatine ethnarch ethnobiology ethnogeny ethnography ethnos ethonomics ethylamine ethylidene etidocaine etiologue etiqetas etrace etre etretinate etryway ettle etwrk etymologicon etzartig eubacteriales eucalyptic eucharistic euchological euchromosome eucommia eucrasy eudaemonia eudaimonia eudiometric euergetes eugenie euglenidae euhemerism eulamellibranch eulogious eulogy eumeristic eumorphous eunomy euonymin eupanorthus eupepticism euphemist euphonetics euphonize euphory euphuistical euploid euproctis eurasian eurite europeanization euryalida eurygaean eurypelma eurypygae eurythmy euskaric eusthenopteron eutaxy euthenics euthytatic eutychianism evacuate evadne evaluate evanescency evangelicalism evangelistarion evaniidae evaporate evasible eveeadamete evelpe evenhandedness event eventognathous evenworthy everett everlasting evert everybody everytime evetide evidences evil evilsayer eviration evitare evocatory evolutionary evolver evulsion ewing exacerbated exaction exaggerated exagitation exalted examinant examine examples exaration exarteritis exaspidean excamber excavation exceeded excellency excentricity exceptionalness excerpt excessman exchanges excipuliform excitability excited excitomotor exclaiming exclude exclusive excogitative excoriate excrementitiousness excreted excruciate exculpation excursionist excurved excusefully excystment execrative executer executiveship exedra exegre exemplificative exencephalic exercise exercitor exertionless exflect exhalant exhauster exhaustlessness exhibitable exhibitional exhibitorship exhilarator exhortative exhrtati exhumator exigecy exigible exilarchate eximiousness existentialism exists exoascaceae exocarp exocoelic exocyclica exodromy exogastritis exogyra exonarthex exophagous exopodite exorbitancy exorcisory exormia exospore exostracize exothermic exotospore expander expansion expansure expectable expectig expectrate expeditate expeditiously expend expenseful expergefaction experientialism experimentative expert expiation expirant expiringly explaining explanatory explicableness explodable exploitative exploratory explosionist exponentiation exposedness expositorial expostulatively express expression expressis exprimable exprted expuition expungement exquisiteness exsanguinous exsequatur exsiccation exsuction extemporally extemporize extense extensive extentabs exterioration exterminatory externality externize exterritorialize extinguishable extirpation extollation extorter extrabold extracapsularia extraclaustral extracosmical extraction extracystic extradural extraforaneous extralinguistic extrametaphysical extramurally extranuclear extraovular extraperiosteal extrapolate extrared extrascriptural extraspinal extratabular extraterritoriality extratympanic extravasate extra~ extremes extricably extroitive extrovertish extund exudative exultantly exundation exzetrisch eyeblink eyedrop eyelash eyeline eyeserver eyestrain eying ezimaticamete ezymlgy fa faatics fabbricati fabiform fablemongering fablsess fabricar fabricatr fabronia faburden facciata faced faceplate facetiation facezia faciation facilidad facilitati faciliteg faciobrachial facks faclty factelle factional factish facto factorial factr factrix factuality facultative faddiness fadedness fadingness faecaluria fafarradas fagara faggot fagus fahrt faille faineance faintful faints fairfieldite fairlead fairwater fairyology faithful faits fala falcade falcidian falconbill falconoid faldstool fallace fallen falling fallow false falseness falsificate faltar falx famelessness familiarize familir fams fanaticism fancifulness fanega fang fangy fanner fantasie fantasticalness fantoccini far faradocontractility farbereich farcically farctate faretra farie farkas farmer's farming farnesal farnsworth farreation farseeingness farthing fasciated fascicularly fasciitis fascine fasciole fascis fashery fashionize fassgsls fastest fastigated fastingly fat-soluble fatalistically fatback fatheadedness fatherless fathomage fatigable fatil fatsia fattiness fatuity fauchard faulkner faulting faunated faunus fauve faveolus favls favoredly favose favre fawn fay fazedas fcaccie fd feaberry fearful fearsome feasten feather-veined featheredged featherlet featherweed featous features febricula febronian fecha feckless fecundation fedele federalization fedia feebleheartedly feedable feeds feeless feeney feg feign feint feldman felicide felid felinophobe fellata fellic felloe fellsman feloniously felsitic feltlike felwort femalize feminacy femininae feministics femoral femororotulian fenceful fenchone fendiline fenestrate fenitrothion fenny fenter feoffee ferahan fercisly ferganite ferinely fermat fermentativeness fermery fernandinite fernless ferociously ferrated ferreira ferri- ferricyanides ferriprussiate ferroalloy ferrocyanate ferrohydrocyanic ferrophosphorus ferrotitanium ferruginean ferryhouse fertileness fertilized fervanite fervidor fescue festeja festinance festivally festoon fetalism fetial fetish fetlocked fetoproteins fetterless fetuses feudalizable feuille fevercup feverroot fewness ffal ffered ffeses fficemate fficially ffiziell ffshre fgge fg fiacre fianna fibbing fiberoptic fibreoptic fibrillate fibrillogenesis fibrino- fibrinogenopenia fibrinoplastin fibroadenoma fibrocartilaginea fibrocrystalline fibrofatty fibroids fibrolitic fibromodulin fibromyxoma fibroplastic fibrose fibrotic fibulae ficary ficial ficoidaceae fictileness fictionization ficula fidciari fiddler fideicommission fidele fidge fidicinales fiebrig fieldball fieldward fiendishly fierasferidae fies fifteen fiftyfold figerail fighteress figlike figs figurate figureheadless figurist fila filamented filander filariform filch filemot filially filibusterous filicinean filiformes filioque filite fillet fillipeen filme filmize filopodia filter: filthily filverb fimbricated fimbristylis finale financier findability finebent finesse fingall fingered fingerling fingerstall finialed finickingness finished finjan finned finochio fique firebird firebreak firedrake fireguard firemaster firesafe firestopping fireworky firmar firoloida firstling fiscalization fish fishbolt fisherfolk fishes fishhouse fishling fishpound fishworm fissare fissidentaceous fissipalmation fissipedal fissura fissures fistical fistula fistulatous fisty fitchew fitroot fitting fitz five-leafed fives fixation fixedly fixtres fizzy fktiiere flabellarium flaccidity flacket flagelar flagellariaceae flagellator flagfall flagitious flagon flagroot flaithship flakiness flambeaux flameflower flamer flaminica flamy flange flannel flap flapperish flareups flashes flashover flat flatfishes flatness flatterer flatulent flatworm flautino flavescens flavine flavol flavorings flavum flawy flaxtail flcr fleabite flecha flecks fledgling fleechment fleetful fleming fleshbrush fleshless fletcher flew flexibility flexneri flexure flfillmet flgzeg flickery flighter flimflammery flindermouse flinthearted flioma flipper flirtatiously flisky flittern flle floater floatsman flocculant flocculonodular flockowner floggable floodboard floodlit floor floorwalker floppiness floran florescence floricmous floridian florigenic floripondio floroscope flosculous flotage flounder flourlike flowage flowerer flowerpecker flowmetry flres flub fluctuability flue fluentness flugelman fluidic fluidly flukeless flumerin flunarizine flunkydom fluoborate fluocinonide fluorene fluorescens fluorides fluormeter fluoroform fluoroquinolone fluosilicic flupentixol fluroxene flushes flusteration fluted flutterable fluvial fluviology fluxible fluxmeter flyaway flyeater flyman flytrap foal foaming focally focusable fodderless foeless foetidus fogeater foghorn fogscoffer foiling foisty foldboat folds foliage folic foliobranchiate folium folkloristic folkvang follicular folliculose follower fomalhaut fondation fondu fontal fontinal fooder fooled foolishly foosterer footballist footeite foothill footlight footmanship footprint footsore footwall foppery foralite foraminiferan foraminulum forbear forbid forbit forced forcer forcipated fordays foreaccounting foreannounce forebear foreboder forebridge forecastleman foreclose forecontrive foreday foredesignment foredone forefelt foregallery foregoer forehand foreheater foreignership foreinstruct foreknower forelive foremark foremilk forenote foreorder forepayment forepossessed foreprovision forereckon forerun foreschooling foresense foreshift foreshower foresing forespencer forestate forestful forestomach foretack forethought foretop forevermore forewarningly forewonted forfars forficiform forgeability forgetfully forgivable forgo forint forkedly forktail formable formalin formalness formate-NADP formatting formene formican formicative formidability formless formosa formularies formulations formy formylmethanofuran fornent fornicis forride forslow forswornness forthbringer forthink fortieth fortis fortuitism fortuneless forwander forweend fossa fossicker fossilism fossilology fossulet fosterling fougade fouling foundation founderous fount founttain fourchee fourieristic foursquare fourthly foveiform fowler foxberry foxhound foxtongue fra frache fracticipita fractionation fractostratus fracturing fragilely fragmental fragmet fraid frakiert frame framework franchisal francisco francophile frangipanni frankalmoign frankheartedly franklinian frantic frase fratcheous fraterel fraternise fratricidal fraudproof fraxetin fraze frbas frder freakishness frech frecklish fredericton free-milling freed freehearted freeloving freemasonry freestanding freewheel freezingly freig freischaffed fremitus frenchify frenchwise frenular freqeted frequenter freshe freshmanship freste frett fretwise frevlerisch frget frgive fria friary frication frictionless friedly friendlike friesian friggle frighteningly frigidity frigostable friller fringelet fringilloid frisian frisolee frithstool fritz frixion frizzly frmaldeghyde frmm froebelist froggery froglike froise frolicsomely frondesce frons frontalium frontignan fronto-orbital frontolysis frontoparietal frontpiece frost-blite frostily frostwort frothy froward frowny frowzly frrier frta frther frubiase fructiferously fructofuranose fructosyl frue frugivorous fruiteress fruitist fruitwise frumpily frustrated frustulose frward frhest ftage ftiction fttti fuchs' fucinita fucosyl fudger fueller fugax fugleman fulah fulfilling fulgora fulgurating fuliginously fuller fullmouth fulminancy fulminous fulvescent fumagillin fumaroid fume fumigate fumitez funambulatory functional functioning fundamentalis fundholder fundoscopy funebrial fungales fungic fungistat fungology funiculate funje funnelform funnyman furanoid furcal furcula furfuraldehyde furfurylidene furiosity furlong furnariidae furnishment furole furrily fursultiamin furtive fury fusarial fuscohyaline fushi fusiformis fusional fussbudget fusteric fustilugs futhorc futural futwa fyke fft g-trice gaar gabber gabbroitic gabexate gablatores gabriel gadagi gaddingly gadgety gadodiamide gadrati gadwall gaertnerian gaffes gageable gaggle gah gai gain gainful gainsayer gairfish gaiting galactan galactobolic galactolipin galactophagist galactopoietic galactose galactosyl galagala galanthus galatea galaxias galbulinae galee galena galeodidae galerum galibi galinsoga gall gallantness gallbush gallerian galley galliambus gallicize galligaskin gallinazo gallirallus galloflavine gallopade gallotannic gallpat gallweed galop galtonian galvaisme galvanism galvanofaradization galvanomagnetism galvanoplastics galvanothermometer galwegian gamaliel gamberi gambist gambogic gamecock gamelion gamestress gametogenesis gametophyll gaming gamma-cystathionase gamma-linolenic gammaherpesvirinae gammerstang gamodesmy gamopetalous gamotropism ganderess gandurah gange ganglial ganglioblast ganglionares ganglionic gangliosus gangrenosum ganister ganodonta ganosis gantries gaonate gapingstock garages garavance garbill garcia gardeed gardenhood gardenwise gardnerella garganey gargling garibaldi garlandwise garments garnetiferous garnishable garra garrot garry garter garvey gasconism gashes gasify gaslit gasometric gaspiness gast gasteropod gasterotrichan gastraeal gastrectasis gastriloquial gastritic gastroamorphus gastrochaena gastrocolostomy gastrodisc gastroenteric gastroenteroptosis gastrogenital gastrohysteropexy gastrokinesograph gastrologist gastromyth gastronomy gastroparietal gastrophrenicum gastropodous gastrorrhaphy gastrospasm gastrostomus gastrotoxic gastrozooid gatch gatekeeper gateway gathering gatt gaucho gauffered gauleiter gaultherin gauntry gausterer gave gavelock gavitas gawkishly gayer gaypoo gazee gazetteer ga~ir gddess gdliers geadephagous gearing geaster gebildet gebstet geckotid gedder gedrite geebong geelgie geerah geerality geeralizig geerally geeratial geeratrix geersly geezer gefesselt geger gegraphy geheimrat gehrt geira geissolomataceous geitonogamous gekkones gelandejump gelatigenous gelatinigerous gelatinosa gelbe gelechiidae gelidium gelong gelsamete gem gemei gemetry geminiform gemma gemmification gemmoid gemsbuck gena gender genealogizer genera generalis generalization generate generator generous genesic genethlialogic genetmoil genevois genicularis genii genioplasty genitalis genitor genoblastic genonema genoveva genteelly gentianin gentilic gentiopikrin gentleman gentlemouthed gentman genuflection genyantrum geobios geocerite geocronite geodetic geodynamical geogeny geogonic geography geologically geomaly geometric geometroid geomorphy geoparallelotropic geophilous geopolar geopositive georgiana geoside geotactic geothermal geotropic gephyrin gerah geranomorph gerated gerbille gerecialmete gerhard gerisser germaneness germanish germanness germans germigenous germination germlike gerocomical gerontine gerontophobia gerrier gersum gervao gesder geschlechtlich geschftig gesichtsls gesnerian gestagenic gestationis gestening gesticulatively gestureless gethsemane getimet getsul gewahlt gewgawry gex gezwge gh ghastliness ghee ghettizati ghiacciat ghl ghostily ghostmonger ghoulishness giadste giantkind giarra gibberella gibblegabbler gibbus giblet gicatre giddiness giebra giffgaff gifts gigantean giganto- gigantosaurus gigaverb giggish gigill gigmanity gilaki gildable giliak gillhooter gillyflower gilttail gimbarde gimleteyed gimping gingerline gingerwort gingivalis gingivolinguoaxial ginglymoidal ginned ginward gipsy girali girata girdler girkin girling girondism girtline gist gith gittith givers glcklicher glabellum glaces glacier glaciometer gladen gladiatorum gladless gladys glair glamor gland glandless glandulifera glanular glariness glasig glasses glasslike glassweed glauber's glaucochroite glauconitic glaucously glazen glbal gleamingly glebe gleeful gleet gleitet glent gliacyte gliddery gliest glimmery gliomatosis glires glissonitis glittering gloating globeholder globose globously globulicidal globulolysis glochidia gloeosporiose glomera glomerulitis glomonephritis gloomingly glorifiable gloryful glossarial glossed glossist glossodontotropism glossohyal glossologist glossopharyngea glossopode glossotomy glottidis glottology glover's glowing glpear glucan glucine glucocorticoid glucoinvertase gluconate glucosaminidase glucosephosphate glucosinolates glucosyltransferases glue gluish glumiflorae glunch glutamate-cysteine glutamine-pyruvate glutarylamidocephalosporanic glutelin gluteus glutinousness gluttonism glycal glyceridases glycerizin glycerols glycerulose glycine-rich glycocholate glycogen-synthase-d glycoglycinuria glycoleucine glycolylurea glycopeptides glycosaemia glycosides glycosylation glycuronuria glycyrrhizin glyoxyldiureide glyptical glyptological gmelina gnarly gnathidium gnathocephalus gnathonize gnathostomata gnatter gneissitic gnomed gnomology gnosia gnostology goadster goalless goatbrush goatlike goatsucker gobbet gobia gobinist goblinish gobylike goddessship godful godlily godpapa godwin goethian gog gogo goitrogen gold-myokymia golden-eye goldenmouthed goldfinny goldish goldspink goldylocks golfing gollar gomashta gomlah gomuti gonadorelin gonaduct gonapophysial gondolet gonesome gongoristic goniatitidae gonidiose goniodorididae goniopholis gonnardite gonocheme gonococcoid gonophoric gonosome gonozooid gonytheca goodeniaceous goodly goodwilly goofer goolde goosebone goosehouse goosish goramy gorcrow gordunite gorgedly gorgon gorgonian gorillaship gorlois gorraf gory gosmore gosport gossipdom gossipy gotha gothish gottron's goulash gourdiness gournet goutwort governessdom governmentish gowked goyim gra^ce grabbler gracefulness gracileness graculus gradationately gradellemet gradi gradiometric gradualist graduating graffer grafted grailing graining graisse grallic gram-negative gramineae graminoid grammatical grammatite gramophonist granary granddad grandfatherhood grandiose grandmother grandparental grange granins granitite grannybush granophyric grantia granulated granuliferous granuloblastosis granulomatosis granulose grape grapery graphanesthesia graphik graphitization graphomania graphorrhea grapnel graptolithida grasig grassation grasshop grassless grassy grater gratificati gratillity gratities gratuitously gravamen graveled gravelweed graveolence gravestone gravidic gravimetrical gravitation grawls graying grayware graziery grdge greaseproofness greatcoated greatmouthed grecize greedless greekish greenable greenbriar greengage greenhorn greenlandish greenroom greenstuff greenwithe greetingless gregarinaria gregariousness greige grenadian grenoble gretel greyish gricer grief grieveship griffaun griffonage grihyasutra grim grimgribber grimmish grinderman grinner griphosaurus grippingly gris grisgris gristbite griswold gritstone grizzel groaner grocerdom groggily gromatic groomlet grooveless gropingly grossbeak grossular grotesquely grottolike groundable groundhog groundnut groundwork groupment grout groveless growable growling growthiness grri grubbery grubstaker grudgingly gruff gruiform grume grumousness grundlov grunth grutch gryllus gr grer gssip gta gtteslsterlich guaconize guaiacolate gualaca guanase guanidinium guanophore guapena guaranian guaraunan guardful guarding guarea guatambu guavaberry guayule gubernatorial gudesire guelphic guerdoner guerrillaship guessworker guests guggle guiba guideless guidguid guild guilefulness guillochee guiltlessly guinevere guitguit gularis gulfweed gulleting gulose gumbo gumless gummiferous gumptionless gunboat gunge gunmanship gunnership gunplay gunshot gunstone guran gurgling gurly gurt gushy gustativeness gustily gutium guttat guttering guttide guttler gutturally gutwort guzul gvermets gwyniad gygis gymnadenia gymnasic gymnite gymnoconia gymnogenous gymnophiona gymnosperm gymnostomata gymnure gynaecocracy gynandrarchy gynandrophore gynecidal gynecologic gyneconitis gynephobia gynocardic gynomonoecism gynura gypsiologist gypsum gypsyweed gyrational gyri gyrocompass gyroma gyrophoric gyrostabilize gyrovagues gdige h ha habab habenaria haberdasheress habilidad habilitate habille habitably habitaliza habitat habitats habituation hablilita habutaye hack hackear hacking hackman hackt hadbag hadden hadentomoid hading hadmade hadwritte haemacytozoon haemagglutinating haemamoebiasis haemangioma-thrombocytopenia haemapodous haematapostema haematic haematinum haematocephaly haematocystis haematogenic haematologist haematomyelia haematophlina haematopsia haematospermatocele haematotympanum haemic haemocatharsis haemochromometer haemocytes haemodiafiltration haemodynamic haemoglobin haemoglobinuria haemolutein haemolyticus haemonchus haemophagia haemophilus haemopoietin haemorrhages haemorrhoidectomy haemosporidium haemotachometer haemproteins haffle hagail hagborn haggadic haggishly hagigrafiga hagiography hagiotherapy hague haidingerite hailed haima hairbeard hairctter hairdressing hairlace hairmonger hairstreak haiti hakenkreuz halation halbherzig halcyonine halerz half-breed half-reactions halfheartedly halftone halibiu halicoridae haliographer halisteresis hallachrome hallebardier halley hallopodous hallowtide hallucinative hallux haloalcohol halobium halogenation halometer halophytism halosteresis halsfang haltica halvah halysites hamamelidanthemum hamartochondromatosis hamble hameil hamiltonian hamitism hammam hammerfish hammersmith hamose hampton hamulose hanced handballer handcart handelian handgravure handicraft handkercher handleless handmaiden hands handsmooth handstone handwrist hanford hanger hangmen hangworthy hankie hannibalic hanseatic hanuman hapaxanthous haplo- haploidisation haploperistomic haplotype happening happing haptics haptotropically harangue harassingly harbingery harbour hardboard harder hardhat hardiment hardpan hardwood harebell harehound harfang harka harlequina harlotry harmfl harminic harmonic harmoniously harmonization harms harpagornis harpist harpula harridan harrovian harshen hartbeest hartleyan haruspex harvest harveyize hasher hasinai hassedCjcti hastati hasteproof hastler hatchable hatchetman hatchway hatfield hatlessness hatte hatting haughland haulageway hauncher hauriant haustellate haustrum havanese havelock havercake havier hawaiian hawkbit hawknut hawsepiece hay hayes haymaking hayseeds hazara hazardously hazelts hazzan hckey head-down headcap headfish headings headlike headmaster headphes headrent headship headstream headwear healed healsomeness healthiness heaped hearig hearst heart/lung heartbreakingly heartedly hearth heartiness heartly heartshaped heartstruck heartyhale heater heathenhood heatheriness heatlike heautarit heavenhood heavenwardness heavity hebamic hebecarpous hebete hebraically hebrew hecatean hecatontome heckimal hecticness hectogram hectorism hedeoma hederose hedgehopping hedgingly hedonism hedyphane heedlessly heeler heelspur heftig hegemon hegumen heightened heimatlich heir heirship hejazian helcoplasty helene heliaean helianthoidean helicetric helicis helicometry helicopter heligram heliocentrically helioelectric heliography heliology heliophilous heliopticon heliotactic heliotropically heliozoan hell-diver hellcat hellelt hellenistically hellespontine hellish hellweed helmholtz helminthite helminthosporium helobious helosis helper-inducer helplessess helter-skelter helvetic hemacite hemadynamometer hemangioblast hemapophysis hematencephalon hematinic hematoblast hematocrit hematocytotripsis hematoglobulin hematolymphangioma hematonephrosis hematopoiesis hematosin hematoxic hemautogram hemen hemerobius hemiageusia hemianaesthesia hemiapraxia hemiazygous hemibody hemicataleptic hemichorea hemicraniectomy hemidactylous hemidrosis hemigale hemignathous hemihydrate hemihypotonia hemilingual hemimetabolism hemimorphy hemionus hemiparaplegia hemipic hemiprism hemipterous hemisect hemispherical hemists hemiterpene hemitropal hemizona hemoalkalimeter hemocoele hemocytoblast hemodrometry hemogenesis hemoglobinopathy hemol hemomanometer hemopexis hemophiliacs hemopod hemorrhaging hemosiderosis hemotaphonomy hempbush hemuse henceforward hendecahedron hendness henle henoch henpuye hentriacontane hepar hepatatrophia hepaticoduodenostomy hepatin hepatoblastoma hepatocuprein hepatoesophageum hepatojugularometer hepatolysin hepatonephric hepatophlebotomy hepatorenalis hepatostomy hepcat hepoxilin heptad heptahexahedral heptametrical heptanoates heptarch heptastylar heptic heptyl heracleum herald herapathite herbage herbarial herbicidal herbivory herbose herculanian herderite hereafter heredipety hereditarium heredolues heregeld hereof heresy hereticize herewith heritably herma hermaphroditish hermesian herminone hermitish hermokopid hernanesell herniated herniorrhaphy herodotus heroicness heroism heroogony herpestinae herpetological herpotrichia herringbone hershel hertzian herzglich hesitance hesitative hesperidene hesperomyinae hessite hetacillin hete heterandry hetericist heteroantiserum heterocentric heterochlamydeous heterochromous heterochthon heterocoelous heterodactylous heterodontism heteroduplex heteroepy heterogamety heterogeneous heteroglobulose heterographical heteroinoculation heterolactic heterologous heteromeral heterometaplasia heteromorphous heteronomously heteroousious heterophemia heterophoric heterophyly heteroploid heteroproteose heteroscedasticity heterosomati heterostatic heterostylous heterothallic heterotopy heterotrophic heterozetesis hetmanate heulandite hewable hex-androus hexachloride hexacorallan hexactinellida hexadactyly hexadiyne hexagonial hexahedral hexakistetrahedron hexamethylenamine hexametrographer hexandric hexanols hexaplar hexapterous hexastichic hexateuch hexe hexicological hexoctahedron hexopyranoside:cytochrome hexosephosphatase hexylresorcinol hgar hias hibbin hibernian hibernoma hiccupping hid hiddenite hideless hidlings hidrosis hiemal hierarchical hierba hieroglyphic hierogrammatic hierologist hieropathic hierosolymite higgad high-calorie high-kV high-stomached highfaluting highjacker highman highwayman hiking hilarytide hildebrandslied hilgardii hiller hillsale hilt himantosis hinayana hinderful hindersome hindsight hinged hinnites hinting hipbe hippalectryon hippian hippidium hippocamp hippocoprosterol hippocrenian hippoglossus hippolytidae hipponactean hippophile hippotigrine hippurid hips hiram hircosity hirmologion hirse hirtella hirudinize hisingerite hispanize hissingly histaminic histidine-trna histiocytic histo- histocytochemistry histogenetically histoincompatibility histometaplastic histones histophysiology historical historicogeographical historiette historiometric histotomy histrical histrische hitching hither hitter hivite hlidayer hmble hmebilder hmemade hmepathy hmewrkers hmilhar hmillacies hmsexal hoarding hoarsely hoaxer hobbil hobbledehoyishness hobbyhorsically hobnobber hochimin hocus hodgkin hoedown hogback hogget hoghood hogreeve hogyard hoisting holard holdable holdingly holeless holiday holistic holler hollow-hearted hollowware holmes holobaptist holocaustal holocephalic holocrine hologamy holography holometabolic holomyaria holophrasis holoprotein holorhinal holospondaic holostraca holothuria holotricha holt homageable homalopterous homaxial homebuilding homegrown homelily homeobox homeoidality homeopathic homeorrhesis homeotransplantation homerical homeseeker homestretch homicidious homiliarium hominidae homo homocarnosinosis homochiral homocitrate homocystine homodromal homoeo- homoeomeri homoeomorphous homoeoplasia homoeotypic homogangliate homogeneously homogentisate homograph homoiousia homolog homologon homomeral homomorphy homoousian homophenous homopiperonyl homopolymer homosalate homospory homotatic homothermous homotropal homoveratric homunculus honestly honeyblob honeyfall honeymoonshine honeysweet honor honorary honorworthy hoodedness hoodoo hoof hoofmark hookean hooklet hookup hooly hoopman hoosierese hooverize hoped hopingly hoplomachist hopperdozer hopple horary hordeiform horizometer horizontalness hormogon hormone-producing hormonology hornblendic hornet hornily hornotine hornswoggle hornyhead horologiographic horopteric horrendous horridly horrisonant horse-chestnut horsecraft horsehaired horselaughter horseplay horsetongue horsfordite hortator hortite hosel hospitably hospitality hospitium hostageship hostility hot hotel hothead hotmouthed hottentotism hougher houndfish hour houseball housebug houseful housekeeperly housemaid's housemother housewarm housewives hovedance how howell howlite hoyman hrad hretrpfe hrly hrrified hs hsemaid hstel huamuchil hubba hubert hucho hucksterer huddroun hueful huffishness hugeous huggle huisache hullabaloo hum humanify humanitary humanoid humblingly humbuggery humectant humeroradial humid humidor humiliator humist hummocky humorist humors humph humus hundred hung hungerweed hunkies huntable huntley hurdle hurlbarrow huronian hurriedness hurt hurtless husbander husbandry hushful huskershredder hussitism huswife hutchinsonite hutterites huyghenian hyacinthi hyaenodon hyalinize hyalocrystalline hyaloideo-capsulario hyalophobia hyalosome hybanthus hybrid-arrested hybridoma hydatidiform hydatogenic hydnaceous hydrabamine hydradenitis hydramide hydrarch hydrarthron hydrator hydraulus hydrazone hydriad hydrindene hydro-mulching hydrobatidae hydrobranchiata hydrocarbonous hydrocelectomy hydrocharidaceae hydrochloride hydrocladium hydrocorallia hydrocupreine hydrocystoma hydrodynamic hydroextractor hydrofluosilicic hydrogen-potassium-exchanging hydrogenize hydrognosy hydrohematite hydrolabile hydrologist hydrolyzation hydromantically hydromeningocele hydrometrical hydromorphic hydronegative hydroparastatae hydroperiodide hydrophile hydrophis hydrophoid hydrophylacium hydrophytology hydroplatinocyanic hydroponics hydropterideae hydrorheostat hydrosarcocele hydrosere hydrosphygmograph hydrosudotherapy hydrosyringomyelia hydrotelluric hydrothorax hydroturbine hydroxides hydroxyamphetamine hydroxycholanoyl hydroxyhemin hydroxylapatite hydroxymethyl hydroxynervonic hydroxyquinolines hydrozoa hydurilic hyetographic hygeist hygienal hygric hygrometric hygrophyte hygrostatics hylarchical hyllus hylogenesis hylomys hylozoism hymenal hymenitis hymenology hymenophyllum hymenostomatida hymnist hymnologically hyoepiglotticum hyoides hyopharyngeus hyothere hypaethros hypanthial hypautomorphic hyperabsorption hyperacusia hyperaemia hyperalgetic hyperanabolic hyperapophysis hyperbaton hyperbolize hyperbrutal hypercarbureted hypercementosis hypercholesterinemia hyperchromicity hypercomplex hyperconstitutional hypercritically hypercythemia hyperdeterminant hyperdimensional hyperdolichocranial hyperemetic hyperepithymia hyperethical hyperextendable hyperfocal hypergamy hypergeustia hyperglycemia hypergoddess hypergynecosmia hyperhydroxyprolinaemia hyperimidodipeptiduria hyperinotic hyperisotonic hyperketonaemia hyperlibido hyperlordosis hypermedia hypermetaplasia hypermetropy hypermorph hypernatraemic hypernoia hyperonychia hyperornithinaemia-hyperammonaemia-hypercitrullinuria hyperosphresia hyperoxaluria hyperpanegyric hyperpencil hyperphenomena hyperphosphorescence hyperpinealism hyperploidy hyperprism hyperprosexia hyperquantivalent hyperritualism hypersecretory hypersensuous hyperspatial hypersthenic hypersusceptible hypertension: hyperthermia hyperthymic hypertonic hypertrichophrydia hypertrophied hyperurbanism hyperventilate hyperwrought hyphema hyphodrome hypn- hypno- hypnogenetic hypnophobia hypnotherapy hypnotization hypoactivity hypoalimentation hypobarism hypobranchiate hypocarp hypochaeris hypochnaceae hypochondriacally hypochromatic hypocleidium hypocoristic hypocraterimorphous hypocrize hypoderma hypodermoclysis hypodicrotous hypoeliminator hypofibrinogenaemia hypogastrium hypogenetic hypoglossis hypoglycogenolysis hypogyn hypohyal hypoisotonic hypolepidoma hypolymphemia hypomeral hypomochlion hyponeuria hyponym hypoparia hypopharyngeal hypophosphataemia hypophrenia hypophysectomise hypophysics hypopigmented hypoplasy hypoprosexia hypopus hyporchesis hyposalivation hyposkeocytosis hyposphyxia hypostaticum hypostilbite hypostrophe hyposyllogistic hypotelorism hypothalamocerebellar hypothecative hypothermic hypothetics hypothyroidism hypotrich hypotrophy hypovalve hypovolemic hypoxemia hypozoan hypsidolichocephalic hypsiprymnodontinae hypsochromic hypsometrical hypsothermometer hyracodont hyrax hystera hysteretically hystericus hysterocystic hysterography hysteromyoma hysterophytal hysterosalpingogram: hysterotonin hystricinae hbilmete hre iacchic iaimate iambize iapyges iatrgeic iatromathematical iatrotechnique iberism ibim ibsenish icacinaceous icapacitated icarcerates icatati icclasta icebound icediaries iceless icerya icestsa icework ichlas ichneumonoid ichnolite ichoroid ichte ichthyism ichthyocoprolite ichthyography ichthyolitic ichthyomorphous ichthyophagy ichthyopterygia ichthyosaur ichthyotomi ichtracheteil icidecias icieracies icieratis icily iciss icitati ick iclemete icmm iconoclastically iconography iconomatic iconophilist icosandria icrci icstate icterode icteroid icy idazoxan idealism idealizar ideals idebitamete identicalism identifying ideogrammic ideological ideophonous idetic idiaische idige idiochromatin idiogamist idioheteroagglutinin idiomatic idiomorphous idiophonic idioretinal idiosyncratically idioticalness idiotype idita idleness idmet idolatric idolization idolothyte idose idrisite idumaean idyllical iederlasse iembre ietee if ifecci' ifratilizar ifrmtic igc igessareverb iglesias igneous ignipuncture ignivomousness ignoramus ignorement igradire igtim iguanodontidae ihibicies iizi il ileitis ileocolic ileon ilesite iliacus ilicaceous iliocolotomy ilioinguinalis iliopelvic iliotibialis illachrymableness illatively illegalize illegitimation illiberally illimitation illipene illiterateness illogically illucidation illuminate illuminator illuminous illusionist illustratable illustre illyrian ilongot ilysioid imager imaginal imaginativeness imagist imbalances imbastardize imbellettare imbirussu imbower imbricative imbursement imidic iminazole iminohydrolase imitate imitatress immane immanifest immatchable immatriculate immeasurableness immediatism immensely immerge immersement immethodize immigratory immission immobilise immoderation immoral immortalisation immortalness immovableness immunist immunobiology immunocomplex immunodepressant immunoenzyme immunoglobulin immunomodulator immunoradiometric immunosuppressive immure immutual impact impairable impalement impanation impardonable impart impartialness impassable impassionately impasto impatiently impeach impeccant impedibility impedition impendence impenitence imperant imperatorian imperceptibility imperent imperforable imperialist imperious impermanence impermeables impersonal impersonification impersuasible imperturbable impervial impetition impetuous impiety impiously implacably implants implead implementor implicated implicitness imploratory implume impolarizable impoliticly impoofo importably importray importunity impositional imposter impostumation impotentia impracticability imprecatorily impregn impregnatory imprese impressibly impressionary impressment imprimable imprints improbation improgressively improperia improvably improvidently improvise imprtad imprudently impuberal impugnability impulsively impure imputably imputrid inaccentuation inaccurate inactionist inactivity inadequately inadmissible inaequalis inalacrity inamissible inangulate inapostate inappetent inappreciably inapproachably inarable inarticulateness inassimilable inaudibly inauspicious inbending inbreak inburnt incalescent incandescently incapably incaptivate incarnadine incast incavern incensement inceptively incessantness inchoate incidental incinerator incised incisiveness incitable incivic inclinable incliner included inclusively incogitant incognoscibility incoincidence incoming incommodate incommunicably incompactness incompatibly incompletable incompliantly incomprehendingly incompressibleness inconcinnous incondensable inconfused incongruence inconnu inconsequential inconsideration inconsolate inconstantly incontestability incontracted inconvenienced inconvertibly incoronation incorporealist incorrespondence incorrupt incrash increasement incredibly incremental incretory incruentous incrystallizable incubous incudomalleolar inculpably incumbentess incuneation incurred incurvature indaba indanediones indebtment indecipherable indecomposable indefatigableness indefensibility indefinite indehiscence indelibleness indemnitee indenization indentured indeprehensible indesert indeterminacy indevirginate indexical indianaite indianize indicating indicatrix indicted indifference indigenal indigenousness indigitamenta indignify indigotin indinavir indiscernibleness indiscovered indiscriminateness indispensable indissipable indissuadable indistinguishableness indium individualization individuity indochinese indoctrinization indoleethylamine indologist indonesia indoramin indrawn inducedly inductance inductiveness indue indulgentially indumentum indurite industrialization indutive inebriacy inedited ineffably ineffectually inefficience inelegance ineloquently inenergetic inequally inequipotential ineradicably inermous inerroneous inerudition inestimableness inevident inexcitability inexertion inexistence inexpectation inexperience inexplicable inexposure inexpugnable inextensional inextricably infalling infancy infanticidal infants infatuatedly infectedness infectiously infecundity infeminine inferioris infernally inferomedial infertileness infeudation infidelly infiltrate infinite infinitivally infirmarian infitter inflamitory inflatable inflationary inflectionally inflict inflowering influentially influxionism informally informer infortunate infrabranchial infraclavicular infractible infragenual infrahyoideus inframammillary infranatural infraoral infraperipherial infrascapular infraspinous infratemporalis infraturbinal infrigidation infructuously infundibularis infundibulopelvic infuser infusodecoction ingate ingenerate ingenuous ingestion inglobate ingomar ingrate ingravescent ingrowing inguinocutaneous ingurgitation inhabited inhaled inharmony inherently inheritress inhibiting inhomogeneous inhumanize iniac inimicalness iniquitable initial initiate initiatress injects injunctively injuriousness inkfish inkless inkslinger inlaid inlaying inman innateness innermostly innidiation innocentness innovant innuendo innyard inobservant inoccupation inoculative inoffensive inogenic inoneuroma inopinately inorb inorganization inose inositol inoxidable inpolyhedron inquietation inquirable inquiry inquisitorialness inrigged inrunning insalvable insatiability insaturable inscriptio inscrutable insectarium insectine insectproof insenescence insensibleness inseparableness insertion inset inshoot insightful insincerity insinuatory insisted insititious insofar insolidity insomnia insorb inspectable inspectorate inspirable inspire inspirometer instability instances instantly insteep instillation instinctivity institution institutionize instreaming instruction instructs instrumentation insubmissive insuccess insufficiently insularism insulin-antagonizing insulinopenic insultation insuperably insurances insurmountability insurrectionist inswept intagliotype intarsist integrally integrifolious integumation intellection intellectualizer intelligibility intemperament intenability intendedness intensate intensional intentionalism inter interactional interagency interambulacral interarboration interasteric interavailable interbody interbring intercalation intercapitale intercartilaginea intercentral intercessional interchangeableness intercidens intercivilization intercoastal intercolumn intercommonable intercommunicator intercondenser intercontinental intercornual intercostalia intercoxal intercrust intercurrent interdebate interdependence interdict interdigit interdistrict interentangle interester interfascial interfered interferon interfilamentous interfluve interfraternal interganglionic interglacial intergradient interhabitation interiliaci interindividual interior interjaculate interjectiveness interkinetic interlacustrine interlard interlibel interlinearily interlining interlocally interlocutorily interlude intermanorial intermaxillar intermeddlesomeness intermediateness intermedius intermental intermetacarpeae interminability interministerial intermittently intermodulation intermundium interna internasal interneciary interneurons internodian internuncio interocular interorbitally interownership interparietalis interpediculate interpenetrate interphalangeae interplant interplight interpolative interposable interprater interpretative interprismatic interpubica interracialism interramicorn interreign interrepulsion interroad interrogative interrupted interruptor interscene intersectant interseptum intersheath intersociety interspeaker interspicular intersqueeze intersternal interstitium intersubsistence intertarseae interthing intertongue intertragica intertransversary intertropical intertwining interureteric intervalvular intervenient interventive intervert interviews intervolution interwhile interwoven intestacy intestiniform inthronistic intimateness intinction intolerances intonator intoxicable intra intra-aural intracalicular intracartilaginous intracerebroventricular intracollegiate intracosmically intracystic intradivisional intraepiphysial intraformational intraglobular intrait intraligamentary intralymphatic intramercurial intramyocardial intranscalency intransigently intransparent intraorbital intraparietalis intraperiosteal intrapontine intrarenal intraseptal intratelluric intratracheally intravalvular intravital intrepidity intrigued intrinsicality introdden introductor introinflection intromittence introsensible introspectivism introversible intruded intrusively intuit intuitive inturned inulin inundable inure inutility invaders invalidation invaluable invariant invection inveil inventful inventoriable inverminate inversion invertebrates invertor investigatingly investitor inviability invigorant invincibility inviolately invisible invited invocable involatility involucrin involutionary involving inwardness inwork io iodhydrin iodine iodite iodobromite iodoglobulin iodomethane iodophors iodospongin ioduria ionicism ionizable ionopherogram iontophoretic ioskeha iotrolan iphis iprindole ipsilateral iracundulous irascibility irelander irenics irgedwie iridadenosis iridentropium iridial iridioscope iridoceratitic iridodesis iridomotor iridoschisis iris irishize iritic iron-binding ironer ironheartedly ironize ironness ironwood irradiance irradicate irrationally irreclaimability irreconcilability irrecordable irredenta irreductibility irreformability irrefusable irreglarmete irregulate irrelevant irreligiousness irremissibleness irrenunciable irrepealably irreprehensibly irreproachably irresistible irresolvableness irrespondence irresuscitable irretrievability irreverentialism irrevocable irrigational irrisoridae irritants irritative irrumation irving isabelina isagoge isallotherm isatate isawa ischemia ischial ischiocapsular ischiofemorale ischiorectal ischuretic isegati isert ishmael isider isiggia isis islamitic islandman islet-cell-stimulating ismaelism ismaticalness isoalantolactone isoamylene isobarbituric isobathythermic isobuteine isocapnia isocephalous isochlor isochromatophil isochronize isoclasite isocortex isocryme isocyclic isodiametrical isodont isoelectrically isoetales isogametism isogenous isogon isographical isohemolysin isohyetal isoionic isolate isolde isology isomelamine isomerically isometric isomyaria isonitramine isonymic isopenicillin isoperimetry isophthalic isoplastic isopodimorphous isoprenoids isopropylarterenol isopulegone isoquinine isosaccharin isosensitise isosporic isosteric isosultam isothermobath isotimal isotopism isotropic isovalerianic isovoluminal ispaghul israelitism issite ist istanbul isthmic istigadr istrire it itali italianization italicism italophile itching itecig itemized iteracialism iteral iteralizig iteratiale iteration iterer iterir itership itghim ithomiidae itilizar itinerarian itoland itras itratis itric itwit iveragcl ivet ivoried ivybells ixia ixora izzard j'adre jabbed jabbingly jacal jacaranda jackanapish jackbt jackhammer jackpudding jacksonian jacobaea jacobinism jacobitism jacques jaculation jaded jadishness jagataic jagla jahvistic jailership jaime jakarta jalap jalpy jambage jambos jamlike jan jangleress janitress jansenize japaconitine japanism japanophobe japish japper jararaca jardiniere jargoner jarless jarry jasmined jasperoid jassoid jatulian jauntiness javelin jawbation jawfoot jayet jazziness jblessess jdgemet jealousy jeans jecorin jee jeewhillikens jegfe jejune jejunoileitis jellico jellyleaf jeniquen jennifer jeopardize jequirity jeremias jerkin jermoonal jerseyan jess jest jestword jesuitize jetliner jetton jewbush jeweller's jewfish jewship jgar jggerat jheel jibhead jici jiffle jigginess jihad jimberjaw jincamas jingly jinkle jinshang jirkinet jitterbug jix jli joanna jobbernowl jobmaster jockeydom jocoseness jocuma joewood jogtrottism johanson johnson joinable jointage jointure jokeless jokist jollop jolthead jonathan jonval jorge josepha josiah jotation joulemeter journalize journeyworker jovially jovinianist jowls joyfully joyproof jralism jrer jrs jstifiege jthere jubilancy jubilization judaeophobia judaization judged judgment judiciable judith jugated jugglement juglone jugulo-omohyoideus juiciness julaceous julie juloidian jumart jumby jumperism juncaceae junctional junebud junglewards juniperaceae junket junto juramentally juratory jurisdictionally juristically jussi justiceless justiciary justified justly jutlander juvenescent juventude juxtacrine juxtaposit jve jvially jyflly kVp kabaya kabuki kadaya kafal kafiz kahar kailyard kairine kaiwi kakariki kala kalanin kaleidoscope kaleyard kaliform kaliuresis kallima kalpa kalymmocyte kamarupa kamchatkan kammererite kanamycin kande kangarooer kansa kanwar kaolinosis kappa-chain karagan karat kareeta karma karpholite kartagener's karyenchyma karyogonad karyolysus karyomorphism karyopyknotic karyozoic kashi kaska kastisch katabolically katakinesis katamorphism katathermometer katharometer kathopanishad katmon katurai kawaka kayastha kcal kdz keawe kedar keecap keeler keelson keeper keepsaky kefiric kei kekotene keller keloplasty kelt kemple kendir kennedy keno kenotist kenticism kenyte keraphyllous keratiasis keratinophilic keratocentesis keratoectasia keratohyal keratolytics keratonyxis keratorefractive keratosulfate keraunophobia kerectomy kerma kernel kerogen kerrite kerwham kesslerman ketchup keto ketoglutarate ketonaemia ketonize ketosteroid ketting ketupa keweenawan keyhle keynoter keystrkes khair khami khanum khasa khediva khidmatgar khond khutbah kiaugh kiblah kickff kid kidbett kiddow kidheartedess kidnap kidred kiesselbach kigdm kikatsik kilah kilerg killable killer killiter kilmeter kilobyte kilojoule kilostere kiluba kimeridgian kinanesthesia kind-hearted kindheartedness kindredly kineplastic kinesic kinesipathy kinetical kinetodesma kinetomer kinetosome kingdom kingless kingpiece kingwood kinkajou kinky kinology kinsfolk kioea kipe kiranti kirking kirner kirver kismetic kisses kiswahili kitcat kitchenman kiteflying kitsch kittenishly kittle kitwear kiyas klafter klassisch klebsiella kleiigkeite klephtic kleptomanist klinefelter klippel-trenaunay-weber klosh kmischer knabble knapp knarred knawel knee-elbow kneeling knesset knickers knifeboard knight-errantry knightly knitch knives knoblike knockabout knockstone knopweed knotless knotweed knowhow knowledging knubby knudsen knyazi kobong kodakist koel kohathite koibal koinonia kokil kokum kolinsky kolpos komenic kong koninckite kontakion kooletah koplik korait koreci kornskeppur korova koschei kotal koulan kowloon kragerite krameria kratogen kreatin krelos kresge krimmer kristinaux krome kronur krugerite kryptocyanine kse ktag kub kudo kukoline kulan kumbi kuneste kuranko kurmi kurvey kuskwogmiut kuttar kwakiutl kwhw kyanophyll kymatism kynurenine kyphotone kzidet krzlich l'ailer l'hiver l-stercobilinogen lab labefact labella labi labializar labidetal labim labioglossopharyngeal labioplacement labitome laboratory laboriously laborsomely labrable labrar labret labristas labrs labyrinthectomy labyrinthiform labyrinthulidae lacca lace-bark lacemaker lacerad laceratis lacertiloid lacewood lachesis lachrymation lachrymosity lacing lacinula lackadaisic lackeyed lacklusterness laconica lacquer lacrimator lacroixite lactagogue lactarius lacteal lactide lactifugal lactinated lactobacillus lactogen lactonization lactose-litmus lactoylglutathione lactyl lacunose lacy laddered laddock ladiamete ladle ladress ladscape ladybird ladyhood ladylove laemodipoda laetere laevolactic lafite lagbil lagers lagger lagmrf lagoonal lagostoma lagsamste lagwort laicality laicized laine lairman lakatoi lakes lakota lalo lamaism lamarckia lambadi lambency lambkill lambs lamellae lamellibranchia lamellirostral lamentableness lamentive lamiaceae lamina laminariales laminboard laminous lammergeier lamp lampatia lampic lampmaker lampridae lampyrid lanarkia lancastrian lanceolated lancewood landau landfall landgravine landladyish landlord landman landownership landship landstorm lane langdak langle langsettle languet languorously laniidae lankiness lansat lantanum lanthanides lanuginousness lapa laparocolotomy laparohysterectomy laparonephrotomy laparostict lapcock lapidarian lapidicolous lapinised laplandian lappeted lapsation lapstreaked laquearian larcenic larder lardy large-cell larger laria larin larkiness larmes larrikinalian larus larvicidal larvule laryngectomy laryngitic laryngology laryngophony laryngoscopist laryngotracheitis lasche laserpitium lasiocampid lasse last lastspring latbesides late-successional latency lateral laterifloral lateritium lateroflexion laterotrusion latexosis latherin lathrop laticiferous latinate latinity latirostrous latitate latona latrobe latterly latuka laudably lauder laughed laughterful launchful laundry laurdalite laurence laurinol lauryl lavader lavatera laveer lavic lavr lawbreaker lawlants lawn lawrie lawton lax laxism layered layne laz lazarus lazurite laizads lbricated lcals lcegrati lcerative lcidity lckily lcra ldare leach leadableness leaderess leadless leadway leafdom leaflet leaguer's leaky leanish leaping learnedness leaseholding leastwise leatherfish leathermaking leatherworker leavenish lebanese lebrancho lecanoraceous lecheguilla lecidea lecithin-retinol lecters lectra lecturee lecythidaceous ledged ledol leeching leer leetman left-footed leftmost legaje legality legate lege legendist leges leghaemoglobin legionaire's legislate legislatrix legitimatize leglet legth legumes lehrbachite leichteste leiodermatous leiothrix leipoa leisre leisureliness lejs lely lemmas lemnaceous lemonade lemovices lemuridae lenape length lengthiness leniently lenitiveness lenny lensopathy lenticellate lenticulated lentiginose lentiscine lentor leonato leonist leopard lepadidae lepidic lepidoidei lepidopteral lepidosaurian lepidostrobus lepismidae leporipoxvirus lepre leproma leprosy leptiform leptocephalan leptochlorite leptodermatous leptomatic leptomonas leptoprosope leptorrhinism leptospirosis leptotrichia lernaeacea lerwa leses lesotho lesser lestiwarite letch lethargicalness letoff lettered letterma lettic letzt leucaethiopic leuchtenbergite leucippus leucoanthocyanidin leucochroic leucocythemic leucocytopenic leucoencephalitis leucolytic leucopenia leucophyre leucorrhoea leucostasis leucoturic leukaemic leukemogenic leukocidins leukocytoblast leukocytoplania leukodontia leukokininase leukomyelopathy leukopoiesis leukosis-sarcoma leukotrichia levamisole levation levelheadedness levels leviathan levirate levitator levity levocycloduction levolactic levotartaric levulosan lewie lexicalic lexicologist lexiphanicism lezghian lgbk lgical lgr liability liars libate libeled libellous liberal liberalization liberalizzatre liberation liberian liberticide libidinization libral libration libroplast liceciatra licensure lichanos lichenin lichenography licheny lick lickspittling lidded lie liedertafel lieger lieno-intestinal lienorenale lies life lifefulness lifeline lifesomely liftable ligamenta ligand ligarqia ligder light-hearted lighted lightface lighthouse lightmanship lightsman ligmite lignicolous ligniperdous lignone ligpli ligulated ligurition liked likesome lilactide liliiflorae lilt limacea limada limb-girdle limberly limbous limebush limerence limg limitable limitate limiter limmock limnetic limnobium limnophilidae limoniad limosi limpiar limpish limulidae linalol lincloth lindackerite lindiform lineae linearensate linebacker linene liner lingayat lingism linguae linguanasal linguiformis lingulae linguliform linguogingival liniments linkage linky linolein linotype lint lintwhite liodermia lioness lionlike lip liparididae lipedematous lipidosis lipoate-protein lipocardiac lipochromogen lipoedema lipogram lipoidemia lipomatoid lipomyxoma lipophilic lipoproteins lipothiamide lipovaccine lipper lips lipdic liquefiable liquid-metal liquidless liquorer lire lisch lispingly lissive lissotrichous listener listing lit litera literalizer literati liters lithectomy lithiate lithobiidae lithochromy lithodid lithogenous lithographically litholatry lithometer lithophane lithophysa lithosiid lithotint lithotriptic lithotypy litigable litigiousness litorinoid litteris littling lituitidae liturgiologist lityerses lived liver liverishness liveryless lividity livingston lixivial lizardtail lkewarm llamas llatas lllipp lludd lmbre loaden loaferish loamy loath loathsome lobaria lobbish lobed lobes loboi lobscouser lobularly lobulus localistic locanda locational lochia lochioschesis lockable locket lockmaker locksmithing locofoco locomotiveness loculament loculous locustid lode lodgepole lodowic loessoid loftman loganiaceous logarithmically logger logic logicist logit logogram logolatry logomaniac logos logrolling lohock loiseleuria lokindra lollardize lollypop lombardic lomustine londonization lonesomely long-horned longanimous longest longheaded longilateral longior longirostrines longitudinally longobard longsomeness longus looby lookout loon looplike loosening lootiewallah lophine lophobranch lophophore lophotrichic lopsided loquently lorazepam lordling loreal lorettine loricati lormery losable lossenite lotebush lotophagously lotus loudly louie lounderer louping-ill lousiness louvar lovastatin lovelessness lovemate lovership lovingly low-pass lowdown lowermost lowliness loxapine loxodrome loxosoma loyalty lppa lsiga ltimadamete ltrafast ltramder ltter lubbock lubrication lubritorian lucban lucernal lucible luciferases luciform lucinacea luckenschadel lucration lucrific luculent luddite ludicroserious ludwig luftwaffe lugging luhinga lukewarm lulliloo lumbalia lumberer lumbersome lumbodorsal lumbricidae lumbus luminant luminescence luminous lumper lumpman lunarian lunation lunchroom lunette lungi lungy lunula lupeol lupinaster luposa lupus-like lure luridly lusaka lusher lust lustless lustrification lutanist lutein lutembacher luteola luteous luteway luthern lutjanus lututrin luxembourg luxuriation lveable lwer lycaenidae lychnic lycoctonine lycoperdonosis lycopsida lycus lygaeidae lymantriid lymphad lymphadenomatosis lymphangiectatic lymphangiology lymphangitis lymphatism lymphitis lymphocryptovirus lymphocytopenia lymphoepithelioma lymphoidectomy lymphomatoid lymphopenial lymphorrhagia lymphostasis lymphous lyncid lyoenzyme lyonnesse lyopomata lyrate lyrically lyrist lysergide lysimeter lysinuria lysogenicity lysophosphatidylcholines lysozyme lythrum lzas lbric ma'am maal macabra macadam macadamizer macaranga macarizes macarres macazas macchiazie mace'ratis macell macerat macerazie machairodontinae machette machiavelli machicui machiist machinable machinemonger machinofacture machopolyp macilent mackey maclat macler macradenous macraucheniid macrcephaly macrcsms macrecmics macrfag macristrzie macroanalysis macrobrachia macrocheilia macrocladous macrocosmical macrodactylia macroelement macrognathism macromania macromethod macrophages macroplankton macroprosopia macrorhinia macrosepalous macrosporium macrosymbiont macrotous macrpatlgia macrprcessr macrsimlati macruroid macularis maculicolous mad madapollam madcap maddeningly made mademiselles madibla madliist madoc madrake madreporaria madrigal madril maduro maeandroid maelstrom maera maevers mafura magaimity magazies magaziny magenta magetically magetizables magged maggts magianism magicdom magificamete magifyig magirics magisteriality magistrality magistratical maglemose magnanimously magnesian magnetician magnetizable magnetoelectrical magnetometrically magnetoprinter magnicaudatous magnificently magniloquy magnoliaceous magqias magyaran mahar mahatma mahdist mahomet mahseer maic maidenhood maidish maiefic maifeste mail mailer mailme maimedly mainlander mainpost maintain maintop maire maiteaces maizenic majestic majolist majoristic majuscular makedom makeshifty makrbitisch malabarese malaccident malacodermidae malacopod malacostracology maladjust maladrs malaguena malapaho malapropish malarin malassimilation malaxate malayic malcolm malcontentment maldistribute malebolge maledict maleficence maleo malexecution malgastad mali malidentification malignantly malikala malinowskite mall malleablize mallein malleoli mallotus malnourished malodorously maloperation malposed malreasoning malthe maltodextrine maltster malvaceae malvoisie mamel mamigfers mammalia mammarii mammiferous mammilloid mammoniacal mammoth manacus manager manakin manavel manchineel mancipium mandala mandarinic mandatorily mandibulary mandingan mandrake mandyas manetti manfreda manganbrucite manganja mangbattu mangle mangosteen manhead manicate manid manifestative manifolder manille manipulatively manitrunk manlet mannan manneristic mannheimar mannite mannosyl manomin manred mansion manslaying mansuetude manteltree mantis mantling mantuamaker manuao manuduce manufacturers manumit manurially manville manyfold manzas mapau maprotiline maqiadr maquis marafino marantaceae marasmus marattiaceae marbelize marbleness marcad marcella march marchi marchpane marco marcy marehan marfan margarines margarosanite marginalia marginella margravate mariachi mariated marigold marimacha marinist marion marishness maritorious markedly marketer markham markp markup marlin marlowish marmatite marmorated marmota marplotry marquisdom marree marrier marrowless marrymuffe marshaless marshiness marsian marsoon marsupiate marten martialization martineta martinist martyniaceae martyrolatry marveler marvesci marymass masc maschere masculate masculinize masedmbre mashing masker maslin masonwork masquerader massageuse massedly massett massilia massmonger mastatrophia mastere masterlike mastership masticar masticic mastigophoric mastman mastodontidae mastoidei mastology mastotomy masurium matadero matajuelo matawan matchcloth matchmaker mateax mately materialism materialman maternalness mathematical mathesis matilda matless matreed matrice matriculate matriliny matripotestal matronal mats mattboard matters mattoid mature matutinal maudle mauler maundful mauritania mauveine mawkish maxilliform maxillopremaxillary maximed maximum mayan maydis mayhappen mayoress mayten mazailla mazda mazement mazopathia mazza mb mbilics mbunda mccarthy mccoy mcfarland mchach mchs mckeon mcmullen mdae mdem mdestia me's meadamete meadowsweet meagerness mealily mealy meandriniform meaningly meanwhile measrability measurable measurely meatcutter meatoscopy mec meccaizzazie mechaisms mechanicalize mechanisms mechanomorphism meckelian mecon mecopteron medallary meddler media medial mediani mediastinal mediated mediatorialism medicable medicamentosa medicative medicies medicines medicomechanic medicrities medieval medim medioanterior mediodorsal mediosilicic medish meditati meditator meditullium medicre medsa medullated medusalike meeken meerschaum meeting megabit megachilidae megadrili megahertz megalensian megalmaiac megaloceros megalodontidae megalomanic megalopic megaloptera megaloscopy megampere megaphyton megarhinus megascopic megasporophyll megatheroid megazoospore megdecis megdicrites megdlle meggaphe megldies megmrisePr megprisable megrite mehtar meigitis meiserie mejorana melacglic melalgia melanagogue melancholist melanemic melaniidae melanitic melanocrate melanoi melanorrhagia melanospermous melanuria melatope meldic meleagridis melet meliaceae melicent melilite meliorability meliority melismatics melittology melleous mellifluousness mellivorous melodeon melodious melodramatically melograph melomane melonites meloplasty melpomene melters member membraex membranate membranin membranoproliferative memento memoirist memoria memorist memrf menace menagerist mendaite mendelize mendicity menhaden meningeal meningitic meningocortical meningorhachidian menisci menispermaceae mennonite menopausic menorrheic menotyphlic menshevist mensual mentagra mentalization menthenol mentiform mentis mentorial menyanthaceous mepatie mephitinae meraline mercaptal mercator mercedonius mercera merchanthood merciail mercre mercurialize mercurius merdivorous merestone mergh meridian merino merist meritcracy meritoriously merlon mermithidae merocerite merogonic merope merorganize merosymmetrical merpeople merrow mert merwoman mesaconate mesange mesaticephali mescaline mesembryonic mesenchyme mesentericus mesentry meshech mesically mesiolingual mesitylenic mesmerizable mesoappendix mesocaecal mesocephaly mesocoracoid mesodevonian mesogastrium mesokurtic mesomeric mesomyodous mesonychidae mesophragma mesoplanktonic mesopodium mesorchium mesorrhiny mesoseismal mesosporium mesostylous mesotherm mesotroch mesoventrally mesquite messages messer messianize messmate mestome met metabismuthic metabolite metabotropic metacarpeae metachlamydeae metacism metacrasis metadiorite metagastrula metagnath metahewettite metaldehyde metalinguistics metallically metallik metallogeny metalloplastic metallurgy metalware metamerically metamorphopsy metamorphous metanepionic metanym metaphenomenon metaphorically metaphrast metaphysicize metaplast metapodium metaprescutal metapsychosis metasaccharinic metasomatic metastannic metasthenic metatarsale metatarsophalangeal metatheses metatracheal metaxite metd metempiricist metencephalon meteorically meteorogram meteorologist metepisternum metership methanal methdical methenamine-silver methionic methodically methodless methought methylal methylcarbinol methylglycocoll methylpentoses meticulosity meti metolozone metopica metosteal metrazol metrete metrics metrocampsis metrological metrometer metropathic metropolitanize metrorrhea metrosteresis metteda met mexica mexitli mezcal mezzanine mffa mgscl miPr miaower miasmatical miauler micasize micemeat michel michigan micipalidades miconia micrencephalia microammeter microbarograph microbiologic microbium microcardia microcephalous microchemistry microcitrus micrococceae microconidium microcosmography microcrystallography microdactylous microdontous microeutaxitic microfluidal microgaster micrognathia microgranular microgroove microinjection microliter microlux micromelic micromesentery micromicron micronase microorganismal micropenis microphakia microphotoscope microphytic micropodia microporous micropterygious microrheometer microscope microsecond microseptum microspectroscope microsplanchnic microsporophore microstome microtechnic microtinae microtypal microweber microzoon micrf midazolam middleman middlewards mided midge midiron midline midpalmar midribbed midshipmite midsummer midweekly midwives mier miersite mifibrilla mightyship migraines migration-inhibitory migrazie miimal mikadoate milffesiva milchmer mildewy miler milfil miliat militant militarization militiaman milkeress milkmaids milksopping millage millefoliate millennially milleporous millesimally milliampere millie milligrams millimicron millinormal millioned milliphot millocrat millstock milord miltonic milvine mimeograph mimetically mimicker mimmest mimologist mimus minahassian mince mindanao mindlessly mineraiogic mineralogy minesweeper mingo miniature minification minimalkaline minimitude minion ministerialism ministrator minkery minnie minorage minority minster mintmaker minuscular minuthesis minxishness mioplasmia mipresetly mirabile miracles miragy mirdaha mirity mirrors mirthsome misadaptation misadvertence misaim misalter misanthropize misappraise misapprehensiveness misascription misattribution misbefitting misbelove misbrand miscarriages miscellaes mischance mischievousness miscietly miscolor miscomprehension misconfidence misconstruct miscorrection miscredited miscut misdeem misdentition misdevoted misdistinguish misdread misemphasize misenunciation miserdom misesteem misexplication misfeasance misfortunate misgo misgrown misguidingly mishnical misimputation misinformation misintention misjoinder miskindle misleader misliken mismake mismeasurement misnavigation misobserve misogynical misoneism misordination misoxene misperception misplant mispraise misprofessor mispunctuate misrabile misrealize misreflect misrepeat misresolved misse misshapen missing missisauga missourian misstatement missyllabify mistakeproof mistell mistful mistigris mistouch mistreatment mistrustful mistyish misuse misvouch mit mitella mithraeum mithratic mitigable mitigatory mitogen mitral mittags mittens miurus mixen mixodectidae mixtion mizzenmastman mje mld mlight mltitde mmetal mnemonically mnemotechnist moabitess moarian mobbism mobility mobolatry mock mockingstock modalities modelist moderantism moderator modernizable modiation modifications modioli modulability modulidae moeritherium moghan mogrebbin mohammedism mohican moiler moirette moistify moisturizing molar molave moldery molecula molehillish molest molinary mollescence mollifiedly mollisiose molluscoid mollycoddle moloker molrooken molybdaina molybdocolic momble momentarily momme monacanthine monactin monadically monamniotic monarchal monarchism monarthritis monastery monaxial mondayish monepic moneric monetary moneygrub moneywort mongolia mongoyo monheimite monilia monimiaceae monitor monk monkeyhood monkeytail monkmonger monoamide monoblepsis monobromoacetone monocarpian monoceros monochlorinated monochromasy monochromist monocline monocondyla monocrat monoculous monocystis monodactyly monodize monodromy monoester monogamist monogeneous monogeny monogrammed monograptus monohydrogen monoline monological monomastigate monomethylated monomorphic mononitrate mononucleotide monoparental monophagism monophosphate monophylite monoplaculate monopode monopolism monopolylogist monopteron monopyrenous monorhine monosepalous monosomic monosporiferous monostomatous monosubstituted monosyllabize monothalama monotheletic monotocardian monotonousness monotrocha monotypal monoverticillate monozoan monsieur monsterhood monstrocellular montane montauk montes monthlies monticulipora montmartre monty monumentlike mood moolet moondown moonflower moonless moonman moonshade moonwalking moorbird moorland moorwort mooseri mootman mopingly mopus morale moralless moration morbid morbility mordacious mordent morefold moreover morganatical morgue morigerous moringaceae morisonian mormoness mormyridae morningward morologist moropus morphallaxis morphic morphiomania morphographist morphonomic morphotropism morrisean morse mortalist mortarlike morth mortifiedly mortmain morus mosaist moschate moser moslemic mosquitobill mossed mosstrooping mosul motel mothered motherliness mothlike motionable motivation motmot motorbus motoric motorneer motte mottramite mougeotia moulinet moundwork mountainlike mountebankery mounture mouse mouseproof mousingly moutan mouthishly mouthy moveability moves mowana mowrah moyite mozzarella mqerie mre mrir mrtally mrtifie mscles msical msiclg mssel msteige mtacig mtats mtherbards mtilat mtis mtre mty mucedinaceous mucific mucinogen muckerish muckrake mucocellulosic mucopurulent mucosa-associated mucosum mucronulatous muddify muddlement mudfish mudless mudsucker muffetee muffling mugginess mugiency mugwumpism mukden mulberry mulctuary mulewort mulierine mullar mullidae mulmul multeity multibranchiate multicharge multicolorous multicycle multidrug-resistant multiferous multiflagellated multiform multigraph multilamellar multilingual multilobulated multimammate multimodality multinomial multipapillosa multipersonal multiplet multiplicative multipole multiramified multiscience multiseriate multispired multisyllabic multitube multitudinist multivalve multivitamin multum mumbling mummiform mumpishly muncher mundatory munge municipalist munificently munnion munychian mural murderer murenger muricid muriformly murkish murmurator murphy murshid musales muscardinidae muscicapa muscle muscological muscovite muscularly musculoelastic musculospinal museist museumize mushily mushru musician musicoartistic musicophilosophical musk musketproof muskoxen musophaga mussably mussitation mustached mustards musterdevillers mutability mutant mutationist muter mutilation mutinousness mutsje muttonhead mutualization muyusa mvemet mweg myall mycardim mycenaean mycetoma mycobacteria mycodermitis mycologist mycophyte mycosis mycteria mydaus myee myelic myelinogenesis myelocoele myeloencephalitis myelolipoma myelomonocytic myeloplast myelospasm myenteron myiodesopsia mylodontidae mynah myocardical myoclonus myodynamics myofibroma myograph myolemma myomantic myomorphic myoparalysis myophysics myoporad myosarcomatous myosotis myothermic myoxidae myriacoulomb myriametre myricaceous myringodermatitis myriopoda myristica myrmecochorous myrmecophagous myrmeleontidae myronate myrrhine myrtal mysell mysophobia mystax mystery mysticity mystify mythicalness mythlgic mythographer mythologize mythopoeist mytia myurus myxedemic myxochondroma myxogastrales myxomatosis myxophyta myxospongida myzodendron myzostomidan mgicamete mdic mge n-acetylhexosaminyltransferases n-decanoic n-icosanoic nab nabathean nabobess nachani nacrite nadroparin naething nagara naggle nagsman nahor naiadaceous nailbin nailrod nairovirus naivety nakhod nalita namazlik nameling nanaomycin nanette nannette nanocephaly nanophthalmos nantz napalm naphtha naphthalenol naphthazoline naphtholize naphthylamidases napkin napoleonist nappy narbonne narcissistic narcohypnosis narcosis narcotics nardoo naringenin narrater narrow-angle narrows nary nasalward nascentium nasial nasioiniac nasoalveola nasofrontal nasomalar nasopharyngitis nasosinusitis nastaliq nasute natality natatorial nathan naticoid nationalization natively natriferic natter naturales naturalness naturize naughtiness nauntle nauseate nautic nautiloid navalistic navellike naviculare navigate nawab nazarate nazify nda neapolitan nearctica nearthrosis neatress nebbuk nebula nebulin nebulous necessism necessitative neckband necklace neckstock necrobacillosis necrologic necromania necrophagous necrophorum necrose necrotizing nectareous nectarium nectophore nederlands needfulness needlebush needleproof needleworked neelghan nefandous negatedness negativist neglected neglector negligibly negress negroes negroloid negus neighborhood neighbourless neist nelsonite nemalite nematic nematocystic nematogone nematospermia nemertida nemetean nemoral neoantigens neoceratodus neocortex neoencephalon neogala neogrammarian neolactotetraosylceramide neologism neomeniidae neonatal neoorthodox neophilological neopieris neoplatonic neoretinene neossoptile neoterically neotype nep neperian nephelite nepheloscope nephology nephrectasis nephridiopore nephroblastoma nephrocystosis nephrography nephrolysin nephrons nephroptosis nephrospasia nephrotomogram nephrotyphus nepotious neptunium neriine neroli nervature nerver nervimuscular nervosa nervule nesidiectomy nesonetta nestful nestorianism neter nethermost netmaking netter nettlemonger neufeld neuragmia neuraminidase neurasthenical neuraxon neurenteric neuridine neurimotility neuritis neuroanatomical neuroblast neurochemistry neuroclonic neurodegenerative neuroectomy neurofibrilla neurofilament neurogliac neurographic neurohypophysis neurolinguistics neurolysis neuromeningeal neuromyasthenia neuronism neuronyxis neuropathologist neurophilic neuroplegic neuropsychiatrist neuropter neuroradiography neurosarcoidosis neuroskeletal neurosurgeon neurothekeoma neurotise neurotoxic neurotropic neurovisceral neuterly neutralizer neutrologistic neutrophilopenia neverland nevose newborn newfangle newings newmarket newscasting newsmongery newspapery newsy nexal ng niacinate nib niblike niccoliferous nicer nichols nickelic nicker nicknamer nicol nicotiana nicotinean nicotize nidana nidificate nidorous nidus niepa nifedipine nifuroxime niggardize niggerism nighly nightclub nightingale nightmarish nighttime nigra nigrified nigrous nihilitic nilgau nimbi nimbused nimrodize ninebark nineteen ninevitical ninon niobid nipmuc nipples niridazole nisnas nitella nitidulid nitratase nitriary nitrification nitrite nitroanisole nitrobenzole nitrofurans nitrogenous nitromagnesite nitroparaffin nitroquinol nitrosify nitrosoureas nitroxanthic nitwit nivenite nizamut noachic nobby nobleheartedness nocake nociceptive noctambulant noctiflorous noctilucine noctuid nocuous noddy nodosa nodoventricular nodulize noesis noggin noint noisemaker nojirimycin noma nomal nomenclative nomic nominated nominy nomograph nomophyllous non-C non-hodgkin non-stereospecific nonabolition nonabstention nonaccession nonacid nonactinic nonadecane nonadministrative nonadventitious nonaffiliated nonagon nonalgebraic nonallotment nonan nonanesthetized nonantagonistic nonappearing nonappropriation nonarraignment nonascertainable nonassent nonassimilating nonathletic nonattributive nonbachelor nonbasic nonbetrayal nonbleeding nonbranded nonbureaucratic noncaffeine noncannibalistic noncapture noncataloguer noncellular noncertified noncharacteristic nonchromaffin noncitation noncleaved-cell noncoagulable noncognizance noncollapsible noncombat noncommendable noncommunicable noncompetency noncomposite nonconcentration nonconcurrence nonconductibility nonconfidential nonconformance noncongenital nonconnivance nonconsequent nonconspiring noncontact noncontentiously noncontradiction nonconvenable nonconvulsive noncorrespondent noncostraight noncredible noncrusading noncultivation noncutting nondealer nondeceptive nondeduction nondefilement nondeist nondelivery nondenumerable nondepositor nondesignate nondetention nondexterous nondiastatic nondieting nondiplomatic nondischarging nondiscussion nondisjunctive nondissolution nondivisible nondomesticated nonduplication noneclipsing noneffete nonelect nonelectronic nonembryonic nonemployment nonenergic nonentitative nonenvious nonequal nonerection nonesuch noneuphonious nonevolutionary nonexchangeable nonexemplificatior nonexoneration nonexpiation nonextended nonextortion nonfabulous nonfaddist nonfatal nonfelonious nonfeudal nonfinancial nonfloatation nonfood nonformation nonfreeman nonfundable nongaseous nongermination nongod nongraphitic nongrooming nonhallucination nonhepatic nonhomogeneity nonhunting nonidentical nonillustration nonimmunized nonimposition nonincrease nonindurated noninflammability noninjurious noninsulin nonintercourse nonintervention noninvasive nonirrational nonisolated nonjuristic nonlaminated nonlevulose nonlinear nonliturgical nonluminescent nonmaleficence nonmanufacture nonmastery nonmechanistic nonmercantile nonmetropolitan nonministerial nonmomentary nonmotile nonmussable nonnasal nonnavigable nonnescience nonnsulin nonobligatory nonocculting nonofficeholding nonopacity nonorganic nonosteogenic nonoxygenous nonparallel nonparlor nonparty nonpeak nonpending nonperformance nonpermissible nonpersonal nonphilosophical nonplacental nonplus nonponderosity nonpositive nonprecipitable nonprehensile nonpresence nonprincipiate nonprofane nonprognostication nonprolific nonproportional nonproteogenic nonpublic nonpunishing nonputrescible nonrailroader nonrayed nonrebel nonreciprocating nonrecourse nonreference nonregenerating nonreigning nonreliance nonremunerative nonrepeater nonrepression nonreservation nonresidual nonrespirable nonretaliation nonretrenchment nonreversible nonrhetorical nonromantic nonruminantia nonsacrificial nonsanctity nonscaling nonscriptural nonsecretor nonsegmented nonsense nonsensitized nonserial nonshaft nonsignatory nonsinging nonskipping nonsocial nonsolvency nonspecialized nonspherocytic nonspontaneous nonstandardized nonstellar nonstretchable nonsubjective nonsubstantialism nonsuccour nonsummons nonsurgical nonswimming nonsympathy nonsyntonic nontarnishing nontechnological nonterminating nontherapeutic nontitaniferous nontragic nontransparent nontrial nontuned nonultrafilterable nonundulatory nonunited nonuser nonvaccination nonvascular nonvertebral nonvibrator nonvirginal nonvisitation nonvolant nonvulvar nonworker nonzero nooked noon-flower nooscopic nor norbertine nordicity norethandrolone norgine norleucine normalization normanism normeperidine normochromia normospermatogenic nornicotine norprogesterones norsk northeasterly northernize northmost northwest norwalk nosairian nosebleed noseless noses noso- nosographical nosomycosis nosotrophy nostologic nostrility notableness notalgic notarize notchboard notebook notelessness notharctid nothingly notice notidanidan notionable notiosorex notodontid notonectal notorhizal nototribe notus noumenalist nourice nouther novate novelcraft novelism novelness novemlobate novicehood novo novus nowhen noxa nozzler nubby nubilous nuchalis nucleare nucleiform nucleochyme nucleolar-nuclear nucleolysis nucleoplasm nucleosidases nucleotidases nuculanium nude nudibranchiate nugacious nugumiut nullibiquitous nulliparous nullo numbers numda numerate numero numidinae numismatologist nummuline numskulledness nunciate nundinal nunnation nuptialize nurse-patient nursepond nursetender nurtureship nutbreaker nutlike nutricia nutrimental nutritiveness nuttery nyamwezi nyctalgia nycteridae nyctipithecine nyentek nymphaeaceae nymphectomy nymphlin nympholeptic nyquist nystatin o-chlorobenzylidenemalonitrile oafdom oaklet oarcock oariotomy oarswoman oatear oatlike obclavate obduction obedient obelia obelize obey obfuscous object objectionable objectiveness objectlessness objurgator oblationary obligation obliged obliqua obliquum oblivial oblocutor oblongness obnoxiously obolus obreptitiously obscurantism obscurism obsequience observably observationalism observing obsessor obsolescent obstetrically obstinance obstreperously obstruction obstruent obtect obtrude obtunded obturatorii obtusifid obumbrate obviate obvolve occasional occasions occiduous occipitoatloid occipitohyoid occipitoposterior occlude occlusiveness occultation occupant occupier occursive oceanican oceanus ocellicyst ocher ochlocratical ochraceous ochro ochrous ocrea octacnemus octadecyl octahedral octamer octandrious octans octapressin octastylos octavo octillionth octocentenary octodactylous octofoil octogynous octonarian octopede octopodan octose octroi octylic oculauditory oculist oculodermal oculomotor oculopneumoplethysmography ocydromine ocytocin odaxetic oddman odeon odiometer odogenesis odontaspidae odontist odontochirurgic odontoglossate odontolcae odontoma odontophore odontopteryx odontosis odoom odoriferousness odorous odourimetry odyn- oecanthus oecumenical oedipean oenanthe oenocarpus oenomaus oersted oesophagism oesophagogastroduodenoscopy oesophagoplication oesophagram oestridae oestrosis off-road offendant offenseless offeree offhanded officerial officialization officinalis offload offshoot oflete oftness ogdoad ogived ogrism ohmic oil oilfish oilmongery oilstone oinomel okadaic oklahoman olamic oldest oldster oleana olecranarthritis oleiferous oleocalcareous oleomargaric oleose oleraceous oleyl-anilide olfactometry olfacty oligarch olighidria oligochaetous oligocystic oligodendroglioma oligohydramnios oligomerous oligonephria oligophagous oligoprothetic oligosaccharide-diphosphodolichol oligostemonous oligotrophia oliniaceae olive-tipped olivescent olivil olivocerebellar ollock olonetsish olykoek olympicness omaha ombrette ombrophobia omelette omentocele omeprazole omitis ommatidium omnibenevolence omnidirectional omnifocal omnilingual omniparity omnipotently omnirepresentative omnisentient omnitonality omnivision omo- omophorion omphal- omphaloenteric omphalopsychite omphalotomy onagraceae onchidium oncocytic oncoides oncometry oncostatin ondansetron one-hand oneida oneirogmus onement onetime onicolo oniric onkos onmun onomantical onomatopoeial onomatous onsetter ontarian ontogenic ontologize onycha onychocryptosis onychomalacia onychophora onychotillomania onyxis oocystis oogenetic ookinesis oologist oomycetes oophorhysterectomy oophoromalacia oophorotomy oorial oosporic ootocous opacification opalescence opaque open-hearted openhandedness openmouthedness operagoer operates operations opercula operculum ophelimity ophicleidean ophidism ophiolater ophiomorpha ophiophilist ophite ophiuroid ophthalm- ophthalmic ophthalmocele ophthalmological ophthalmomyiasis ophthalmoplegic ophthalmoscopist ophthalmovascular opiism opinable opiniastrety opinional opinionist opipramol opisthocheilia opisthodomos opisthognathidae opisthomi opisthothelae opobalsamum oppidan opportuneness opposeless oppositional oppositively oppressor oppugnancy opsisform opsonin opsonophilia optative optici opticopupillary optimise optional optoblast optometer opulaster opuscular oracle orage oralize orangeleaf orangite orational oratorio orbicella orbiculately orbitae orbitelarian orbitomaxillary orbitotomy orchanet orchesography orchestrate orchica orchideously orchidopexy orchilla orchiopexy orcin orderable ordinally ordinately ordovian orectic oreodont oreoselin orexigenic organbird organicism organiser organity organizer organoferric organographist organology organonymal organophosphate organosol organotropism orgasms orgic orichalceous orientalism orientator orificial origenic originally originative orillon oriskany orkney orlon ornamentalize ornature ornithichnology ornithocephalidae ornithogaea ornithologic ornithomorph ornithopoda ornithoscelidan ornithurous orocratic orograph orolingual oronoco orotidylic orphanhood orpheum orpin orseilline ortalidian orthetics ortho-monooxygenase orthocarpous orthoceratite orthocoumaric orthodiagraphic orthodontist orthodoxness orthoformic orthognathous orthograph orthokeratology orthometer orthopaedics orthopedist orthophyre orthopod orthopter orthopterous orthorrhaphy orthospermous orthosympathetic orthotomic orthotropism orthoxazine ortygian orwell oryctognosy oryzae osaka oscella oscheoplasty oscillations oscillographic oscinidae osculant osela osirian osmanli osmesis osmina osmogene osmometric osmoscope osmund osotriazine osphresiophilia ospray ossements osset ossianesque ossiculectomy ossifluence ossuarium ostarthritis osteectopia ostensibility ostentatious osteoarthropathy osteocartilaginous osteochondromatosis osteoclastic osteocytes osteodiastasis osteofibrosis osteoglossid osteolepis osteolytic osteometry osteopathia osteopetrotic osteoplaque osteopterygious osteospongioma osteotome ostia ostitis ostracean ostracization ostracon ostreger ostreotoxism ota otariinae othello otherism otherwhile othman oticum otiorhynchinae otoacoustic otoconial otodynia otolaryngologist otologist otonecrectomy otopolypus otosclerosis otozoum ottingkar ottrelite ouakari ought ounds ouretic outact outbacker outbearing outblaze outblunder outboundaries outbrazen outbribe outburst outcaste outclamor outcorner outcrow outdate outdoorness outdwell outerness outfeast outfighting outflatter outfold outgallop outgive outgoing outgun outhire outhunt outjazz outkick outlander outlay outlier outlinger outlung outmarry outmouth outpage outpay outpipe outpoint outpost outpreen output outrageously outrate outreign outriggered outromance outsaint outscream outsetting outshine outshut outsit outsleep outsonnet outspent outspread outstandingly outsteal outstretched outsubtle outsweep outtalk outthrow outtrade outvanish outvoice outwar outwave outweight outwit outworld outyard oval ovalness ovarialgia ovarioabdominal ovariopathy ovaritis ovatoacuminate ovatoquadrangular ovenpeel overabstemious overaccurately overaffect overalled overanxiously overartificial overattached overballast overbashful overbeating overbillow overblessed overboast overbooming overbrace overbreed overbroaden overbubbling overburned overcame overcaptiously overcarry overcentralize overcharity overchill overcivilize overcloak overcoached overcomer overcompensatory overconcentrate overconscientious overconsumption overcopious overcourteous overcredulous overcrow overculture overcurl overdamn overdearly overdeliberation overdepress overdevelop overdignifiedly overdiscount overdiversely overdome overdoze overdrench overdue overeasily overeducation overelegantly overemphatically overeruption overexert overexpenditure overextensive overfag overfamous overfatten overfee overfew overfix overflourish overflush overfoot overfrailty overfrequent overfull overgeneral overgifted overglide overgodliness overgrain overgreat overgrossly overhand overhardy overhaughty overheartily overheld overhomely overhuge overhysterical overimitative overindividualism overinfluence overinstruct overinterested overjade overjoyfully overkeep overlace overlarge overlavish overleap overlegislation overlick overling overlively overlong overlover overluxuriance overmantle overmasterfulness overmeddle overmerit overmix overmost overmultitude overnervous overnimble overobedient overofficious overpartial overpatriotic overpersuasion overpiteous overplenteously overpointed overpopulation overpowering overpreoccupy overproduce overpromptly overprosperity overprovide overpunish overrace overrate overreaction overrecord overregulate overrent overrestrain overrighteous overripely overroyal overrunning oversaliva oversaturation overscored overscrupulousness overseated overseethe oversentimentalism oversettle overshadowment overshoot oversight overskim overslide oversmitten oversoftness oversophistication overspaciousness overspeculate overspread overstale oversteadfastness overstock overstraiten overstrictly overstud oversubtile oversurge oversweet oversystematic overtame overteach overtenderness overthoughtful overthwartly overtimorous overtness overtrack overtrim overturnable overurge overvariety overvote overwater overween overwet overwhisper overwintering overwoody overwoven overzeal ovicapsule ovidian ovigenous ovioular ovisac ovococcus ovoidalis ovoplasmic ovovivipara ovulating ovulum owens owldom owllight ownself oxa- oxalate oxalo oxalurate oxamidine oxanillamide oxberry oxeate oxgang oxic oxidation oxidimetry oxidopamine oxindol oxo- oxophenarsine oxtail oxyacoia oxybaphus oxybromic oxycephalia oxychromatinic oxycymene oxygenant oxygenicity oxyhaemocyanin oxyhydrase oxyluminescent oxymyoglobin oxyopia oxyphenol oxyphyte oxyquinone oxysalicylic oxytalan oxytoluene oxyuricide oysterage oysterlike ozaenae ozona ozonium ozophen p-aminopropiophenone p-hydroxyphenyllactate pa pabble pacable pacc pacem pach pacht pachycheilia pachyderma pachydermic pachyhaemia pachymenia pachyodont pachypodous pachystima pacific pacificar pacificatrs pacifisme pacinitis packard packhouse packsack pacos pacts padded paddling paddywhack padiller padow pads paeanism paediatry paedotribe paenula paettiere pagaish paganalia paganity pagdas pageboy paget's paginate pagophagia pagurinea pahoehoe paideutics pailess pain-dysfunction painkillers painsworthy painter's paintress pairedness pait pajahuello pakhtun palaceous palaeechinoid palaeichthyes palaeoatavism palaeoceanography palaeocrystalline palaeodictyopterous palaeogene palaeographer palaeolimnology palaeometallic palaeoniscum palaeophysiology palaeornis palaeostriatal palaeotheriodont palaeotypography palaetiological palaite palander palatableness palateless palatinal palation palatoglossal palatonasal palatoschisis palaverment palchi paled palehearted paleoalchemical paleobiologist paleochorology paleocrystalline paleoencephalon paleogenesis paleographist paleolimnology paleometallic paleopathology paleopotamoloy paleotechnic paleovolcanic palestine paletz palikar palimbacchius palingenesia palinodial palisade pall palladion pallanesthesia pallet palliation pallidipalpate pallidus pallium palluites palmadas palmatae palmatisect palmelloid palmicolous palminervate palmitate palmitoyl-CoA palmodic palmy palouser palpate palpebralis palpifer palpite palsied palterly paludicolae paludous pamaquine pamoate pamperedness pamphletary pampilion pamprodactylous panache panak panangiitis panathenaean panbronchiolitis panchromatism pancosmist pancreas pancreatici pancreaticus pancreatoduodenostomy pancreatolithiasis pancreatropic pancytopenia pandarus pandemonian panderism pandionidae pandowdy panegoism panegyrizer panellation paneulogism pangasinan panglessly panhandler panhuman panicful paniconographic panimmunity panivorous panman panmyelophthisis panneuritic pannikin panoche panoplist panornithic panpathy panpsychistic pansexualist pansophical panspermy pantacosm pantagruelion pantalon pantanencephalia pantastomatida pantelephonic pantheistical panther pantiled panto pantodontidae pantographical pantometric pantomnesia pantopelagian pantopoda pantotactic pantropical panyar papable papal papaphobia papaveraceous papeete paperer papershell papicolar papilioninae papillate papilloedema papillote papism papmeat pappea pappus papulated papulosa papyral papyrography paqeqe para-aortic parabasis parablepsis parabolism parabranchia paracarmine paracentesis paracetamol parachromatophorous parachter paracoccidioidal paracolpitis paracoumaric paracystic paradental paradidymal paradipsia paradisiac paradox paradoxides paradoxus paraesophageal paraffle parafrenal paragastral paragerontic paraglossal paragoge paragonorrhoeal paragraphist parahemoglobin parahypnosis parakilya paraldehyde paralgesic parallactically paralleler parallelizer parallelogrammical paralogia paralyse paralyzed paramaleic paramastoideus parameric parametric paramine paramorphism paramural paramyotone paranasales paranephros paranoiac paranucleate paraoperative parapedesis parapets paraphernal paraphototropism paraphrastical parapineal parapleuritis paraproctium parapsoriasis paraquadrate parareka parasacral paraselene parasital parasiticalness parasitoid parasitotropism paraspinal parasternum parasympathetic parasynetic paratactical paraterminalis parathyroid paratitla paratory paratriptic paratyphi parauterini paraventricular paraxonic parceled parcelment parcheggiare parchmentize pardanthus pardonable parecid parel parencephalous parent-child parenterally parentheticalness parepididymis paresthesia parfait pargo pariahdom paries parieto-occipitalis parietosphenoidal parilla parishen parisienne paritium parkeria parklike parlare parliamentarily parlish parmak parnassiaceae paroarion parochially parodist paroeciously paroket paromoeon paronomasian paronymization paroptic parosteal parotidean parotis paroxazine paroxytonic parraqua parricidial parrothood pars parsifal parson parsonically parsonship partan partership parthenocarpous parthenolatry parthian partials participar participi particular particulate partisanism partitionist partnerless partridging parturiometer parulis parvenu parvis paryphodrome pasang paschaltide pash pasilaly paspalism pasquinian passage passamaquoddy passedes passengers passiately passiflorales passionateness passionlike passive-aggressive passo passulate past-pointing pasteles pasteup pasteurization pastimer pastorage pastorhood pastr pastureless patagial patamar patate patchery patchword patellar patellofemoral patentable paterfamiliar paternalize pathed patheticalness pathic pathochemistry pathogenesy pathognomonic pathologicoanatomical pathometric pathophoric pathos pati patient-centreed patieses patis patra patriarcat patriarchically patricianship patrilocal patriot patripassianism patrita patrocinium patrolmen patronessship patronomayology patry pattener patternlike pattu paty pauciloquent paucity paulian paulinist paulopast paunchful pauperization pausably paussid pavemental pavilion pavisado pavonia pawk pawnbrokeress paws paxillosa payagua payig paynimhood paytine pazza pbis pched pctated pder pe peacebreaking peacemonger peachick peacockery peage peakiness peale pearl-worker's pearlish pears peasantism peasecod peastone peau pebbly pecary peccary peck peckle pecos pectinacean pectinatofimbricate pectinibranchiata pectinose pectoralgia pectorophony pectus peculiarsome pedagogic pedal pedalist pedantically pedary pedatisect pede pedestrial pedi pediatrist pedicelliform pediculation pediculoparietal pediform pedimented pedipalpate pedis pedodontology pedometer pedophilic peduncle pedunculotomy peeled peenge peerdom peership peever pegall pegbox pegless pegomancy pegtrisser peie peisage peixere pekin pelagial pelargikon pelasgian pelecaniformes pelew pelicosauria peliosis pellagragenic pelle-like pellian pellmell pellucidum pelobates pelomedusoid pelorian pelqers peltatodigitate pelting pelvi- pelvimetry pelvirectal pelvoscopy pelycosaurian pembroke pemphigus penalizable penbutolol penciling pendant pendicle pendulation penelopean penetrableness penetrates penetrometer penhead penicillately penicilloic peninsular penitent penmaker pennales pennatisected penner pennilessness pennopluma pennyhole penologic pensacola pensionably penstick pentacarbonyl pentacoccous pentactine pentadecagon pentadodecahedron pentaglottical pentagynia pentahydrate pentamer pentamethonium pentanedione pentapetalous pentapody pentasilicate pentastomous pentathionic pentavalence pentecoster penthestes pentimento pentolinium pentoxide pentstemon pentzia penuriously peony peorias pepful peplum peppercr pepperproof peppy pepsinogenous peptide-specific peptidylamidoglycolate peptococcus peptonate peptostreptococcus per- peradventure perambulatory perati perbromic percarbureted perceiver percentile perceptions percet percheron perchromate perclose percomorph perculsive percussive perdadr perdix perdure peregrine peremptory perennially perfectation perfecting perfectionizer perfecto perfidious perfoliata perforating perforin performing perfumes perfuse pergolide perhydrogenation periamygdalitis periapical periarthric periaxonal peribronchiolitis pericanicular pericardiacophrenicae pericardiomediastinitis pericardium pericementitis perichaeth perichondrium pericladium periclinium pericopal pericranium pericystium periderm peridiastolic peridinid peridotite perienteritis perifuse perigemmal perigon perigyny perijejunitis perilenticular perilunar perimeningitis perimetry perimyositis perinealis perineotomy perineural periodical periodograph periodontolysis perioikoi periople periosteal periosteosis periostotomy peripatetic peripatus peripherad peripherocentral periphrasis periplasm peripneumonia periproctic perique perisarcous periseptal perisigmoiditis perispermal perisplanchnitis perisporiales perissology peristeria peristeropodan peristome peristylos peritendinitis perithyreoiditis peritonei peritoneotomy peritrematous peritrochanteric periungual perivaginitis perivitelline perjinkities perjurous perkins perlefarbig perlustrator permanentness permeant permian permissive permitter permtazii permutatorial perniciosiform pernitrate perochirus peromelous peroneorum peropoda peroratorically peroxidase peroxy perpediclare perperfect perpetratrix perpetuate perplexedness perquisitor perrier pers perscribe persecutingly perseid persevera persian persienne persism persistive personae personalized personed personnel perspectography perspicuousness perspiringly persuaded persuasively persulphocyanogen pertas perthite pertinency perturbance perturbatrix pertuse peruke peruse pervagate perverseness pervertible perviously pesade pesate pese pesies pesptead pessimist pestalozzianism pesthole pestify pestle petadactylism petalite petalody petard petauristidae petechiate petersham petiolate petite petitionproof petrarchan petrea petrifaction petrine petrobium petroglyphy petrolean petrolize petromyzontidae petroselinum petrosquamosal petroxolin petticoatism petting petulant peucites pewfellow pexin pez pezophaps pfeifferella pg pgrpra phacochere phacoemulsification phacolytic phacotherapy phaenogenesis phaeodarian phaeosporales phaeton phagocytal phagocytolytic phainolion phalacrocoracidae phalaenopsis phalangerine phalangiform phalangistine phalansteric phalera phallic phallocampsis phallotomy phanerocarpous phanerogamous phanerosis phantasiast phantasmagorical phantasmatically phantasmology phantomize pharaoh pharisaicalness pharmaceuticals pharmacodiagnosis pharmacognostically pharmacologist pharmacopeia pharmacoposia pharmic pharyngea pharyngic pharyngobranchial pharyngoglossal pharyngological pharyngoplegia pharyngospasm pharynogotome phascum phaseollin phasianidae phasmatid phasmophobia pheasat phellogen phenacemide phenakism phenate phenelzine phenetsal phenicious pheno- phenogenetic phenologically phenoluria phenomenic phenoplast phenotypic phenozygous phenylacetamide phenylamide phenylene phenylglycolic phenylketonuria phenylthiocarbamide pheochromoblastoma pheophytins phersephatta phialospore philamot philanthropinist philatelic philematology philhymnic philippism philistinely phillipsite philobotanist philocynical philodoxical philographic philologer philomath philomuse philopagan philopornist philosoph philosophical philosophist philosophunculist philotherian philterer phiomia phlebectasis phlebo- phlebolith phleboplasty phlebothrombosis phlebotomy phlegmatically phlegmonous phlogistian phlogogenic phloretin phloxine phlyctenosis phobic phocaenina phocinae phodopus phoenicid phoeniculus pholadidae pholidolite phonal phone phonestheme phonetics phonism phonoglyph phonographical phonology phonophile phonoplex phonotypically phoresis phorometric phoronomics phosgenic phosphamidic phosphatidal phosphatidylethanolamine phosphatization phosphinic phosphoamino phosphodimethylethanolamine phosphoethanolamine phosphoglyceric phosphokinase phosphomevalonate phosphonylated phosphorate phosphoreum phosphoribosyltransferase phosphorize phosphoruria phosphorylphosphatase phosphotriose phosphyl photechy photism photoactivation photoautotroph photocatalysis photochemical photochromic photochronographically photocomposition photodisintegration photodynamic photoelectrically photoepinastically photofinishing photogenetic photogram photographess photogyric photohyponastically photokinesis photologic photolyze photometeor photomicrograph photomyoclonus photooxidase photophane photophonic photopic photopositive photoradiation photorefractive photoscope photosensitizer photostability photosynthesis phototactic phototelephony phototimer phototrope phototypically photozincographic phragmocyttares phraseable phraseographic phrasy phrenectomy phrenicae phrenicoglottic phrenicosplenicum phrenocolic phrenologic phrenopericardiac phronesis phrygian phrynolysin phthalazine phthalmlgie phthiocol phthisiogenetic phthongometer phycitol phycocyanin phycomater phyla phylactocarpal phyle phyllary phyllo- phylloclad phyllodial phylloid phyllophaga phyllopodiform phylloscopus phyllostomatinae phyllotaxis phylogenesis phylon phymatorhysin physaliform physarum physeteroid physic physician's physicians' physico-theology physicology physicophilosophy physidae physiogenesis physiognomonical physiolatry physiologue physiophyly physiotherapeutics physiurgic physoderma physophorous physostomous phytic phytobiology phytoecologist phytogeny phytographist phytolatrous phytology phytometry phytonic phytopathological phytophenological phytophysiology phytorhodin phytosociologically phytoteratologic phytotoxicity pia-arachnitis piaffe pianet piankashaw piarachnoid piastra piazzaless picae picarii piccalilli piceoferruginous pichuric pickaback pickedness picketboat pickled pickmire pickshaft pickwick picnickian picokatal picot picrated picrolite picrotoxinin pictones pictorically picture-frustration picturer picudilla piddle piebald piecener piedi piel piepoudre pierceless pierides pierson pietic pieza piezometrical pigbel pigeon-livered pigeonry piggery pigheaded pigmaker pigmentolysin pigmets pigritude pigweed pika pikie pilastered pilcher pileolated pilewort pilgrimage pili pilimiction pillagee pillarwise pilliver pillowing pilmy pilojection pilosism pilotman pilte pilumnus pimelitis pimieta pimping pimploe pinachrome pinacolin pinales pincement pinchcommons pinchgut pinda pindling pinealocyte pineoblastoma pinfeather pinguecula pinguiferous pinhook pinionless pinked pinkiness pinkwood pinnae pinnation pinnet pinniped pinnotere pinny pinoresinol pinscher pintail pinup pinyon pioted pipage pipeful piperaceous piperidide piperonal pipevine pipingly pipobroman pipradrol pipunculidae piquia piratas piraya pirijiri pirol piroxicam pisatin piscatorially piscicolous piscinal pisettia pisiforme pisolitic pissammet pissoir pistic pistilline pistole pistonhead pitangua pitch-ore pitchfork pitchpoll pitg pithecia pithful pithwork pitifully pitless pitpan pittance pittosporaceae pituicyte pituite pitylus pivalate pixie piz pl placate placebo placement placentation placet placid placoderm placoganoidean placula plaetarim plagianthus plagiary plagioclinal plagiostomous plague plaguy plaimeters plainhearted plainstones plainward plaitiff planaea planation plandok planetable planeting planetology plangor planimetric planirostrate planitis planktologist planned planocylindric planometry planoscopic plant-eating plantain plantationlike planting plantule planus plarigmetr plarizables plarizes plashy plasmageic plasmals plasmatorrhexis plasminoplastin plasmode plasmodiocarpous plasmolysis plasmoptysis plasome plasterlike plasticine plastidial plastochondria plastosome plataean platane plate platelayer plateman platform platfrms platinate platinochloric platitudinal plato platonician platosammine platting platycarpous platycephaly platycodon platydolichocephalic platyhelminths platymyoid platypnea platyrhynchous platysomid platysternidae plauenite playa playcraft playfield playig playmate playsome playwright ple pleadingly pleasantish pleaship pleasureful pleasurist plebeity plebiscitarian plecopteran plectopter plectrum plegadis plei pleion pleipteciari plemicist plenarty plenipotential plenitide plentify pleocrystalline pleomorphist pleonectic plera plerome plesiobiosis plesiosaurus plethodontid plethric pleuracanthini pleurenchyma pleuro- pleurocarp pleuroclysis pleurodiscous pleurolysis pleuroperitonaeal pleuropulmonary pleurothotonic pleurotonic pleustonic plexitis plexuum plgmla plica plicatile plicatulate plicies plight plinian pliopithecus plish pliticias plla plltat plmbagis plmls plocytic ploimate plote plottage ploughshare ploverlike plowgraith plowpoint ployment plralistically plralizers plt pltgic plucked pluffer plughole plumade plumbable plumbeous plumbless plumdamis plumery plumigerous plummet plump plumulaceous plunderable plunger pluralist pluriaxial plurifacial plurilateral pluriparous plurisetose plush plutarch pluto pluton plutonomy pluviography plvegrisat plverized plyadre plymouthite pmp pneophore pneumatically pneumatized pneumatogenic pneumatologist pneumatophany pneumatotactic pneumoarthrography pneumococcaemia pneumococcus pneumoempyema pneumography pneumolithiasis pneumomyelography pneumonocace pneumonoenteritis pneumonomycosis pneumonotherapy pneumophora pneumoscope pneumothorax pneusis poachy pochette pocketknife pockweed pocoson podagrical podargue poddish podge podical podler podocarpaceae podofilox podomechanotherapy podophthalmian podoscaph podostemon podsol podzolic poecilogonous poemet poet poetesque poetics poetress pogoniasis pogrom poietic poikilocyte poikilothymia point pointers pointlessly pointways poisonfully poisonweed pokeberry pokeweed pol polar polariscope polariton polarograph poldavis poleburn polemician poler polian policemanlike policyholder poliodystrophy poliorcetic polisher polite politician politics poll pollbook pollenosis pollicitation pollinic pollinoid pollutant polly polonia poloxalene poltophagy polverine polyactina polyadenoma polyamide polyandrist polyanthus polyarthrous polyaxonic polybranchian polycarboxylic polycentric polychloride polychresty polychromatocyte polychromophil polycladida polycoccous polycotyly polycyclic polycythemica polydaemonist polydioxanone polyeidic polyene polyestrous polyfructose polygamian polygamy polygenetic polyglobulism polyglottism polygonal polygonous polygroove polygynous polyhedra polyhidrosis polyhypermenorrhoea polykaryocyte polylobular polymastigida polymathy polymere polymers polymicrian polymnia polymorphocytic polymyodae polynemid polyneuric polynomial polynucleotidases polyoecism polyonymal polyorama polyoxyethylene polyparium polypetal polyphalangism polyphemian polyphobia polyphony polyphyletic polypian polyplacophoran polypnea polypodous polyporoid polypragmasy polyprene polypseudonymous polyptoton polyrhythmic polysaccum polysemeia polysidedness polysomes polyspaston polyspora polysteraxic polystomella polysulphuret polysyllogistic polysynthesism polytendinitis polythalamous polythene polytonal polytrichia polytype polyvalent polyzoan pomace pomane pombo pomiculturist pommet pompa pomphus pompoleon ponce ponder ponderative ponderousness pondside ponerine ponier pontage ponticello pontifically pontine ponton pooder pool poon poor-willie poorwill popeism popglove popjoy popliteus poppable popple popular populational populous porcelainised porcellanian porcupine porencephalus porifera porins porites porkling pornographic poroconidium porometer porosimeter porphine porphyrianist porphyrite porphyroid porporate porrigo portableness portalis porte portentosity porterly porthors portion portland portmanteau portography portraiture portress portulaca porule posed posit positive-pressure positron pospolite possessingly possessionless possessorship possidetis post-steady postable postalveolar postarsphenamine postaxiad postbrachium postcapillary postcava postcesarean postclitellian postcommissure postconnubial postcritical postdiaphragmatic postdisseizor postelection posterbasal posterioristic posterity posteroexternal posteroparietal posteternity postfebrile postfoveal postglacial posthepatic posthouse posthypophysis postilion postinfective postlaminar postliminous postmammary postmastoid postmedullary postmesenteric postmortal postnarial postneurotic postomental postpaid postparturient postphthisic postponer postpredicament postpuerperal postreduction postrider postscapularis postsign poststertorous posttecta posttonic posttussis postulation postureteric postvenereal postwise potage potamogetonaceous potash potation potbelly poteen potentially potently potgirl pothole potichomania potluck potoroo potstone pottery potware pouched poulard poultrydom pouncet poundlike pouring poussette povidone powderization powellite powerlessly powter pozzuolanic ppil pprtism pr practicalism practiced practitioners praecava praecornu praefloration praemorse praeoperculum praesidium praetorial pragmatical prague praisably praisingly praline prancy prankish prarisly prasophagy pratfall pratiqe pravastatin praxis prayermaker praziquantel prcelai prchasig prdcts pre-B preabsorb preaccidentally preaccredit preacherdom preachig preacidness preactive preadapt preadherent preadministrator preadore preadvertisement preaffidavit preaggravation preagricultural preallegation preallusion preamble preanal preanticipate preapprobation prearticulate preataxic preaxiad prebankruptcy prebelieving prebeset preblockade prebridal preburn precancer precapitalistic precarnival precaution preccidad precedentary precensure precentrum preceptorially preceremony precharge prechoice precious precipitancy precipitation precipitogen precise precisioner preclaimant precliic preclusion precogitate precoincident precollude precombustion precommunicate precompiler precompoundly preconceive preconcernment preconcur preconduct preconfigure preconfusedly preconize preconsciously preconsolidated preconsultation precontemporaneous precontractual preconversation precook precordially precorrespondent precounsellor precreditor preculturally precurse precystic predarkness preday predebit predecide prededuct predeficient predelay predeliver predenial predependence predere predeserving predespise predestinationism predetachment predetermination predevelopment prediatory predicamentally predict predictive predigest prediminishment predisability prediscern prediscontinue prediscretionary predismissal predisplay predispositional predissuade predisturb predivorce predominant predormital predread predwell preener prefaceable prefatial prefearfully prefecture preference preferredly prefestival prefigure prefixal preflavoring preforgive preformism prefragrance prefrighten prefungoidal preganglionic pregenerosity pregladden pregnancies pregnantly pregracious pregrowth preguilt prehandicap prehaunt prehemataminic prehensory prehistorically prehorror preictal preimagination preimperial preimpression preinclusion preindependently preindulge preinflectional preinitial preinsinuate preinstill preinsurance preintercourse preinvention preinvolve prejudge prejudiciable prekallikrein prelachrymal prelaryngeales prelatish prelawfully prelegate preliberal prelimit preliterary preloral prelusion premake premanufacture prematrimonial premechanical premeditatedly premenace premial premiership preministry premiums premolding premonocyte premorbidness premove premunicipal premythical prenational prenegligence prenodal prentice prenylcysteine preobservation preobvious preoccupation preodorous preomission preoperculum preoption preoriginally prepalatine preparative preparental prepartisan prepayment preperceptive prephenic preplacement prepolitic preponderantly preportrayal prepossessed prepotence preprice preprogramme preprostate preprudent prepublication preputial prequestion prereadiness prereckoning prereduced preregal prerelease prerenal prerequisite preresponsible prereversal prerighteousness preroyal presacrifice presanctification presay presbyopia presbyterially presbytis prescind prescribing prescriptorial presecure presenilis presentation presentiality presently preservation preses presharpen presidency presideta presidio presignificative presolicit prespecification presplenic press pressfat pressive pressroom pressurized prestandard presterilized prestigiation prestock prestretched presubject presubsistent presufficiently presumably presumptuous presupervise presupposition presurprise presuspiciously presymptom pretabulation preteach pretemperate pretendingness pretentative preterdiplomatically preterite pretermit preternuptial pretertiary prethoughtfully pretoken pretrace pretranslate pretribal prettyism pretritgparticipi prevacate prevalence prevalue prevenance preventer prevents prevesical previgilant previsibly prevocational prevoyant prewillingness preworthy prezone prfesres prgrafic prgsis priapean priapusian pricem pricipality priciples prickle prickmadam prided pridy priesteen priestlike prigger prillion primarian primateship primer primi primipara primitively primogenital primordial primrose primulaveroside princecraft princeps principal principiation prinkle printery priodontes prionodont priori pririties priscillianism prismatization prison prissily prit prius privateness privily prizer prle prmrsamete proabolitionist proacrosomal proadoption proairplane proamnion proannexationist proarbitrationist proatlas proavil probabl probankruptcy probationer probattleship probing problematical probonding proboscidifera proboxing probuying procapital procarrier procedendo procellarian procensure proceres processional processus prochlorite prochronic procivism proclassic proclivity procollagen procommission proconcession proconscription proconsulship procosmopolitan procreant procrit proctagra proctitis proctocystoplasty proctologist proctoptoma proctorling proctosigmoiditis proctotrypid procurance procurement procyoniformia prodefiance prodigal prodigiozan prodivision prodromus producership productid productoid proeguminal proemium proepisternum proetidae proexposure profanely profederation professional professionize professorially proficient profilin profiting profligate profound profundus progamic progenitive progeotropism progger prognathy prognosticator programma programs progressional progressivism prohaste prohibitor proidealistic proinsurance projecting projectrix prokeimenon prolactin-producing prolapsion proleague prolegomenon proletarianization proleukocyte proliferative prolificity proliterary prolocutress prologuizer prolonging promagisterial promatrimonialist promercy promethestrol prominens promiscuousness promisingly promnesia promonopoly promotable promotive prompter promulgator pronase pronatus pronephron pronograde pronounce pronuclear pronymph proofness propaedeutic propagandist propagatress propanethial proparacaine propatagial propellant propenoic propeptone propertyless prophesier propheticly prophototropic propicillin propiocortin propionitril propitiation proplasma propliopithecus propolitical propopery proportionately propose propounder propranolol proprietorial proprioceptive-oculocephalic props propugnation propupa propylbenzilylcholine propylparaben proration proreciprocation prorelease prorestoration prorogate prorsad prosaicalness proscholastic proscriptional prosecretion prosecution proselytist prosencephalon prosification prosing proslaveryism prosodal prosodical prosomatic prosopically prosoponeuralgia prosopyl prospectus prospherosome prostaglandin-endoperoxide prostatectomy prostato- prostatorrhoea prosternum prosthetist prostitutely prostrike prosurrender protagoreanism protandry protarsal protea protect protectionist protectorial protegulum protein-N-pi-phosphohistidine protein-serine-threonine proteinosis protempirical proteogenous proteopectic proteosome proteroglyphic protestable protestatory protext protheatrical prothonotaryship prothrombogen protista proto-oncogenes protobasidii protobranchiata protocercal protochordate protococcus protocols protoderm protoelastose protogenesis protograph protohistoric protokylol protolysosome protomartyr protominobacter protonema protonic protopappas protoperlaria protopine protopodial protopresbytery protorebel protorthopteran protosiphonaceae protostele prototaxites prototroch prototyrant protoxylem protozoological protractedly protraditional protreptic protrusible protuberans protureter proudish proustite provect provence prover proverblike providence providers provincialization provision provisive provocation provoker provostship prowl proxically proximo- prozapine prpia prqe prstate prtecci prtg prudent prudishly prunableness prunello prunted pruritis prussification prveits prvidig pryectar prytany psalmister psalmographist psaltes psammology psarolite psephism pseudaconitine pseudamoeboid pseudarthrosis pseudencephalic pseudepiscopacy pseudo pseudo-coarctation pseudo-symmetric pseudoaconitine pseudoalcaligenes pseudoanaphylaxis pseudoanodontia pseudoaquatic pseudoasymmetry pseudobiological pseudobrotherly pseudocarpous pseudocentrous pseudocholinesterase pseudocirrhosis pseudocoelia pseudoconcha pseudocotyledon pseudocultural pseudodeciduosis pseudodiphtheria pseudodramatic pseudoepitheliomatous pseudoevangelical pseudofluctuation pseudogaseous pseudogermanic pseudograph pseudogyny pseudohermaphroditism pseudohydrophobia pseudoicterus pseudoisatin pseudolabial pseudolegal pseudoliterary pseudolymphocytic pseudomaniac pseudomeningitis pseudomilitarist pseudomonas pseudomorphine pseudomultiseptate pseudoneoplasm pseudonuclein pseudonymuncle pseudoparenchymatous pseudoperianth pseudophacos pseudophoenix pseudopneumonia pseudopolitic pseudoprimitive pseudopsia pseudopyriform pseudoregal pseudoromantic pseudoscarus pseudoscorpion pseudosiphuncal pseudosophical pseudospiracle pseudostereoscopic pseudosuchia pseudotachylite pseudotrichinosis pseudotubular pseudovelum pseudowhorl pshchair psilanthropy psilomelane psilotaceous psittacid psittacus psomophagist psoriatic psorosperm pssibiliteg pstal pstma psychalgalia psychean psychiatrical psychicism psychoacoustics psychoauditory psychoclinic psychodynamic psychogender psychognosy psychohistory psycholinguistics psychologue psychometrics psychoneural psychoorganic psychopathologic psychophysically psychoprophylaxis psychormic psychosexually psychostatical psychotechnician psychotic psychroesthesia psychrotolerant ptarmic ptenoglossa ptere pteridography pteridophytic pterocarpous pterodactyl pterographic pteropaedic pteropidae pteropterin pterostigmal pteroylpolyglutamic pterygoidal pterygomaxillaris pterygophore pterygotous ptetial ptic ptilinum ptilosis ptimistically ptisch ptolemaist ptotic ptyalagogue ptyalolithotomy ptyxis puberulent pubigerous publicism publisher pubofemoral pubotibial puccinoid puckball puckishness pudding puddlelike pudendi pudibundity puebloization puerility puet puffily pug pugilant pugnaciously puist pukishness pulchellus pulicans pulicosity pulldevil pulli pullulation pulmograde pulmonarian pulmoniferous pulpaceous pulpifaction pulpitful pulpitry pulque pulsative pulselessness pulsometer pulverise pulverulently pulvinately pume pummeler pumpellyite pumple punaluan punching punctation punctiliously punctuational puncturation punditic pungence punicaceae punishable punitively punless punnology puntil pupa pupiferous pupilize pupillometer pupivora puppetlike puppyfish puquinan purcell pure purfled purgatory purificator purine-restricted puritanic purkinje purloiner purplely purposedly purposive purpurea purpurin purre pursed pursley pursuits purupuru purvoe pushball pushingness pusillanimousness pussyfooting pustulelike putaminous putelee putredinal putresce putridity putt puttyhearted puzzledness puzzler pwdery pycnia pycno- pycnogonida pycnonotus pyelitis pyelolithotomy pyelotubular pygal pygmalionism pygoamorphus pygopodine pyjamaed pyknotic pylethrombophlebitis pyloricum pyloroptosia pyo-ovarium pyoctanin pyoderma pyogenous pyonephrosis pyoplania pyopyelectasis pyosepticemia pyoureter pyralid pyramidaire pyramidellidae pyramidize pyramis pyrausta pyrenaemia pyrenodean pyrethrin pyretogenetic pyrexic pyrheliometry pyridium pyridyl pyrite pyritohedral pyroarsenic pyrocatechol pyrococcus pyroelectricity pyrogenetically pyrognostics pyrolaceous pyrologist pyromancer pyrometamorphism pyromucate pyrope pyrophorus pyrophosphoramide pyrophyllite pyrosmalite pyrosulphate pyrotechnician pyrotoxin pyroxenic pyrrhichian pyrrhotine pyrrole pyrrotriazole pyruvate pythagoreanize pythiacystis pythogenic pythonism pyx pzie pchable qackery qadragle qadratically qadripartitely qadrples qails qalificazie qardarba qarterdecks qarzite qatidade qavery qedar qeijaria qereller qestes qicagegsim qie qiie qirpractic qitesseza qizav qtazii quabird quacks quadra quadrangled quadrantic quadratic quadrature quadriarticulate quadrichord quadricrescentoid quadriennial quadrifolious quadrigate quadrihybrid quadrille quadrimaculatus quadriparesis quadriplegia quadrireme quadrisulphide quadrivalent quadrula quadrupedantical quadruplicate quaestorian quagmiry quaintise quakeress quakership qualificative qualimeter qualmishly quandy quantification quantities quantum quarenden quarrelingly quarry quartenylic quarterfinal quarternary quartetto quartole quartzose quasidiploid quasje quatern quaters quatrefoliated quatuorvirate quay queak quebrachine queencraft queenly queerish quegh quemely quenselite quercinic querendi querist querulity quesited questionableness questionnaire quetenite quiblet quickened quickly quickthorn quiddle quietener quietude quill quillfish quimbaya quiname quinate: quinch quindecasyllabic quinethazone quinin quinite quinocarbonium quinolinium quinonediimine quinova quinquagenarian quinquedentated quinquelobared quinquenniad quinqueradial quinquetubercular quinquevirate quintad quintennial quintetto quintius quintuplication quipful quira quirkiness quisle quit quitted quiverish quizzability quizzically quo quodque quondam quotably quoter quotity rCjcti rabanna rabbeting rabbin rabbinite rabbitmouth rabble rabbrividire rabid rabirubia racamete race racehrses racemizati racemous rache rachides rachiochysis rachioscoliosis rachitisme racialistic racism racket rackett rackway racter radarscope radfahre radiactively radiality radiary radiatgraf radiation radiator radibilgic radicality radicarb radici radicolous radiculectomy radieclgy radikalisiert radimeters radio-iodinated radioautogram radiocarbon radiochlorine radiodense radioelectrophysiologram radiogold radiohumeral radioiodinated radioli radiologist radiometallography radioneuritis radiophare radiopill radiosensibility radiosulfur radiotelephone radiothorium radiotropism radiscpic raditherapy radman radways raffia rafflesia raftsman ragazze rages raggi ragingly ragpidamete ragule raibws raiidae railingly railroader raiment raincoat rainlight raioid raisins rajasthani rakehell rakishness rallinae ramage ramberge rambutan ramentaceous ramet ramiferous ramiparous ramme ramnes ramososubdivided rampancy rampike ramscallion ramular rana rancer rancid rancorproof randir randomness rangeli rangle ranine ranking rannigal ransomfree rantingly ranvier's rapaciousness rape raphania raphidiidae rapidita' rapinic rappel rapscallionly raptores rapturize rare rareness rasa rascality raschiat rashful rasorial raspberrylike rasse rastrelliera rata ratbite ratchment rates ratherly ratificationist ratiocinative rationalist rationalness ratline rattan rattlebones rattlepate rattlesnake rattoner raucously raurici raveled ravenala ravenousness ravine ravishingly rawhider rayleigh ray razorable razoxane razzly rbbig rble rchestras rd-trip rdiary rdste reabsence reabuse reaccomplishment reacer reachy reactance reactionary reactivity readable readdition readily readjudicate readmit readvancement reaffection reafforestation reaggressive real realignment realiza realizingly reallot realness reambitious reanchor reannoy reapology reapplicant reappraise reapprove rearisal rearranger reascendancy reask reasonless reassembly reassimilate reassurance reastonishment reattend reaudit reavouch rebab rebajadr rebankrupt rebargain rebeamer rebeg rebelief rebellow rebestow rebind rebloom rebob reborn rebrace rebrick rebuckle rebuilt rebunch rebury rebutting recalcine recalibration recancellation recapitalize recaptivation recarburize recasket recchie recco receiptless receiver recense recentralize receptant receptivity recer recessitivity rechabite recharge recherche recia recidivity recipient reciprocating recision recitationist reck reckoning reclaimment reclear recliner reclusion recoach recogitate recognizant recohabitation recollation recollectiveness recombine recommendably recommitment recompensation recomplaint recomprehend reconcentrate reconcileless reconcilingly reconditely reconfinement recongelation reconnoissance reconsecration reconstitute reconstrue recontraction reconvention reconvince recordation recordless recount recouple recoverer recrate recreate recremental recriminatory recrudescence recruitment rectales rectangulometer rectifying rectinerved recto rectocolonic rectoral rectostomy rectovesical recubant recuperating recurred recurringly recurve recusant red-cell redactorial redart redbone redd reddition redecide rededicate redeemer redeflect redelivery redemptioner redenigrate rederivation redesire redevelopment redheadedly redient redintegrative rediscipline redispatch redisseisor redistiller redisturb redivorcement redness redoublement redpole redressable redroot redthroat reducer reductibility reductor reduplicative redware reed reediness reedwork reel reentry reesty reewed refascination refective refel referendary referrer refillable refinedly refit reflationism reflecting reflectometry reflexibility reflexograph refloatation refluence refoment reforestize reformableness reformatness reformproof refoundation refractional refractor refrainment refresh refreshment refrigeratr refuel refulgently refusable refusive regacter regajste regaliser regalvanization regardfulness regatta regency regeneratory regermination regicidal regimens regina regionally registierte registrationist reglair reglet regnant regraduation regrator regression regretfulness regrip reguarantee regularize regulations reguline regush rehandler rehaul rehearsing rehoe rehumble reia reichspfennig reification reillume reimbarkation reimmerge reimplant reimpression reinauguration reincite reincur reinduce reinfer reinforcement reinherit reinquire reinspection reinstatement reinsurance reinterfere reinterview reintuition reinvestigation reirrigate reitbok reiteratedness reject rejector rejoicing rejustify rekick relace relap relatability relational relativ relativize relaxatory relayman release-inhibiting relegable relessee releveg reliant reliction reliever relightable religionist relime reliquary relisher relle relock reluctancy remagnetization remaining remancipate remanufacture remarkedly remass rembrandtism remediation remelt remembrancership remication remilitarization reminds reminiscential remiss remissly remittee remixture remodeled remonetize remonstratory remorseless remotum removedly remta remunerativeness renably renalis renavigate renders renealmia renegotiate renewal renidification renipericardial renne renography renotation renouncer renovize rentability rentrant renunciator reoblige reoccurrence reopened reordination reoutline reoxygenize repaganizer repairs reparability repark repassage repatronize repeal repeated repellence repenetrate repercept reperformance repertoire repetiamete repetitive rephosphorize repineful replaceable replane repleat repletive replicase replier replum repollute reportage reportorial reposer repost reprecipitation reprehensible represent representationist represents repression-sensitization reprids reprint reproachable reprobance reproceed reproducibility reprohibit reproportion reprovably reprter reptile reptility republisher repugn repullulation repulsiveness repurple reputatively requeen requin requisiteness requitative reracker reredos rerent reroof res resalute resazurin rescore rescueless researching reseda reseizer resembler resentationally resequent reservationist reserver reset reshape reship reshunt residental resideze resift resigner resilin resiner resink resinosis resistable resistful resistless reslate resmile resoiling resolute resolvase resonant resorcin resorter resourcefulness resparkle respectful respectworthy respirare respire resplendently respondents responsibility respot respue restack restare restbalk restfl restiffen restionaceae restitutionism restock restoratively restproof restraintful restrictedly restrictiveness restructured resubjugate resubstitution result resultive resuming resupinated resurgence resurrectionism resuscitation reswear resmees retainability retake retame retardatory retariff reteir retene retepore retheness rethrow reticence reticulare reticulatocoalescent reticulo- reticulohistiocytosis reticulotomy retin retinalite retinitis retinoic retinoschisis retinulate retiredly retmbar retoother retothelioma retrack retractive retraining retransform retransplanted retrcess retreative retributive retrieved retroact retrocaecal retrocession retrocollic retrocuspid retrofitted retrofracted retrogradient retrohyoid retrojugular retromandibularis retroperitoneal retroplasia retropulsive retroserrulate retrosternal retrotransposons retroverted retruded retter returf retuse reundercut reunion reuphold rev revaluate revascularization revealingness revelant reveling revelt revengefulness revenuer reverberatory reverential revers reversely reversification reversionist revertible revetment revictual revieweress revilingly revise revisionist revisualize revivalistic revivingly revlverse revokement revoluble revolutioneering revolvency revulsion rewallow rewardingly rewave rewelcome rewinder rewove reyield rezbanyite rgaism rgaize rggire rhabdiasoidea rhabdocoele rhabdomancer rhabdophane rhabdosphere rhacomitrium rhagiocrin rhamnaceous rhamnohexitol rhamphosuchus rhapsode rhaptopetalaceae rheber rheic rhemist rheoencephalography rheophoric rheotome rhetoric rheumatica rheumatize rheuminess rhinal rhineland rhinidae rhinocaul rhinocerotic rhinoestrosis rhinologic rhinonecrosis rhinophyma rhinorrhoea rhinothecal rhipidium rhipipterous rhizobiaceae rhizocephalan rhizogen rhizomelia rhizophilous rhizopodan rhizostomous rhodamine rhodeoretin rhodinol rhodocystis rhodophyceous rhodoraceae rhodotypos rhombencephalic rhomboganoid rhomboid rhombovate rhopalocerous rhubarb rhymelet rhymy rhynchocoelan rhynchophorous rhynia rhyparographic rhythmal rhythmize rhytina riantly ribaldish ribaudequin ribbon ribbony riboflavinoid ribonucleotide ribosemonophosphates ribosyltransferase-isomerase ribskin ricam ricciales ricevitre richen richness ricinelaidin ricinulei rickettsiaceae rickety rico rictal riddance riddlings riderless ridgeling ridgil ridiculer ridrre riemann rietalisch rifampin rifian riflemen rifrzat rigation riggish right-hearted rightheaded rights rigially rigidus rigliatre rigolette rigsmaal rilasciare rillstone rimantadine rimfire rimose rinaldo rinehart ringbill ringeri ringingly ringlety ringster rinka rinsing riotistic riparian ripeningly ripost rippit ripsack ris risciacqare rishmet riskan riskless risquee ristr riteless ritm ritter ritualless rivalize river riverhood riverside rivethead riviste riyadh rl rlgi rmatic rmre roadbed roadless roadstone roaming roasting robbins roberts roble robotic robustful roc rochelime rockallite rockelay rockfall rockland rockstaff rocoa rodential roderick rodlike rodriguez roentgen-equivalent-physical roentgenography roentgenotherapy rogers roguishly roisterer rokitansky-aschoff rollback rolleyway rollicky rollway romaji romancelike romanes romanistic romant romanticize rombowline romipetal romping roncaglian rondeletia ronidase ronyon rooflike rookeried roomette roomstead roost rootball rooting rootwalt ropebark roperipe roping rorer rorty rosal rosario rose rosedrop roselike rosenbergia roseolous rosette-forming rosewort rosinduline rosminianism rostellar rostrally rostrolateral rotal rotanev rotating rotatorian rotge rotiform rotproof rottlera rotund rotundotetragonal rougeot roughdry roughhewn roughleg roughslant rougy rouncy rounder roundly roundtail roupily rousseau rouster routhy routinize rovingly rowdydowdy rower rowport royale royet rptra rses rstic rthdxes rttig rubberize rubbish rubdown rubellite rubescence rubican rubidus rubineous rubredoxin-oxygen rubrician rubrobulbar rubylike ruckle rudbeckia ruddiness ruderal rudimentum rudolph ruesomeness ruffian ruffle ruficoccin ruft rugby rugitus ruin ruinlike ruledom rum-blossom rumbling rumbustiousness rumgumptious ruminating rummager rumormonger rumple run rundale runer runically runner runology runtish rupia rupioid ruptures rurally rushed rushlit ruspone russety russine russophilist rustful rusticize rustlingness ruta-baga ruth rutherfordite rutile ruttiness rvesci ryanodine rypeck rseax s s'elever sAMP sabaean saban sabbatarian sabbathize sabbaticalness sabdariffa sabellidae sabertth sabina sables sabras sabt sabtatre sabulosity sacada sacc saccarimetri saccharate saccharifier saccharine saccharobacillus saccharohumic saccharomyces saccharone saccharosuria saccholactate saccobranchus saccomyoidean saccule sacerdocy sacerdtalism sachlich sackclothed sackmaker sacr sacrament sacramenter sacrametally sacred sacremets sacrificator sacrificially sacrileggi sacripant sacrococcygeal sacrodural sacroischiadic sacroposterior sacrospinosum sacrsact sactify sadde saddle saddleleaf saddletree sadess sadiron sadisticamete sadmasqigstic saecula saemiconductor safari safecracking safekeeping safety saffroned safrole sagaciousness sagapenum sagebrusher sages sagijela sagittally sagittoid saguaro sahara sahukar sailage sailig sailorizing sailship sainted saintologist saitare saits sakel sakrsakt salability salacot salagri salamandra salamo salaries salbutamol salegoer salesclerk salespeple salgad salicional salicylate salicylol salientian saliita' salinan salinize salita salivarius salivazie salles sally salmellsis salmonellosis salmonsite salomonia salorthids salpingectomy salpingo-oophoritis salpingopalatina salpingoscope salsafy salsoline saltarello saltatorious salten saltierwise saltishly saltometer saltsprinkler salty salutarily salutatory salvably salvagardat salvarsan salveline salvinia salzfelle samanid samarra samboo sameliness samiri samnite samoyed sampleman samsara samucu sanativeness sanctanimity sanctilogy sanctioner sanctuary sandaling sandbank sandculture sandfly sanding sandpaper sandspur sandworm sang sanggil sangui- sanguinaceous sanguineobilious sanguinity sanguisorba sanicula sanitarian sanitize sannoisian sanshach santalaceous santees santonica saoshyant sapful saphie sapientize saple saponacity saponins sapote sapphired sapporo saprobe saprolegniales saprophyte sapsucker saracen sarakolle saratogan sarcastic sarcle sarcocolla sarcoderm sarcoglia sarcoline sarcoma-associated sarcophagan sarcophilous sarcoptes sarcosine sarcostosis sardachate sardius sargassum sarin sarkless sarmentose sarothra sarrazin sarsparilla sartorius sasani sasine sassanidae sastres satanicalness satara satellitarian satellitosis satiation satine satinwood satirize satisfactorily satisfiedness satrap sattel saturator saturniid satyagrahi satyrion saucedish saucerization sauerkraut saumon sauqui sauriosis sauroid sauropterygia sausage sauterelle savacu savanna saveloy savingly savitri savorless savssat sawbelly sawer sawmill sawway saxicavid saxifragant saxonical saxophonist sayal sbadigli sbject sbrba sbrevalrad sbstitte scabbed scabicidal scabish scabrous scadalize scads scaffold scalable scalation scaldfish scaleboard scalenectomy scaler scaliness scallopwise scalpel scalpture scambling scamper scampishly scandalmongery scandic scannable scansorious scanty scapethrift scaphitoid scaphohydrocephalus scapigerous scapula scapulo- scapulospinal scarabaeidoid scarcely scareful scarfer scarifier scarlatinosa scarp scarry scat scatla scatophagoid scattered scattermouch scaurie scavenging sccert scea sceliphron scena scenecraft scenite scentful scepterless scess schachmatt schalmei schappe schatte schediasm schedulize scheie's schelling schematism schemeful schenectady scherzsamete schiaff schicklichkeit schiffe schindler schismatic schistic schistoglossia schistosomal schistus schizocarpic schizogenetic schizogregarinae schizomycete schizonticide schizophreniform schizorhinal schizothymic schlag schlechthi schlieren schlfrig schmelz schmitt schnitzel schoenobatist scholarian scholastically schonfelsite schoolboyish schoolfellow schoolhouse schoolman schoolmastery schoolteaching schoppen schottmulleri schreibed schriftsetzed schule schuyler schwake schwarzian schwerfllig sch sciaenoid sciapod sciatical scienced scientificophilosophical scientolism scilliroside scinciform scintigram scintillation scintiscanner sciolous scioptric scirenga scirrhous scissor scissorsbill scissurellidae sciuromorphic sclaw scleratogenous sclerenchymatous scleritis sclerocauly scleroderm sclerodermitic scleroma scleropages sclerosarcoma sclerostoma sclerotica sclerotitic scleroxanthin scmmessa scoffery scoke scoleciasis scolex scoliosis scolopendra scolopophore scombridae sconcheon scooter scopelism scoping scopophobia scopularian scorbute scorchingly scorekeeping scoriform scornproof scorpii scorpionida scorzonera scotchwoman scotistical scotoma scotophobia scott scottsdale scour scouring scouter scovillite scowman scrabbled scraggily scrambled scranch scrape-off scraplet scrappingly scratchback scratching scratism scrawler screak scree screek screening screeny screwable screwing screwwise scribblatory scribbling scride scrimmager scrimshandy scrip scriptor scripturarian scrita' scrivener's scrobicula scrofula scrofulotuberculous scrollwise scrota scrouge scrre scrubbery scrubwoman scrummager scrunt scrupulous scrutatory scrutiny scud scuff sculch sculp sculptress sculsh scumming scuppet scurrilist scurvish scutation scutella scutelligerous scutiform scuttleman scutum scyllaridae scyllium scyphistomous scyphophorous scyth scythic scytopetalaceous sderbar sea-bar seabed seacasts seafarer seaghan seakers sealess sealski seamanship seamlessly seamus sear searchership seared seascape seasick seasonalness seatang seats seaward seb- sebastichthys sebo- sec secant seceg secessionalist secestrs secill seclusively second-stability secondhandedness secre secretary secretionary secretogranins sectant sectile sectionary sector secularity secundation secundoprimary securifer sedaceae sedatives sedentariness sedie sedimentate seditionary sedttre seduction sedzie seedbed seedgall seedlop seeingly seely seemlily seepy seersucker seezge seggar segmentally segmentum segreant segrie seicht seigneurial seignoral seirfish seismicity seismological seismoscope seizable sejoin seke selachostome selamin seldom selectee selectiveness selene selenio- seleniureted selenographically selenosis seleucidian self-curing self-infection self-regulation selffulness selfly selim sellad seller sell seltzer selwyn semantical semaphorically sematology semecarpus semeiotics semese semi-open semiaffectionate semiamplitude semiannual semiarborescent semiautomatic semibarbarian semibeam semibolshevized semicanal semicastration semichannel semicircle semicivilization semiclosure semicolumnar semicomplicated semiconic semiconspicuous semicoriaceous semicrepe semicubit semicylindric semidefinite semidependent semidiaphaneity semidisk semidomesticated semidrying semiellipse semiexecutive semifascia semifictional semifitting semifloscular semiforeign semifused semiglobose semigroove semihiant semihot semihyperbolic semilegislative semiliquidity semilunar semimade semimature semimetamorphosis semimonitor seminal seminarist seminative seminification seminomatous seminuliferous semioctagonal semiopacous semiorganized semiovale semipalmate semiparasitism semipellucid semiperoid semiphonotypy semipolar semipractical semiprone semiputrid semiquietism semirare semireniform semirevolution semirotund semisaint semisavagery semisensuous semisevere semisilica semisociative semisopor semispiritous semistarved semisubterranean semisupine semitangent semitesseral semitization semitrained semitropics semivalvate semivitreous semiwarfare semnopithecine semperannual sempiternity sen senatorially send senecioic senegin senijextee senium senocular sensational sensationless senses sensibly sensilla sensitiser sensitizes sensomotor sensorineural sensualist sensuous sententially sentiently sentimentless senusism separable separatedly separatistic seperator sepialike sepioidea sepoy septal septate septemberism septemfoliolate septenary septennium septfoil septicemia septiembre septile septipartite septocylindrium septoplasty septuagintal septus seqestr sequan sequences sequesterment sequestrum sera seralbuminous seraphicness serasker serbophile sereias serendipity serenoa serfism sergedesoy serialist seriatim sericiculture sericultural serigrapher seringa seriogrotesque seriousness sermet sermonic sermonology seroanaphylaxis seroenzyme serolactescent seromembranous seroperitoneum seroprotease seroserous serotherapy serousness serpentaria serpenticidal serpentinization serpentwood serpigo serpuline serranidae serraticeps serrator serried serrulate sertularian servage servation servetianism serviceman servilely servir servizi sesamoid seseli sesquialter sesquihydrate sesquipedality sesquisextal sesquitertianal session sestiad seta setbolt setid setireme setous settergrass settled setula setzte sevenfoldness seventieth severally severer sevetee sew sewerless sex-influenced sexagesimals sexarticulate sexenary sexillion sexlessly sextactic sextern sextipolar sextula sexualist seychelles seritas sffri sfreat sgambettad sggest sgraffito shabbily shackanite shacky shaded shading shadowfoot shadowland shafer shaftman shaggily shagreened shaikh shakebly shakeress shakespearian shakta shallal shallowist shaly shamaness shamblingly shamefastly shameworthy shammocky shamrock shandyism shankpiece shantytown shaper shapy sharecropper sharewort sharklike sharpen sharpshin shasta shatterbrain shattery shavable shavester shawano shawny sheaf shearer shearwater sheathes shebang shedhand sheenless sheepcrook sheepherding sheeplet sheepshead sheepwalk sheetage sheetways sheikhlike sheldaple shelflist shellapple shelley shellman shelterage shelty sheminith sheolic shepherdless sherardia sherif sherifi sherrymoor sheugh shi shide shieldflower shieling shiftily shigellosis shikimate shilha shillingless shimmer shina shingle shiningly shinto shipboard shipkeeper shipmate shipper shipside shipwrightry shirky shirting shirty shittimwood shivereens shivzoku shoalbrain shockedness shodden shoder shoeflower shoepack shoggie shola shook shooter shopbreaking shopkeepery shopmate shoptalk shorea shores short shortbread shortener shorthead shortsome shot-feel shotsman shoulder-girdle shoupeltin shovelbill shovelmaker showboater showering showman showworthy shradh shred shreveport shrewlike shriekproof shrilly shrineless shrinkingly shrivelling shrouding shrubbed shrug shtokavski shudderful shufflewing shumac shunting shutoff shuttle shwartzman shyly sialagoguic sialine sialoangitis sialography sialorrhea siamang siberia sibilatory sibyl sicana siccative siceramete sicilian sickener sickishness sicklerite sicknessproof sicyos siddur sidecar sideless sider siderite siderognost sideronatrite sideroscope sidership sidesplittingly sidewards sidling siebet siege siehe sierozem sieveful siffle sift sige sighless sighthole sightseeig sigig sigillaroid sigla sigmation sigmoideum sigmoidoscopy signalee signally signature signifiable significatively signify signorship sihasapa sikhara silanes silen silent silex silicates silicicalcareous siliciophite silicoalkaline silicoflagellate silicones silicotitanate siliqua siliqyiform silkily silkworks sillandar sillograph silo siltation siluridae silvate silverboom silverish silverness silvertop silvical silymarin simbil simethicone simiinae similiter simkin simon simons simperer simpleness simplexed simplificad simplistic simulance simulator simultaneous sinal sinapism sincaline sinding-larson-johansson sinensis sinfonietta singarip singhalese single-payer singlehood singpho singularization sinic sinigrosid sinistral sinistrogyrate sinistrously sinkhead sinlessness sinningly sinologue sinopulmonary sintoism sinuatodentated sinuous sinusitis siouan siphonales siphonet siphonlike siphonoglyphe siphonopore siphonostomous siphunculate sippio sircar sirenia sirenoidea siricidae sirloiny sirree siryan sisley sissu sisterin sistlic sisyrinchium sitcase sithement sitmagtic sitotaxis sittidae situational siva sivatherium sixate-dix sixscore sixth sixtypenny sizes sizzlingly skaff skart skaters skean skeelgoose skeezix skeldrake skeletonic skell skeltonian skeppist skerry sketchingly skewback skewwhiff skiagraphy skidded skieldrake skijore skillessness skilpot skimmington skin-pupillary skink skinniness skipetar skippery skirling skirtboard skit skittle skivvies skogbolite skraigh skull skunk skunkweed skyful skylook skyscrape skywriting slabman slacking slager slaister slam slander slang slangy slantwise slapping slashingly slateyard slatternliness slaughterous slaveholding slaverer slavification slavize slavonization sldad sleaziness sledgeless sleekit sleepful sleeplessness sleepwalking sleety sleevelike slender sleuthful slfl slicken slidableness slidehead slight slighty slimmish slingshot slinky slipgibbet slipperflower slipping slipslap slirt slithery slitty sllecitdie slobberchops sloe sloka slopdash slopmaker slopselling sloshy slotted slouchy slovakish slow slowhound slta slubbering sludgy sluggardry slugwood slumber slumbersome slummock slung slush sluttery slyboots smacker small-cell smallish smalt smarm smartweed smashingly smbri smebdy smeeky smeller smelter smetimes smicket smilaceous smilelessness smily smirk smistare smithfield smithydander smmssa smoke smokelike smokewood smoltification smoothable smoothish smotherable smoulder smudge smuggish smuisty smutted smyth snacks snaggled snaillike snaked snakeneck snakeskin snaky snapless snapps snareless snaste snathe sneakingness sneckdraw sneeringly sneezes snibbled snicket sniffiness snift snip snipocracy snippy snithy snob snobling snodly snook snooty snorer snortingly snoutish snowblink snowfield snowish snowscape snowsuit snubbiness snuff-box snuffler snuggery snurt soaker soapboxer soapmaker soapweed soary soberize soboliferous socage sociably socialize societary socii sociocracy sociogeny sociologistic sociopath socker socky socratically sodalite soddite sodium sodomist soekoe soft-shelled softhead softness soget soiled sojourney sokulk solan solanicine solaristically solatium soldering soldierhood soldiery solecistically solemncholy solenaceous solenodon solenoidally solent solfatara solicitee solicitudinous solidary solidism solidungulous solifugous solim solist solitons sollicitans soloist solonian solsticion solum solvability solvently solyma somaplasm somatic somatochrome somatologic somatomic somatoprosthetics somatotopic somatotropism somberly someday somerville somewhat somewise somnambulance somnambulically somnific somniloquy somnolentia sompne sonar sone songhai songoi soniferous sonneratiaceae sonnetlike sonolucent sonoriferous sonsy soorah sootherer sootily sophian sophistical sophistry sophronize soporna sorabian sorbin sorbonical sorcerously sordidity sorediform soreheadedness sores soricoid sorocarp sorose sorroa sorry sortilege sorty sotalol sotho sottishness soufffle souled soullike soundable sounding soup sour sources sourish sourweed souterrain southeastern southerner southlander southwester sovereigness sovietize sowarry sowing soybean space-time spaceship spackle spader spadicose spaecraft spagsls spaisch spale spanaemic spangled spanielship spanker spanning sparadrap spared sparganosis sparingness sparkleberry sparkman sparpiece sparrowless sparsely spartan sparth spasmatical spasmodicalness spasmophilia spat spatha spathose spatiation spatterdock spatular spavie spawning spazieregehe speaker speal spearmanship special speciality specializzad speciation specificatamete specificize specimen speckfall speckless speclati spectacular specter spectre spectrocolorimetry spectroheliographic spectrophone spectropyrheliometer spectrotelescope speculatist specus speecher speechlore speedful speeds speering spelding spellbinder spellmonger speluncean spend spenerism speranza sperm spermaphyta spermatica spermatism spermatocyst spermatogenic spermatolytic spermatoplast spermatozoan spermidine spermoblast spermogonium spermophilus spermous sperrylite spewed sphacelariaceae sphacelotoxin sphaeridial sphaerocarpales sphaerophoraceae sphaerulite sphalerite sphene spheniscomorphae sphenocephalia sphenofrontal sphenoidalium sphenopalatine sphenophyllum sphenoturbinal sphere sphericity spheroconic spheroidally spheromere spherular sphincteral sphincteroplasty sphingid sphingomyelin sphragide sphygmochronograph sphygmomanometry sphygmotonometer spiaggia spiceable spicery spicket spiculated spiculum spiderling spiegel spiffy spigot spiketail spiler spillet spilt spinachlike spinant spindlehead spindly spinelessly spinhaler spinigerous spinnbarkeit spino-adductor spinoff spinosely spinotectalis spinsterdom spintext spinulosa spiodea spiraculiferous spiraliform spiralwise spirated spirewise spirignathous spiring spirithood spiritlessness spiritualistically spirituously spiro-index spirochete spirograph spirometry spirostanol spiry spitchcock spitish spittoon splachnoid splanchnicectomy splanchnodiastasis splanchnomegaly splanchnoskeleton splashing splatterdock spledete spleenwort splenalgy splender splendour splenemphraxis splenical splenitive splenodiagnosis splenolysin splenonephric splenoportography splenule splinder splinterproof split-tongued splittail splotchily splutterer spodography spoilable spoilsmonger spokesman spoliarium spondean spondyle spondylo- spondylolysis spondylothoracic spongelike spongida sponginblastic spongiolite spongiosus sponsal sponsors spoofish spookology spoondrift spooning spoony sporadically sporangidium sporangium sporidesm sporiparous sporocystid sporogonic sporophyll sporothrix sporozoid sportfully sportly sportswear sporulate spotlessly spottedness spousally spoutless spprt sprackly spraied sprank sprawly sprayproof spreadover spreng spried sprightfulness spring-run springfinger springle springtrap sprinklered sprite sprogue sprouting sprucery sprunt spse spuilyie spumoni spunky spuriosity spurmaker spurrier spurts sputtering spyfault sqadered squab squabby squailer squall squalor squamation squames squamo-occipital squamose squamosotemporal squamula squandermaniac squarelike squarishly squashberry squatinidae squatterdom squaw squawky squeakily squealing squeezable squelcher squibb squidulin squillery squinny squinty squirehood squirish squirreled squirreltail squit srawls srds srgical srpredete srris srtir sservabile ssess sspes st stabbing stability stableboy stabling stachybotryotoxicosis stackage stackman stadda stadimeter staffelite stagate staged stagestruck staggeringly staghunter stagnance stagnum stahlism stainableness stains stairlike staithman stalactic stalag stalely stalk-eyed stalko stallionize stambouline staminigerous stammerwort stampee stampsman stanchness standardized standergrass standpatism stang stannary stanno- stanyel stapediovestibular staphylectomy staphylion staphylococcins staphylokinase staphyloplegia staple starbard starchedly starchmaking staree stargaser starkness starlit starosty starship starthroat startlishness starveling stash statable statefulness statements statesman stathenry staticproof stationary statistical statoconia statometer stattlich statuesquely statutorily staunchable staurolitic stauter staving stayless stbbig stckig stdyig steadman stealage stealthiness steamcar steampipe stearal stearone steatitis steatonecrosis steatosis stedes steeler steelmaking steen steepening steepleless steerage steevely steganophthalmatous stegocephalia stegosauroid steinbok stele stellatum stelliform stellularly stemma stemonaceous stenchel stengah stenocarpus stenocrotaphia stenographic stenophile stenostomatous stenotypy stentorine stepbrother stepgrandson stephanokontae stepless stepparent stepsister sterblme stercoranist stercorianism sterculiaceous sterelmintha stereoblastula stereochromically stereoencephalotomy stereographical stereomer stereomonoscope stereophotographic stereopsis stereoscopical stereotactic stereotropic stereotypographer sterhydraulic sterigmatocystin sterilizable sterlig sternalgia sternforemost sternobrachial sternocleidomastoideus sternofacialis sternomaxillary sternothyroideus sternutation steroid-binding stertor stesses stethographic stethoscopes stetson stevensoniana stewartry stffy stiatamete stibiated stibophen stichometric stickable stickiness stickly stickwork stierlin stiffening stifle stigmarian stigmatiform stigmeology stilbenes still stillicidium stillwater stiltiness stimpart stimulating stimulus stingily stingy stinkhorn stinted stiped stipiform stipply stipulator stirlessness stirrer stitcher stive stoat stockannet stocker stockinger stockkeeping stockriding stodge stoga stoichiometrical stoker's stolenly stolon stomachache stomaching stomapodous stomatitis-indiana stomatodysodia stomatomenia stomatopoda stomenorrhagia stomp stonebow stonedamp stoneless stones stoneware stonify stood stoollike stoot stope stoppableness stops storehouse storewide storing stormable stormily stormwind storyteller stoun stout stouty stover stower stplight strabismical stract straddlingly straezza stragers strahled straightened straightness strainably strains straitwork strammer strands strangerlike strangletare strangurious strappable strata strategetic strategos stratified stratlin stratonical stratus straw strawless strawy streak stream streamlet streamy street streetwalking streke strength strengthless strenuousness strepitores strepsirhini streptidine streptobiose streptoderma streptomycetaceae streptosepticaemia streptovaricin stressers stretchberry stretman strey striariaceae striatum strickenly strictish strid strides stridulation strife strigal strigiles strigulose strikes stringency stringing stringy stripe strippit striven strobilaceous strobiloid strode strolld stromatin stromberg stromeyerite stronger strongly strongyloid strontianiferous strophanhin strophiolated strophotaxis strouthiocamel strt structuralize strudel struma strummer strung struthionidae struvite strychninization strziista stuartia stubbleberry stuber stud studentlike studiedly study stuggy stultioquy stump stumpnose stunning stuntness stupefier stupidhead stuprate sturge-weber sturnidae stuss sty stygian styler styling stylitic styloglossal stylohyoideum stylomandibulare stylonychia styloradial stymphalid stypticness styrolene stdtisch suanitian suave subabdominal subacidulous subadministrate subaffluent subalary subalternately subanniversary subapostolic subarachnoidean subarcuation subarticle subatomic subauricular subbank subbituminous subbranchial subcalcarine subcaptain subcash subcavity subchamberer subchordal subcircular subclaviae subclinical subcommissary subconcave subconnect subcontained subcontraoctave subcordiform subcostal subcrepitation subcrustaceous subcurator subcyaneous subdealer subdelegation subdented subdeterminant subdichotomize subdistichous subdivided subdolichocephalic subdrill subduedly subecho subelliptic subendymal subepithelium suberect suberitidae subexaminer subfalcial subfibrous subflush subframe subgalea subgenital subglacially subgod subgyrus subhealth subhornblendic subhysteria subimago subindicate subinfeudatory subinspector subintestinal subitane subjectable subjection subjectivize subjoint subjunctive sublapsarian sublegislation subleukaemic subligation sublimatory sublimity sublittoral sublustrous submandibulare submariner submedian submentales submerse submicroscopic submissively submittingly submucosa subnasal subniveal subnuvolar suboceanic subopercle suborbital subordinating suboscines subpalmate subpartition subpectinate subpentangular subpermanent subphylar subplat subpool subpotent subprimary subproportional subpunctuation subquality subrailway subreference subrent subrhomboid subroot subsartorial subschool subscriptive subsecurity subsensuous subsequently subservient subshire subsidiarie subsilicate subsistential subsonic subsphenoidal substalagmitic substantiability substantiated substantively substituted substitutively substrative substructure subsultorily subsuperior subtalaris subtenancy subterconscious subterpose subterraqueous subtext subtileness subtillage subtone subtrahend subtriangular subtriquetrous subtuberal subtypical subumbonal subunit suburbanly subvalvular subventionize subversive subvicarship subwaking subzonal succeeder successfully successless succinamic succincture succinyl succisa succorrhoea succube succumb succussion suckabob suckfish sucramine suctional sud sudanophilic suddenly sudoral sudorous suet suffer suffete sufficingly sufflation suffraganal suffragist suffumigation sugamo sugarelly sugary suggestibly suggestively suicidal suid suint suitableness suity sulbentine sulcatum sulfa sulfafurazole sulfamethoxydiazine sulfamyl sulfapyrazine sulfate sulfatidosis sulfhydrolyase sulfionide sulfobenzide sulfochloride sulfoindigotate sulfonamide sulfonyl sulforicinoleic sulfovinate sulfur-reducing sulfureousness sulfury sulker sullenness sulphamate sulphanilate sulpharsenide sulphation sulphbismuthite sulphindigotate sulphites sulphoantimonite sulphocarbamic sulphocyan sulphogermanic sulpholipid sulphonated sulphonyl sulphopupuric sulphosol sulphothionyl sulphoxylate sulphurea sulphureted sulphurous sulpician sultanic sultriness sumatra summa summarize summer summerize summertide summitry sump sumpman sun-struck sunblink sunburns sundari sunderance sundra sunfish sunk sunlight sunnism sunrising sunshineless sunstone sunways supellex superabomination superaccomplished superacquisition superadjacent superaggravation superambitious superantigens superartificially superattractive superbenefit superborrow supercanine supercargoship supercerebral superciliously supercoiling supercompetition superconfirmation superconstitutional supercretaceous superdainty superdemocratic superdicrotic superdominant superearthly superelated superemphasis superequivalent superessential superexalt superexcited superexpenditure superfamily superfetation superficially superfissure superfluousness superfructified supergene supergovern superhearty superhighway superhypocrite superimpose superincomprehensible superindividual superinenarrable superinfusion superinsistent superintense superiorship superlapsarian superlocal supermanhood supermaterial supermilitary supermystery supernatural supernormal supernutrition superoctave superomedial superordinate superoxalate superpartient superphlogisticate superpolite superpower superproportion superreaction superregenerative superrheumatized supersaintly supersaturate superseaman superselect supersensual superseraphical supersignificant supersolar supersovereignty superstamp superstitiously superstructor supersubstantiate supersuperabundant supersystem superterrene supertragical superugly supervenience supervisal supervisory superweening supinely supplant supplementally suppletorily supplicantly supplice supportably supportress supposition suppositor suppresser suppressor-sensitive supra-acetabularis suprabasidorsal supracerebellar supraciliary supracondyloid supracristale supraepicondylaris supraglottis suprainguinal supraliminal supramammary supramechanical supranaturalism supraocular supraorbitale supraperiosteal suprapyloric suprarenalin suprascript suprasphenoidal suprastate suprathoracic supraumbilical supravital supremum sural surbater surculous sure surexcitation surfacing surfeiter surge surgeons surgitek surjection surmisant surmullet surpasser surpreciation surprising surrealistically surrenderer surrogateship surroyal surucucu surveyorship survived susannite susceptor suspected suspender suspension suspensory suspiral sussultorial sustenanceless susu suterbery sutorial sutura suum svaire sveire swab swaddle swager swahili swale swallowfish swampable swan swankily swannery swapper swarm swarthmore swartzia swashway swathable swaver swaziland sweatbox sweats swedish sweepforward sweet sweeteners sweetheartship sweetmaker sweetwood swellfish swelly swerd swidler swiftness swilltub swimming swindle swinefish swinery swinger swingy swipy swishy switcher swithen swiveling swollenness sword-shaped swordlike swordster swr syagg sybaritical sychriseg sycones sycophantish sydneyite syllabatim syllabify sylleptical syllogistics sylphlike sylvanity sylvestrine sylviine symbiogenetic symbiotics symbolatrous symbolistic symbololatry symbranchous symmetricality symmorphic sympatheticism sympathici sympathicotropic sympatho- sympathy symphic symphonically symphronistic symphyostemonous symphysodactylia symplasmatic sympodia symposiarch symptomatica symptomize synacmy synalgia synangial synanthic synapsin synaptical synaptonemal synarmogoid synascidiae syncarp syncephalus synchondrodial synchromesh synchronistical synchronous syncladous syncliticism syncope syncretic syncrypta syndactylia syndesmectopia syndesmophyte syndicalism syndrome synechiological synecology synedrium synentognathi synergidae synesis syngeneic syngnatha synisesis synocha synodic synoeciosis synonym synonymousness synoptical synostose synoviales synsacral syntality syntenosis synthermal synthetases synthetizer syntonical syntrophic synusia syphilimetry syphilo- syphiloma syracuse syrigmus syringin syringoencephalomyelia syringyl syrphus syssarcosic system systematised systemist systilius syzygetic szopelka t tv tabac tabanus tabbinet taberacl tabernacler tabg tabitude tablarizati tablea tablefellow tablemate tablet tablide taboparalysis tabouret tabularization tabuliform tacaud tache tachhydrite tachistoscope tachy- tachygenetic tachygraphically tachylogia tachyphemia tachythanatous tacitness tacket tackleless tacnode tactable tactician taction tactualist tadpole taeniacidal taenidia taenioglossa taetsia taffrail tagabilis tagasaste tagctica taggy taglich taguicati tahltan taiglesome tailender tailings tailor's tailorize tailr tailwind tainted taipei taissle tajassu takedownable taket takitumu talak talaric talcochlorite talebook talent taleteller taliage taliped talismanic talkable talkig tallageable talliable tallote tallowroot tallywoman talmudize talon talpacoti talthib talwood tamale tamarack tamarix tambieg tambourin tame tamer tammanial tamoyo tampin tampoon tanacetone tanaist tanchoir tanga tangency tangham tangie tangleproof tangoreceptor tanha tanjib tankette tanling tanner's tannocaffeic tanproof tantalean tantalizingly tantle tanworks tanzib tapa tapamaking tapeinocephaly taperer tapesium tapetless taphole tapijulapane tapiridae taplet tappall tappezzerie taps taqe taqua-nut tarahumari taranis tarantulidae tarassis taraxacum tarboy tardiga tardus tarentola targeting tarheeler tariffite tarished tarltonize tarnishproof tarpaulin tarradiddler tarrie tarryingly tarse tarsiidae tarsoclasis tarsonemus tarsus tartaret tartarly tarter tartramide tartronic tartufian tarwood taseometer tasimer taskmastership tass tasseling tassista tasted tasten tasting tataric tatianist tatt tatterwallop tattlingly tatu taula taupo tauriferous taurocol tauromachic tauryl tautness tautologize tautomerizable tautonymy tautousian taverner tavistockite tawdry tawnle taxaceae taxeating taxgatherer taxidermal taxingly taxless taxonomer taxwax tayrona tba tbl tchai tchetnitsi te teachable teacherly teachment teaey teakettle teamed teamster tearable tearflly tearlet tearthumb teasel teasiness teaspsfl teatman teazmete tecgcrata techiqe technicalism technicology technist technography technopsychology teclggic tecomin tectibranchiata tectonic tectospondylic tedaces tederft tedis teebrs teeming teens teeswater teeth teethy teetotumwise tegcica tegmentotomy tegrmi tegular tehran teian teil tej tekkintzi teladas telangiectaticum telautograph teleangiectasia telecferecias telecmmicatis telecryptograph telefacsimile telega telegrafiad telegrapher telegu telekinetic telemedicine telemetrography telenget teleodont teleonomical teleosaurian teleostomous telepathology telephonic telephotography telepost teleran telescopic telescriptor telestereography teletactor teletranscription teleutosorus televised televisr telferage telical tellable tellinacean telltruth telluriferous telmatology telokin telonism teloteropathic telotype tem temblar temerariously temne temperable temperametalmete temperature tempero-mandibular tempestsidad templarlike temples temporale temporaneously temporizing temporomalar temporopontinus temprary temptationless tempts ten tenacity tenanter tend tender tenderfully tenderness tendinosuture tendonous tendresse tenebrae tenebrosity tenementize tenfoldness teniasis tenline tennisy tenology tenontitis tenontothecitis tenorless tenotomize tensegrity tensile tensionless tentacle tentaculite tentativeness tenthmeter tentillum tenture tenuiexenous tenuistriate teotihuacan tepetate tephrylometer tequila teramorphous terato- teratoid terawatt tercel tercet terebella terebinic terebinthinous terebratular terehme terephthalic teretis tergal tergiversate tergum teriga terlinguaite termatic termiate terminales terminated termine terminologically termitidae termonology ternate ternstroemia terpilene terpsichorean terraciform terramara terrapleg terraza terrene terrestrially terribleness terrifical terrifying territorialize terror terrorproof terrrizad ters tersely tersttzg tertian tertlia tervee tesarovitch tesr tessaradecad tessellation tesseratomic testaceography testamentary testata testd testicardinate testiculus testifyig testimializer testimony testone testudinata teta tetagcls tetaized tetanine tetanospasmin tetartoconid tete tethery tetrabasic tetrabranchia tetracarboxylic tetrachloroethene tetrachronous tetracosane tetracyclic tetradecanoic tetradon tetraedrum tetrafolious tetragonia tetragynian tetrahydrate tetrahydrofolic tetraiodid tetralin tetrameral tetramethylphenylenediamine tetrandria tetranucleotide tetrapanax tetraphenylborate tetraploid tetrapodic tetraptote tetrarchic tetrasome tetrasporic tetrastoon tetraterpenes tetravalency tetrazin tetrazyl tetrix tetronic tetter tetum teuton teutonize tewan texcocan textiform textualist tezcatzoncatl tges thackerayana thaklessess thalamic thalamocortical thalamotomy thalassinian thalassographer thaler thalidomide thallodal thallotoxicosis thamnophilinae than thanatography thanatophobia thanedom thanklessly thar thatch thaumantian thaumaturge thaw the theanthropology theatergoing theatricable theatricize theatrophonic thebes thecata thecodont thecracy theetsee thegcratie thegndom thegriciee theileriasis theist thelephora theligonum thelphusidae thelytonic themer thenaldine thenness theobromine theocrasy theodicy theody theoktonic theologer theologicomilitary theologoumena theomaniac theopantism theophagous theophilanthropist theophrastan theopolity theoretical theorician theorum theosophistic theow therapeutae theraphosoid there'll thereanent thereckly thereinto thereout theretill therevidae therianthropism theriogenologic theriotheism thermalgesia thermatology thermionic thermoalgesia thermochemically thermococcales thermodynamicist thermoesthesiometer thermogenous thermohypesthesia thermology thermometamorphism thermomultiplier thermoperiod thermophone thermoplegia thermoreceptors thermoset thermostimulation thermotension thermotype therology theron thesauri thesicle thespesius thetically thevetia thght thiabendazole thiamide thiasoi thick thicker thickleaf thickwit thielavia thiever thigger thigmotactic thiks thimbleflower thimbleweed thingamabob thingman thinkableness thinned thioacetal thioantimonious thiobarbiturates thiocarbonyl thiocyanic thioethanolamine thioglucosidase thiohydrolyze thiolester thiomethyladenosine thionium thiooxidans thiophosphatase thiorphan thiosulfates thiotransferase thioxolone thirdly thirstiness thirteen thishow thistlery thixle thoft tholozani thomisid thomson thonged thoracales thoracici thoraco- thoracodorsal thoracolysis thoracoscope thoral thorina thornen thorntail thoroughbredness thoroughpaced thort thoughtfully thousand thraces thrammle thrashing thrawcrook threaders threadmaking threateer threatfully three-glass threefoldedness threesome threnody threshel thrghfare thriftlessly thrillingness thrip thrivingness throatlash throbbing thrombectomy thromboclastic thrombocytopenia-absent thrombogen thrombolytics thromboplastid thrombostasis throneless throstlelike throughbear throve throws thrush thrutch thsadfld thuggee thujone thumbbird thumbprinting thumping thunderbird thunderhead thunderproof thunderworm thuoc thuringian thursday thuyopsis thwarting thwite thym- thymelaeaceous thymic thyminuria thymolsulphonephthalein thymopsyche thynnid thyreoepiglottic thyreoidectomy thyrididae thyroarytenoideus thyrofissure thyroid-stimulating thyroidism thyrolingual thyropharyngeal thyrotherapy thyrotropin-releasing thysanopter thysanuriform tiaralike tibet tibialis tibiofibulare tibiotarsal ticarcillin ticih ticketer ticklebrain tickling ticktack ticul tiddling tidelike tidewaitership tidological tiefrt tiercelet ties tiffish tifs tiger-foot tigerism tight tightrope tiglic tigres tigrolytic tiklin tilda tiles tilge tillaea tilletia tilmete tilted tilyer timarau timbering timbertuned timbreler time timefulness timeliness timers timetables timidess timocracy timorese timpanist tinampipi tinctumutation tinderous tineine tinful tingitid tinguaite tinkerbird tinkling tinnet tinplate tinselweaver tintamarre tintinnabulary tinto tinworker tipcart tipmost tipple tipsily tiptoeing tipulid tiraillemet tired tiremaker tiresomeweed tirma tirrlie tische tissue-trimming titaes titanichthyidae titanocolumbate titanosilicate titer tithepayer tithymal titilate titin titleless titmarsh titration tittery titty titulation tizas tlaco tlerably tlere tmar tmbste tmlat to-and-fro toadhead toadstone toastee tobaccoism tobaccoweed tobogganeer tocharic tocol tocopherylquinone todayish toddyman toecapped toes tofter togated toggle toil toilful toise tokonoma toldo tolerancy tolerator toll tollkeeper tolpatchery tolter toluido toluylenediamine tomalley tombester tomboyishness tomentose tomistoma tommyrot tomorn tomtit tonaphasia toneproof tonger tonguecraft tongueman tongueworm tonicoclonic tonite tonkin tonnishness tonometric tonsbergite tonsillary tonsillopathy tonsure took tooling tools toorie toothaching toothdrawer toothlet toothsomeness toozle topass topchrome toper's tophetic topic topknotted topman topognosia topographometric toponarcosis topophylaxis toppiece toprope toptail torcel torchweed torero toriest tormentable tormentive tornachile tornillo torosaurus torpedoist torpify torrance torrentless torril torsimeter torsiversion torticollis tortoiselike tortrix torturableness torula torulosis toryess tosaphoth tosily tosspot tot totalling toteload tother totitive tottergrass totuava touchableness touchily touchwood toughish toupettit touristproof tourn tourniquet touted towai towelette towerlet towheaded towner townishly townscape townspeople toxaemic toxcatl toxicemia toxicognath toxicopathic toxidermitis toxiinfectious toxinosis toxocara toxology toxophilitism toxostoma toying toyocamycin tpa tpgrapher tqe trabajar trabecula trabeculoplasty traceableness trachea tracheary trachelectomopexia trachelium trachelokyphosis tracheloschisis tracheobronchiales tracheolaryngotomy tracheophonine tracheostenosis trachle trachyandesite trachyonychia tracing trackingscout trackshifter tractarian traction tractory tradccies trade trades tradeswoman tradite traditionalistic traditionitis trads traducingly trafficker trafr trage tragedization tragicality tragicness tragicoromantic tragulina traicig trail trailman trainbearer trainmaster trait traitorship trajection tralatition tramare trametes trammelingly tramper trampoline tranceful tranker tranquilizingly trans-activators transaction transalpinely transannular transbaikal transcarbamoylases transcendental transcendingly transconscious transcribe transcriptural transdesert transduction transeptally transferability transferography transfigurate transfixture transformation transfrontal transfusions transglycosylation transhape transiency transilluminate transistor transitival transjordanian translating translatress translocate transmarginal transmethylation transmissibility transmit transmittible transmutability transmuting transnormal transpacific transparietal transpersonal transpirable transplantar transpleurally transportal transporter transposase transprint transrectification transshape transsulfurase transubstantial transudative transureteroureterostomy transvasate transverberation transversaria transversive transvert tranter trapeadr trapezid trapezohedral trapiferous trapping trapshooter traqiliza traqille trasaccig trascedecia trascedetalizes trascrire trasferible trasfsies trashiness traslatable traslcet trasmissi trassexal tratamiets traumatically traumatopnea travail traveler's traveller traversed travestiment trawl trazodone trches treacle treadler treasonful treasrership treasurous treating treatyite treckschuyt treehair treemaker treewards tregerg trekking tremandraceous tremble tremblor tremelline tremit tremophobia tremulor trenchantly trencherside trend trepan trephocyte trepidity treponemiasis tres tresses tressy trevally trg triacetate triaconter triadically triagonal trialist triaminolone triangleways triangulately triantelope triarthrus triatominae triazole tribals tribelike triblacig triboluminescent tribrachial tribromsalan tribulus tributarily tributyrylglycerol tricarboxylic tricenarium triceps trichechidae trichilemmoma trichinize trichitic trichlormethane trichloroethylene trichobranchiate trichoderma trichofolliculoma trichogynic tricholoma trichomonad trichonosus trichophytia trichopter trichorrhexic trichosporangial trichostrongyliasis trichotomism trichromate trichuroidea trickily trickling trickster tricliniarch tricolette triconodonta tricorporate tricrotic tricuspidalis tricyclist tridecatylene tridentiferous tridimensional trie triental trieteric triethylstibine triflagellate triflorous trifocal triform trig trigeminothalamic triggerfish triglochin triglyphical trigoneutism trigonocephalous trigonometry trigraphic trihemimer trihybrid trihypostatic trikeria trilamellated trilinear trilite trillad trillionize trilobita trilostane trimebutine trimercuric trimester trimeter trimethylamine trimethylsilyl trimmer trimorphism trimyristate trinervate trinil trinitrocellulose trinity trinkums trinomiality trio triodontidae triolcous trionychoideachid triorchism trioxsalen tripart tripe tripeptide tripetalous triphenylamine triphosphate tripinnately tripleback triplexity triplinerved triplopia tripodic trippant trips triptyque tripylaea triquinate trirectangular trisacramentarian trisemic trishna trismegist trisonant trist tristearin tristic tristoma trisulphide tritactic triteleia tritheist trithionic tritici tritocone tritoness tritoral trituberculy tritylodon triumphs triunification trivalent trivia trivium tri trmeted trocaical trochanteric trocheameter trochila troching trochlearis trochodendron trochosphere trode troglodytidae trogue troleandomycin trollimog trolly trombony tromple troop troot troparion trophaea trophi trophobiosis trophodynamics trophophore trophospongia trophy tropicalization tropine tropologically tropophyte trotcozy trotting troubadourist troubleshoot trough-shell troupe trousers troutlike troweler troytown trpid trret trsse trtise trttelhaft trubtall truck truckman truddo trueheartedly truffler trullo trumpet trumph truncation trunchman trunked trunnion trussmaker trustees trustiness trustworthily truthless truttaceous trygonidae trypanicidal trypanosomal trypanosomid trypomastigote tryptone trytophan ts tsatlee tsessebe tsoneca tstadras tsutsutsi ttalitariaism ttelabile tthsme tuamotu tubage tubatulabal tubby tubelength tuberales tuberculariaceous tuberculatonodose tuberculin-type tuberculocidal tuberculosectorial tuberculous tuberoid tubes tubicolae tubiflorales tubiparous tubmaker tuboovarial tubovaginal tubulated tubulibranchiate tubulin-tyrosine tubulodermoid tubulure tuchunate tuckshop tudoresque tuffet tuftlet tuggingly tuism tularaemia tulip tulipy tum-tum tumbler tumbril tumidity tumored tumourigenesis tumuli tumultuously tunbelly tunefully tung tungstic tunica tunicless tunlike tunnellike tunnland tupek tupperish turanianism turbanless turbidimeter turbinates turbinellidae turbite turbogenerator turboventilator turcize turdinae turfiness turgesce turgometer turjite turkeydom turkish turkology turks turmoiler turnbuckle turner turngate turnip turnout turnskin turonian turps turricephaly turrilites tursiops turtler turvy tusche tuskegee tussiculation tussur tutelo tutorhood tutory tutu tuzzle twaddlement twain twangler twasome tweaky tweeg tweezer twelfthtide twenties twers twiddle twigged twilightless twin-twin twinemaker twinism twinleaf twinter twist twisting twitcheling twite twittery two-capsuled two-sided twombly txia tychite tyed tylectomy tylopod tylostyle tylus tympania tympaniform tympanoeustachian tympanoperiotic tympanotomy tynwald typescript typhaceae typhlectasis typhlohepatitis typhlopidae typhobacillosis typhomalarial typhose typica typig typographical typology typotelegraphy tyraminase tyrannicly tyrannizingly tyrantcraft tyroglyphid tyromancy tyrosine-trna tyrrhene tzaam tzotzil te uayeb ubiety ubiquitary ubisemiquinone udder udomograph uglily uhlan uintaite ukraine ulcerated ulcerously ulemorrhagia uliginous ulmaceae ulnae ulnometacarpal uloncus ulotriches ulsterman ultimity ultrabasite ultraceremonious ultracosmopolitan ultradian ultraenforcement ultrafederalist ultragallant ultrainclusive ultralegality ultramaximal ultramicrotome ultramontanist ultraobscure ultrapersuasive ultrareactionary ultraroyalism ultrasolemn ultraspecialization ultrasystematic ultraurgent ultrazodiacal ululative umangite umbellately umbellula umbilical umbilicomammillary umbonation umbraculiferous umbre umbriel umiak umpteen unabashable unabhorred unabolished unabsolvedness unacademic unacceptance unaccidented unaccompanable unaccording unaccreditated unaccursed unaching unacquaintedly unact unactivity unadaptableness unadditional unadjacently unadmire unadmitting unadorn unadulterately unadventuring unadvisable unafeared unaffied unafforded unaggravating unagitatedly unagricultural unakin unalertness unalive unalliedly unallured unalterableness unamazedly unamenability unami unample unamusive unanatomized unangry unanimistically unannihilated unanswerably unanticipative unapologetic unapparentness unappeasedness unapplianced unapposite unappreciativeness unapprehensiveness unappropriable unapprovingly unarbitrary unarguing unarmed unarranged unarrogating unartistic unascertained unaspirated unassaulted unassessed unassisting unassuetude unastonish unattachable unattaining unattended unattractive unaudienced unauthenticated unauthorizedly unavailingly unavian unavowable unawakening unaway unbadged unbaized unballast unbanked unbare unbarricade unbaste unbattling unbearing unbeautiful unbed unbedraggled unbegged unbegreased unbeholden unbeliefful unbelievingness unbendable unbenefitable unbenignantly unberth unbesmutted unbethink unbewailed unbiasable unbigged unbirdlimed unblacked unblasted unblenching unblightedness unblockaded unblossoming unblunted unboat unboiled unbolted unbookish unborough unbottomed unbountiful unbowingness unbracelet unbranching unbreakable unbred unbrick unbriefly unbroiled unbrotherlike unbrutelike unbudged unbulletined unburdened unburnable unbury unbutchered unbuyableness uncalculable uncallow uncancelled uncanny uncanvassed uncapsizable uncaptured uncargoed uncart uncassock uncatechised uncatholicly uncave uncelestial uncensurable unceremented uncertifiableness unchained unchampioned unchangeful unchapter uncharily uncharnel unchastised unchecked unchemical unchided unchipped unchoked unchristianity unchurchlike unciforme uncinch uncircumcised uncircumspection uncitizenly uncivilizedness unclarity unclassifiable unclean unclear unclench uncleverly unclimbed unclog unclothedly uncloyed uncluttered uncoatedness uncoded uncognizable uncoifed uncollated uncolloquial uncoloured uncombinably uncomfortable uncommenced uncommerciable uncommixed uncommunicably uncompahgre uncompassion uncompelling uncomplaint uncomplex uncomposable uncomprehendingness uncompromised unconcatenated unconceivable unconcertable unconcluded unconcurring unconditionality unconducing unconfessing unconfinedly unconflictingly unconfound unconfuting uncongratulate unconjugated unconquerably unconsciously unconsenting unconsiderateness unconsolable unconsonous unconstantness unconstrainedness unconsultable uncontainableness uncontemptuous uncontentiously uncontinented uncontradictableness uncontributory uncontrolledness uncontrovertibly unconventioned unconvertibility unconvincible uncooped uncoquettishly uncorker uncorrectible uncorroded uncorruption uncouch uncountenanced uncoupled uncourting uncovenant uncowed uncrampedness uncreatability uncredentialed uncreeping uncrinkled uncriticizable uncrossable uncrudded uncrystalled unctorium uncudgelled uncultured uncurb uncurl uncurst uncustomed undaintiness undamped undarkened undaughterliness undazzle undebarred undecaprenyl-phosphate undeceivably undeception undeciman undeck undeclined undecorously undecylenate undeep undefeatable undefended undefilable undeflected undegraded undelaying undeliberatingly undelightsome undeluged undemocratize undemurring undenominationalist undependableness undeposited undeputed underactive underaim underbake underbearer underbishop underboom underbrace underbrim underbursar undercaptain underceiling underchime underclearer underclub undercommander undercool undercrest undercut underdevelopment underdoctor underdrainage underdrudgery underenter underface underfeeder underflame underfootage underfrock undergarments underglaze undergoverness undergraduette undergrowl underhandedly underhid underhum underjacket underking underlaundress underletter underlimbed underlive underlye undermarshalman undermelody undermist undername underntide underorb underparticipation underpetticoated underplan underpopulation underpresser underproductive underpropping underreach underregistration underripe underroot undersatisfaction underscribe undersecretaryship underservant undersharp undershirt undershrubby undersitter underslung undersovereign underspore understand understatement understory understrife undersupply undertake undertapster underthane undertided undertrained undertune undervalue underventilation underwage underwater underwhistle underworking underzeal undescrying undeservingness undesirableness undespaired undestined undetected undetested undeviating undevout undiagnosed undidactic undiffused undigged undilated undimidiate undinism undirectness undisbanded undiscerning undiscolored undiscouraged undiscreetness undisdaining undisguisedly undisintegrated undismayed undisowned undispensed undispose undisputatiously undissected undissoluble undistantly undistinguish undistractedness undisturbance undivable undivestedly undivinely undizzied undodged undomestic undonated undoting undoubtfully undowny undramatically undreadfully undressed undriven undry unduelling undulately unduloid unduplicity unduty uneagerly uneaseful unebbed uneconomically uneditable uneffaceable uneffeminate unegoistical unelasticity unelectrified unelevated uneloquent unembanked unembittered unembryonic unemotional unemploy unemptied unenchant unencroaching unendeavored unendurable unenforced unengraven unenlightening unenrichable unensured unenterprised unenthroned unentranced unenviably unepicurean unequably unequestrian unequivalve unerected unerringness unescaped unespoused unesterified unethic uneuphemistical unevangelical uneverted unevokable unexactness unexasperating unexceptionable unexchanged unexclusively unexculpably unexecutable unexercisable unexhaustibly unexigent unexorcisable unexpectedly unexpended unexpert unexplainedly unexploded unexposed unexpressibleness unexpurgatedly unexterminated unextolled unextravasated uneyed unfacile unfading unfailingness unfaithful unfalling unfamiliarity unfantastical unfascinate unfastened unfathomability unfatten unfealty unfeasible unfederated unfeignableness unfelicitous unfellowshiped unfemininity unfermented unfervent unfetter unfibbing unfierce unfiled unfiltered unfinished unfiscal unfitted unfixedness unflamboyant unflattered unfledgedness unflexed unflippant unflorid unfluctuating unflutterable unfoiled unfoliated unfooled unforbidden unforcibly unforensic unforeshortened unforfeit unforgetting unforgone unformally unforsaking unfortune unfound unfragrantly unfrankly unfreehold unfrequent unfrictioned unfrighted unfrivolous unfrosty unfructuously unfrustrated unfully unfunniness unfurnishedness unfussed ungainable ungainsayable ungamboling ungarmented ungathered ungelded ungenerical ungenteel ungentlemanlikeness ungeographical ungesting ungild ungirt ungladden unglee unglorified unglossily ungluttonous ungodliness ungorged ungouty ungraceful ungraduating ungrammaticalness ungrasp ungratified ungreased ungrieve ungroomed ungroupable ungruff unguentaria unguical unguided unguilty ungulated unguttural unhabitual unhaggled unhallooed unhammered unhandsome unharangued unhardness unharmoniously unharvested unhat unhauled unhead unhealthful unhearing unheavenly unheedfully unhele unhelpfulness unheritable unhesitatingly unhidated unhindering unhistrionic unhobble unhollowed unhomologous unhooded unhopedly unhorned unhostileness unhull unhumbly unhunted unhurtfully unhustling unhyphened uniambically uniaxially unicamerate unicellularity unicolored unicornuted unidactyl unidenticulate unidimensional unidolized unific uniflorate uniforate uniformitarianism unigenistic unignorant unilaminate uniliteral unillustrious unimacular unimanual unimbowed unimitating unimmortalize unimpaired unimpeachable unimpenetrable unimplicit unimportunate unimpregnable unimpressively unimprovedly unimucronate unincised uninclusiveness unincumbered unindicative unindividualized unindustrialized uninfatuated uninfixed uninfluencive uninfused uninhabitability uninhibitive uninjected uninnate uninquiring uninsistent uninstated uninstructiveness unintegrated unintelligible unintently uninterestingness unintermediate unintermixed uninterrupted unintervolved unintoxicating unintruded uninured uninventive uninvigorated uninwrapped unioniform unipara unipersonality uniporous uniqueness unirhyme unirritating unisexual unisomorphic unispiral unitarianize unitedly unitive unity univalvia universalist universitarian universology unjaded unjellied unjocund unjolly unjoyously unjudiciously unjustifiableness unkamed unkennel unkill unkindlily unkinglike unknelled unknot unknowingness unlaborable unlade unlanced unlapsing unlathered unlaureled unlawlike unleafed unlearnableness unleave unlegalness unlessoned unlevelly unlibidinous unliftable unlikable unliken unlimitedly unlionlike unlisted unlitten unliveliness unloanably unlocalize unlodged unlooped unlorded unloveable unlovingness unluckily unlured unlycanthropize unmade unmaid unmaintained unmalleableness unmanageably unmaniac unmanned unmanufactured unmarginated unmarriageable unmashed unmastered unmaterial unmature unmeant unmechanistic unmediaeval unmediumistic unmellow unmelted unmendable unmentionable unmerchantly unmeritedness unmetaled unmetered unmetricalness unmildewed unmimicked unmineralized unminted unmisanthropic unmissable unmistressed unmitigatedness unmobbed unmoderating unmodish unmolested unmonarch unmonopolizing unmoralized unmortgage unmotionable unmounted unmovably unmuddle unmultipliedly unmurmuring unmussed unmutualized unmythical unname unnation unnaturalized unnearable unnecessitated unnegligent unnerve unnettled unnicely unnimble unnomadic unnoteworthy unnourishing unnumerous unobese unobliged unobsequious unobservingly unobtainableness unobviated unoccurring unoffender unofficialdom unoil unonerous unoperated unopportuneness unoppugned unorder unorganic unoriented unoriginative unorphaned unostensible unoverclouded unovert unoxidizable unpacifist unpained unpaintedness unpalisadoed unpaneled unparaded unparallelness unparching unpargeted unparrying unpartial unprovide unsex unstriped unveracity upbraid upheaval upokororo upriver upsilon uptake urachi uran-utan uraniscus uranoplasty urao uratosis urceolate ureameter ureic urerythrin ureterici ureterocutaneous ureterolysis ureteropyosis ureterotomy urethane urethritis urethroperineal urethroscopy urgency uricosuria uridylyltransferase urination urinosexual urobilinaemia urochord urocyanogen uroerythrin urogenous uroheparin urolithology uronephrosis uropoietic uropygium urosemiology urothion ursine urticant urushiol usitative usurious uterine uteroepichorial uterosacral uteroventral utility utriculoampullar uug uveitis uviol uvular uvulotomy v/q vacacy vacationland vacche vacciatri vaccination vaccinium vacher vacm vacuolated vadantes vagabdism vagary vagial vaginal vaginism vaginomycosis vaginosis vagolysis vagrat vaishnava valentine valeritrine valga validity valle valoid valtat valvata valvular vamper vanadite vanguard vanished vapor vaqers variat variciform varicosis variiere varioloid vark vas vascularization vasculosa vasitis vasodepressor vasogenic vasomotoria vasoreflex vasotomy vastoadductor vaulty vd vecid vectors veded? vedre veery vegetans vegetation vehement veiling veire velamentous velcities veliger velocity velve venacavography vendetta venenata venereology venice venofibrosis venorespiratory venosus ventilator ventricles ventriculitis ventriculopuncture ventriloquist ventromedian venular veradert verarbeite verb verbena verblhe vercat verdes verdoglobin vereged veretze verfglich vergebbar vergeture vergrsserd verhead veris verkrampfe verlage verme vermicide vermiete verminal vermhled vero verrcht verruciformis vers verschlimmerg versehrt versive verstdig vertebrales vertebre vertebropelvic verticillate vertrag vervierfache verwelke verzichte verbel vesication vesicoclysis vesicosigmoid vesicovaginal vesiculated vesiculography vesiculotympanitic vessel vestibula vestibulo- vestibulospinal vestimentorum vesuvin veterinarians vetiver vexatious viade viajg vibrated vibratr vibrocardiogram vichy vicl victrola vide vidri vienna vierte view vif-arget vigilante vigorous vilayet villai villonodular vimineous vincible vineyard violaceous violin viperina vireo virginal virial virilis virogene virtue viruria viscera viscerogenic visceroskeletal viscidosis viscous visile visitar vist visuosensory vitality vite vitelline vitellus vitoe vitreo-tapetoretinal vitriol vitt vivacity viveza vivipara vivre vldl vllstdig vocabularian vocational voiding volatilization vollumescope voltameter volumenometry voluta vomeralis vomicose voodoo votary vpu vrbereitet vrhergehed vrtice vte vulcanology vulpinite vulvismus vv w wackel waderd waffles waggle wahred waistbad waitress wale walkway wallow walter wanton wardrm warer warm warmth warrir warts washboard wasserdicht wasteland watchmen waterfront watermel watery waveguide way wderd weak wealthier wearisome weatherwr wecke weed weeper wehe weiger weighting weirdess weiter welded wellington wept wesetlich westward whamming wheedle whelp wherein whi whinny whirring whitehorse whizzing whoever whopping wichtig widen widig widstrm widy wiemaker wife wild wille willowy win windshield wineskin winning winy wires wisdm wishes witches withdrawal withstand wky wme wolhynia wondrous woodland woodyard workbook workout worldwide worshipful wrack wre wrg writer wrkbeches wrldly wrry wynn wsche xa xanthic xanthiuria xanthoderma xanthomonas xanthopuccine xefb xenodiagnosis xenophobia xenylic xeroderma xerophagia xerosis xiii xiphisternum xiphopagus xylanthrax xylidic xyloid xylophilous xylphes xysma yachtsma yang yards yawl yearbk yelled yelp yesterday ygrt yla yokohama your yrself yucca za zahle zalcitabine zap zarzamrra zcke zeae zearalenone zebub zeiched zeitig zemni zepto zerig zerreibe zestfl zeugmatography zflliges zidovudine zig zilch zincify zincongraphical zinnwaldite zippers zirconia zked zlgie zmbad zoanthropic zoisite zonaria zonoskeleton zooagglutinin zoodendrium zoogenesis zoographer zoological zoomylus zoophaga zoophoric zooplasty zootechnics zope zosterops zreck zsammekppel zstlich zuckergussleber zwei zwider zwitterions zygo zygomatica zygomaticofrontal zygomaxillary zygosperm zyme zymohexase zymosis zle ~es km berschrift cid chte piexese ffete beracht berhle bertrage ================================================ FILE: tests/perlbench/XSUB.h ================================================ /* XSUB.h * * Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ #ifndef _INC_PERL_XSUB_H #define _INC_PERL_XSUB_H 1 /* first, some documentation for xsubpp-generated items */ /* =head1 Variables created by C and C internal functions =for apidoc Amn|char*|CLASS Variable which is setup by C to indicate the class name for a C++ XS constructor. This is always a C. See C. =for apidoc Amn|(whatever)|RETVAL Variable which is setup by C to hold the return value for an XSUB. This is always the proper type for the XSUB. See L. =for apidoc Amn|(whatever)|THIS Variable which is setup by C to designate the object in a C++ XSUB. This is always the proper type for the C++ object. See C and L. =for apidoc Amn|I32|ax Variable which is setup by C to indicate the stack base offset, used by the C, C and C macros. The C macro must be called prior to setup the C variable. =for apidoc Amn|I32|items Variable which is setup by C to indicate the number of items on the stack. See L. =for apidoc Amn|I32|ix Variable which is setup by C to indicate which of an XSUB's aliases was used to invoke it. See L. =for apidoc Am|SV*|ST|int ix Used to access elements on the XSUB's stack. =for apidoc AmU||XS Macro to declare an XSUB and its C parameter list. This is handled by C. =for apidoc Ams||dAX Sets up the C variable. This is usually handled automatically by C by calling C. =for apidoc Ams||dITEMS Sets up the C variable. This is usually handled automatically by C by calling C. =for apidoc Ams||dXSARGS Sets up stack and mark pointers for an XSUB, calling dSP and dMARK. Sets up the C and C variables by calling C and C. This is usually handled automatically by C. =for apidoc Ams||dXSI32 Sets up the C variable for an XSUB which has aliases. This is usually handled automatically by C. =cut */ #define ST(off) PL_stack_base[ax + (off)] #if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING) # define XS(name) __declspec(dllexport) void name(pTHX_ CV* cv) #else # define XS(name) void name(pTHX_ CV* cv) #endif #define dAX I32 ax = MARK - PL_stack_base + 1 #define dITEMS I32 items = SP - MARK #define dXSARGS \ dSP; dMARK; \ dAX; dITEMS #define dXSTARG SV * targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \ ? PAD_SV(PL_op->op_targ) : sv_newmortal()) /* Should be used before final PUSHi etc. if not in PPCODE section. */ #define XSprePUSH (sp = PL_stack_base + ax - 1) #define XSANY CvXSUBANY(cv) #define dXSI32 I32 ix = XSANY.any_i32 #ifdef __cplusplus # define XSINTERFACE_CVT(ret,name) ret (*name)(...) #else # define XSINTERFACE_CVT(ret,name) ret (*name)() #endif #define dXSFUNCTION(ret) XSINTERFACE_CVT(ret,XSFUNCTION) #define XSINTERFACE_FUNC(ret,cv,f) ((XSINTERFACE_CVT(ret,))(f)) #define XSINTERFACE_FUNC_SET(cv,f) \ CvXSUBANY(cv).any_dxptr = (void (*) (pTHX_ void*))(f) /* Simple macros to put new mortal values onto the stack. */ /* Typically used to return values from XS functions. */ /* =head1 Stack Manipulation Macros =for apidoc Am|void|XST_mIV|int pos|IV iv Place an integer into the specified position C on the stack. The value is stored in a new mortal SV. =for apidoc Am|void|XST_mNV|int pos|NV nv Place a double into the specified position C on the stack. The value is stored in a new mortal SV. =for apidoc Am|void|XST_mPV|int pos|char* str Place a copy of a string into the specified position C on the stack. The value is stored in a new mortal SV. =for apidoc Am|void|XST_mNO|int pos Place C<&PL_sv_no> into the specified position C on the stack. =for apidoc Am|void|XST_mYES|int pos Place C<&PL_sv_yes> into the specified position C on the stack. =for apidoc Am|void|XST_mUNDEF|int pos Place C<&PL_sv_undef> into the specified position C on the stack. =for apidoc Am|void|XSRETURN|int nitems Return from XSUB, indicating number of items on the stack. This is usually handled by C. =for apidoc Am|void|XSRETURN_IV|IV iv Return an integer from an XSUB immediately. Uses C. =for apidoc Am|void|XSRETURN_UV|IV uv Return an integer from an XSUB immediately. Uses C. =for apidoc Am|void|XSRETURN_NV|NV nv Return a double from an XSUB immediately. Uses C. =for apidoc Am|void|XSRETURN_PV|char* str Return a copy of a string from an XSUB immediately. Uses C. =for apidoc Ams||XSRETURN_NO Return C<&PL_sv_no> from an XSUB immediately. Uses C. =for apidoc Ams||XSRETURN_YES Return C<&PL_sv_yes> from an XSUB immediately. Uses C. =for apidoc Ams||XSRETURN_UNDEF Return C<&PL_sv_undef> from an XSUB immediately. Uses C. =for apidoc Ams||XSRETURN_EMPTY Return an empty list from an XSUB immediately. =head1 Variables created by C and C internal functions =for apidoc AmU||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto Used by C to hook up XSUBs as Perl subs. Adds Perl prototypes to the subs. =for apidoc AmU||XS_VERSION The version identifier for an XS module. This is usually handled automatically by C. See C. =for apidoc Ams||XS_VERSION_BOOTCHECK Macro to verify that a PM module's $VERSION variable matches the XS module's C variable. This is usually handled automatically by C. See L. =cut */ #define XST_mIV(i,v) (ST(i) = sv_2mortal(newSViv(v)) ) #define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) ) #define XST_mNV(i,v) (ST(i) = sv_2mortal(newSVnv(v)) ) #define XST_mPV(i,v) (ST(i) = sv_2mortal(newSVpv(v,0))) #define XST_mPVN(i,v,n) (ST(i) = sv_2mortal(newSVpvn(v,n))) #define XST_mNO(i) (ST(i) = &PL_sv_no ) #define XST_mYES(i) (ST(i) = &PL_sv_yes ) #define XST_mUNDEF(i) (ST(i) = &PL_sv_undef) #define XSRETURN(off) \ STMT_START { \ IV tmpXSoff = (off); \ PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); \ return; \ } STMT_END #define XSRETURN_IV(v) STMT_START { XST_mIV(0,v); XSRETURN(1); } STMT_END #define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END #define XSRETURN_NV(v) STMT_START { XST_mNV(0,v); XSRETURN(1); } STMT_END #define XSRETURN_PV(v) STMT_START { XST_mPV(0,v); XSRETURN(1); } STMT_END #define XSRETURN_PVN(v,n) STMT_START { XST_mPVN(0,v,n); XSRETURN(1); } STMT_END #define XSRETURN_NO STMT_START { XST_mNO(0); XSRETURN(1); } STMT_END #define XSRETURN_YES STMT_START { XST_mYES(0); XSRETURN(1); } STMT_END #define XSRETURN_UNDEF STMT_START { XST_mUNDEF(0); XSRETURN(1); } STMT_END #define XSRETURN_EMPTY STMT_START { XSRETURN(0); } STMT_END #define newXSproto(a,b,c,d) sv_setpv((SV*)newXS(a,b,c), d) #ifdef XS_VERSION # define XS_VERSION_BOOTCHECK \ STMT_START { \ SV *_sv; STRLEN n_a; \ char *vn = Nullch, *module = SvPV(ST(0),n_a); \ if (items >= 2) /* version supplied as bootstrap arg */ \ _sv = ST(1); \ else { \ /* XXX GV_ADDWARN */ \ _sv = get_sv(Perl_form(aTHX_ "%s::%s", module, \ vn = "XS_VERSION"), FALSE); \ if (!_sv || !SvOK(_sv)) \ _sv = get_sv(Perl_form(aTHX_ "%s::%s", module, \ vn = "VERSION"), FALSE); \ } \ if (_sv && (!SvOK(_sv) || strNE(XS_VERSION, SvPV(_sv, n_a)))) \ Perl_croak(aTHX_ "%s object version %s does not match %s%s%s%s %"SVf,\ module, XS_VERSION, \ vn ? "$" : "", vn ? module : "", vn ? "::" : "", \ vn ? vn : "bootstrap parameter", _sv); \ } STMT_END #else # define XS_VERSION_BOOTCHECK #endif /* The DBM_setFilter & DBM_ckFilter macros are only used by the *DB*_File modules */ #define DBM_setFilter(db_type,code) \ { \ if (db_type) \ RETVAL = sv_mortalcopy(db_type) ; \ ST(0) = RETVAL ; \ if (db_type && (code == &PL_sv_undef)) { \ SvREFCNT_dec(db_type) ; \ db_type = NULL ; \ } \ else if (code) { \ if (db_type) \ sv_setsv(db_type, code) ; \ else \ db_type = newSVsv(code) ; \ } \ } #define DBM_ckFilter(arg,type,name) \ if (db->type) { \ if (db->filtering) { \ croak("recursion detected in %s", name) ; \ } \ ENTER ; \ SAVETMPS ; \ SAVEINT(db->filtering) ; \ db->filtering = TRUE ; \ SAVESPTR(DEFSV) ; \ if (name[7] == 's') \ arg = newSVsv(arg); \ DEFSV = arg ; \ SvTEMP_off(arg) ; \ PUSHMARK(SP) ; \ PUTBACK ; \ (void) perl_call_sv(db->type, G_DISCARD); \ SPAGAIN ; \ PUTBACK ; \ FREETMPS ; \ LEAVE ; \ if (name[7] == 's'){ \ arg = sv_2mortal(arg); \ } \ SvOKp(arg); \ } #if 1 /* for compatibility */ # define VTBL_sv &PL_vtbl_sv # define VTBL_env &PL_vtbl_env # define VTBL_envelem &PL_vtbl_envelem # define VTBL_sig &PL_vtbl_sig # define VTBL_sigelem &PL_vtbl_sigelem # define VTBL_pack &PL_vtbl_pack # define VTBL_packelem &PL_vtbl_packelem # define VTBL_dbline &PL_vtbl_dbline # define VTBL_isa &PL_vtbl_isa # define VTBL_isaelem &PL_vtbl_isaelem # define VTBL_arylen &PL_vtbl_arylen # define VTBL_glob &PL_vtbl_glob # define VTBL_mglob &PL_vtbl_mglob # define VTBL_nkeys &PL_vtbl_nkeys # define VTBL_taint &PL_vtbl_taint # define VTBL_substr &PL_vtbl_substr # define VTBL_vec &PL_vtbl_vec # define VTBL_pos &PL_vtbl_pos # define VTBL_bm &PL_vtbl_bm # define VTBL_fm &PL_vtbl_fm # define VTBL_uvar &PL_vtbl_uvar # define VTBL_defelem &PL_vtbl_defelem # define VTBL_regexp &PL_vtbl_regexp # define VTBL_regdata &PL_vtbl_regdata # define VTBL_regdatum &PL_vtbl_regdatum # ifdef USE_LOCALE_COLLATE # define VTBL_collxfrm &PL_vtbl_collxfrm # endif # define VTBL_amagic &PL_vtbl_amagic # define VTBL_amagicelem &PL_vtbl_amagicelem #endif #include "perlapi.h" #if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_GET_CONTEXT) && !defined(PERL_CORE) # undef aTHX # undef aTHX_ # define aTHX PERL_GET_THX # define aTHX_ aTHX, #endif #if defined(PERL_IMPLICIT_SYS) && !defined(PERL_CORE) # ifndef NO_XSLOCKS # if defined (NETWARE) && defined (USE_STDIO) # define times PerlProc_times # define setuid PerlProc_setuid # define setgid PerlProc_setgid # define getpid PerlProc_getpid # define pause PerlProc_pause # define exit PerlProc_exit # define _exit PerlProc__exit # else # undef closedir # undef opendir # undef stdin # undef stdout # undef stderr # undef feof # undef ferror # undef fgetpos # undef ioctl # undef getlogin # undef setjmp # undef getc # undef ungetc # undef fileno /* Following symbols were giving redefinition errors while building extensions - sgp 17th Oct 2000 */ #ifdef NETWARE # undef readdir # undef fstat # undef stat # undef longjmp # undef endhostent # undef endnetent # undef endprotoent # undef endservent # undef gethostbyaddr # undef gethostbyname # undef gethostent # undef getnetbyaddr # undef getnetbyname # undef getnetent # undef getprotobyname # undef getprotobynumber # undef getprotoent # undef getservbyname # undef getservbyport # undef getservent # undef inet_ntoa # undef sethostent # undef setnetent # undef setprotoent # undef setservent #endif /* NETWARE */ # undef socketpair # define mkdir PerlDir_mkdir # define chdir PerlDir_chdir # define rmdir PerlDir_rmdir # define closedir PerlDir_close # define opendir PerlDir_open # define readdir PerlDir_read # define rewinddir PerlDir_rewind # define seekdir PerlDir_seek # define telldir PerlDir_tell # define putenv PerlEnv_putenv # define getenv PerlEnv_getenv # define uname PerlEnv_uname # define stdin PerlSIO_stdin # define stdout PerlSIO_stdout # define stderr PerlSIO_stderr # define fopen PerlSIO_fopen # define fclose PerlSIO_fclose # define feof PerlSIO_feof # define ferror PerlSIO_ferror # define clearerr PerlSIO_clearerr # define getc PerlSIO_getc # define fputc PerlSIO_fputc # define fputs PerlSIO_fputs # define fflush PerlSIO_fflush # define ungetc PerlSIO_ungetc # define fileno PerlSIO_fileno # define fdopen PerlSIO_fdopen # define freopen PerlSIO_freopen # define fread PerlSIO_fread # define fwrite PerlSIO_fwrite # define setbuf PerlSIO_setbuf # define setvbuf PerlSIO_setvbuf # define setlinebuf PerlSIO_setlinebuf # define stdoutf PerlSIO_stdoutf # define vfprintf PerlSIO_vprintf # define ftell PerlSIO_ftell # define fseek PerlSIO_fseek # define fgetpos PerlSIO_fgetpos # define fsetpos PerlSIO_fsetpos # define frewind PerlSIO_rewind # define tmpfile PerlSIO_tmpfile # define access PerlLIO_access # define chmod PerlLIO_chmod # define chsize PerlLIO_chsize # define close PerlLIO_close # define dup PerlLIO_dup # define dup2 PerlLIO_dup2 # define flock PerlLIO_flock # define fstat PerlLIO_fstat # define ioctl PerlLIO_ioctl # define isatty PerlLIO_isatty # define link PerlLIO_link # define lseek PerlLIO_lseek # define lstat PerlLIO_lstat # define mktemp PerlLIO_mktemp # define open PerlLIO_open # define read PerlLIO_read # define rename PerlLIO_rename # define setmode PerlLIO_setmode # define stat(buf,sb) PerlLIO_stat(buf,sb) # define tmpnam PerlLIO_tmpnam # define umask PerlLIO_umask # define unlink PerlLIO_unlink # define utime PerlLIO_utime # define write PerlLIO_write # define malloc PerlMem_malloc # define realloc PerlMem_realloc # define free PerlMem_free # define abort PerlProc_abort # define exit PerlProc_exit # define _exit PerlProc__exit # define execl PerlProc_execl # define execv PerlProc_execv # define execvp PerlProc_execvp # define getuid PerlProc_getuid # define geteuid PerlProc_geteuid # define getgid PerlProc_getgid # define getegid PerlProc_getegid # define getlogin PerlProc_getlogin # define kill PerlProc_kill # define killpg PerlProc_killpg # define pause PerlProc_pause # define popen PerlProc_popen # define pclose PerlProc_pclose # define pipe PerlProc_pipe # define setuid PerlProc_setuid # define setgid PerlProc_setgid # define sleep PerlProc_sleep # define times PerlProc_times # define wait PerlProc_wait # define setjmp PerlProc_setjmp # define longjmp PerlProc_longjmp # define signal PerlProc_signal # define getpid PerlProc_getpid # define gettimeofday PerlProc_gettimeofday # define htonl PerlSock_htonl # define htons PerlSock_htons # define ntohl PerlSock_ntohl # define ntohs PerlSock_ntohs # define accept PerlSock_accept # define bind PerlSock_bind # define connect PerlSock_connect # define endhostent PerlSock_endhostent # define endnetent PerlSock_endnetent # define endprotoent PerlSock_endprotoent # define endservent PerlSock_endservent # define gethostbyaddr PerlSock_gethostbyaddr # define gethostbyname PerlSock_gethostbyname # define gethostent PerlSock_gethostent # define gethostname PerlSock_gethostname # define getnetbyaddr PerlSock_getnetbyaddr # define getnetbyname PerlSock_getnetbyname # define getnetent PerlSock_getnetent # define getpeername PerlSock_getpeername # define getprotobyname PerlSock_getprotobyname # define getprotobynumber PerlSock_getprotobynumber # define getprotoent PerlSock_getprotoent # define getservbyname PerlSock_getservbyname # define getservbyport PerlSock_getservbyport # define getservent PerlSock_getservent # define getsockname PerlSock_getsockname # define getsockopt PerlSock_getsockopt # define inet_addr PerlSock_inet_addr # define inet_ntoa PerlSock_inet_ntoa # define listen PerlSock_listen # define recv PerlSock_recv # define recvfrom PerlSock_recvfrom # define select PerlSock_select # define send PerlSock_send # define sendto PerlSock_sendto # define sethostent PerlSock_sethostent # define setnetent PerlSock_setnetent # define setprotoent PerlSock_setprotoent # define setservent PerlSock_setservent # define setsockopt PerlSock_setsockopt # define shutdown PerlSock_shutdown # define socket PerlSock_socket # define socketpair PerlSock_socketpair # endif /* NETWARE && USE_STDIO */ # ifdef USE_SOCKETS_AS_HANDLES # undef fd_set # undef FD_SET # undef FD_CLR # undef FD_ISSET # undef FD_ZERO # define fd_set Perl_fd_set # define FD_SET(n,p) PERL_FD_SET(n,p) # define FD_CLR(n,p) PERL_FD_CLR(n,p) # define FD_ISSET(n,p) PERL_FD_ISSET(n,p) # define FD_ZERO(p) PERL_FD_ZERO(p) # endif /* USE_SOCKETS_AS_HANDLES */ # endif /* NO_XSLOCKS */ #endif /* PERL_IMPLICIT_SYS && !PERL_CORE */ #endif /* _INC_PERL_XSUB_H */ /* include guard */ ================================================ FILE: tests/perlbench/attrs.c ================================================ /* * This file was generated automatically by xsubpp version 1.9508 from the * contents of attrs.xs. Do not edit this file, edit attrs.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ /* #line 1 "attrs.xs" */ #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" static cv_flags_t get_flag(char *attr) { if (strnEQ(attr, "method", 6)) return CVf_METHOD; else if (strnEQ(attr, "locked", 6)) return CVf_LOCKED; else return 0; } /* #line 27 "attrs.c" */ XS(XS_attrs_import); /* prototype to pass -Wmissing-prototypes */ XS(XS_attrs_import) { dXSARGS; dXSI32; PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { /* #line 24 "attrs.xs" */ int i; /* #line 38 "attrs.c" */ /* #line 26 "attrs.xs" */ if (items < 1) Perl_croak(aTHX_ "Usage: %s(Class, ...)", GvNAME(CvGV(cv))); if (!PL_compcv || !(cv = CvOUTSIDE(PL_compcv))) croak("can't set attributes outside a subroutine scope"); if (ckWARN(WARN_DEPRECATED)) Perl_warner(aTHX_ packWARN(WARN_DEPRECATED), "pragma \"attrs\" is deprecated, " "use \"sub NAME : ATTRS\" instead"); for (i = 1; i < items; i++) { STRLEN n_a; char *attr = SvPV(ST(i), n_a); cv_flags_t flag = get_flag(attr); if (!flag) croak("invalid attribute name %s", attr); if (ix) CvFLAGS(cv) &= ~flag; else CvFLAGS(cv) |= flag; } /* #line 59 "attrs.c" */ PUTBACK; return; } } XS(XS_attrs_get); /* prototype to pass -Wmissing-prototypes */ XS(XS_attrs_get) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: attrs::get(sub)"); SP -= items; { SV * sub = ST(0); /* #line 50 "attrs.xs" */ if (SvROK(sub)) { sub = SvRV(sub); if (SvTYPE(sub) != SVt_PVCV) sub = Nullsv; } else { STRLEN n_a; char *name = SvPV(sub, n_a); sub = (SV*)get_cv(name, FALSE); } if (!sub) croak("invalid subroutine reference or name"); if (CvFLAGS(sub) & CVf_METHOD) XPUSHs(sv_2mortal(newSVpvn("method", 6))); if (CvFLAGS(sub) & CVf_LOCKED) XPUSHs(sv_2mortal(newSVpvn("locked", 6))); /* #line 91 "attrs.c" */ PUTBACK; return; } } #ifdef __cplusplus extern "C" #endif XS(boot_attrs); /* prototype to pass -Wmissing-prototypes */ XS(boot_attrs) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; { CV * cv ; cv = newXS("attrs::unimport", XS_attrs_import, file); XSANY.any_i32 = 1 ; cv = newXS("attrs::import", XS_attrs_import, file); XSANY.any_i32 = 0 ; newXS("attrs::get", XS_attrs_get, file); } XSRETURN_YES; } ================================================ FILE: tests/perlbench/av.c ================================================ /* av.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * "...for the Entwives desired order, and plenty, and peace (by which they * meant that things should remain where they had set them)." --Treebeard */ /* =head1 Array Manipulation Functions */ #include "EXTERN.h" #define PERL_IN_AV_C #include "perl.h" void Perl_av_reify(pTHX_ AV *av) { I32 key; SV* sv; if (AvREAL(av)) return; #ifdef DEBUGGING if (SvTIED_mg((SV*)av, PERL_MAGIC_tied) && ckWARN_d(WARN_DEBUGGING)) Perl_warner(aTHX_ packWARN(WARN_DEBUGGING), "av_reify called on tied array"); #endif key = AvMAX(av) + 1; while (key > AvFILLp(av) + 1) AvARRAY(av)[--key] = &PL_sv_undef; while (key) { sv = AvARRAY(av)[--key]; assert(sv); if (sv != &PL_sv_undef) (void)SvREFCNT_inc(sv); } key = AvARRAY(av) - AvALLOC(av); while (key) AvALLOC(av)[--key] = &PL_sv_undef; AvREIFY_off(av); AvREAL_on(av); } /* =for apidoc av_extend Pre-extend an array. The C is the index to which the array should be extended. =cut */ void Perl_av_extend(pTHX_ AV *av, I32 key) { MAGIC *mg; if ((mg = SvTIED_mg((SV*)av, PERL_MAGIC_tied))) { dSP; ENTER; SAVETMPS; PUSHSTACKi(PERLSI_MAGIC); PUSHMARK(SP); EXTEND(SP,2); PUSHs(SvTIED_obj((SV*)av, mg)); PUSHs(sv_2mortal(newSViv(key+1))); PUTBACK; call_method("EXTEND", G_SCALAR|G_DISCARD); POPSTACK; FREETMPS; LEAVE; return; } if (key > AvMAX(av)) { SV** ary; I32 tmp; I32 newmax; if (AvALLOC(av) != AvARRAY(av)) { ary = AvALLOC(av) + AvFILLp(av) + 1; tmp = AvARRAY(av) - AvALLOC(av); Move(AvARRAY(av), AvALLOC(av), AvFILLp(av)+1, SV*); AvMAX(av) += tmp; SvPVX(av) = (char*)AvALLOC(av); if (AvREAL(av)) { while (tmp) ary[--tmp] = &PL_sv_undef; } if (key > AvMAX(av) - 10) { newmax = key + AvMAX(av); goto resize; } } else { #ifdef PERL_MALLOC_WRAP static const char oom_array_extend[] = "Out of memory during array extend"; /* Duplicated in pp_hot.c */ #endif if (AvALLOC(av)) { #if !defined(STRANGE_MALLOC) && !defined(MYMALLOC) MEM_SIZE bytes; IV itmp; #endif #ifdef MYMALLOC newmax = malloced_size((void*)AvALLOC(av))/sizeof(SV*) - 1; if (key <= newmax) goto resized; #endif newmax = key + AvMAX(av) / 5; resize: MEM_WRAP_CHECK_1(newmax+1, SV*, oom_array_extend); #if defined(STRANGE_MALLOC) || defined(MYMALLOC) Renew(AvALLOC(av),newmax+1, SV*); #else bytes = (newmax + 1) * sizeof(SV*); #define MALLOC_OVERHEAD 16 itmp = MALLOC_OVERHEAD; while ((MEM_SIZE)(itmp - MALLOC_OVERHEAD) < bytes) itmp += itmp; itmp -= MALLOC_OVERHEAD; itmp /= sizeof(SV*); assert(itmp > newmax); newmax = itmp - 1; assert(newmax >= AvMAX(av)); New(2,ary, newmax+1, SV*); Copy(AvALLOC(av), ary, AvMAX(av)+1, SV*); if (AvMAX(av) > 64) offer_nice_chunk(AvALLOC(av), (AvMAX(av)+1) * sizeof(SV*)); else Safefree(AvALLOC(av)); AvALLOC(av) = ary; #endif #ifdef MYMALLOC resized: #endif ary = AvALLOC(av) + AvMAX(av) + 1; tmp = newmax - AvMAX(av); if (av == PL_curstack) { /* Oops, grew stack (via av_store()?) */ PL_stack_sp = AvALLOC(av) + (PL_stack_sp - PL_stack_base); PL_stack_base = AvALLOC(av); PL_stack_max = PL_stack_base + newmax; } } else { newmax = key < 3 ? 3 : key; MEM_WRAP_CHECK_1(newmax+1, SV*, oom_array_extend); New(2,AvALLOC(av), newmax+1, SV*); ary = AvALLOC(av) + 1; tmp = newmax; AvALLOC(av)[0] = &PL_sv_undef; /* For the stacks */ } if (AvREAL(av)) { while (tmp) ary[--tmp] = &PL_sv_undef; } SvPVX(av) = (char*)AvALLOC(av); AvMAX(av) = newmax; } } } /* =for apidoc av_fetch Returns the SV at the specified index in the array. The C is the index. If C is set then the fetch will be part of a store. Check that the return value is non-null before dereferencing it to a C. See L for more information on how to use this function on tied arrays. =cut */ SV** Perl_av_fetch(pTHX_ register AV *av, I32 key, I32 lval) { SV *sv; if (!av) return 0; if (SvRMAGICAL(av)) { MAGIC *tied_magic = mg_find((SV*)av, PERL_MAGIC_tied); if (tied_magic || mg_find((SV*)av, PERL_MAGIC_regdata)) { U32 adjust_index = 1; if (tied_magic && key < 0) { /* Handle negative array indices 20020222 MJD */ SV **negative_indices_glob = hv_fetch(SvSTASH(SvRV(SvTIED_obj((SV *)av, tied_magic))), NEGATIVE_INDICES_VAR, 16, 0); if (negative_indices_glob && SvTRUE(GvSV(*negative_indices_glob))) adjust_index = 0; } if (key < 0 && adjust_index) { key += AvFILL(av) + 1; if (key < 0) return 0; } sv = sv_newmortal(); sv_upgrade(sv, SVt_PVLV); mg_copy((SV*)av, sv, 0, key); LvTYPE(sv) = 't'; LvTARG(sv) = sv; /* fake (SV**) */ return &(LvTARG(sv)); } } if (key < 0) { key += AvFILL(av) + 1; if (key < 0) return 0; } if (key > AvFILLp(av)) { if (!lval) return 0; sv = NEWSV(5,0); return av_store(av,key,sv); } if (AvARRAY(av)[key] == &PL_sv_undef) { emptyness: if (lval) { sv = NEWSV(6,0); return av_store(av,key,sv); } return 0; } else if (AvREIFY(av) && (!AvARRAY(av)[key] /* eg. @_ could have freed elts */ || SvTYPE(AvARRAY(av)[key]) == SVTYPEMASK)) { AvARRAY(av)[key] = &PL_sv_undef; /* 1/2 reify */ goto emptyness; } return &AvARRAY(av)[key]; } /* =for apidoc av_store Stores an SV in an array. The array index is specified as C. The return value will be NULL if the operation failed or if the value did not need to be actually stored within the array (as in the case of tied arrays). Otherwise it can be dereferenced to get the original C. Note that the caller is responsible for suitably incrementing the reference count of C before the call, and decrementing it if the function returned NULL. See L for more information on how to use this function on tied arrays. =cut */ SV** Perl_av_store(pTHX_ register AV *av, I32 key, SV *val) { SV** ary; if (!av) return 0; if (!val) val = &PL_sv_undef; if (SvRMAGICAL(av)) { MAGIC *tied_magic = mg_find((SV*)av, PERL_MAGIC_tied); if (tied_magic) { /* Handle negative array indices 20020222 MJD */ if (key < 0) { unsigned adjust_index = 1; SV **negative_indices_glob = hv_fetch(SvSTASH(SvRV(SvTIED_obj((SV *)av, tied_magic))), NEGATIVE_INDICES_VAR, 16, 0); if (negative_indices_glob && SvTRUE(GvSV(*negative_indices_glob))) adjust_index = 0; if (adjust_index) { key += AvFILL(av) + 1; if (key < 0) return 0; } } if (val != &PL_sv_undef) { mg_copy((SV*)av, val, 0, key); } return 0; } } if (key < 0) { key += AvFILL(av) + 1; if (key < 0) return 0; } if (SvREADONLY(av) && key >= AvFILL(av)) Perl_croak(aTHX_ PL_no_modify); if (!AvREAL(av) && AvREIFY(av)) av_reify(av); if (key > AvMAX(av)) av_extend(av,key); ary = AvARRAY(av); if (AvFILLp(av) < key) { if (!AvREAL(av)) { if (av == PL_curstack && key > PL_stack_sp - PL_stack_base) PL_stack_sp = PL_stack_base + key; /* XPUSH in disguise */ do ary[++AvFILLp(av)] = &PL_sv_undef; while (AvFILLp(av) < key); } AvFILLp(av) = key; } else if (AvREAL(av)) SvREFCNT_dec(ary[key]); ary[key] = val; if (SvSMAGICAL(av)) { if (val != &PL_sv_undef) { MAGIC* mg = SvMAGIC(av); sv_magic(val, (SV*)av, toLOWER(mg->mg_type), 0, key); } mg_set((SV*)av); } return &ary[key]; } /* =for apidoc newAV Creates a new AV. The reference count is set to 1. =cut */ AV * Perl_newAV(pTHX) { register AV *av; av = (AV*)NEWSV(3,0); sv_upgrade((SV *)av, SVt_PVAV); AvREAL_on(av); AvALLOC(av) = 0; SvPVX(av) = 0; AvMAX(av) = AvFILLp(av) = -1; return av; } /* =for apidoc av_make Creates a new AV and populates it with a list of SVs. The SVs are copied into the array, so they may be freed after the call to av_make. The new AV will have a reference count of 1. =cut */ AV * Perl_av_make(pTHX_ register I32 size, register SV **strp) { register AV *av; register I32 i; register SV** ary; av = (AV*)NEWSV(8,0); sv_upgrade((SV *) av,SVt_PVAV); AvFLAGS(av) = AVf_REAL; if (size) { /* `defined' was returning undef for size==0 anyway. */ New(4,ary,size,SV*); AvALLOC(av) = ary; SvPVX(av) = (char*)ary; AvFILLp(av) = size - 1; AvMAX(av) = size - 1; for (i = 0; i < size; i++) { assert (*strp); ary[i] = NEWSV(7,0); sv_setsv(ary[i], *strp); strp++; } } return av; } AV * Perl_av_fake(pTHX_ register I32 size, register SV **strp) { register AV *av; register SV** ary; av = (AV*)NEWSV(9,0); sv_upgrade((SV *)av, SVt_PVAV); New(4,ary,size+1,SV*); AvALLOC(av) = ary; Copy(strp,ary,size,SV*); AvFLAGS(av) = AVf_REIFY; SvPVX(av) = (char*)ary; AvFILLp(av) = size - 1; AvMAX(av) = size - 1; while (size--) { assert (*strp); SvTEMP_off(*strp); strp++; } return av; } /* =for apidoc av_clear Clears an array, making it empty. Does not free the memory used by the array itself. =cut */ void Perl_av_clear(pTHX_ register AV *av) { register I32 key; SV** ary; #ifdef DEBUGGING if (SvREFCNT(av) == 0 && ckWARN_d(WARN_DEBUGGING)) { Perl_warner(aTHX_ packWARN(WARN_DEBUGGING), "Attempt to clear deleted array"); } #endif if (!av) return; /*SUPPRESS 560*/ if (SvREADONLY(av)) Perl_croak(aTHX_ PL_no_modify); /* Give any tie a chance to cleanup first */ if (SvRMAGICAL(av)) mg_clear((SV*)av); if (AvMAX(av) < 0) return; if (AvREAL(av)) { ary = AvARRAY(av); key = AvFILLp(av) + 1; while (key) { SV * sv = ary[--key]; /* undef the slot before freeing the value, because a * destructor might try to modify this arrray */ ary[key] = &PL_sv_undef; SvREFCNT_dec(sv); } } if ((key = AvARRAY(av) - AvALLOC(av))) { AvMAX(av) += key; SvPVX(av) = (char*)AvALLOC(av); } AvFILLp(av) = -1; } /* =for apidoc av_undef Undefines the array. Frees the memory used by the array itself. =cut */ void Perl_av_undef(pTHX_ register AV *av) { register I32 key; if (!av) return; /*SUPPRESS 560*/ /* Give any tie a chance to cleanup first */ if (SvTIED_mg((SV*)av, PERL_MAGIC_tied)) av_fill(av, -1); /* mg_clear() ? */ if (AvREAL(av)) { key = AvFILLp(av) + 1; while (key) SvREFCNT_dec(AvARRAY(av)[--key]); } Safefree(AvALLOC(av)); AvALLOC(av) = 0; SvPVX(av) = 0; AvMAX(av) = AvFILLp(av) = -1; if (AvARYLEN(av)) { SvREFCNT_dec(AvARYLEN(av)); AvARYLEN(av) = 0; } } /* =for apidoc av_push Pushes an SV onto the end of the array. The array will grow automatically to accommodate the addition. =cut */ void Perl_av_push(pTHX_ register AV *av, SV *val) { MAGIC *mg; if (!av) return; if (SvREADONLY(av)) Perl_croak(aTHX_ PL_no_modify); if ((mg = SvTIED_mg((SV*)av, PERL_MAGIC_tied))) { dSP; PUSHSTACKi(PERLSI_MAGIC); PUSHMARK(SP); EXTEND(SP,2); PUSHs(SvTIED_obj((SV*)av, mg)); PUSHs(val); PUTBACK; ENTER; call_method("PUSH", G_SCALAR|G_DISCARD); LEAVE; POPSTACK; return; } av_store(av,AvFILLp(av)+1,val); } /* =for apidoc av_pop Pops an SV off the end of the array. Returns C<&PL_sv_undef> if the array is empty. =cut */ SV * Perl_av_pop(pTHX_ register AV *av) { SV *retval; MAGIC* mg; if (!av) return &PL_sv_undef; if (SvREADONLY(av)) Perl_croak(aTHX_ PL_no_modify); if ((mg = SvTIED_mg((SV*)av, PERL_MAGIC_tied))) { dSP; PUSHSTACKi(PERLSI_MAGIC); PUSHMARK(SP); XPUSHs(SvTIED_obj((SV*)av, mg)); PUTBACK; ENTER; if (call_method("POP", G_SCALAR)) { retval = newSVsv(*PL_stack_sp--); } else { retval = &PL_sv_undef; } LEAVE; POPSTACK; return retval; } if (AvFILL(av) < 0) return &PL_sv_undef; retval = AvARRAY(av)[AvFILLp(av)]; AvARRAY(av)[AvFILLp(av)--] = &PL_sv_undef; if (SvSMAGICAL(av)) mg_set((SV*)av); return retval; } /* =for apidoc av_unshift Unshift the given number of C values onto the beginning of the array. The array will grow automatically to accommodate the addition. You must then use C to assign values to these new elements. =cut */ void Perl_av_unshift(pTHX_ register AV *av, register I32 num) { register I32 i; register SV **ary; MAGIC* mg; I32 slide; if (!av) return; if (SvREADONLY(av)) Perl_croak(aTHX_ PL_no_modify); if ((mg = SvTIED_mg((SV*)av, PERL_MAGIC_tied))) { dSP; PUSHSTACKi(PERLSI_MAGIC); PUSHMARK(SP); EXTEND(SP,1+num); PUSHs(SvTIED_obj((SV*)av, mg)); while (num-- > 0) { PUSHs(&PL_sv_undef); } PUTBACK; ENTER; call_method("UNSHIFT", G_SCALAR|G_DISCARD); LEAVE; POPSTACK; return; } if (num <= 0) return; if (!AvREAL(av) && AvREIFY(av)) av_reify(av); i = AvARRAY(av) - AvALLOC(av); if (i) { if (i > num) i = num; num -= i; AvMAX(av) += i; AvFILLp(av) += i; SvPVX(av) = (char*)(AvARRAY(av) - i); } if (num) { i = AvFILLp(av); /* Create extra elements */ slide = i > 0 ? i : 0; num += slide; av_extend(av, i + num); AvFILLp(av) += num; ary = AvARRAY(av); Move(ary, ary + num, i + 1, SV*); do { ary[--num] = &PL_sv_undef; } while (num); /* Make extra elements into a buffer */ AvMAX(av) -= slide; AvFILLp(av) -= slide; SvPVX(av) = (char*)(AvARRAY(av) + slide); } } /* =for apidoc av_shift Shifts an SV off the beginning of the array. =cut */ SV * Perl_av_shift(pTHX_ register AV *av) { SV *retval; MAGIC* mg; if (!av) return &PL_sv_undef; if (SvREADONLY(av)) Perl_croak(aTHX_ PL_no_modify); if ((mg = SvTIED_mg((SV*)av, PERL_MAGIC_tied))) { dSP; PUSHSTACKi(PERLSI_MAGIC); PUSHMARK(SP); XPUSHs(SvTIED_obj((SV*)av, mg)); PUTBACK; ENTER; if (call_method("SHIFT", G_SCALAR)) { retval = newSVsv(*PL_stack_sp--); } else { retval = &PL_sv_undef; } LEAVE; POPSTACK; return retval; } if (AvFILL(av) < 0) return &PL_sv_undef; retval = *AvARRAY(av); if (AvREAL(av)) *AvARRAY(av) = &PL_sv_undef; SvPVX(av) = (char*)(AvARRAY(av) + 1); AvMAX(av)--; AvFILLp(av)--; if (SvSMAGICAL(av)) mg_set((SV*)av); return retval; } /* =for apidoc av_len Returns the highest index in the array. Returns -1 if the array is empty. =cut */ I32 Perl_av_len(pTHX_ register AV *av) { return AvFILL(av); } /* =for apidoc av_fill Ensure than an array has a given number of elements, equivalent to Perl's C<$#array = $fill;>. =cut */ void Perl_av_fill(pTHX_ register AV *av, I32 fill) { MAGIC *mg; if (!av) Perl_croak(aTHX_ "panic: null array"); if (fill < 0) fill = -1; if ((mg = SvTIED_mg((SV*)av, PERL_MAGIC_tied))) { dSP; ENTER; SAVETMPS; PUSHSTACKi(PERLSI_MAGIC); PUSHMARK(SP); EXTEND(SP,2); PUSHs(SvTIED_obj((SV*)av, mg)); PUSHs(sv_2mortal(newSViv(fill+1))); PUTBACK; call_method("STORESIZE", G_SCALAR|G_DISCARD); POPSTACK; FREETMPS; LEAVE; return; } if (fill <= AvMAX(av)) { I32 key = AvFILLp(av); SV** ary = AvARRAY(av); if (AvREAL(av)) { while (key > fill) { SvREFCNT_dec(ary[key]); ary[key--] = &PL_sv_undef; } } else { while (key < fill) ary[++key] = &PL_sv_undef; } AvFILLp(av) = fill; if (SvSMAGICAL(av)) mg_set((SV*)av); } else (void)av_store(av,fill,&PL_sv_undef); } /* =for apidoc av_delete Deletes the element indexed by C from the array. Returns the deleted element. If C equals C, the element is freed and null is returned. =cut */ SV * Perl_av_delete(pTHX_ AV *av, I32 key, I32 flags) { SV *sv; if (!av) return Nullsv; if (SvREADONLY(av)) Perl_croak(aTHX_ PL_no_modify); if (SvRMAGICAL(av)) { MAGIC *tied_magic = mg_find((SV*)av, PERL_MAGIC_tied); SV **svp; if ((tied_magic || mg_find((SV*)av, PERL_MAGIC_regdata))) { /* Handle negative array indices 20020222 MJD */ if (key < 0) { unsigned adjust_index = 1; if (tied_magic) { SV **negative_indices_glob = hv_fetch(SvSTASH(SvRV(SvTIED_obj((SV *)av, tied_magic))), NEGATIVE_INDICES_VAR, 16, 0); if (negative_indices_glob && SvTRUE(GvSV(*negative_indices_glob))) adjust_index = 0; } if (adjust_index) { key += AvFILL(av) + 1; if (key < 0) return Nullsv; } } svp = av_fetch(av, key, TRUE); if (svp) { sv = *svp; mg_clear(sv); if (mg_find(sv, PERL_MAGIC_tiedelem)) { sv_unmagic(sv, PERL_MAGIC_tiedelem); /* No longer an element */ return sv; } return Nullsv; } } } if (key < 0) { key += AvFILL(av) + 1; if (key < 0) return Nullsv; } if (key > AvFILLp(av)) return Nullsv; else { if (!AvREAL(av) && AvREIFY(av)) av_reify(av); sv = AvARRAY(av)[key]; if (key == AvFILLp(av)) { AvARRAY(av)[key] = &PL_sv_undef; do { AvFILLp(av)--; } while (--key >= 0 && AvARRAY(av)[key] == &PL_sv_undef); } else AvARRAY(av)[key] = &PL_sv_undef; if (SvSMAGICAL(av)) mg_set((SV*)av); } if (flags & G_DISCARD) { SvREFCNT_dec(sv); sv = Nullsv; } else if (AvREAL(av)) sv = sv_2mortal(sv); return sv; } /* =for apidoc av_exists Returns true if the element indexed by C has been initialized. This relies on the fact that uninitialized array elements are set to C<&PL_sv_undef>. =cut */ bool Perl_av_exists(pTHX_ AV *av, I32 key) { if (!av) return FALSE; if (SvRMAGICAL(av)) { MAGIC *tied_magic = mg_find((SV*)av, PERL_MAGIC_tied); if (tied_magic || mg_find((SV*)av, PERL_MAGIC_regdata)) { SV *sv = sv_newmortal(); MAGIC *mg; /* Handle negative array indices 20020222 MJD */ if (key < 0) { unsigned adjust_index = 1; if (tied_magic) { SV **negative_indices_glob = hv_fetch(SvSTASH(SvRV(SvTIED_obj((SV *)av, tied_magic))), NEGATIVE_INDICES_VAR, 16, 0); if (negative_indices_glob && SvTRUE(GvSV(*negative_indices_glob))) adjust_index = 0; } if (adjust_index) { key += AvFILL(av) + 1; if (key < 0) return FALSE; } } mg_copy((SV*)av, sv, 0, key); mg = mg_find(sv, PERL_MAGIC_tiedelem); if (mg) { magic_existspack(sv, mg); return (bool)SvTRUE(sv); } } } if (key < 0) { key += AvFILL(av) + 1; if (key < 0) return FALSE; } if (key <= AvFILLp(av) && AvARRAY(av)[key] != &PL_sv_undef && AvARRAY(av)[key]) { return TRUE; } else return FALSE; } /* AVHV: Support for treating arrays as if they were hashes. The * first element of the array should be a hash reference that maps * hash keys to array indices. */ STATIC I32 S_avhv_index_sv(pTHX_ SV* sv) { I32 index = SvIV(sv); if (index < 1) Perl_croak(aTHX_ "Bad index while coercing array into hash"); return index; } STATIC I32 S_avhv_index(pTHX_ AV *av, SV *keysv, U32 hash) { HV *keys; HE *he; STRLEN n_a; keys = avhv_keys(av); he = hv_fetch_ent(keys, keysv, FALSE, hash); if (!he) Perl_croak(aTHX_ "No such pseudo-hash field \"%s\"", SvPV(keysv,n_a)); return avhv_index_sv(HeVAL(he)); } HV* Perl_avhv_keys(pTHX_ AV *av) { SV **keysp = av_fetch(av, 0, FALSE); if (keysp) { SV *sv = *keysp; if (SvGMAGICAL(sv)) mg_get(sv); if (SvROK(sv)) { if (ckWARN(WARN_DEPRECATED) && !sv_isa(sv, "pseudohash")) Perl_warner(aTHX_ packWARN(WARN_DEPRECATED), "Pseudo-hashes are deprecated"); sv = SvRV(sv); if (SvTYPE(sv) == SVt_PVHV) return (HV*)sv; } } Perl_croak(aTHX_ "Can't coerce array into hash"); return Nullhv; } SV** Perl_avhv_store_ent(pTHX_ AV *av, SV *keysv, SV *val, U32 hash) { return av_store(av, avhv_index(av, keysv, hash), val); } SV** Perl_avhv_fetch_ent(pTHX_ AV *av, SV *keysv, I32 lval, U32 hash) { return av_fetch(av, avhv_index(av, keysv, hash), lval); } SV * Perl_avhv_delete_ent(pTHX_ AV *av, SV *keysv, I32 flags, U32 hash) { HV *keys = avhv_keys(av); HE *he; he = hv_fetch_ent(keys, keysv, FALSE, hash); if (!he || !SvOK(HeVAL(he))) return Nullsv; return av_delete(av, avhv_index_sv(HeVAL(he)), flags); } /* Check for the existence of an element named by a given key. * */ bool Perl_avhv_exists_ent(pTHX_ AV *av, SV *keysv, U32 hash) { HV *keys = avhv_keys(av); HE *he; he = hv_fetch_ent(keys, keysv, FALSE, hash); if (!he || !SvOK(HeVAL(he))) return FALSE; return av_exists(av, avhv_index_sv(HeVAL(he))); } HE * Perl_avhv_iternext(pTHX_ AV *av) { HV *keys = avhv_keys(av); return hv_iternext(keys); } SV * Perl_avhv_iterval(pTHX_ AV *av, register HE *entry) { SV *sv = hv_iterval(avhv_keys(av), entry); return *av_fetch(av, avhv_index_sv(sv), TRUE); } ================================================ FILE: tests/perlbench/av.h ================================================ /* av.h * * Copyright (C) 1991, 1992, 1993, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ struct xpvav { char* xav_array; /* pointer to first array element */ SSize_t xav_fill; /* Index of last element present */ SSize_t xav_max; /* max index for which array has space */ IV xof_off; /* ptr is incremented by offset */ NV xnv_nv; /* numeric value, if any */ MAGIC* xmg_magic; /* magic for scalar array */ HV* xmg_stash; /* class package */ SV** xav_alloc; /* pointer to beginning of C array of SVs */ SV* xav_arylen; U8 xav_flags; }; /* AVf_REAL is set for all AVs whose xav_array contents are refcounted. * Some things like "@_" and the scratchpad list do not set this, to * indicate that they are cheating (for efficiency) by not refcounting * the AV's contents. * * AVf_REIFY is only meaningful on such "fake" AVs (i.e. where AVf_REAL * is not set). It indicates that the fake AV is capable of becoming * real if the array needs to be modified in some way. Functions that * modify fake AVs check both flags to call av_reify() as appropriate. * * Note that the Perl stack and @DB::args have neither flag set. (Thus, * items that go on the stack are never refcounted.) * * These internal details are subject to change any time. AV * manipulations external to perl should not care about any of this. * GSAR 1999-09-10 */ #define AVf_REAL 1 /* free old entries */ #define AVf_REIFY 2 /* can become real */ /* XXX this is not used anywhere */ #define AVf_REUSED 4 /* got undeffed--don't turn old memory into SVs now */ /* =head1 Handy Values =for apidoc AmU||Nullav Null AV pointer. =head1 Array Manipulation Functions =for apidoc Am|int|AvFILL|AV* av Same as C. Deprecated, use C instead. =cut */ #define Nullav Null(AV*) #define AvARRAY(av) ((SV**)((XPVAV*) SvANY(av))->xav_array) #define AvALLOC(av) ((XPVAV*) SvANY(av))->xav_alloc #define AvMAX(av) ((XPVAV*) SvANY(av))->xav_max #define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill #define AvARYLEN(av) ((XPVAV*) SvANY(av))->xav_arylen #define AvFLAGS(av) ((XPVAV*) SvANY(av))->xav_flags #define AvREAL(av) (AvFLAGS(av) & AVf_REAL) #define AvREAL_on(av) (AvFLAGS(av) |= AVf_REAL) #define AvREAL_off(av) (AvFLAGS(av) &= ~AVf_REAL) #define AvREIFY(av) (AvFLAGS(av) & AVf_REIFY) #define AvREIFY_on(av) (AvFLAGS(av) |= AVf_REIFY) #define AvREIFY_off(av) (AvFLAGS(av) &= ~AVf_REIFY) #define AvREUSED(av) (AvFLAGS(av) & AVf_REUSED) #define AvREUSED_on(av) (AvFLAGS(av) |= AVf_REUSED) #define AvREUSED_off(av) (AvFLAGS(av) &= ~AVf_REUSED) #define AvREALISH(av) (AvFLAGS(av) & (AVf_REAL|AVf_REIFY)) #define AvFILL(av) ((SvRMAGICAL((SV *) (av))) \ ? mg_size((SV *) av) : AvFILLp(av)) #define NEGATIVE_INDICES_VAR "NEGATIVE_INDICES" ================================================ FILE: tests/perlbench/config.h ================================================ #ifdef SPEC_CPU # include "spec_config.h" #else # error "400.perlbench really isn't useful outside of the SPEC CPU harness" #endif ================================================ FILE: tests/perlbench/const-c.inc ================================================ #define PERL_constant_NOTFOUND 1 #define PERL_constant_NOTDEF 2 #define PERL_constant_ISIV 3 #define PERL_constant_ISNO 4 #define PERL_constant_ISNV 5 #define PERL_constant_ISPV 6 #define PERL_constant_ISPVN 7 #define PERL_constant_ISSV 8 #define PERL_constant_ISUNDEF 9 #define PERL_constant_ISUV 10 #define PERL_constant_ISYES 11 #ifndef NVTYPE typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */ #endif #ifndef aTHX_ #define aTHX_ /* 5.6 or later define this for threading support. */ #endif #ifndef pTHX_ #define pTHX_ /* 5.6 or later define this for threading support. */ #endif static int constant_11 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. ITIMER_PROF ITIMER_REAL d_getitimer d_nanosleep d_setitimer */ /* Offset 7 gives the best switch position. */ switch (name[7]) { case 'P': if (memEQ(name, "ITIMER_PROF", 11)) { /* ^ */ #ifdef ITIMER_PROF *iv_return = ITIMER_PROF; return PERL_constant_ISIV; #else return PERL_constant_NOTDEF; #endif } break; case 'R': if (memEQ(name, "ITIMER_REAL", 11)) { /* ^ */ #ifdef ITIMER_REAL *iv_return = ITIMER_REAL; return PERL_constant_ISIV; #else return PERL_constant_NOTDEF; #endif } break; case 'i': if (memEQ(name, "d_getitimer", 11)) { /* ^ */ #ifdef HAS_GETITIMER *iv_return = 1; return PERL_constant_ISIV; #else *iv_return = 0; return PERL_constant_ISIV; #endif } if (memEQ(name, "d_setitimer", 11)) { /* ^ */ #ifdef HAS_SETITIMER *iv_return = 1; return PERL_constant_ISIV; #else *iv_return = 0; return PERL_constant_ISIV; #endif } break; case 'l': if (memEQ(name, "d_nanosleep", 11)) { /* ^ */ #ifdef TIME_HIRES_NANOSLEEP *iv_return = 1; return PERL_constant_ISIV; #else *iv_return = 0; return PERL_constant_ISIV; #endif } break; } return PERL_constant_NOTFOUND; } static int constant (pTHX_ const char *name, STRLEN len, IV *iv_return) { /* Initially switch on the length of the name. */ /* When generated this function returned values for the list of names given in this section of perl code. Rather than manually editing these functions to add or remove constants, which would result in this comment and section of code becoming inaccurate, we recommend that you edit this section of code, and use it to regenerate a new set of constant functions which you then use to replace the originals. Regenerate these constant functions by feeding this entire source file to perl -x #!../../../miniperl -w use ExtUtils::Constant qw (constant_types C_constant XS_constant); my $types = {map {($_, 1)} qw(IV)}; my @names = (qw(ITIMER_PROF ITIMER_REAL ITIMER_REALPROF ITIMER_VIRTUAL), {name=>"d_getitimer", type=>"IV", macro=>"HAS_GETITIMER", value=>"1", default=>["IV", "0"]}, {name=>"d_gettimeofday", type=>"IV", macro=>"HAS_GETTIMEOFDAY", value=>"1", default=>["IV", "0"]}, {name=>"d_nanosleep", type=>"IV", macro=>"TIME_HIRES_NANOSLEEP", value=>"1", default=>["IV", "0"]}, {name=>"d_setitimer", type=>"IV", macro=>"HAS_SETITIMER", value=>"1", default=>["IV", "0"]}, {name=>"d_ualarm", type=>"IV", macro=>"HAS_UALARM", value=>"1", default=>["IV", "0"]}, {name=>"d_usleep", type=>"IV", macro=>"HAS_USLEEP", value=>"1", default=>["IV", "0"]}); print constant_types(); # macro defs foreach (C_constant ("Time::HiRes", 'constant', 'IV', $types, undef, 3, @names) ) { print $_, "\n"; # C constant subs } print "#### XS Section:\n"; print XS_constant ("Time::HiRes", $types); __END__ */ switch (len) { case 8: /* Names all of length 8. */ /* d_ualarm d_usleep */ /* Offset 7 gives the best switch position. */ switch (name[7]) { case 'm': if (memEQ(name, "d_ualar", 7)) { /* m */ #ifdef HAS_UALARM *iv_return = 1; return PERL_constant_ISIV; #else *iv_return = 0; return PERL_constant_ISIV; #endif } break; case 'p': if (memEQ(name, "d_uslee", 7)) { /* p */ #ifdef HAS_USLEEP *iv_return = 1; return PERL_constant_ISIV; #else *iv_return = 0; return PERL_constant_ISIV; #endif } break; } break; case 11: return constant_11 (aTHX_ name, iv_return); break; case 14: /* Names all of length 14. */ /* ITIMER_VIRTUAL d_gettimeofday */ /* Offset 6 gives the best switch position. */ switch (name[6]) { case '_': if (memEQ(name, "ITIMER_VIRTUAL", 14)) { /* ^ */ #ifdef ITIMER_VIRTUAL *iv_return = ITIMER_VIRTUAL; return PERL_constant_ISIV; #else return PERL_constant_NOTDEF; #endif } break; case 'i': if (memEQ(name, "d_gettimeofday", 14)) { /* ^ */ #ifdef HAS_GETTIMEOFDAY *iv_return = 1; return PERL_constant_ISIV; #else *iv_return = 0; return PERL_constant_ISIV; #endif } break; } break; case 15: if (memEQ(name, "ITIMER_REALPROF", 15)) { #ifdef ITIMER_REALPROF *iv_return = ITIMER_REALPROF; return PERL_constant_ISIV; #else return PERL_constant_NOTDEF; #endif } break; } return PERL_constant_NOTFOUND; } ================================================ FILE: tests/perlbench/cop.h ================================================ /* cop.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * Control ops (cops) are one of the three ops OP_NEXTSTATE, OP_DBSTATE, * and OP_SETSTATE that (loosely speaking) are separate statements. * They hold information important for lexical state and error reporting. * At run time, PL_curcop is set to point to the most recently executed cop, * and thus can be used to determine our current state. */ struct cop { BASEOP char * cop_label; /* label for this construct */ #ifdef USE_ITHREADS char * cop_stashpv; /* package line was compiled in */ char * cop_file; /* file name the following line # is from */ #else HV * cop_stash; /* package line was compiled in */ GV * cop_filegv; /* file the following line # is from */ #endif U32 cop_seq; /* parse sequence number */ I32 cop_arybase; /* array base this line was compiled with */ line_t cop_line; /* line # of this command */ SV * cop_warnings; /* lexical warnings bitmask */ SV * cop_io; /* lexical IO defaults */ }; #define Nullcop Null(COP*) #ifdef USE_ITHREADS # define CopFILE(c) ((c)->cop_file) # define CopFILEGV(c) (CopFILE(c) \ ? gv_fetchfile(CopFILE(c)) : Nullgv) # ifdef NETWARE # define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv)) # else # define CopFILE_set(c,pv) ((c)->cop_file = savesharedpv(pv)) # endif # define CopFILESV(c) (CopFILE(c) \ ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv) # define CopFILEAV(c) (CopFILE(c) \ ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav) # define CopSTASHPV(c) ((c)->cop_stashpv) # ifdef NETWARE # define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch)) # else # define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = savesharedpv(pv)) # endif # define CopSTASH(c) (CopSTASHPV(c) \ ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv) # define CopSTASH_set(c,hv) CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch) # define CopSTASH_eq(c,hv) ((hv) \ && (CopSTASHPV(c) == HvNAME(hv) \ || (CopSTASHPV(c) && HvNAME(hv) \ && strEQ(CopSTASHPV(c), HvNAME(hv))))) # ifdef NETWARE # define CopSTASH_free(c) SAVECOPSTASH_FREE(c) # else # define CopSTASH_free(c) PerlMemShared_free(CopSTASHPV(c)) # endif # ifdef NETWARE # define CopFILE_free(c) SAVECOPFILE_FREE(c) # else # define CopFILE_free(c) (PerlMemShared_free(CopFILE(c)),(CopFILE(c) = Nullch)) # endif #else # define CopFILEGV(c) ((c)->cop_filegv) # define CopFILEGV_set(c,gv) ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv)) # define CopFILE_set(c,pv) CopFILEGV_set((c), gv_fetchfile(pv)) # define CopFILESV(c) (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv) # define CopFILEAV(c) (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav) # define CopFILE(c) (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch) # define CopSTASH(c) ((c)->cop_stash) # define CopSTASH_set(c,hv) ((c)->cop_stash = (hv)) # define CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch) /* cop_stash is not refcounted */ # define CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD)) # define CopSTASH_eq(c,hv) (CopSTASH(c) == (hv)) # define CopSTASH_free(c) # define CopFILE_free(c) (SvREFCNT_dec(CopFILEGV(c)),(CopFILEGV(c) = Nullgv)) #endif /* USE_ITHREADS */ #define CopSTASH_ne(c,hv) (!CopSTASH_eq(c,hv)) #define CopLINE(c) ((c)->cop_line) #define CopLINE_inc(c) (++CopLINE(c)) #define CopLINE_dec(c) (--CopLINE(c)) #define CopLINE_set(c,l) (CopLINE(c) = (l)) /* OutCopFILE() is CopFILE for output (caller, die, warn, etc.) */ #ifdef MACOS_TRADITIONAL # define OutCopFILE(c) MacPerl_MPWFileName(CopFILE(c)) #else # define OutCopFILE(c) CopFILE(c) #endif /* * Here we have some enormously heavy (or at least ponderous) wizardry. */ /* subroutine context */ struct block_sub { CV * cv; GV * gv; GV * dfoutgv; #ifndef USE_5005THREADS AV * savearray; #endif /* USE_5005THREADS */ AV * argarray; long olddepth; U8 hasargs; U8 lval; /* XXX merge lval and hasargs? */ PAD *oldcomppad; }; /* base for the next two macros. Don't use directly. * Note that the refcnt of the cv is incremented twice; The CX one is * decremented by LEAVESUB, the other by LEAVE. */ #define PUSHSUB_BASE(cx) \ cx->blk_sub.cv = cv; \ cx->blk_sub.olddepth = CvDEPTH(cv); \ cx->blk_sub.hasargs = hasargs; \ if (!CvDEPTH(cv)) { \ (void)SvREFCNT_inc(cv); \ (void)SvREFCNT_inc(cv); \ SAVEFREESV(cv); \ } #define PUSHSUB(cx) \ PUSHSUB_BASE(cx) \ cx->blk_sub.lval = PL_op->op_private & \ (OPpLVAL_INTRO|OPpENTERSUB_INARGS); /* variant for use by OP_DBSTATE, where op_private holds hint bits */ #define PUSHSUB_DB(cx) \ PUSHSUB_BASE(cx) \ cx->blk_sub.lval = 0; #define PUSHFORMAT(cx) \ cx->blk_sub.cv = cv; \ cx->blk_sub.gv = gv; \ cx->blk_sub.hasargs = 0; \ cx->blk_sub.dfoutgv = PL_defoutgv; \ (void)SvREFCNT_inc(cx->blk_sub.dfoutgv) #ifdef USE_5005THREADS # define POP_SAVEARRAY() NOOP #else # define POP_SAVEARRAY() \ STMT_START { \ SvREFCNT_dec(GvAV(PL_defgv)); \ GvAV(PL_defgv) = cx->blk_sub.savearray; \ } STMT_END #endif /* USE_5005THREADS */ /* junk in @_ spells trouble when cloning CVs and in pp_caller(), so don't * leave any (a fast av_clear(ary), basically) */ #define CLEAR_ARGARRAY(ary) \ STMT_START { \ AvMAX(ary) += AvARRAY(ary) - AvALLOC(ary); \ SvPVX(ary) = (char*)AvALLOC(ary); \ AvFILLp(ary) = -1; \ } STMT_END #define POPSUB(cx,sv) \ STMT_START { \ if (cx->blk_sub.hasargs) { \ POP_SAVEARRAY(); \ /* abandon @_ if it got reified */ \ if (AvREAL(cx->blk_sub.argarray)) { \ SSize_t fill = AvFILLp(cx->blk_sub.argarray); \ SvREFCNT_dec(cx->blk_sub.argarray); \ cx->blk_sub.argarray = newAV(); \ av_extend(cx->blk_sub.argarray, fill); \ AvFLAGS(cx->blk_sub.argarray) = AVf_REIFY; \ CX_CURPAD_SV(cx->blk_sub, 0) = (SV*)cx->blk_sub.argarray; \ } \ else { \ CLEAR_ARGARRAY(cx->blk_sub.argarray); \ } \ } \ sv = (SV*)cx->blk_sub.cv; \ if (sv && (CvDEPTH((CV*)sv) = cx->blk_sub.olddepth)) \ sv = Nullsv; \ } STMT_END #define LEAVESUB(sv) \ STMT_START { \ if (sv) \ SvREFCNT_dec(sv); \ } STMT_END #define POPFORMAT(cx) \ setdefout(cx->blk_sub.dfoutgv); \ SvREFCNT_dec(cx->blk_sub.dfoutgv); /* eval context */ struct block_eval { I32 old_in_eval; I32 old_op_type; SV * old_namesv; OP * old_eval_root; SV * cur_text; CV * cv; }; #define PUSHEVAL(cx,n,fgv) \ STMT_START { \ cx->blk_eval.old_in_eval = PL_in_eval; \ cx->blk_eval.old_op_type = PL_op->op_type; \ cx->blk_eval.old_namesv = (n ? newSVpv(n,0) : Nullsv); \ cx->blk_eval.old_eval_root = PL_eval_root; \ cx->blk_eval.cur_text = PL_linestr; \ cx->blk_eval.cv = Nullcv; /* set by doeval(), as applicable */ \ } STMT_END #define POPEVAL(cx) \ STMT_START { \ PL_in_eval = cx->blk_eval.old_in_eval; \ optype = cx->blk_eval.old_op_type; \ PL_eval_root = cx->blk_eval.old_eval_root; \ if (cx->blk_eval.old_namesv) \ sv_2mortal(cx->blk_eval.old_namesv); \ } STMT_END /* loop context */ struct block_loop { char * label; I32 resetsp; OP * redo_op; OP * next_op; OP * last_op; #ifdef USE_ITHREADS void * iterdata; PAD *oldcomppad; #else SV ** itervar; #endif SV * itersave; SV * iterlval; AV * iterary; IV iterix; IV itermax; }; #ifdef USE_ITHREADS # define CxITERVAR(c) \ ((c)->blk_loop.iterdata \ ? (CxPADLOOP(cx) \ ? &CX_CURPAD_SV( (c)->blk_loop, \ INT2PTR(PADOFFSET, (c)->blk_loop.iterdata)) \ : &GvSV((GV*)(c)->blk_loop.iterdata)) \ : (SV**)NULL) # define CX_ITERDATA_SET(cx,idata) \ CX_CURPAD_SAVE(cx->blk_loop); \ if ((cx->blk_loop.iterdata = (idata))) \ cx->blk_loop.itersave = SvREFCNT_inc(*CxITERVAR(cx)); \ else \ cx->blk_loop.itersave = Nullsv; #else # define CxITERVAR(c) ((c)->blk_loop.itervar) # define CX_ITERDATA_SET(cx,ivar) \ if ((cx->blk_loop.itervar = (SV**)(ivar))) \ cx->blk_loop.itersave = SvREFCNT_inc(*CxITERVAR(cx)); \ else \ cx->blk_loop.itersave = Nullsv; #endif #define PUSHLOOP(cx, dat, s) \ cx->blk_loop.label = PL_curcop->cop_label; \ cx->blk_loop.resetsp = s - PL_stack_base; \ cx->blk_loop.redo_op = cLOOP->op_redoop; \ cx->blk_loop.next_op = cLOOP->op_nextop; \ cx->blk_loop.last_op = cLOOP->op_lastop; \ cx->blk_loop.iterlval = Nullsv; \ cx->blk_loop.iterary = Nullav; \ cx->blk_loop.iterix = -1; \ CX_ITERDATA_SET(cx,dat); #define POPLOOP(cx) \ SvREFCNT_dec(cx->blk_loop.iterlval); \ if (CxITERVAR(cx)) { \ SV **s_v_p = CxITERVAR(cx); \ sv_2mortal(*s_v_p); \ *s_v_p = cx->blk_loop.itersave; \ } \ if (cx->blk_loop.iterary && cx->blk_loop.iterary != PL_curstack)\ SvREFCNT_dec(cx->blk_loop.iterary); /* context common to subroutines, evals and loops */ struct block { I32 blku_oldsp; /* stack pointer to copy stuff down to */ COP * blku_oldcop; /* old curcop pointer */ I32 blku_oldretsp; /* return stack index */ I32 blku_oldmarksp; /* mark stack index */ I32 blku_oldscopesp; /* scope stack index */ PMOP * blku_oldpm; /* values of pattern match vars */ U8 blku_gimme; /* is this block running in list context? */ union { struct block_sub blku_sub; struct block_eval blku_eval; struct block_loop blku_loop; } blk_u; }; #define blk_oldsp cx_u.cx_blk.blku_oldsp #define blk_oldcop cx_u.cx_blk.blku_oldcop #define blk_oldretsp cx_u.cx_blk.blku_oldretsp #define blk_oldmarksp cx_u.cx_blk.blku_oldmarksp #define blk_oldscopesp cx_u.cx_blk.blku_oldscopesp #define blk_oldpm cx_u.cx_blk.blku_oldpm #define blk_gimme cx_u.cx_blk.blku_gimme #define blk_sub cx_u.cx_blk.blk_u.blku_sub #define blk_eval cx_u.cx_blk.blk_u.blku_eval #define blk_loop cx_u.cx_blk.blk_u.blku_loop /* Enter a block. */ #define PUSHBLOCK(cx,t,sp) CXINC, cx = &cxstack[cxstack_ix], \ cx->cx_type = t, \ cx->blk_oldsp = sp - PL_stack_base, \ cx->blk_oldcop = PL_curcop, \ cx->blk_oldmarksp = PL_markstack_ptr - PL_markstack, \ cx->blk_oldscopesp = PL_scopestack_ix, \ cx->blk_oldretsp = PL_retstack_ix, \ cx->blk_oldpm = PL_curpm, \ cx->blk_gimme = (U8)gimme; \ DEBUG_l( PerlIO_printf(Perl_debug_log, "Entering block %ld, type %s\n", \ (long)cxstack_ix, PL_block_type[CxTYPE(cx)]); ) /* Exit a block (RETURN and LAST). */ #define POPBLOCK(cx,pm) cx = &cxstack[cxstack_ix--], \ newsp = PL_stack_base + cx->blk_oldsp, \ PL_curcop = cx->blk_oldcop, \ PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \ PL_scopestack_ix = cx->blk_oldscopesp, \ PL_retstack_ix = cx->blk_oldretsp, \ pm = cx->blk_oldpm, \ gimme = cx->blk_gimme; \ DEBUG_SCOPE("POPBLOCK"); \ DEBUG_l( PerlIO_printf(Perl_debug_log, "Leaving block %ld, type %s\n", \ (long)cxstack_ix+1,PL_block_type[CxTYPE(cx)]); ) /* Continue a block elsewhere (NEXT and REDO). */ #define TOPBLOCK(cx) cx = &cxstack[cxstack_ix], \ PL_stack_sp = PL_stack_base + cx->blk_oldsp, \ PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \ PL_scopestack_ix = cx->blk_oldscopesp, \ PL_retstack_ix = cx->blk_oldretsp, \ PL_curpm = cx->blk_oldpm; \ DEBUG_SCOPE("TOPBLOCK"); /* substitution context */ struct subst { I32 sbu_iters; I32 sbu_maxiters; I32 sbu_rflags; I32 sbu_oldsave; bool sbu_once; bool sbu_rxtainted; char * sbu_orig; SV * sbu_dstr; SV * sbu_targ; char * sbu_s; char * sbu_m; char * sbu_strend; void * sbu_rxres; REGEXP * sbu_rx; }; #define sb_iters cx_u.cx_subst.sbu_iters #define sb_maxiters cx_u.cx_subst.sbu_maxiters #define sb_rflags cx_u.cx_subst.sbu_rflags #define sb_oldsave cx_u.cx_subst.sbu_oldsave #define sb_once cx_u.cx_subst.sbu_once #define sb_rxtainted cx_u.cx_subst.sbu_rxtainted #define sb_orig cx_u.cx_subst.sbu_orig #define sb_dstr cx_u.cx_subst.sbu_dstr #define sb_targ cx_u.cx_subst.sbu_targ #define sb_s cx_u.cx_subst.sbu_s #define sb_m cx_u.cx_subst.sbu_m #define sb_strend cx_u.cx_subst.sbu_strend #define sb_rxres cx_u.cx_subst.sbu_rxres #define sb_rx cx_u.cx_subst.sbu_rx #define PUSHSUBST(cx) CXINC, cx = &cxstack[cxstack_ix], \ cx->sb_iters = iters, \ cx->sb_maxiters = maxiters, \ cx->sb_rflags = r_flags, \ cx->sb_oldsave = oldsave, \ cx->sb_once = once, \ cx->sb_rxtainted = rxtainted, \ cx->sb_orig = orig, \ cx->sb_dstr = dstr, \ cx->sb_targ = targ, \ cx->sb_s = s, \ cx->sb_m = m, \ cx->sb_strend = strend, \ cx->sb_rxres = Null(void*), \ cx->sb_rx = rx, \ cx->cx_type = CXt_SUBST; \ rxres_save(&cx->sb_rxres, rx) #define POPSUBST(cx) cx = &cxstack[cxstack_ix--]; \ rxres_free(&cx->sb_rxres) struct context { U32 cx_type; /* what kind of context this is */ union { struct block cx_blk; struct subst cx_subst; } cx_u; }; #define CXTYPEMASK 0xff #define CXt_NULL 0 #define CXt_SUB 1 #define CXt_EVAL 2 #define CXt_LOOP 3 #define CXt_SUBST 4 #define CXt_BLOCK 5 #define CXt_FORMAT 6 /* private flags for CXt_EVAL */ #define CXp_REAL 0x00000100 /* truly eval'', not a lookalike */ #define CXp_TRYBLOCK 0x00000200 /* eval{}, not eval'' or similar */ #ifdef USE_ITHREADS /* private flags for CXt_LOOP */ # define CXp_PADVAR 0x00000100 /* itervar lives on pad, iterdata has pad offset; if not set, iterdata holds GV* */ # define CxPADLOOP(c) (((c)->cx_type & (CXt_LOOP|CXp_PADVAR)) \ == (CXt_LOOP|CXp_PADVAR)) #endif #define CxTYPE(c) ((c)->cx_type & CXTYPEMASK) #define CxREALEVAL(c) (((c)->cx_type & (CXt_EVAL|CXp_REAL)) \ == (CXt_EVAL|CXp_REAL)) #define CxTRYBLOCK(c) (((c)->cx_type & (CXt_EVAL|CXp_TRYBLOCK)) \ == (CXt_EVAL|CXp_TRYBLOCK)) #define CXINC (cxstack_ix < cxstack_max ? ++cxstack_ix : (cxstack_ix = cxinc())) /* =head1 "Gimme" Values */ /* =for apidoc AmU||G_SCALAR Used to indicate scalar context. See C, C, and L. =for apidoc AmU||G_ARRAY Used to indicate list context. See C, C and L. =for apidoc AmU||G_VOID Used to indicate void context. See C and L. =for apidoc AmU||G_DISCARD Indicates that arguments returned from a callback should be discarded. See L. =for apidoc AmU||G_EVAL Used to force a Perl C wrapper around a callback. See L. =for apidoc AmU||G_NOARGS Indicates that no arguments are being sent to a callback. See L. =cut */ #define G_SCALAR 0 #define G_ARRAY 1 #define G_VOID 128 /* skip this bit when adding flags below */ /* extra flags for Perl_call_* routines */ #define G_DISCARD 2 /* Call FREETMPS. */ #define G_EVAL 4 /* Assume eval {} around subroutine call. */ #define G_NOARGS 8 /* Don't construct a @_ array. */ #define G_KEEPERR 16 /* Append errors to $@, don't overwrite it */ #define G_NODEBUG 32 /* Disable debugging at toplevel. */ #define G_METHOD 64 /* Calling method. */ /* flag bits for PL_in_eval */ #define EVAL_NULL 0 /* not in an eval */ #define EVAL_INEVAL 1 /* some enclosing scope is an eval */ #define EVAL_WARNONLY 2 /* used by yywarn() when calling yyerror() */ #define EVAL_KEEPERR 4 /* set by Perl_call_sv if G_KEEPERR */ #define EVAL_INREQUIRE 8 /* The code is being required. */ /* Support for switching (stack and block) contexts. * This ensures magic doesn't invalidate local stack and cx pointers. */ #define PERLSI_UNKNOWN -1 #define PERLSI_UNDEF 0 #define PERLSI_MAIN 1 #define PERLSI_MAGIC 2 #define PERLSI_SORT 3 #define PERLSI_SIGNAL 4 #define PERLSI_OVERLOAD 5 #define PERLSI_DESTROY 6 #define PERLSI_WARNHOOK 7 #define PERLSI_DIEHOOK 8 #define PERLSI_REQUIRE 9 struct stackinfo { AV * si_stack; /* stack for current runlevel */ PERL_CONTEXT * si_cxstack; /* context stack for runlevel */ I32 si_cxix; /* current context index */ I32 si_cxmax; /* maximum allocated index */ I32 si_type; /* type of runlevel */ struct stackinfo * si_prev; struct stackinfo * si_next; I32 si_markoff; /* offset where markstack begins for us. * currently used only with DEBUGGING, * but not #ifdef-ed for bincompat */ }; typedef struct stackinfo PERL_SI; #define cxstack (PL_curstackinfo->si_cxstack) #define cxstack_ix (PL_curstackinfo->si_cxix) #define cxstack_max (PL_curstackinfo->si_cxmax) #ifdef DEBUGGING # define SET_MARK_OFFSET \ PL_curstackinfo->si_markoff = PL_markstack_ptr - PL_markstack #else # define SET_MARK_OFFSET NOOP #endif #define PUSHSTACKi(type) \ STMT_START { \ PERL_SI *next = PL_curstackinfo->si_next; \ if (!next) { \ next = new_stackinfo(32, 2048/sizeof(PERL_CONTEXT) - 1); \ next->si_prev = PL_curstackinfo; \ PL_curstackinfo->si_next = next; \ } \ next->si_type = type; \ next->si_cxix = -1; \ AvFILLp(next->si_stack) = 0; \ SWITCHSTACK(PL_curstack,next->si_stack); \ PL_curstackinfo = next; \ SET_MARK_OFFSET; \ } STMT_END #define PUSHSTACK PUSHSTACKi(PERLSI_UNKNOWN) /* POPSTACK works with PL_stack_sp, so it may need to be bracketed by * PUTBACK/SPAGAIN to flush/refresh any local SP that may be active */ #define POPSTACK \ STMT_START { \ dSP; \ PERL_SI *prev = PL_curstackinfo->si_prev; \ if (!prev) { \ PerlIO_printf(Perl_error_log, "panic: POPSTACK\n"); \ my_exit(1); \ } \ SWITCHSTACK(PL_curstack,prev->si_stack); \ /* don't free prev here, free them all at the END{} */ \ PL_curstackinfo = prev; \ } STMT_END #define POPSTACK_TO(s) \ STMT_START { \ while (PL_curstack != s) { \ dounwind(-1); \ POPSTACK; \ } \ } STMT_END #define IN_PERL_COMPILETIME (PL_curcop == &PL_compiling) #define IN_PERL_RUNTIME (PL_curcop != &PL_compiling) ================================================ FILE: tests/perlbench/cpu2006_mhonarc.rc ================================================ %d-%B-%Y %H:%M:%S %d-%B-%Y %H:%M:%S $MAIN-TITLE$ list archive -- (by date) $MAIN-TITLE$ list archive -- (by thread) $IDXTITLE$

$MAIN-TITLE$ list archive by date

Last updated: ?? ($NUMOFMSG$ messages)
[ OSG Mailing Lists | $MAIN-TITLE$ index | Thread Index | Date Index ]
  • $SUBJECT$, $FROMNAME$ (date would be here)

[ OSG Mailing Lists | $MAIN-TITLE$ index | Thread Index | Date Index ]
$TIDXTITLE$

$MAIN-TITLE$ list archive by date

Last updated: ?? ($NUMOFMSG$ messages)
[ OSG Mailing Lists | $MAIN-TITLE$ index | Thread Index | Date Index ]

[ OSG Mailing Lists | $MAIN-TITLE$ index | Thread Index | Date Index ]
  • $SUBJECT$, $FROMNAME$ (date would go here)
  • $SUBJECT$, $FROMNAME$ (date would go here)
  • $SUBJECT$, $FROMNAME$ (date would go here)

  • content-type sender apparently errors-to followup forward lines message-id mime- nntp- originator path precedence received replied return-path status via x- -default- subject:strong from:strong to:strong -default- subject:strong from:strong to:strong keywords:em newsgroups:strong

    $MAIN-TITLE$ list archive


    $MAIN-TITLE$ mailing list archive for some date generated by MHonArc v$VERSION$
    $PREVBUTTON$ $NEXTBUTTON$ $TPREVBUTTON$ $TNEXTBUTTON$ [Date Index] [Thread Index]
    [$MAIN-TITLE$ index] [OSG Mailing Lists]
    $PREVBUTTON$ $NEXTBUTTON$ $TPREVBUTTON$ $TNEXTBUTTON$ [Date Index] [Thread Index]
    application/octet-stream:/icons/binary.xbm application/postscript:/icons/postscript.xbm audio/basic:/icons/sound.xbm image/gif:/icons/image.xbm image/jpeg:/icons/image.xbm image/tiff:/icons/image.xbm multipart/alternative:/icons/alternative.xbm multipart/digest:/icons/text.xbm multipart/mixed:/icons/mixed.xbm multipart/parallel:/icons/mixed.xbm text/richtext:/icons/mixed.xbm text/html:/icons/mixed.xbm text/plain:/icons/text.xbm unknown:/icons/unknown.doc.xbm video/mpeg:/icons/movie.xbm video/quicktime:/icons/movie.xbm ================================================ FILE: tests/perlbench/cv.h ================================================ /* cv.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* This structure must match XPVCV in B/C.pm and the beginning of XPVFM * in sv.h */ struct xpvcv { char * xpv_pv; /* pointer to malloced string (for prototype) */ STRLEN xpv_cur; /* length of xp_pv as a C string */ STRLEN xpv_len; /* allocated size */ IV xof_off; /* integer value */ NV xnv_nv; /* numeric value, if any */ MAGIC* xmg_magic; /* magic for scalar array */ HV* xmg_stash; /* class package */ HV * xcv_stash; OP * xcv_start; OP * xcv_root; void (*xcv_xsub) (pTHX_ CV*); ANY xcv_xsubany; GV * xcv_gv; char * xcv_file; long xcv_depth; /* >= 2 indicates recursive call */ PADLIST * xcv_padlist; CV * xcv_outside; #ifdef USE_5005THREADS perl_mutex *xcv_mutexp; struct perl_thread *xcv_owner; /* current owner thread */ #endif /* USE_5005THREADS */ cv_flags_t xcv_flags; U32 xcv_outside_seq; /* the COP sequence (at the point of our * compilation) in the lexically enclosing * sub */ }; /* =head1 Handy Values =for apidoc AmU||Nullcv Null CV pointer. =head1 CV Manipulation Functions =for apidoc Am|HV*|CvSTASH|CV* cv Returns the stash of the CV. =cut */ #define Nullcv Null(CV*) #define CvSTASH(sv) ((XPVCV*)SvANY(sv))->xcv_stash #define CvSTART(sv) ((XPVCV*)SvANY(sv))->xcv_start #define CvROOT(sv) ((XPVCV*)SvANY(sv))->xcv_root #define CvXSUB(sv) ((XPVCV*)SvANY(sv))->xcv_xsub #define CvXSUBANY(sv) ((XPVCV*)SvANY(sv))->xcv_xsubany #define CvGV(sv) ((XPVCV*)SvANY(sv))->xcv_gv #define CvFILE(sv) ((XPVCV*)SvANY(sv))->xcv_file #ifdef USE_ITHREADS # define CvFILE_set_from_cop(sv, cop) (CvFILE(sv) = savepv(CopFILE(cop))) #else # define CvFILE_set_from_cop(sv, cop) (CvFILE(sv) = CopFILE(cop)) #endif #define CvFILEGV(sv) (gv_fetchfile(CvFILE(sv))) #define CvDEPTH(sv) ((XPVCV*)SvANY(sv))->xcv_depth #define CvPADLIST(sv) ((XPVCV*)SvANY(sv))->xcv_padlist #define CvOUTSIDE(sv) ((XPVCV*)SvANY(sv))->xcv_outside #ifdef USE_5005THREADS #define CvMUTEXP(sv) ((XPVCV*)SvANY(sv))->xcv_mutexp #define CvOWNER(sv) ((XPVCV*)SvANY(sv))->xcv_owner #endif /* USE_5005THREADS */ #define CvFLAGS(sv) ((XPVCV*)SvANY(sv))->xcv_flags #define CvOUTSIDE_SEQ(sv) ((XPVCV*)SvANY(sv))->xcv_outside_seq #define CVf_CLONE 0x0001 /* anon CV uses external lexicals */ #define CVf_CLONED 0x0002 /* a clone of one of those */ #define CVf_ANON 0x0004 /* CvGV() can't be trusted */ #define CVf_OLDSTYLE 0x0008 #define CVf_UNIQUE 0x0010 /* sub is only called once (eg PL_main_cv, * require, eval). Not to be confused * with the GVf_UNIQUE flag associated * with the :unique attribute */ #define CVf_NODEBUG 0x0020 /* no DB::sub indirection for this CV (esp. useful for special XSUBs) */ #define CVf_METHOD 0x0040 /* CV is explicitly marked as a method */ #define CVf_LOCKED 0x0080 /* CV locks itself or first arg on entry */ #define CVf_LVALUE 0x0100 /* CV return value can be used as lvalue */ #define CVf_CONST 0x0200 /* inlinable sub */ #define CVf_WEAKOUTSIDE 0x0400 /* CvOUTSIDE isn't ref counted */ /* This symbol for optimised communication between toke.c and op.c: */ #define CVf_BUILTIN_ATTRS (CVf_METHOD|CVf_LOCKED|CVf_LVALUE) #define CvCLONE(cv) (CvFLAGS(cv) & CVf_CLONE) #define CvCLONE_on(cv) (CvFLAGS(cv) |= CVf_CLONE) #define CvCLONE_off(cv) (CvFLAGS(cv) &= ~CVf_CLONE) #define CvCLONED(cv) (CvFLAGS(cv) & CVf_CLONED) #define CvCLONED_on(cv) (CvFLAGS(cv) |= CVf_CLONED) #define CvCLONED_off(cv) (CvFLAGS(cv) &= ~CVf_CLONED) #define CvANON(cv) (CvFLAGS(cv) & CVf_ANON) #define CvANON_on(cv) (CvFLAGS(cv) |= CVf_ANON) #define CvANON_off(cv) (CvFLAGS(cv) &= ~CVf_ANON) #ifdef PERL_XSUB_OLDSTYLE #define CvOLDSTYLE(cv) (CvFLAGS(cv) & CVf_OLDSTYLE) #define CvOLDSTYLE_on(cv) (CvFLAGS(cv) |= CVf_OLDSTYLE) #define CvOLDSTYLE_off(cv) (CvFLAGS(cv) &= ~CVf_OLDSTYLE) #endif #define CvUNIQUE(cv) (CvFLAGS(cv) & CVf_UNIQUE) #define CvUNIQUE_on(cv) (CvFLAGS(cv) |= CVf_UNIQUE) #define CvUNIQUE_off(cv) (CvFLAGS(cv) &= ~CVf_UNIQUE) #define CvNODEBUG(cv) (CvFLAGS(cv) & CVf_NODEBUG) #define CvNODEBUG_on(cv) (CvFLAGS(cv) |= CVf_NODEBUG) #define CvNODEBUG_off(cv) (CvFLAGS(cv) &= ~CVf_NODEBUG) #define CvMETHOD(cv) (CvFLAGS(cv) & CVf_METHOD) #define CvMETHOD_on(cv) (CvFLAGS(cv) |= CVf_METHOD) #define CvMETHOD_off(cv) (CvFLAGS(cv) &= ~CVf_METHOD) #define CvLOCKED(cv) (CvFLAGS(cv) & CVf_LOCKED) #define CvLOCKED_on(cv) (CvFLAGS(cv) |= CVf_LOCKED) #define CvLOCKED_off(cv) (CvFLAGS(cv) &= ~CVf_LOCKED) #define CvLVALUE(cv) (CvFLAGS(cv) & CVf_LVALUE) #define CvLVALUE_on(cv) (CvFLAGS(cv) |= CVf_LVALUE) #define CvLVALUE_off(cv) (CvFLAGS(cv) &= ~CVf_LVALUE) #define CvEVAL(cv) (CvUNIQUE(cv) && !SvFAKE(cv)) #define CvEVAL_on(cv) (CvUNIQUE_on(cv),SvFAKE_off(cv)) #define CvEVAL_off(cv) CvUNIQUE_off(cv) /* BEGIN|CHECK|INIT|END */ #define CvSPECIAL(cv) (CvUNIQUE(cv) && SvFAKE(cv)) #define CvSPECIAL_on(cv) (CvUNIQUE_on(cv),SvFAKE_on(cv)) #define CvSPECIAL_off(cv) (CvUNIQUE_off(cv),SvFAKE_off(cv)) #define CvCONST(cv) (CvFLAGS(cv) & CVf_CONST) #define CvCONST_on(cv) (CvFLAGS(cv) |= CVf_CONST) #define CvCONST_off(cv) (CvFLAGS(cv) &= ~CVf_CONST) #define CvWEAKOUTSIDE(cv) (CvFLAGS(cv) & CVf_WEAKOUTSIDE) #define CvWEAKOUTSIDE_on(cv) (CvFLAGS(cv) |= CVf_WEAKOUTSIDE) #define CvWEAKOUTSIDE_off(cv) (CvFLAGS(cv) &= ~CVf_WEAKOUTSIDE) /* =head1 CV reference counts and CvOUTSIDE =for apidoc m|bool|CvWEAKOUTSIDE|CV *cv Each CV has a pointer, C, to its lexically enclosing CV (if any). Because pointers to anonymous sub prototypes are stored in C<&> pad slots, it is a possible to get a circular reference, with the parent pointing to the child and vice-versa. To avoid the ensuing memory leak, we do not increment the reference count of the CV pointed to by C in the I that the parent has a C<&> pad slot pointing back to us. In this case, we set the C flag in the child. This allows us to determine under what circumstances we should decrement the refcount of the parent when freeing the child. There is a further complication with non-closure anonymous subs (ie those that do not refer to any lexicals outside that sub). In this case, the anonymous prototype is shared rather than being cloned. This has the consequence that the parent may be freed while there are still active children, eg BEGIN { $a = sub { eval '$x' } } In this case, the BEGIN is freed immediately after execution since there are no active references to it: the anon sub prototype has C set since it's not a closure, and $a points to the same CV, so it doesn't contribute to BEGIN's refcount either. When $a is executed, the C causes the chain of Cs to be followed, and the freed BEGIN is accessed. To avoid this, whenever a CV and its associated pad is freed, any C<&> entries in the pad are explicitly removed from the pad, and if the refcount of the pointed-to anon sub is still positive, then that child's C is set to point to its grandparent. This will only occur in the single specific case of a non-closure anon prototype having one or more active references (such as C<$a> above). One other thing to consider is that a CV may be merely undefined rather than freed, eg C. In this case, its refcount may not have reached zero, but we still delete its pad and its C etc. Since various children may still have their C pointing at this undefined CV, we keep its own C for the time being, so that the chain of lexical scopes is unbroken. For example, the following should print 123: my $x = 123; sub tmp { sub { eval '$x' } } my $a = tmp(); undef &tmp; print $a->(); =cut */ ================================================ FILE: tests/perlbench/deb.c ================================================ /* deb.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * "Didst thou think that the eyes of the White Tower were blind? Nay, I * have seen more than thou knowest, Gray Fool." --Denethor */ /* * This file contains various utilities for producing debugging output * (mainly related to displaying the stack) */ #include "EXTERN.h" #define PERL_IN_DEB_C #include "perl.h" #if defined(PERL_IMPLICIT_CONTEXT) void Perl_deb_nocontext(const char *pat, ...) { #ifdef DEBUGGING dTHX; va_list args; va_start(args, pat); vdeb(pat, &args); va_end(args); #endif /* DEBUGGING */ } #endif void Perl_deb(pTHX_ const char *pat, ...) { #ifdef DEBUGGING va_list args; va_start(args, pat); vdeb(pat, &args); va_end(args); #endif /* DEBUGGING */ } void Perl_vdeb(pTHX_ const char *pat, va_list *args) { #ifdef DEBUGGING char* file = OutCopFILE(PL_curcop); #ifdef USE_5005THREADS PerlIO_printf(Perl_debug_log, "0x%"UVxf" (%s:%ld)\t", PTR2UV(thr), (file ? file : ""), (long)CopLINE(PL_curcop)); #else PerlIO_printf(Perl_debug_log, "(%s:%ld)\t", (file ? file : ""), (long)CopLINE(PL_curcop)); #endif /* USE_5005THREADS */ (void) PerlIO_vprintf(Perl_debug_log, pat, *args); #endif /* DEBUGGING */ } I32 Perl_debstackptrs(pTHX) { #ifdef DEBUGGING PerlIO_printf(Perl_debug_log, "%8"UVxf" %8"UVxf" %8"IVdf" %8"IVdf" %8"IVdf"\n", PTR2UV(PL_curstack), PTR2UV(PL_stack_base), (IV)*PL_markstack_ptr, (IV)(PL_stack_sp-PL_stack_base), (IV)(PL_stack_max-PL_stack_base)); PerlIO_printf(Perl_debug_log, "%8"UVxf" %8"UVxf" %8"UVuf" %8"UVuf" %8"UVuf"\n", PTR2UV(PL_mainstack), PTR2UV(AvARRAY(PL_curstack)), PTR2UV(PL_mainstack), PTR2UV(AvFILLp(PL_curstack)), PTR2UV(AvMAX(PL_curstack))); #endif /* DEBUGGING */ return 0; } /* dump the contents of a particular stack * Display stack_base[stack_min+1 .. stack_max], * and display the marks whose offsets are contained in addresses * PL_markstack[mark_min+1 .. mark_max] and whose values are in the range * of the stack values being displayed * * Only displays top 30 max */ STATIC void S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max) { #ifdef DEBUGGING register I32 i = stack_max - 30; I32 *markscan = PL_markstack + mark_min; if (i < stack_min) i = stack_min; while (++markscan <= PL_markstack + mark_max) if (*markscan >= i) break; if (i > stack_min) PerlIO_printf(Perl_debug_log, "... "); if (stack_base[0] != &PL_sv_undef || stack_max < 0) PerlIO_printf(Perl_debug_log, " [STACK UNDERFLOW!!!]\n"); do { ++i; if (markscan <= PL_markstack + mark_max && *markscan < i) { do { ++markscan; PerlIO_putc(Perl_debug_log, '*'); } while (markscan <= PL_markstack + mark_max && *markscan < i); PerlIO_printf(Perl_debug_log, " "); } if (i > stack_max) break; PerlIO_printf(Perl_debug_log, "%-4s ", SvPEEK(stack_base[i])); } while (1); PerlIO_printf(Perl_debug_log, "\n"); #endif /* DEBUGGING */ } /* dump the current stack */ I32 Perl_debstack(pTHX) { #ifndef SKIP_DEBUGGING if (CopSTASH_eq(PL_curcop, PL_debstash) && !DEBUG_J_TEST_) return 0; PerlIO_printf(Perl_debug_log, " => "); deb_stack_n(PL_stack_base, 0, PL_stack_sp - PL_stack_base, PL_curstackinfo->si_markoff, PL_markstack_ptr - PL_markstack); #endif /* SKIP_DEBUGGING */ return 0; } #ifdef DEBUGGING static char * si_names[] = { "UNKNOWN", "UNDEF", "MAIN", "MAGIC", "SORT", "SIGNAL", "OVERLOAD", "DESTROY", "WARNHOOK", "DIEHOOK", "REQUIRE" }; #endif /* display all stacks */ void Perl_deb_stack_all(pTHX) { #ifdef DEBUGGING I32 ix, si_ix; PERL_SI *si; PERL_CONTEXT *cx; /* rewind to start of chain */ si = PL_curstackinfo; while (si->si_prev) si = si->si_prev; si_ix=0; for (;;) { char *si_name; int si_name_ix = si->si_type+1; /* -1 is a valid index */ if (si_name_ix>= sizeof(si_names)) si_name = "????"; else si_name = si_names[si_name_ix]; PerlIO_printf(Perl_debug_log, "STACK %"IVdf": %s\n", (IV)si_ix, si_name); for (ix=0; ix<=si->si_cxix; ix++) { cx = &(si->si_cxstack[ix]); PerlIO_printf(Perl_debug_log, " CX %"IVdf": %-6s => ", (IV)ix, PL_block_type[CxTYPE(cx)] ); /* substitution contexts don't save stack pointers etc) */ if (CxTYPE(cx) == CXt_SUBST) PerlIO_printf(Perl_debug_log, "\n"); else { /* Find the the current context's stack range by searching * forward for any higher contexts using this stack; failing * that, it will be equal to the size of the stack for old * stacks, or PL_stack_sp for the current stack */ I32 i, stack_min, stack_max, mark_min, mark_max; I32 ret_min, ret_max; PERL_CONTEXT *cx_n; PERL_SI *si_n; cx_n = Null(PERL_CONTEXT*); /* there's a separate stack per SI, so only search * this one */ for (i=ix+1; i<=si->si_cxix; i++) { if (CxTYPE(cx) == CXt_SUBST) continue; cx_n = &(si->si_cxstack[i]); break; } stack_min = cx->blk_oldsp; if (cx_n) { stack_max = cx_n->blk_oldsp; } else if (si == PL_curstackinfo) { stack_max = PL_stack_sp - AvARRAY(si->si_stack); } else { stack_max = AvFILLp(si->si_stack); } /* for the other stack types, there's only one stack * shared between all SIs */ si_n = si; i = ix; cx_n = Null(PERL_CONTEXT*); for (;;) { i++; if (i > si_n->si_cxix) { if (si_n == PL_curstackinfo) break; else { si_n = si_n->si_next; i = 0; } } if (CxTYPE(&(si_n->si_cxstack[i])) == CXt_SUBST) continue; cx_n = &(si_n->si_cxstack[i]); break; } mark_min = cx->blk_oldmarksp; ret_min = cx->blk_oldretsp; if (cx_n) { mark_max = cx_n->blk_oldmarksp; ret_max = cx_n->blk_oldretsp; } else { mark_max = PL_markstack_ptr - PL_markstack; ret_max = PL_retstack_ix; } deb_stack_n(AvARRAY(si->si_stack), stack_min, stack_max, mark_min, mark_max); if (ret_max > ret_min) { PerlIO_printf(Perl_debug_log, " retop=%s\n", PL_retstack[ret_min] ? OP_NAME(PL_retstack[ret_min]) : "(null)" ); } } } /* next context */ if (si == PL_curstackinfo) break; si = si->si_next; si_ix++; if (!si) break; /* shouldn't happen, but just in case.. */ } /* next stackinfo */ PerlIO_printf(Perl_debug_log, "\n"); #endif /* DEBUGGING */ } ================================================ FILE: tests/perlbench/dictionary ================================================ a a&m a&p a's aa aaa aad aalii aam aani aaron aaronic aaronical aaronite aau ab aba ababa ababua abacay abacinate abacination abacist aback abactinal abactor abaculus abacus abadan abaft abaiser abaissed abalienation abalone abama abandon abandonable abandoned abandonedly abandoning abandonment abandonner abandons abanic abaptiston abarthrosis abarticular abarticulation abas abase abased abasedly abasedness abasement abaser abash abashed abashedly abashedness abashing abashless abashlessly abashment abasing abask abassin abastardize abatable abate abated abatement abater abates abateth abating abatis abatised abaton abator abattoir abave abaxile abaze abb abba abbacies abbacomes abbacy abbadide abbas abbasi abbassi abbates abbatial abbatis abbatum abbe abberation abberent abbes abbess abbesses abbey abbeys abbeystede abbie abbot abbotcy abbotnullius abbots abbotship abbreviate abbreviated abbreviately abbreviation abbreviations abbreviator abbreviatory abbreviature abby abcoulomb abd abdal abdat abderian abderite abdest abdicate abdicated abdicates abdicating abdication abdications abdicative abdiel abditive abdomen abdomens abdominal abdominalian abdominis abdominoanterior abdominocardiac abdominocentesis abdominocystic abdominogenital abdominohysterectomy abdominoposterior abdominoscope abdominothoracic abdominous abdominovaginal abdominovesical abdrt abduce abducent abducted abducting abduction abductor abductors abducts abeam abearance abecedaria abecedarium abecedary abed abeigh abele abelia abelian abelicea abelite abelmosk abeltree abendlandische abepithymia aber aberdevine aberdonian aberia aberrancy aberrant aberrate aberration aberrational aberrations aberrator aberrometer aberroscope aberuncator abet abetment abetted abetting abettor abettors abevacuation abey abeyance abeyancy abfarad abfxustgrnogrkzu abhenry abhor abhorred abhorrence abhorrency abhorrent abhorrently abhorrer abhorrest abhorrible abhorring abhors abi abidance abide abided abider abides abideth abiding abidingly abidjan abietate abietene abietic abietineous abietinic abiezer abigail abigailship abigeat abigeus abilene abilities ability abilo abintestate abiogenesis abiogenetic abiogenetically abiogenist abiogenous abiogeny abiological abiologically abiology abiosis abiotic abiotrophic abipon abirritant abirritation abirritative abisme abiston abitibi abiuret abject abjection abjective abjectly abjectness abjoint abjudicate abjudication abjunction abjunctive abjuration abjuratory abjure abjured abjurement abkar abkari abkhas abkhasian ablach ablactation ablare ablastemic ablastous ablate ablation ablatitious ablative ablator ablaze ablazing able ablegate ablepharia ablepharon ablepharus ablepsia ableptical ableptically abler ablest ablewhackets ablins ablow ablowing ablude ablush ablution ablutions abluvion ably abmho abnaki abnegate abnegation abnegations abnegative abnegator abner abnet abneural abnormal abnormalism abnormalities abnormality abnormally abnormalness abnormity abnormous abnumerable abo aboard abobra abode abodes abolish abolished abolishes abolishing abolishment abolition abolitionary abolitionist abolitionists abolitionize abolla abomasum abominable abominableness abominably abominate abominates abomination abominations abominator abomine abongo aboon aboot aborad aborally aborde aboriginal aboriginality aboriginally aborigine aborigines aborted aborticide abortient abortifacient abortin abortion abortionist abortions abortive abortively abouchement abound abounded abounder aboundeth abounding aboundingly abounds about abouts above abovedeck aboveground abovementioned abovestairs abradant abrade abraded abrader abrading abraham abrahamic abrahamidae abrahamite abrahamitic abraid abram abramis abramson abranchialism abranchiata abranchiate abrasax abrase abrash abrasion abrasions abrasive abrasives abrastol abraum abraxas abreact abreaction abreast abreviate abrico abridge abridgeable abridged abridgedly abridger abridging abridgment abridgments abrief abrin abristle abroad abrocoma abrogate abrogated abrogating abrogation abrogative abrogator abronia abrotanum abrupt abruptedly abruption abruptly abruptness abrus abs absalom absampere absaroka abscess abscessed abscesses abscessroot abscise abscision abscissa abscissae abscisse abscission absconce abscond absconded abscondedly abscondence absconder absconding absence absences absense absent absentation absented absentee absenteeism absenter absentia absenting absently absentment absentminded absentmindedly absents absfarad absinthe absinthial absinthian absinthiate absinthin absinthine absinthism absinthismic absinthium absinthol absohm absolute absolutely absoluteness absolutio absolution absolutism absolutist absolutive absolutization absolutize absolutory absolvable absolvatory absolve absolved absolves absolving absonous absorb absorbability absorbable absorbed absorbedly absorbefacient absorbency absorbent absorbers absorbing absorbingly absorbition absorbs absorpt absorptiometric absorptiometry absorption absorptions absorptive absorptively absorptiveness absorptivity absquatulate absque abstain abstained abstainer abstaineth abstaining abstainment abstains abstemii abstemious abstemiously abstemiousness abstention abstentious absterge abstergent abstersiveness abstinence abstinency abstinent abstinently abstract abstracted abstractedly abstractedness abstracter abstracting abstraction abstractional abstractionism abstractionist abstractions abstractive abstractiveness abstractly abstractness abstractor abstracts abstrahent abstricted abstriction abstruse absumption absurd absurdest absurdities absurdity absurdly absurdness absyrtus abternatively abthain abthainry abthanage abtruse abu abub abucco abuilding abulia abuna abundance abundancy abundant abundantia abundantly abura aburban abusable abuse abused abuser abusers abuses abusing abusion abusious abusive abusiveness abut abuta abutment abutments abuts abuttal abutted abutter abutting abuzz abwab aby abyde abysmal abysmally abyss abyssal abysses abyssimus abyssinia abyssinian abyssobenthonic abyssolith abyssopelagic ac acacatechin acacatechol acacetin acacia acacian acacias acaciin academia academial academian academic academical academically academicals academician academicians academicism academie academies academite academus academy acadia acadialite acadian acadie acaena acain acalepha acalephae acalephan acalephoid acalycine acalycinous acalyculate acalypha acalyptrata acalyptratae acalyptrate acampsia acana acanonical acanth acantha acanthaceae acanthaceous acanthad acantharia acanthia acanthin acanthine acanthite acanthocarpous acanthocephala acanthocereus acanthocladous acanthodea acanthodean acanthodei acanthodes acanthodian acanthodidae acanthodii acanthodini acantholimon acanthological acanthology acantholysis acanthoma acanthon acanthopanax acanthophorous acanthopod acanthopomatous acanthopore acanthopteran acanthopteri acanthopterygian acanthopterygii acanthosis acanthous acanthuridae acanthurus acanthus acanthuslike acapnial acapsular acapu acapulco acara acarapis acardiac acarian acariasis acaricidal acaricide acarida acaridea acaridomatium acarina acarine acarocecidium acarodermatitis acaroid acarol acarologist acarophobia acarotoxic acarus acastus acatalectic acatalepsia acatalepsy acatamathesia acataphasia acataposis acatastasia acatastatic acategorical acatery acatharsy acaudal acauline acaulose acca accct accede acceded accedence acceder accelerable accelerando accelerant accelerate accelerated acceleratedly accelerates accelerating acceleration accelerative accelerator accelerators acceleratory accelerograph accelerometer accend accendibility accension accent accented accenting accentless accentor accents accentuable accentual accentuality accentually accentuate accentuated accentuates accentuating accentuation accentus accept accepta acceptability acceptable acceptably acceptance acceptancy acceptant acceptation accepted acceptedly acceptilation accepting acceptive acceptor accepts accerse accersition accersitor access accessarily accessariness accessary accessaryship accesses accessibility accessible accessibly accessio accession accessioner accessions accessive accessively accessless accessorial accessories accessorily accessoriness accessorized accessory accident accidental accidentalism accidentality accidentally accidented accidential accidentiality accidently accidents accidia accidie accinge accipient accipit accipiter accipitral accipitrary accipitres accipitrine accismus accite acclaim acclaimed acclamation acclamations acclamator acclimatation acclimate acclimated acclimatement acclimation acclimatise acclimatization acclimatize acclimatized acclimatizing acclimature acclinal acclinate acclivity acclivous accoast accoil accolade accoladed accolated accolent accolle accombination accommodable accommodableness accommodate accommodated accommodately accommodateness accommodates accommodating accommodation accommodational accommodations accommodative accommodativeness accommodator accomoanied accomodates accompanied accompanier accompanies accompaniment accompanimental accompaniments accompanist accompany accompanying accompanyist accompletive accompli accomplice accomplices accompliceship accomplicity accomplish accomplishable accomplished accomplishes accomplishing accomplishment accomplishments accomplisht accompt accord accordable accordance accordant accordantly accorded accorder according accordingly accordion accords accordynge accorporate accorporation accost accosted accosting accosts accouche accoucheur accoucheuse account accountable accountably accountancy accountant accountants accountantship accounted accounting accounts accouple accouter accouterment accoutre accoutred accoutrement accoutrements accoy accra accredit accredited accrementitial accrementition accresce accrescence accrescent accretal accretion accretionary accretions accretive accroach accroides accrual accrue accrued accruer accruing accubation accubitum accubitus accultural acculturate acculturation acculturize accumbent accumulate accumulated accumulates accumulating accumulation accumulations accumulativ accumulative accumulativeness accumulator accumulators accuracy accurate accurately accurse accursed accursedly accursedness accusably accusant accusation accusations accusatival accusative accusatively accusatorial accusatory accusatrix accuse accused accuser accusers accuses accusing accusingly accusive accustom accustomary accustomed accustomedness accustoming accustoms accutane accuteness ace aceacenaphthene aceanthrene aceanthrenequinone acebutolol acecaffine aceconitic acediamine acemetae acemetic acenaphthene acenaphthenyl acenaphthylene acentrous aceologic aceology acephal acephala acephalan acephalia acephalina acephaline acephalism acephalist acephalous acephalus acer aceraceae aceraceous acerata acerate aceratherium acerb acerbity acerca acerin acerous acerra acertannin acervately acervation acervuline acervulus acescence acescency acescent aceship acesodyne acetabuliferous acetabulous acetabulum acetal acetaldehydase acetaldehyde acetaldehydrase acetalization acetalize acetamide acetamidin acetaminophen acetaminophin acetanilid acetanilide acetanion acetaniside acetannin acetarious acetate acetates acetation acetazolamide acetenyl acethydrazide acetic acetification acetifier acetify acetimeter acetimetry acetin acetize acetmethylanilide acetnaphthalide acetoacetanilide acetoacetate acetoacetic acetoamidophenol acetobacter acetobenzoic acetochloral acetohexamide acetoin acetolysis acetometer acetometrical acetometrically acetometry acetomorphine acetonaphthone acetonate acetonation acetone acetonemia acetonic acetonide acetonitrile acetonization acetonize acetonuria acetonurometer acetonyl acetonylacetone acetophenetide acetophenine acetophenone acetopyrin acetosalicylic acetose acetosity acetosoluble acetothienone acetotoluide acetous acetoveratrone acetoxime acetoxyl acetract acetum aceturic acetyl acetylacetonates acetylacetone acetylamine acetylate acetylator acetylbenzoate acetylcarbazole acetylcellulose acetylcholine acetylcyanide acetylenation acetylene acetylenediurein acetylenic acetylglycine acetylhydrazine acetylic acetylide acetylides acetyliodide acetylize acetylizer acetylmethylcarbinol acetylperoxide acetylphenylhydrazine acetylrosaniline acetylsalicylate acetylsalicylic acetylsalol acetyltropeine acetylurea ach achaean achaemenian achaemenid achaemenidae achaemenidian achaenodon achaeta achaetous achagua achakzai achango achariaceous achate achates achatina achatinidae ache ached acheenne acheilia acheilous acheirus achen achenes achenial achenium achenodium acher acheronian acherontic aches achest achete achetidae acheulean achieve achieved achievement achievements achiever achieves achieving achill achillean achilleid achilleine achilles achillize achillobursitis achillodynia achime achimenes achinese aching achingly achira achitophel achlamydate achlorhydria achlorophyllous acholia acholic acholuria acholuric achomawi achondritic achondroplasia achondroplastic achor achordate achorion achree achroacyte achrodextrin achroglobin achroiocythaemia achroite achromacyte achromat achromate achromatiaceae achromatic achromatically achromaticity achromatinic achromatism achromatium achromatizable achromatization achromatize achromatocyte achromatolysis achromatope achromatopia achromatopsy achromatosis achromatous achromaturia achromia achromic achromobacter achromobacterieae achromoderma achromophilous achromotrichia achromous achromycin achronical achroodextrin achroous achtehalber achtelthaler achuas achy achylous achymia achymous achyranthes achyrodes acicular aciculate aciculated aciculum acid acida acidanthera acidemia acider acidic acidiferous acidifiable acidific acidification acidified acidifying acidimeter acidimetry acidite acidities acidity acidize acidly acidness acidoid acidometer acidometry acidophile acidophilic acidophilous acidoproteolytic acidosis acidosteophyte acidotic acidproof acids acidulate acidulated acidulation acidulent acidum acidyl acier acieral acieration aciform aciliate acilius acinaces acinacifolious acinarious acinary acineta acinetaria acinetarian acinetic acinetina acinetinan acinic acinose acinus acipenser acipenseres acipenserid acipenseridae acipenseroid acipenseroidei acis ackerman ackley ackman acknowedgment acknowledge acknowledgeable acknowledged acknowledgement acknowledger acknowledges acknowledging acknowledgment acknowledgments ackowledgment aclastic acle acleistous aclidian aclinic aclys acmaea acmaeidae acme acmesthesia acmic acmite acne acnemia acnida acnodal acnode acocanthera acocantherin acock acocotl acocunts acoela acoelomatous acoelomous acoelous acoemetae acoemeti acoemetic acog acoin acolhuan acolous acoluthic acolyte acolytes acolythate acoma acomia aconative acondylose acondylous acone aconine aconite aconites aconitia aconitine acontium acopic acopon acopyrin acopyrine acorea acoria acorn acorned acorns acorus acosmist acosmistic acotyledon acouasm acouchi acoumeter acoumetry acouometer acouophonia acousmata acoustic acoustical acoustically acousticolateral acquaint acquaintance acquaintances acquaintanceship acquaintancy acquaintant acquainted acquaintedness acquainting acquiesce acquiesced acquiescence acquiescent acquiesces acquiescing acquiescingly acquirability acquirable acquire acquired acquirement acquirements acquirer acquires acquiring acquisite acquisited acquisition acquisitions acquisitive acquisitively acquisitiveness acquisitor acquist acquit acquitment acquits acquittal acquitted acquitting acrab acrania acraniate acrasia acrasiaceae acrasiales acrasida acrasieae acratia acraturesis acrawl acre acreable acreage acreages acreak acream acredula acreman acres acrestaff acrid acridan acridian acridic acridiidae acridine acridinic acridinium acridity acridly acridone acridyl acriflavin acriflavine acrimonious acrimoniously acrimoniousness acrimony acrinyl acrisia acrisius acrita acrite acritical acritol acroaesthesia acroarthritis acrobacy acrobat acrobatholithic acrobatic acrobatical acrobatically acrobatics acrobatism acrobats acrocarpi acrocarpous acrocephalic acrocephalous acroceraunian acroceridae acrochordidae acrochordinae acrochordon acroclinium acroconidium acrocontracture acrocoracoid acrocyst acrodactylum acrodermatitis acrodont acrodromous acroesthesia acrogamous acrogamy acrogen acrogenous acrogynous acrolein acrolith acrolithan acrolithic acrologic acrologically acrologism acrologue acromania acromastitis acromatic acromegalic acromegaly acrometer acromial acromicria acromioclavicular acromiodeltoid acromiohumeral acromiohyoid acromion acromioscapular acromiothoracic acromphalus acromyodian acromyodic acromyotonia acronarcotic acroneurosis acronical acronyc acronycta acronym acronymic acronymize acronymous acronyx acrook acroparesthesia acropathology acropathy acropetally acrophobia acrophonetic acrophony acropodium acropoleis acropolis acropolitan acrorhagus acrorrheuma acrosarc acrosarcum acroscleriasis acroscleroderma acrose acrosome acrosphacelus acrospire acrosporous across acrost acrostic acrostical acrostichal acrostichic acrostichoid acrosticism acrostics acrostolium acrotarsial acroteleutic acroterial acroterium acrothoracica acrotic acrotomous acrotreta acrotrophic acrux acrydium acryl acrylaldehyde acrylate acrylic acrylics acrylonitrile acrylyl acs act acta actable actaea actaeaceae actaeon acte acted acter acth acti actifier actify actigall actin actinal actinautographic actine actinenchyma acting actings actinia actinian actiniarian actinic actinidia actiniferous actinine actiniochrome actiniohematin actiniomorpha actinism actinistia actinium actinoblast actinobranchia actinocarp actinocarpic actinocarpous actinochemistry actinocrinidae actinocutitis actinodermatitis actinodielectric actinodromous actinoelectric actinoelectricity actinogonidiate actinography actinoid actinoidea actinolite actinologous actinology actinomeric actinometer actinometric actinometrical actinometry actinomorphic actinomorphy actinomyces actinomycetaceae actinomycetales actinomycete actinomycetous actinomycin actinomycoma actinomycosis actinomycotic actinomyxidia actinomyxidiida actinon actinonema actinoneuritis actinophone actinophonic actinophorous actinophryan actinophrys actinopoda actinopraxis actinopteri actinopterous actinopterygii actinopterygious actinoscopy actinosome actinosphaerium actinostereoscopy actinostomal actinotherapeutic actinotherapeutics actinotherapy actinotoxemia actinotrocha actinouranium actinozoal actinozoan actinozoon actinula actio action actionable actionably actional actioner actiones actions actipylea actis actium activable activate activated activates activating activation active actively activeness activin activism activital activities activity activize actless actor actors actress actresses acts actu actual actualism actualities actuality actualization actualize actually actuarially actuarian actuate actuated actuating actuation actuator acturience acuate acuation acubens acuclosure acuesthesia acuity aculeata aculeiform aculeolate aculeolus aculeus acumen acuminata acuminate acumination acuminose acuminous acuminulate acupress acupressure acupunctuate acupunctuation acupuncturator acurative acus acushla acustomed acutangular acute acutely acutenaculum acuteness acutest acutiator acutilinguae acutilobate acutish acutograve acutonodose acutus acyanoblepsia acyanopsia acyclovir acyesis acyetic acyl acylamido acylamidobenzene acylamino acylation acylogen acyloin acyloxymethane acyrological acyrology acystia acziavimas ada adactyl adactylia adactylism adage adagial adagietto adagio adai adaize adam adamant adamantine adamantinoma adamantly adamantoblastoma adamantoid adamellite adamic adamical adamine adamite adamitical adamitism adamsia adamson adamu adangle adansonia adapa adapid adapis adapration adapt adaptability adaptable adaptation adaptational adaptationally adaptations adapted adaptedness adapter adapters adapting adaption adaptional adaptitude adaptive adaptiveness adaptorial adapts adarme adat adati adatom adaw adawe adawlut adawn adaxial aday adays adcraft add adda addax added addedly addenda addendum adder adderbolt adderfish adders addibility addicent addict addicted addictedness addiction addicts addie addiment adding addis addiscerit addison addisoniana additament additamentary addition additional additionally additionist additions addititious additive additively additives additivity additory addlebrained addled addlehead addleheaded addleheadedly addlement addleness addlepate addlepated addlepatedness addleplot addlings addlins addorsed address addressed addresser addresses addressful addressing addressor addrest adds addu adduce adduced adducent adducer adduces adducible adduct adduction adductive adductor adducts adeem adeep adela adelarthra adelarthrosomata adelarthrosomatous adele adelea adeleidae adelges adelia adelina adeling adeliza adelochorda adelocodonic adelomorphic adelomorphous adelops adelphian adelphogamy adelphoi adelpholite adelphophagy ademonist ademption adenalgy adenase adendric adendritic adenectomy adenectopia adenemphractic adenemphraxis adenia adeniform adenine adenitis adenocele adenocellulitis adenochondroma adenochondrosarcoma adenochrome adenocyst adenocystomatous adenodermia adenodiastasis adenodynia adenofibroma adenogenesis adenographer adenographical adenography adenoid adenoidal adenoids adenoliomyofibroma adenolipoma adenologaditis adenology adenolymphocele adenoma adenomas adenomatous adenometritis adenomycosis adenomyofibroma adenomyxosarcoma adenoneure adenopathy adenopharyngitis adenophlegmon adenophora adenophore adenophorous adenophthalmia adenophyllous adenophyma adenosarcoma adenosclerosis adenosis adenostemonous adenostoma adenotomic adenotomy adenotyphus adenoviruses adenyl adeodatus adeona adephagan adephagia adephagous adept adeptness adepts adeptship adequacy adequate adequately adequation adermia adessenarian adet adglutinate adhaka adhamant adhara adharma adhd adhere adhered adherence adherent adherently adherents adheres adherescence adherescent adhering adhesion adhesions adhesive adhesivemeter adhesiveness adhibit adhibition adhuc adiabatic adiabatically adiabolist adiactinic adiadochokinesis adiagnostic adiantum adiaphon adiaphora adiaphoral adiaphoresis adiaphoretic adiaphorism adiaphorist adiaphoristic adiaphorite adiaphorous adiathermancy adiathermanous adiathermic adib adicea adieu adieus adieux adighe adigranth adin adinida adinole adion adipate adipic adipocere adipoceriform adipocerous adipofibroma adipogenic adipoid adipolysis adipolytic adipoma adipomatous adipometer adipopexia adipopexis adipose adiposeness adiposis adiposity adiposuria adipous adipsia adire adirondacks adit adital aditus adjacency adjacent adjacently adjag adjected adjectional adjectival adjectivally adjective adjectively adjectives adjectivitis adjoin adjoined adjoinedly adjoining adjoins adjoint adjourn adjourned adjourning adjournment adjudge adjudgeable adjudged adjudgment adjudicata adjudicate adjudicated adjudication adjudicator adjudicatory adjunct adjunction adjunctive adjunctively adjunctly adjuncts adjuration adjuratory adjure adjured adjurer adjures adjureth adjuring adjuro adjust adjustable adjustably adjusted adjuster adjusting adjustment adjustments adjusts adjutage adjutancy adjutant adjutants adjutantship adjutorious adjutory adkins adl adlay adless adlumidine adlumine admaxillary admeasure admeasurer admensuration admi admin adminicle adminicular adminiculary adminiculate adminiculation adminiistrative administer administerd administered administerial administering administers administrate administration administrational administrations administrative administratively administrator administrators administratress admirability admirable admirably admiral admirals admiralship admiralty admiration admirative admire admired admiredly admirer admirers admires admiring admiringly admissibility admissible admissibleness admissibly admission admissions admit admiting admits admittable admittance admitted admittedly admitting admix admixed admixtion admixture admonish admonished admonishing admonishingly admonishment admonition admonitioner admonitions admonitively admonitor admonitorial admonitorily admonitory admonitrix admortization adnascent adnate adnation adnephrine adnerval adneural adnex adnexal adnexitis adnexopexy adnominally adnomination adnoun ado adobe adoing adolesce adolescence adolescency adolescent adolescently adolescents adolph adolphus adonai adonean adonia adonian adonic adonidin adonin adonis adonitol adonize adooted adoperate adoperation adopt adoptable adoptative adopted adoptee adopter adoptian adoptianism adopting adoptio adoption adoptionism adoptionist adoptions adoptive adopts adorability adorable adorably adoral adorally adoration adorations adoratory adore adored adorers adores adoretus adoring adorn adorned adorner adorning adornment adornments adorns adosculation adossed adoulie adown adoxaceae adoxaceous adoxography adoxy adoze adpao adpkd adpoeatus adposition adpress adpromission adradial adradially adramelech adrammelech adread adream adreamt adrenalin adrenalone adrenals adrenergic adrenin adrenochrome adrenocortical adrenocorticosteroid adrenocorticosteroids adrenocorticotropic adrenolytic adrenotropic adrian adriana adriatic adrienne adrift adrip adroit adroitly adroitness adrowse adry ads adsbud adscititious adscripted adscripti adscriptitius adsessor adsheart adsignification adsmith adsmithing adsorb adsorbate adsorbent adsorptive adstipulate adstipulation adterminal adular adularescence adularia adulate adulation adulations adulator adulatore adulatory adulatress adullamite adult adulterant adulterants adulterate adulterated adulterately adulteration adulterations adulterator adulterer adulteress adulteriis adulterine adulterize adulterous adulterously adultery adulticidal adultness adultoid adultress adults adumbral adumbrated adumbrating adumbration adumbrations adumbrative adumbratively aduncate aduncated aduncity adusk adust adustion adustiosis aduton advairages advaita advance advanced advancement advances advancing advancingly advancive advansed advantage advantaged advantageous advantageously advantageousness advantages advection advectitious advective advehent advene advenience advenient advent advential adventitia adventitial adventitious adventitiously adventitiousness adventive adventual adventure adventured adventureful adventurement adventurer adventurers adventures adventureship adventuresome adventuresomely adventuresomeness adventuress adventuring adventurish adventurous adventurously adventurousness adverb adverbial adverbiality adverbialize adverbially adverbiation adverbs adversant adversaria adversaries adversarious adversary adversative adversatively adverse adversely adverseness adversifoliate adversities adversity advert adverted advertency advertent advertently advertisable advertise advertised advertisement advertisements advertiser advertisers advertises advertising adverts advice adviceful advices adviendra advisability advisable advisal advisatory advise advised advisedly advisee advisement adviser advisers advises advising advisings advisive advisiveness advisory advocacy advocat advocate advocated advocates advocateship advocati advocating advocator advocatress advocatrix advocatus advolution advowson advowsons adynamia adynamic adynamy adyta adyton adytum adz adze adzooks ae aeaean aecial aecidiaceae aecidioform aecidiospore aecidiostage aeciospore aeciostage aecioteliospore aeciotelium aecium aedes aedibus aedile aediles aedileship aedilian aedilic aedilitian aedility aedis aeeordeoni aefaldness aefauld aegagropila aegagropile aegagrus aegeriid aegeriidae aegicrania aegina aeginetan aeginetic aegipan aegirinolite aegirite aegis aegithalos aegithognathae aegithognathous aegle aegopodium aegrotant aegyrite aei aeitheer aeluroid aelurophobe aelurophobia aeluropodous aemulatur aenach aenean aeneas aeneid aeneolithic aeneous aenigmatibus aenigmatite aeolia aeolian aeolic aeolicism aeolid aeolidae aeolididae aeoline aeolipile aeolism aeolist aeolistic aeolodicon aeolodion aeolomelodicon aeolotropy aeolsklavier aeolus aeon aeonian aeonist aeons aepyceros aepyornis aepyornithidae aequi aequian aequipalpia aequoreal aequum aequus aer aera aerarian aerarii aerarium aerate aerated aeration aerator aeri aerial aerialist aeriality aerially aerialness aeric aerical aerides aerie aerienne aeriens aerifaction aeriferous aerification aeriform aeris aero aerobacter aerobatic aerobian aerobic aerobically aerobics aerobiologic aerobiologist aerobiont aerobioscope aerobiosis aerobiotically aerobium aeroboat aerobranchia aerobranchiate aerobus aerocamera aerocolpos aerocraft aerocurve aerodermectasia aerodonetics aerodrome aerodromics aerodynamical aerodynamicist aerodynamics aerodyne aeroembolism aerofoil aerogene aerogenes aerogenic aerogenically aerogenous aerogeologist aerogram aerograph aerographer aerographic aerographical aerographics aerography aerohydrodynamic aerohydroplane aerohydrotherapy aerohydrous aeroides aerolite aerolith aerolithology aerologic aerological aerologist aeromaechanic aeromancer aeromancy aeromantic aeromarine aerometeorograph aerometer aerometric aerometry aeromotor aeronat aeronaut aeronautic aeronautical aeronautically aeronautics aeronauts aeronef aeroneurosis aeropathy aerope aeroperitoneum aeroperitonia aerophagia aerophagy aerophane aerophilatelic aerophilatelist aerophilately aerophile aerophilic aerophobia aerophobic aerophor aerophotography aerophysics aerophyte aeroplane aeroplanes aeroporotomy aeroscepsy aeroscope aeroscopic aeroscopically aeroscopy aerose aerosiderite aerosol aerospace aerostat aerostatic aerostatical aerostatics aerostation aerosteam aerostiers aerotactic aerotaxis aerotherapeutics aerotherapy aerotonometric aerotonometry aerotropic aerotropism aeruginosa aeruginous aery aes aeschylean aeschynomene aeschynomenous aesculaceae aesculapian aesculapius aesculus aesopic aestetic aesthesis aesthete aesthetes aesthetic aesthetical aesthetically aesthetician aestheticism aestheticist aestheticists aestheticize aesthetics aesthiology aetalibus aeterna aeternam aethalioid aethalium aetheling aetheogam aetheogamic aether aethereal aethers aethogen aethrioscope aetiogenic aetiological aetiotropically aetobatidae aetobatus aetolian aetosaur aetosaurian aetosaurus aevi aevich aevo af aface afaint afalet afar afb afeard afeared afenil afernan afetal affa affability affable affableness affably affabrous affair affairs affect affectable affectate affectation affectations affected affectedly affecter affectibility affectible affecting affectingly affection affectional affectionally affectionate affectionately affectionateness affectioned affections affectious affective affectively affectivity affects affeer affeered affeir afferent affettuoso affianced affidavit affidavits affiliable affiliate affiliated affiliating affiliation affiliations affinal affination affine affined affinitative affinitatively affinities affinition affinitive affinity affirm affirmably affirmance affirmant affirmation affirmations affirmative affirmatively affirmed affirming affirms affiuentj affix affixal affixation affixed affixing affixion affixture afflatus afflict afflicted afflictedness afflicting afflictingly affliction afflictionless afflictions afflictive afflictively afflicts affligee affluence affluent affluential affluently affluentness affluents afflux affluxion afforce afforcement afford affordable afforded affording affords afforestment afformative affranchise affranchisement affray affrayer affrays affreighter affreightment affreuse affreux affricate affricated affright affrighted affrightedly affrighter affrightful affrightfully affrightment affront affronte affronted affrontedly affrontedness affronting affrontingly affrontingness affrontive affrontiveness affrontment affronts affuse affusion afghani aficionado afiction afield afier afifi afikomen afin afire aflame aflare aflat aflaunt aflicker aflight afliliated aflirm aflluents afloat aflower afluking aflutter afoam afold afoot afore aforehand aforementioned aforenamed aforesaid aforethought aforetime aforetold aforismos afortiori afoul afp afraid aframerican afrasia afreet afresh afret africa africain africaine africaines african africanae africanism africans afridi afrikaans afrikaensche afrikanderdom afrikanderism afrikanische afrikanischen afrogaean afront afrown afshah afshar afsikanischen aft aftaba aftah after afteract afterattack afterbeat afterbirth afterblow afterbody afterbrain afterbreach afterburning aftercare aftercareer aftercast aftercataract afterchance afterchrome afterchurch afterclause aftercome aftercooler aftercost aftercourse aftercrop aftercure afterdamp afterdays afterdeck afterdinner afterdrain afterdrops aftereffect aftereffects afterend aftereye afterfall afterfermentation afterform afterfriend afterfruits aftergame afterglide afterglow aftergood aftergrass aftergrave aftergrind afterguns afterhand afterharm afterhatch afterhelp afterhold afterhours afterings afterlife afterlight afterlove aftermark aftermarriage aftermass aftermath aftermatter aftermeal aftermilk aftermost afternoon afternoons afternose afternote afteroar afterpain afterpast afterpiece afterplanting afterpressure afterrake afterschool aftersend aftersensation aftersensations aftershaft aftershafted aftership aftershock aftersong aftersound afterstain afterstorm afterstrain afterstretch afterswarm afterswarming aftertan aftertask afterthinker afterthought aftertime aftertreatment aftertrial afterwale afterwar afterward afterwards afterwash afterwisdom afterwit afterword afterwork afterworld afteryears afther afthernoon aftmost aftonian aftosa aftrer aftuh aftward afunction afunctional afwillite afzelia aga agabanee agacante agacella again against againstand agal agalactia agalactous agalawood agalaxia agalaxy agalena agalenidae agalinis agalloch agallochum agallop agalma agalmatolite agalwood agama agamae agamemnon agamete agami agamian agamic agamically agamid agamidae agamogenesis agamogenetically agamogony agamoid agamont agamospore agamous agamy aganglionic aganice aganippe agao agape agapemonian agapemonist agapemonite agapes agapetae agapeti agapetid agapis agapornis agar agaricaceae agaricaceous agaricales agariciform agaricin agaricine agaricoid agaricus agaristidae agarwal agastreae agate agateindustry agates agateware agatha agathaea agathaumas agathe agathin agathis agathism agathist agathodaemon agathodaemonic agathokakological agathology agathosma agatiform agatine agatized agaty agau agave agawam agaz agazed agdistis age aged agedly ageing ageism agelacrinitidae agelaius agelaus ageless agelessness agelong agen agena agencies agency agendum agenesia agennetic agent agentes agentess agentival agentry agents agentship ageometrical ager ageratum agere ages ageusia ageusic ageustia aggerate aggeration aggerose agglomerant agglomerate agglomerated agglomerates agglomeration agglomerations agglomerative agglomerator agglutinability agglutinable agglutinated agglutination agglutinationist agglutinative agglutinize agglutogenic aggradational aggrade aggrandise aggrandizable aggrandize aggrandized aggrandizement aggrate aggravate aggravated aggravates aggravating aggravatingly aggravation aggravations aggravative aggregant aggregata aggregatae aggregate aggregated aggregateness aggregates aggregation aggregations aggregator aggregatory aggress aggressin aggression aggressions aggressive aggressively aggressiveness aggressor aggrievance aggrieved aggrievedly aggrievedness aggroup aggroupment aggry aggur agha aghanee aghas aghast agialid agilawood agile agilely agilis agility agillawood agin aginary aging agio agiotage agist agisted agistment agistor agitate agitated agitatedly agitates agitating agitation agitational agitationist agitations agitative agitator agitatorial agitators agitatrix agitatur agite agkistrodon agla aglance aglaonema aglaos aglaozonia aglare aglaspis aglauros agleaf agleam aglet aglethead agley aglipayan aglipayano aglitter aglobulia aglossa aglossate aglossia aglow aglutition aglycosuric aglyphodont aglyphodontia agmatine agminated agnail agname agnate agnatha agnathia agnathic agnathostomata agnathostomatous agnathous agnatic agnatically agnes agnification agnita agnoetae agnoite agnomen agnomical agnominal agnomination agnosis agnostic agnostically agnosticism agnostics agnostos agnostus agnosy agnotozoic agnus ago agog agoge agoing agologiques agomphiasis agomphosis agon agonal agone agoniadin agoniatite agoniatites agonic agonied agonies agonised agonising agonist agonistarch agonistic agonistics agonium agonize agonized agonizedly agonizer agonizing agonizingly agonostomus agonothete agonothetic agony agora agorae agoranome agoraphobia agoraphobics agouara agouta agouti agoutis agra agraffee agrah agral agrammatical agrammatism agrania agranulocyte agranulocytosis agranuloplastic agrarian agrarianly agrauleum agre agree agreeability agreeable agreeableness agreeably agreed agreeing agreeingly agreement agreements agrees agregation agrestian agrestic agrestis agri agria agribusiness agricere agricintural agricola agricole agricolous agricultor agricultural agriculturalist agriculturally agriculture agriculturist agriculturists agrievous agrimonia agrimony agrimotor agrin agriochoeridae agriochoerus agriological agriologist agrionia agrionid agrionidae agriotes agris agroan agrobiological agrobiologically agrology agromyza agromyzid agronome agronomial agronomic agronomics agrope agropyron agrostemma agrosteral agrostis agrostographer agrostographical agrostologic agrostological agrostologist agrostology agrotechny aground agrufe agrypnia agrypnotic aguavina agudist ague agued aguelike agues agueweed aguey aguilarite aguinaldo aguirage aguish aguishly aguishness agush agust agway agynarious agynary agynous agyptischen agyrate ah aha ahaaina ahantchuyuk ahartalav ahead aheap ahem ahepatokla ahet ahey ahind ahint ahir ahluwalia ahmadabad ahmadi ahmadiya ahmedabad aho ahong ahorse ahousaht ahoy ahrendahronon ahriman ahrimanian ahsan aht ahuehuete ahull ahum ahungered ahungry ahunt ahura ahush ai aichmophobia aid aida aidable aidance aided aidenn aider aidera aides aidful aidge aiding aids aiel aigialosauridae aigialosaurus aiglet aigremore aigrette aiguille aiguillesque aiguillette aihino aikinite ail ailantery ailanthic ailanthus ailantine ailed aileen aileron ailest aileth ailette ailied ailing aillt ailment ailments ails ailsite ailuro ailuroid ailuropoda ailurus aim aimak aime aimed aimee aimer aimes aiming aimless aimlessly aimlessness aimore aims aimworthiness ain ain't ainsi aint ainu aion aionial aique air aira airable airampo airan airborne airbound airbrained airbrush aircraft aircraftman aircraftsman aircraftswoman aircraftwoman aircrew aircrewman airdock airdrome aire aired airer airfare airfield airflow airfoil airframe airfreighter airgraphics airhead airier airiest airified airily airiness airing airless airlike airline airliner airlock airly airmail airmarker airmass airmen airometer airphobia airplane airplanist airs airscrew airship airsick airsickness airspace airspeed airstrip airt airtight airtightly airtightness airward airwards airway airways airwoman airworthiness airworthy airy aischrolatreia aiseweed aisle aisled aisles aisling aissaoua aissor aisteoir aistopoda aistopodes aisy ait aitch aitchbone aitchless aitchpiece aitesis aithochroi aitiatike aitiotropic aitken aitkenite aitutakian aiwan aizoaceae aizoaceous aizoon ajangle ajar ajari ajatasatru ajava ajax ajivika ajog ajoint ajoutant ajowan ajuga ak aka akademeia akademii akal akalasia akali akamnik akan akanekunik akarana akasa akathisia akawai akazga akazgine akcheh ake akebi akebia akee akeki akeley akenobeite akers akha akhissar akhlame akhmimic akhrot akhyana akim akin akindle akinesic akinete akinetes akinetic akiskemikinik akiyenik akka akkad akkadian akkadist akmudar akmuddar aknow akoasm akoasma akoluthia akouein akoulalion akov akpek akra akrabattine akrochordite akron akroterion akrotomon akrou aktistetae aktistete aku akuammine akule akwapim al ala alabama alabaman alabamian alabamide alabamine alabarch alabaster alabastrine alabastrites alabastron alacha alack alackaday alacreatine alacrify alacritous alacrity alactaga aladdinize aladfar aladinist alaeque alai alaite alake alaki alala alalite alalunga alamanni alamannian alameda alamo alamonti alamoth alan aland alangiaceae alangin alangine alangium alani alanine alannah alans alantic alantol alanyl alar alarbus alaric alarm alarmable alarmed alarmedly alarming alarmingly alarmism alarmist alarms alarodian alarum alary alas alascan alaska alaskaite alaskan alaskans alaskite alaster alastrim alatern alation alb alba albacore albahaca alban albanese albanesische albanian albanite albany albarco albardine albarello albarium albaspidin albata albatross albatrosses albe albedo albee albeit alberene alberta albertin albertina albertine albertinian albertite albertustaler albertype albescence albetad albi albian albicans albicant albiculi albification albificative albiflorous albify albigenses albin albiness albinic albinism albinistic albino albinocs albinoes albinoism albinotic albinuria albion albireo albite albitization albizzia albocarbon albococcus alboin albolite albolith albopruinose alboranite alboun albronze albruna albs albuginaceae albuginea albuginitis albugo album albumean albumen albumenize albumenizer albumimeter albumin albuminate albuminaturia albuminiferous albuminiform albuminiparous albuminization albuminize albuminocholia albuminogenous albuminoid albuminoidal albuminoids albuminolysis albuminometer albuminorrhea albuminoscope albuminosis albuminous albumins albuminuria albuminuric albumoid albumoids albumose albumoses albumosuria albuquerque alburnum albus albutannin albuterol alca alcae alcaic alcaics alcaide alcalde alcaldeship alcaldia alcaligenes alcalizate alcalzar alcamine alcantara alcarraza alcatoides alcatras alcazar alcedinidae alcedo alcestis alchemia alchemic alchemically alchemilla alchemist alchemistic alchemistical alchemists alchemize alchemy alchera alcheringa alchimistes alchitran alchochoden alchornea alchymy alcibiadean alcicornium alcidae alcidine alcine alclad alcmena alco alcoate alcohate alcohol alcoholates alcoholature alcoholdom alcoholic alcoholically alcoholicity alcoholics alcoholimeter alcoholism alcoholist alcoholization alcoholize alcoholomania alcoholometer alcoholometrical alcoholometry alcohols alcoholuria alcoholysis alcool alcoran alcoranic alcornoco alcornoque alcosol alcotate alcott alcove alcoved alcoves alcuinian alcune alcuni alcyon alcyonacea alcyonacean alcyonaria alcyonarian alcyones alcyoniaceae alcyonic alcyoniform alcyonium alcyonoid aldactone aldamine aldane aldazin aldeament aldebaran aldebaranium aldehol aldehyde aldehydes aldehydic aldehydine aldehydrol alden alder alderberry alderman aldermancy aldermaness aldermanic aldermanity aldermanlike aldermanly aldermannus aldermanry aldermanship aldermen aldern alderney alders alderwoman aldhafera aldimine aldine aldohexose aldol aldolization aldolize aldols aldomet aldononose aldopentose aldose aldoside aldoxime aldoximes aldrin aldrovanda aldus ale aleap aleatory alebench alec alecithal alecize aleck alecost alectoria alectorides alectoridine alectoris alectoromachy alectoromancy alectoromorphae alectoropodous alectrion alectrionidae alectryomachy alectryomancy alecup alee alef alefnull aleft alefzero alegar alehoof alehouse alem alemana alemannian alemannic alembic alembicate alembroth alemite alen aleochara aleph alepidote alepot aleppine alerce alere alert alerted alertly alertness ales alesan aletap aletes alethea alethiology alethopteis alethopteroid aletris alette aleurites aleuritic aleurodes aleuromancy aleurometer aleuronat aleuroscope aleurs aleut aleutic alevin alewife alexanders alexandra alexandreid alexandria alexandrian alexandrianism alexandrine alexandrite alexei alexia alexian alexic alexin alexipharmacon alexipharmacum alexipyretic alexis alexiterical aleyard aleyrodes aleyrodid alfa alfaje alfalfa alfaqui alfaquin alfeady alfenide alfilaria alfilerilla alfiona alfonsin alfonso alforja alfreda alfredo alfresco alfridaric alfridary alfurese alga algae algaecide algaeological algaeologist algaeology algaesthesis algal algalia algamala algaroth algarroba algarrobilla algarrobin algarsife algarsyf algate algebar algebra algebraic algebraical algebraist algebraists algebraization algebraize algebras algedi algedo algedonic algedonics algefacient algenib alger algeria algerian algeriennes algerine algernas algernon algesia algesic algesthesis algetic alggruppen alghe alghebra algibbra algic algid algidity algidness algieba algiers algific algin alginate alginuresis algiomuscular algist algivorous algocyan algodoncillo algodonite algogenic algol algolagnia algolagnic algological algologist algology algometer algometric algometrical algometrically algometry algomian algomic algonquin algophilia algophilist algophobia algor algorab algores algorism algorismic algosis algous algovite algraphic algraphy alguazil algues algum alhambra alhambresque alhena ali alia aliam alias alibangbang alibert alibi alibility alicant alichel alichino alicia alick alicoche alictisal alicui alicyclic alida alidade alids alien alienage alienate alienated alienating alienation alienator aliency alienicola alienigenate alienism alienist alienize aliens alienship aliethmoid alif aliferous aliform aligerous alight alighted alighting alights align aligned alignment aligreek alii aliipoe aliisque alike alikeness alikuluf alilonghi alima aliment alimentariness alimentary alimentatively alimentic alimentiveness alimentotherapy aliments alimentum alimony alin alinasal aline alineation aliofar aliorum alios alioth alipata aliped aliphatic alipterion aliptic aliquando aliquant aliquid aliquot alisier alising alisma alismaceous alismad alismal alismales alismataceae alismoid aliso alison alisonite alisp alisphenoid alisphenoidal alist alistair alister alit alite alitrunk aliturgic aliturgical aliud aliunde alive aliveness alizarate alizari alizarin aljabra aljoba alk alkahest alkahestica alkaid alkalamide alkalemia alkalescence alkalescent alkali alkalies alkaliferous alkalifiable alkalify alkaligenous alkalimeter alkalimetric alkalimetrically alkaline alkalinity alkalinization alkalinize alkalinuria alkalis alkalizer alkaloid alkaloids alkalometry alkalosis alkalous alkamin alkamine alkanes alkanna alkannin alkaphrah alkapton alkaptonuria alkaptonuric alkarsin alkekengi alkene alkenna alkenyl alkermes alkide alkool alkoranic alkoxide alky alkyl alkylation alkylene alkylidene alkyls alkyne all alla allactite allaeanthus allagite allagostemonous allah allais allait allalinite allamotti allanitic allantiasis allantoate allantochorion allantoic allantoid allantoidea allantoidean allantoidian allantoin allantoinase allantois allantoxaidin allanturic allassotonic allative allatrate allay allayed allayment allays allbone alle allectory allee allegate allegation allegations allegator allege allegeable allegeance alleged allegedly alleger alleges allegiance allegiancy allegiant alleging allegorical allegoricalness allegories allegorism allegorist allegorister allegoristic allegorization allegorize allegorized allegorizer allegory allegra allegretto allegro allele allelic allelism allelocatalytic allelomorph allelomorphic allelomorphism allelotropic alleluia alleluiatic allemand allemontite allen allenarly aller allerest allergenic allergic allergies allergin allergist allergy allerion allers alleviate alleviated alleviates alleviating alleviatingly alleviation alleviations alleviator alley alleys alleyway alleyways allgemeine allhallowtide allheal alliable alliably alliaceae alliages alliance alliancer alliances alliaria allicampane allice allicholly alliciency allicient allie allied allies alligate alligator alligatored alligators allineate allionia allison alliterate alliterating alliteration alliterational alliterationist alliterative alliteratively alliterativeness allium allivalite allness allobroges allocable allocaffeine allocatable allocate allocated allocatee allocation allocator allochetite allochezia allochirally allochiria allochroic allochroite allochromatic allochroous allochthonous allocinnamic alloclase alloclasite allocochick allocute allocution allocutive allocyanine allodelphite allodesmism alloeostropha alloerotic allogamy allogene allogeneity allogeneous allogenic allogenically allograph alloiogenesis alloisomeric allokinesis allokinetic allomerism allometric allometry allomorph allomorphite allomucic allonge allonomous allonymous allopalladium allopath allopathetic allopathetically allopathic allopathist allopathy allopatric allopatrically allophanamide allophanates allophane allophone allophonic allophylian allophylic alloplasm alloplasmatic alloplast alloplastic alloplasty alloploidy allopolyploid alloquial alloquialism allor allorrhyhmia allosaur allose allosome allot alloted allotee allotelluric allotheism allotheria allothigene allothigenetic allothigenetically allothigenic allothimorph allothogenic allothogenous allotment allotments allotriodontia allotriognathi allotriophagia allotriophagy allotriuria allotropically allotropicity allotropism allotropize allotropous allotrylic allots allottable allotted allottee allotter allotting allotypical allover allow allowable allowably allowance allowances allowed allowedly allowing allows alloxan alloxanate alloxanic alloxantin alloxuraemia alloxuremia alloxyproteic alloy alloyage alloyed alloying alloys allozooid alls allseed allspice allstate allthing allthorn alltud allude alluded alludes alluding allure allured allurement allurements allurer allures alluring alluringly alluringness allus allusion allusions allusive allusively allusiveness alluvia alluvial alluviate alluvion alluvious alluvium alluviums alluz allwhere allwhither ally allyl allylamine allylic allylthiourea alma almacantar almach almaciga almacigo almaden almadia almadie almagest almagra almaiide almain alman almanac almanacs almandine almandite alme almeidina almerian almida almightily almightiness almighty almirah almiranta almirante almohades almoign almon almond almonds almondy almoner almonership almonry almoravid almoravide almoravides almosen almost almostimmediately almosts alms almsdeed almsdeeds almsful almshouse almshouses almsman almsmen almswoman almuce almucia almucium almud almude almug aln alnage alnager alnagership alnascharism alnein alnilam alniresinol alnitak alniviridol alnoite alntichita alnuin alo aloadae alod alodial alodialism alodialist alodiality alodially alodiary alodification alodium aloe aloed aloemodin aloeroot aloes aloesol aloeswood aloetic aloewood aloft alogia alogian alogical alogically alogism alogy aloha aloid aloike aloin aloins aloisiite aloma alone aloneness along alongshore alongshoreman alongside alongst alonsoa aloof aloofly aloofness aloose alop alopecia alopecias alopecist alopecurus alopeke alopias alosa alouatta aloud alouer alow alowe aloxite alp alpaca alpacas alpasotes alpax alpeen alpen alpenglow alpenhorn alpenstock alpenstocker alpenstocks alpert alpes alpestral alpestrine alpestris alpha alphaber alphabet alphabetarian alphabetic alphabetical alphabetiform alphabetism alphabetist alphabetization alphabetize alphabets alphameric alphanumeric alphard alphatoluic alphean alpheratz alphitomancy alphol alphonist alphonsine alphonsism alphonso alphorn alphyl alpian alpieu alpigene alpina alpinas alpine alpinen alpinery alpinesque alpini alpinia alpiniaceae alpinism alpinist alps alqueire alraun alreadiness already alrighty alroot alruna als alsame alsatia alsatian alsbachite alshain alsike alsine also alsop alstonite alstroemeria alsweill alt altaian altaic altaid altair altaite altamira altar altarage altared altaria altaribus altarlet altarpiece altars altarwise altaus altazimuth altbulgariechen altchristlichen alten alter altera alterability alterable alterably alteraciones alterant alterate alteration alterations altercate altercation altered alteregoistic alteren alterer altering alterity alterman altern alternance alternant alternanthera alternaria alternariose alternate alternated alternately alternates alternating alternatingly alternation alternationist alternations alternative alternatively alternativeness alternatives alternativity alternator alternauve alternifoliate alternipetalous alternipinnate alternisepalous alternize alterocentric alters altesten althaein althein altheine althionic altho althongh althorn although altica alticamelus altiloquence altiloquent altimeter altimetrical altimetrically altin altingiaceae altingiaceous altininck altiscope altisonant altisonous altissimo altitude altitudes altitudinous alto altocumulus altogether altogetherness altometer alton altorientallischen altostratus altra altricial altropathy altruism altruist altruistic altruistically altschin aluco aluconidae aludra alula alular alum alumbloom alumed alumel alumen alumic alumina aluminaphone aluminate aluminates alumine aluminide aluminiform aluminilite aluminish aluminite aluminium aluminography aluminose aluminosilicate aluminosis aluminosity aluminothermic aluminotype aluminous aluminum aluminyl alumish alumite alumnae alumnal alumni alumniate alumnol alumnus alumohydrocalcite alumroot alums aluniferous alunite alunogen alupag alur alure alurgite alus alushtite aluta alva alvah alvar alvarez alveary alveola alveolar alveolariform alveolate alveolated alveolation alveolectomy alveoli alveoliform alveolite alveolitis alveoloclasia alveolodental alveololabial alveolonasal alveolosubnasal alveolotomy alveolus alvero alvin alvina alvine alvissmal alvus alway always alya alycompaine alymphia alysson alyssum alytarch alytes alzheimer alzheimers am amabel amability amacratic amacrine amadavat amadelphous amadi amaga amah amain amakebe amakosa amala amalaita amalfian amalfitan amalgam amalgamable amalgamate amalgamated amalgamating amalgamation amalgamationist amalgamist amalgams amalic amalings amalrician amaltas amamau amampondo amanda amande amandin amang amani amania amanita amanitas amanitin amanitine amanitopsis amanori amanous amant amantadine amanuenses amapondo amar amarantaceae amarantaceous amaranth amaranthaceae amaranthaceous amaranthine amaranths amaranthus amarantite amarelle amargoso amarillo amarine amarinna amarity amaroid amaroidal amarre amarthritis amaryllid amaryllidaceae amaryllidaceous amaryllideous amas amasesis amass amassable amassed amasser amassing amassment amassona amasta amasthenic amatembu amaterialistic amateur amateurish amateurs amati amative amatol amatorios amatory amatungula amaurosis amaze amazed amazedly amazement amazes amazia amazilia amazing amazingly amazon amazona amazonism amba ambach ambactos ambage ambagiosity ambagiousness ambagitory amban ambar ambaree ambasadors ambasciare ambasciatore ambash ambassade ambassadeur ambassador ambassadorial ambassadorially ambassadors ambassadorship ambassadress ambassage ambassy ambatoarinite ambeer amber amberfish ambergris amberill amberoid ambiance ambicoloration ambidextral ambidextrously ambidextrousness ambiency ambient ambier ambiguities ambiguity ambiguous ambiguously ambiguousness ambilevous ambilian ambilogy ambiparous ambisinister ambisinistrous ambisporangiate ambit ambition ambitionist ambitionlessly ambitions ambitious ambitiously ambitiousness ambitty ambivalence ambivalency ambivalent ambivert amble ambled ambling amblingly amblotic amblyaphia amblycephalidae amblycephalus amblydactyla amblygeusia amblygon amblygonal amblyocarpous amblyomma amblyopia amblyopsidae amblyopsis amblyoscope amblypod amblystegite ambo amboceptoid amboceptor amboina amboinese ambon ambones ambosexous ambosexual ambrain ambrein ambrette ambrica ambrite ambroid ambrology ambrose ambrosia ambrosiac ambrosiaceae ambrosiaceous ambrosial ambrosially ambrosian ambrosianae ambrosine ambrosio ambrosios ambrosterol ambrotype ambsace ambubajae ambulacral ambulacriform ambulance ambulancer ambulances ambulate ambulatio ambulation ambulator ambulatoria ambulatory ambuling ambulomancy amburbial ambury ambuscade ambuscader ambuscades ambush ambushed ambusher ambushes ambushment ambystoma ambystomidae amc amchoor amd ame amebiasis amebiform ameed ameen ameiuridae ameiva amelanchier amelia amelification ameliorable ameliorant ameliorate ameliorating amelioration ameliorator amelioratory amellus ameloblast ameloblastic amen amenability amenable amenableness amenably amend amendable amende amended amender amending amendment amendments amends amene amenite amenities amenity amenorrhea amenorrheal amenorrhoea amental amentia amentiferae amentiferous amentum amerada amerceable amercement amercer amerciament america americaine american americana americanese americanitis americanization americanize americanizer americanly americanoid americans americaward americawards americium americomania amerind amerism ames amesite ametabole ametabolia ametabolic ametabolism ametabolous ametaboly ametallous amethodical amethyst amethystine amethysts ametoecious ametria ametrometer ametrope ametropia ametropic ametrous amfiboloi amfitheatron amgarn amhar amherst amhf ami amia amiabilities amiability amiable amiableness amiably amianth amianthine amianthium amianthoidal amianthus amiantus amic amicable amicableness amicably amical amice amici amicicide amico amicrobic amicronucleate amictus amid amidate amide amides amidid amidines amidism amidist amidmost amido amidoacetal amidoacetic amidoacetophenone amidoazo amidoazobenzol amidocaffeine amidocapric amidofluorid amidogen amidoketone amidon amidophenol amidoplast amidosuccinamic amidosulphonal amidosulphonic amidothiazole amidoxy amidoxyl amidrazone amidships amidst amidstream amidulin amighty amigo amiidae amikacin amil amiles amiloride amiloun amimia aminate amination amine amines amingdola amini aminic aminity aminization aminize amino aminoacetal aminoacetanilide aminoacetic aminoacetone aminoacetophenone aminobarbituric aminobenzaldehyde aminobenzamide aminocaproic aminodiphenyl aminoformic aminoglutaric aminoglutethimide aminoglycoside aminoglycosides aminoguanidine aminolysis aminolytic aminomalonic aminomyelin aminoplast aminoplastic aminopropionic aminosalicylic aminosuccinamic aminosuccinic aminothiophen aminovaleric aminoxylol aminta amioidei amir amiral amiranha amiray amirs amirship amis amish amishgo amiss amissible amissness amita amitabha amitiez amitosis amitotic amitotically amitriptyline amity amixia amizilis amla amlikar amlong amma amman ammanite ammelin ammeline ammer ammeter ammeters ammi ammiaceae ammine amminochloride amminolytic ammobium ammochaeta ammocoetid ammocoetidae ammocoetiform ammocoetoid ammodytes ammodytidae ammodytoid ammonal ammonate ammonation ammonia ammoniac ammoniacal ammoniacum ammonias ammoniate ammoniation ammonic ammoniemia ammonifier ammonify ammonionitrate ammonites ammonitess ammonitic ammoniticone ammonitiferous ammonitish ammonitoid ammonitoidea ammonium ammoniuria ammonization ammonobasic ammonocarbonic ammonocarbonous ammonoid ammonoidea ammonolysis ammophila ammophilous ammotherapy ammu ammunition amna amnesiac amnesic amnesties amnesty amnigenia amnioallantoic amniochorial amniomancy amnion amnionate amnionic amniote amniotic amniotitis amniotome amoeba amoebae amoebaean amoebaeum amoebalike amoebian amoebiasis amoebic amoebicide amoebid amoebida amoebiform amoebobacter amoebobacterieae amoebocyte amoebogeniae amoeboid amoeboidism amoebula amok amokshya amole amolilla amomales amomum among amongst amontillado amor amorado amoral amoralist amorality amoralize amores amoret amoretto amorism amorist amoritic amoritish amoroso amorous amorously amorphic amorphinism amorphism amorphophallus amorphophyte amorphous amorphously amorphus amorphy amortisseur amortization amortize amos amoskeag amotion amouchi amount amounted amounting amounts amour amourette amoureuse amourous amours amovable amove amoxapine amoyan amp ampalaya ampasimenite ampelidaceae ampelidae ampelideous ampelite ampelographist ampelography ampelopsidin ampelopsis ampelosicyos ampelotherapy amper amperage ampere amperemeter amperemeters amperes amperometer ampery ampex ampheclexis ampherotoky amphetamines amphiarthrosis amphiaster amphibalus amphibia amphibial amphibian amphibichnite amphibiological amphibiology amphibiotic amphibiotica amphibious amphibiously amphibiousness amphibium amphiblastic amphiblastula amphiblestritis amphibola amphibole amphibolia amphibolic amphiboliferous amphiboline amphibolite amphibolites amphibological amphibologically amphibologism amphibolous amphiboly amphibrach amphicarpa amphicarpaea amphicarpic amphicarpium amphicarpogenous amphicentric amphicoelous amphicrania amphicreatinine amphicribral amphictyonian amphictyonic amphictyons amphictyony amphicyon amphicyrtic amphid amphide amphidesmous amphidiarthrosis amphidiploidy amphidisc amphidiscophora amphierotic amphierotism amphigamae amphigamous amphigastrium amphigen amphigene amphigenesis amphigenetic amphigenously amphigonic amphigonium amphigonous amphigony amphigory amphigouri amphikaryon amphilogism amphilogy amphimacer amphimictic amphimixis amphimorula amphineura amphineurous amphinucleus amphionic amphioxi amphioxidae amphioxides amphioxididae amphioxis amphioxus amphipeptone amphiplatyan amphipleura amphiploid amphiploidy amphipneusta amphipnous amphipod amphipoda amphipodan amphipodiform amphipodous amphiprostylar amphiprostyle amphipyrenin amphirhina amphirhine amphisarca amphisbaena amphisbaenian amphisbaenic amphisbaenidae amphisbaenoid amphisbaenous amphiscians amphiscii amphisile amphisilidae amphispermous amphispore amphistomatic amphistome amphistomoid amphistomum amphistylar amphistylic amphistyly amphitene amphitheater amphitheatered amphitheatral amphitheatre amphitheatres amphitheatrical amphitheatrically amphitheatrum amphithecial amphithyron amphitokous amphitoky amphitriaene amphitropal amphitruo amphitryon amphitype amphiuma amphiumidae amphodarch amphodelite amphodiplopia ampholyte amphopeptone amphophil amphophile amphophilous amphora amphorae amphoral amphore amphorette amphoric amphoricity amphoriloquy amphorophony amphorous amphoteric amphotericin amphrysian ample amplectant ampler amplest amplexicaudate amplexifoliate amplexus ampliate ampliative amplicative amplidyne amplification amplificative amplificator amplificatory amplified amplifier amplifies amplify amplifying amplitude amply ampollosity ampongue ampul ampulla ampullae ampullaria ampullariidae ampullary ampullated ampullitis ampullula amputate amputated amputation amputational amputations amputator ampytated amra amreeta amsath amsel amsterdam amsterdamer amt amuchco amuck amueixa amulet amuletic amulets amurca amurcosity amurcous amurru amusable amuse amused amusee amusement amusements amuser amuses amusette amusia amusing amusingly amusively amutter amuyon amuyong amuze amvis amyclaean amyelencephalia amyelencephalous amyelia amyelonic amygdal amygdalaceae amygdalaceous amygdalase amygdalate amygdalic amygdaliferous amygdalin amygdaline amygdalinic amygdalitis amygdaloid amygdaloidal amygdalopathy amygdalotome amygdalus amygdule amyl amylaceous amylamine amylan amylase amylemia amylene amylenol amylic amylo amyloclastic amylocoagulase amylodextrin amylodyspepsia amylogen amylogenesis amylogenic amylohydrolysis amyloid amyloidal amyloidosis amyloleucite amylolysis amylom amylometer amylopectin amylophosphoric amylopsin amylose amylosis amylum amyluria amynodont amyosthenia amyosthenic amyotrophia amyotrophy amyraldism amyraldist amyridaceae amytal amyxorrhea an ana anabantidae anabaptism anabaptist anabaptistical anabaptistically anabaptistry anabaptize anabas anabasine anabasis anabasse anabata anabathmos anabatic anabel anaberoga anabiotic anablepidae anableps anabo anabohitsite anabolagium anabolism anabolize anabranch anabrosis anabrotic anacahuita anacahuite anacalypsis anacampsis anacamptically anacamptics anacamptometer anacanth anacanthine anacanthini anacardiaceous anacardic anacardium anacatharsis anacephalize anacharis anachoritis anachromasis anachronic anachronical anachronism anachronismatical anachronisms anachronist anachronistic anachronistically anachronize anachronous anachronously anacid anacin anaclastic anaclastics anaclete anacleticum anaclinal anacoenosis anacoluthia anacoluthic anacoluthically anacoluthon anaconda anacreon anacreontic anacreontically anacreontics anacrisis anacrogynae anacrogynous anacrotic anacrotism anacrustic anacrustically anaculture anacusia anacusic anacusis anacyclus anadicrotism anadidymus anadiplosis anadipsia anadipsic anadrom anadromous anaematosis anaemia anaemic anaerobation anaerobe anaerobes anaerobia anaerobian anaerobic anaerobically anaerobies anaerobiont anaerobiosis anaerobium anaerophyte anaeroplastic anaesthesia anaesthetic anaesthetics anaesthetise anaesthetist anaesthetized anaesthetizing anaetiological anafril anagalactic anagallis anagap anagenetic anagep anagignoskomena anaglyph anaglyphical anaglyphoscope anaglyphy anaglyptic anaglyptical anaglyptograph anaglyptographic anaglyptography anaglypton anagnorisis anagnost anagoge anagogic anagogical anagogics anagram anagrammatic anagrammatical anagrammatism anagrams anagua anagyrin anagyrine anagyris anaheim anahita anakes anakinesis anakinetic anakinetomer anakoluthia anakrousis anaktoron anal analav analcime analcite analecta analectic analects analemma analemmatic analepsis analepsy analeptical analgen analgesia analgesic analgesics analgesidae analgesis analgetic analgia analgic analgize analitiche analkalinity anallantoidea anallantoidean analog analogic analogical analogically analogicalness analogies analogion analogism analogist analogistic analogize analogon analogous analogousness analogue analogy analphabet analphabete analphabetic analphabetical analphabetism analutika analysable analyse analysed analyser analyses analysing analysis analyst analysts analytic analyticae analytical analytically analytics analytique analyze analyzed analyzes analyzing anam anama anamesite anametadromous anamirta anamirtin anamite anamnesis anamnestically anamnionata anamnionic anamniota anamniote anamniotic anamorfici anamorphic anamorphism anamorphose anamorphosis anamorphote anan anana ananaples ananas ananda anandrarious anandria anandrous anangioid anangular ananias ananism anansi ananta anantherate anantherous ananym anapaest anapaestic anapaestically anapaganize anapaite anapanapa anapeiratic anapest anapestic anaphalantiasis anaphase anaphe anaphora anaphoria anaphoric anaphorical anaphrodisiac anaphroditic anaphroditous anaphylactogen anaphylactogenic anaphylactoid anaphylatoxin anaphylaxis anaphyte anaplasia anaplasis anaplasm anaplasma anaplasmosis anaplastic anaplasty anaplerosis anaplerotic anapnea anapneic anapnoeic anapnograph anapnoic anapnometer anapodeictic anapophysis anapsida anapsidan anapterygotous anaptomorphidae anaptomorphus anaptotic anaptyctical anaptyxis anarachy anaras anarcestean anarch anarchal anarchial anarchic anarchical anarchically anarchism anarchist anarchistic anarchists anarchoindividualist anarchosocialist anarchosyndicalism anarchy anarcotin anaretic anaretical anarthria anarthric anarthropod anarthrous anarthrousness anarya anas anasa anasarca anasarcous anaschistic anaseismic anasitch anaspalin anaspida anaspidacea anaspides anastalsis anastaltic anastasia anastasian anastasimon anastasimos anastasis anastate anastatic anastatica anastatus anastigmat anastigmatic anastomose anastomoses anastomosing anastomosis anastomotic anastronomical anastrophe anastrophia anat anatase anatexis anathema anathemas anathemata anathematic anathematical anathematically anathematised anathematism anathematized anathematizes anathematizing anatheme anathemize anatherum anatidae anatifa anatifer anatinacea anatinae anatine anatole anatolian anatolic anatomic anatomical anatomically anatomicobiological anatomicochirurgical anatomicomedical anatomicopathological anatomicophysiologic anatomicophysiological anatomicosurgical anatomise anatomism anatomist anatomists anatomization anatomy anatreptic anatripsis anatripsology anatriptic anatropia anaudia anaunter anaunters anaxagorean anaxagorize anaxial anaxon anaxonia anazoturia anbury ance ancerata ances ancestor ancestorial ancestorially ancestors ancestral ancestrally ancestress ancestrial ancestrian ancestry anche anchietin anchimonomineral anchises anchistea anchistopoda anchithere anchitherioid anchor anchorage anchorages anchoram anchorate anchored anchoress anchoresses anchoretish anchoretism anchorhold anchoring anchorite anchorites anchoritess anchoritic anchoritish anchoritism anchorlike anchors anchorwise anchovies anchovy anchusine anchylose anchylosis ancien ancience anciency ancieni ancienne anciens ancient ancientism anciently ancientness ancients ancienty ancile ancillary ancipitous ancistrocladaceous ancles ancon ancona anconagra anconal ancone anconeal anconeous anconeus anconitis anconoid ancony ancora ancoral ancylodactyla ancylopoda ancylostoma ancylostome ancylostomum ancylus ancyrean ancyrene and and/ and/or andabatarian andalusian andalusite andaman andamanese andante andantino andarko andaste andean ander anderson andes andesic andesine andesinite andesite andesites andesitic andevo andian andine andirine andiron andirons andlthe andoke andon andora andorite andorra andover andradite andrarchy andre andrea andreaeaceae andrei andrena andrenid andrenidae andrew andrews andrewsite andria andriana andrias andric androcentric androcephalum androconium androcratic androcyte androdioecious androdioecism androecial androecium androgametophore androgen androgenesis androgenetic androgenic androgenous androgens androginous androgonia androgonial androgonidium androgonium andrographis andrographolide androgynal androgynia androgynism androgynous androgyny androl androlepsy andromache andromaque andromeda andromede andromonoecious andromonoecism andromorphous andropetalar androphagous androphobia androphonomania androseme androsin androsphinx androsterone androtauric andrus andy ane anear anecdotage anecdotal anecdote anecdotes anecdotic anecdotical anecdotically anecdotist anechoic anele anelectrode anelectrotonus anelytrous anematosis anemia anemias anemic anemobiagraph anemochord anemoclastic anemograph anemographic anemographically anemography anemological anemology anemometer anemometric anemometrical anemometrographic anemometrographically anemometry anemonal anemone anemonella anemones anemonin anemonol anemony anemophile anemophilous anemophily anemosis anemotropism anencephalia anencephalic anencephalous anencephaly anend anenergia anenst anent anenterous anepia anepigraphic anepigraphous anepithymia anerethisia aneretic anergic anergy aneroid anes anesis anesthesia anesthesimeter anesthesiologist anesthesiologists anesthesiology anesthesis anesthetic anesthetically anesthetics anesthetist anesthetization anesthetize anesthetizer anesthyl anethum anetiological aneuploid aneuploidy aneuria aneuric aneurilemmic aneurism aneurismally aneurisms aneurysm aneurysmal aneurysmatic anew anezeh anfractuose anfractuosities anfractuosity anfractuousness angaralite angekok angel angela angeldom angeleno angeles angelet angelic angelica angelical angelically angelicalness angelicize angeline angelique angelize angelman angelocracy angelographer angelolater angelologic angelological angelology angelomachy angels angelsachsischen angelus anger angered angereth angering angeronalia angers angetenar angevin angewandte angiasthenia angie angiectasis angiectopia angiemphraxis angild angili angina anginal anginiform anginoid anginous angioasthenia angioataxia angioblastic angiocarditis angiocarp angiocarpian angiocarpous angiocholecystitis angiocholitis angioclast angiocyst angiodiascopy angioelephantiasis angiofibroma angiogenesis angiogenic angiogeny angiogram angiography angiohyalinosis angiohypertonia angiohypotonia angiokinesis angioleucitis angiolipoma angiolith angiological angiology angiolymphitis angiolymphoma angioma angiomalacia angiomas angiomatous angiomegaly angiometer angiomyocardiac angiomyoma angiomyosarcoma angioneurotic angionoma angionosis angioparalytic angioparesis angiopathy angioplany angiopoietic angiorrhagia angiorrhexis angiosclerosis angiosclerotic angioscope angiosis angiospasm angiospastic angiosperm angiospermae angiospermal angiospermic angiospermous angiostegnosis angiostenosis angiosteosis angiostomize angiostomy angiostrophy angiosymphysis angiotasis angiotelectasia angiotensin angiothlipsis angiotome angiotomy angiotonic angiotonin angiotribe angiotripsy angiotrophic angka anglais angle angled anglepod angler angles anglesite anglesmith angletouch angletwitch anglewing angleworm angleworms anglian anglic anglicanism anglicanize anglicanum anglicised anglicism anglicist anglicization anglicize anglicized anglification anglify anglimaniac angling anglish anglistics anglo anglogaea anglogaean anglomane anglomaniac anglophobe anglophobiac angoisse angolar angor angora angostura angouleme angoumian angraecum angrier angriest angrily angriness angrite angry angst angster anguid anguidae anguiform anguilla anguillaria anguillidae anguilliform anguilloid anguillulidae anguimorpha anguine anguineous anguis anguish anguished anguishes anguishing anguishous anguishously angula angular angulare angularities angularity angularization angularize angularness angulated angulately angulation angulatosinuous anguli anguliferous anguloa angulodentate angulometer angulous angus angusticlave angustifoliate angustirostrate angustiseptal angustotus angwantibo anhalamine anhaline anhalonine anhalonium anhalouidine anhanga anharmonic anhedonia anhedral anhedron anhelation anhelous anhematosis anhemolytic anheuser anhidrosis anhidrotic anhima anhimidae anhinga anhistic anhungered anhydration anhydremic anhydric anhydride anhydrides anhydridization anhydrization anhydrize anhydroglocose anhydromyelia anhydrous anhydroxime ani anice aniconic anicular anicut anid anidian anidiomatic anidiomatical anidrosis anie aniente anigh anight anights aniglais anilao anilau anile anileness anilide anilidic anilidoxime aniline anilinism anilinophile anility anilopyrine anima animability animableness animadversional animadversive animae animal animalcula animalcular animalcule animalcules animalculine animalculism animalculous animalculum animalia animalian animalised animalish animalising animalism animalist animalistic animality animalivorous animalize animalized animally animals animantibus animastic animastical animate animated animatedly animately animateness animates animating animatingly animation animatism animatistic animative animatograph animator anime animi animikite animism animist animistic animize animosities animosity animotheism animous animus anion anionic anisalcohol anisamide anisandrous anisanilide anisate anischuria anise aniseed aniseikonic aniselike aniseroot anisidine anisil anisilic anisocarpic anisocarpous anisocoria anisocotyly anisocratic anisocycle anisocytosis anisodactyla anisodactyli anisodactylic anisodactylous anisogamete anisogamous anisogamy anisogenous anisogeny anisognathism anisogynous anisole anisoleucocytosis anisomeles anisomelia anisomelus anisomeric anisomerous anisometric anisometrope anisometropia anisometropic anisomyarian anisomyodi anisomyodian anisomyodous anisopetalous anisophyllous anisophylly anisopia anisopleural anisopod anisopoda anisopodal anisoptera anisosepalous anisospore anisostaminous anisostemonous anisosthenic anisostichous anisostomous anisotonic anisotropal anisotrope anisotropic anisotropically anisotropism anisotropous anisotropy anistreplase anisum anisuria anisyl anisylidene anita anither anitrogenous ankara ankaramite ankaratrite ankecher ankee ankerite ankh ankle anklebone anklejack ankles anklet anklets anklong ankoli ankusha ankylenteron ankylocheilia ankylodactylia ankylodontia ankyloglossia ankylomele ankylomerism ankylopodia ankyloproctia ankyloses ankylosis ankylostoma ankylotic ankylotome ankylotomy ankyroid anlace anlaut ann anna annabel annabergite annal annaline annalism annalist annalistic annalize annals annam annamitic annapolis annapurna annas annat annates anne anneal annealed annealer annealing anneaux annectent annees annelid annelida annelidan annelidian annelidous annelism annellata anneloid annerodite anneslia annette annex annexable annexal annexation annexational annexations annexe annexed annexer annexing annexion annexionist annexitis annexment annexure anni annidalin anniellidae annihilable annihilate annihilated annihilates annihilating annihilation annihilationism annihilationist annihilative annihilatory annis annist annite anniversaries anniversarily anniversariness anniversary anniverse anno annodated annointedst annonaceae annos annotate annotated annotater annotates annotating annotation annotations annotative annotator annotatory annotine annotinous announce announceable announced announcement announcements announces announcing annoy annoyance annoyancer annoyances annoyed annoyful annoying annoyingly annoyment annoys annual annualist annualize annually annuals annueler annuent annuities annuity annul annular annularia annularity annularly annulata annulate annulated annulation annulet annulettee annuli annulism annullable annulled annuller annulling annulment annulosa annulosan annulose annuls annulus annum annunciation annunciator annunciatory ano anoa anocarpous anociassociation anococcygeal anodal anode anodendron anoder anodes anodize anodon anodontia anodos anodyne anodynia anodynous anoesis anoestrous anoestrum anoestrus anogenic anogenital anoiher anoil anoint anointed anointing anointment anoints anole anolis anolympiad anolyte anomala anomalies anomaliped anomalist anomalistic anomaloflorous anomalogonatae anomalogonatous anomalon anomalonomy anomalopteryx anomaloscope anomalotrophy anomalous anomalously anomalousness anomalure anomaluridae anomalurus anomaly anomia anomie anomiidae anomite anomocarpous anomodontia anomoeanism anomophyllous anomorhomboid anomphalous anomura anomuran anomy anon anoncillo anonol anonychia anonym anonymity anonymous anonymously anonymousness anonymuncule anoopsia anoperineal anopheline anophthalmia anophyte anopla anoplanthus anoplocephalic anoplonemertean anoplotheriidae anoplotherioid anoplotherium anoplura anopluriform anorak anorchia anorchism anorchous anorchus anorectic anorectous anorexia anorexia/bulimia anorexic anorexics anorexy anorgana anorganic anorganische anorganischen anorganism anorgenischen anormal anormality anorogenic anorth anorthic anorthite anorthitic anorthitite anorthoclase anorthographic anorthographically anorthophyre anorthopia anorthoscope anorthose anorthosite anoscope anosmatic anosmia anosmic anosphrasia anospinal anostosis anostraca anoterite another anotherkins anotia anotropia anotta anotto anounou anous anovesical anoxemic anoxia anoxic anoxidative anoxybiotic anoxyscope anoying ans ansa ansarian ansarie ansation anseis ansel anselmo anserated anseriformes anserinae anserine anserous anspessade ansu ansulate answcr answer answerable answerableness answered answerer answerest answering answeringly answerless answerlessly answers ant anta antacid antacids antacrid antadiform antaean antagonise antagonism antagonisms antagonist antagonistic antagonistical antagonists antagonize antagonizer antagony antaimerina antaios antaiva antal antalgol antalkali antambulacral antanaclasis antanandro antanemic antapex antaphrodisiac antapocha antapodosis antapoplectic antar antara antarchist antarchistical antarchy antarctalia antarctic antarctica antarctical antarctogaea antarctogaean antares antarthritic antasthenic antasthmatic antatrophic ante antea anteact anteal anteambulate anteambulation anteater antebaptismal antebath antebellum antebrachium antebridal antecabinet antecaecal antecardium antecavern antecedaneous antecedaneously antecede antecedence antecedent antecedental antecedently antecedents antecessor antecessors antechamber antechambers antechapel antechinomys antechoir antecolic antecourt antecoxal antecubital antecurvature antedate antedated antedating antedawn antediluvial antediluvially antediluvian antedon antedorsal antefixal anteflected anteflexed anteflexion antefurca antefurcal antefuture antehac antehall antehistoric antehuman antehypophysis anteinitial antejentacular antelabium antelegal antelocation antelope antelopes antelopian anteluminary antemedial antemeridian antemetallic antemetic antemillennial antemortal antemundane antenatal antenatalitial antenave antenna antennae antennal antennaria antennarius antennary antennular antennulary antenodal antenoon anteocular anteoperculum antepagmenta antepagments antepalatal antepaschal antepatriarchal antepectoral antepectus antepenultimate antepileptic antepirrhema anteporch anteportico anteposition anteposthumous anteprandial antepretonic anteprohibition anteprostatic antepyretic antereformation anteresurrection anterethic anterior anteriority anteriorly anteriorness anterodorsal anteroexternal anterofixation anteroflexion anterofrontal anterograde anteroinferior anterointerior anterolateral anteromedian anteroom anterooms anteroposteriorly anteropygal anteroseptal anterospinal anteroventral anteroventrally antes antescript antespring antestature antesternal antesunrise antesuperior antetemple antetype anteva anteversion antevocalic antewar anthecologist anthecology anthela anthelion anthelmintic anthelmintics anthem anthema anthems anthemwise anthemy anther antheraea antheral anthericum antherid antheridia antheridial antheridiophore antheridium antheriform antherless antherozoid antherozoidal antherozoids antherozooid antherozooidal anthesteriac anthesterin anthesterol antheximeter anthicidae anthidium anthinae anthocarpous anthocephalous anthocerotales anthocerote anthochlor anthochlorine anthoclinium anthocyan anthodium anthoecological anthoecologist anthogenetic anthography anthokyan antholite anthological anthologically anthologies anthologion anthologist anthologize anthology anthomyia anthomyiidae anthony anthophagous anthophila anthophile anthophilian anthophilous anthophobia anthophora anthophore anthophoridae anthophorous anthophyllite anthophyllitic anthophyta anthophyte anthorine anthosiderite anthotaxis anthotaxy anthoxanthum anthozoan anthozoic anthozooid anthracene anthraceniferous anthracic anthracin anthracite anthracitic anthracitious anthracitism anthracitization anthracnose anthracnosis anthracocide anthracolithic anthracomarti anthracomartian anthracomartus anthracometer anthracometric anthraconite anthracosaurus anthracothere anthracotheriidae anthracyl anthraflavic anthragallol anthrahydroquinone anthranil anthranilate anthranilic anthranol anthranyl anthrapurpurin anthrapyridine anthraquinol anthraquinone anthraquinonyl anthrarufin anthratetrol anthrathiophene anthratriol anthrax anthraxolite anthraxylon anthrenus anthribid anthribidae anthroic anthrol anthropic anthropidae anthropism anthropobiologist anthropocentrism anthropoclimatology anthropodeoxycholic anthropogenesis anthropogeny anthropogeographical anthropogeography anthropoglot anthropogony anthropography anthropoid anthropoidal anthropoidean anthropoids anthropolater anthropolatric anthropolatry anthropolite anthropolithic anthropological anthropologically anthropologist anthropologists anthropology anthropomantic anthropomantist anthropometric anthropometrical anthropometrist anthropometry anthropomorpha anthropomorphic anthropomorphical anthropomorphidae anthropomorphism anthropomorphist anthropomorphitic anthropomorphization anthropomorphize anthropomorphological anthropomorphologically anthropomorphology anthropomorphosis anthropomorphotheist anthroponomics anthroponomist anthropopathic anthropopathy anthropophagi anthropophagic anthropophagical anthropophaginian anthropophagism anthropophagist anthropophagite anthropophagize anthropophagously anthropophagy anthropophilous anthropophuism anthropophysiography anthropopithecus anthropopsychic anthropopsychism anthroposcopy anthroposociologist anthroposomatology anthroposophical anthroposophist anthroposophy anthropotomist anthropotomy anthropotoxin anthropou anthroxan anthroxanic anthrylene anthurium anthus anthypophora anthypophoretic anti antiabolitionist antiabrasion antiabrin antiabsolutist antiacid antiaditis antiadministration antiae antiaesthetic antiager antiagglutinating antiaggression antiaggressionist antiaircraft antialbumid antialbumin antialbumose antialcoholic antialcoholism antialcoholist antialdoxime antialexin antiallergy antiamboceptor antianaphylactogen antianarchic antianarchist antiangina antianginal antiangular antiannexation antianopheline antianthrax antianthropomorphism antiantibody antiantidote antiantienzyme antiantitoxin antiapoplectic antiapostle antiaquatic antiarcha antiarchi antiarin antiaristocrat antiarrhythmia antiarrhythmics antiarthritic antiasthmatic antiastronomical antiatheism antiatheist antiatonement antiattrition antiautolysin antibacchic antibacterial antibacteriolytic antiballooner antibank antibasilican antibibliolatry antibigotry antibilious antibiont antibiosis antibiotics antiblastic antiblennorrhagic antiblock antiblue antibodies antibody antiboxing antibreakage antibridal antibromic antic anticachectic antical anticalcimine anticalculous anticalligraphic anticapital anticarious anticarnivorous anticaste anticatalyst anticatalyzer anticatarrhal anticathexis anticathode anticaustic anticensorship anticentralization anticephalalgic anticeremonial anticeremonialism antichi antichita antichlor antichlorine antichloristic antichlorotic anticholinergic anticholinergics antichoromanic antichorus antichretic antichrist antichristian antichristianity antichristianly antichronical antichronically antichymosin anticipant anticipatable anticipate anticipated anticipates anticipating anticipation anticipations anticipative anticipatively anticipator anticipatorily anticipatory anticivic anticker anticlassicist anticlea anticlimactic anticlimax anticlinal anticlinals anticline anticlinorium anticlockwise anticlogging anticly anticness anticoagulant anticoagulated anticoagulative anticoagulin anticogitative anticomment anticommunist anticomplementary anticonceptionist anticonductor anticonfederationist anticonscriptive anticonstitutional anticonstitutionalist anticonstitutionally anticontagion anticontagionist anticontagious anticonventional anticonventionalism anticonvulsant anticonvulsive anticor anticorn anticorrosion anticosine anticosmetic anticourtier anticous anticovenanting anticreative anticreator anticreep anticreeper anticrepuscule anticrisis anticritic anticrotalic anticryptic antics anticus anticyclic anticyclone anticyclonic anticytotoxin antidecalogue antideflation antidemocrat antidemocratic antidemocratical antidemoniac antidepressant antidepressants antidepressives antidetonant antidiabetic antidiarrheal antidicomarian antidicomarianite antidictionary antidiffuser antidinic antidiphtheric antidivine antidizziness antidogmatic antidomestic antidominican antidorcas antidoron antidotal antidote antidotes antidotically antidotism antidraft antidrag antidromal antidromic antidromically antidromous antidrug antidumping antidynamic antidynastic antidyscratic antidysuric antiecclesiastic antiecclesiastical antiedemic antieducation antieducational antiejaculation antiemperor antiempirical antiendotoxin antiendowment antienergistic antient antienthusiastic antienzyme antienzymic antiepicenter antiepileptic antiepiscopal antiepiscopist antiestrogen antiestrogenic antietam antiethnic antieugenic antievolution antiexporting antiextreme antiface antifaction antifanatic antifat antifederalism antifederalist antifelony antifeminism antifeminist antifermentative antifeudalism antifibrinolysis antifire antiflattering antiflatulent antiflux antifogmatic antiforeign antiforeignism antifouler antifowl antifreeze antifreezing antifriction antifrictional antifrost antifundamentalist antifungal antifungals antifungin antigalactagogue antigalactic antigambling antiganting antigen antigenic antigenicity antigens antiglaucoma antiglyoxalase antigo antigod antigone antigonococcic antigonon antigonorrheic antigorite antigout antigraft antigrammatical antigravitate antigravitational antigrowth antiguan antiguggler antiguo antihalation antiharmonist antihectic antihelminthic antihemisphere antihemoglobin antihemolysin antihemorrhagic antihemorrheidal antiheroic antiheterolysin antihierarchical antihistamine antihistamines antihormone antihuff antihuman antihunting antihydrophobic antihydropic antihydropin antihygienic antihylist antihyperlipidemics antihypertensive antihypertensives antihypnotic antihypochondriac antihysteric antiinflammatory antikamnia antiketogen antiketogenesis antiketogenic antikickback antikinase antiking antilabor antilaborist antilacrosse antilacrosser antilactase antilapsarian antileague antilegalist antilegomena antilepsis antileptic antilethargic antileveling antilia antiliberal antilibration antilift antilipase antilipoid antilithic antillean antilobium antilocapra antilocapridae antilochus antiloemic antilogic antilogism antilogous antiloimic antilope antilopinae antilottery antiluetin antilynching antilysin antilysis antimacassars antimachinery antimagistratical antimalaria antimalarial antimallein antimaniac antimark antimartyr antimasker antimason antimasonic antimasquer antimasquerade antimaterialist antimaterialistic antimatrimonial antimatrimonialist antimedical antimelancholic antimeningococcic antimensium antimephitic antimere antimerger antimeric antimerina antimerism antimeristem antimetrical antimetropia antimetropic antimiasmatic antimicrobic antimigraine antimilitarism antimilitarist antiministerialist antiminsion antimiscegenation antimission antimissionary antimodern antimonarchial antimonarchic antimonarchically antimonarchicalness antimonarchist antimonate antimoniate antimoniated antimonid antimonite antimonium antimoniuret antimonopolist antimonsoon antimony antimonyl antimoral antimoralist antimosquito antimycotic antimythic antimythical antinarrative antinationalist antinauseants antinegro antinegroism antineologian antineoplastic antinepotic antineuralgic antineuritic antinial antinion antinode antinomian antinomianism antinomical antinomy antinormal antinosarian antioch antiochene antiochian antiodont antiodontalgic antiopelmous antiopium antiopiumist antioptimist antioptionist antiorgastic antiorthodox antioxidant antioxidase antioxygenation antipacifist antipapacy antipapal antipapist antipapistical antiparabema antiparagraphe antiparagraphic antiparalytic antiparalytical antiparasitic antiparastatitis antiparkinsonism antiparliament antiparliamental antiparliamentary antipart antipasch antipascha antipastic antipatharia antipatharian antipathetic antipathetically antipatheticalness antipathic antipathies antipathist antipathize antipathy antipatriarch antipatriarchal antipatriot antipatriotism antipedal antipedobaptist antipeduncular antipepsin antipeptone antiperiodic antiperistalsis antiperistaltic antiperistasis antiperistatically antipersonnel antiperspirant antiperspirants antiperthite antipestilential antipetalous antipharmic antiphase antiphilosophical antiphlogistian antiphlogistic antiphon antiphonal antiphonally antiphoner antiphonetic antiphonic antiphonically antiphonies antiphonon antiphrastic antiphrastical antiphrastically antiphthisic antiphysical antiphysician antiplague antiplanet antiplatelet antipleion antiplenist antiplethoric antipleuritic antipneumococcic antipodagric antipodal antipodean antipodes antipodic antipodism antipodist antipoetic antipoints antipolar antipole antipolemist antipollution antipolo antipolygamy antipolyneuritic antipool antipooling antipope antipopery antipopular antiportable antipragmatic antipragmatist antiprecipitin antipredeterminant antiprelate antiprelatic antipriest antiprimer antipriming antiproductionist antiprohibitionist antiprojectivity antiprophet antiprostaglandin antiprostate antiprostatic antiprotozoal antiproudhoniennes antiprudential antipruritic antipsalmist antipsoric antipsychotic antiputrefaction antiputrefactive antiputrescent antiputrid antipyonin antipyresis antipyretic antipyrine antipyryl antiqua antiquaires antiquarian antiquarianism antiquarianly antiquarians antiquaries antiquarism antiquartan antiquary antiquate antiquated antiquatedness antiquation antique antiqueerians antiqueness antiquer antiques antiquing antiquiorem antiquis antiquist antiquitarian antiquities antiquity antirabic antirabies antiracer antirachitic antirachitically antiradiating antiradiation antirailwayist antirationalistic antirattler antireactive antirealism antirecruiting antired antireflective antireform antireformer antireligion antiremonstrant antirennet antirennin antirent antirenter antirestoration antirevolutionary antirheumatic antiritual antiritualistic antiromance antiromantic antiromanticism antiroyal antirrhinum antirumor antirust antisaloon antisalooner antiscabious antiscale antischool antiscians antiscientific antiscolic antiscorbutic antiscorbutical antiscrofulous antisecretory antiseizure antisemite antisemitic antisemitism antisensuousness antisepalous antisepsin antiseptic antisepticism antisepticist antisepticize antiseptics antiseption antiseptize antiserotonic antishipping antisi antisialagogue antisialic antisiccative antisideric antisilverite antisimoniacal antisine antisiphon antiskid antiskidding antislavery antislip antisnapper antisocialist antisocialistic antisociality antisolar antisophist antisoporific antispace antispadix antispasis antispasmodic antispast antispastic antispermotoxin antispirochetic antisplasher antisplenetic antisplitting antispreader antispreading antisquatting antistadholderian antistalling antistaphylococcic antistate antistatist antisteapsin antisterility antistes antistimulant antistock antistreptococcal antistreptococcin antistrike antistrophal antistrophic antistrophize antistrumatic antisubmarine antisudoral antisuffrage antisupernaturalism antisupernaturalist antisurplician antisyndicalism antisyndicalist antisynod antitabloid antitangent antitartaric antitax antiteetotalism antitegula antitetanic antitetanolysin antitetanus antithalian antitheism antitheist antitheistically antithenar antitheological antithermic antithermin antitheses antithesis antithesism antithet antithetic antithetical antithrombic antithrombin antitobacco antitobacconist antitorpedo antitrade antitraditional antitragus antitrochanter antitropal antitropic antitropical antitropous antitrust antitrypsin antitryptic antituberculin antituberculosis antituberculotic antituberculous antiturnpikeism antitussive antitussives antitwilight antitype antityphoid antitypic antitypical antitypically antityrosinase antiulcer antiunion antiuratic antiurease antiusurious antiutilitarian antivaccinationist antivaccinator antivaccinist antivenefic antivenereal antivenin antivenom antivenomous antivermicular antivibrating antivice antiviral antivirus antivitalist antivitamin antivivisectionist antivolition antiwar antiwedge antiweed antizealot antizymic antizymotic antler antlered antlerless antlers antlid antling antluetic antodontalgic antoeci antoecian antoecians antoine anton antonia antoninianus antonomasia antonomastic antonomastical antonomastically antonomasy antony antonymous antonymy antproof antra antral antralgia antre antrocele antronasal antrophose antrorsely antroscope antroscopy antrostomus antrotome antrotomy antrotympanic antrotympanitis antrum antrustion antrustionship ants antship antwerp anubing anubis anudder anukabiet anuran anuresis anuria anus anutraminosa anvasser anvil anvils anvilsmith anxietas anxieties anxiety anxious anxiously anxiousness any anybody anychia anyday anyhow anymore anyone anyplace anystidae anything anythink anytime anyway anyways anywhar anywhen anywhere anywheres anywhy anywise anywither anzac ao aod aoife aonach aonian aorist aoristically aorta aortal aortectasia aortic aorticorenal aortism aortitis aortography aortomalacia aortopathy aortoptosia aortoptosis aortorrhaphy aortostenosis aortotomy aosmic aotea aotearoa aotus aoudad aouellimiden aoul aovernor apabhramsa apace apachism apachite apadana apagogical apagogically apaid apaistments apalit apama apandry apanteles apanthropia apar aparai aparithmesis apart apartheid apartment apartmental apartments apartness apasote apastron apatais apatetic apathetic apathetical apathic apathism apathistical apathogenic apathy apatite apatosaurus apaturia apayao ape apeak apearance apectomy apedom apehood apeiron apelike apeling apellous apemantus apennine apenteric apepsy aper aperch apercu aperea aperiodic aperiodically aperiodicity aperispermic aperistalsis aperitif aperitive apertly apertness apertometer apertura apertural aperture apertures aperu apery apes apesthesia apesthetic apetalose apetalous apetalousness apetaly apex apexes apgar aphaeresis aphakial aphanapteryx aphanipterous aphanitic aphanitism aphanomyces apharsathacites aphasic aphelandra aphelenchus aphelian aphelinus aphelion apheliotropically aphelops aphemia aphemic aphengescope aphenoscope apheresis apheretic aphesis apheta aphetically aphetize aphicidal aphicide aphid aphides aphidicide aphidicolous aphidid aphididae aphidiinae aphidious aphidius aphidolysin aphidophagous aphidozer aphilanthropy aphis aphlebia aphlogistic aphnology aphodal aphodian aphodus aphonia aphony aphoria aphorism aphorismatic aphorismic aphorismical aphorismos aphorisms aphoristic aphoristically aphototactic aphototaxis aphototropism aphra aphrasia aphrite aphrizite aphrodisiac aphrodisiacal aphrodisian aphrodision aphrodite aphroditeum aphroditic aphrolite aphronia aphrosiderite aphthartodocetic aphthic aphthong aphthongal aphydrotropic aphydrotropism aphyllous aphylly aphyric apiaca apiaceae apiaceous apiales apian apiarist apiarium apiary apiator apicad apical apically apices apician apicifixed apicilar apicillary apickaback apicolysis apicula apicular apiculate apiculated apiculation apiculture apiculus apiece apieces apigenin apii apiin apikoros apilary apina apinage apinch aping apio apioceridae apioid apioidal apiolin apiologist apionol apios apiose apiosoma apiphobia apis apish apishamore apishly apishness apism apitpat apium apivorous aplacentalia aplacentaria aplacophora aplacophoran aplacophorous aplanat aplanatically aplanatism aplanobacter aplanogamete aplanospores aplate aplectrum aplenty aplite aplobasalt aplodontia aplodontiidae aplomb aplopappus aploperistomatous aplostemonous aplotaxene aplotomy apluda aplustre aplysia apneal apneumatic apneumatosis apneumona apneumonous apneustic apoaconitine apoarently apoatropine apobiotic apoblast apobomia apocaffeine apocalypse apocalypst apocalypt apocalyptic apocalyptical apocalypticism apocalyptist apocarp apocarpy apocatastasis apocatastatic apocentric apocha apocholic apochromatism apocinchonine apocleti apocodeine apocopate apocopated apocopation apocope apocopic apocrenic apocrisiary apocrita apocrustic apocryph apocrypha apocryphal apocryphally apocryphalness apocryphate apocynaceae apocynaceous apocyneous apocynum apod apodal apodeipnon apodeixis apodemal apodematal apodeme apodia apodictic apodictical apodictically apodictive apodosis apodous apodyterium apoears apofenchene apogaeic apogamic apogeal apogean apogee apogeic apogeny apogeotropic apogeotropism apogon apogonidae apograph apographal apoharmine apoidea apoise apokrea apokreos apokryphen apolar apolarity apolegamic apolied apolista apollinarian apollo apollonian apolloship apollyon apologal apologete apologetic apologetical apologetically apologetics apologia apologies apologise apologised apologising apologist apologists apologize apologized apologizer apologizes apologizing apologue apology apolousis apolysis apolytikion apomecometer apomecometry apometabolism apometabolous apomixis apomorphia apomorphine aponeurology aponeurosis aponeurotic aponeurotica aponeurotome aponeurotomy aponogeton aponogetonaceae aponogetonaceous apoop apopenptic apopetalous apophantic apophis apophony apophorometer apophthegm apophthegmatist apophthegms apophyge apophylaxis apophyllous apophysary apoplasmodial apoplastogamous apoplectic apoplectical apoplectically apoplectiform apoplectoid apoplexy apopyle apoquinine aporetical aporhyolite aporia aporobranchiata aporocactus aporosa aporose aporphin aporphine aporrhaidae aporrhais aporrhaoid aporrhegma aposaturn aposaturnium aposepalous aposia aposiopesis aposiopetic apositia apositic aposporogony aposporous apostasis apostasy apostate apostates apostatic apostatically apostatise apostatised apostatism apostatize apostatized apostaxis apostemate apostematic apostemation aposthia apostil apostle apostles apostleship apostolate apostolatu apostoless apostoli apostolic apostolical apostolici apostolicism apostolicity apostolize apostoloruiu apostolos apostrophal apostrophation apostrophe apostrophes apostrophic apostrophied apostrophise apostrophises apostrophising apostrophize apostrophized apostrophizes apostrophizing apotactic apotactici apotelesm apotelesmatic apotelesmatical apothecal apothecary apothece apothecial apothecium apothegm apothegmatic apothegmatically apothegmatist apothegmatize apotheose apotheoses apotheosis apotheosized apothesine apotome apotracheal apotropaic apotropaism apotropous apoturmeric apout apoxyomenos apozema apozemical appall appalled appalling appallingly appallment appalls appalment appanage appanagist apparatus apparatuses appareil apparel appareling apparelled apparels apparence apparency apparendy apparent apparently apparition apparitional apparitions apparitor appay appcared appeal appealability appealable appealed appealer appealing appealingly appeals appear appearance appearanced appearances appeared appearer appeareth appearing appears appeasable appeasableness appeasably appease appeased appeasement appeaser appeases appeaseth appeasing appeasingly appeasive appellable appellant appellate appellation appellational appellations appellative appellatived appellatively appellatory appellee append appendage appendaged appendages appendalgia appendant appendectomy appended appendical appendicectasis appendicial appendicious appendicitis appendicle appendicostomy appendicular appendicularia appendiculariidae appendiculata appendiculate appendiculated appending appenditious appendix appendorontgenography appendotome appentice apperance apperceive apperceived apperceptionism apperceptionist apperceptions apperceptive appercipient appersonation appertain appertained appertaineth appertaining appertains appertinent appet appete appetence appetency appetently appetibility appetible appetibleness appetise appetising appetite appetites appetition appetitious appetitive appetize appetizement appetizer appetizing appian appinite appius applanate applaud applaudable applaudably applauded applauder applauding applaudingly applauds applause applauses applausive applausively apple appleberry appleblooms appleby applejack applelike applemonger applenut appleringy apples applesauce appleton appletrees applewoman appliable appliance appliances applicability applicable applicableness applicably applicancy applicant applicants application applications applicators applicatory applied applier applies applieth applique applosive applot applotment apply applyable applying appoggiatura appoint appointe appointed appointedst appointee appointer appointing appointive appointment appointments appointor appoints appomatox apport apportion apportionable apportioned apportioner apportionment apportionments apportions apposability apposable appose apposed apposer apposiopestic apposite appositely appositeness apposition appositional appositionally appositive appositively appositives appraisable appraisal appraise appraised appraisement appraisements appraiser appraisers appraising appraisive appreciable appreciably appreciate appreciated appreciates appreciating appreciatingly appreciation appreciative appreciatively appreciator appreciatorily appreciatory appredicate apprehend apprehended apprehender apprehending apprehendingly apprehends apprehension apprehensions apprehensive apprehensively apprehensiveness apprend apprense apprentice apprenticed apprenticehood apprenticement apprentices apprenticeship apprenticing appressed appressor appressorial appressorium appreteur appris apprise apprised apprize apprized apprizement approach approachability approachable approachableness approached approacher approaches approaching approachment approbate approbation approbative approbativeness approbator approbatory approof appropinquate appropinquity appropriate appropriated appropriately appropriateness appropriates appropriating appropriation appropriations appropriativeness appropriator approvable approvableness approval approvance approve approved approvedbya approvedly approvedness approvement approver approvers approves approving approvingly approximal approximant approximate approximated approximately approximates approximating approximation approximations approximative approximatively approximativeness approximator appulse appulsion appulsive appurtenance appurtenances appurtenant apr apractic apraxic apres apricate aprication aprickle apricot apricots april aprilesque apriline aprilis apriori apriorism apriorist aprioristic aprocta aproctia aproctous apron aproneer apronful apronless aprons apropos aprosexia aprosopia aproterodont aps apse apselaphesis apsidal apsidally apsides apsidiole apsis apsychia apsychical apt apta aptal aptenodytes aptera apteral apteran apterial apterium apteroid apterous apteryges apterygidae apterygogenea apterygota apteryx aptest aptian aptiana aptitude aptitudes aptitudinal aptly aptness aptote aptotic aptyalia aptyalism aptychus apuarent apud apulian apulmonic apulse apurpose apus apyonin apyrene apyretic apyrexial apyrexy apyrotype apyrous aqua aquabelle aquabib aquacade aquacultural aquaculture aquae aquaemanale aquafortis aquagreen aquameter aquaplane aquapuncture aquarelle aquarellist aquaria aquarian aquarid aquarii aquariist aquarium aquarter aquarum aquatic aquatical aquatically aquatile aquatint aquatinta aquatinter aquation aquativeness aquatone aquavalent aqueduct aqueducts aquel aquello aqueoglacial aqueoigneous aqueomercurial aqueous aqueousness aquicolous aquiferous aquifoliaceae aquifoliaceous aquiform aquila aquilawood aquilegia aquilid aquiline aquincubital aquincubitalism aquinist aquintocubital aquintocubitalism aquiparous aquirements aquiver aquocapsulitis aquopentamminecobaltic aquose aquosity aquotization ar ara arab araba arabesque arabesquely arabesquerie arabesques arabia arabic arabica arabice arabicize arabidopsis arability arabinic arabinose arabinosic arabische arabischen arabism arabist arabit arabiyeh arabize arable arabophil araby aracana aracanga aracari araceous arachidonic arachis arachnactis arachne arachnid arachnida arachnidan arachnidial arachnidium arachnites arachnitis arachnoidal arachnoidea arachnoiditis arachnological arachnologist arachnomorphae arachnophagous arachnopia aradidae arado aragallus aragonese aragonite araguato arahat arain arains arakawaite aralia araliad aralie araliophyllum aralkyl aralkylated aramaean aramaic aramaicize aramaism aramidae aramina araminta aramis aramitess aranea araneid araneida araneidan araneiform araneiformes araneiformia aranein araneina araneoidea araneologist araneology araneous arango aranyaka aranzada arapahite araphorostic arapunga arara araracanga ararao ararauna arariba araroba arate arati aration araua araucan araucanian araucano araucaria araucariaceae araucarian araucarias araujia arauna arawa arawak arawakan arawakian arba arbacia arbacin arbalest arbalestre arbalestrier arbalist arbalister arbela arbiter arbiters arbitrable arbitragist arbitral arbitrament arbitrarily arbitrariness arbitrary arbitrate arbitrated arbitration arbitrational arbitrationist arbitrations arbitrator arbitrators arbitratorship arbitrement arbitrer arbitress arbitrium arboloco arbor arboraceous arborary arborator arbore arboreal arboreally arborean arbored arborescence arborescent arborescently arboreta arboretum arborical arboricole arboriculture arboriculturist arboriform arborist arborization arborize arboroid arborous arbors arborvitae arborway arbour arbours arbre arbuscle arbuscule arbusterol arbustum arbutase arbute arbutean arbutes arbutin arbutinase arbutus arc arca arcacea arcade arcaded arcades arcadia arcadian arcadianism arcadic arcady arcana arcanal arcanum arcate arccos arccosine arcella arceuthobium arch archabomination archaecraniate archaeocyathidae archaeocyathus archaeographical archaeography archaeolatry archaeolith archaeolithic archaeoloeical archaeologer archaeologian archaeologic archaeological archaeologically archaeologist archaeologists archaeology archaeopteryx archaeornis archaeostoma archaeostomata archaeostomatous archagitator archaic archaical archaicism archaism archaist archaistic archaize archaizer archangel archangelic archangelica archangelical archangels archangelship archapostle archarchitect archbeacon archbeadle archbishop archbishopess archbishopric archbishopry archbishops archbuffoon archbuilder archchaplain archcharlatan archcheater archchemic archchief archchronicler archcity archconsoler archconspirator archcorrupter archcorsair archcount archcozener archcriminal archcritic archdapifer archdapifership archdeacon archdeaconate archdeaconry archdeaconship archdean archdeanery archdeceiver archdemon archdepredator archdetective archdiocesan archdiocese archdissembler archdisturber archdogmatist archdolt archducal archduchess archduchy archduke arche archeal archearl archebiosis archecclesiastic archecentric arched archegenesis archegone archegonial archegoniata archegoniatae archegoniate archegoniophore archegony archegosaurus archelenis archelogy archelon archenemy archenteric archenteron archeocyte archeologique archeologiques archeology archeozoic archer archeress archerfish archers archership archery arches archespore archesporial archetype archetypic archetypical archetypically archeunuch archeus archeveque archfelon archfiend archfire archflamen archflatterer archfoe archform archfounder archgenethliac archgod archgomeral archgovernor archgunner archheart archheresy archhumbug archhypocrisy archhypocrite archiannelida archiater archibald archibenthal archiblast archiblastoma archiblastula archicantor archicarp archichlamydeous archicleistogamous archicoele archicyte archidamus archidiaceae archidiaconal archidiaconate archididascalos archidium archidome archie archiepiscopacy archiepiscopal archiepiscopate archigastrula archigenesis archigonocyte archigony archikaryon archil archilochian archilowe archimago archimagus archimandrite archimandrites archimedean archimedes archimorula archimperial archimperialism archimperialist archimperialistic archimpressionist archimycetes archinformer arching archipallium archipelagian archipelagic archipelago archipelagoed archipelagoes archipin archiplasm archiplasmic archiplata archipresbyter archipterygial archipterygium archispermae archisphere archistome archisupreme architect architectonic architectonics architectress architects architectural architecturally architecture architecturesque architis architraval architrave architraved architraves architypographer archival archives archivist archivolt archizoic archjockey archking archknave archleveler archlexicographer archliar archlute archly archmachine archmagician archmagirist archmarshal archmediocrity archmessenger archmilitarist archmock archmocker archmockery archmonarchy archmurderer archmystagogue archness archocele archocystosyrinx archon archonship archont archontate archontia archontic archoplasm archoplasmic archoptoma archoptosis archorrhagia archosyrinx archoverseer archpall archpapist archpastor archpatron archphilosopher archphylarch archpiece archpilferer archpillar archplagiarist archplagiary archplayer archpolitician archpontiff archprelate archpresbyter archpresbyterate archpresbytery archpretender archpriesthood archpriestship archprimate archprince archprophet archprototype archpuritan archrascal archreactionary archrobber archruler archsacrificator archsatrap archscoundrel archseducer archsee archshepherd archsnob archspirit archsteward archsynagogue archtempter archthief archtraitor archtreasurer archtreasurership archturncoat archurger archvagabond archvampire archvestryman archvillain archvillainy archvisitor archwag archway archways archwench archworkmaster archy arcidae arcifinious arciform arcing arcking arclength arcocentrum arcograph arcosolia arcsin arcsine arctalia arctalian arctan arctia arctian arctic arcticize arcticward arctiid arctiidae arctium arctocephalus arctogaea arctogaeal arctogaean arctoid arctoidean arctomys arctos arctosis arctostaphylos arcturia arcturus arcual arcuate arcuated arcuately arcubalist arcubalister arcula arcus ard ardassine ardeb ardeidae ardella arden ardency ardennite ardent ardently ardentness ardhamagadhi ardish ardisia ardisiaceae ardor ardors ardour ardours ardri ardu arduinite arduous ardurous are area areal arean arear areas areaway areawide areca arecaidine arecain arecaine arecales arecolidin arecolidine arecolin arecoline arecuna ared areded areek arefact arefaction aregenerative aregeneratory aren aren't arena arenaceous arenae arenaria arenariae arenarious arend arendalite areng arenga arenicola arenicole arenose arenosity arent areocentric areographer areographical areographically areography areola areolar areolate areole areolet areologic areological areologist areology areometer areometric areometry areopagist areopagitic areopagitica areotectonics ares aretaics arete arethusa aretinian arfvedsonite argal argala argali argand argans argante argas argauische argean argemone argemony argenol argent argental argentamid argentamide argentamine argentation argenteous argenter argenteum argentic argenticyanide argentide argentiferous argentina argentine argentinean argentinidae argentinitrate argentinize argentino argention argento argentojarosite argentometric argentometrically argentometry argenton argentoproteinum argentose argentous argentum arghan arghel argicultural argil argillaceous argilliferous argilloarenaceous argillocalcareous argilloid argillomagnesian argillous arginin arginine argininephosphoric argiope argiopoidea argive argo argol argolet argolian argolic argonaut argonauta argonautic argonauts argonne argosies argosy argot argovian arguable argue argued arguer arguers argues argueth argufier argufy arguing argument argumenta argumental argumentation argumentative argumentatively argumentativeness argumentator argumentive arguments argurou argus argusfish argusianus arguslike argute argutely arguteness argyll argynnis argyranthous argyraspides argyria argyrite argyrol argyroneta argyropelecus argyrose argyrosis argyrosomus argyrythrose arhat arhatship arhauaco arhythmic aria arian arianism arianistic arianize arianizer aribine aribus aricine arid arided aridian aridity aridly aridness aries arietation arietid arietinous aright arightly ariidae ariled arillary arillate arillated arillode arillodium arilloid arillus arimaspian arimathaean ariocarpus arioi arion arioso ariot arisaema arise arisen arises ariseth arising arist arista aristarch aristarchian aristarchy aristeas aristida aristides aristocracies aristocracy aristocrat aristocratic aristocratical aristocratically aristocraticism aristocratism aristocrats aristodemocratical aristogenesis aristogenetic aristogenic aristogenics aristol aristolochia aristolochiaceae aristolochiaceous aristolochiales aristology aristomonarchy aristorepublicanism aristotelean aristotelian aristotelis aristotle aristotype aristulate arite arithmetic arithmetical arithmetician arithmeticians arithmetise arithmetization arithmetize arithmocratic arithmogram arithmometer arius arizona arizonan arizonian arizonite ark arkab arkansan arkansas arkegomiaternas arkite arkose arkosic arks arleng arles arline arm armada armadilla armadillidium armadillos armageddon armageddonist armament armamentarium armamentary armaments armata armatoles armature armauer armbone armchair armchaired armchairs armco armed armenian armenic armenoid armer armes armet armful armfuls armgaunt armhole armholes armhoop armida armied armies armiferous armigerous armil armilla armillary armillate armillated arming arminianism armipotent armisonant armistice armless armlets armload armoire armonias armonk armor armored armorer armorial armorican armoried armories armorist armorproof armorwise armory armour armoured armourer armoury armpit armpits armrack arms armscye armstrong armure army arn arna arnaut arnberry arneb arnebia arnee arni arnica arnold arnoseris arnotta arnt arnut aro aroad aroast arock aroduct aroeira aroid aroideous arolla aroma aromacity aromatic aromatically aromatics aromaticus aromatite aromatites aromatization aromatize aromatized aromatizer aromatophore arondissement aroon aroras arosaguntacook arose around arousal arouse aroused arousement arousers arouses arousing aroxyl arpa arpeggiando arpeggio arpeggioed arpen arpent arquerite arquifoux arracach arracacha arrah arraign arraigned arraigner arraignment arraigns arrange arrangeable arranged arrangement arrangements arranger arranges arranging arrant arrantly arras arrased arrasene arrastra arrastre arrau array arrayed arrayer arraying arrear arrears arrect arrector arrectoris arrenotoky arrent arrentable arrentation arrest arrestation arrested arrestee arresting arrestive arrestment arrests arretine arrhenius arrhenotokous arrhenotoky arrhinia arrhizous arrhythmias arrhythmical arrhythmically arrhythmous arrhythmy arriage arriba arride arrie arriere arriet arrimby arris arrisways arrival arrivals arrive arrived arriver arrives arriving arrobe arrogance arrogancy arrogant arrogantly arrogantness arrogate arrogates arrogation arrogative arrojadite arrondissement arrondissements arrope arrosive arrow arrowhead arrowheaded arrowheads arrowleaf arrowless arrowroot arrows arrowsmith arrowstone arrowweed arrowwood arrowy arroyo arroyos arrrangements arry arryish arsacid arsacidan arsanilic arse arsedine arsenal arsenals arsenate arsenation arseneted arsenetted arsenfast arsenferratose arsenhemol arseniate arsenic arsenical arsenicalism arsenicate arsenicism arsenide arseniferous arseniopleite arseniosiderite arsenious arsenism arsenite arseniuret arsenization arsenobenzol arsenoferratin arsenohemol arsenolite arsenophagy arsenophenol arsenophenylglycin arsenopyrite arsenostyracol arsenotungstates arsenoxide arsenyl arses arshin arshine arsine arsinic arsino arsis arsk arsle arsmetrik arsmetrike arsnicker arsoite arsonate arsonation arsonic arsonium arsono arsonvalization arsphenamine arst arsyl arsylene art artaba artabe artal artamus artar artcraft arte artefact artel artemisic artemisium arter arteria arteriagra arterial arterialis arterialization arterialize arterially arteriam arteriarctia arterias arteriasis arteriectasia arteriectasis arteriectopia arteries arterin arterioarctia arteriocapillary arteriodialysis arteriodiastasis arteriofibrosis arteriogenesis arteriograph arteriography arterioles arteriolith arteriomotor arterionecrosis arteriopathy arteriophlebotomy arterioplasty arteriopressor arteriorrhagia arteriorrhaphy arteriorrhexis arteriosa arteriosae arteriosclerosis arteriospasm arteriostenosis arteriostosis arteriostrepsis arteriosympathectomy arteriotome arteriotomy arteriotrepsis arterious arterioversion arterioverter artery artesian artful artfully artfulness artgum artha arthel arthemis arthragra arthralgia arthralgic arthrectomy arthredema arthrempyesis arthresthesia arthritic arthritical arthritis arthrobranch arthrobranchia arthrocarcinoma arthrocele arthrocleisis arthroderm arthrodesis arthrodia arthrodial arthrodic arthrodira arthrodiran arthrodonteae arthrodynia arthrodynic arthroempyema arthroendoscopy arthrogastra arthrogastran arthrogenous arthrography arthrogryposis arthrolite arthrolith arthrolithiasis arthromeningitis arthrometer arthrometry arthroncus arthroneuralgia arthropathy arthrophlogosis arthrophyma arthroplastic arthroplasty arthropleure arthropod arthropodal arthropodan arthropodous arthropomata arthropomatous arthropterous arthropyosis arthrorheumatism arthrorrhagia arthroscopes arthroscopy arthrosia arthrospore arthrosporic arthrosporous arthrosterigma arthrostome arthrostomy arthrosynovitis arthrosyrinx arthrotome arthrotomy arthrotrauma arthrotropic arthrotyphoid arthrous arthroxerosis arthrozoic arthurian arthuriana arti artiad artic artichokes article articled articles articulability articulable articulant articular articulare articularly articulate articulated articulately articulates articulating articulation articulations articulative articulator articulite artie artifact artifactitious artifice artificer artificers artificership artifices artificial artificialities artificiality artificially artificialness artificio artificiose artiller artillerist artillerists artillery artilleryman artillerymen artinite artinskian artiodactyl artiodactyla artiodactyles artiodactylous artiphyllous artis artisan artisans artisanship artist artistdom artiste artistes artistic artistical artistically artistici artistry artists artizan artizans artless artlessly artlessness artlet artlike artocarpad artocarpeous artocarpous artocarpus artolater artophagous artophorion artotype artotypy artotyrite arts artware aru aruba arui aruke arum arumin arundiferous arundinaceous arundinaria arundineous arundines arundo arunta arupa arusa arustle arval arvicole arvicolinae arvicoline arvicolous arviculture arx ary aryan aryanization aryanize aryballus aryepiglottic aryl arylamine arylamino arylate arytenoid arytenoidal arzan arzawa arzun asa asaddle asafetida asahel asak asaph asaphidae asaphus asaprol asaraceae asarite asaron asarotum asarum asbest asbestic asbestinize asbestoid asbestos asbestous asbestus asbolin asbolite ascanian ascanius ascariasis ascaricidal ascaricide ascarid ascaridae ascarides ascaridia ascaridiasis ascaridole ascaron ascend ascendance ascendancy ascendant ascended ascendency ascendent ascender ascendible ascending ascendingly ascends ascension ascensional ascensioni ascensionist ascensions ascent ascents ascertain ascertainableness ascertained ascertainer ascertaining ascertainment ascertainted ascescency ascetic ascetical ascetically asceticism ascetics aschaffite ascham aschistic ascian ascidia ascidiae ascidian ascidicolous ascidiferous ascidiform ascidioid ascidiozoa ascidiozooid ascidium asciferous ascites ascitical ascititious asclent asclepiad asclepiadaceae asclepiadae asclepiadean asclepiadeous asclepian asclepias asclepidin asclepidoid asclepieion ascocarpous ascogone ascogonial ascogonidium ascogonium ascolichen ascolichenes ascoma ascomycetal ascomycete ascomycetes ascomycetous ascon ascones ascophore ascorbic ascospore ascosporic ascothoracica ascribable ascribe ascribed ascribes ascribing ascrihed ascriptin ascription ascriptitii ascriptitious ascry ascula ascupart ascus ascyphous ascyrum asdic asds ase asearch asecretory aseethe aseismatic aseismic aseismicity aseity asellate aselli asellidae aselline asellus asemasia asepsis aseptic asepticism asepticize aseptify aseptolin asexual asexualization asexualize asexually asfetida ash ashake ashame ashamed ashamedly ashamedness ashamnu ashangos ashantee ashanti asharasi ashberry ashcake ashcan ashen asherites ashes ashet asheville ashily ashimmer ashiness aship ashipboard ashir ashkenazic ashkenazim ashkoko ashland ashlar ashlared ashlaring ashleep ashless ashling ashluslay ashmolean ashochimi ashore ashpit ashplant ashraf ashrafi ashram ashtray ashur ashweed ashy asia asianic asiarch asiarchate asiatic asiatical asiatically asiatican asiaticism asiaticization asiaticize asiatize aside asidehand asiderite asides asilid asilidae asilomar asimen asimilar asimina asimmer asinego asinine asinorum asiphonate asiphonogama asitia ask askance askant askari asked askest asketh askew asking askingly askr asks aslant aslantwise asleep aslop aslope aslumber asmack asmile asmoke asmolder asniffle asnort asoak asok asoka asomatophyte asomatous asonant asonia asop asouth asp aspace aspalathus aspalax asparagine asparaginic asparaginous asparagus asparagyl asparkle aspartame aspartate aspartic aspasia aspatia aspect aspectable aspection aspects aspen aspens asper asperate aspergation asperge asperger asperges aspergill aspergillaceae aspergillales aspergillin aspergillosis aspergillus asperifoliae asperifoliate asperite asperities asperity aspermatism aspermia aspermous asperous asperously asperse aspersed asperser aspersion aspersions aspersive aspersively aspersor aspersorium aspersory asperula aspettatto asphalt asphalte asphaltene asphalter asphaltic aspheric aspheterism aspheterize asphodel asphodelaceae asphodeline asphodelus asphyctic asphyctous asphyxia asphyxiate asphyxiation asphyxiative asphyxiator asphyxied asphyxy aspic aspiculate aspidate aspidiaria aspidinol aspidiotus aspidiske aspidistra aspidium aspidobranchia aspidobranchiata aspidoganoidei aspidospermine aspirant aspirants aspirata aspirate aspirated aspirates aspiration aspirations aspire aspired aspires aspirin aspiring aspiringly aspiringness aspirings aspirins asplanchnic asporogenic asporogenous asport asportation asporulate asprawl aspredinidae aspredo asprout asquare asquat asqueal asquint asquirm ass assacu assagai assail assailableness assailant assailants assailed assailer assailing assails assam assamites assapan assapanic assarion assart assary assassin assassinate assassinated assassinating assassination assassinative assassinist assassins assate assation assault assaultable assaulted assaulter assaulting assaults assay assayable assayer assaying assbaa asse assecurator assedation asself assemblage assemblages assemble assembled assembler assembles assemblies assembling assembly assemblyman assemhljes assent assentation assentator assentatorily assented assenting assentingly assentive assentor assents assert asserted asserter asserting assertion assertional assertions assertive assertively assertiveness assertor assertorially assertoric assertorical assertorically assertory assertrix asserts assertum asses assess assessably assessed assessee assessing assession assessionary assessment assessments assessor assessors assessorship asset assets assever asseverate asseverated asseveratingly asseveration asseveratively asshole assi assibilation assidean assident assidual assidually assiduities assiduity assiduous assiduously assiduousness assified assify assign assignable assignably assignat assignation assignations assigned assignee assigneeship assigner assigning assignment assignments assignor assigns assimilability assimilable assimilate assimilated assimilates assimilating assimilation assimilationist assimilative assimilativeness assimilator assimilatory assis assise assish assishness assist assistance assistant assistants assistantship assisted assistency assistenza assistful assisting assistor assists assize assizer assizes asslike assmannshauser assmanship associable associableness associate associated associatedness associates associateship associating association associational associationism associationist associations associativ associative associativeness associators assoication assoilment assoilzie assonance assonanced assonantal assonantic assort assortative assorted assortedness assorter assorting assortive assortment assortments assotted assuade assuage assuaged assuagement assuager assuaging assuasive assubjugate assume assumed assumedly assumes assuming assumingness assumpsit assumption assumptionist assumptions assumptiousness assumptively assurance assurances assure assured assuredly assuredness assurer assures assurgency assurgent assuring assuringly asswage assyria assyrian assyriologist assyriologue assyriology assythment ast astabat astacus astakiwi astalk astare astart astarte astartian astartidae astasia astatic astatically astaticism astatine asteep asteer astely astemizole aster asteraceous asterales astereognosis asteria asterias asteriidae asterikos asterin asterina asterinidae asterioid asterion asterionella asterisk asterisks asterism astern asternata asteroid asteroidal asteroidean asterolepis asterophyllite asterospondylous asteroxylon asterozoa asters asthenic asthenical asthenobiosis asthenobiotic asthenopia asthenopic asthetik asthetische asthma asthmatic asthmatical asthmatically asthmatics asthmogenic asthorin astian astichous astigmat astigmatic astigmatically astigmatism astigmatizer astigmatoscope astigmatoscopy astigmia astigmism astilbe astint astipulate astir astite astomatal astomatous astomous astonied astonish astonished astonishedly astonisher astonishes astonishing astonishingly astonishment astony astoop astoria astound astounded astounding astoundingly astoundment astounds astrachan astraddle astraea astraeid astraeidae astragal astragalar astragali astragalocalcaneal astragalocentral astragalus astrain astrakanite astrakhan astral astrally astrantia astray astre astream astrer astriction astrictive astrictively astride astrier astriferous astringe astringency astringent astringents astringer astroalchemist astroblast astrocaryum astrochemist astrochemistry astrochronological astrocyte astrocytes astrocytoma astrocytomata astrodome astrofel astrogeny astroglia astrognosy astrogony astrograph astrographic astrography astroid astroite astrolabe astrolater astrolatry astrolithology astrologer astrologers astrologian astrologic astrological astrologically astrologous astrology astromancer astromancy astrometeorologist astrometeorology astronaut astronautic astronautics astroniomiques astronomer astronomers astronomersi astronomic astronomical astronomically astronomy astropecten astrophotographic astrophotography astrophotometrical astrophotometry astrophyllite astrophysical astrophysicist astrophyton astroscope astroscopus astroscopy astrospectral astrospectroscopic astrosphere astrut astucious astuciously astucity asturian astute astutely astuteness astylosternus asudden asuncion asunder asuri aswan asway asweat asweep aswell aswim aswirl aswoon asyla asyllabia asyllabic asyllabical asylum asylums asymbiotic asymbolia asymbolic asymbolical asymetric asymmetric asymmetrical asymmetry asymptomatic asymptote asymptotic asymptotical asymptotically asynapsis asynartete asynchronous asynchrony asyndetic asyndetically asynergia asynergy asyngamic asyngamy asyntrophy asystole asystolic asystolism asyzygetic at&t ata atabeg atabrine atacaman atacamenan atacamenian atacameno atacamite ataigal ataiyal atalan atalanta ataman atamasco atangle atap ataraxy atatschite ataunt ataunto atavic atavism atavist atavistic atavistically atavus ataxaphasia ataxia ataxiameter ataxic ataxinomic ataxophemia ataxy atbash atchison ate ateba atechnical atechny ated atelectasis atelectatic ateleological ateles atelets atelier ateliosis atelocardia atelocephalous atelomyelia ateloprosopia atelostomia ately atemporal aten atenism ates atestine ateuchi atfalati athabascan athalamous athamantid athanasia athanasian athanasianist athanor athapascan athar atharvan athe athecae athecata atheism atheist atheistic atheistical atheisticalness atheists atheize athelia athematic athena athenaea athenaeum athenee athenian athenianly athens atheological atheologically atheology atheous athericera athericeran athericerous atherine atherinidae atheriogaea atheris athermancy athermanous athermous atheroma atheromata atheromatous atherosclerosis atherosclerotic atherosperma atherurus athetesis athetize athetosic athetosis athigh athing athiopische athirst athlete athletes athletic athletical athletism athlothetae athlothetai athlothetes athmest athodyd athort athrepsia athreptic athrill athrocytosis athrogenic athrong athrough athwart athwartship athwartwise athymia athymic athymy athyria athyrid athyris athyrium athyroidism athyrosis ati atiger atikokania atilt atimon atinga atingle atinkle atip atka atkins atkinson atlanta atlantic atlantica atlantid atlantis atlantoaxial atlantodidymus atlantomastoid atlantoodontoid atlantosaurus atlas atlaslike atlatl atle atlee atloaxoid atloidean atman atmiatrics atmidalbumin atmidometry atmoclastic atmogenic atmograph atmologic atmological atmologist atmology atmolyze atmolyzer atmometric atmometry atmos atmosphere atmosphereless atmospheres atmospheric atmospherical atmospherically atmospherics atmospherology atmosteal atnah atocia atokal atoke atokous atoll atom atomatic atomechanics atomerg atomic atomical atomically atomician atomicity atomics atomist atomistic atomistically atomistics atomity atomization atomize atomizer atomology atoms atomy atonable atonal atonalism atonalistic atonally atone atoned atonement atonements atoneness atoner atones atonia atonic atoning atoningly atop atophan atopic atopite atopy atorai atossa atour atoxic atoxyl atp atque atrabilarian atrabiliarious atrabiliary atrabilious atracheate atractaspis atragene atramental atramentary atramentous atramentum atraumatic atremata atremble atresia atresic atresy atretic atria atrial atrichia atrichous atrickle atridean atrienses atriensis atrioporal atriopore atriplex atrium atrocha atrochal atrochous atrocious atrociousness atrocities atrocity atrolactic atropaceous atropal atropamine atrophia atrophiated atrophic atrophied atrophoderma atrophy atropia atropidae atropine atropinism atropism atropous atrorubent atrosanguineous atrous atry atrypa atta attacapan attach attachable attache attached attacher attaches attacheship attaching attachment attachments attack attackable attacked attacker attacking attacks attacolite attacus attagen attaghan attain attainability attainable attainder attained attainer attaineth attaining attainment attainments attains attaint attainted attalea attaleh attalid attar attargul attask attemper attemperance attemperately attemperation attemperator attempers attempt attemptability attemptable attempted attempter attempting attempts attend attendance attendances attendancy attendant attendantly attendants attended attender attendeth attending attendment attendono attendress attends attent attention attentional attentions attentive attentively attentiveness attently attents attenuant attenuate attenuated attenuating attenuative attenuator atter attercrop attern attest attestation attestations attestative attested attester attesting attests attic attica atticism atticist atticomastoid attics attid attidae attinge attingence attingency attire attired attirement attirer attiring attische attischen attitude attitudes attitudinal attitudinarian attitudinizing attn attorn attorney attorneydom attorneys attorneyship attornies attornment attract attractability attractableness attractant attracted attracter attracting attractingly attraction attractions attractive attractively attractiveness attractivity attractor attracts attrahent attrap attributable attribute attributed attributes attributing attribution attributions attributive attrited attriteness attrition attritive attritus attuale attune attuned attunely atumble atune atween atwirl atwist atwitch atwitter atwo atwood atypical atypically atypy auantic aubade aubepine auberge aubrey aubrietia aubrite auburn auca aucan aucaner auch auchenia auchenium auckland aucta auction auctionary auctioned auctioneer auctioneering auctions auctorial aud audacious audaciously audaciousness audacity audaean audibertia audible audibleness audibly audience audiences audiencier audient audio audiogram audiologist audiology audiometric audion audiophile audiovisual audiphone audire audit audite audited auditing audition auditive auditor auditoria auditorial auditorially auditorily auditorium auditors auditorship auditory auditress audits auditual audiviser audubon audubonistic auerbach aueto auf auge augean augelite auger augerer aught aughter augite augitic augment augmentation augmentationer augmentations augmentative augmentatively augmented augmentedly augmenting augments augumented augur augurate augured augurial auguries augurous augurs augury august augusta augustal augustan augustinian augustinism augustly augustness augustus auhuhu auk auklet aulacocarpous aulacomniaceae aulacomnium aulae aularian auld auletai auletic auletrides auletris aulicism auloi aulos aulostoma aulostomatidae aulostomid aulostomidae aulostomus aulu aum aumaga aumil aumoire aumrie auncel auncient aune aunique aunjetitz aunt aunthood auntie auntlike aunts auntsary auntship aunty aupaka aura aurae aural aurally auramine auranofin aurantiaceae aurantiaceous aurantium aurar auratus aureate aureately aureateness aureation aureity aurelia aurelian aurelius aureola aureole aureoled aureoles aureous aureously auresca aureum aureus auribromide aurichloride auricle auricled auricles auricomous auricula auriculae auricular auriculare auricularia auricularian auricularis auricularly auriculas auriculate auriculated auriculidae auriculoparietal auriculotemporal auriculoventricular auricyanhydric auricyanide auride auriferae auriferous aurific aurification aurify aurigal aurigerous aurignacian aurilave aurin aurinasal auriphrygia auriphrygiate auripuncture aurir auriscalp auriscalpia auriscopy aurist aurite auritus aurivorous auroauric aurobromide aurochloride aurochs aurophobia aurophore auroque aurora aurorae auroral aurore aurorian aurorium aurotellurite aurothioglucose aurothiosulphate aurous aurrescu aurulent aurum aurure auryl aus auschwitz auscult auscultascope auscultate auscultation auscultator auscultoscope ausgewahlte auslaute auspicate auspice auspices auspicial auspicious auspiciously auspiciousness auspicuous auspicy aussi aussie aussprechen austafrican austenitic austere austerely austereness austerities austerity austerlitz austin australasian australene australia australian australianism australianize australite australoid australopithecinae australopithecine australopithecus australorp austrasian austria austrian austrium austroasiatic austrophil austrophile austroriparian ausu aut auta autacoid autallotriomorphic autarch autarchic autarchy autarkic autarkist autarky auteciously auteciousness autecism autecologic autecological autecologically autecologist autecology autecy autem auter authentic authentical authentically authenticalness authenticate authenticated authentication authenticator authenticity authenticly authenticness authigenetic author authored authoress authorhood authoriries authorise authorised authorish authorising authorism authoritarian authoritative authoritatively authoritativeness authorities authority authorization authorize authorized authorizes authorizing authorless authorling authorly authors authorship authorzing authotype autism autistic auto autoabstract autoactivation autoactive autoaddress autoagglutinating autoagglutinin autoalkylation autoallogamous autoallogamy autoantibodies autoantibody autoanticomplement autoasphyxiation autoassimilation autobahn autobasidia autobasidiomycetes autobasidiomycetous autobasisii autobigraphy autobiographal autobiographical autobiographically autobiographies autobiographist autobiography autobiology autoblast autoboat autoboating autobolide autocab autocade autocamp autocamper autocamping autocarist autocarpian autocarpic autocatalepsy autocatalysis autocatalytic autocatalytically autocatalyze autocatheterism autocephality autocephalous autoceptive autochemical autocholecystectomy autochromy autochthon autochthonic autochthonous autochthonously autocinesis autoclasis autoclastic autoclave autoclaving autocoenobium autocoid autocollimate autocolony autocombustible autocombustion autocomplexes autocondensation autoconduction autocopist autocorrelate autocracy autocrat autocratic autocrator autocratoric autocratorical autocratship autocremation autocystoplasty autocytolysis autocytolytic autodepolymerization autodermic autodestruction autodetector autodiagnosis autodidact autodidactic autodiffusion autodigestive autodrainage autodrome autodynamic autodyne autoecic autoecious autoeciously autoecism autoecous autoecy autoeducative autoelectrolytic autoelectronic autoepigraph autoepilation autoerotic autoerotically autoeroticism autoexcitation autofecundation autofermentation autofnous autofrettage autogamic autogamous autogamy autogauge autogeneal autogenetically autogenic autogenous autogenously autognosis autognostic autografting autograph autographed autographer autographic autographically autographism autographist autographs autography autoharp autoheader autohemic autohemolysin autohemolytic autohemotherapy autoheterosis autohexaploid autohybridization autohypnotic autoignition autoimmunity autoimmunization autoinduction autoinductive autoinhibited autoinoculable autoinoculation autointoxicant autoirrigation autoist autojigger autokinetic autokrator autolaryngoscope autolater autolatry autolesion autolimnetic autolith autoloading autological autologist autologous autology autoluminescence autolysin autolysis autolytic autolyzate autolyze automa automacy automata automate automatic automatically automaticity automatin automatist automatize automaton automatons automelon autometamorphosis autometric autometry automobile automobiles automobilism automobilist automolite automonstration automorph automorphic automorphically automorphism automotive automotor automower automysophobia autonegation autonephrectomy autoneurotoxin autonitridation autonomasia autonomasy autonomic autonomical autonomically autonomist autonomous autonomously autonomy autonym autopathy autopelagic autophagia autophagous autophagy autophobia autophoby autophon autophone autophonoscope autophony autophotograph autophotometry autophthalmoscope autophyllogeny autophyte autophytic autophytograph autophytography autopilot autoplagiarism autoplasmotherapy autoplast autoplastic autoplasty autopoisonous autopolar autopore autoportrait autoportraiture autopositive autopotent autoprogressive autoproteolysis autoprothesis autopsies autopsy autopsychic autopsychoanalysis autopsychology autopsychorhythmia autoptic autoptical autopticity autoracemization autoradiograph autoradiographic autoradiography autoreduction autoregenerator autoreinfusion autorite autorotation autorrhaphy autos autosauri autosauria autoschediasm autoschediastical autoschediaze autoscope autoscopic autoscopy autosender autosensitization autosensitized autosepticemia autoserotherapy autosexing autosight autosign autositic autoskeleton autosled autoslip autosomatognostic autosoteric autosporic autospray autostage autostarter autostethoscope autostylic autostylism autosuggestibility autosuggestionist autosuggestive autosuppression autosymbiontic autosymbolic autosymbolical autotelegraph autotetraploid autothaumaturgist autotheater autotheism autotheist autotherapy autothermy autotomic autotomize autotomous autotomy autotoxaemia autotoxicosis autotoxin autotoxis autotractor autotransformer autotransfusion autotransplantation autotriploid autotriploidy autotroph autotrophic autotrophy autotropically autotropism autotruck autoturning autotypography autour autovaccination autovalet autovalve autovivisection autoxeny autoxidation autoxidator autoxidizability autozooid autumn autumnal autumnalis autumnally autumnian autunite auunster auuremberg aux auxanogram auxanometer auxesis auxetic auxetical auxetically auxiliar auxiliaries auxiliarly auxiliary auxiliate auxiliation auxiliator auxiliatory auxilium auximone auxin auxinic auxinically auxoaction auxocardia auxochrome auxochromic auxochromism auxochromous auxocyte auxoflore auxofluor auxograph auxographic auxohormone auxology auxometer auxospore auxotonic auxotox ava avadana avadavat avahi avail availability available availableness availed availeth availing avails avait avalanche avalanches avalent avalvular avania avanious avant avanti avaradrano avaremotemo avarian avarice avaricious avariciously avarish avars avatars avaunt ave avec avellane avellaneous avelonge aveloz aven avena avenaceous avenage avenalin avendo avener avenge avenged avengeful avengement avenger avenging avenin avenous avens aventail avenue avenues aver avera average averaged averagely averager averages averaging averil averin averment avernal averrable averral averred averrhoa averring averroist averroistic averruncate aversant averse aversely averseness aversion aversions aversive avert avertable averted averter averters avertible avertin averting avertissement avertive averts avery averyt avesta avestan avianization avianize aviaries aviarist aviary aviate aviatic aviation aviator aviatorial aviatoriality aviatress aviatrices aviatrix avicennia avicennism avichi avicide avick avicular avicularia avicularimorphae aviculturist avid avidious avidiously avidity avidly avifauna avifaunal avigation avignonese avijja avikom avine aviolite avionic avirulence avirulent avis aviso avital avitaminosis avitaminotic avitic aviv avizandum avo avocate avocation avocations avocatory avocats avocet avodire avogadrite avoid avoidance avoided avoider avoiding avoidless avoids avoir avoirdupois avolate avolation avon avondbloem avons avouch avouchable avouched avoucher avouchment avoue avoueries avourneen avow avowableness avowably avowal avowals avowance avowed avowedly avowedness avowing avowry avows avoyership avshar avulse avulsion avuncular avunculate avvocato aw awa awabakal awabi awag await awaited awaiter awaiteth awaiting awaits awake awaked awaken awakenable awakened awakening awakenings awakenment awakens awakes awaketh awaking awald awalim awan awane awanting awapuhi award awarded awarder awarding awardment awards aware awaredom awareness awaricious awaruite awash awaste awatch awate awater awave away awd awe awearied aweary aweband awed awedness awee aweigh awes awesome awesomely awesomeness awest awestricken awestruck aweto awful awfull awfullest awfully awfulness awheel awheft awhet awhile awhirl awiggle awikiwiki awin awing awiwi awkward awkwardest awkwardish awkwardly awkwardness awkwardnesses awl awld awless awlessness awlwort awmous awned awner awning awnings awnless awnlike awnt awny awoke awoken awork awreck awrong awry awshar axbreaker axe axed axenic axes axfetch axhammered axial axiality axially axiation axifera axifugal axil axile axilemma axilemmata axilla axillae axillar axillaris axillary axine axing axinite axiological axiologist axiom axioms axion axis axised axisymmetric axite axle axled axles axlesmith axletrees axmaking axman axmanship axmen axminster axodendrite axogamy axoid axolemma axolotl axolysis axoneure axoneuron axonia axonolipa axonolipous axonometric axonometry axonophorous axonopus axonost axopetal axophyte axoplasm axopodia axospermous axstone axtree axunge axweed axwise axwort ay ayah ayahuca aye ayegreen ayenbite ayers ayes ayez ayin aylesbury ayless aymara aymaran aymoro ayond ayont ayous ayrshire ayu az azadrachta azafrin azalea azaleas azande azarcon azatadine azathioprine azelaic azelate azeotropism azeotropy azerbaijanese azerbaijani azew azide aziethane azilian azilut azimide azimido azimino aziminobenzene azimuthal azine azobenzene azobenzoic azoch azocochineal azocoralline azocyanide azodisulphonic azoeosin azofier azoflavine azoformamide azoformic azofy azogallein azogrenadine azohumic azoic azoimide azoisobutyronitrile azole azolitmin azolla azon azonal azonaphthalene azonic azoospermia azoparaffin azophen azophenetole azophenol azophenyl azophenylene azophosphin azophosphore azorian azorubine azote azoted azotenesis azotetrazole azoth azothionium azotic azotine azotite azotize azotobacter azotobacterieae azotoluene azotous azoturia azovernine azox azoxazole azoxime azoxine azoxonium azoxy azoxyanisole azoxybenzene azoxybenzoic azoxynaphthalene azoxyphenetole azoxytoluidine azt aztec azteca azulene azulite azumbre azure azurean azured azureous azurine azurous azygobranchia azygobranchiata azygobranchiate azygomatous azygos azygosperm azygospore azygous azyme azymite azymous azzin b's b/yagamata baa baahling baaing baal baalish baalism baalist baalitical baalize baalshem baar bab baba babacoote babai babasco babaylan babbie babbing babbitt babbitter babbittess babbittism babble babbled babblement babbler babblers babbles babbling babblingly babcock babe babehood babel babeldom babelic babelike babelism babelize babery babes babeship babesia babi babiana babiche babied babies babiism babillard babine babingtonite babirusa babish babishness bablah babloh babongo baboodom babooism baboon baboonery baboonroot baboons baboot babouvist babroot babu babua babudom babuina babuism babul babushka baby babydom babyfied babyhood babyhouse babyish babyishly babyism babylonian babylonic babylonish babylonism babyolatry babyship babysit babysitters babysitting bacaba bacach bacao bacbakiri bacca baccalaurean baccalaureate baccara baccarat baccate baccated bacchanal bacchanalia bacchanalian bacchanalianism bacchanalianly bacchanalization bacchanalize bacchant bacchante bacchantes bacchantic bacchar baccharis baccharoid bacchiac bacchic bacchical bacchii bacchuslike baccivorous baccy bach bacharach bache bachel bachelder bachelers bachelor bachelordom bachelorhood bachelorize bachelorlike bachelorly bachelors bachelorship bachelry bachia bachichi bacillaceae bacillar bacillariaceae bacillariaceous bacillarieae bacillariophyta bacillary bacilli bacillian bacillicidal bacillicide bacilliculture bacillifer bacilliform bacilligenic bacilliparous bacillite bacillogenic bacillogenous bacillophobia bacillosis bacillus bacis back backache backaches backachy backband backbearing backbite backbiting backblow backboard backbone backboned backbonelessness backbones backbrand backbreaker backbreaking backcast backchain backcross backdoor backdown backdrop backed backen backer backers backfall backfatter backfill backfiller backfilling backfire backfired backfiring backfold backfriend backfurrow backgammon background backgrounds backhand backhanded backhandedly backhander backhatch backheel backhoe backhooker backhouse backiebird backing backjaw backlash backlashing backlog backlotter backmost backpedal backpiece backplane backplate backrest backrope backrush backs backscatter backscraper backset backshift backside backsight backslapper backslapping backslidden backslide backslider backsliding backslidingness backslidings backspace backspacer backspier backspierer backspin backspread backstairs backstamp backster backstick backstitch backstitched backstrap backstretch backstring backstrip backstroke backstromite backswept backswing backsword backswording backswordman backswordsman backtender backtenter backtrack backtracker backtrick backup backveld backvelder backward backwardation backwardly backwardness backwards backwash backwasher backwashing backwater backwatered backwaters backway backwoods backwoodsiness backwoodsman backwoodsmen backword backworm backwort backyard backyarder bacon baconian baconist baconize baconweed bacony bacopa bacteria bacteriaceae bacterial bacterially bacterian bacteric bactericholia bactericidal bactericide bacterid bacteriemia bacteriform bacterin bacteriocyte bacteriofluorescin bacteriogenic bacterioid bacterioidal bacteriologic bacteriological bacteriologist bacteriology bacteriolysin bacteriolysis bacteriolytic bacteriolyze bacteriophage bacteriophagia bacteriophagic bacteriophagous bacteriophagy bacteriophobia bacterioprecipitin bacterioprotein bacteriopsonic bacteriopurpurin bacterioscopical bacterioscopist bacteriosis bacteriosolvent bacteriostasis bacteriostatic bacteriotherapeutic bacteriotherapy bacteriotoxic bacteriotoxin bacteriotropin bacteriotrypsin bacterious bacteritic bacterium bacterize bacteroidal bacteroideae bacteroides bactris bactrites bactriticone bactritoid bacula bacule baculi baculiferous baculiform baculine baculite baculites baculitic baculiticone baculoid baculus bad badaga badan badarrah badawi baddeleyite baddish baddishly baddishness baddock badds bade baden badenite badest badge badgeless badgeman badger badgerbrush badgered badgerer badgering badgeringly badgerlike badgerly badgers badges badiaga badian badinage badious badlands badly badness badnesses badon baduhenna bae baedeker baeria baetuli baetulus baetylus bafaro baff baffeta baffin baffle baffled baffler baffles baffling bafflingly baft bafyot bag baga baganda bagasse bagatine bagattini bagaudae bagdad bagdi bagel bagels bagful baggage baggagemaster baggagemen baggager baggages bagganet baggara bagged baggie baggified baggily bagginess bagging baggit baggy bagheli baginda bagirmi bagleaves bagley bagmaker bagmaking bagman bagnio bagnut bago bagobo bagonet bagpipe bagpipes bagplant bagrationite bagreef bagroom bags baguette bagworm bah bahai bahaism bahama bahan bahaullah bahawder bahera bahgin bahima bahisti bahnung baho bahoo bahrein baht bahuma bahur bahutu bahuvrihi baianism baidya baiera baignes baignet baignoire baikalite baikerite baikie bail bailable bailage bailed bailee bailer bailey baileys bailie bailiery bailieship bailiff bailiffs bailiffship bailifs bailing bailiwick bailli bailliage bailment bailor bailpiece bailsman bailwood baily bain bainie baining bainite baiocchi baiocco bairagi bairam baird bairl bairn bairnish bairnishness bairnly bairns bairnwort bais baisais baiser baister bait baited baiting baits baitylos baize bajada bajan bajardo bajau bajra bajree baka bakal bakalai bake bakeboard baked bakehouse bakelize baken baker bakerdom bakeress bakerite bakerless bakers bakersfield bakery bakes bakeshops bakestone bakhtiari baking baklava bakongo bakshaish baksheesh bakshish baktun baku bakuba bakula bakunda bakutu bakwiri bal balaam balaamite balachong balaena balaenid balaenidae balaenoid balaenoidea balaenoidean balaenoptera balaenopteridae balafo balagan balaghat balai balaic balak balaklava balan balance balanced balancedness balancelle balanceman balancement balancer balancers balances balancewise balancing balandra balandrana balangay balanic balanid balaniferous balanism balanite balanites balanitis balanoblennorrhea balanocele balanoglossida balanoglossus balanophore balanoplasty balanopreputial balanopsidaceae balanopsidales balante balantidial balantidiasis balanus balarama balas balatong balausta balaustine balaustre balawa balawu balbriggan balbutient balbuties balconied balconies balcony bald baldachin baldachini baldberry baldcrown balderdash baldest baldheaded baldheads baldicoot baldish baldly baldness baldpate baldrib baldric baldricked baldricwise baldy bale balearian baled baleen balefire baleful balefully balei baleise baleless bales balete balfour bali balibago baliff baline balinese balinger balinghasay balisaur balistarius balistid balistidae balistraria balita balk balkanic balkanize balkar balked balker balking balkingly balkis balks balky ball ballad ballade balladeer ballader balladeroyal balladic balladical balladier balladism balladist balladmonger balladmongering balladry ballads balladwise ballam ballan ballant ballantine ballast ballastage ballaster ballasting ballata ballate ballatoon balldom balled baller balles ballet ballets ballfield ballhausplatz ballista ballistae ballistic ballistically ballistician ballistocardiograph ballmine ballonet balloon balloonation ballooner balloonery balloonet balloonflower balloonful ballooning balloonish balloonist balloonists balloonlike balloons ballot ballota ballotade balloter balloting ballpark ballplatz ballplayer ballproof ballroom balls ballstock ballweed bally ballyhack ballyhoo ballyhooer ballyragging ballywack ballywrack balm balmacaan balmily balminess balmony balms balmy balneal balneary balneation balneatory balneography balneological balneologist balneology balneotherapia balneotherapy balnibarbi baloghia baloney baloo balopticon baloskion baloskionaceae balow bals balsa balsam balsamation balsameaceae balsameaceous balsamic balsamical balsamically balsamiferous balsamina balsaminaceous balsamine balsamitic balsamize balsamodendron balsamorrhiza balsamroot balsams balsamum balsamweed balsamy balt balter balti baltimore baltimorean baltimorite baltis baltischen balu baluba baluchi baluchistan baluchithere baluchitherium balus balushai baluster balusters balustrade balustraded balustrades balustrading balwarra balzac balzacian balzarine bam bamako bamangwato bamban bambara bambini bambino bambocciade bamboo bamboos bamboozle bamboozled bamboozler bambos bambuba bambuseae bambute bamoth ban banaba banago banak banakite banal banalities banality banally banana bananas banande bananivorous banat banate banatite banausic banba banbury banc banca bancal banchi banco band banda bandage bandaged bandager bandages bandaging bandagings bandaite bandaka bandala bandalore bandana bandanna bandannaed bandarlog bandbox bandboxes bandboxical bandboxy bandcutter bande bandeau banded bandelet bander banderma bandgap bandhor bandhu bandi bandicoot bandie bandied banding bandit banditism banditry bandits banditti bandle bandless bandlessly bandlet bandmaster bandog bandoleer bandoleered bandoliers bandoline bandon bandonion bandor bandore bandpass bands bandstand bandstop bandstring bandusian bandwagon bandwidth bandy bandyball bandying bandyman bane baneful banefully banefulness banff bang banga bangalay bangalore bangalow bangash bangboard banged banghy bangia bangiales banging bangle bangled bangles bangling bangor bangs bangster banian banig banilad banish banished banisher banishes banishing banishment banister banisters baniwa baniya banjo banjoes banjoist banjore banjorine banjos banjuke bank bankbill bankbook banked banker bankera bankerdom bankeress bankers banket bankfull banking bankman banknote banknotes bankroll bankrupt bankruptcies bankruptcy bankrupted bankruptism bankruptlike bankrupture banks bankshall banksia banksian banksman bankweed banky banlieue banned banner bannerer bannerfish bannerless bannerman bannerol banners bannerwise bannock banns bannut banovina banquet banqueted banqueteer banqueteering banqueter banqueting banquets banquette banquettes bansalague banshee banstickle bant bantam bantamize bantay bantayan banteng banter bantered banterer bantering banteringly bantery bantingism bantingize bantling bantoid bantu bantus banty banuyo banxring banya banyai banyoro banyuls banzai baobab bap baphomet baphometic baptise baptisia baptisin baptism baptismal baptismally baptisms baptist baptistic baptistry baptize baptized baptizee baptizement baptizer baptizing bar bara barabara barabora barabra baraca barad baragouin baragouinish barajillo baralipton baramika barandos barasingha barathea barathra barauna barb barbacoa barbacou barbae barbal barbaloin barbaralalia barbaresque barbarian barbarians barbaric barbarical barbarious barbariousness barbarism barbarisms barbarities barbarity barbarization barbarize barbarized barbarous barbarously barbarousness barbary barbas barbasco barbastel barbate barbated barbatimao barbe barbecue barbed barbel barbellulate barber barbered barberfish barbering barberish barberry barbers barbershop barbette barbican barbigerous barbion barbital barbiton barbitone barbiturate barbiturates barbituric barbless barbone barbotine barbs barbudo barbulate barbule barbulyie barcan barcarole barcelona barclay barcoo bard bardane bardash bardcraft barded bardel bardic bardie bardiglio bardily bardiness bardish bardlet bardlike bardo bardolater bardolph bards bardship bare bareback barebacked bareca bared barefaced barefacedly barefacedness barefoot barefooted barehanded barehead bareheaded bareheadedness barelegged barely barenecked bareness barer bares baresark barest baretta barff barfish barfly bargain bargained bargainer bargaining bargainings bargains bargainwise bargander barge bargeboard bargeboards bargee bargeer bargeese bargehouse bargelike bargeman barger barges barghest bargoose baric barid barie barile baring bariole baris barish barit barite baritone barium bark barkbound barkcutter barked barkeeper barkeepers barken barkevikite barkevikitic barkey barkhan barking barkingly barkings barkinji barkle barkled barkless barklyite barkpeel barkpeeler barks barksome barky barlafumble barlafummil barley barleybird barleycorn barleyhood barleymeal barleysick barling barlock barm barmaid barmaidens barmaids barman barmaster barmcloth barmecidal barmecide barmkin barmote barmskin barmy barmybrained barn barnabite barnacle barnacles barnard barnbrack barndoors barnes barney barnful barnhard barnhardtite barnlike barnman barns barnstormer barnstorming barnumism barnyard barnyards baroco barodynamic barodynamics barogram barograph barographic barolo barology barolong barometer barometers barometric barometrical barometrograph barometrography barometz baron baronage baroness baronet baronetage baronetcies baronetcy baronethood baronets baronetship baronga baronial baronies baronight baronne baronry barons baronship barony baroscope baroscopical barosma barosmin barotactic barothermograph barothermohygrograph baroto barotrauma barouche barouches barouchet barouni baroxyton barpost barquantine barque barques barrabkie barrable barracan barrack barracks barracoon barracouta barrad barragan barrage barrages barramunda barrandite barras barrator barratrous barratrously barratry barre barred barrel barrelage barreled barreler barrelet barrelful barrelhead barreling barrelled barrelling barrelmaking barrels barrelwise barren barrenest barrenly barrenness barrenwort barret barrets barrett barrette barricade barricaded barricades barricading barricado barrico barrier barriers barriguda barrigudo barring barringtonia barrio barrister barristers barristership barristress barroccio barroom barrow barrowful barrowing barrowman barrows barrulee barrulet barrulety barruly barrymore bars barse barsom barstow bart bartender bartenders bartending barter bartered bartering barters barth bartholinitis bartholomewtide bartizan bartizaned bartlemy barton bartonella bartramia bartramiaceae baruch barundi baruria barvel barwal barway barways barwood baryaks baryaktar barycenter barycentric barye baryecoia barylalia barylite baryphonic baryphony barysilite barysphere baryta barytes barythymia barytic barytine barytocelestine barytocelestite baryton barytone barytophyllite barytosulphate bas basal basale basalia basally basalt basaltic basaltiform basaltine basalts base baseball baseballdom baseband baseborn based basehearted baseheartedness basel baselard baseless baselessly baselessness baselike baseline baseliner basellaceae basellaceous basely baseman basement basements basementward baseness baseplate basepoint baser baserunning bases basest bash basha bashaw bashawdom bashawism bashawship bashful bashfully bashfulness bashilange bashkir bashmuric basi basial basialveolar basiarachnitis basiation basibracteolate basibranchial basibranchiate basibregmatic basic basically basichromatic basichromatin basichromiole basicity basicranial basics basicytoparaplastin basidia basidial basidigitale basidiogenetic basidiolichen basidiolichenes basidiomycete basidiomycetes basidiomycetous basidiophore basidium basidorsal basification basifier basify basigamous basiglandular basigynium basihyal basihyoid basil basilar basilarchia basilary basilemma basilian basilic basilica basilicae basilical basilican basilicas basilicon basilinna basiliscus basilisk basilissa basilosauridae basilweed basilysis basilyst basin basined basing basins basioccipital basiophthalmite basiophthalmous basiotribe basiparaplastin basipetal basiphobia basipoditic basipterygium basiradial basirhinal basirostral basis basiscopic basisphenoidal basitemporal basiventral basivertebral bask basked basker baskerville basket basketful basketing basketmaker basketmaking basketry baskets basketwoman basketwood basketwork basketworm basking baskish basks basnet basoche basoga basoid basoko basommatophora basommatophorous bason basongo basophile basophilia basophilic basophilous basophobia basote basque basqued basquine bass bassalia bassalian bassan bassando bassanello bassanite bassanus bassara bassarid bassaris bassarisk basses basset bassett bassia bassie bassin bassine bassinet bassist basso bassoon bassoonist bassoons bassorin bassus basswood bastaard bastard bastardization bastardize bastardly bastards bastardy baste basten bastilled bastinade bastinado basting bastion bastioned bastionet bastions bastite bastnasite basto bastrengo bastringue bat bataan batakan bataleur batan batara batata batatas batatilla batavi batch batched batchelder batches bateau bateaux bated batekes bateman batement bates batetela batfish batfowling bath bathala bathe batheable bathed bather bathers bathes bathetic bathflower bathhouse bathing bathman bathmic bathmism bathmotropic bathmotropism bathochromatism bathochrome bathochromic bathoflore batholithic batholitic bathonian bathophobia bathos bathrobe bathroom bathroomed bathrooms bathroot baths bathtub bathtubs bathukolpian bathukolpic bathurst bathwort bathyanesthesia bathybian bathybic bathycentesis bathychrome bathycolpian bathycolpic bathycurrent bathyesthesia bathygraphic bathylite bathylithic bathylitic bathymeter bathymetric bathymetrical bathymetrically bathyorographical bathypelagic bathyplankton bathyseism bathysophic bathysophical bathysphere bathythermograph batidaceae batikulin batikuling bating batino batiste batitinan batlan batlike batling batoidei batoka baton batonga batophobia batrachia batrachian batrachians batrachiate batrachidae batrachoid batrachoididae batrachophagous batrachophobia batrachoplasty batrachospermum bats batsmanship batster batswing battailous battalion battalions batteler battelle batten battened battener batter batterable battercake battered batterfang batteried batteries battering batterman batters battery batting battish battle battled battledoor battledore battlefield battleground battlement battlemented battlements battleplane battler battlers battles battleship battleships battlestead battleward battlewise battling battological battologist battologize battology battue batukite batule batussi batwa batwing batyphone batz batzen bauble baublery baubles baubling baubo bauchle bauckie bauckiebird baudekin bauderike bauer bauera bauhinia baul bauleah baulk baulked baulking baume baumhauerite baun baure bauson bauta bauxite bauxites bauxitite bavaria bavarian bavaroy bavary baviere bavin bavius bavoso bawarchi bawbles bawcock bawd bawdship bawdy bawdyhouse bawl bawled bawler bawley bawling bawls bawn bawra bawtie baxterian baxterianism bay baya bayal bayamo bayard baybush baycuru bayda bayed bayer bayesian bayeta baygall bayhead baying bayings bayish bayldonite baylet baylike baylor bayman bayness bayogoula bayok bayonet bayoneted bayoneteer bayonets bayou bayport bayreuth bays bayside baywood bazaar bazaars baze bazigar bazooka bbe bcdies bcg bclongs bdeas bdellid bdellidae bdelloid bdellostomatidae bdellostomidae bdellotomy bdelloura bdellouridae be beabt beach beachcomb beachcombing beachdeposit beached beaches beachhead beaching beachlamar beachless beachman beachy beacon beaconage beaconed beaconless beacons bead beaded beader beadflush beadhouse beadily beading beadle beadlehood beadleism beadleship beadroll beadrow beads beadsman beadswoman beadwork beady beagle beagling beak beaked beaker beakerman beakers beakful beaklike beaks beaky beal bealing beallach bealtared bealtine beam beambird beamed beamfilling beamful beamily beaminess beaming beamingly beamish beamless beamlike beamman beams beamsman beamster beamy bean beanbag beanbags beaned beanfeaster beanie beano beans beansetter beanshooter beanstalk beant beaproned bear bearable bearableness bearance bearbaiter bearbaiting bearberry bearbine beard bearded bearder beardless beardlessness beardom beards beardy bearer bearers bearest beareth bearfoot bearherd bearhide bearhound bearing bearings bearish bearishness bearist bearlet bearlike bears bearship bearskin beartongue bearward bearwort beast beastbane beasthood beastie beastily beastish beastliest beastlike beastlily beastliness beastlings beastly beasts beastship beat beata beatable beatae beatee beaten beater beaterman beaters beateth beath beatific beatifical beatifically beatification beatified beatify beatinc beatinest beating beatings beatitude beatnik beato beatrice beats beatster beau beauclerc beaucoup beaufin beaufort beaumont beaune beaupere beauriful beauship beaute beauteous beauteously beauteousness beautician beauties beautification beautified beautifier beautifies beautiful beautifulest beautifullest beautifully beautifulness beautify beautifying beautiiul beauty beautydom beautyship beaux beaver beaverize beaverkin beaverlike beavers beaverteen beavery beback bebait beballed bebang bebaron bebathe bebatter bebay bebeast bebed bebeerine bebelted bebilya bebite bebization beblain beblear bebled beblister bebloom beblotch beblubber bebop beboss bebothered bebreech bebrine bebrother bebump bebuttoned becall becalm becalmed became becarpet becarve becase becassocked becater because beccafico bechance bechase bechatter bechauffeur becher bechignoned bechirp bechtel bechuana becircled beck beckelite becker becket beckiron beckon beckoned beckoner beckoning beckoningly beckons beclad beclamor beclamour beclang beclart beclasp beclatter beclaw beclog beclomethasone beclothe becloud beclouded beclout becluster becobweb becollier becolor become becomes becomest becometh becoming becomingly becomingness becomma becompass becompliment becoom becoresh becost becoter becousined becovet becoward becquerelite becram becramp becrampon becrawl becreep becrime becrinolined becripple becroak becross becrush becrust becry becudgel becuffed becumber becurry becurse becurtained becut bed bedabble bedabbled bedad bedaggered bedamn bedamp bedark bedaub bedaubed beday bedaze bedazzle bedazzling bedazzlingly bedboard bedbugs bedcap bedcase bedchamber bedchambers bedclothes bedcord bedded bedding beddings bedead bedeaf bedeafen bedebt bedecked bedecking bedel bedesman bedevilment bedew bedewed bedewer bedewing bedewoman bedews bedfast bedfellow bedfellowship bedfoot bedgery bedgoer bedgown bediamonded bedight bedikah bedim bedimmed bedip bedirter bedirty bedismal bedizen bedizened bedizenment bedlam bedlamer bedlamic bedlamism bedlamite bedlamitish bedlams bedlar bedlids bedmaking bedoctor bedot bedote bedouin bedouinism bedouse bedown bedoyo bedpan bedplate bedpost bedposts bedquilt bedrabble bedraggle bedraggled bedragglement bedrail bedral bedraped bedress bedrest bedribble bedrid bedridden bedriddenness bedrift bedright bedrip bedrivel bedrizzle bedrock bedroll bedroom bedrooms bedrop bedropped bedrug beds bedscrew bedsick bedside bedsides bedsock bedsore bedspread bedstaff bedstand bedstead bedsteads bedstock bedstraw bedstring bedtick bedtime beduchess beduck beduke bedull bedunch bedusk bedwarf bedway bedways bedwell bedwetters bee beearn beebe beebread beech beecham beechdrops beechen beeches beechnut beechnuts beechwood beechy beedged beedom beef beefed beefhead beefheaded beefily beefiness beefish beefless beeflower beefsteak beeftongue beefy beegerite beehead beeheaded beehive beehives beehouse beeides beeish beeit beek beekeeper beekite beekmantown beelbow beelike beeline beelzebub beelzebubian beeman beemaster been beennut beer beerage beerbachite beerily beeriness beerish beerishly beermonger beerocracy beerothite beerpull beers beery bees beest beestes beestings beestis beeswax beeswing beeswinged beet beeth beethovenian beethovenish beetle beetled beetleheaded beetler beetles beetlestock beetlestone beetleweed beetling beetmister beetroot beetrooty beets beety beeve beeves beeware beeway beeweed beewise beewort beezer befall befallen befalleth befalls befame befamilied befamine befan befancy befanned befathered befavour befeather befeathered befel befell befetished befetter befezzed befiddle befilch befilth befinger befit befits befitted befitting befittingly beflag beflatter beflea befleck beflout beflower beflowered beflum befoam befogged befool befooled before beforehand beforeness beforested beforetime beforetimes befortune befoul befouled befouler befountained befraught befreckle befret befriend befriended befriender befriending befriendment befriends befrill befrilled befringe befriz befrogged befrumple befuddled befuddler befuddling befume befurred beg begall began begani begannest begar begari begash begat begaud begay begaye begem beget begets begetter begetteth begetting begettings beggar beggared beggarer beggarhood beggaring beggarism beggarly beggarman beggars beggarweed beggarwoman beggary begged beggiatoa beggiatoaceae begging beggingly beggingwise beghard begiggle begild begilded begin beginger beginner beginners beginnest beginneth beginning beginnings begins begird begirt beglad beglamour beglare beglerbeg beglerbeglic beglerbegluc beglerbegship beglerbey beglic beglide beglitter beglobed begloom begloved begloze beglue begnaw bego begobs begoggled begone begonia begoniaceae begoniaceous begoniales begonias begorry begot begotten begottenness begoud begowk begrace begrave begrease begreen begrett begrim begrime begrimed begroan begrudge begrudged begrudgingly begrutch begs beguess beguile beguiled beguileful beguilement beguiler beguiles beguiling beguilingly beguin begun begynnynge behalf behalfofthe behallow behammer behave behaved behaves behaving behavior behavioral behaviored behavioristic behavioristically behaviors behaviour behavioural behead beheadal beheaded beheader beheading beheadlined behear behears behearse behedge beheld behemoth behen behenate behenic behest behests behight behind behinder behindhand behine behold beholden beholder beholders beholdest beholdeth beholding beholdingness beholds behoney behoof behooped behoot behoove behooved behooveful behoovefulness behooves behooving behoovingly behorn behorror behove behoved behoves behoveth behowl behusband behymn behypocrite bei beice beid being beingless beings beinked beira beisa beja bejabers bejade bejan bejaundice bejazz bejel bejewelled bejig bekah bekannten bekerchief bekick beking bekinkinite bekiss bekko beknave beknit beknived beknotted beknottedly beknottedness beknow beknown bel bela belabor belabored belaboured belady belaites belam belar belard belash belated belatedly belatedness belatticed belauded belavendered belaw belay belaying belch belched belcheri belching beld beldam beldame beldamship belderroot belduque bele beleaf beleaguer beleaguered beleaguering beleaguerment beleaguers beleap belecture beledgered belee belemnid belemnite belemnitic belemnoid belemnoidea beletter belfast belfries belfry belga belgae belgian belgians belgic belgium belgophile belgrad belgravia belial belialic belialist belibel belie belied belief beliefful belieffulness beliefis beliefless beliefs belier belies belieth believability believable believableness believe believed believer believers believes believest believeth believing believingly belike beliked belimousined belinuridae belinurus belion belis belite belitter belittle belittled belittlement belittling bell bella bellacoola belladonna bellamy bellarmine bellbind bellbird bellboy belle belled belledom belleek bellehood bellerophon bellerophontidae belles belleved bellflower bellhanger bellhanging bellhop bellhouse bellicism bellicose bellicosely bellied bellies belliferous belligerence belligerency belligerent belligerents belling bellingham bellini bellipotent bellis bellite bellmaker bellmaking bellman bellmanship bellmen bellmouth bello bellona bellonian bellonion bellote bellovaci bellow bellowed bellower bellowing bellowings bellows bellowsful bellowslike bellowsmaker bellowsmaking bellpull bells belltail belltopperdom bellum bellware bellwaver bellwether bellwind bellwine bellwort belly bellyache bellycavity bellyer bellyfish bellyflaught bellyful bellying bellyland bellylike bellyman bellypiece bellypinch belmont beloam beloeilite beloid beloit belomancy belone belonesite belong belonged belongeth belonging belongings belongs belonid belonidae belonoid belonosphaerite belore belostomidae belove beloved below belozenged belshazzar belshazzaresque belsire belt belted beltian beltie belting beltis beltmaking beltman belton belts beltsville beltwise beluchi belugite belum belute belve belvedere belverdian belvidere bely belying belyingly belzberg bema bemad bemadam bemadden bemaddening bemail bemaim bemajesty beman bemangle bemartyr bemat bemba bemeal bemean bemercy bemingle beminstrel bemired bemirror bemitered bemitred bemix bemoanable bemoaned bemoaner bemoaning bemoaningly bemock bemocked bemole bemolt bemonster bemoult bemuck bemud bemuddle bemuddlement bemuddy bemuffle bemurmur bemused bemusedly bemusement bemusk bemuslined bemuzzle ben benacus benadryl benamidar benasty benben bench benchboard bencher benchership benches benchfellow benchful benching benchman benchmark benchy bend benda bendability bendable benday bended bendeth bending bendingly bendings bendix bendroflumethiazide bends bendsome bendwise bendy bene beneaped beneath beneceptor benedicite benedict benedicta benedictine benedictinism benedictio benediction benedictional benedictionary benedictions benedictive benedictively benedictory benedictus benedight benedikt benefaction benefactions benefactive benefactor benefactors benefactorship benefactory benefactress benefic benefice beneficed beneficence beneficent beneficential beneficently benefices beneficia beneficial beneficially beneficialness beneficiaries beneficiary beneficiaryship beneficiate beneficiation beneficient beneficium benefit benefited benefiting benefits beneighbored benelux benempt benempted beneplacito benetnasch benettle beneventan beneventana benevolence benevolent benevolently benevolentness beng bengal bengali bengaline bengola benight benighted benighter benightmare benightment benign benignancy benignant benignantly benignity benignly benison benitoite benjaminite benjamite benjy benkulen benmost benn benne bennel bennet bennett bennettitaceae bennettitaceous bennettitales bennettites bennetweed bennington benny beno benote bensh benshea benshee benshi bent bentang benthal bentham benthamism benthamite benthon benthonic benthos bentincks bentiness bents bentstar benty benumb benumbed benumbedness benumbeth benumbing benumbingly benumbment benumbs benward benweed benz benzacridine benzal benzalacetone benzalaniline benzalazine benzalcohol benzalcyanhydrin benzaldehyde benzaldiphenyl benzaldoxime benzalethylamine benzalhydrazine benzalphthalide benzamide benzamido benzaminic benzamino benzanalgen benzanthrone benzantialdoxime benzathine benzazide benzazimide benzazine benzbitriazole benzdifuran benzdioxdiazine benzdioxtriazine benzedrine benzene benzenediazonium benzenes benzenoid benzhydrol benzhydroxamic benzidine benzidino benzil benzilic benzimidoethyl benziminazole benzinduline benzine benzo benzoate benzoated benzoates benzoazurine benzobis benzocaine benzocoumaran benzodiazepine benzodiazepines benzodiazine benzodiazole benzoflavin benzoflavine benzofluorene benzofuran benzofuryl benzoglycolic benzoglyoxaline benzohydrol benzoic benzoid benzoin benzoinated benzoins benzolate benzoline benzomorpholine benzonaphthol benzonitrile benzonitrol benzoperoxide benzophenanthrazine benzophenanthroline benzophenazine benzophenol benzophenone benzophenothiazine benzophloroglucinol benzophosphinic benzophthalazine benzopyranyl benzopyrazolone benzopyrylium benzoquinoline benzoquinone benzoquinoxaline benzosulphimide benzotetrazine benzothiazine benzothiazole benzothiazoline benzothiodiazole benzothiophene benzothiopyran benzotoluide benzotriazole benzotrifuran benzoxy benzoxyacetic benzoxycamphor benzoxyphenanthrene benzoyl benzoylation benzoylformic benzoylglycine benzpinacone benzthiazide benzthiophen benztropine benzyl benzylamine benzylic benzylidene beode beothuk beothukan beowulf bepaint bepale beparch beparody beparse bepart bepaste bepastured bepatched bepaw bepelt bepepper bepewed bepicture bepiece bepile bepill bepillared bepimple bepinch bepity beplague beplaided bepowder bepraisement bepraiser beprank bepreach bepretty bepride beprose bepuddle bepuff bepun bepuzzlement bequalm bequeath bequeathable bequeathed bequeathing bequeathings bequeathment bequest bequests bequote ber berage berain berairou berakah berake berapt berascal berat berate berated berattle beraunite berbamine berber berberi berberian berberid berberidaceae berberidaceous berbers berdache berea berean bereason bereave bereaved bereavement bereaver bered bereft berengaria berengarian berengarianism berenice berenices beresford bereshith beresite beret berg bergalith bergama bergamiol bergamot bergander bergaptene bergen berger bergere berghaan berginization bergland berglet berglund bergman bergs bergson bergsonian bergut bergy bergylt berhaps berhyme beri beribanded beribbon beribboned beriberi beriberic beride beringed beringite beringleted berinse berkeleian berkeleianism berkeley berkeleyism berkeleyite berkovets berlin berline berliner berlinite berlins berm berman bermuda bermudite bern bernadine bernardino bernardo berne bernice bernicle bernie berninesque bernoulli bernoullian berobed beroe beroida berouged beround berra berrendo berret berried berrier berries berry berryless berrylike berrypicker berrypicking berseem berserker bersiamite bersil bert bertat berth bertha berthed berther berthierite berthold berths bertie bertrand bertrandite beruffed beruffled berugged beruhmtested berust bervie berwick bery berycidae berycoidea berycoidean berycoidei beryl beryllia berylline berylliosis beryllium beryllonate berytidae beryx berzelianite berzeliite besagne besaid besaint besan besanctify besauce bescab bescarf bescarfpinned bescatter bescent beschrijvinge bescorch bescour bescourge bescramble bescrape bescratch bescrawl bescurf bescurvy bescutcheon besdies beseam besee beseech beseeched beseecher beseeches beseecheth beseeching beseechingly beseechingness beseechment beseem beseemed beseemeth beseemingly beseemingness beseemliness beseemly beset besetment besets besetter besetting beshackle beshade beshadow beshag beshame beshawled beshear beshield beshiver beshout beshrew beshriek beside besides besiege besieged besieger besiegers besieging besiegingly besigh besin besing besit beslab beslaver beslime beslimer beslobber beslobbered beslow beslur beslushed besmear besmeared besmell besmile besmirch besmoke besmooth besmother besmudge besnare besneer besnivel besnuff besogne besognier besom besomer besonnet besoot besot besotment besotted besottedly besotting besottingly besought besoul besour bespangle bespate bespatter bespattered bespatterer bespatterment bespawl bespeak bespeaking bespeaks bespecklement bespectacled besped bespeed bespell bespelled bespew bespice bespin bespirit besplit bespoke bespoken bespot bespottedness bespouse bespout bespray besprent besprinkle besprinkled besprinkles besputter besquib besra bessa bessarabian bessel bessemer bessemerize bessera bessie best bestain bestar bestare bestarred bestarve bestay bestead bested besteer bestial bestialism bestiality bestialize bestially bestiarian bestiarianism bestiary bestill bestir bestirred bestirring bestirs bestness bestock bestore bestorm bestow bestowal bestowed bestower bestoweth bestowing bestowment bestows bestrapped bestraught bestreak bestream bestrew bestrewment bestrewn bestridden bestride bestripe bestrode bests bestseller bestuck bestud besugar besuit besully beswarm beswelter beswim beswinge bet beta betacism betacismus betadine betafite betail betailor betaine betainogen betake betaken betaking betalk betamethasone betangle betanglement betask betatron betattered betaxed betaxolol betbeen bete beteela betel betelgeuse beth bethabara bethankit bethel bethesda bethflower bethink bethinking bethlehem bethought bethrall bethreaten bethroot bethuel bethump bethunder bethylidae betid betide betimber betime betimes betinge betipple betire betis betoil betoken betokened betokening betokens betone betook betorcinol betoss betowel betowered betoya betoyan betrace betrail betrample betrap betravel betray betrayal betrayed betrayer betrayest betrayeth betraying betrays betrekkingen betrend betroth betrothal betrothed betrothment betrough betrunk bets betsileos betsimisaraka betso betsy betta bettable bette betted better bettered betterer bettergates bettering betterment bettermost betterness betters bettina bettine betting bettonga bettongia bettor betula betulaceae betulaceous betulin betulinamaric betulinic betulites beturbaned betusked betutor betutored betwattled between betweenity betweenmaid betweenness betweenwhiles betwine betwit betwixen betwixt beudantite bevatron beveil bevel beveled beveler bevelled beveller bevelling bevelment beveltop bevenom bever beverage beverages bevesseled beveto bevillain bevined bevoiled bevomit bevue bevy bewail bewailable bewailed bewailest bewailing bewailingly bewailment bewails bewall beware bewash bewaste bewater beweary beweeper bewegten bewegter bewelcome bewept bewest bewhig bewhisker bewhiskered bewhistle bewhite bewidow bewig bewigged bewilder bewildered bewilderedly bewilderedness bewildering bewilderingly bewilderment bewilderments bewilders bewimple bewinged bewinter bewitch bewitched bewitchedness bewitcher bewitchery bewitches bewitchful bewitching bewitchingly bewitchingness bewith bewizard beworn beworry beworship bewrap bewrathed bewray bewrayed bewrayer bewrayeth bewraying bewrayingly bewrayment bewreath bewreck bewrite bey beylerbey beylerbeys beylic beylical beylik beyond beyrichite beys beyship bezaleel bezantee bezel bezels bezique bezoardic bezpopovets bezzi bezzle bha bhaga bhagavat bhagavata bhagavate bhalu bhangi bhar bharal bharata bhat bhava bhavani bheesty bhikku bhil bhili bhima bhojpuri bhoosa bhotia bhowani bhoy bhungi bhungini bhutan bhutanese bhutani bhutatathata bhutia bi biabo biacetyl biacetylene biacuru biallyl bialveolar bianca bianchi bianchite bianco biangular biangulated bianisidine biannually biannulate biarchy biarcuate biarcuated biarticular bias biased biases biasness biassed biassing biasteric biauricular biauriculate biaxal biaxial biaxiality biaxially biaxillary bib bibacity bibasic bibb bibber bibbing bibble bibenzyl bibines bibionid bibionidae bibitory bible bibles bibless biblic biblical biblicality biblically biblicism biblicist biblicistic biblicoliterary biblicopsychological biblioclast bibliofilm bibliogenesis bibliognost bibliognostic bibliogony bibliografico bibliograohy bibliograph bibliographer bibliographers bibliographical bibliographically bibliographies bibliographique bibliography bibliokleptomaniac bibliolatrous bibliolatry bibliological bibliomancy bibliomane bibliomania bibliomaniac bibliomanian bibliomanism bibliomanist bibliopegist bibliophage bibliophagic bibliophagist bibliophagous bibliophile bibliophilism bibliophilistic bibliophobia bibliopolar bibliopole bibliopolery bibliopolical bibliopolism bibliopolist bibliopolistic biblioraphical bibliosoph bibliotaphic bibliotheca bibliothecal bibliothecarial bibliothecarian bibliothecary bibliotherapeutic bibliotherapy bibliothetic bibliotic bibliotics bibliotist biblischen biblism biblist biblus biborate bibracteate bibracteolate bibulosity bibulous bibulously bibulus bicameralism bicamerist bicarbonate bicarbureted bicaudal bicaudate bicause bicellular bicentenary bicentennial bicentric bicephalous biceps bichloride bichord bichromate bichromatize bichrome bichy biciliate bicipital bicircular bick bicker bickered bickerer bickering bickerings bickern biclavate biclinium bicollateral bicolligate bicolor bicolorous biconcave biconcavity bicondylar bicone biconic biconical biconjugate biconsonantal biconvex bicorn bicornate bicorned bicornous bicornuous bicornute bicorporal bicorporate bicostate bicrenate bicrural bicursal bicuspid bicuspidate bicyanide bicycle bicycled bicycler bicycles bicyclic bicycling bicyclism bicyclist bicyclo bicycloheptane bicylindrical bid bidactyle bidactylous bidar bidarka bidcock biddable biddableness biddably biddance bidden bidder biddest biddeth bidding biddulphiaceae biddy bide bided bidens bident bidental bidentate bidential bidenticulate bider bides bidet bideth bidiagonal biding bidiurnal bidpai bidri bids biduous bieberite biedermeier bield bieldy bielenite bien bienheureuse biennia biennial biennially bier bierbalk bietle bifacial bifara biferous biffins bifid bifidate bifidated bifidly bifilar bifilarly biflabellate biflagellate biflecnode biflorate biflorous bifluoride bifocal bifoil bifolia bifoliolate bifolium biforked biform biformed biformity bifront bifronted bifurcal bifurcate bifurcated bifurcately bifurcates bifurcation big biga bigamic bigamist bigamous bigamously bigamy bigaroon bigbloom bigelow bigemina bigeminum bigener bigeneric bigential bigeye biggen bigger biggest biggin biggish biggity biggonet biggs bigheartedness bighorn bight bights biglandular biglenoid biglot bigly bigmouthed bigness bignesses bignonia bignoniad bignou bigoniac bigot bigoted bigotish bigotry bigots bigotty bigroot bigthatch biguanide biguttate bigwiggedness bigwiggery bigwiggism bigwigs bihai biham bihamate bihari biharmonic bihourly bihs bija bijasal bijection bijoux bijugate bijugular bike bikh bikhaconitine bikini bikol bikram bilaan bilabial bilamellar bilamellated bilaminar bilaminate bilateral bilaterality bilaterally bilateralness bilayer bilbie bilbo bilby bilch bildende bildenden bilders bilderzeugung bile bilestone bilge bilgy bilharzia bilharzial bilharzic bilharziosis bilianic biliaris biliary biliate biliation bilic bilicyanin biliferous bilification bilify bilimbi bilinear bilingual bilingualism bilingually bilinguar bilinite bilio bilious biliousness biliprasin bilipurpurin bilipyrrhin bilirubin bilirubinic bilirubinuria biliteral biliteralism bilith bilithon biliverdin bilixanthin bilk bill billa billable billabong billback billbeetle billbergia billboard billboards billbroking billbug billed biller billet billeter billethead billets billetwood billfish billfold billheading billhooks billiard billiardist billiards billie billikin billing billings billingsgate billion billionaire billions billionth billitonite billjim billman billmen billon billow billowed billowiness billowing billows billowy billposter billposters billposting bills billsticker billy billycock billyer billywix bilobated bilobed bilobiate bilobular bilocation bilocellate bilocular biloculina biloculine bilophodont biloxi bilskirnir bilsted biltongue bim bimaculate bimane bimanually bimarginate bimastoid bimasty bimaxillary bimbisara bimeby bimensal bimester bimestrial bimetal bimetalic bimetallic bimetallism bimetallist bimillenary bimillennium bimillionaire bimini bimmeler bimodal bimolecular bimonthly bimotored bimucronate bin binal binaphthyl binary binate binately bination binational binaural binbashi bind binder binders bindery bindeth binding bindingly bindings bindle bindlet bindoree binds bindweed bindwith bindwood binet binful bing binge binged binges bingey bingham binghi bingle bingo binh biniodide binitarian bink binman binna binnacle binnogue bino binocle binocularity binocularly binoculars binoculate binodal binodose binodous binomenclature binomial binomialism binomially binominated binominous binormal binotic binous binoxalate binoxide bins bintangor binturong binucleate binucleated binucleolate binzuru biobibliographical biobibliography bioblast bioblastic biocatalyst biocellate biochemical biochemicals biochemics biochemist biochemistry biochemy biochore biocide bioclimatic bioclimatology biocoenotic biocycle biodynamic biodynamical biodynamics biodyne bioecologic bioecological bioecologically bioecologist bioecology bioequivalent bioethics biogen biogenase biogenesis biogenetically biogenetics biogeny biogeochemistry biogeographical biogeography biognosis biografias biografico biograph biographee biographer biographers biographic biographical biographically biographies biography biolinguistics bioliography biologese biologic biological biologically biologicohumanistic biologism biologist biologists biology bioluminescence biolytic biomagnetic biomagnetism biomathematics biomechanical biomechanics biomedical biometrically biometrician biometrika biomicroscopy bion bionergy bionic bionomic bionomically bionomics bionomist bionomy biophagous biophore biophotophone biophysical biophysics biophysiography biophysiological biophysiologist biophysiology biophyte bioplasm bioplasmic bioplast bioplastic bioprecipitation biopsied biopsies biopsy biopsychical biopsychologist biopyribole biorbital biordinal bioreaction bios bioscope bioscopy biose biosis biosociological biostatic biostatical biostatics biostatistics biostratigraphy biosynthesis biosystematic biosystematist biota biotaxy biotic biotin biotite biotitic biotome biotomy biotype biovular bioxalate bioxide bipaleolate bipaliidae bipalmate biparasitic biparietal biparous biparted bipartible bipartile bipartisanship bipartite bipartitely bipartition bipaschal biped bipedal bipedality bipedism bipeds bipennate bipenniform biperforate bipersonal bipetalous biphase biphasic biphenol biphenylene bipinnaria bipinnate bipinnatifid bipinnatiparted bipinnatisect bipinnatisected biplanal biplane biplicate biplicity bipod bipolarize bipont biporous biprism biprong bipunctual bipupillate biquadrate biquadratics biquarterly biquartz biquintile biracial biradial biradiate biradiated biramous birch birchbark birches birching birchman birchwood bird birdbanding birdbath birdberry birdbrain birdcall birdcatcher birdcatching birdclapper birdcraft birddom birdeen birder birdglue birdhood birdhouse birdie birdies birdless birdlet birdlike birdlime birdling birdman birdnest birdnester birds birdseed birdwatch birdweed birdwoman birdy birectangular birefracting birefraction birefractive birefringence bireta biretta birgit biri birimose birk birken birkenhead birkenia birkeniidae birkie birkremite birl birle birlieman birmingham birminghamize birn birny birostrate birotation birotatory birr birse birth birthday birthdays birthed birthland birthless birthmate birthplace birthright births birthstone birthstool birthwort birthy bis bisaccate bisalt bisaltae bisbeeite biscaien biscanism biscayan biscayanism biscayen biscayner biscotin biscuit biscuitmaker biscuitroot biscuitry biscuits bisdimethylamino bisect bisected bisecting bisection bisectional bisectionally bisectrices bisects bisegment biserial biserially biseriate biseriately bisetose bisexed bisext bisexual bisexualism bisexuality bisexuous bisglyoxaline bish bishareen bisharin bishop bishopdom bishopess bishopful bishophood bishoplet bishoplike bishopling bishopric bishoprics bishops bishopship bishopweed bisiliac bisiliquous bisinuate bisinuation bisischiatic bisket bisley bislings bismar bismarck bismarckianism bismite bismosol bismuth bismuthal bismuthate bismuthide bismuthiferous bismuthite bismuthous bismuthyl bismutite bismutoplagionite bismutosmaltite bismutosphaerite bison bisons bispinose bispinous bispore bispores bisporous bisque bisquette bissau bissext bissextile bistable bistephanic bistipular bistipuled bistort bistournage bistoury bistratal bistratose bistre bistriate bisubstituted bisulfid bisulfite bisulphate bisulphide bisulphite bisymmetric bisymmetrical bisymmetrically bisymmetry bit bitable bitangent bitanhol bitartrate bitch bite biter biternate biternately bites bitesheep biteth bithynian biting bitingly bitingness bitings bitless bitnet bito bitolyl bitonality bitreadle bitripartite bitripinnatifid bitriseptate bitrochanteric bits bitstone bitt bitted bitten bitter bitterbloom bitterbur bitterbush bitterer bitterest bitterful bitterhearted bitterheartedness bitterish bitterling bitterly bittern bitterness bitterns bitterroot bitters bittersweet bitterweed bitterwood bitterworm bitterwort bitthead bittium bitts bitty bituberculate bituberculated bitulithic bitumed bitumen bituminization bituminoid bituminous bitun bitwise bitypic biune biunial biunivocal biurea biuret bivalence bivalency bivalve bivalved bivalvular bivariant bivariate bivaulted bivector biventer bivious bivocal bivoltine bivoluminous bivouac bivouacked bivouacking bivouacs biweekly biwinter bixa bixaceae bixaceous bixbyite bixin bizardite bizarre bizarrerie bizen bizet bizonal bizone bizonia bizz bizzem blab blabbed blabberer blabbing blachong black blackacre blackamoor blackball blackballed blackband blackbelly blackberries blackberry blackbine blackbird blackbirder blackbirding blackbirds blackboard blackboards blackboy blackburn blackbush blackcoated blackcock blackdamp blacked blacken blackened blackening blackens blacker blackest blacketeer blackeyes blackface blackfellow blackfellows blackfin blackfire blackfishing blackfly blackfoot blackfriars blackguard blackguardism blackguardly blackguardry blackguards blackhander blackhead blackheads blackheart blackie blacking blackingbrush blackish blackishly blackit blackland blackleg blackleggery blacklegs blacklist blacklisted blackly blackmail blackmailed blackmailer blackmailing blackmails blackman blackneb blackneck blackness blacknesses blacknob blackout blackpoll blackroot blacks blackseed blackshirted blacksmith blacksnake blackstick blackstrap blacktail blackthorn blacktop blackwallnut blackwash blackwasher blackwell blackwood blackwort blacky blad bladder bladderless bladderlike bladdernut bladders bladderseed bladderweed bladderwort bladdery blade bladebone bladed bladelet bladelike blader blades bladesmith bladewise blading blady bladygrass blaeness blaewort blaff blaffert blaflum blah blahlaut blain blaine blains blair blairmorite blake blakeberyed blamable blamably blame blamed blameful blameless blamelessly blamelessness blames blameworthiness blameworthy blaming blan blanc blanca blancard blanch blanchard blanche blanched blancher blanches blanching blanchingly blancmange blanco bland blander blandest blandiloquence blandiloquous blandish blandisher blandishing blandishment blandishments blandly blandness blank blankard blanked blanker blanket blanketed blanketeer blanketflower blanketing blanketless blanketmaker blanketry blankets blankety blankit blankite blankly blankness blanks blanky blanque blanquillo blare blared blares blaring blarney blarneying blarnid blas blase blasee blash blaspeam blaspheme blasphemed blasphemer blasphemers blasphemies blaspheming blasphemous blasphemously blasphemousness blasphemy blast blasted blastema blastemal blastematic blastemic blaster blastful blasthole blastie blasting blastman blastocarpous blastocheme blastochyle blastocoele blastocolla blastocyst blastocyte blastoderm blastodermatic blastodermic blastogenesis blastogenetic blastogenic blastoidea blastomata blastomere blastomeric blastomycete blastomycetes blastomycotic blastoneuropore blastophaga blastophitic blastophore blastophthoria blastophthoric blastophyllum blastopore blastoporic blastoporphyritic blastosphere blastostylar blastostyle blastozooid blastplate blasts blastula blastular blastulation blastule blat blatancy blatant blatantly blate blather blatherer blatherskite blathery blatta blattariae blatter blatterer blatti blattidae blattodea blattoid blattoidea blatz blaugas blauwbok blaver blawort blay blaze blazed blazer blazes blazing blazingly blazon blazoned blazoner blazonment blazonry blazy bldg ble bleach bleachability bleachable bleached bleacher bleacherite bleacherman bleachers bleachery bleachground bleachhouse bleaching bleachyard bleak bleaker bleakish bleakness bleaky bleared blearedness bleariness bleary bleat bleated bleater bleating bleatingly bleaty bleb blebs blechnoid blechnum bleck bled blee bleed bleeder bleeding bleeds bleedst bleekbok bleeker bleery bleezy blellum blemish blemished blemisher blemishes blemishless blench blencher blenchers blenching blenchingly blencorn blend blende blended blender blending blendor blends blendure blennemesis blennenteritis blenniidae blenniiform blenniiformes blennioid blennioidea blennocele blennocystitis blennoemesis blennogenic blennogenous blennoid blennometritis blennophlogisma blennophlogosis blennophthalmia blennoptysis blennorrhagia blennorrhagic blennorrhea blennorrheal blennorrhinia blennostatic blenny blennymenitis blent bleo blephara blepharadenitis blepharanthracosis blepharelcosis blepharemphysema blephariglottis blepharitic blepharoadenitis blepharoadenoma blepharoatheroma blepharoblennorrhea blepharocarcinoma blepharoceridae blepharochalasis blepharochromidrosis blepharoclonus blepharocoloboma blepharoconjunctivitis blepharomelasma blepharoncus blepharophimosis blepharophryplasty blepharophthalmia blepharophyma blepharoplastic blepharoplasty blepharoptosis blepharopyorrhea blepharorrhaphy blepharospasm blepharosphincterectomy blepharostenosis blepharosyndesmitis blepharosynechia blepharotomy bles blesbuck bless blessed blessedest blessedly blessedness blesser blesseth blessing blessingly blessings blest blet blethering bletia bletilla bleu blew blewits blibe blickey blig blighia blight blightbird blighted blighter blighting blights blind blindage blindball blinded blinder blindest blindfast blindfish blindfold blindfolded blindfoldedness blindfolder blindfoldly blinding blindingly blindish blindling blindly blindness blindnesses blinds blindstory blindweed blindworm bling blink blinkard blinked blinkered blinketh blinking blinkingly blinks blinn blinter blintz blintze blip bliss blissful blissfull blissfully blissfulness blissom blister blistered blistering blisteringly blisters blisterweed blite blithe blithebread blithefully blithehearted blithelier blithelike blithely blithemeat blithen blitheness blither blithesome blithesomeness blitter blitz blitzbuggy blitzed blitzkrieg blizz blizzard blizzardly blizzardous blizzards blizzardy blo bloat bloated bloating blob blobbed blobby blobs bloc bloch block blockade blockaded blockader blockading blockage blockages blockbuster blocked blocker blockers blockhead blockheaded blockheadedness blockholer blockhouse blockiness blocking blockish blockishly blocklayer blocklike blockmaker blockmaking blocks blockship blocky bloke blokes blomberg blomquist blond blonde blondine blondness blood bloodalley bloodalp bloodbath bloodbeat bloodberry bloodcurdling blooddrops blooded bloodfin bloodguilt bloodguiltiness bloodguilty bloodhound bloodhounds bloodied bloodiest bloodiness blooding bloodleaf bloodless bloodlessly bloodlessness bloodletter bloodletting bloodlike bloodline bloodlust bloodmobile bloodmonger bloodnoun bloodroot bloods bloodshed bloodshedder bloodshot bloodspiller bloodstain bloodstained bloodstainedness bloodstains bloodstanch bloodstock bloodstone bloodstream bloodstroke bloodsucker bloodsucking bloodthirst bloodthirster bloodthirstiest bloodthirstily bloodthirstiness bloodthirsting bloodthirsty bloodwite bloodwood bloodwoods bloodworm bloodwort bloodworthy bloody bloodybones blooey bloom bloomage bloomed bloomer bloomeria bloomerism bloomers bloomery bloomfield blooming bloomingly bloomingness bloomkin bloomless blooms bloomsburian bloomsbury bloomy bloop blooper blooping blore blosmy blossom blossombill blossomed blossomhead blossoming blossomless blossomry blossoms blossomtime blossomy blot blotch blotched blotches blotching blotchy blotless blots blotted blotter blottesque blottesquely blotting blottingly blotto blotty bloubiskop bloude blouse bloused blouses blousing blout blow blowback blowball blowcock blowed blowen blower blowers blowest bloweth blowfish blowgun blowhard blowing blowings blowlamp blown blowout blowpipe blowpoint blowproof blows blowspray blowsy blowtorch blowtube blowup blowy blowze blowzed blowzy blub blubber blubbered blubberer blubbering blubberingly blubberman blubberous blucher bludgeon bludgeoned bludgeoneer bludgeoner bludgeons blue bluebead bluebeard bluebeardism bluebell bluebelled bluebells blueberries blueberry bluebill bluebird bluebonnet bluebook bluebreast bluebuck bluebush bluecap bluecoat blued bluefin bluefish bluegill bluegown bluegrass bluehearted blueing bluejack bluejacket bluejay bluejays blueleg bluelegs blueness bluenoser blueprint blueprinter bluer blues bluest bluestem bluestocking bluestockingish bluestone bluestoner bluet bluethroat bluetongue blueweed bluewing bluewood bluey blueys bluff bluffable bluffed bluffing bluffly bluffness bluffs bluffy bluing bluish bluishness bluism blum blumenthal blunder blunderbuss blunderbusses blundered blunderer blunderers blunderful blunderhead blunderheaded blunderheadedness blundering blunderingly blunders blundersome blunger blunker blunks blunnen blunt blunted blunter blunthead blunthearted blunting bluntish bluntly bluntness blunts blup blur blurbist blurred blurredness blurrer blurring blurs blurt blurted blurting blush blushed blusher blushes blushfully blushing blushingly blushwort bluster blustered blusterer blusterers blustering blusteringly blusterous blusterously blusters blustery blustrous blute blvd blype blythe bmt bmw bo boa boaedon boagane boanbura boanergism boar boarcite board boardable boarded boarder boarders boarding boardinghouse boardinghouses boardly boards boardwalk boardy boarfish boarish boarishly boars boarship boarskin boarspear boarstaff boarwood boast boasted boaster boasteth boastful boastfully boastfulness boasting boastive boastless boasts boat boatable boatbill boatbuilder boated boatfalls boatfuls boathead boathouse boating boatkeeper boatless boatlike boatlip boatload boatloader boatloading boatloads boatly boatman boatmanship boatmen boatowner boats boatsetter boatshop boatside boatswain boattail boatward boatwise boatwoman boatwright boatyard bob boba bobadil bobadilian bobadilish bobbed bobbery bobbie bobbies bobbin bobbiner bobbinet bobbing bobbinite bobbins bobbinwork bobbish bobbishly bobby bobcat bobcoat bobeche bobierrite bobization bobo bobolink bobotie bobs bobservation bobsled bobstay bobtail bobtailed bobwhite bobwood bocasine bocca boccale boccarella boccaro bocce bocconia boche bocher bochism bock bockeret bocoy bod bodacious bodaciously bode boded bodeful bodement boden bodenbenderite bodes bodge bodhisattva bodice bodiced bodicemaker bodicemaking bodices bodied bodieron bodies bodikin bodiless bodilessness bodily boding bodingly bodings bodkin bodkinwise bodle bodleian bodo bodock bodoni body bodybuilder bodybuilding bodyguard bodyhood bodymaker bodyplate bodys bodywise bodywood bodywork boebera boehmenist boehmeria boeing boeotarch boeotian boeotic boer boerdom boerhavia boethian boethusian bofe bog boga bogan bogart bogberry bogey bogeyman bogeymen boggart bogged boggin bogginess boggish boggle boggling boggy bogie bogieman bogier bogijiab bogland boglander bogledom bogman bogo bogomil bogomilian bogong bogs bogtrotter bogus bogusness bogway bogwood bogwort bogy bogydom bogyism bogyland bohairic bohawn bohea bohemia bohemian bohemians bohereen bohireen bohor bohunk boid boidae boii boil boilable boiled boiler boilerful boilerhouse boilermaker boilermaking boilers boilerworks boilery boiling boilinglike boilingly boillng boils bois boise boist boisterous boisterously boisterousness bojas bokadam bokard bokay boke bokhara bokharan bokom bol bola bolag bolar bolboxalis bold bolder bolderian boldest boldface boldhearted boldine bolding boldly boldness boldo boldu bole bolectioned boled boleite bolero boles boletaceae boletaceous bolete boletus boleweed bolewort bolis bolivar bolivarite bolivia bolivian boliviano boll bollandist bollard boller bolling bollock bolo bologna bolognan bolognese bolographic bolographically bolography boloism bolometer boloney boloroot bolshevik bolshevikian bolshevist bolshevistic bolshevize bolshie bolshoi bolson bolster bolstered bolsterer bolstering bolsters bolsterwork bolt bolted bolter bolthole bolti bolting boltless boltlike boltmaker boltmaking bolton boltrope boltropes bolts boltsmith boltuprightness boltwork boltzmann boluses boma bomarea bomb bombable bombacaceous bombard bombarde bombarded bombardelle bombardier bombarding bombardm bombardment bombardon bombast bombaster bombastic bombax bombay bombazin bombazine bombed bomber bombidae bombilation bombinate bombination bombo bombola bombous bombs bombshell bombsight bombus bombyciform bombycillidae bombycina bombycine bombyliidae bombyx bomoi bomos bomou bon bona bonaci bonagh bonaght bonair bonairly bonairness bonally bonang bonanza bonapartean bonapartism bonasa bonasus bonaveria bonavist bonbo bonbon bonbons bonce bond bondage bondager bondar bonded bondelswarts bonder bonderman bondholder bondholding bonding bondless bondman bondmen bonds bondsman bondsmen bondstone bondswoman bonduc bondwoman bone bonebreaker boned bonehead boneheaded boneless bonelet bonelike bonellia boner bones boneset bonesetting boneshaker boneshaw bonetail bonewood bonework boney bonfire bonfires bong bongo bonheur bonheurs boni boniface bonification boniform bonify boniness boning boninite bonis bonitarian bonk bonnaz bonne bonnet bonneted bonnethead bonnetless bonnetlike bonnets bonneville bonnibel bonnie bonniest bonniness bonny bonnyish bonorgue bons bonsai bonsoir bonspiel bonte bontebok bontebuck bontequagga bonum bonus bonuses bonxie bony bonze bonzer bonzery bonzian boo boobies boobily boobook boobs booby boobyalla boobyish boobyism bood boodle boodleism boodleize boodler boody boof booger boogie boogiewoogie book bookable bookbind bookbinder bookbindery bookbinding bookcase bookcases bookcraft bookdealer bookdom booke booked bookend booker bookery bookfold bookhood bookie bookies bookiness bookish bookishly bookishness bookism bookkeep bookkeeper bookkeepers bookkeeping bookland bookless booklet booklets booklover bookloving bookmake bookmaker bookmaking bookman bookmark bookmarker bookmobile bookmonger bookplate bookpress bookrest bookroom books bookseller booksellerish booksellers bookselling bookshelf bookshop bookshops bookstall bookstalls bookstand bookstore bookstores bookward bookwise bookwork bookworm bookworms bookwright booky boolean boolian booly boolya boom boomable boomah boomboat boomed boomer booming boomingly boomless boomlet boomorah booms boomslang boomslange boomster boomy boon boondock boondocks boondoggle boondoggler boone boonk boons boophilus boopis boor boorish boorishly boorishness boors boose boost boosted booster boosters boosting boosts boot bootblack bootboy booted bootee booter bootery bootful booth boother boothite bootholder boothose booths bootid bootie booting bootjack bootjacks bootleg bootlegged bootlegging bootless bootlessly bootlessness bootlick bootmaker bootmaking boots bootstrap bootstrapped bootstrapping booty bootyless booze boozed boozer boozers boozily booziness boozy bop bopeep boppist bopyrid bopyridae bopyridian bor bora borable borachio boracic boraciferous boracous borage boraginaceae boraginaceous borago borak boran borana borani borasca borassus borax borboridae borborus borborygmic borborygmus bord bordarius bordeaux bordello borden border bordered borderer borderers bordereth bordering borderism borderland borderlands borderless borderline bordermark borders bordroom bordure bordured bore boreal borealis borean boreas bored boredom boree borehole boreiad boreism borele bores boresome boreus borg borghalpenny borghese borh boric boride boring boringly boringness borish borism bority borize borlase born bornant borne borneo borneol bornite bornitic bornyl boro borocaine borocalcite borocarbide borocitrate borofluohydric borofluoride boroglyceride boroglycerine borolanite boron boronatrocalcite boronia borophenylic bororoan borosalicylate borosalicylic borosilicate borotungstate borough boroughlet boroughmaster boroughmonger boroughs boroughship borowolframic borracha borrel borrelia borrelomycetaceae borromean borrow borrowed borrower borrowers borrowing borrows borry borscht borsholder bort borty boruca borussian borwort borzicactus borzoi bos bosc boschbok boschetto boschvark bose bosh boshas bosk bosker bosket boskiness bosky bosn bosniak bosnian bosnisch bosom bosomed bosoms bosomy bosonic bosporan bosporanic bosporus bosquets boss bossage bossdom bossed bosselated bosser bosses bossiness bossing bossism bosslet bossship bossy bostangi boston bostonese bostonian bostonite bostrychidae bosun boswellia boswellian boswelliana boswellize bot botanic botanical botanically botanique botanised botanist botanists botanize botanizer botanomancy botanophile botany botargo botaurinae botaurus botched botchedly botcher botcherly botchery botchily botchiness botchka botchy bote botein botella boterol both bother bothered bothering botherment bothers bothersome bothnic bothriocidaris bothriolepis bothrium bothrodendron bothropic bothrops bothy botocudo botonee botong botryllidae botryllus botryogen botryoidal botryoidally botryolite botryomyces botryomycotic botryopterid botryopteris botryose botryotherapy botrytis bott bottekin bottle bottlebird bottled bottleflower bottleful bottlehead bottleholder bottlelike bottlemaking bottleneck bottler bottles bottling bottom bottomchrome bottomed bottomer bottomless bottomlessness bottommost bottomry bottoms bottstick botty botuliform botulin botulism botulismus bouchal boucharde bouche boucher boucherism boud boude boudoir boudoirs bouen bougainvillaea bougainvillea bougainvillia bougainvilliidae bougar bouge bough boughless boughpot boughs bought boughten boughy bouillon bouillotte bouk boukit boulanger boulangerite boulangist boulder bouldered boulderhead bouldering boulders bouldery boule boulevard boulevardier boulevardize boulevards boultel boulter boun bounce bounced bouncer bounces bouncing bouncingly bouncy bound boundable boundaries boundary bounded boundedly bounden bounder bounding boundingly boundless boundlessly boundlessness boundly bounds bounteous bounteously bounteousness bountied bounties bountiful bountifully bountifulness bountith bounty bountyless bouquet bouquetin bouquets bourbonian bourbonism bourbonist bourbonize bourd bourder bourdon bourette bourgeois bourgeoise bourgeoisie bourgeoisitic bourignian bourignianism bourignianist bourignonist bourn bourne bournless bourout bourse bourtree bouser bousingot boussingaultite boustrofedon boustrophedonic bousy bout boutade bouteloua bouto boutonniere bouts boutylka bouvardia bouw bova bovarism bovarysm bovate bovenland boviculture bovid bovidae boviform bovine bovinely bovinity bovista bovoid bovovaccination bovovaccine bow bowable bowback bowbells bowbent bowboy bowdichia bowditch bowdlerized bowdoin bowed bowedness bowel boweled bowellike bowels bowen bowenite bower bowered bowermaiden bowermay bowers bowerwoman bowery boweryish bowet boweth bowfin bowgrace bowhead bowie bowieful bowing bowk bowkail bowker bowknot bowl bowlder bowlders bowled bowleg bowleggedness bowlegs bowler bowless bowlful bowlike bowling bowls bowly bowmaking bowman bowmen bowpin bowralite bows bowshot bowsprit bowstring bowstringed bowwoman bowwood bowwort bowwow bowyer box boxboard boxcar boxcars boxed boxen boxer boxerism boxers boxes boxfish boxful boxhaul boxhead boxing boxings boxkeeper boxlike boxmaker boxmaking boxthorn boxty boxwallah boxwood boxwork boxy boy boyar boyard boyardom boyarin boyarinya boyarism boyars boycott boycottage boycotter boyer boyes boyfriend boyhood boyish boyishly boyishness boyism boyle boyology boys boyship boza bozal bozo bozze bp bra brab brabagious brabant brabanter brabantine brabble brabblement brabblingly braca braccate braccia bracciale braccianite brace braced bracelet braceleted bracelets bracer bracero braces brachelytra brachelytrous brachering brachial brachialgia brachialis brachiata brachiation brachiator brachigerous brachinus brachiocephalic brachiocrural brachiocyllosis brachioganoid brachioganoidei brachiolarian brachiopod brachiopoda brachiopode brachiopodist brachioradial brachioradialis brachiorrheuma brachiosaur brachiosaurus brachiostrophosis brachiotomy brachistocephalous brachistochrone brachistochronous brachium brachtmema brachycardia brachycephal brachycephalism brachycephalization brachycephalize brachycephalous brachycephaly brachyceric brachycnemic brachycome brachycranial brachydactyl brachydactylic brachydactylism brachydactylous brachydiagonal brachydodromous brachydomal brachydomatic brachydome brachydontism brachyfacial brachygraphic brachygraphical brachygraphy brachyhieric brachylogy brachymetropia brachyoura brachyphyllum brachypinacoid brachypleural brachypnea brachypodine brachyprosopic brachypterous brachypyramid brachyrrhinia brachyskelic brachysm brachystochrone brachystomata brachystomatous brachytherapy brachytic brachyural brachyuran brachyuranic brachyure brachyurous bracing bracingly bracingness brack brackebuschite bracken brackened bracker bracket bracketed bracketing brackets bracketwise brackish brackishness brackmard bracky bracon braconidae bract bractea bracteal bracted bracteole bracteose bractless bractlet bracts bradawl bradawls bradbury bradburya bradenhead bradley bradsot bradyacousia bradycardia bradycrotic bradydactylia bradyesthesia bradyglossia bradykinetic bradylalia bradylexia bradylogia bradynosus bradypepsia bradypeptic bradyphasia bradyphrasia bradyphrenia bradypnoea bradypod bradypode bradypodoid bradypus bradyseism bradyseismal bradyseismic bradyseismism bradyspermatism bradysphygmia bradyteleocinesia bradytocia bradytrophic brae braeface braehead braeman braeside brag bragg braggadocio braggardism braggart braggartism braggartry braggat bragged bragger braggery bragging braggish braggishly bragite bragless brags braguette brahmachari brahmahood brahmaic brahman brahmanaspati brahmanhood brahmani brahmanic brahmanical brahmanism brahmanistic brahmanize brahmany brahmaputra brahmi brahmic brahminism brahmoism brahmsite braid braided braider braiding braidings braidist braids brail braillist brain brainache brainard braincap brainchild brainchildren brained brainer brainfag brainge brainless brainlessly brainlessness brainlike brainpan brains brainsick brainsickly brainsickness brainstone brainwash brainwashing brainwater brainwood brainworker brainy braird braireau brairo brake brakeage brakehead brakeless brakeload brakemaker brakemaking brakeman brakemen braker brakeroot brakes brakie braky bram bramantesque bramantip bramble brambleberry brambled brambles bramblewood brambly brambrack bran branch branchage branched branchellion brancher branches branchful branchi branchia branchiae branchial branchiata branchiate branchiferous branchiform branchihyal branching branchings branchiobdella branchiocardiac branchiogenital branchiogenous branchiomere branchiomeric branchiopallial branchiopod branchiopoda branchiopodan branchiopulmonata branchiopulmonate branchiosaur branchiosauria branchiosaurian branchiosaurus branchiostegal branchiostegidae branchiostegite branchiostegous branchiostoma branchireme branchiura branchless branchlet branchlets branchy brand branded brandeis brandenburg brandering brandied brandies brandify branding brandise brandish brandished brandisher brandishes brandishing brandless brandling brandname brandreth brands brandy brandyman brandywine brangle brangled brangling branial braniff brank brankie branle branner brannerite branny bransle bransolder brantail brantness bras brasenia brash brashiness brashness brashy brasiletto brasque brass brassart brassavola brassbound brassbounder brasse brasser brasses brassey brassia brassica brassicaceae brassicaceous brassidic brassie brassiere brassish brasswork brassworks brassy brassylic brat brats brattice bratticer brattish brattishing bratwurst brauna brauneberger braunite brauronia brauronian brava bravado brave braved bravehearted bravely braver bravery braves bravest braving bravish bravo bravoite bravos braw brawl brawled brawler brawlers brawling brawlingly brawls brawlsome brawly brawlys brawn brawned brawner brawny braws bray brayed brayer brayerin braying braystone braza brazen brazenface brazenfaced brazenfacedly brazenly brazenness brazer brazier braziers brazilein brazilite brazing brazzaville bre breach breached breaches breachful breaching bread breadbasket breadberry breadboard breadbox breadearner breadearning breaded breaden breadless breadlessness breadmaker breadmaking breadman breads breadstuff breadstuffs breadth breadthen breadthless breadthriders breadths breadthways breadthwise breadwinning breaghe break breakable breakableness breakably breakage breakbones breakdown breakdowns breake breaker breakers breakest breaketh breakfast breakfasted breakfasting breakfastless breakfasts breaking breakless breakneck breakoff breakout breakover breakpoint breaks breakshugh breakstone breakthrough breakthroughs breakwater breakwind breast breastbone breasted breastfeeding breastful breastheight breasthook breasting breastless breastmark breastpiece breastplate breastplates breastrail breasts breastsummer breastweed breastwood breastwork breastworks breath breathable breathableness breathe breathed breather breathes breatheth breathful breathing breathings breathless breathlessly breathlessness breaths breathtaking breathy breccia brecciated brecciation brechites breck brecken bred bredbergite brede bredith bree breech breechblock breechclout breeched breeches breechesflower breechesless breeching breechless breed breedbate breeder breeders breeding breedings breeds breedy breek breekums breeze breezeful breezeless breezes breezeway breezier breezily breeziness breezy bregma bregmate bregmatic brei breislakite breke brelaw breloque breme bremen bremeness bremia bremsstrahlung brendan brennan brenner brent brenthis brest bret bretelle bretesse breth brethren breton bretonian bretschneideraceae bretty bretwalda bretwaldadom bretwaldaship breunnerite breva breve brevet brevets brevetted breviary breviature brevicaudate brevicipitidae breviconic brevifoliate breviger brevilingual breviloquent brevipen brevipennate breviradiate brevirostral brevirostrate brevirostrines brevis brevity brew brewage brewed brewer breweries brewers brewery brewhouse brewing brewmaster brews brewst brewster brian briar briarberry briard briareus briarroot briars briary bribe bribed bribegiver bribegiving briber bribery bribes bribetaker bribetaking bribeworthy bribing bribri brice brick brickbat brickbats brickdust bricked brickel bricken brickfielder brickhood bricking brickish bricklayer bricklaying brickle brickleness brickliner bricklining brickly brickmaker brickmason bricks brickset bricktimber brickwise brickwork brickworks bricky brickyard brickyards bricole bridal bridale bridaler bride bridebed bridecake bridechamber bridegod bridegroom bridegrooms bridegroomship bridehead bridehood brideknot brideless bridelike bridely bridemaidship brides bridesmaid bridesmaiding bridesmaids bridesman bridewain bridewort bridge bridgeable bridgeboard bridgebote bridgebuilding bridged bridgehead bridgekeeper bridgeless bridgelike bridgemaker bridgeman bridgepot bridges bridgetown bridgeward bridging bridgtown bridle bridled bridleless bridleman bridles bridling bridoon brief briefcase briefe briefer briefest briefing briefless brieflessly brieflessness briefly briefness briefs briefsummer brier brierberry briered brierroot briers brieve brievete brig brigade brigades brigadier brigadiers brigadiership brigalow brigand brigandage brigander brigandine brigandism brigands brigantes brigantia brigantine brigatry brigham brighella brighid bright brighten brightened brightener brightening brightens brighter brightest brighteyed brighteyes brightish brightly brightness brighton brightsome brightwork brigid brigittine brigs brilliance brilliancy brilliandeer brilliant brilliantine brilliantly brilliants brilliolette brillolette brillouin brills brim brimful brimfully brimfulness briming brimmed brimmer brimming brimmingly brims brimstone brimstonewort brin brindle brindled brine brinehouse brineless brineman briner bring bringal bringall bringer bringest bringeth bringing brings brininess brinish brinishness brinjarry brink brinkless brinkmanship brinks briny brioche brioches briquette briquettes briserait brisk brisken brisker briskest brisket briskish briskly briskness briss brissotin brissotine bristle bristlebird bristled bristlelike bristler bristles bristletail bristlewort bristliness bristling bristly brisure brit britannia britannian britannica britches britchka brith british britisher britishhood britishness briton britoness brittany britten brittle brittlebush brittlely brittleness brittlestem brittlewort brittling briza brizz broach broached broacher broaching broad broadax broadbrim broadcast broadcaster broadcasting broadcloth broadcut broaden broadened broadening broadens broader broadest broadhead broadhearted broadish broadloom broadly broadminded broadness broadpiece broads broadshare broadsheet broadside broadsides broadsword broadtail broadway broadwayite broadways broadwife brob brobdingnag brobdingnagian brocade brocaded brocades brocard brocardic brocatel brocatello broch broche brochetelle brochette brochidodromous brochure brock brockage brocked brocket brockle brod brodeglass brodequin brodiaea brog brogan brogger broggerite broggle brogue brogueful broguer broguery brogues broider broidered broiderer broideress broideries broidery broigne broil broiled broiling broilingly broils brokage broke broken brokenhearted brokenheartedly brokenly brokenness broker brokerage brokers brokership brolga broll brolly broma bromacetanilide bromacetic bromacetone bromal bromargyrite bromate brombenzene brombenzyl bromcresol bromeigon bromeikon bromeliaceae bromeliaceous bromelin bromethyl bromethylene bromfield bromhidrosis bromhydric bromian bromic bromide bromides bromidic brominate brominated bromindigo bromine brominism brominize bromiodide bromios bromism bromite bromization bromize bromizer bromlite bromoacetone bromoauric bromobenzene bromobenzyl bromocresol bromocriptine bromocyanidation bromocyanide bromoethylene bromogelatin bromohydrate bromohydrin bromoil bromoiodide bromoiodism bromoiodized bromoketone bromol bromomania bromomenorrhea bromomethane bromometric bromometry bromonaphthalene bromophenol bromopicrin bromothymol bromous brompheniramine brompicrin bromthymol bromyrite bronc bronchadenitis bronchi bronchial bronchiarctia bronchiectatic bronchiloquy bronchiocele bronchiocrisis bronchiogenic bronchiolar bronchiole bronchioles bronchioli bronchiolitis bronchiolus bronchiostenosis bronchitis bronchoadenitis bronchoalveolar bronchocavernous bronchocephalitis bronchoconstriction bronchoconstrictor bronchodilatation bronchodilators bronchoesophagoscopy bronchogenic broncholemmitis broncholith broncholiths bronchomotor bronchomycosis bronchopathy bronchophonic bronchophony bronchoplasty bronchoplegia bronchopleurisy bronchopneumonic bronchorrhagia bronchorrhea bronchoscope bronchoscopic bronchoscopy bronchospasm bronchospasms bronchospastic bronchostenosis bronchostomy bronchotetany bronchotome bronchotomist bronchotomy bronchotracheal bronchotyphus bronchovesicular bronchus bronco broncobuster brongniardite bronk bronteana brontephobia bronteum brontogram brontograph brontolite brontometer brontophobia brontops brontosaurus brontoscopy brontotherium brontozoum bronx bronze bronzed bronzen bronzes bronzewing bronzing bronzite bronzy brooch brooches brood brooded brooder broodiness brooding broodingly broodings broodless broodlet broods broody brook brookable brooke brooked brookflower brookhaven brookless brooklike brooklime brookline brooklyn brooklynite brooks brookside brookweed brool broom broombush broomcorn broomer broommaker broomrape broomroot brooms broomstaff broomstick broomstraw broomtail broomweed broomwood broon broozled brose brosimum brosy brot brotan brotany brotean broth brothel brothelry brothels brother brotherhood brotherhoods brotherlike brotherliness brotherly brothers brothership brotherton brotherwort broths brotula brotulid brotulidae brotuliform brough brougham broughams brought broughtest broussonetia brow browallia browband browbeat browbeaten browbeater browbeating browbound browed browless browman brown brownback browne browned brownell browner brownie browniness browning browningesque brownish brownism brownist brownness browns brownstone brownsville browntail browny browpiece browpost brows browse browsed browser browsing browst browt bruang brucella bruchidae brucia brucine brucite bruckheim bruckle bruckled bruckleness bruckner bruening brugh bruin bruise bruised bruiser bruises bruisewort bruising bruisings bruit bruited bruke brulant brulee brulyie brumal brumalia brumbies brumby brume brummagem brumous brumstane brune brunei brunella brunellia brunet brunetness brunette brunetteness brunettest brunettish brunfelsia brung brunhilde brunissure brunnichia bruno brunonia brunoniaceae brunonism brunt bruscus brush brushable brushbush brushed brushes brushfire brushing brushings brushite brushless brushlessness brushlike brushmaker brushman brushoff brushproof brushwood brushwoods brushy brusque brusquely brusqueness brussels brustle brut brutage brutal brutalism brutalitarian brutalities brutality brutalization brutalize brutalized brutalizes brutalizing brutally brute brutedom brutehood brutely bruteness brutes brutification brutify bruting brutish brutishness brutter brutual brutus bruzz bryaceous bryanite bryant bryce brydegrome bryn bryogenin bryologist bryology bryonia bryonidin bryonin bryony bryophyte bryophytic bryozoa bryozoan bryozoon bryozoum brython brythonic bryum btl btu bu bual buba bubal bubaline bubalis bubastid bubble bubbled bubbleless bubbler bubbles bubbling bubblings bubbly bubby bubbybush bube bubinga bubo buboed bubonalgia bubonidae bubonocele bubukle bucare bucca buccal buccally buccan buccaneer buccaneering buccaneers buccellarius buccina buccinal buccinator buccinidae buccinoid bucco buccobranchial buccogingival buccolingual bucconidae bucconinae buccopharyngeal buccula bucentaur bucephala bucephalus buceros bucerotes bucerotinae buchanite bucharest buchenwald buchloe buchmanism buchnera buchnerite buchu buchwald buck buckaroo buckberry buckboard buckbrush buckbush bucked bucker bucket bucketful bucketfull bucketfuls bucketing bucketman buckets buckety buckeye buckhorn buckhound buckie bucking buckishly buckishness buckjumper bucklandite buckle buckled buckler bucklers buckles buckley buckleya buckling bucknell bucko buckpot buckrahs buckram bucks bucksaw buckshee buckshot buckskin buckskinned bucktail bucktooth buckwagon buckwash buckwasher buckwashing buckwheat buckwheater bucky bucoliast bucolic bucolically bucolicism bucolique bucorvinae bucrane bud budapest budded budder buddh buddha buddhahood buddhist buddhistical buddhology buddies budding buddle buddleman buddler buddy budge budged budgeree budgereegah budgerigar budges budget budgetary budgeteer budgeter budgetful budgets budgie budless budlike budmash budorcas buds budtime budukha budweiser budworm budzat buerger buettneriaceae bufagin buff buffable buffalo buffaloes buffed buffer buffered bufferin buffet buffeted buffeter buffeting buffetings buffets buffetted buffing buffle bufflehead buffont buffoonery buffoonish buffoonism buffs buffware buffy bufidin bufo bufonite bufotalin bug bugaboo bugan bugbane bugbear bugbeardom bugbearish bugbite bugeyed bugfish buggery buggies bugging buggy buggyman bughead bughouse buginese bugle buglet bugleweed buglewort bugloss bugology bugproof bugre bugs bugweed buhrstone buick build buildable builded builder builders buildeth building buildings buildress builds buildup built builtin buist bujumbura bukeyef bukh bukshi bulak bulanda bulb bulbaceous bulbed bulbiferous bulbilis bulblet bulblike bulbocapnin bulbocapnine bulbocavernous bulbochaete bulbocodium bulbomembranous bulbophyllum bulborectal bulbospinal bulbourethral bulbous bulbs bulbul bulbule bulchin bulgar bulgaria bulgarian bulgaric bulgarophil bulge bulged bulger bulges bulginess bulging bulgy bulied bulimia bulimiac bulimic bulimiform bulimoid bulimy bulk bulked bulker bulkhead bulkheaded bulkier bulkiest bulkiness bulking bulkish bulks bulky bull bulla bullace bullae bullamacow bullan bullated bullation bullback bullbaiting bullbat bullberry bullbird bullboat bullcart bulldog bulldogged bulldoggedness bulldogism bulldoze bulldozer bulldozers bulldozing buller bullet bulletheaded bulletheadedness bulletin bulletins bulletmaker bulletmaking bullets bulletwood bullety bullfeast bullfight bullfighter bullfighting bullfinches bullflower bullfoot bullfrog bullfrogs bullheadedly bullheadedness bullhoof bullhorn bullicks bullidae bullied bullies bulliest bulliform bulliness bulling bullion bullionism bullionist bullish bullishly bullishness bullism bullneck bullock bullockite bullockman bullocks bullocky bullom bullosa bullous bullpoll bullpout bulls bullseye bullshit bullskin bullsucker bullswool bulltoad bullule bullweed bullwhacker bullwhip bullwort bully bullyhuff bullying bullyism bullyrook bulrush bulrushes bulse bult bulter bultey bultong bultow bulwand bulwark bulwarks bum bumbailiff bumbarge bumbaze bumbee bumbershoot bumblebees bumbleberry bumbledom bumblekite bumbler bumbo bumboat bumboatman bumboatwoman bumclock bumelia bumetanide bumicky bummalo bummaree bummed bummer bummerish bummie bumming bump bumped bumpee bumper bumperette bumpers bumpily bumping bumpingly bumpkin bumpkinly bumpology bumps bumptious bumptiously bumptiousness bumpy bums bumtrap bumwood bun bunce bunch bunchberry bunched buncher bunches bunchily bunchiness bunching bunchy bund bunda bundahish bundestag bundle bundled bundlerooted bundles bundling bundobust bundook bunds bundy bunemost bung bunga bungaloid bungalow bungalowed bungarum bungarus bunged bungee bungerly bungey bungfu bungholes bungle bungled bungler bungling bunglingly bungmaker bungwall bungy bunion bunionette bunions bunk bunker bunkerman bunko bunks bunkum bunnit bunny bunnymouth bunodont bunodonta bunolophodont bunoselenodont buns bunsenite bunt buntal bunted bunter bunting buntline bunton bunty bunyah bunyip bunyoro buon buoy buoyance buoyancy buoyant buoyantly buoyantness buoyed buoys buphaga buphthalmia buphthalmum bupivacaine buplever buprestidae buprestidan buprestis bupropion bur burao burbank burbankian burbankism burble burbler burbly burbot burd burden burdened burdening burdens burdensome burdensomely burdensomeness burdie burdock burdocks burdon bure bureau bureaucracy bureaucrat bureaucratic bureaucratical bureaucratically bureaucratism bureaucratist bureaucratization bureaus bureaux burel burele buret burette burfish burg burgage burgality burgee burgensic burgeoning burger burgess burgessdom burgesses burggrave burgh burghal burghalpenny burghbote burghemot burgher burgherdom burgheress burghers burghership burghmaster burghs burgi burglar burglaries burglarious burglarize burglars burglary burgle burgled burgling burgomaster burgomasters burgomastership burgoo burgosses burgrave burgraves burgraviate burgreve burgreves burgs burgul burgus burgware burhead burhinidae burhinus burial burialplace burials burian buriat buried burier buries burieth burin burinist buriti burka burke burkitt burl burlap burler burlesque burlesqued burlesquely burlesques burlet burletta burley burlily burlington burly burman burmannia burmanniaceae burmanniaceous burmese burn burnable burnbeat burned burner burners burneth burnetize burnham burnie burniebee burning burnings burnish burnished burnisher burnishers burnishes burnishing burnishment burnout burnover burns burnsian burnside burnsides burnt burnut burnwood burny buro burow burp burr burred burrel burrer burring burrish burrito burrknot burro burrobrush burrow burrowed burroweed burrower burrowing burrowings burrows burrowstown burrs burry burs bursa bursae bursal bursarial bursary bursate bursautee burse burseed bursicle bursiculate bursiform bursitis burst bursten burster bursting bursts burstwort bursty burt burthen burthens burton burucha burundi burushaski burut burweed burwell bury burying bus busby buscarl buscarle buses bush bushbeater bushcraft bushed bushel busheler bushelman bushels bushes bushfighting bushful bushhammer bushi bushies bushiest bushily bushiness bushing bushland bushless bushlet bushmaker bushman bushmanship bushmen bushranger bushrangers bushranging bushveld bushwa bushwhack bushwhacker bushwhacking bushwife bushwoman bushwood bushy busied busier busies busiest busily busine business businesses businesslike businesslikeness businessman businessmen businesswoman busiprone busk busket buskin buskined buskins buskle busky busman buss busser busses bussu bust bustard bustards busted buster busthead busticate busting bustle bustled bustler bustles bustling busts busulfan busy busybodied busybodies busybody busybodyish busycon busyhead busying busyish busyness but butadiene butadiyne butanal butane butanoic butanolid butanolide butanone butch butcher butchered butcherer butcheries butchering butcherless butcherliness butcherly butchers butchery bute butea butein buteo butine butler butlerage butlerlike butlers butlery butment butomaceae butoxy butoxyl buts butt butte butted butter butteraceous butterback butterbill butterbump butterbur buttercup buttercups buttered butterfinger butterfingered butterfingers butterflies butterfly butterhead butteries butterless buttermaker buttermaking butterman buttermilk butternose butternut butterroot butters butterscotch butterwife butterwoman butterworker butterwort buttery butteryfingered butties butting buttle buttock buttocker buttocks button buttonball buttonbur buttonbush buttoned buttoner buttonhold buttonholder buttonhole buttonholed buttonholer buttonhook buttoning buttonlike buttons buttonwood buttonwoods buttony buttress buttressed buttresses buttresslike buttrick butts buttwood butty butyl butylamine butylation butylic butyne butyr butyraceous butyrate butyric butyrically butyrin butyrinase butyrolactone butyrometer butyrometric butyrone butyrophenone butyrousness butyryl buveur buxaceous buxbaumia buxerry buxom buxomly buxomness buxton buxus buy buyable buyer buyers buyeth buyides buying buys buzane buzylene buzz buzzard buzzardlike buzzardly buzzards buzzed buzzer buzzes buzzgloak buzzies buzzing buzzingly buzzsaw buzzwig buzzword buzzy by byblidaceae byblis byblow bycause bycoket bye byegaein byeman byerite byerlite byestreet bygane byganging bygo bygoing bygone bygones byhand bylaw byline bylogeni bymeby byname bynd bynedestin byon byous bypasses bypast bypath bypaths byproduct byrd byre byrewards byrewoman byrlawman byrne byrnie byroad byron byroniana byronic byronically byronics byronish byronism byronist byronite byrrus byrsonima bysacki bysen bysmalith byspell byssaceous byssal byssin byssine byssinosis byssogenous byssoid byssoides byssolite byssus bystander bystanders byte bytownite byway byways bywoner byword bywork byzantian byzantine byzantinesque byzantinischen byzantinize ca caam caama caaming caapeba caatinga cab caba cabaan caback cabal cabala cabaletta cabalist cabalistic cabalistical caballer caballero caballeros caballine caballo caban cabana cabaret cabarets cabas cabasset cabassou cabbage cabbagehead cabbages cabbagy cabbie cabbies cabbing cabby cabda cabdriving cabellerote cabernet cabestro cabeza cabilliau cabin cabinet cabinetmake cabinetmaker cabinetmakers cabinets cabinetwork cabinetworker cabinetworking cabins cabio cabirean cabiri cabirian cabiric cabiritic cable cabled cablegram cablegrams cableless cablelike cableman cabler cables cablet cabling cably cabman cabmen cabo caboceer cabochon cabocle cabombaceae caboodle caboose caboshed cabot cabotage cabree cabrerite cabrilla cabriole cabriolet cabriolets cabrit cabs cabstand cabuya caca cacalia cacan cacana cacanthrax cacao cacara cacatuinae cacesthesia cacesthesis cachalot cachalots cachaza cache cached cachemic cachet cachexic cachexy cachibou cachinnatory cacholong cachucha cacidrosis caciocavallo cacique caciqueship cackle cackled cackling cacm cacocholia cacochylia cacochymic cacochymical cacochymy cacocnemia cacodaemoniac cacodaemonic cacodemon cacodemonia cacodemoniac cacodemonic cacodemonize cacodemonomania cacodorous cacodyl cacodylic cacoepist cacogenesis cacogenic cacogeusia cacoglossia cacographer cacographic cacographical cacolets cacomagician cacomelia cacomistle cacomixl cacomixle cacomorphosis caconychia caconym caconymic cacopathy cacophonia cacophonic cacophonical cacophonically cacophonist cacophonize cacophonous cacophonously cacophony cacophthalmia cacoproctia cacorhythmic cacorrhinia cacospermia cacosplanchnia cacostomia cacotheline cacothesis cacothymia cacotrophic cacotrophy cacotype cacoxenite cacozealous cactaceae cactaceous cactales cacti cactiform cactoid cactus cactuses cacueterie cacuminal cacuminate cacumination cacuminous cacur cad cada cadalene cadamba cadastral cadastre cadaverine cadaverize cadaverous cadaverously cadaverousness cadbit cadbote cadde caddice caddiced caddie caddies caddis caddised caddish caddishly caddishness caddoan caddow cadelle cadence cadences cadency cadent cadential cadenza cader caderas cadet cadets cadetship cadetships cadette cadew cadge cadger cadgily cadginess cadging cadgy cadi cadilesker cadinene cadis cadiueio cadjan cadlock cadman cadmia cadmic cadmide cadmium cadmiumize cadmopone cadmus cados cadrans caduac caduca caducary caducean caduceus caducibranchiate caducicorn caducity caducous cadus cadwal caeca caecal caecally caecectomy caeciform caecilia caecilian caeciliidae caecitis caecostomy caecotomy caecum caedmonian caelum caenogaea caenogaean caenolestes caenostylic caenostyly caeoma caeremoniarius caerphilly caesalpiniaceous caesar caesardom caesarean caesarism caesaropapacy caesarotomy caesarship caesious caesium caesural caesuric cafe cafenet cafes cafeteria caffa caffeate caffeic caffeine caffeinic caffeinism caffeism caffeol caffetannic caffetannin caffoline caffoy cafh cafiz caftan cag cagayan cage caged cagelike cageman cager cages cagester cagework cagey caggy cagit cagy cahenslyism cahill cahincic cahita cahokia cahoot cahot cahow cahuapana caickle caid caids cailcedra cailed cailleach caimacam caiman caimitillo caimito caine caingua cainian cainish cainism cainite cainitic caique caiquejee cair caird cairene cairn cairngorm cairngorum cairns caisson caissoned caissons caitanyas caite caitiff cajan cajole cajoled cajoler cajoleries cajolery cajoling cajun cajuput cajuputene cakavci cakchikel cake cakebox caked cakehouse cakemaker caker cakes cakette cakewalk cakewalker cakey cakile caking caky calaba calabar calabari calabash calabaza calabazilla calaber calaboose calabrasella calabrese calabrian calade caladium caladryl calais calalu calamagrostis calamanco calamansi calamariaceous calamariales calamarian calamarioid calambour calamiferous calamiform calaminary calamine calamint calamistral calamistrum calamite calamitean calamites calamities calamitoid calamitous calamitously calamitousness calamity calamodendron calamopitys calamus calander calandra calandria calandrinae calandrinia calangay calantas calanthe calapite calappa calappidae calas calash calathea calathian calathidium calathiscus calbroben calcaneal calcaneocuboid calcaneofibular calcaneonavicular calcaneoscaphoid calcaneus calcar calcarate calcareoargillaceous calcareocorneous calcareosiliceous calcareous calcareously calcariferous calcariform calceiform calceolaria calceolarias calchaqui calciclase calcicole calcicolous calcicosis calcified calciform calcifugal calcifuge calcifugous calcigenous calcigerous calcimeter calcimine calciminer calcinable calcination calcine calcined calciner calcinize calciobiotite calciocarnotite calcioferrite calcioscheelite calciovolborthite calciphile calciphilia calciphilous calciphobous calciphyre calciprivic calcisponge calcispongiae calcitestaceous calcitic calcitonin calcitrate calcitreation calcium calcivorous calcographer calcographic calcography calcul calculable calculate calculated calculatedly calculates calculatin calculating calculation calculational calculations calculator calculators calculatory calculi calculiform calculist calculus calcutta calden calder caldera caldron caldrons caldwell calean caleb caleche caledonia caledonian caledonite calefacient calefactive calefactor calefactorium calefactory calelectrical calelectricity calemes calendal calendar calendarer calendarial calendarian calendaric calendars calender calendered calenderer calendrical calends calendula calendulin calenture calenturist calescent calethetory calf calfhood calfish calfkill calflike calgary calhoun caliban calibanism caliber calibered calibrate calibrated calibration calibrator calibre calibres caliburno calicate caliciform calico calicoed calicut calid calif california californian californica californiensis californite californium caliginous caliginously calimeris calinago calinut caliological calipee caliper caliperer calipers caliph caliphal caliphate caliphs calista calisthenical calisthenics calite caliver calixtin calixtus calk calked calker calkers calkin calking calkins call calla callaghan callainite callant callboy calle called calledst caller callers callest calleth calli callianassa callianassidae callicarpa callicebus callidity callidness calligraph calligraphic calligraphical calligraphically calligraphist calligraphy calling callings calliope calliophone calliopsis calliper calliperer calliphora calliphorid calliphoridae calliphorine callipygian callipygous callisection callistemon callithamnioides callithrix callithumpian callitrichaceous callitriche callitrichidae callitype callo callorhynchidae callosal callose callosities callosity callosomarginal callosum callous calloused callouses callously callousness callovian callow callower callowness calls calluna callused calluses calm calmant calmative calmed calmer calmest calmette calmierer calming calmingly calmly calmness calms calmy calocarpum calochortaceae calochortus calodemon calography calomel calomorphic calonyction calool calophyllum calopogon caloric calorically caloricity calorie calories calories/gram calorifacient calorific calorifically calorification calorifics calorifier calorify calorigenic calorimeter calorimetrically calorimetry calorimotor caloris calorisator calorist calorite calosoma calotermes calotermitid calotermitidae calotte calotype calotypic calotypist caloyer calp calpulli caltrap calumba calumet calumniate calumniated calumniation calumniative calumniatory calumnies calumnious calumniously calumniousness calumny calvados calvaria calvarium calvatia calver calvert calves calvin calving calvinian calvinism calvinist calvinistical calvinistically calvinize calvish calvities calvous calycanth calycanthaceae calycanthaceous calycanthemy calycanthus calyceraceae calyces calycifloral calyciflorate calyciform calycinal calycine calycle calycocarpum calycoid calycoideous calycophora calycophoran calycozoan calycozoon calycular calyculate calycule calyculus calydon calydonian calymene calyphyomy calypsist calypso calypsonian calypter calypterae calyptoblastea calyptorhynchus calyptranthes calyptrata calyptratae calyptriform calyptrimorphous calyptro calyptrogen calyptrogyne calyx calyxes cam camacan camail camaldolite camaldule camaldulian caman camansi camara camaraderie camarasaurus camarilla camass camatina cambalo cambarus camber cambeva cambial cambiform cambiogenetic cambism cambist cambodia cambodian cambogia cambrel cambrian cambric cambridge cambuca cambuscan cambyuskan camden came camel camelback cameldrivers cameleer camelidae camelish camelkeeper camellia camellias camellike camellin camellus camelman camelmen cameloid cameloidea camelopard camelopardid camelopardus camelot camels camelty camelus camenae camenes cameo cameos camera cameralism cameralist cameralistic cameraman cameramen cameras camerated cameration camerier camerina camerinidae cameron cameronian cameroun camest camestres camice camilla camillus camise camisia camisole camitica camlet cammocky camomile camoodi camoodie camorra camorrista camouflage camp campagna campagnol campaign campaigner campaigning campaigns campana campane campanero campanian campaniform campanile campaniles campanini campanion campanist campanologer campanological campanologist campanology campanula campanulaceae campanulaceous campanulales campanularia campanulariae campanularian campanulatae campanulate campanulated campanulous campaspe campbell campbellism campcraft camped campephilus camper campestral campfight campfire campfires campground camphane camphanic camphanone camphanyl camphene campho camphocarboxylic camphoid camphol campholytic camphor camphoraceous camphorate camphorize camphoronic camphoroyl camphorphorone camphorwood camphoryl camphylene campimeter campimetrical campimetry campine camping campion campions cample campmaster campo campodea campodeid campodeidae campodeiform campodeoid campody campong camponotus campoo camporee camps campshedding campsheeting campstool camptodrome camptonite camptosorus campulitropous campus campuses campward campylite campylobacter campyloneuron campylospermous campylotropal camshachle camshaft camstane camstone camuning camus camused camwood can can't cana canaan canaanite canaanitess canaanitish canaba canadianization canadianize canadite canaigre canaille canajong canal canalage canalboat canaliculated canaliculi canaliculization canaliform canalization canalize canalized canalling canals canalside canamary canamo cananaean cananga canari canaries canarsee canary canaut canavali canavalia canavalin cancan cancel canceled canceleer canceler cancellarian cancellated cancelled canceller cancelling cancellings cancellous cancellus cancelment cancer canceration cancerdrops cancerigenic cancerism cancerophobe cancerophobia cancerous cancerously cancerousness cancerroot cancers cancerweed canchi cancri cancrinite cancrivorous cancrizans cancrophagous cancrum candace candela candelabra candelabrum candent candescence candescent candescently candid candida candidacy candidal candidate candidates candidateship candidature candide candidly candidness candier candies candiot candiru candle candlebeam candleberry candlebox candlefish candleholder candlelight candlelighter candlelighting candlelit candlemaker candlemaking candlemas candlenut candlepin candler candlerent candles candleshades candleshrift candlestand candlestick candlesticked candlesticks candlestickward candlewaster candlewood candock candollea candolleaceae candor candors candour candroy candy candymaker candymaking candystick cane canebrake canebrakes canel canellaceae canellaceous canells canelo caneology canephor canephore canephoros caner canes canescence canewise canework canfieldite cangan cangle cangler cangue canhoop canichana canicola canicula canicular canicule canid canidae canidia canif caninal canine canines caning canings caniniform caninity caninus canioned canions canis canistel canister canisters canities canjac cank canker cankerbird cankereat cankered cankeredly cankeredness cankerflower cankering cankers cankerweed cankerwort cankery canmaking canman canna cannabic cannabis cannabism cannaceous cannach canned cannel cannelured canneries cannery cannes cannet cannibal cannibalean cannibalic cannibalism cannibalistic cannibalistically cannibality cannibalize cannibals cannikin cannily canniness canning cannon cannonade cannonaded cannonades cannonading cannonball cannonballs cannoned cannoneer cannoneers cannons cannot cannstatt cannula cannular canny canoe canoeing canoeiro canoeist canoeload canoes canoewood canoga canon canoncito canoness canonesses canonic canonical canonically canonicals canonicity canonics canonist canonistic canonizant canonization canonize canonized canonizer canonlike canonry canons canopic canopied canopies canopy canorous canorously canorousness canos canroyer cans canso canst cant cantabile cantabri cantabrian cantabrigian cantabrize cantaloupe cantankerous cantankerously cantankerousness cantar cantara cantaro cantata cantate cantation cantative cantatory cantboard canted canteen canteens canter canterburian canterbury cantered canterelle cantering canters cantharidae cantharidate cantharidian cantharidin cantharidism cantharidize canthectomy cantholysis canthoplasty canthorrhaphy canthotomy canthus cantico cantilena cantilever cantily cantina cantiness canting cantingness cantion cantle cantlet canto canton cantonal cantonalism cantoned cantonese cantonment cantonments cantons cantoon cantor cantoris cantorous cantorship cantred cantref cantrip cants cantus cantwise canty canuck canula canun canvas canvasback canvased canvases canvasman canvass canvassed canvasser canvassers canvasses canvassing cany canyon canyons canzon canzonet caoba caodaism caodaist caoutchouc caoutchoucin cap capabilities capability capable capably capacious capaciously capaciousness capacitance capacitation capacitative capacitativly capacities capacitive capacity capanna capanne caparison caparisoned capax capcase cape caped capel capelin capella capellet caper capercaillie capercut capered capering capernaism capernaitic capernaitical capernaitically capernoited capernoitie capernoity capers capes capeskin capetian capetonian capewise capful caphar caphtor caphtorim capias capicha capillaceous capillaries capillarily capillariness capillariomotor capillaris capillary capilliculture capilliform capillitium capistrano capistrate capita capital capitaldom capitalis capitalism capitalist capitalistic capitalistically capitalists capitalizable capitalize capitalized capitalizing capitally capitals capitan capitana capitania capitate capitatim capitation capitative capitatum capite capitellar capitellate capitellum capitis capitol capitolian capitoline capitolium capitonidae capitoninae capitoulate capitulant capitular capitularly capitulary capitulated capitulation capitulations capitulator capitulatory capituliform capitulum capkin capless capmaker capmaking capman capmint capnodium capnoides capo capocchia capon caponier caponize caponizer caporal capote cappadine cappadocian capparidaceous capparis capped cappelenite capper cappie capping capple cappy capra caprate caprella caprellidae caprelline capreol capreolary capreolate capreoline capreolus capri capric capriccetto capricci caprice caprices capricious capriciously capriciousness capricornus caprid caprificator caprifoliaceae caprifolium caprigenous caprimulgidae caprimulgus caprin caprinic capriola capriole capriote capripede capritious caproate caproic caproin capromys caprone capronic capronyl caproyl capryl caprylic caprylin caps capsa capsaicin capsella capsheaf capshore capsicin capsicum capsid capsizal capsize capsized capstan capstans capstone capsula capsular capsulated capsule capsulectomy capsules capsuliferous capsuliform capsuligerous capsulitis capsulociliary capsulogenous capsulorrhaphy capsumin capta captaculum captain captaincy captainess captaing captainry captains captainship captance captial captions captious captiously captiousness captivate captivated captivately captivates captivating captivatingly captivation captivator captivatrix captive captives captivities captivity captopril captor captors captress capturable capture captured capturer captures capturing capuan capuche capuchin capulet caput caputo car cara carabao carabid carabidae carabidan carabideous carabidoid carabin carabineer carabineers carabiner caraboid carabus caracal caracara caracas caracol caracole caracoler caracoller caract caracteres caradoc caraed carafe carafes caraffes caragana carageen caraibe caraipa caraipi carajas caramba carambola carambole caramel caramelan caramelization caramelize caramels caramoussal carancha caranday carane caranga carangidae carangoid carangus caranx carapace carapaced carapache carapacho carapacic carapato carapax carapine carapo carapus carat caraunda caravan caravaneer caravanist caravanner caravans caravansary caravanserai caravanserais caravanserial caravanseries caravel caraway carayan carbacidometer carbamate carbamazepine carbamazine carbamic carbamide carbamido carbamine carbamino carbamyl carbanile carbanilic carbanilide carbarn carbasus carbazide carbazole carbeen carbene carbenicillin carbethoxy carbide carbine carbines carbinol carbinoxamine carbo carbodiimide carbohydrase carbohydrate carbohydrates carbohydraturia carbohydride carbolate carbolfuchsin carbolic carbolineate carbolize carboloy carboluria carbolxylol carbomethene carbomethoxyl carbon carbona carbonaceous carbonade carbonari carbonarism carbonatation carbonate carbonated carbonates carbonatization carbonator carbonemia carbonero carbonic carboniferous carbonigenous carbonimeter carbonimide carbonite carbonitride carbonium carbonizable carbonization carbonize carbonized carbonizer carbonizes carbonless carbonnieux carbonometer carbonyl carbonylene carbophilous carbora carborundum carbostyril carboxy carboxyhemoglobin carboxyl carboxylase carboxylate carboxylation carboxylic carboxyllc carboy carboyed carbuncle carbuncled carbuncles carbuncular carbungi carburant carburate carburator carbure carburet carburetant carburetor carburetting carburization carburize carburizer carbyl carbylamine carcajou carcake carcanet carcaneted carcase carcases carcass carcasses carcassonne carcavelhos carceag carcel carceral carcerate carceration carcharhinus carcharias carchariid carchariidae carcharioid carcharodon carcharodont carcinemia carcinoembryonic carcinogenesis carcinogens carcinological carcinology carcinolysin carcinomata carcinomatoid carcinomatosis carcinomatous carcinopolypus carcinosarcoma carcinoscorpius carcinosis card cardaissin cardamine cardamom cardamoms cardanic cardboard cardboards cardcase cardecu carded cardel carder cardholder cardia cardiac cardiacal cardiagra cardiagram cardiagraphy cardial cardianesthesia cardianeuria cardiant cardiaplegia cardiasthenia cardiasthma cardiataxia cardiatomy cardiauxe cardiectomize cardiectomy cardielcosis cardiemphraxia cardigan cardiidae cardin cardinal cardinalate cardinalic cardinalis cardinalism cardinalitial cardinally cardinals cardinalship carding cardioarterial cardioblast cardiocarpum cardiocirrhosis cardioclasia cardioclasis cardiod cardiodilator cardiodynamics cardiodynia cardiodysesthesia cardiogram cardiograms cardiograph cardiographic cardiography cardiohepatic cardioid cardiokinetic cardiolith cardiological cardiologist cardiology cardiolysis cardiomalacia cardiomegaly cardiomelanosis cardiometer cardiomotility cardiomyoliposis cardiomyomalacia cardioncus cardionephric cardioneural cardioneurosis cardionosus cardiopathic cardiopathy cardiopericarditis cardiophobe cardiophobia cardiophrenia cardioplasty cardioplegia cardiopneumograph cardiopulmonary cardiopyloric cardiorenal cardiorespiratory cardiorrheuma cardioschisis cardiosclerosis cardioscope cardiospasm cardiospermum cardiosphygmogram cardiosphygmograph cardiosymphysis cardiotomy cardiotonic cardiotoxic cardiotrophia cardiotrophotherapy cardiovascular cardioversion cardipaludism cardipericarditis carditic carditis cardium cardlike cardmaker cardo cardol cardona cardoncillo cardoon cardplayer cardroom cards cardsharp cardsharping cardtray carduaceae carduaceous carduelis carduus care cared careenage careened careener careening career careered careerer careering careerist careers carefree careful carefully carefulness caregivers careless carelessly carelessness carelessnesses carene carer cares caress caressed caresser caresses caressing caressingly caressive carest caretaker caretakers caretaking careth caretta carettochelydidae careworn carex carey carfare carfax carfle carga cargill cargo cargoes carhop carhouse cariacus cariama carian carib caribal caribbean caribbee caribisi caribou caricaceae caricaceous caricaturable caricatural caricature caricatured caricatures caricaturing caricaturist caricetum carico caricographer caricography caricologist caricology carid caridean caridoid caridomorpha carie caries carillon carillonee carillonneur carina carinal carinaria carinatae carinate carination caring cariniana carinthian cariosity carious cariousness cariri caririan carisoprodol carissa caritatem cariyo cark carking carkingly carkled carla carle carles carless carlet carlin carlina carline carlines carling carlings carlish carlisle carlist carlo carload carloading carloadings carloads carlot carlovingian carludovica carly carlyleian carlylese carlylesque carlylism carmalum carman carmanians carmel carmela carmele carmelite carmen carmichael carmine carminette carminibus carminite carminophilous carmoisin carmustine carnacian carnage carnaged carnal carnalism carnalite carnality carnalize carnally carnaptious carnarvon carnassial carnate carnation carnationist carnations carnauba carnaubic carnaubyl carne carnegie carnegiea carnelian carneol carneole carneous carney carni carnic carniferous carnification carnificial carniform carnify carnival carnivaler carnivalesque carnivora carnivoral carnivore carnivorism carnivorous carnosine carnotite carnous caro caroa carob caroba caroche carol carolean caroli carolina caroling carolingian carolinian carolled carolling carols caroome caroon carotene carotic carotid carotidal carotidean carotin carotinoid caroubier carousal carousals carouse caroused carouser carousing carp carpaine carpal carpals carpathia carpathian carpel carpellary carpenter carpenteria carpentering carpenters carpentership carpentry carper carpes carpet carpetbagger carpetbaggism carpetbagism carpetbeater carpeted carpeth carpeting carpetlayer carpetless carpetmaking carpetmonger carpets carpetway carpetweb carpetwork carpetwoven carphiophiops carpi carpid carping carpintero carpinus carpio carpiodes carpium carpocapsa carpocarpal carpocephala carpocephalum carpocervical carpocratian carpodacus carpodetus carpogam carpogamy carpogenous carpogone carpogonia carpogonial carpogonium carpoidea carpolith carpological carpologically carpology carpomania carpometacarpal carpophaga carpophagous carpophalangeal carpophore carpophyll carpophyte carpopodite carpopoditic carpoptosia carpoptosis carport carpos carposporangia carposporangial carposporangium carpospore carpospores carposporic carposporous carps carpus carquaise carr carrack carrageen carrageenin carrara carreer carrefour carrel carriable carriage carriageable carriagelamps carriageless carriages carriagesmith carriageway carrie carried carrier carriers carries carrieth carrigae carrion carritches carrizo carroch carroll carrollite carromed carronade carronades carrot carrots carrottop carrotweed carrotwood carrousel carrow carry carryall carrying carryover cars carse carshop carsick carsmith carson cart cartage cartbote carte carted cartel carteolol carter carters cartesian cartesianism cartful carthage carthame cartier cartilage cartilages cartilaginei cartilagineous cartilaginification cartilaginous carting cartisane cartist cartload cartloads cartmaking cartogram cartograph cartographer cartographers cartographic cartographical cartographically cartography cartomancy carton cartonnage cartons cartoon cartoons cartouche cartouches cartridge cartridges cartridre cartrillges carts cartulary cartway cartwheel cartwright cartwrighting carty carua carucage carucal carucated caruncula carunculae caruncular carunculate carunculous caruso carvacrol carvacryl carval carve carved carvel carven carvene carver carvers carvership carves carville carving carvings carvoepra carvone cary carya caryatic caryatid caryatidean caryatides caryatidic caryatids carying caryl caryocar caryocaraceae caryophyllaceous caryophyllene caryophylleous caryophyllous caryophyllus caryopsides caryopsis caryopteris caryota cas casa casaba casabe casablanca casal casalty casamarca casanova casanovanic casas casate casava casave casavi casbah cascade cascaded cascades cascadian cascadite cascado cascalho cascalote cascara cascarilla cascaron casco cascol case casearia casease caseation casebox caseful casefy caseharden caseic casein caseinogen casekeeper casel caseless caselessly casemaker casemaking casemate casemated casemates casement casemented casements caseof caseolysis caseous caser casern cases caseum caseweed casewood casework caseworker caseworm cash casha cashableness cashaw cashbook cashbox cashed cashel cashew cashgirl cashier cashiered cashierment cashiers cashing cashkeeper cashment cashmere cashmerette cashmirian casing casings casino casiri cask casket caskets casking casks caslon caspar caspian casque casques casquetel casquette cass cassabanana cassabully cassady cassandra cassareep casse cassee cassegrain casselty cassena casserole casseroles cassette cassettes cassia cassiaceae cassian cassias cassicus cassida cassididae cassidony cassiduloid cassiepeia cassimere cassine cassinian cassioberry cassiope cassiopeia cassiopeid cassius cassock cassocks casson cassonade cassoon cassumunar cassytha cassythaceae cast castalia castalio castanean castaneous castanet castanets castanopsis castanospermum castaway castaways caste castedst casteless castelet castellan castellana castellany castellate castellated castellation casterless casters castes casteth casthouse castigable castigate castigated castigation castigative castigatory castilian castilleja castillo castilloa casting castings castiron castle castled castles castlewards castlewise castling castock castoff castor castores castoreum castorial castorized castory castral castrametation castrate castrater castrator castrensian castro castrum casts castuli casual casualist casuality casually casualties casuariidae casuariiformes casuarinaceae casuarinaceous casuarinales casuarius casuary casuist casuistess casuistical casuistry casula casus caswellite cat catabaptist catabaptistarum catabases catabasis catabatic catabibazon catabiotic catabolically catabolism catacaustic catachresis catachrestic cataclasm cataclysm cataclysmal cataclysmatist cataclysmic cataclysmically cataclysmist cataclysms catacomb catacombs catacorolla catacromyodian catacrotic catacumbal catadicrotism catafalco catafalque catagen catagenesis catagenetic cataian catakinesis catakinetic catakinetomer catalan catalanist catalans catalase catalecta catalectic catalepsis catalepsy cataleptic cataleptize cataleptoid catalina catalineta catallactic catallactically catallactics catallum catalog cataloged catalogia catalogical catalogist catalogue catalogued cataloguer catalogues cataloguing cataloguist catalonian catalowne catalpa catalufa catalyse catalysis catalyst catalyte catalytic catalytical catalytically catamaran catamarcan catamarenan catamenia catamenial catamite catamited catamiting catamount catamountain catan catananche catapan catapasm catapetalous cataphatic cataphora cataphoresis cataphract cataphracti cataphrygian cataphrygianism cataphyll cataphylla cataphyllary cataphysical cataplasia cataplasis cataplasm catapleiite catapult catapulted cataract cataractal cataracted cataractous cataracts cataractwise catarinite catarrh catarrhal catarrhed catarrhine catarrhinian catarrhous catasarka catasetum catastaltic catastate catasterism catastrophe catastrophes catastrophic catastrophically catastrophist catathymic catatonia catatoniac catatonic catawamptious catawamptiously catbird catboat catcall catcalls catch catchable catchcry catched catchem catcher catchers catches catcheth catchfly catchiness catching catchingly catchland catchment catchpenny catchplate catchpole catchpolery catchpoll catchpollery catchword catchwords catchy catclaw cate catechesis catechetic catechetical catechise catechised catechising catechism catechismal catechismi catechist catechistic catechistically catechizable catechize catechized catechizer catechol catecholamine catecholamines catechu catechumen catechumenate catechumenical catechumenically catechumenism catechumenship categorematic categorematical categorematically categorial categorical categorically categories categorise categorist categorization categorize category catell catella catena catenae catenary catenata catenate catenation catenulate catepuce cater cateran catercorner catered caterer caterers caterership cateress catering caterpillar caterpillarlike caterpillars caterwaul caterwauler caterwauling cates catesbaea catfaced catfacing catfall catfish catfoot catfooted catgut cathare cathari catharism catharist catharistic catharization catharize catharpin catharping cathars catharsis cathartae cathartes cathartic cathartical cathartically catharticalness cathartides cathartolinum cathay cathead cathectic cathection cathedra cathedral cathedrale cathedraled cathedralesque cathedrallike cathedrals cathedratic cathedratica cathedratically cathedraticum catherization catherwood catheter catheterism catheterize catheters catheti cathetometer cathetometric cathetus cathexion cathexis cathidine cathine cathodal cathode cathodes cathodical cathodically cathodofluorescence cathodograph cathodography cathodoluminescence cathograph cathography cathole catholic catholicae catholical catholically catholicalness catholicate catholicism catholicist catholicity catholicize catholicizer catholicly catholicness catholicon catholicos catholics catholyte cathood cathro cathy caticom cation cationic catjang catkin catkins catlike catlin catling catlinite catmalison catmint catnap catnaps catnip catocala catocalid catocathartic catoctin catodon catodont catogene catogenic catoism catonian catonism catoptric catoptrical catoptromantic catoquina catostomidae catostomoid catostomus catpiece catpipe catproof cats catskill catstep catstitch catsup cattabu cattails cattalo catted cattell cattempt cattery cattily catting cattish cattishly cattishness cattle cattlebush cattledrovers cattlegate cattleman cattlemen cattletrack cattleya cattleyak catty catullian catvine catwalk catwort caubeen cauboge caucasian caucasic caucasoid caucasus cauch caucho caucus cauda caudae caudal caudally caudalward caudate caudated caudation caudatolenticular caudatory caudatum caudex caudices caudicle caudiform caudillism caudle caudocephalad caudodorsal caudolateral caudotibial caudotibialis caughnawaga caught cauk caul cauld cauldrifeness cauldron caulerpa caules caulescent caulicle caulicole caulicule cauliflorous cauliflower cauliflowers cauliform caulis caulite caulocarpous caulome caulomer caulophylline caulopteris caulosarc caulotaxy cauma caumatic caunch caunos caunus caupo caupones cauqui caurus causa causability causable causae causal causality causally causames causate causation causational causationist causative causativeness causativity cause caused causeless causelessly causelessness causent causer causerie causers causes causeth causeway causewaying causewayman causeways causey causidical causing causingness causis causitive causse causson caustic caustically causticiser causticism causticity causticization causticize causticness caustify cautel cautelous cautelousness cauter cauterant cauterise cauterization cauterize cauterized cautery caution cautionary cautioned cautioner cautioning cautionry cautions cautious cautiously cautiousness cautivo cava cavae caval cavalcade cavalero cavalier cavaliere cavalierish cavalierishness cavalierly cavalierness cavaliero cavaliers cavaliership cavalleria cavalry cavalryman cavalrymen cavate cave cavea caveator caved cavel cavelet caveman cavemen cavendae cavendish cavern cavernal caverned cavernicolous cavernous cavernously caverns cavernulous caves cavesson cavetto caviar cavicorn cavicornia cavidae cavil caviling cavilingly cavilingness cavilled caviller cavilling cavils cavina caving cavings cavish cavitate cavitation cavitied cavities cavity caviya cavort cavorting cavus cavy caw cawed cawing cawk caxiri caxon caxton caxtonian cay cayapa cayapo cayenne cayley cayman cayuga cayuse cayuses cayuvava caza caze cb cbs cc ccnu ccoya cdc cea cearin cease ceased ceaseless ceaselessly ceaselessness ceases ceasing ceasmic cebalrai cebatha cebid cebidae cebil cebine ceboid cebollite cebus cecidiologist cecidiology cecidogenous cecidologist cecidology cecidomyiidae cecil cecile cecilia cecilite cecils cecily cecinit cecity cecograph cecomorphae cecomorphic cecutiency cedar cedarbird cedared cedarite cedars cedarwood cedary cede ceded cedet cedrat cedrela cedrene cedric cedrin cedrine cedriret cedrium cedron cedrus cedry cedula ceeding cefaclor cefoxitin ceftizoxime ceftriaxone ceiba ceil ceilidh ceiling ceilinged ceilings ceilingward ceils ceint ceived ceiving cela celadon celaeno celandines celanese celastraceae celastraceous celation celature celebesian celebra celebrant celebrants celebrate celebrated celebratedness celebrates celebrating celebration celebrations celebrative celebrator celebratory celebre celebrities celebrity celemines celeomorphae celerity celery celesta celeste celestial celestiality celestialize celestially celestials celestina celestinian celestite celestitude celiadelphus celiagra celialgia celibacy celibatarian celibate celibates celibatic celibatist celidography celiectasia celiectomy celiemia celiitis celiocentesis celiocyesis celiodynia celioelytrotomy celioenterotomy celiolymph celiomyalgia celiomyodynia celiomyomotomy celiomyositis celioncus celioparacentesis celiopyosis celiorrhaphy celiosalpingotomy celioschisis celioscope celiotomy celite cell cella cellae cellar cellarer cellaring cellarman cellars cellarway cellarwoman cellated celle celled cellepora celliform cellipetal cellist cello cellobiose celloid celloidin celloist cellophane cells celluar cellucotton cellular cellularity cellularly cellule cellulicidal celluliferous cellulifugally cellulipetal cellulipetally cellulite cellulitis cellulocutaneous cellulofibrous celluloid celluloided cellulomonadeae cellulomonas cellulose cellulosic cellulotoxic cellvibrio celosia celotex celsia celsian celtdom celtiberi celtiberian celtically celtidaceae celtiform celtillyrians celtique celtish celtism celtologue celtophil celtophobe celtophobia celtuce celui cembalist cembalo cement cementation cementatory cemented cementin cementing cementite cementless cementmaker cementmaking cementoblast cementoma cements cementum cemeterial cemeteries cemetery cenaculum cenanthous cenanthy cencerro cenchrus cenobian cenobites cenobitical cenobitically cenobitism cenoby cenogenesis cenogenetic cenogonous cenomanian cenosite cenosity cenospecies cenotaph cenotaphy cenote cenotes cenozoic cense censer censerless censers censi censive censor censorable censorate censored censorial censoring censorious censoriously censors censorship censurable censurableness censurably censure censured censureless censures censuring census cent centage cental centare centaur centaurdom centauress centauri centaurial centaurid centauridium centauromachy centaury centavo centena centenarian centenarianism centenary centenier centenionalis centennially center centerable centered centering centerline centers centervelic centerward centerwise centesimal centesimally centesimi centesimo centesis centetes centetid centetidae centgener centiar centiare centibar centifolious centigrade centile centillion centiloquy centime centimes centimeter centimeters centimetre centimetres centimo centimolar centinels centinormal centipedal centipede centipedes centistere centner centonical centonism central centralen centrales centralism centralist centralistic centrality centralization centralize centralized centralizer centralizing centrally centralness centranth centrarchid centrarchidae centrarchoid centraxonia centraxonial centre centrechinoida centred centremost centrepieces centres centrex centric centrical centricality centrically centricalness centricipital centriciput centriffed centrifugal centrifugalize centrifugaller centrifugally centrifugals centrifugate centrifuge centrifugence centring centriole centripetal centripetalism centripetally centripetence centripetency centriscid centriscidae centrisciform centriscoid centrist centrobarical centroclinal centrode centrodesmus centrodorsal centrodorsally centroid centroidal centrolepidaceous centrolinead centrolineal centronucleus centroplasm centrosema centrosomic centrosoyus centrospermae centrosymmetric centrosymmetry centrum cents centumvir centumviral centumvirate centunculus centuple centuplicate centuplication centuply centurial centuriate centuriation centuried centuries centurion century ceorl ceorlish cep cepaceous cephaelis cephalacanthidae cephalagra cephalalgic cephalalgy cephalanthium cephalanthus cephalaspis cephalata cephalemia cephaletron cephaleuros cephalexin cephalic cephalin cephalina cephaline cephalitis cephalization cephalobranchiata cephalobranchiate cephalocathartic cephalocele cephalocercal cephalocereus cephalochorda cephalochordal cephalochordata cephalochordate cephaloclast cephalocone cephalocyst cephalodymia cephalofacial cephalogram cephalograph cephalohumeral cephalohumeralis cephaloid cephalology cephalomancy cephalomenia cephalomere cephalometer cephalometric cephalometry cephalomotor cephalon cephalonasal cephalopagus cephalopathy cephalophus cephaloplegia cephaloplegic cephalopod cephalopoda cephalopodan cephalopodic cephalopodous cephalopods cephalopterus cephalorhachidian cephalosome cephalospinal cephalosporin cephalosporins cephalosporium cephalostyle cephalotheca cephalothecal cephalothin cephalothoracic cephalotome cephalotomy cephalotractor cephalotribe cephalotripsy cephalotrocha cephalotus cephalous cephapirin cephas cepheus cephidae cephradine cephus ceps cept cepted ception ceptor ceq ceraceous ceral ceramal cerambycid ceramiaceous ceramic ceramicite ceramics ceramidium ceramist ceramium ceramographic ceramography cerargyrite ceras cerasein cerasin cerastes cerastium cerasus cerata cerate ceratiasis ceratiidae ceratioid ceration ceratite ceratites ceratitic ceratitis ceratitoidea ceratium ceratoblast ceratobranchial ceratocricoid ceratodidae ceratodontidae ceratodus ceratoglossus ceratomandibular ceratomania ceratonia ceratophrys ceratophyllaceae ceratophyllaceous ceratophyllum ceratophyta ceratophyte ceratopsia ceratopsid ceratorhine ceratosa ceratosaurus ceratospongiae ceratospongian ceratostomataceae ceratostomella ceratotheca ceratothecal ceraunia ceraunics ceraunogram ceraunograph ceraunomancy ceraunophone ceraunoscope ceraunoscopy cerberean cerberus cercaria cercarial cercarian cerci cercidiphyllaceae cercis cercolabes cercolabidae cercomonadidae cercopid cercopidae cercopithecidae cercopithecoid cercopithecus cercosporella cercus cerdonian cereal cerealian cerealin cerealism cerealist cerealose cereals cerebella cerebellifugal cerebellipetal cerebellocortex cerebellopontine cerebellorubral cerebellospinal cerebellum cerebral cerebralgia cerebralism cerebralist cerebralization cerebrally cerebrasthenia cerebrasthenic cerebrate cerebration cerebrational cerebri cerebricity cerebriform cerebrifugal cerebrin cerebripetal cerebritis cerebrogalactose cerebroid cerebromalacia cerebromedullary cerebromeningeal cerebromeningitis cerebron cerebroparietal cerebropathy cerebropedal cerebrophysiology cerebropontile cerebropsychosis cerebrorachidian cerebroscope cerebroscopy cerebrose cerebrosensorial cerebrosis cerebrospinal cerebrosuria cerebrotomy cerebrotonic cerebrovascular cerebrovisceral cerebrum cerecloth cerecloths cered cereless cerements ceremonial ceremonialism ceremonialist ceremonialize ceremonially ceremonials ceremonies ceremonious ceremoniously ceremony cereous cerer ceres ceresin cereus cerevis ceria cerialia cerianthid cerianthidae cerianthus ceric ceride ceriferous cerigerous cerine ceriomyces cerion ceriops cerise cerite cerithium cerium cern cerning cerniture cerography cerolite ceroma ceromancy cerophilous ceroplast ceroplastic ceroplastics ceroplasty cerotate cerote cerotene cerotype cerous ceroxyle ceroxylon cerrero cerrial cerris cerros certain certaine certainly certainties certainty certe certes certhia certhiidae certie certifiable certifiableness certifiably certificate certificated certificates certification certificator certificatory certified certifier certifies certify certifying certiorari certiorate certioration certis certitude certosina certy cerule cerulean cerulein ceruleite ceruleolactite cerulescent ceruleum cerulignone cerumen ceruminal ceruminous cerumniparous ceruse cerussite cervantes cervantist cervantite cervical cervicales cervicapra cervicicardiac cervicide cerviciplex cervicitis cervicoaxillary cervicobasilar cervicobrachial cervicobregmatic cervicobuccal cervicodynia cervicofacial cervicolabial cervicolingual cervicolumbar cerviconasal cervicoscapular cervicothoracic cervicovaginal cervicovesical cervid cervidae cervinae cervine cervisia cervix cervoid cervus ceryl ces cesare cesareans cesarevich cesarevitch cesious cesium cespititous cespitosely cespitulose cess cessantly cessation cessative cesser cessible cessio cession cessionaire cessionary cessions cessna cessor cesspipe cesspit cesspool cesspools cest cestida cestidae cestoda cestodaria cestoid cestoidea cestoidean cestracion cestraciont cestraciontes cestraciontidae cestrian cestrum cestus cet cetacea cetacean cetaceans cetaceous cetaceum cetane cetene cetera ceterach cetiosauria cetiosaurian cetiosaurus cetological cetologist cetology cetomorpha cetomorphic cetoniides cetoniinae cetorhinid cetotolite cetraric cetrarin cette cetus cetyl cetylene cetylic ceux cevadilla cevadilline cevadine cevennian cevenol cevenole cevine cevitamic ceylanite ceylonese ceyx cezanne cezannesque cfids cfs cha chab chabasie chabazite chabot chabutra chacate chace chacer chachapuya chackchiuma chacker chackle chackler chacma chaco chacoli chadacryst chadwick chaenolobus chaenomeles chaetangiaceae chaetangium chaetetes chaetifera chaetiferous chaetodontid chaetophoraceous chaetophorous chaetopodous chaetopterin chaetopterus chaetosoma chaetosomatidae chaetosomidae chaetotactic chafe chafed chafer chafery chafes chafewax chafeweed chaff chaffcutter chaffed chaffer chaffered chafferer chaffering chaffinch chaffiness chaffing chaffingly chaffless chafflike chaffseed chaffwax chaffweed chaffy chafing chafings chaft chafted chaga chagan chagga chagrin chagrined chaguar chagul chailletiaceae chain chainage chaine chained chainer chainey chaining chainless chainlet chainman chainon chains chainsaw chainwale chainwork chair chaired chairer chairing chairless chairman chairmanship chairmen chairmender chairmending chairperson chairs chairwarmer chairwoman chairwomen chais chaise chaises chait chaja chaka chakari chakavski chakazi chakobu chakra chakram chakravartin chaksi chal chalaco chalastic chalazal chalaze chalaziferous chalazion chalazogamy chalazoidite chalcanthum chalcedonian chalcedonic chalcedonous chalcedony chalchuite chalcid chalcidic chalcidicum chalcidid chalcididae chalcidiform chalcidoid chalcidoidea chalcioecus chalcis chalcites chalcocite chalcograph chalcographer chalcographic chalcographical chalcolite chalcomancy chalcomenite chalcon chalcone chalcophyllite chalcopyrite chalcosiderite chalcostibite chalcotrichite chalcotript chaldaei chaldean chaldee chalder chalders chalet chaleteer chalets chaleur chalice chaliced chalices chalicosis chalicothere chalicotheriid chalicotheriidae chalicotherioid chalicotherium chalina chalinidae chalinine chalinitis chalk chalkboard chalked chalker chalketh chalkiness chalking chalklike chalkography chalkosideric chalks chalkstony chalkworker chalky challah challenge challenged challengee challenger challengers challenges challenging challengingly challie challis challote chalmer chalmers chalon chalone chalons chalta chalumeau chalutz chalutzim chalybeate chalybes chama chamacoco chamaebatia chamaecistus chamaecranial chamaecyparis chamaedaphne chamaeleo chamaeleon chamaeleontidae chamaelirium chamaenerion chamaepericlymenum chamaeprosopic chamaesaura chamaesiphon chamaesiphonales chamal chamar chamber chamberdeacon chambered chambering chamberlain chamberlainry chamberlet chamberleted chambermaid chambermaiding chambermaids chambers chambertin chamberwoman chambioa chambray chambre chambrel chambres chambul chamecephalus chamecephaly chameleon chameleonlike chamfer chamferer chamfron chamian chamicuro chamidae chamisal chamiso chamite chamkanni chamma chamois chamoisite chamoline chamomile chamomilla chamos champ champac champaca champagne champagnes champaign champaigns champain champak champaka champed champer champertor champerty champest champignon champing champion championed championess championize championless championlike champions championship championships champlain champlainic champleve champs champy chanabal chanca chance chanced chanceful chancefully chancefulness chancel chanceled chancelier chancellery chancellor chancellorate chancellorism chancellorship chancery chances chanche chanchito chancing chancroidal chancrous chancy chandala chandam chandelier chandeliers chandi chandler chandleress chandlering chandoo chandu chandul chanfroned chang changar change changeability changeable changeableness changeably changed changedale changedness changeful changefully changefulness changeless changeling changement changeover changer changers changes changeth changing changingly chank chanked channel channelbill channeled channeler channelization channelled channellings channels channelwards channer chanson chansons chanst chant chantable chanted chanter chanterelle chantership chantey chanteyman chanticleer chanting chantlate chantre chantress chantries chantry chants chao chaogenous chaology chaos chaotic chaotical chaotically chaoticness chaouia chap chapacuran chapah chapanec chaparral chapbook chape chapeau chapeaux chapel chapelgoer chapelgoing chapellage chapellany chapelman chapelry chapels chapelward chaperno chaperon chaperone chaperoned chaperoning chaperons chapfallen chapiters chapitral chaplain chaplaincies chaplaincy chaplains chaplainship chaplet chapleted chaplets chapman chapmen chapped chappel chapper chappie chappin chappy chaps chapt chaptalize chapter chapteral chapterhouse chapters chapwoman chaque char chara charabanc characeae characeous characetum characine characinid characinidae characinoid characreristic character characterful characterial characterical characterise characterised characterises characterism characterist characteristic characteristically characteristicalness characteristics characterizable characterization characterizations characterize characterized characterizer characterizes characterizing characterless characterlessness characterologist characters charactery charade charades charadrii charadriidae charadriiformes charadrine charadrius charas charbroiled charcoal charcoaled charcoalmaking charcoaly charcot charcutiere chard charer charge chargeability chargeable chargeableness charged chargee chargeless charger chargers charges chargeship charging charicleia charier charily charing chariot chariotee charioteer charioteership chariotman chariotry chariots charism charismatic charissa charistia charisticary charitable charitably charities charity charityless charivari chark charka charkha charkhana charlatan charlatanical charlatanically charlatanish charlatanism charlatanistic charlatanry charlatanship charles charley charlie charlock charlotte charm charmant charme charmed charmel charmer charmful charmfully charmin charming charmingly charmingness charmless charmlessly charms charnel charnockite charonic charophyta charqued charr charred charrit charruan charruas charry chars charshaf chart charta chartaceous charted charter charterable chartered charterer charterers charterhouse charterist charterless chartermaster charters charthouse charting chartless chartographist chartology chartometer chartophylax chartres chartreuse chartreux chartroom charts chartulary charwoman charwomen chary charybdian charybdis chase chaseable chased chaser chasers chases chasidim chasing chasm chasma chasmal chasmed chasmogamic chasmogamous chasmogamy chasmophyte chasms chasse chasselas chassepot chasseur chasseurs chassignite chassis chastacosta chaste chastely chasten chastened chastener chasteness chastenest chasteneth chastening chastenment chastens chasteweed chastisable chastise chastised chastisement chastisements chastiser chastises chastiseth chastising chastity chastize chasuble chasubled chasubles chat chataka chateau chateaus chateaux chatelain chatelaine chatelaines chatelainry chatham chati chatillon chatino chatot chatoyance chatoyant chats chatsome chatta chattable chattanooga chattanoogan chattation chatted chattel chattelhood chattelism chattelization chattelize chattels chatter chatteration chatterbag chatterbox chattered chatterer chatterers chattering chatterings chattermag chattermagging chatters chattertonian chatti chattily chattiness chatting chatty chatwood chaucer chaucerian chauceriana chaucerism chaudron chauffard chauffer chauffeur chauffeurs chauk chaukidari chaukies chauliodes chaulmoograte chaulmoogric chauna chauncey chaunge chaunt chaunted chaus chaussee chautauqua chauvinism chauvinistically chavantean chavender chaver chavibetol chavicin chavicine chavicol chavish chaw chawer chawing chawk chawl chawstick chaya chayaroot chayma chayote chayroot chazan chazy chd che cheak cheap cheapen cheapened cheapening cheapens cheaper cheapery cheapest cheaping cheaply cheapness cheapside cheapskate chear cheared chearful chearfully chearfulness chears cheat cheatable cheatableness cheated cheater cheatery cheating cheatrie cheats chebacco chebec chebel chebog chebule chechehet chechen check checkable checkage checkbird checkbook checked checker checkerbelly checkerbloom checkerboard checkered checkerist checkers checkerwise checkerwork checkhook checking checkless checkman checkmate checkmated checkmating checkoff checkout checkpoint checkrow checkrowed checkrower checks checkstrap checkstring checksum checksummed checkup checkweigher checkwork checky cheddite cheder chedlock chee cheecha cheechako cheek cheekbone cheekbones cheeked cheeker cheekily cheekish cheekless cheekpiece cheeks cheeky cheeper cheepily cheepiness cheeping cheeps cheepy cheer cheered cheerer cheereth cheerful cheerfulest cheerfuller cheerfullest cheerfullness cheerfully cheerfulness cheerfulsome cheerier cheeriest cheerily cheeriness cheering cheeringly cheerio cheerlead cheerleader cheerleaders cheerleading cheerless cheerlessly cheerlessness cheerly cheers cheery cheese cheeseboard cheesebox cheeseburger cheesecloth cheesecurd cheesecutter cheeselip cheesemonger cheesemongering cheesemongerly cheesemongery cheesery cheeses cheesewood cheesiness cheesy cheet cheetah cheeter cheetie chef chefs chegoe cheifly cheilanthes cheileos cheilodipteridae cheilodipterus cheilostomata cheilostomatous cheir cheiragra cheiranthus cheiroglossa cheirognomy cheirography cheirolin cheirology cheiromegaly cheiropodist cheiropompholyx cheiroptera cheirosophy cheirospasm cheirotherium cheka chekan cheke chekist chekmak chela chelaship chelating chelation chelem chelerythrine chelicer chelicera cheliceral chelicerate chelide chelidon chelidonine chelidonium chelidosaurus cheliferidea cheliferous chelingo cheliped chellean chelodine chelone chelonia chelonian chelonidae cheloniid cheloniidae chelonin chelophore cheltenham chelura chelydidae chelydra chelydroid chelys chemakuan chemasthenia chemawinite chemesthesis chemiam chemiatric chemiatrist chemiatry chemic chemica chemical chemicalization chemicalize chemically chemicals chemicoastrological chemicobiologic chemicodynamic chemicomechanical chemicomineralogical chemicopharmaceutical chemicophysical chemicophysics chemicophysiological chemicovital chemicum chemigraphy chemiloon chemins chemiotactic chemiotaxic chemiotaxis chemiotropic chemiotropism chemiphotic chemis chemischen chemise chemises chemisette chemism chemisorb chemist chemistries chemistry chemists chemitype chemitypy chemokinesis chemokinetic chemolysis chemolytic chemoreception chemoreflex chemoresistance chemoserotherapy chemosmotic chemosynthetic chemotactically chemotaxis chemotherapeutic chemotherapist chemotherapy chemotic chemotropic chemotropically chemotropism chemung chemurgical chemurgy chena chende chenet chenevixite cheney cheng chenica chenille cheniller chenodiol chenopod chenopodiaceae chenopodiaceous chenopodiales cheoplastic chepster cheque chequebook chequer chequered chequers cheques cher chera chercock chere cherem cheremiss cherimoya cherish cherishable cherished cherisher cherishes cherishing cherishingly cherishment cherkess cherkesser chermes chermidae chermish cherokee cheroot cherried cherries cherry cherryblossom cherrylike cherrywood chersonese cherte cherub cherubic cherubical cherubim cherubin cherubs cherusci chervante chervil cheryl cheshire cheson chess chessboard chessdom chessel chessist chessman chessmen chesstree chessylite chest chester chesterfield chesterlite chesterton chestful chestnut chestnuts chestnutty chests chesty cheth chettik chetverik chetvert chevage cheval chevalier chevaliers chevaline chevaux cheve cheven chevener chevesaile cheveux chevin chevisance chevise chevon chevraeana chevrette chevrolet chevron chevronel chevronelly chevrons chevronwise chevy chew chewable chewbark chewed chewer cheweth chewing chews chewstick chewy cheyenne cheyney chez chf chhatri chi chia chiam chiang chiapanec chiaroscurist chiaroscuro chiasm chiasma chiasmal chiasmatypy chiasmodontidae chiasmus chiastic chiastolite chiastoneural chiastoneury chiaus chibcha chibinite chibouk chibrit chic chicago chicagoan chicane chicaner chicanery chicano chicaric chicayote chichi chichicaste chichimec chichimecan chichituna chick chickabiddy chickadee chickadees chickahominy chickaree chickasaw chickell chicken chickenbill chickenbreasted chickenhearted chickenheartedly chickenheartedness chickenpox chickens chicker chickling chicks chickstone chickweed chickwit chicness chicomecoatl chicory chicot chicote chicqued chicquer chicquest chid chide chided chides chiding chidingness chidra chief chiefess chiefest chieffly chiefish chiefless chiefling chiefly chiefs chieftain chieftaincy chieftainess chieftainry chieftains chieftainship chieftess chiel chield chien chiffer chiffon chiffonade chiffonier chiffoniers chifforobe chigger chiggers chiggerweed chignon chignoned chigoe chihuahua chil chilalgia chilarium chilblains chilcat child childbearing childbed childbirth childcrowing childe childer childern childhood childing childish childishly childishness childkind childless childlessness childlike childlikeness childly childproof children childrenite childridden childship childward chile chileanization chileanize chilenische chilenite chili chiliadal chiliadic chiliagon chiliarchia chiliarchy chiliasm chiliast chiliastic chilicote chilicothe chilina chilinidae chiliomb chilion chilitis chilkat chill chilla chillagite chilled chillen chiller chillest chillier chilliness chilling chillingly chillness chillo chillroom chills chilluns chilly chilognath chilognatha chilognathan chilogrammo chiloma chilomastix chiloncus chilopod chilopodan chilopodous chilostomata chilostomatous chilostome chilotomy chiltern chilver chim chimaera chimaeras chimaerid chimaeridae chimaeroid chimaeroidei chimakum chimalakwe chimalapa chimango chimaphila chimarikan chimbly chime chimed chimer chimera chimeras chimeric chimerical chimerically chimericalness chimes chimesmaster chimie chiming chimique chimleycorners chimmer chimney chimneyhead chimneyless chimneypiece chimneys chimonanthus chimp chimpanzee chimu chin china chinaberry chinalike chinaman chinamania chinamen chinampa chinanta chinantecan chinantecs chinaroot chinatown chinaware chinawoman chinband chinch chincha chinchasuyu chinchayote chinche chinchilla chinching chincloth chine chined chinee chinese chinesery ching chingma chingpaw chinin chink chinkara chinked chinker chinking chinkle chinks chinky chinless chinnam chinned chinny chino chinois chinoiserie chinoises chinook chinookan chinotti chinpiece chinquapin chins chint chintz chintzes chintzy chiococca chiococcine chiogenes chiolite chionaspis chionididae chionis chiotilla chip chipboard chipchop chipewyan chiplet chipling chipmunk chipmunks chippable chippage chipped chippendale chipper chippering chipperness chippewa chipping chippings chippy chips chipwood chique chiquitan chiralgia chirapsia chirarthritis chirata chiricahua chirino chiripa chirivita chirk chirked chirm chiro chirocosmetics chirognomic chirognostic chirograph chirographary chirographic chirogymnast chirological chirologically chirologist chirology chiromance chiromancer chiromancy chiromant chiromantis chiromegaly chirometer chiromyidae chiromys chiron chironomic chironomus chironomy chironym chiroplasty chiropod chiropodial chiropodic chiropodist chiropodistry chiropractor chiropractors chiropraxis chiropteran chiropterite chiropterygious chiropterygium chirospasm chirotherian chirotherium chirothesia chirotonsory chirotony chirp chirped chirpily chirpiness chirping chirpingly chirpings chirpling chirps chirpy chirrup chirruped chirruper chirruping chirrupy chirurgeon chirurgery chirurgical chirurgie chisedec chisel chiseled chiseling chiselled chiseller chisellike chiselling chiselmouth chisels chisholm chism chit chita chitchat chitchatty chitimachan chitin chitinization chitinocalcareous chitinogenous chitinous chitosamine chitose chitrali chitter chittered chittering chitterling chitterlings chitty chivalresque chivalric chivalries chivalrous chivalrously chivalry chive chives chivey chiviatite chivins chladnite chlamyd chlamydate chlamydeous chlamydial chlamydobacteriales chlamydomonadaceae chlamydomonadidae chlamydomonas chlamydoselachidae chlamydoselachus chlamydospore chlamyphore chlamyphorus chlamys chloasma chloe chloracetate chloral chloralformamide chloralide chloralism chloralization chloralize chloralum chlorambucil chloramide chloramine chloranemia chloranemic chloranil chloranthaceae chloranthus chlorapatite chlorastrolite chlorate chlorates chlorazide chlordane chlordiazepoxide chlorella chlorellaceous chloremia chlorenchyma chlorhydrate chlorhydric chlorhydrox chloric chlorid chloridated chloride chloridella chloridellidae chlorider chlorides chloridize chlorimetric chlorimetry chlorinated chlorinator chlorine chlorinous chloriodide chlorite chloritic chloritization chlorize chlormethane chlormethylic chloroacetone chloroamide chloroamine chloroanaemia chloroanemia chloroaurate chloroauric chloroaurite chlorobenzene chlorobromide chlorocalcite chlorocarbonate chlorochromates chlorochrous chlorococcaceae chlorococcales chlorococcus chlorodyne chloroform chloroformic chloroforming chloroformism chloroformist chloroformization chloroformize chlorogenic chlorohyadic chlorohydric chlorohydrin chlorohydrocarbon chloroiodide chloroleucite chloroma chloromelanite chlorometer chloromethane chlorometric chlorometry chloromycetin chloronitrate chloropal chloropalladic chlorophane chlorophoenicite chlorophora chlorophyl chlorophyll chlorophyllan chlorophyllide chlorophylliferous chlorophylligenous chlorophylligerous chlorophyllin chlorophylloid chlorophyllose chlorophyllous chloropia chloropicrin chloroplast chloroplastid chloroplatinate chloroplatinite chloropromazine chloroquine chlorosilicate chlorosis chlorosulphonic chlorotic chlorpheniramine chlorpromazine chlorpropamide chlorprothixene chlorsalol chlorthalidone chloruretted chloryl chlorzoxazone chnuphis cho choanate choanocytal choanocyte choanoflagellidae choanoid choanophorous choanosomal choanosome choate choaty chob chocard chock chockablock chocker chockler chockman choco chocoan chocolate chocolates choctaw choel choenix choes choffer choga chogak chogset choice choiceful choiceless choicelessness choicer choices choicest choicy choil choir choirboy choiring choirlike choirman choirmaster choirs choirwise choisir choisis chokage choke choked choker chokes chokestrap chokidar chokiness choking chokingly chokra chol chola cholalic cholangioitis cholanthrene cholate chold choleate cholecyanine cholecystalgia cholecystectasia cholecystectomies cholecystenterorrhaphy cholecystenterostomy cholecystgastrostomy cholecystitis cholecystnephrostomy cholecystocolostomy cholecystocolotomy cholecystoduodenostomy cholecystogastrostomy cholecystogram cholecystography cholecystoileostomy cholecystokinin cholecystolithotripsy cholecystopexy cholecystorrhaphy cholecystotomy choledoch choledochal choledochectomy choledochoduodenostomy choledocholithiasis choledocholithotomy choledochorrhaphy choledochotomy cholehematin choleic choleine choleinic cholelithiasis cholelithic cholelithotrity choleokinase cholepoietic choler cholera choleraic choleric cholericly cholericness choleriform cholerine choleroid choleromania cholerophobia cholerrhagia choleserol cholestane cholestanol cholesteatomatous cholestene cholesteral cholesteric cholesterin cholesterinic cholesterinuria cholesterol cholesterolemia cholesterols cholesteroluria cholesterosis cholesteryl choleuria choliambic choliambics cholinergic cholla choller cholochrome chologenetic chololithic cholonan cholones cholophein cholorrhea choloscopy cholseterol cholterheaded cholum choluria choluteca cholysteramine chomp chondr chondral chondralgia chondrectomy chondric chondrification chondrify chondrigen chondrin chondrinous chondriocont chondriome chondriomere chondriosomal chondriosome chondriosphere chondrite chondroalbuminoid chondroangioma chondroarthritis chondroblast chondrocarcinoma chondrocele chondroclasis chondrocostal chondrocranial chondrocranium chondrodite chondroendothelioma chondroepiphysis chondrofetal chondrofibroma chondrofibromatous chondroganoidei chondrogenesis chondrogenetic chondrogeny chondroglossal chondroglossus chondroid chondroitic chondrology chondroma chondromalacia chondromucoid chondromyces chondromyoma chondromyxoma chondromyxosarcoma chondrophore chondrophyte chondroplast chondroprotein chondropterygian chondropterygious chondrosarcoma chondrosarcomatous chondrostean chondrostei chondrosteoma chondrule chondrus chonta chontal chontalan chontawood choosable choosableness choose choosers chooses chooseth choosing choosingly choosy chop chopa chopfallen chopin choplogic chopped chopper choppered choppers chopping choppings choppy chops chopstick chopunnish chora choragic choragium choragus choragy chorai choral choralcelo chorale choramphenicol choran chord chordacentrous chordacentrum chordaceous chordal chordamesoderm chordata chordate chorded chordeiles chordoid chordotomy chordotonal chords choreatic choregic choregus choregy choreic choreiform choreograph choreographed choreographer choreographic choreographical choreography choreomania chorepiscopal chorepiscopi chores choreus choreutic choriamb choriambi choriambic choriambize choriambus choric chorine chorioadenoma chorioallantoic chorioallantois choriocapillaris choriocele chorioid chorioidal chorioidocyclitis chorioidoiritis chorioidoretinitis chorioma chorionepithelioma chorionic chorioptes chorioretinal chorioretinitis choripetalae choripetalous chorisepalous chorisis chorism choristate chorister choristership choristoblastoma chorization chorizont chorizontal chorizontes chorizontic chorizontist chorographer chorographic chorographical choroid choroidal choroiditis choroidocyclitis choroidoiritis choroidoretinitis chorological chorology choromania choromanic chorook chorten chorti chortle chortosterol chorus chorused choruser choruses choruslike chorwat choryos chose chosen choses chou chouan chouanize chouette chough choultry choup chous choused chouser chousingha chow chowanoc chowder chowderheaded chowk chowry choya choyroot chozar chremata chrematheism chrematist chrematistic chrematistics chreotechnics chresmology chrestomathic chrestomathics chretien chretienne chretiens chretisnne chrimsel chris chrism chrismal chrismary chrismatine chrismation chrismatite chrismatory chrismon chrisom chrisomloosing chrisroot christ christabel christadelphian christadelphianism christcross christdom christen christendie christendom christened christener christening christenings christensen christenson christhood christian christiana christiania christianiadeal christianism christianite christianization christianize christianized christianizer christianizing christianlike christianly christianogentilism christianography christianomastix christianopaganism christianson christicide christie christiform christina christine christless christlessness christlichen christlike christlikeness christly christmas christmasberry christmasing christmastide christmasy christoffel christogram christology christoph christophany christopher christy chroatol chrobat chroma chromaffin chromaffinic chromammine chromaphil chromaphores chromascope chromate chromates chromatic chromatically chromatid chromatin chromatinic chromatism chromatium chromatocyte chromatogram chromatographic chromatography chromatology chromatolytic chromatometer chromatone chromatopathia chromatophilia chromatophilic chromatophilous chromatophore chromatophores chromatophoric chromatophorous chromatopsia chromatoptometer chromatoscope chromatoscopy chromatosphere chromatrope chromaturia chromatype chromazurine chrome chromene chromesthesia chromic chromicize chromid chromides chromidial chromidiogamy chromidiosome chromidium chromiole chromism chromium chromo chromobacterieae chromobacterium chromocenter chromochalcographic chromochalcography chromocollograph chromocollographic chromocollography chromocollotypy chromocyte chromocytometer chromodiascope chromogen chromogene chromogenesis chromogenetic chromogenic chromogenous chromogram chromograph chromoisomer chromoisomeric chromolipoid chromolith chromolithic chromolithograph chromolithographer chromolithographic chromolithography chromolysis chromometer chromone chromoparous chromophane chromophile chromophilous chromophore chromophotograph chromophotographic chromophotolithograph chromophyll chromoplasm chromoplasmic chromoplast chromoplastid chromopsia chromoptometer chromoptometrical chromos chromosantonin chromoscope chromoscopic chromoscopy chromosome chromosomes chromosphere chromospheric chromotherapy chromotropic chromotropy chromotypographic chromotypography chromotypy chromoxylograph chromoxylography chromule chromyl chronal chronanagram chronaxia chronaxie chronic chronical chronically chronicity chronicle chronicled chronicler chroniclers chronicles chronicorum chronique chroniqueur chronobarometer chronocinematography chronocrator chronocyclegraph chronogeneous chronogenesis chronogram chronogrammatic chronogrammic chronograph chronographer chronographical chronographically chronography chronologer chronologic chronological chronologically chronologies chronologist chronologists chronologize chronology chronomantic chronometer chronometric chronometrical chronometrically chronometry chrononomy chronopher chronophotographic chronophotography chronoscope chronoscopic chronoscopically chronoscopy chronosemic chronothermal chronothermometer chronotropism chroococcaceous chroococcales chroococcoid chroococcus chrosperma chrotta chrusanthemon chrusou chrysal chrysalid chrysalidian chrysalis chrysaloid chrysammic chrysamminic chrysamphora chrysaniline chrysanisic chrysanthemin chrysanthemums chrysanthous chrysarobin chrysatropic chrysazin chrysazol chryselectrum chryselephantine chrysemys chrysene chrysenic chrysid chrysidella chrysidid chrysididae chrysin chrysis chrysler chrysobalanus chrysoberyl chrysochlore chrysochloris chrysochrous chrysocolla chrysocracy chrysogen chrysograph chrysography chrysoidine chrysolite chrysolitic chrysolophus chrysomelid chrysomonad chrysomonadales chrysomonadina chrysomonadine chrysomyia chrysopa chrysopee chrysophanic chrysophanus chrysophilite chrysophlyctis chrysophyll chrysopid chrysopoeia chrysopoetic chrysoprase chrysops chrysopsis chrysosplenium chrysothamnus chrysothrix chrysotile chrysotis chrystalized chrystocrene chthonian chthonic chthonophagia chthonophagy chub chubbed chubbedness chubbily chubbiness chubby chuck chucked chucker chuckhole chuckies chucking chuckingly chuckle chuckled chuckleheaded chuckleheadedness chuckles chuckling chucklingly chucklings chucks chuckwalla chucky chud chuddar chude chudic chueta chufa chuff chuffy chug chugged chugger chugging chugiam chuglam chugs chuhra chukar chukor chukore chulan chullpa chulo chum chumashan chumawi chummage chummed chummer chummy chump chumpaka chumped chumping chumpishness chumpivilca chums chumship chun chuncho chunga chunk chunkhead chunkily chunkiness chunks chunky chunner chunnia chupak chupon chuprassie chuprassy church churchdom churches churchful churchgo churchgoing churchgrith churchianity churchified churchill churchillian churchish churchite churchless churchlike churchliness churchly churchman churchmaster churchmen churchrobber churchscot churchward churchwarden churchwardenism churchwardenize churchwardens churchwardenship churchwise churchwoman churchwomen churchy churchyard churel churinga churl churled churlish churlishly churlishness churls churly churm churn churnability churned churning churns churnstaff churoya churr churrigueresque churrworm chuse chuser chuses chusing chut chute chuter chutes chutney chuvash chylaceous chylangioma chyle chylemia chylifactive chylifactory chyliferous chylificatory chyliform chylify chylocauly chylocele chylocyst chyloid chylopericardium chylophyllous chylophylly chylopoiesis chylosis chylous chyluria chymaqueous chymase chyme chymic chymosin chymotrypsin chymotrypsinogen chymous chypre chytra chytridiaceous chytridial chytridiales chytridiose chytridium cia cial ciated cibarial cibarian cibarious cibation cibol cibola cibolan ciboney cibophobia ciborium cibory cibos cicad cicada cicadellidae cicadid cicala cicalas cicatrice cicatrices cicatricial cicatricose cicatricule cicatrix cicatrizant cicatrizate cicatrization cicatrize cicatrized cicatrizer cicatrose cicer cicerone ciceroni ciceronianism ciceronic ciceronically ciceronism cichlidae cichoraceous cichoriaceae cichoriaceous cicindela cicindelid cicisbeism ciclatoun ciconian ciconiidae ciconiiform ciconiiformes ciconine ciconioid cid cidarid cidaridae cidaris cidaroida cided cidentally cidents cider ciderish ciderist ciderkin cient cientifica cieux cig cigala cigar cigaresque cigarette cigarettes cigarfish cigarillo cigarito cigars cigarstand cigua ciguatera cilectomy cilia ciliary ciliate ciliated ciliately ciliation cilice cilician ciliella ciliferous ciliiferous ciliiform cilioflagellata cilioflagellate ciliograde ciliolate ciliolum ciliophora cilioscleral ciliotomy cillosis cimbia cimbri cimbric cimelia cimex cimicid cimicidae cimicide cimiciform cimicoid ciminite cimline cimmeria cimmerian cimmerianism cimolite cinch cinched cincher cinchomeronic cinchonaceae cinchonamine cinchonate cinchonia cinchonicine cinchonidia cinchonidine cinchonism cinchonization cinchonize cinchonology cinchophen cincinnal cincinnatian cincinnus cinclidae cinclis cinclus cinct cincture cinder cinderous cinders cindy cine cinecamera cinefilm cinel cinema cinemascope cinematic cinematically cinematize cinematograph cinematographer cinematographic cinematographically cinematography cinemelodrama cinemize cinemograph cinenegative cineole cineplastics cineraceus cinerary cineration cinerator cinerea cinereal cinereous cineritious cinevariety cingalensis cingle cingono cinnabar cinnabaric cinnabarine cinnamaldehyde cinnamate cinnamene cinnamenyl cinnamol cinnamomic cinnamomum cinnamon cinnamoned cinnamonic cinnamonlike cinnamonroot cinnamonwood cinnamyl cinnamylidene cinoxacin cinquain cinquecentism cinquecentist cinquefoil cinquefoiled cinquepace cinter cints cinura cinuran cinurous cion cionitis cionocranial cionocranian cionoptosis cionotomy cious cipango cipher cipherable cipherdom ciphered cipherer cipherhood ciphering ciphers ciples cipo cippus circa circadian circaetus circassian circassic circe circensian circinate circinately circination circingles circiter circle circled circles circlet circlewise circling circovarian circuit circuitable circuital circuiteer circuiter circuitman circuitous circuitously circuitousness circuits circulable circulant circular circularism circularity circularize circularizer circularizing circularly circulars circularwise circulate circulated circulates circulating circulation circulator circulatory circulatung circulus circum circumagitation circumambages circumambagious circumambience circumambiency circumambient circumambulate circumambulated circumambulator circumambulatory circumanal circumarctic circumarticular circumaviate circumaviator circumaxial circumaxile circumaxillary circumbendibus circumboreal circumbulbar circumcellion circumcenter circumcincture circumcircle circumcise circumcised circumciser circumcises circumcision circumclude circumclusion circumcone circumconic circumcorneal circumcrescence circumcrescent circumdenudation circumdiction circumduce circumduct circumduction circumesophageal circumference circumferences circumferentially circumferentor circumflant circumflect circumflex circumfluence circumfluent circumfluous circumfusile circumfusion circumgenital circumgyration circumgyratory circumhorizontal circuminsular circumintestinal circumjacence circumjacent circumlental circumlitio circumlocute circumlocution circumlocutional circumlocutionary circumlocutions circumlocutory circummeridian circummigration circummundane circummure circumnavigable circumnavigated circumnavigation circumnavigator circumneutral circumnuclear circumnutate circumnutation circumnutatory circumocular circumoral circumorbital circumpacific circumpallial circumparallelogram circumparisian circumpentagon circumplication circumpolar circumpose circumposition circumrenal circumrotate circumrotatory circumsail circumscissile circumscribable circumscribe circumscribed circumscribing circumscription circumscriptively circumscriptly circumspangle circumspatial circumspect circumspection circumspective circumspectly circumspectness circumspheral circumsphere circumstance circumstanced circumstances circumstantiability circumstantiable circumstantial circumstantiality circumstantially circumstantialness circumtabular circumterraneous circumterrestrial circumundulate circumundulation circumvallate circumvallation circumvascular circumvent circumvented circumventer circumventing circumviate circumvolution circumvolutory circumvolve circumwented circus circusy cirque cirrate cirratulidae cirrhopetalum cirrhotic cirrhous cirri cirriferous cirriform cirrigerous cirrigrade cirriped cirripedia cirripedial cirropodous cirrostomi cirrostratus cirrous cirrus cirsium cirsocele cirsoid cirsomphalos cirsotomy cirurgian cis cisandine cisatlantic cisco cisele cisjurane cism cismarine cismontane cismontanism cisoceanic cispadane cisrhenane cissing cissoidal cissus cist cista cistaceous cistae cisted cistercian cistercianism cistern cisterns cistic cists cistus citadel citadels citation citations citator cite cited citee citellus citer cites citess cithara citharexylum citharista citharoedi citharoedus cither citied cities citification citified citify citigradae citigrade citing citizen citizendom citizeness citizenhood citizenish citizenize citizenly citizens citizenship citraconate citramontane citrange citrate citrated citrates citrean citrene citric citriculture citriculturist citril citrin citrine citroen citrometer citromyces citron citronade citronella citronellal citronelle citronellic citronellol citronin citronwood citropten citrullus citrus citua city citycism cityfolk cityness citynnd cityward citywide ciudad cive cives civet civetone civic civically civicism civics civil civiles civilian civilisation civilised civilities civility civilizable civilization civilizational civilizations civilizatory civilize civilized civilizedness civilizee civilizer civilizes civilizing civiller civillest civilly civilness civils civism civitas civitates civitatis civlization civvy cixiid cixiidae cixo clabber clabbery clachan clack clacked clacker clackety clacking clacks clad cladautoicous cladocarpous cladocera cladocerous cladode cladodial cladodontid cladodontidae cladodus cladonia cladophora cladophoraceae cladophoraceous cladophyllum cladoptosis cladose cladoselache cladoselachea cladoselachidae cladosporium cladothrix cladrastis cladus clag claggum claim claimable claimant claimants claimed claiming claimless claims clairaudience clairce clairecole clairschach clairschacher clairsentient clairvoyance clairvoyant clairvoyantly claithes clallam clam clamant clamatores clamatorial clamatory clamb clambake clamber clambered clamberer clambering clambers clamcracker clame clamer clammer clammily clamminess clamming clammish clammy clammyweed clamor clamored clamorer clamoring clamorist clamorous clamorously clamors clamour clamoured clamouring clamourous clamp clamped clamper clamps clams clan clandestine clandestinely clandestinity clane claned clanfellow clang clanged clanging clangingly clangor clangorous clangors clangour clangula claning clanjamfrey clanjamfrie clanjamphrey clank clankety clanking clankingly clankingness clankless clanned clanning clannish clannishly clannishness clans clansfolk clanship clansman clanswoman claosaurus clap clapboards clapmatch clapped clapper clapperclaw clapperdudgeon clappermaclaw clappers clapping claps clapsed claptrap claque claquer clar clarabella clarain clare clared claremont clarence clarenceuxship clarencieux claret claretian claribel claribella clarification clarified clarifier clarifies clarify clarifying clarigation clarin clarinda clarinet clarinetist clarinettist clarion clarionet clarions clarissa clarissimus clarist clarity clarke clarkeite clarkia claro clarshech clart clarty clary clases clash clashed clashes clashing clashingly clashy clasmatosis clasp clasped clasper clasping clasps claspt class classbook classed classer classes classfellow classic classical classicalism classicalist classicality classicalize classically classicism classicist classicistic classicize classics classifiable classific classifically classification classifications classified classifier classifies classifv classify classifying classing classiques classischen classleader classmate classmates classmen classroom classrooms classwise clastic clat clatch clathraceae clathraceous clathrarian clathrina clathrose clathrulate clathrus clatsop clatter clattered clattering clatters clattertrap clattery clatty claudent claudetite claudia claudian claudicant claudicate claudio claus clausal clause clausen clauses clausilia clausiliidae clausthalite claustral claustration claustrophobia claustrophobic clausula clausular clausurae clausure claut clava clavaeceps claval clavariaceae clavariaceous clavate clavated clavately clave clavecinist clavelization clavelize clavellate clavellated claver clavicembalo clavichordist clavicithern clavicle clavicornate clavicornes clavicornia clavicotomy clavicular clavicularium claviculate clavicylinder clavicymbal clavicytherium clavierist claviger clavigerous claviharp clavilux claviol clavipectoral clavodeltoid clavodeltoideus clavola clavus clavy claw clawed clawer clawing clawish clawk clawker clawless clawlike claws clay claybank claybrained clayen clayer clayey clayiness clayish claylike claymore clayoquot clays clayton clayware clayweed cle cleach clead cleaded cleading clean cleaned cleaner cleaners cleanest cleanhanded cleanhandedness cleanhearted cleaning cleanish cleanlier cleanliness cleanly cleanness cleanout cleans cleansable cleanse cleansed cleansers cleanses cleansing cleanup clear clearable clearance clearcole cleared clearedness clearer clearest clearheaded clearheadedly clearheadedness clearing clearinghouse clearinghouses clearings clearish clearly clearness clears clearskins clearwater clearweed cleat cleats cleavability cleavable cleavage cleavages cleave cleaved cleaveful cleavelandite cleaver cleaverwort cleaves cleaveth cleaving cleavingly cleche cleck cled cledge cledonism cleek cleeked cleeky cleere clef cleft clefted clefts cleg cleidarthritis cleidocostal cleidocranial cleidohyoid cleidomastoid cleidorrhexis cleidoscapular cleidosternal cleidotripsy cleistocarpous cleistogamic cleistogamically cleistogamy cleistogene cleistogenous cleistogeny cleithrum clem clemastine clematis clemency clement clementina clemently clemson clench clenched clenches clenching cleoid cleopatra clep clepsine cleptobiosis clerestory clergy clergyable clergylike clergyman clergymen cleric clerical clericalism clericality clericalize clerically clericate clericature clerici clericism clericity clericorum clerics clerid cleridae clerihew clerk clerke clerkess clerkhood clerking clerkish clerkless clerklike clerkliness clerkly clerks clerkship cleronomy cleruchy cletch clethraceae clethraceous cleuch cleve cleveite cleveland clever cleverality cleverer cleverest cleverishly cleverly cleverness clevernesses clew clews cliack clianthus cliche click clicked clicket clicking clickless clicky clidastes clidinium cliency client cliented clientelage clientele clientesque clientless clientry clients clientship cliff cliffed cliffhang cliffless clifflet clifflike clifford cliffs cliffside cliffsman cliffweed cliffy clift cliftonite clifts clifty clima climacteric climacterical climacterically climactical climactically climatal climate climates climatic climatically climatius climatize climatographical climatologic climatologically climatologist climatotherapeutics climatotherapy climax climb climbable climbed climber climbers climbeth climbing climbs clime climes climograph clinamen clinamina clinandria clinanthia clinanthium clinch clinched clincher clinches clinching clinchingly clinchingness clindamycin cline clined cling clinger clinging clingingly clingingness clings clingstone clingy clinia clinic clinical clinically clinician clinicians clinicist clinicopathological clinics clinitest clinium clink clinked clinker clinkerer clinkers clinkery clinking clinkum clinoaxis clinocephalic clinocephalism clinocephalus clinocephaly clinochlore clinoclasite clinodiagonal clinodome clinograph clinohedral clinohedrite clinohumite clinoid clinologic clinology clinometer clinometric clinometrical clinopinacoidal clinoprism clinopyramid clinoril clinquant clint clinting clintonia clintonite clinty clio cliona clip clipei clipeus clippable clipped clipper clippers clipping clippings clips clipse clipsed clipsheet clipsing clipsome clique cliquedom cliqueless cliquy cliseometer clisere clishmaclaver clisiocampa clit clitch clite clitella clitellar clitelliferous clitellum clitellus clites clithe clithral clithridiate clitia clition clitoral clitoria clitoriditis clitoris clitorism clitoritis clitterclatter clive clivers clivus cloaca cloacal cloacaline cloacean cloacinean cloacitis cloak cloakage cloaked cloaking cloakless cloaklet cloakmaker cloakmaking cloakroom cloaks cloamen cloamer cloaths clobberer clobetasol clochan cloche clocher clochette clock clockbird clocked clockkeeper clockless clockmaker clockmaking clockmutch clockroom clocks clocksmith clockwatcher clockwise clockwork clocortolone clod clodbreaker clodded cloddily cloddiness cloddish cloddishly cloddishness clodhead clodhopper clodhopping clodpated clodpoll clods clof cloff clofibrate clog clogdogdo clogg clogged clogger cloggily clogging cloghad cloglike clogmaker clogs cloiochoanitic cloisonless cloister cloisteral cloistered cloisterer cloisterless cloisterlike cloisterly cloisters cloistral cloistress cloke clomb clombe clomben clome clomiphene clomipramine clonal clonic clonicity clonicotonic clonidine clonism clonopin clonorchis clonus cloop cloore cloot clop cloragen clorargyrite clorazepate clos close closed closefisted closefistedly closefistedness closehanded closehearted closely closemouthed closeness closer closes closest closet closeted closetful closeth closets closeup closewing closing closings closish clostridium closure clot clotbur clotbuster cloth clothbound clothe clothed clothee clothes clothesbag clothesbasket clothesbrush clotheshorse clothesline clothespress clothesyard clotheth clothier clothiers clothify clothing clothmaker cloths clothworker clothy clotrimazole clots clottage clotted clotter clottes clotting clotty cloture clotweed cloty cloud cloudage cloudbursts cloudcap clouded cloudful cloudier cloudiness clouding cloudland cloudless cloudlessness cloudlet cloudlets cloudlike cloudology clouds cloudscape cloudship cloudward cloudwards cloudy clough clour clout clouted clouterly clouting clouts clouty clove cloven clover cloverroot clovers clovery cloves clow clown clownade clownery clowning clownish clownishly clownishness clowns clownship clowring cloxacillin cloy cloyed cloyer cloying cloyingly cloyingness cloyless clozaril cloze club clubbability clubbable clubbed clubber clubbing clubbist clubbists clubfellow clubfisted clubfoot clubhaul clubhouse clubionid clubland clubridden clubroom clubs clubstart clubweed clubwood cluck clucked clucking clue clues clump clumped clumping clumproot clumps clumpy clumse clumsier clumsiest clumsily clumsiness clumsy clunch clung cluniac clunisian clunist clupanodonic clupeidae clupeiform clupeoid clusiaceous clusion cluster clustered clusterfist clustering clusteringly clusters clustery clutch clutched clutches clutching clutter cluttered cluttering cly clyde clydesdale clydeside clydesider clyfaker clyfaking clype clypeal clypeastridea clypeastrina clypeastroid clypeastroida clypeastroidea clypeiform clypeolar clypeole clysma clysmian clyster clytemnestra cm cmc cnemidium cnemidophorus cnemis cneoraceous cneorum cnicin cnicus cnidaria cnidarian cnidian cnidoblast cnidocil cnidocyst cnidophore cnidophorous cnidopod cnidosac cnidoscolus cnidosis cnossos coabode coabsume coacceptor coacervation coach coachable coachbuilder coached coachee coaches coachful coaching coachlet coachmaker coachman coachmanship coachmaster coachmen coachroad coachsmith coachsmithing coachway coachwhip coachwoman coachwright coachy coact coaction coactive coactively coactivity coactor coadapt coadaptation coadequate coadjacent coadjacently coadjudicator coadjust coadjustment coadjutant coadjutator coadjute coadjutor coadjutors coadjutorship coadjutress coadjutrix coadjuvant coadministration coadministrator coadmiration coadmire coadmit coadnate coadore coadsorbent coadunation coadunative coadunite coadventure coadvice coaffirmation coafforest coaged coagency coagent coaggregation coagitate coagment coagula coagulability coagulable coagulant coagulate coagulated coagulates coagulation coagulative coagulator coagulatory coagulin coagulose coahuiltecan coaita coakum coal coalashes coalbag coalbagger coalbearing coalboatman coaler coalesce coalesced coalescency coalescent coalfields coalfitter coalhole coalification coaling coalition coalitional coalize coalizer coalless coalmonger coalmouse coalpit coalrake coals coaltitude coaly coalyard coalyards coambassador coambulant coamiable coaming coanimate coannex coannihilate coapparition coappear coappearance coapprehend coapprentice coappriser coapprover coapt coaptation coarb coarbiter coarbitrator coarctate coarctation coardent coarrange coarrangement coarse coarsely coarseness coarser coarsest coarsish coascend coasserter coassession coassignee coassist coassistant coast coastal coastally coastdine coasted coaster coasters coastguard coastguardsman coasting coastland coastline coastman coastof coasts coastside coastward coastwise coat coated coatee coater coates coatie coatimondie coating coatings coatless coatroom coats coattailed coattest coattestation coattestator coaudience coaugment coauthor coauthored coauthorship coawareness coax coaxal coaxation coaxed coaxer coaxes coaxial coaxially coaxing coaxingly coaxy cob cobalt cobaltic cobalticyanic cobalticyanides cobaltinitrite cobaltite cobaltocyanide cobaltous cobang cobb cobber cobberer cobbing cobble cobbled cobbler cobblerfish cobblerism cobblers cobblership cobbles cobblestone cobblestones cobbling cobbly cobbra cobcab cobdenism cobdenite cobego cobeliever cobelligerent cobia cobiron cobishop cobitidae cobitis coble cobleman coblentzian cobless cobnut cobourg cobra cobras cobreathe cobridgehead cobriform cobs cobstone coburg coburgess coburgher cobus cobweb cobwebbed cobwebbery cobwebbing cobwebby cobwebs coca cocaceous cocaine cocainism cocainist cocainize cocainomania cocainomaniac cocama cocamama cocamine cocarboxylase cocashweed cocause cocautioner coccaceae coccal cocceianism cocchiere coccid coccidia coccidian coccidiidea coccidioides coccidium coccidology cocciferous cocciform coccigenic coccinella coccinellid cocco coccobacillus coccochromatic coccogone coccogonium coccoid coccolith coccolithophorid coccolithophoridae coccoliths coccoloba coccolobis coccosphere coccostean coccosteidae coccosteus coccothraustes coccous coccule cocculus coccus coccydynia coccygeal coccygean coccygectomy coccygerector coccyges coccygine coccygomorph coccygomorphae coccyx cocentric cochairman cochere cocheres cochief cochin cochineal cochlea cochlear cochleare cochlearia cochleated cochleiform cochleitis cochleous cochlidiidae cochliodont cochliodus cochlospermaceae cochlospermaceous cochon cochran cochrane cochranea cochurchwarden cocircular cocircularity cocitizen cocitizenship cock cockade cockaded cockal cockalorum cockamaroo cockarouse cockateel cockatoo cockatoos cockatrice cockbell cockbill cockbird cockbirds cockboat cockbrain cockchafer cockcrow cockcrower cockcrowing cocked cocker cockerel cockerels cockermeg cockernony cocket cockeye cockfight cockfighting cockfights cockhead cockhorse cockily cockiness cocking cockish cockle cocklebur cockled cockler cockles cockleshell cocklewife cockloft cockly cockmaster cockmatch cockmate cockney cockneybred cockneydom cockneyese cockneyfication cockneyfy cockneyish cockneyishly cockneyism cockneyize cockneyland cockpit cockroach cockroaches cocks cockscomb cocksfoot cockshead cockshut cockspur cocksure cocksuredom cocksurely cocksureness cocksurety cocktail cocktails cockthrowing cockup cocky cocle coco cocoa cocoanut coconino coconnection coconsecrator coconspirator coconstituent coconut cocoon cocooned cocoons cocos cocotte cocovenantor cocowood cocowort cocozelle cocreate cocreator cocreditor cocrucify coctile coctoantigen cocullo cocurator cocurrent cocuswood cocygis cocytean cocytus cod coda codamine codbank codding coddington coddle coddled coddler coddling code codebtor codeclination codefendant codeine codeless codelinquent codenization codeposit coder codes codescendant codespairer codetermine codeword codex codfish codfishery codgers codhead codheaded codiaceae codiaceous codiaeum codical codices codicil codicilic codicillary codicils codictatorship codification codifier codify codilla codille codiniac codiscoverer codisjunct codist codivine codling codol codomain codomestication codpiece codpitchings codrus codshead cody coe coeca coecum coed coeditor coeditorship coeducate coeducation coeducational coeducationalism coeducationally coefficacy coefficient coefficients coeffluent coeffluential coelacanthid coelacanthidae coelacanthini coelacanthoid coelacanthous coelanaglyphic coelar coelarium coelastraceae coelastraceous coelastrum coelata coeldership coelect coelector coelelminth coelelminthes coelelminthic coelenterata coelenteron coelestine coelevate coelho coelia coeliac coelialgia coelian coelicolae coelicolist coelin coeline coeliomyalgia coeliorrhea coeliorrhoea coelioscopy coelo coeloblastic coeloblastula coelococcus coelodont coeloglossum coelogyne coelom coelomata coelomate coelomatic coelomatous coelomesoblast coelomic coelomopore coelonavigation coelongated coeloplanula coelostat coelozoic coembody coembrace coeminency coemperor coemploy coemployment coempt coemption coemptional coemptionator coemptive coemptor coenact coenactor coenaculous coenamor coenamorment coenanthium coendear coendou coendure coenenchyma coenenchymal coenenchymatous coenenchyme coenesthesia coenesthesis coenflame coenjoy coenobe coenobia coenobian coenobiar coenobic coenobitic coenobium coenoblast coenoblastic coenocentrum coenocyte coenocytic coenodioecism coenoecial coenoecic coenoecium coenosarc coenosarcal coenosarcous coenosite coenospecies coenospecific coenospecifically coenosteal coenosteum coenotrope coenotypic coenthrone coenurus coequal coequalize coequated coerce coerced coercement coercendis coercer coerces coercibility coercibleness coercibly coercing coercion coercionary coercionist coercitive coercive coercively coerciveness coercivity coeruleolactite coessential coessentially coessentialness coetaneity coetaneous coetaneously coetaneousness coeternally coeternity coeur coeurs coeval coevally coexchangeable coexclusive coexecutant coexecutor coexert coexertion coexist coexisted coexistent coexpand coexpanded coextend coextension coextensive coextensively coextensiveness coextent cofactor cofane cofeature cofeoffee coferment cofermentation coff coffea coffee coffeebush coffeecake coffeegrower coffeegrowing coffeeleaf coffeepot coffeeroom coffeetime coffeeweed coffeewood coffer cofferer cofferfish coffering cofferlike coffers cofferwork coffin coffined coffins coffle coffret cofighter cofine coformulator cofounder cofoundress coft cofunction cog cogency cogener cogent cogged cogger coggie coggle coggledy coggly coghle cogitable cogitabund cogitabundity cogitabundous cogitabuntur cogitant cogitantly cogitated cogitating cogitation cogitations cogitative cogitatively cogitativeness cogitativity cogitator coglorify cognac cognate cognati cognatical cognatio cognation cognative cognisable cognisance cognition cognitional cognitively cognitum cognizability cognizable cognizableness cognizably cognizance cognizant cognize cognized cognizee cognizer cognizor cognomen cognominal cognominata cognominate cognomination cognoscent cognoscible cognoscitive cognoscitively cognovit cogon cogonal cogovernor cogracious cograil cogrediency cogredient cogs cogswellia coguarantor coguardian cogway cogwheel cogwood cohabit cohabitancy cohabitant cohabitation coharmonious coharmoniously coharmonize coheirship cohelper cohen cohenite coherald cohere cohered coherence coherency coherent coherently coheres coheretic coheritage cohesion cohesive cohesively cohibit cohibition cohibitive cohibitor cohn coho cohort cohorts cohosh coif coiffer coiffes coiffeur coiffure coiffured coiffures coign coigns coigue coil coiled coiler coiling coils coilsmith coimmense coimplicant coimplicate coimplore coin coinage coinceived coincide coincided coincidence coincidences coincidency coincident coincidental coincidently coincider coincides coinciding coinclination coincline coinclude coincorporate coindicate coined coiner coiners coinfeftment coinfinite coinhabit coinhere coinherence coinherent coinheritance coinheritor coining coinitial coins coinstantaneity coinstantaneous coinstantaneously coinstantaneousness coinsure cointense cointer cointerest cointersecting cointreau coinventor coiny coir coislander coistrel coistril coital coiture coix cojudge cojuror cojusticiar coke cokefire cokelike cokeman coker coking coky col colaborer colabre colane colas colate colation colatitude colatorium colature colauxe colback colberter colbertine colbertism colby colchian colchicaceae colchicine colchicum cold cold/flu coldblooded colder coldest coldfinch coldhearted coldheartedly coldish coldly coldness coldproof colds cole colecannon colegatee colegislator colemanite colemouse colendis coleochaete coleophora coleopter coleoptera coleopteral coleopterist coleopteroid coleopterological coleopterous coleoptile coleoptilum coleorhiza coleosporium coleslaw colessee colessor colette coleur colewort coleworts coli colibacterin colibri colic colical colicky colicolitis colicroot colicweed colicwort colicystopyelitis coliform colilysin colin colinear colinephritis coling coliplication colipuncture colipyelitis colipyuria colisepsis colistimethate coliuria colius coll colla collaborate collaborated collaborates collaborating collaboration collaborationism collaborationist collaboratively collaborator collaborators collagenic collagenous collapse collapsed collapses collapsible collapsing collar collarband collarbird collarbone collare collared collaret collarettes collaring collaris collarless collarman collars collate collated collateral collaterally collaterals collates collating collation collatitious collative collaud collaudation colleague colleagues colleagueship collect collectability collectable collectanea collectarium collected collectedly collectedness collectibility collectible collectibles collecting collection collectioner collections collective collectively collectiveness collectivist collectivistic collectivistically collectivization collectivize collector collectorate collectors collectress collects colleen collegatary college colleges collegial collegialism collegian collegianer collegiant collegiate collegiately collegiateness collegiation collembola collembolic collembolous collenchymatic collenchymatous collenchyme collencytal coller colleri colleries collet colleter colleterial colleterium colletes colletic colletidae colletotrichum colley collibert colliculus collide collided collidine colliding collido collie collied collier collieries colliers colliery collieshangie colliform colligate colligation colligative collimation collimator collin collinal collinear collinearly collineate collineation colling collingual collins collinsia collinsite collinsonia colliquate colliquation colliquative colliquativeness collision collisions collisive collison colloblast collobrierite collocal collocalia collocate collocation collocationable collocations collocative collocatory collochromate collock collocution collocutory collodiochloride collodion collodionize collodium collogue colloid colloidal colloidality colloidize colloidochemical colloids collop collophore colloq colloquial colloquialism colloquiality colloquialize colloquially colloquialness colloquies colloquii colloquist colloquium colloquized colloquy collotypy colloxylin collum collumelliaceous collusion collusitate collusive collusively collusiveness collutory colluvial colluvies collyridian collyrium collywest collywobbles colmar colmen colobus colocasia colocentesis coloclysis colocynthin colodyspepsia coloenteritis cologarithm cologne colognes colombia colombian colombianischen colombier colombin colombina colometrically colon colonate colonel colonelcy colonels colonelship colongitude colonia coloniae colonial colonialism colonialize colonially colonials coloniaux colonic colonies colonisation colonise colonising colonist colonists colonitis colonizability colonizable colonization colonizationist colonize colonized colonizer colonizers colonizing colonnade colonnaded colonnades colonnette colonopathy colonopexy colonoscopes colons colony colopexia colophane colophany colophene colophenic colophon colophonate colophonian colophonic colophonist colophony coloproctitis coloptosis colopuncture coloquintid coloquintida color colorability colorable coloradan coloradoite colorant colorate coloration colorationally colorations colorative coloratura colorature colorectal colorectitis colored colorer colorfast colorful colorfully colorfulness coloribus colorific colorifics colorimeter colorimetric colorimetrical colorimetrically colorimetrist colorimetry coloring colorings colorist colorization colorize colorless colorlessly colorlessness colorman colorrhaphy colors colortype colory coloss colossal colossally colosseum colossi colossian colossochelys colossus colossuswise colostomies colostomy colostral colostration colostrous colotomy colotyphoid colour coloured colourful colouring colourings colourist colourless colours colove colp colpenchyma colpeurysis colpi colpindach colpitis colpohyperplasia colpohysterotomy colpoplastic colporrhagia colporrhaphy colporrhexis colport colporter colporteur colposcope colposcopy colpotomy colpus cols colt coltection colter colthood coltish coltishly coltishness coltivazione colts coltsfoot coltskin coluber colubrid colubridae colubriform colubriformes colubriformia colubrina colubrine colubroid columbaceous columbae columban columbanian columbaria columbarium columbary columbia columbian columbic columbidae columbier columbiferous columbiformes columbine columbines columbo columboid columbus columellate column columnar columnarian columnated columned columner columniation columniferous columniform columnist columnists columnization columns columnwise colunar colure colutea colville coly colymbiform colymbion colymbriformes colyonic colyumist com coma comacine comagistracy comamie comanche comanchean comandra comart comas comate comatose comatosely comatoseness comatosity comatous comatula comatulid comb combat combatable combatant combatants combated combater combating combative combatively combativeness combativity combats combatted combed comber combfish combflower combinable combinableness combinant combinate combination combinational combinations combinative combine combined combinedly combinedness combinement combines combing combining comblessness comblike combmaker combmaking comboloio combretaceae combretaceous combretum combs combure comburendo comburimetry comburivorous combust combustible combustibleness combustibles combustion combustive combustor combwise combwright comby come comeback comecrudo comed comedian comedians comedic comedical comedienne comedies comedietta comedo comedones comedown comedy comee comeliness comeling comely comendite comenic comephorous comer comers comes comest comestible comestibles comet cometary cometh cometical cometlike cometographer cometographical cometography cometoid comets comeuppance comf comfit comfits comfiture comformable comfort comfortable comfortableness comfortably comforted comforter comforters comfortful comforting comfortingly comfortless comfortlessly comfortlessness comfortress comfortroot comforts comfrey comiakin comic comical comicality comically comicalness comicocynical comicodidactic comicoprosaic comicotragedy comicotragic comicry comics comin cominform coming comingle comings comino comintern comism comital comitatus comite comitia comitium comitragedy comity comlpleted comma command commandable commandant commanded commandedst commandeer commandeered commander commanders commandership commandery commandest commandeth commanding commandingly commandingness commandless commandment commandments commandoman commandress commands commassation commation commatism comme commeasurable commelina commelinaceous commemorate commemorated commemorates commemorating commemoration commemorational commemorations commemorative commemoratively commemorativeness commemoratory commen commence commenced commencement commencements commencent commencer commences commencing commend commendable commendableness commendably commendador commendam commendataires commendatary commendation commendations commendator commendatory commended commender commendeth commending commendingly commends commensal commensalism commensalistic commensurable commensurableness commensurably commensurate commensurately commensurateness commensuration comment commentaries commentario commentary commentate commentated commentation commentator commentatorially commentators commented commenter commenting commentitiis comments commerce commerceless commercer commerciable commercial commercialism commercialist commerciality commercialization commercialize commercially commercials commerciaux commercio commerge commerical comminate commination comminator comminatory commingle commingled comminglement commingling comminglings comminister comminuate comminute comminution commiphora commisary commiserate commiserated commiserating commiseratingly commiseration commiserative commiseratively commiserator commissar commissaries commissary commission commissionaire commissional commissioned commissioner commissioners commissionership commissioning commissions commissionship commissive commissively commissural commissure commit commitment commitments commits committable committal committed committee committeeism committeeman committeemen committees committeewomen committent committer committible committing commixes commixt commixtion commixtione commixture commme commodate commode commodious commodiously commodiousness commodities commodity commodore common commonable commonage commoner commonest commoney commonish commonly commonlye commonness commonplace commonplaceism commonplacely commonplacer commonplaces commons commonsense commonsensible commonsensibly commonsensical commontaire commonty commonweal commonwealth commonwealthism commonwealths commorancy commorant commorth commot commotion commotional commotions commotive commove communa communal communalistic communality communalization communalize communalizer communally commune communed communer communes communicable communicableness communicably communicant communicate communicated communicatee communicates communicateth communicating communicatio communication communications communicative communicatively communicativeness communicator communicatory communing communion communionist communique communism communistery communistic communistically communitary communities community communization communs commutable commutableness commutant commutation commutative commutatively commutatus commute commuted commuter commuting commutuality comnenian como comoid comolecule comolex comores comose comourn comournful comox compact compacted compactedness compacter compactest compactible compactify compaction compactly compactness compactor compacture compages compaginate compagnie companator companied companies companion companionable companionableness companionably companionage companionize companionless companions companionship companionway company companying comparable comparata comparative comparatively comparativist comparator compare compared comparee compares comparing comparison comparisons comparograph compart compartment compartmentalization compartmentally compartmentize compartments compase compass compassable compassed compasser compasses compasseth compassing compassion compassionable compassionate compassionated compassionately compassionateness compassionates compassionating compassionless compassive compaternity compatibility compatible compatibleness compatibly compatriot compatriote compatriotic compatriotism compatriots compear compearant compeer compeers compeihng compel compellably compellation compellative compelled compellent compeller compelling compellingly compels compendency compendent compendia compendiate compendious compendiously compendiousness compendium compenetrate compenetration compensable compensate compensated compensates compensating compensatingly compensation compensational compensations compensativeness compensator compensatory compense compenser compesce compete competed competence competency competent competently competentness competing competition competitioner competitions competitive competitiveness competitor competitors competitorship competitory competitress competitrix compilation compilations compilatory compile compiled compilement compiler compilers compiles compiling compital complacency complacent complacential complacentially complacently complain complainant complainants complained complainer complainers complainest complaining complainingly complainingness complains complaint complaintive complaintiveness complaints complaisance complaisant complaisantly complaisantness complanar complanate complate compleat compleatly complect complement complemental complementally complementarism complementarity complementary complementation complementative complemented complementing complements complet complete completed completely completeness completer completes completest completing completion completive completively complex complexedness complexes complexion complexional complexionally complexioned complexionless complexions complexities complexity complexly complexus compliable compliableness compliably compliance compliant compliantly complicant complicate complicated complicatedly complicatedness complicates complicating complication complications complicative complice complicity complied complies compliment complimentable complimental complimentally complimentalness complimentarily complimentariness complimentary complimentative complimented complimenter complimenting compliments compline complot complutensian compluvium comply complying compo compoer compole componed componency componendo component componented componentry components compony comport comportable comported comporting comportment comports compose composed composedly composedness composer composers composing composita compositae composite compositely compositeness composition compositional compositionally compositione compositions compositive compositively compositor compositorial compositous composograph compossibility compost compostying composure compotation compotator compote compound compounded compoundedness compounder compounding compoundness compounds compoz comprachico comprador comprecation compreg compregnate comprehend comprehended comprehendible comprehending comprehendingly comprehends comprehense comprehensibility comprehensible comprehensibleness comprehension comprehensive comprehensively comprehensiveness comprehensor comprends compresbyterial compresent compress compressed compresses compressibleness compressing compression compressional compressive compressively compressor compriest comprisal comprise comprised comprises comprising compromise compromised compromises compromising compromisingly compromissary compromission compromissorial compromit compromitment comprovincial compsilura compsoa compter comptions comptometer compton comptonia comptroller comptrollership compulsary compulsatorily compulsatory compulsed compulsion compulsions compulsitor compulsive compulsorily compulsoriness compulsory compunction compunctionary compunctionless compunctions compunctious compunctive compurgatorial compurgatory computability computable computably computation computational computations computative compute computed computer computeritis computers computing computist computus comrade comradeless comradely comradery comrades comradeship comrading comrlete comstockery comsumptive comte comtemporary comtes comtesse comtian comtism comurmurer con conacaste conacre conakre conal conamed conant conarial conarium conative conatus conbnent concaive concamerate concamerated concameration concanavalin concaptive concassation concatenary concatenate concatenation concatenations concatenator concavation concave concavely concaveness concaver concavities concavity conceal concealed concealedly concealedness concealer concealing concealment concealments conceals concede conceded conceder concedes conceding conceit conceited conceitedly conceits conceity conceivable conceivableness conceivably conceive conceived conceiver conceives conceiving concelebration concentive concentralization concentrate concentrated concentrates concentrating concentration concentrative concentrator concentred concentric concentrically concentricity concentual concentus concept conceptacle conceptacular conceptaculum conception conceptions conceptism conceptiveness concepts conceptualism conceptualist conceptualistic conceptuality conceptually conceptus concepuon concern concernant concerned concernedly concernedness concerneth concerning concerningly concernment concerns concert concerted concertina concertinas concertinist concertist concertize concertizer concertmeister concertment concerto concertos concerts concertstuck concession concessionaire concessionary concessionist concessions concessively concessiveness conchal conchate conche concher conches conchiferous conchinine conchiolin conchitic conchoidal conchological conchologist conchologize conchology conchometer conchometry conchostraca conchotome conchubar conchuela conchy conchyliated conchyliferous concierge concile conciliabule conciliabulum conciliar conciliate conciliated conciliating conciliatingly conciliation conciliative conciliator conciliatoriness conciliatory concilii concilium concinnity concinnous concionator concipiency concipient concise concisely conciseness concision conclamant conclamation conclave conclavist conclude concluded concludes concludeth concluding conclus conclusice conclusion conclusionally conclusions conclusive conclusively conclusory concoagulation concoct concocted concocter concocting concoction concoctions concolorous concomitance concomitancy concomitant concomitantly concomitants concord concordance concordancer concordant concordantial concordantly concordat concordatory concorder concordial concordist concordity concorrezanes concourse concreate concremation concrescence concrescive concrete concreted concretely concreteness concretion concretional concretions concretism concretive concretively concretize concretor concubinage concubinal concubinarian concubine concubines concubitant concubitous concubitus concupiscence concupiscent concupiscible concupy concur concurred concurrence concurrency concurrent concurrently concurrentness concurring concurringly concurs concursion concurso concuss concussant concussion concussional concussive concutient concyclic concyclically cond conde condemn condemnable condemnably condemnate condemnation condemnations condemnatory condemncd condemned condemner condemning condemningly condemns condensability condensable condensance condensary condensate condensation condensational condensations condensator condense condensed condensedly condensedness condenser condensers condensery condenses condensible condensing condensity condescend condescended condescendence condescendent condescender condescending condescendingness condescends condescension condescensions condescensive condescensiveness condiction condiddle condign condignity condignly condiment condimental condimentary condiments condisciple condistillation condit condite condition conditional conditionalism conditionalist conditionality conditionalize conditionally conditioned conditioners conditioning conditions conditum condivision condole condoled condolement condolence condolences condolent condoler condoling condolingly condominate condominium condoms condonable condonance condonation condonative condone condoned condoner condoning condonment condor condottiere condottieri conduce conduced conducer conduces conducing conducingly conducive conduct conductance conducted conductible conductility conductimeter conducting conductio conduction conductional conductitious conductively conductivity conductometer conductometric conductor conductorial conductorless conductors conductorship conductory conductress conducts conductus conduit conduits conduplication condylar condylarth condylarthra condylarthrous condyle condylectomy condyles condyloid condylomata condylome condylopod condylopodous condylotomy condylure cone conects coned coneen coneflower conehead coneighboring coneine conemaker conemaking conepate coner cones conestoga confab confabular confabulate confabulation confabulations confabulatory confarreate confarreation confated confect confection confectionary confectione confectioner confectioners confectionery confections confederacies confederacy confederal confederalist confederate confederated confederater confederates confederation confederationist confederations confederatism confederative confederatize confederator confer conferdence conference conferences conferment confermitatum conferral conferred conferree conferring conferruminate confers conferted conferva confervaceous confervae conferval confervales confervoid confervoideae confervous confess confessable confessant confessary confessed confessedly confesser confesses confesseth confessing confession confessional confessionalian confessionalism confessionalist confessionals confessionary confessions confessor confessors confessorship confetti confidant confidante confidants confide confided confidence confidences confident confidential confidentiality confidentially confidentialness confidentiary confidently confidentness confider confides confiding confidingly confidingness configural configurate configuration configurationally configurationism configurationist configurative confimation confine confineable confined confinement confiner confines confining confinity confirm confirmable confirmation confirmations confirmative confirmatively confirmatorily confirmatory confirmed confirmedly confirmedness confirmee confirming confirmor confirms confiscable confiscate confiscated confiscating confiscation confiscations confiscator confitent confix conflagrate conflagration conflagrations conflagrative conflagrator conflagratory conflate conflated conflation conflict conflicted conflicting conflictingly confliction conflictory conflicts conflow confluence confluent confluently conflux confluxible confluxibleness confocal conform conformability conformable conformably conformal conformance conformate conformation conformed conformes conforming conformist conformity conforms confound confounded confoundedly confounder confounding confoundingly confounds confraternal confraternity confrere confreries confriar confront confrontal confrontation confrontational confronted confronter confronting confrontment confronts confucian confucianist confucius confundit confusability confusably confuse confused confusedly confusedness confuses confusing confusingly confusion confusional confusions confusticate confustication confutable confutation confutative confutator confute confuted confuting conga conge congeable congeal congealability congealable congealableness congealed congealedness congealer congealing congealment congealments congeals congee congelation congelifraction congeliturbate congener congeneracy congeneric congenerical congenerous congenerousness congenetic congenial congeniality congenialize congenially congenita congenital congenitalness conger congeries congest congested congestible congestion congestive conglobate conglobation conglobulate conglomerate conglomerated conglomerates conglomeratic conglomeration conglutin conglutinate conglutinative congo congoleum congou congrat congratulable congratulant congratulate congratulated congratulates congratulating congratulation congratulational congratulations congratulator congratulatory congredient congreet congregable congreganist congregant congregate congregated congregation congregational congregationalism congregationalist congregationally congregationist congregations congregative congregator congress congresses congressional congressionalist congressionally congressionist congressist congressman congressmen congresso congresswomen congreve congroid congruent congruently congruism congruity congruous conhydrine conic conical conicality conically coniceine conichalcite conicine conicity conicle conicoid conicopoly conics conidia conidial conidiiferous conidioid conidiophore conidiophorous conidiospore conies conifera coniferin coniferous conifers conification coniform conilurus conima conin conine coniogramme coniophora coniopterygidae coniosis coniothyrium coniques coniroster conirostral conirostres conization conject conjecturable conjecturably conjectural conjecturalist conjecturally conjecture conjectured conjecturer conjectures conjectureth conjecturing conjoin conjoined conjoiner conjoining conjoint conjointly conjointment conjointness conjugable conjugacy conjugal conjugales conjugality conjugally conjugant conjugata conjugate conjugated conjugately conjugateness conjugating conjugation conjugational conjugationally conjugative conjugator conjugial conjugium conjunct conjunctio conjunction conjunctional conjunctionally conjunctions conjunctiva conjunctival conjunctive conjunctively conjunctiveness conjunctur conjunctural conjuncture conjuration conjure conjured conjurement conjurer conjuring conjuror conk conkanee conker conklin conky conley conlins connach connait connaitre connally connaraceae connarus connascency connatal connate connateness connation connatural connaturality connaturally conne connect connectant connected connectedly connectedness connecticut connecting connection connectional connections connectival connective connectively connectivity connector connects conned connellite conner connex connexion connexions connexionwith connexity connexive connexivum connexus conning conniption connivance connivant connivantly connive connived connivent conniventes conniver conniving connoissance connoisseur connoisseurs connoisseurship connors connotation connotative connotatively connoted connotes connoting connotive connotively connubia connubial connubially connubiate connubium connues connumerate connumeration conoclinium conocuneus conoid conoidal conoidally conoidical conoidically conolophus conominee cononintelligent conopholis conopid conopidae conopophaga conor conourish conphaseolin conque conquer conquerable conquerableness conquered conquereth conquering conqueringly conquerment conqueror conquerors conquers conquest conquests conquete conquian conquinamine conquinine conrad conrector conrectorship conringia consanguinean consanguineous consanguineously consanguinity consarn consarned conscience conscienceless consciencelessly consciencelessness consciences conscient conscientious conscientiously conscientiousness conscionableness conscionably conscious consciously consciousness conscribe conscript conscriptae conscription conscriptional conscriptionist consecrando consecrate consecrated consecrater consecrates consecrating consecration consecrative consecratus consecute consecution consecutive consecutively consecutiveness consecutives conseiguence conseil consenescence consension consensual consensus consent consentable consentaneous consentaneously consentant consented consentient consentiently consenting consentingly consentively consents consequence consequences consequency consequent consequential consequentially consequently consertal conseruative conservable conservacy conservancy conservant conservate conservatio conservation conservational conservationist conservatism conservative conservatively conservativeness conservatize conservatoire conservator conservatorio conservatorium conservatorship conservatory conserve conserved conserver conservet considable consider considerability considerable considerably considerance considerate considerately considerateness consideration considerations considerative consideratively considerativeness considered considerer considereth considering consideringly considers consign consignable consignatary consignatory consigned consignee consigner consignificant consignificate consignification consignificative consignificator consignify consigning consignment consignments consigns consiliary consilient consimilar consimilarity consimilate consist consisted consistence consistencies consistency consistent consistently consisting consistorial consistorian consistory consists consociate consociation consociational consociationism consociative consocies consolable consolamentum consolation consolations consolatorily consolatoriness consolatory consolatrix console consoled consolement consoler consoles consolidate consolidated consolidating consolidation consoling consolingly consolute consonance consonances consonancy consonant consonantal consonantic consonantize consonantly consonantness consonants consonate consonous consort consorted consorteth consortial consorting consortion consortism consortium consorts conspecies conspecific consperse conspicuity conspicuous conspicuously conspicuousness conspiracies conspiracy conspirant conspiration conspirative conspirator conspiratorial conspiratorially conspirators conspiratress conspire conspired conspires conspiring constable constables constableship constablewick constabular constabulary constancy constanlly constant constantine constantinian constantinople constantinopolitan constantly constantness constants constatation constate constatory constellacions constellation constellations constellatory consternate consternation constipated constipation constituencies constituency constituent constituently constituents constitute constituted constituter constitutes constituting constitution constitutional constitutionalism constitutionalists constitutionality constitutionalization constitutionalize constitutionally constitutionary constitutioner constitutiones constitutionist constitutions constitutive constitutively constrain constrained constrainedly constrainedness constrainer constraining constrainingly constrains constraint constraints constrict constricted constricting constriction constrictive constrictor constricts constringe constringent construability construable construct constructed constructer constructible constructing construction constructional constructionally constructionism constructionist constructions constructive constructively constructiveness constructivism constructivist constructor constructors constructorship constructs constructure construe construed construer construing constuprate constupration consubsist consubsistency consubstantial consubstantialism consubstantialist consubstantiality consubstantially consubstantiationist consuete consuetitude consuetudinary consuetudine consul consular consulares consularity consulary consulate consulates consule consuls consulship consult consultable consultants consultary consultation consultations consultative consulted consulti consulting consultive consultor consults consumable consume consumed consumedly consumeless consumer consumers consumes consumeth consuming consumingly consumingness consummate consummated consummately consummates consummating consummation consummations consummative consummator consummatory consumption consumptive consumptiveness consumptives consumptivity contabescence contact contacted contacting contactor contacts contactual contactually contadina contadino contagion contagioned contagionist contagiosity contagiosum contagious contagium contain containable contained container containers containeth containing contains contakion contaminable contaminant contaminants contaminate contaminated contaminating contamination contaminative contaminous contangential contect contection contemned contemner contemneth contemnible contemning contemnor contemns contemolant contemper contemperate contemplamen contemplant contemplar contemplate contemplated contemplates contemplating contemplatingly contemplation contemplations contemplative contemplatively contemplativeness contemplator contemplators contemporaine contemporanean contemporaneity contemporaneous contemporaneously contemporaries contemporarily contemporariness contemporary contemporize contempt contemptful contemptible contemptibleness contemptibly contemptuous contemptuously contemptuousness contend contended contender contendeth contending contendress contends content contented contentedly contentedness contentful contentieux contenting contention contentional contentions contentious contentiously contentiousness contentment contentments contentness contents contenues conterminal conterminant contermine conterminous conterminously conterminousness contes contest contestable contestableness contestant contestants contestation contested contestee contester contesting contestless contests context contextive contexts contextural contexture contextured conticent contiguity contiguous contiguously contiguousness continency continens continent continental continentaler continentalize continentally continentals continently continents contingencies contingency contingent contingential contingents continously continua continual continuality continually continualness continuance continuancy continuando continuate continuately continuation continuatione continuations continuative continuatively continuativeness continuator continuava continue continued continuedness continuer continues continueth continuing continuist continuity continuo continuous continuously continuousness continuum contiued contline contorniate contorsive contort contortae contorted contortedly contortedness contorting contortion contortional contortionate contortionist contortionistic contortions contour contoured contours contra contraband contrabandage contrabandery contrabandist contrabandista contrabassist contrabasso contraceptives contracivil contract contractable contracted contractedly contractedness contractibility contractible contractibleness contractibly contractile contractility contracting contraction contractions contractive contractively contractiveness contractor contractors contracts contractual contractually contracture contractured contradebt contradict contradictable contradicted contradictedness contradicter contradicting contradiction contradictional contradictions contradictiously contradictiousness contradictive contradictively contradictoriness contradictory contradicts contradiscriminate contradistinct contradistinction contradistinctive contradistinctively contradistinguish contrafacture contrafagotto contrafissura contraflexure contraflow contragredience contrail contraindicated contraindication contraindicative contralateral contralto contraltos contrantiscion contraoctave contraparallelogram contraplex contrapone contraponend contraposaune contrapose contraposita contraposition contrapositive contraption contraptious contrapuntal contrapuntalist contrapuntally contrapuntist contrapuntists contrar contrarational contraremonstrant contrarevolutionary contrariantly contraries contrariety contrarily contrariness contrarious contrariously contrariousness contrariwise contrary contrascriptural contrast contrastable contrasted contrastimulus contrasting contrastingly contrastive contrastively contrastment contrasts contrasuggestible contrate contravene contravened contravener contravenes contravening contravention contraventions contraversion contrawise contrayerva contre contreface contrefeted contretemps contribute contributed contributes contributing contribution contributions contributive contributively contributiveness contributor contributorial contributors contributorship contributory contries contrite contritely contrition contrivance contrivances contrivancy contrive contrived contrivement contriver contrives contriving contro control controllable controllableness controlled controller controllers controllership controlless controlling controllingly controlment controls controul controversial controversialism controversialist controversialize controversially controversies controversion controversional controversionalist controversis controversy controvert controverted controvertibly controvertist contubernal contubernial contubernium contumacious contumaciousness contumacy contumeliously contumely contuse contusion contusioned contusive contynue conubium conularia conumerary conumerous conundrum conundrumize conundrums conurbation conure conuropsis conurus conus conusant conusee conusor conuzee conuzor convair convalesce convalescence convalescent convalescently convallamarin convallaria convallariaceae convallariaceous convect convection convectional convectively convector convenances convene convened convenenza convener convenership convenes convenience conveniences conveniency convenient conveniently convenientness convening convent conventical conventicler conventicles conventicular convention conventional conventionalism conventionalisms conventionalities conventionality conventionalization conventionalize conventionalized conventionally conventionary conventioneer conventioner conventionism conventionist conventionize conventions convents conventual conventus converge converged convergement convergence convergency converges convergescence converging conversable conversably conversance conversancy conversant conversantly conversation conversationable conversational conversationalist conversationism conversationist conversationize conversations conversative conversazione conversaziones converse conversed conversely converses conversi conversing conversion conversionism conversionist conversions conversive convert converted convertend converter convertibility convertibleness converting convertise convertism convertite convertive converts conveth conveved convex convexed convexedly convexities convexity convexly convexness convey conveyable conveyance conveyancer conveyances conveyancing conveyed conveyer conveying conveys convict convictable convicted convicting conviction convictions convictism convictive convictively convictiveness convictment convictor convicts convient convince convinced convincedly convincedness convincement convincer convinces convincibility convincible convincing convincingly convincingness convinto convive convivial convivialist conviviality convivialize convivially convocant convocation convocational convocationally convocationist convocative convoke convoked convokes convoking convoluta convolute convoluted convolutely convolution convolutions convolutive convolve convolvement convolvulaceous convolvulad convolvuli convolvulic convolvulin convolvulinolic convolvulus convoy convoyed convoys convulsant convulse convulsed convulsedly convulsibility convulsible convulsing convulsion convulsional convulsionary convulsionism convulsionist convulsions convulsive convulsively convulsiveness conway conwerse conwey conwictions conxention cony conycatcher conyrine coo cooba coodle cooed cooee cooer cooes cooey coof coohee cooing cooings cooja cook cookable cookbook cookbooks cooke cooked cookee cooker cookery cookhouse cookie cookies cooking cookish cookishly cookmaid cooks cookshop cookstove cookware cooky cool coolant cooled cooler coolerman coolest coolheaded coolheadedly coolheadedness coolhouse coolidge coolie coolies cooling coolingly coolish coolly coolness cools coolth coolweed cooly coom coomb coon cooncan coonily cooniness coonroot coons coonskin coontail coontie coony coop cooped cooper cooperage cooperate cooperated cooperating cooperation cooperative cooperators coopers coops coordinate coordinated coordinates coordination cooree coorg coorie coors cooruptibly coos cooser coost coosuc coot cooter coothay cootie cop copa copable copaene copaiva copaivic copaiye copal copalche copalcocote copaliferous copaline copalite coparallel coparcenary coparcener coparceners coparceny coparent copart copartaker copartner copartnership coparty copassionate copatain copatentee copatriot copatron copayment copayments copd cope coped copeland copelatae copelate copellidine copen copenetrate copepod copepodan copepodous coperception copernican copernicanism copernicia coperta copesman copetitioner cophetua copiable copiapite copie copied copier copies copiisque copilot coping copings copiopsia copiosity copious copiously copiousness copis copist copita copiynge coplaintiff coplanarity copleased coplotter coploughing coplowing copolar copolymerization coppaelite copped copper copperas copperbottom copperfield copperful copperheadism coppering copperish copperization copperize copperleaf coppermines coppernose coppernosed copperplate copperplates copperproof coppers coppersidesman copperskin coppersmith copperware copperworks coppery coppet coppice coppiced coppices coppicing copping copple copplecrown coppled coppy copra coprecipitate coprecipitation copremic copresbyter copresent coprides coprinae coprincipal coprinus coprisoner coproduce coproducer coproduct coprojector coprolagnist copromisor coprophagan coprophagia coprophagy coprophilia coprophilism coprophilous coproprietorship coprosma coprostasis coprosterol coprozoic cops copse copses copsewood copsewooded copsing copsy coptic copula copulable copular copularium copulation copulatively copulatory copunctal copurchaser copus copy copybook copybooks copyer copygraph copyhold copyholder copyholders copyholding copying copyism copyist copyman copyreader copyright copyrightable copyrighted copyrighter copyrights copywriter copywriters coque coquecigrue coquelicot coqueluche coquet coquetoon coquetries coquetry coquette coquetted coquetting coquettish coquettishly coquettishness coquilla coquille coquitlam coquitoque cor cora corabeca corach coracial coracias coracii coraciidae coraciiformes coracine coracle coracler coracobrachialis coracoclavicular coracocostal coracohumeral coracoid coracoidal coracomandibular coracomorph coracomorphae coracomorphic coracopectoral coradical coraise coral coralberry coralbush coralflower coralist corallian corallidae corallidomous coralliferous coralliform coralligenous corallike corallina corallinaceae corallinaceous coralline corallium corallorhiza corallus corals coralwort coram corambis corban corbeau corbeille corbel corbeled corbelled corbicula corbiculate corbiculum corbie corbula corcass corchete corchorus corcir corcopali corcoran corcyraean cord corda cordage cordaitaceous cordaitalean cordaitean cordaites cordal cordata cordate cordately cordax corde cordeau corded cordel cordeliere cordelle corder cordery cordes cordewane cordi cordia cordial cordialities cordiality cordialize cordially cordialness cordials cordicole cordierite cordigeri cordillera cordiner cording cordis cordite corditis cordleaf cordlike cordoba cordon cordonnet cordons cords corduroy corduroys cordwain cordwainery cordwood cordy cordyceps cordyl cordylanthus core corebel coreceiver coreciprocal corectome corectomy corector coree coregence coregnant coregonid coregonidae coregonus coreid coreidae coreign coreigner corejoice corelated corelation corelative corelatively coreless corella coremaking coremium coremorphosis coreometer coreplastic coreplasty corer cores coresidence coresign coresort corespect corespondent corevolve corey corf corfiote corflambo corge corial coriamyrtin coriaria coriariaceous coriin corimelaena corimelaenidae corindon corineus coring corinna corinne corinth corinthian corinthianesque corinthianism corinthianize coriolanus coriparian corium corixa corixidae cork corkage corke corked corkiness corking corkish corkite corkmaker corkmaking corks corkscrew corkscrews corkscrewy corkwood corky corm cormel cormidium cormoid cormophyta cormophyte cormophytes cormophytic cormorant cormorants cormous corn cornaceous cornage cornbin cornbinks cornbird cornbrash cornbread corncake corncakes corncob corncracker corncrake corncrib corndodger corne cornea corneae corneagen corneal corned cornein corneitis cornel cornelia cornelian cornelians cornelius cornell cornels cornemuse corneocalcareous corneosclerotic corneosiliceous corneous corner cornerbind cornered cornerer corners cornerstone cornerstones cornerways cornerwise cornet cornetcy cornettist corneum cornfield cornfields cornflakes cornfloor cornflower cornflowers corngrower cornhouse cornhusk cornic cornice cornices cornicle corniculate corniculer corniferous cornific cornification cornified corniform cornin corning cornishman cornland cornmarket cornmeal cornmonger cornpipe cornrick cornroot corns cornstalk cornstalks cornstarch cornu cornua cornual cornuate cornuated cornubianite cornucopia cornucopiae cornucopian cornucopiate cornule cornute cornutine cornuto cornwall cornwallis coroa coroado corodiary corodiastole corol corolla corollarial corollarially corollaries corollary corollas corollate corollated corolliferous corolliform corollike corolline corollitic coromandel corona coronach coronad coronado coronae coronagraph coronal coronaled coronally coronamen coronary coronate coronated coronation coronations coronatorial coronaviruses coroner coronership coronet coronets coroniform coronilla coronillin coronium coronobasilar coronofacial coronofrontal coronopus coroplast coroplasta coropo coroscopy corp corpora corporal corporalism corporality corporals corporalship corporate corporately corporateness corporation corporationer corporations corporator corporature corporeal corporealist corporeality corporealization corporeally corporeals corporeity corporeous corporis corposant corps corpse corpselike corpses corpsman corpsmen corpsy corpulence corpulency corpulent corpulentness corpus corpuscle corpuscles corpuscular corpuscule corpusculous corpusculum corrade corral corralled corralling corrals corrasive correal correct correctable correctant corrected correctedness correctest correctible correcting correction correctional correctionalist correctioner corrections correctitude corrective correctively correctiveness correctives correctly correctness corrector correctress correctrice corrects corregidor correlatable correlate correlated correlation correlational correlations correlative correlatives correlativism correlativity corren corrente correspond correspondance corresponded correspondence correspondences correspondency correspondent correspondential correspondentially correspondently correspondents correspondentship correspondeoce corresponder corresponding correspondingly corresponds corresponsive corresponsively corridor corridored corridors corrie corrige corrigenda corrigendum corrigent corrigibleness corrigibly corrigiolaceae corrival corrivality corrivalry corrivalship corrivate corrivation corrobboree corroborant corroborate corroborated corroborates corroborating corroboration corroborative corroboratorily corroboratory corrode corroded corrodent corrodes corrodiary corrodier corroding corrosibility corrosible corrosibleness corrosion corrosional corrosive corrosively corrosiveness corrosives corrosivity corrugate corrugated corrugation corrugations corrugator corrupt corrupted corruptedly corruptedness corrupter corrupters corruptful corruptibility corruptible corruptibleness corrupting corruptingly corruption corruptions corruptive corruptively corruptly corruptor corrupts corsac corsage corsages corsair corsairs corse corselet corses corsesque corset corseting corsetless corsets corslet corst corta corte cortege cortes cortex cortez cortical cortically corticating cortication cortices corticiferous corticiform corticifugal corticipetal corticipetally corticium corticoafferent corticoefferent corticoline corticopeduncular corticose corticospinal corticosteroid corticosteroids corticostriate cortinarious cortinarius cortisol cortisone cortisonelike cortland corton coruco corundophilite corundum corupay coruscate corvee corver corvette corvettes corvidae corviform corvillosum corvina corvine corvoid corybant corybantic corybulbine corycavamine corycavidin corycavidine corycavine corycian corydalin corydaline corydine coryl corylaceae corylaceous corylin corylopsis corymb corymbed corymbiate corymbiated corymbiform corymbose corynebacterial corynebacterium coryneum corynine corynocarpaceous corypha coryphaena coryphaenid coryphaenoid coryphaeus corytuberine cos cosa cosalite cosaque cosavior coscet coscinodiscus coscinomancy coseasonal coseat cosecant cosech cosectarian cosectional coseism coseismic cosenator cosentiency cosentient coservant cosession coset cosettler cosey cosh cosharer cosheath coshering cosignatory cosigner cosignitary cosily cosine cosiness cosmati cosmecology cosmetic cosmetical cosmetiste cosmetological cosmetologist cosmetology cosmic cosmical cosmically cosmism cosmist cosmocracy cosmocrat cosmocratic cosmogenetic cosmogenic cosmogonal cosmogoner cosmogonic cosmogonical cosmogonize cosmogony cosmographic cosmographically cosmographist cosmography cosmolabe cosmolatry cosmologic cosmologically cosmologist cosmology cosmometry cosmopathic cosmoplastic cosmopoietic cosmopolitan cosmopolitanism cosmopolitanize cosmopolitanly cosmopolite cosmopolitic cosmopolitics cosmorama cosmoramic cosmorganic cosmos cosmoscope cosmosophy cosmotellurian cosmotheist cosmotheistic cosmothetic cosmozoic cosn cosonant cospecific cosphered cosplendor cosplendour cosponsor coss cossack cossas cosse cossed cosset cossette cossic cossidae cossist cossnent cossyrite cost costa costaea costal costally costanoan costard costate costated costean costeaning costectomy costello costermonger costicartilage costicervical costiferous costing costispinal costive costiveness costlessness costlier costliest costliness costly costmary costo costoabdominal costochondral costochondritis costoclavicular costocolic costodiaphragmatic costogenic costoinferior costophrenic costopleural costopulmonary costoscapular costosuperior costotomy costotrachelian costoxiphoid costraight costs costula costulation costume costumed costumer costumery costumes costumi costumic costumier costumiere costumist costusroot cosubject cosubordinate cosuffer cosufferer cosuggestion cosuitor cosurety coswearer cosy cosymmedian cot cotangent cotangential cotarius cotch cotched cote coteful coteline cotemporane cotemporaneous cotemporaneously cotenant cotenure coterell coterie coteries coterminous cotesian coth cothamore cothe cotheorist cothon cothurn cothurned cothurnian cothy cotidal cotillage cotillion cotillions cotillon cotinga cotingidae cotingoid cotinus cotland cotman coto cotoin cotonam cotonier cotorment cotoro cotorture cotoxo cotraitor cotranspire cotransubstantiate cotrine cotrustee cots cotset cotsetle cotta cottabus cottage cottaged cottager cottagers cottages cotte cotted cotter cotterel cotterite cotters cotterway cottid cottiennes cottier cottierism cottiers cottiform cottoid cotton cottonade cottonee cottonian cottonization cottonize cottonless cottonocracy cottonopolis cottons cottontail cottontails cottontop cottonweed cottonwood cottonwoods cottony cottrell cottus cotty cotula cotunnite coturnix cotutor cotwinned cotwist cotylar cotyledonar cotyledonous cotyliscus cotyloid cotylophora cotylophorous cotylosaur cotylosaurian cotype cotys cotyttia couac coucal couch couchant couched couches couching couchmaker couchmaking couchmate couchy coucous coude coudee coueism coufined cougar cough coughed cougher coughing coughings coughroot coughs coughwort cougnar could couldn couldn't couldna couldron couldst coulee coulisse couloir coulomb coulometer coulpe coulter coulterneb coulure couma coumadin coumalic coumalin coumara coumaran coumarate coumaric coumarin coumarinic coumarone coumarou coumarouna council councili councilist councillor councillors councilman councilorship councils councilwoman counite couniversal counsel counselable counseled counseling counselled counselleth counselling counsellor counsellors counselor counselors counsels count countable countableness countably countdom countdown counted countenance countenanced countenancer countenances countenancing counter counteraccusation counteract counteracted counteracter counteracting counteractingly counteraction counteractions counteractive counteractively counteractivity counteractor counteracts counteraddress counteradvance counteradvice counteraffirm counteragency counteragent counteragitate counteralliance counterambush counteranswer counterappeal counterappellant counterapproach counterapse counterarch counterargue counterargument counterassociation counterassurance counterattack counterattestation counterattired counterattraction counterattractively counteraverment counteravouch counteravouchment counterbalance counterbalanced counterbase counterbend counterbewitch counterblast counterblow counterbond counterbore counterboycott counterbrace counterbrand counterbuff countercampaign countercarte countercause counterchanged countercheer counterclaim counterclockwise countercolored countercommand countercompetition countercomplaint countercompony counterconversion countercraft countercriticism countercross countercurrent countercurrently countercurrentwise counterdance counterdecision counterdeclaration counterdecree counterdefender counterdemonstration counterdeputation counterdesire counterdifficulty counterdisengage counterdisengagement counterdistinction counterdistinguish counterdogmatism counterdraft counterdrain counterdrive counterearth countered counterefficiency countereffort counterembattled counterenamel counterenergy counterengagement counterengine counterenthusiasm counterentry counterermine counterestablishment counterexaggeration counterexample counterexcitement counterexercise counterexplanation counterexpostulation counterextend counterfallacy counterfaller counterfeit counterfeited counterfeiter counterfeiters counterfeiting counterfeitly counterfeitment counterfeits counterfire counterfix counterflashing counterflight counterflory counterflow counterflux counterfoil counterforce counterfort counterfugue countergabion countergarrison countergauge countergauger countergift countergirded counterglow counterguard counterhammering counterhypothesis counteridea counterimagination counterimitation counterindentation counterindented counterindicate counterindication counterinfluence counterintelligence counterinterpretation counterintuitive counterinvective counterirritant counterirritate counterirritation counterjudging counterlaw counterleague counterlife counterlode counterly counterman countermand countermandable countermanded countermanding countermaneuver countermarches countermeasure countermeet countermen countermessage countermigration countermine countermined countermotion countermount countermove countermovement countermoves countermutiny counternarrative counternatural counternecromancy counternoise counternotice counterobligation counteroffer counteropening counteropponent counteropposite counterorator counterorganization counterpaled counterpaly counterpane counterpaned counterparallel counterparry counterpart counterparts counterpassion counterpenalty counterpicture counterplan counterplayer counterplea counterpleading counterplease counterplots counterpoint counterpointed counterpoise counterpoises counterpoison counterpole counterpose counterposting counterpotency counterpotent counterpractice counterpray counterpreach counterpreparation counterpressure counterprinciple counterprocess counterproductive counterproject counterproof counterpropaganda counterpropagandize counterproposition counterprotection counterprove counterpunch counterpuncture counterpush counterquartered counterquery counterquestion counterquip counterradiation counterraising counterrampant counterrate counterreason counterrecoil counterrefer counterreform counterreformation counterreligion counterreply counterresolution counterrestoration counterrevolution counterrevolutionary counterrevolutionist counterriposte counterruin counters countersale countersalient counterscale counterscalloped counterscarp countersconce counterscrutiny counterseal countersecurity counterselection countersense counterservice countershade countershear countershout counterside countersign countersignal countersigned countersigns countersleight counterslope countersnarl counterspying counterstamp counterstand counterstatant counterstatute counterstimulate counterstimulation counterstimulus counterstock counterstratagem counterstream counterstroke countersuit countersun countersunk countersurprise counterswing countersworn countersynod countertack countertail countertaste countertechnicality countertendency countertenor counterterm countertheme countertheory counterthought counterthreat counterthwarting countertime countertouch countertraction countertranslation countertraverse countertreason countertrespass countertrippant countertripping countertruth countertug counterturn counterturned countertype countervail countervair countervairy countervallation countervene countervengeance countervenom countervibration countervindication counterwager counterwall counterwarmth counterwave counterweight counterweighted counterwill counterwilling counterwind counterwitness counterworker counterwrite countess countest counteth countfish counties counting countinghouse countless countree countries countrified countrifiedness country countryman countrymen countryseat countryside countryward countrywoman counts countship county countywide coup coupage coupe coupelet couper couple coupled couplement coupler coupleress couples couplet coupleteer couplets coupling coupon couponed couponless coupons coups coupstick cour courage courageous courageously courageousness courant courante courap couratari courbaril courbash coureurs courge courida courier couriers courlan couronne couronnes cours course coursed courser coursers courses coursing court courtcraft courted courteous courteously courtepy courter courtesan courtesanry courtesanship courtesied courtesies courtesy courtesying courtezanry courthouse courtier courtierism courtierly courtiers courtiership courtin courting courtjy courtlike courtliness courtling courtly courtman courtney courtroom courtrooms courts courtship courtships courtyard courtyards courtzilite couseranite cousin cousinage cousine cousiness cousinly cousins cousinship cousinships cousiny coussinet coustre coustumier coute coutel coutet couth couthie couthily couthiness couthless coutil coutinuing coutumier couture couturier couturiere couvade couxia covado covarecas covariable covariance covariant covariate covariation covary covassal cove coved covelline covenant covenanted covenantee covenanter covenanting covenantor covenants covent coventrate coventrize coventry cover coverage coverchief covercle covered coverer covereth covering coverings coverless coverlet coverlets coverlid covers coversine covert covertly covertness coverts coves covet covetable coveted coveter coveting covetiveness covetous covetously covetousness covets covey covibration covid coviello covillager covin coving covinous covinously covisit covisitor covite covotary cow cowal coward cowardice cowardliest cowardliness cowardly cowardness cowards cowbane cowbell cowbells cowberry cowbind cowbird cowbirds cowboy cowboys cowcatcher cowcumber cowcumbers cowd cowdie cowed cower cowered cowering cowers cowgirl cowgram cowhage cowhand cowheel cowherd cowhide cowhiding cowhorn cowichan cowitch cowkeeper cowl cowld cowle cowled cowleech cowleeching cowlike cowlitz cowlstaff cowman cowmen coworkers cowpath cowpea cowpen cowperian cowperitis cowpock cowpoke cowpox cowpuncher cowquake cowrie cowries cowroid cowry cows cowshed cowskin cowslip cowslipped cowslips cowstalls cowtail cowweed cowwheat cowy cowyard coxa coxankylometer coxarthritis coxarthrocace coxarthropathy coxbones coxcomb coxcombhood coxcombic coxcombical coxcombicality coxcombically coxcombity coxcombry coxcomby coxocerite coxoceritic coxofemoral coxopodite coxsackie coxswain coxy coy coyan coydog coyishness coyly coyness coynye coyo coyol coyote coyotero coyotes coyotillo coyoting coypu coyure coz coze cozen cozened cozener cozening cozier cozily coziness cozy cpa cpap cpb cpb/ cpm cpr crab crabapple crabapples crabbed crabbedly crabber crabbery crabbing crabby crabcatcher crabeater crabgrass crabhole crablike crabmeat crabs crabstick crabweed crabwise crabwood cracca cracinae crack crackable crackajack crackbrain crackbrained crackdown cracked crackedness cracker crackerjack crackers crackhemp crackin crackiness cracking crackle crackled crackles crackless crackling crackmans cracknel crackpot cracks crackskull cracky cracovienne craddy cradge cradle cradleboard cradled cradlemate cradles cradleside cradlesong cradletime cradling cradock craft craftily craftiness craftless crafts craftsman craftsmanship craftsmaster craftsmen craftspeople craftwork craftworker crafty crag craggan cragged craggedness craggily craggy craglike crags cragsman craichy craig craigmontite crain craindre crains craintive craisey craizey crajuru crake crakefeet crakow cram cramasie crambambulee cramberry crambidae crambinae cramble crambly crambo crambus cramer cramful crammed crammer cramming cramp cramped crampfish cramping crampon cramponnee cramps crampy crams cran cranage cranberry crandall crandallite crane craned cranelike craneman craner cranes cranesman craney cranford crania craniacromial craniad cranial cranian craniata craniate craniectomy craning craniocele craniocerebral cranioclasm cranioclast cranioclasty craniofacial craniognomy craniognosy craniograph craniographer craniography craniological craniologically craniologist craniomalacia craniomaxillary craniometric craniometrical craniometrist craniometry craniopagus craniopathic craniopathy craniophore craniopuncture craniorhachischisis cranioschisis cranioscopist cranioscopy craniospinal craniostenosis craniostosis craniota craniotabes craniotympanic craniovertebral cranium craniums crank crankcase cranked cranker crankery crankiness crankle crankless crankman crankpin cranks crankshaft crankum cranky crannage crannied crannies crannock crannogs cranny cranreuch cranston crap crapaud crapaudine crape crapelike crapey crapped crappie crappin crapple crappo craps crapulate crapulence crapulent crapulous crapulously crapy crare crash crashed crasher crashes crashing crashings crashy craspedon craspedotal craspedote crass crassier crassina crassitude crassula crassulaceae crassulaceous crataegus crataeva cratch crate cratemaker cratemaking crateman crater crateral cratered craterellus craterid crateriform crateris craterkin craterlet craterous craters crates craticular cratinean cratometer cratometry craturs craunch craunching cravat cravats crave craved cravedst craven cravenness craver craves craving cravingly cravingness cravings cravo craw crawberry crawdad crawfish crawfoot crawford crawful crawl crawled crawlerize crawlers crawleyroot crawling crawlingly crawls crawlsome crawly crawtae crawthumper crayer crayfish crayon crayonist crayons craze crazed crazier craziest crazily craziness crazingmill crazy crazycat crazyweed crea creak creaked creaker creakiness creaking creaks creaky cream creambush creamcake creamcup creamed creamer creameries creamers creamery creameryman creamfruit creamily creaminess creaming creamlike creams creamy creance creancer creant crease creased creaseless creaser creases creasing creasy creat creatable create created createdness creates creatic creatine creating creatinine creatinuria creation creationary creationist creationistic creations creative creatively creativeness creativity creatophagous creator creatorhood creators creatotoxism creatrix creature creatureless creatureliness creatureling creatures creatureship creaturize crebricostate crebrisulcate crebrity crebrous creche cred credal creddock credence credensiveness credent credentials credently credenza credere credible credibleness credibly credit creditability creditable creditableness creditably credited crediting creditive creditless creditor creditors creditorship creditress creditrix credits crednerite credo credulity credulous credulousness cree creed creedal creedalist creedmore creeds creek creekfish creeking creeks creekside creekstuff creeky creel creeler creem creen creep creeped creeper creeperless creepers creephole creepie creepiness creeping creepingly creepmouse creepmousy creeps creepy creese creesh creeshie creeshy creetur creeturs creirgist cremaster cremasterial cremasteric cremate cremated cremation cremationist crematorial crematorium crematory crembalum cremocarp cremometer cremone cremor cremorne cremule crena crenated crenation crenature crenel crenelated crenelations crenele creneled crenellate crenellated crenellation crenic crenitic crenotherapy crenothrix crenulate crenulated creodonta creole creolian creolin creolism creolization creolize creon creophagia creophagism creophagy creosol creosote creosoter creosotic crepe crepehanger crepine crepis crepitaculum crepitant crepitate crepitation crepitus crept crepuscula crepuscular crepuscule crepusculine crepusculis crepusculum crepy cresamine crescendo crescent crescentia crescentic crescentiform crescentlike crescentoid crescents crescentwise crescive crescograph crescographic cresegol cresol cresolin cresorcinol cresotate cresotic cresotinic cresoxide cresphontes cress cresselle cresset cressets cresson cresswort crest crested crestfallen crestfallenly crestfallenness cresting crestless crestline crestmoreite crests cresyl cresylate cresylene cresylic cresylite creta cretaceous cretaceously cretan crete cretefaction cretic cretification cretin cretinic cretinism cretinize cretinous cretion cretionary cretism cretonne creutzfelt creux creuzfeldt crevalle crevasse crevasses crevice creviced crevices crevicing crevit crew crewel crewelist crewels crewelwork crewer crewless crewmen crews crex cri crib cribbage cribber cribbing cribellum criblant cribo cribral cribrate cribration cribriform cribs cribwork cricetidae cricetine cricetus crick cricket cricketer cricketing crickets crickey crickle cricoarytenoid cricoid cricopharyngeal cricothyreoid cricothyroid cricothyroidean cricotus cried crier criers cries criest crieth criey crig crile crime crimea crimean crimeful crimelessness crimeproof crimes criminal criminaldom criminales criminalese criminalism criminalist criminalistic criminality criminally criminalness criminaloid criminals criminate criminative criminator criminatory criminogenesis criminogenic criminologic criminological criminologist criminologists criminology criminosis criminously crimogenic crimp crimpage crimped crimper crimping crimple crimpness crimpy crimson crimsoned crimsoning crimsonly crimsonness crin crinal crinanite crinated crinatory crine cringe cringed cringeling cringing cringingly cringingness cringle criniculture criniferous criniger criniparous crinite crinitory crink crinkled crinkleroot crinkly crinoidal crinoidea crinoline crinose crinula criobolium crioceras crioceratite crioceratitic criophore criosphinx cripple crippled crippledom crippleness crippler cripples crippling crises crisic crisis crisp crispated crispation crisped crispiness crisping crisply crispness criss crisscross crisscrossing crissum crista cristatella cristiform cristivomer cristobalite criteria criteriology criterion criterional criterium crithidia crithmene crithomancy critic critica criticae critical criticality critically criticalness criticastry criticisable criticise criticised criticises criticising criticism criticisms criticist criticizable criticize criticized criticizer criticizes criticizing critickin critics criticship criticule criticus critique critiqued critiques critisizing critling critter critters crittur critturs crizzle cro croak croaked croakers croakily croakiness croaking croaky croat croatan croatian croc crocanthemum croceic crocein croceous crochet crocheted crocheter crocheting croci crocidolite crocidura crocin crock crockery crockeryware crocket crocketed crockett crocks crocky crocodile crocodiles crocodilia crocodilian crocodilidae crocodilite crocodillian crocodiloid crocodylus crocoisite crocoite crocus crocused crocuses croft crofter crofterization crofterize crofting croftland crofts crois croisade croissant croissante croix crokinole crom cromaltite crome cromer cromfordite cromlechs cromolyn cromorna cromorne cromwell cromwellian cronched cronching crone croneberry crones cronian cronies cronish cronk cronkness cronstedtite crony crood croodle crook crookback crookbacked crookbill crookbilled crooked crookeder crookedest crookedly crookedness crooken crookfingered crookkneed crookle crooklegged crookneck crooknosed crooks crookshouldered crooksided crooksterned crooktoothed crool croon crooned crooner crooning crop cropland croplands cropman cropped cropper croppie cropping croppings crops cropsickness croquet croquette croquignoles crosby crosier crosiered crosiers croslet crosnes cross crossability crossable crossband crossbar crossbars crossbeak crossbeam crossbelt crossbill crossbolt crossbolted crossbones crossbowmen crossbows crossbred crossbreed crosscurrent crosscurrented crosscut crosse crossed crosser crosses crossfall crossfish crosshackle crosshand crosshatch crossing crossings crossite crosslet crossleted crosslight crosslighted crossline crosslink crossly crossmark crossness crossopodia crossopterygian crossopterygii crosspatch crosspath crosspiece crosspoint crossrail crossroad crossroads crossrow crossruff crosst crosstail crosstalk crosstie crosstoes crosstrack crosstree crosswalk crossway crossways crossweb crossweed crosswise crossword crosswort crotal crotalaria crotalidae crotaliform crotalinae crotaline crotalism crotalo crotaloid crotalum crotaphic crotaphion crotaphitic crotch crotched crotchetiness crotchets crotchety crotchy crotin croton crotonaldehyde crotonic crotonization crotons crotonyl crotonylene crottels crotyl crouch crouchant crouched crouching croup croupal croupe crouperbush croupy crouse crousely crout croute crouton crovaient crow crowbait crowbar crowbars crowberry crowd crowded crowdedness crowder crowding crowds crowdy crowed crower crowflower crowfoot crowfooted crowing crowingly crowkeeper crowley crown crownbeard crowned crowner crowners crownest crowneth crowning crownless crownlet crownling crownmaker crowns crownwort crows crowsfoot crowshay crowstep crowstepped crowstick crowstone crowtoe croy croydon croze crozier crozzle crozzly crt crubeen crucem cruces crucethouse cruches crucial cruciality crucially crucian crucianella cruciate cruciates cruciation crucible crucibles crucibulum crucifer cruciferae cruciferous crucificial crucified crucifix crucifixes crucifixion cruciform cruciformly crucify crucigerous crucilly cruck cruddled cruddy crude crudely crudeness cruder crudest crudities crudity cruel cruelest cruelhearted cruelize crueller cruellest cruelly cruelness cruels cruelties cruelty cruent cruentation cruet cruets cruety cruise cruised cruiser cruisers cruises cruising cruisken cruive crumb crumbable crumbcloth crumber crumble crumbled crumbles crumblet crumbling crumblingness crumblings crumbly crumbs crumby crummie crummiest crummy crump crumper crumpet crumple crumpled crumpler crumpling crumply crumpy crunch crunchable crunched crunching crunchingly crunchingness crunchy crunkle crunodal crunode crunt crupper cruppers crural crureus crurogenital crurotarsal crus crusade crusader crusaders crusades crusading crusado crusca cruse crush crushed crushes crushing crushingly crusily crusoe crust crusta crustacea crustacean crustaceans crustaceologist crustaceology crustaceous crustade crustal crustalogical crustalogist crustate crustated crustations crusted crustedly cruster crusting crustless crustose crustosis crusts crusty crutch crutcher crutches crutchlike crutter crux cruzeiro cry cryable cryaesthesia cryanesthesia crybaby cryesthesia crying cryingly crymodynia cryogen cryogenic cryohydric cryolite cryophile cryophorus cryophyllite cryoplankton cryoscope cryoscopic cryoscopy cryostase cryosurgery crypt crypta cryptal cryptamnesia cryptamnesic cryptanalysis cryptanalyst cryptanalytic cryptanalyze cryptarch cryptarchy crypted crypteronia cryptesthesia cryptic cryptically cryptoagnostic cryptobatholithic cryptobranch cryptobranchiata cryptobranchidae cryptobranchus cryptocarpic cryptocarpous cryptocephala cryptocephalous cryptocerata cryptocerous cryptoclastic cryptococci cryptococcic cryptococcus cryptocommercial cryptocrystalline cryptodira cryptodiran cryptodirous cryptodouble cryptodynamic cryptogam cryptogamian cryptogamical cryptogamist cryptogamous cryptogenetic cryptogenic cryptogenous cryptoglaux cryptoglioma cryptogram cryptogrammatic cryptogrammatical cryptograph cryptographal cryptographer cryptographic cryptographically cryptography cryptoheretic cryptoinflationist cryptolite cryptomnesia cryptomonadales cryptomonadina cryptonema cryptoneurous cryptonymous cryptoperthite cryptophagidae cryptophthalmos cryptophyceae cryptoprocta cryptoproselyte cryptoproselytism cryptopyic cryptopyrrole cryptorchid cryptorchis cryptorrhesis cryptorrhetic cryptoscope cryptoscopy cryptosplenetic cryptostegia cryptostoma cryptostomata cryptostomate cryptostome cryptotaenia cryptous cryptovalence cryptovalency cryptozonate cryptozonia cryptozygous crypts crypturidae crystal crystalized crystalled crystallic crystallin crystalline crystallinity crystallised crystallising crystallitic crystallitis crystallizability crystallization crystallize crystallized crystallizers crystallizes crystallizing crystalloblastic crystallochemical crystallogenesis crystallogenetic crystallogeny crystallographer crystallographic crystallographical crystallography crystalloid crystalloidal crystallology crystalloluminescence crystallomagnetic crystallomancy crystallometric crystallose crystallurgy crystals crystic crystodigin crystograph crystosphene csd csf csnet ct ctenacanthus ctene cteniform ctenocephalus ctenocyst ctenodactyl ctenodontidae ctenodus ctenoid ctenoidei ctenoidian ctenophora ctenophoral ctenophoran ctenophore ctenostomata ctenostomatous ctenostome cthe cthis cts cuadra cuailnge cuarenta cuarta cuartilla cuartin cuatro cub cuban cubanite cubanize cubatory cubbing cubbishness cubby cubbyhole cubbyhouse cubbyyew cube cubeb cubelet cubelium cubes cubhood cubi cubic cubical cubicle cubicles cubics cubicular cubiculum cubiform cubism cubist cubit cubitale cubited cubitiere cubito cubitocarpal cubitodigital cubitometacarpal cubitopalmar cubitoplantar cubits cubitus cuboctahedron cubocube cubocuneiform cuboid cuboidal cuboides cubomancy cubomedusae cubomedusan cubometatarsal cubs cuchulainn cuckhold cuckold cuckoldy cuckoo cuckooflower cuckoomaid cuckoopint cuckoopintle cuckoos cuckstool cucujid cucujidae cuculi cuculidae cuculine cuculla cucullaris cucullate cuculliform cuculus cucumaria cucumariidae cucumber cucumbers cucumiform cucurbit cucurbita cucurbitaceae cucurbitaceous cucurbite cud cudava cudbear cuddle cuddled cuddling cuddly cuddy cuddyhole cudgel cudgeling cudgelled cudgeller cudgelling cudgels cudweed cue cueball cueist cuemanship cues cuesta cueva cuff cuffed cuffing cufflink cuffs cui cuichunchulli cuinage cuing cuirass cuirassed cuirasses cuirassier cuirassiers cuishes cuisinary cuisine cuissard cuissart cuissen cuitlateco cuittikin cujam cujus cul culebra culeus culiar culicidae culicidal culicide culiciform culicifugal culicifuge culicinae culicine culilawan culinarily culinary cull culla culled cullen culling cullion cullis cullud cully culm culmen culmicolous culmiferous culmigenous culminal culminate culminated culminates culminating culmination culotte culottic culottism culpa culpability culpable culpableness culpably culprit culprits cult cultch culte cultellation cultellus cultervated cultirostres cultish cultism cultist cultivable cultivably cultivatability cultivatable cultivate cultivated cultivates cultivating cultivation cultivator cultivators cultrated cultriform cultrirostral cultrirostres cults cultual cultural culturally culture cultured cultures culturine culturing culturization culturize culturological culturologically culturologist culturology cultus culver culverfoot culverhouse culverin culverkey culvert cum cumacea cumacean cumaceous cumaean cumal cumanagoto cumaphytic cumaphytism cumar cumay cumbent cumber cumbered cumberer cumbering cumberland cumbersome cumbersomely cumbersomeness cumbha cumbraite cumbrance cumbre cumbrian cumbrous cumbrously cumbrousness cumbu cumflutter cumhal cumic cumidine cuminal cuminic cuminol cuminole cuminseed cuminyl cummerbund cummings cummingtonite cummins cump cumquat cumstances cumulant cumular cumulate cumulately cumulatist cumulative cumulatively cumuli cumuliform cumulite cumulophyric cumulose cumulostratus cumulous cumyl cuna cunabular cunan cunard cunarder cunas cunctation cunctative cunctatorship cunctipotent cuneal cuneate cuneatic cuneator cuneiform cuneiformist cuneiforms cuneonavicular cuneoscaphoid cunette cuneus cunicular cunila cunjah cunjevoi cunjuh cunner cunnilinctus cunning cunningest cunninghamia cunningly cunningness cunonia cunoniaceae cuny cunye cunza cuoboard cuorin cup cupania cupay cupbearer cupbearers cupboard cupboards cupcake cupeler cupellation cuphea cuphead cupholder cupid cupidity cupido cupidon cupidone cupids cupless cupmaking cupman cupmate cupola cupolaman cupolas cupolated cupped cupper cupping cuppy cuprammonia cuprammonium cupreine cuprene cupreous cupressaceae cupressineous cupressinoxylon cupressus cupric cupride cupriferous cuprite cuproammonium cuprobismutite cuprocyanide cuproid cuproiodargyrite cupromanganese cupronickel cuproplumbite cuproscheelite cuprose cuprosilicon cuprous cuprum cups cupseed cupstone cupula cupulate cupule cupuliferae cur cura curable curacao curacy curando curarine curarize curassow curatage curate curatel curates curateship curatial curation curative curatively curativeness curatolatry curator curatores curatorial curatorium curators curatorship curatory curatos curatrix curavecan curavit curb curbable curbed curbing curbless curblike curbs curbside curbstone curbstoner curbstones curby curcas curculio curcuma curd curdiness curdle curdled curdler curdles curdling curdly curds curdwort curdy cure cured curelessly curer cures curet curettage curettement curfew curia curial curialist curialistic curiality curiate curiescopy curin curine curing curio curiologically curiologics curiology curiomaniac curios curiosa curiosities curiosity curioso curiosorum curious curiousest curiousity curiously curiousness curite curity curl curled curledly curledness curler curlew curlewberry curlews curlicue curliewurly curlike curliness curling curlingly curlpaper curls curly curlycue curlylocks curmudgeon curmudgeonery curmudgeonish curmudgeonly curmurring curple curr currack curragh curran currant currants curratow currawang currencies currency current currentless currently currentness currents currentwise curricle curricula curricularization curriculum curried currier curriers curriery curries currish currishly currishness currit curry currycomb curryfavel currying curs cursa curse cursed cursedly curser curses curseth cursing cursings cursitor cursive cursively cursiveness cursor cursorary cursores cursorial cursoriidae cursorily cursoriness cursorious cursorius cursory curst curstful curstly curstness cursus curt curtail curtailed curtailedly curtailing curtailment curtain curtained curtaining curtainless curtains curtainwise curtal curtate curtation curtest curtesy curtis curtise curtly curtness curtsey curtseyed curtseying curtseys curtsied curtsies curtsy curtsying curua curuba curucaneca curucanecan curucucu curule curuminaca curupira curvaceous curvacious curvant curvate curvature curve curved curvedly curvedness curves curvesome curvesomeness curvet curveting curvetting curvifoliate curviform curvilineal curvilinear curvilinearly curvimeter curvinerved curving curvirostral curvity curvograph curvous curvulate curvy curwhibble cuscus cuscuta cuscutaceae cuscutaceous cusec cuselite cush cushaw cushewbird cushing cushion cushioned cushioning cushionless cushions cushiony cushlamochree cushman cushy cusie cusp cuspal cusparidine cusparine cuspate cusped cuspid cuspidal cuspidate cuspidation cuspidor cusps cuspule cuss cussed cussedest cussedness cusser cussing cussions cusst cust custard custodee custodes custodiam custodian custodians custodier custodierit custodiunt custody custom customarily customariness customary customer customers customhouse customs custos custumals cut cutaneous cutaneously cutaway cutback cutch cutcherry cutdown cute cuted cutely cuteness cuterebra cutesy cuthbert cutheal cuticle cuticolor cuticula cuticular cuticularization cuticularize cuticularized cuticura cutidure cutie cutigeral cutin cutinization cutinize cutireaction cutis cutisector cutiterebra cutitis cutization cutlass cutlasses cutler cutleria cutleriaceae cutleriaceous cutlers cutlery cutlet cutlets cutling cutoff cutoffs cutout cutover cutpurse cutpurses cuts cutset cuttable cuttaca cuttage cuttanee cutter cutterman cutters cutteth cutthroat cutthroats cutting cuttingly cuttings cuttle cuttlefish cutty cuttyhunk cutup cutwater cutweed cutworm cuvette cuvierian cuya cuzceno cva cwm cwomely cyamelide cyamus cyan cyanacetic cyanamid cyanamides cyananthrol cyanastrum cyanate cyanaurate cyanauric cyanean cyaneous cyanephidrosis cyanformate cyanformic cyanhydrate cyanhydric cyanhydrins cyanic cyanicide cyanide cyanidin cyanidine cyanidrosis cyanimide cyanin cyanine cyanite cyanize cyanmethemoglobin cyanoacetate cyanoacetic cyanoaurate cyanoauric cyanocarbonic cyanochroic cyanocitta cyanocrystallin cyanoderma cyanogen cyanogenesis cyanogenetic cyanogenic cyanoguanidine cyanohermidin cyanohydrin cyanol cyanomaclurin cyanometer cyanomethemoglobin cyanometric cyanometry cyanopathic cyanopathy cyanophile cyanophoric cyanophyceae cyanophycean cyanoplastid cyanoplatinite cyanoplatinous cyanopsia cyanose cyanosed cyanosis cyanospiza cyanotic cyanotrichite cyanphenine cyanurate cyanuret cyanuric cyanus cyaphenine cyath cyathaspis cyathea cyatheaceous cyathiform cyatholith cyathophyllidae cyathophylloid cyathos cyathozooid cyathus cyberneticist cybernetics cybister cycadaceous cycadean cycadeoid cycadlike cycadofilicale cycadofilicales cycadofilices cycas cycladic cyclamen cyclamin cyclammonium cyclandelate cyclanthaceae cyclanthales cyclas cycle cycled cycledom cyclene cycles cyclesmith cycliae cyclic cyclical cyclically cyclicism cycling cyclist cyclistic cyclists cyclitis cyclize cyclizine cyclobenzaprine cyclobothra cyclobutane cycloceros cycloconium cyclodiolefin cycloganoidei cyclogram cyclograph cycloheptanone cyclohexane cyclohexanol cyclohexanone cycloid cycloidal cycloidally cycloidean cycloidei cycloidian cyclolith cycloloma cyclometric cyclometrical cyclometry cyclomyaria cyclonal cyclone cyclones cyclonical cyclonist cyclonologist cyclonometer cycloolefin cyclopaedia cyclope cyclopean cyclopedia cyclopedic cyclopedical cyclopedically cyclopedist cyclopentadiene cyclopentane cyclopentanone cyclopentene cyclophoria cyclophosphamide cyclopia cyclopism cyclopite cycloplegia cycloplegic cyclopoid cyclopropane cyclops cyclopteridae cyclopterous cyclorama cycloramic cyclorrhapha cyclorrhaphous cyclose cyclospermous cyclospondyli cyclospondylous cyclosporales cyclosporeae cyclosporinae cyclosporine cyclostoma cyclostomata cyclostomate cyclostomatidae cyclostomatous cyclostome cyclostomes cyclostomi cyclostomidae cyclostomous cyclostrophic cyclostyle cyclotella cyclothem cyclothiazide cyclothure cyclothurine cyclothyme cyclothymia cyclothymiac cyclothymic cyclotome cyclotomy cyclotosaurus cydippian cydippida cydonia cydonium cygne cygneous cygnet cygninae cygnine cygnus cyhnddcal cyke cylinder cylindered cylinderer cylinderlike cylinders cylindraceous cylindrella cylindrelloid cylindrenchyma cylindric cylindrical cylindricality cylindrically cylindricalness cylindricity cylindricule cylindrite cylindrocephalic cylindroconical cylindroid cylindroma cylindrometric cylindroogival cylindrophis cylindrosporium cylindruria cylix cyllenian cyllenius cyllosis cymagraph cymaphen cymaphyte cymaphytic cymar cymation cymbalaria cymbaleer cymbaline cymballike cymbalo cymbals cymbiform cymbocephaly cymbopogon cyme cymelet cymene cymodoceaceae cymogene cymograph cymoid cymoidium cymophane cymosely cymotrichy cymous cymric cymule cymulose cynanche cynanthropy cynara cynaraceous cynarctomachy cynareous cynaroid cynebot cynegetics cynegild cynias cyniatria cyniatrics cynic cynical cynically cynicism cynics cynipid cynipidous cynipoid cynips cynism cynocephalic cynocephalous cynocephalus cynoclept cynocrambaceae cynocrambaceous cynocrambe cynodon cynodont cynodontia cynogale cynogenealogy cynoglossum cynognathus cynography cynoidea cynology cynomoriaceae cynomoriaceous cynomorphous cynophile cynophobe cynophobia cynopithecidae cynopithecoid cynorrhodon cynosarges cynoscion cynosura cynosure cynotherapy cynthiidae cynthius cyp cyperaceous cyphellate cypher cyphomandra cyphonautes cypraeid cypraeidae cypre cypres cypress cypressed cypresses cypria cyprididae cypridina cypridinidae cypridinoid cyprina cyprine cyprinid cyprinodont cyprinodontes cyprinodontidae cyprinodontoid cyprinoid cyprinoidea cypriote cypripedium cyproheptadine cyproterone cyprus cypsela cypseli cypselid cypseliform cypseliformes cypseline cypselomorph cypselomorphae cypselomorphic cypselus cyptozoic cyrano cyrenaicism cyrenian cyril cyrilla cyrillaceae cyrillaceous cyrillian cyrillianism cyrillic cyriologic cyriological cyrtandraceae cyrtoceracone cyrtoceratitic cyrtograph cyrtopia cyrtosis cyrus cyst cystadenoma cystadenosarcoma cystal cystalgia cystamine cystatrophia cystectasia cystectasy cystectomy cysted cysteinic cystelcosis cystenchyma cystenchymatous cystencyte cysterethism cysticarpic cysticarpium cysticercosis cysticercus cystid cystidea cystidean cystidicolous cystiferous cystiform cystigerous cystignathidae cystin cystine cystinuria cystirrhea cystitis cystitome cystocarp cystocarpic cystocarps cystocele cystocolostomy cystocyte cystoelytroplasty cystoenterocele cystoepiplocele cystoepithelioma cystofibroma cystoflagellata cystogenesis cystogenous cystogram cystoidea cystolith cystolithiasis cystolithic cystomatous cystomyoma cystomyxoma cystonectae cystonectous cystonephrosis cystoneuralgia cystoparalysis cystophora cystophore cystophotography cystoplasty cystoproctostomy cystopteris cystoptosis cystopus cystoradiography cystorrhagia cystorrhaphy cystorrhea cystosarcoma cystoschisis cystoscope cystoscopic cystospasm cystospastic cystostomy cystosyrinx cystotomy cystourethritis cystous cysts cyt cytherea cytherean cytherella cytherellidae cytinaceous cytioderm cytisine cytisus cytoblast cytoblastema cytoblastemal cytoblastemous cytochrome cytochylema cytocide cytoclastic cytococcus cytode cytodiagnosis cytodieresis cytogamy cytogenetic cytogenetical cytogenetically cytogeneticist cytogenic cytogenous cytogeny cytohyaloplasm cytoid cytolist cytologic cytological cytologically cytologist cytology cytolytic cytoma cytomere cytometer cytomicrosome cytomitome cyton cytoparaplastin cytopathologic cytopathological cytopathology cytophaga cytophagous cytophagy cytopharynx cytophil cytophysiology cytoplasm cytoplasmic cytoplastic cytopyge cytoreticulum cytoryctes cytosin cytosome cytosporina cytost cytostome cytostroma cytostromatic cytotactic cytotaxis cytotoxin cytotrophy cytotropic cytotropism cytozoic cytozyme cytula cz czar czardom czarevitch czaric czarina czarism czarist czaristic czaritza czarowitch czechic czechish czechization czechoslovak czechoslovakia czechoslovakian d d'art d'etat d's da dab dabba dabbed dabbing dabble dabbled dabbler dabbles dabbling dabblingly dabchick dablet daboia daboya dabs dabster dabuge dace dacelo dacelonine dacha dachshound dachshund dacite dacites dacitic dacker dacoit dacoits dacoity dacron dacryadenalgia dacryadenitis dacryagogue dacrycystalgia dacryelcosis dacryoadenalgia dacryoadenitis dacryocele dacryocyst dacryocystalgia dacryocystitis dacryocystoblennorrhea dacryocystocele dacryocystoptosis dacryocystorhinostomy dacryocystotome dacryocystotomy dacryohelcosis dacryohemorrhea dacryolith dacryolithiasis dacryon dacryops dacryopyosis dacryosolenitis dacryostenosis dacryosyrinx dacryuria dactyl dactylar dactylate dactyles dactylic dactylioglyph dactylioglyphic dactylioglyphist dactylioglyphtic dactylioglyphy dactyliographer dactyliographic dactyliology dactylion dactylist dactylitis dactylogram dactylograph dactylographic dactyloid dactylology dactylonomy dactylopius dactylopteridae dactylopterus dactyloscopic dactyloscopy dactylosternal dactylosymphysis dactylous dactylozooid dactylus dacus dad dadaism dadap dadda dadder daddle daddy daddynut dade dadenhudd dado dads daduchus dadupanthi dae daedal daedalea daedalean daedalian daedalic daedalist daedaloid daemon daemonelix daemonic daemons daemony daer daffing daffish daffodil daffodils daffy daffydowndilly dafla daft daftberry daftlike daftness dagame dagassa dagbamba dagestan dagga dagger daggered daggerlike daggers daggle daggletailed daggly daggy daghesh daghoba daglock dagmar dago dagoba dagomba dags dague daguerrean daguerreotype daguerreotypes daguerreotypy dah dahabeah dahk dahlia dahlias dahoman dahomey dahomeyan dahoon dai daibutsu daidem daidle daidly daigning daikon dail dailamite dailey dailies dailiness daily daimen daimiate daimio daimon daimonion daimonos dain dainful dainteth daintier dainties daintiest daintify daintihood daintily daintinesses daintith dainty daiquiri dairi dairies dairy dairying dairylea dairymaid dairymaids dairyman dairymen dairywoman dais daisied daisies daisy daisybush daiva daker dakhini daktylon daktylos dal dalar dalarnian dale dales dalesman dalespeople daleswoman daleth daley dalhousie dali dallas dalle dalles dalliance dallied dally dallying dallyingly dallyings dalmanites dalmatic dalmatics dalt dalteen dalton daltonian daltonic daltonism daltonist daly dalzell dam dama damage damageable damageableness damageably damaged damagement damager damages damaging damagingly daman damascened damascener damascenine damascus damask damasse damayanti dambonitol dame damee damenization dames damgalnunna damia damianist damine damlike dammar damme dammed dammer damn damnability damnable damnably damnation damndest damned damnedest damner damnerais damnification damnii damning damningly damningness damnonians damnonii damnous damnously damns damoclean damocles damoetas damoiseau damon damourite damp dampang damped dampen dampened dampening damper damping dampishness damply dampness dampproofer dampproofing damps dampy dams damsel damselfish damselhood damsels damsite damus dan dana danaan danad danai danaid danaidae danaine danaite danakil danalite danazol danbury danby dancalite dance danced dancer dancers dances dancette dancing dancingly dand danda dandelion dandelions dander dandiacal dandiacally dandically dandies dandiest dandified dandify dandilly dandis dandizette dandle dandled dandler dandling dandlingly dandos dandruff dandy dandyism dandyize dandyling dane daneball daneflower danegeld daneweed danewort dang danged danger dangerful dangerfully dangerless dangerous dangerously dangerousness dangers dangersome dangle dangleberry dangled danglement dangler dangles danglin dangling danic daniel danielic danielson danio danism dank dankali dankishness dankness danlos dannebrog dannemorite dannock danny dans dansant danse danseuse danseuses danske danta dantean dantesque danthonia dantist dantology dantomania danton dantonesque dantonist dantophilist dantophily danube danubian danzig dao daoine dapedium daphne daphnephoria daphnetin daphnioid daphnis dapico dapper dapperling dapperly dapperness dapple dappled dapples dappling dapsone dar darabukka daraf darapti darat darbha darbyite dardan dardanarius dardani dardic dardistan dare dareall dared daredevil daredevilism daredevilry daredeviltry dareful darer dares daresay darest dareth dareway darg darger darghin dargo dargsman dari daribah daric darier daring daringly daringness darings darius dark darken darkened darkeneth darkening darkens darker darkest darkey darkful darkheartedness darkies darkish darkishness darkling darkly darkmans darkmeated darkness darkroom darkskin darksome darksomeness darky darlene darlin darling darlingest darlingness darlings darlingtonia darn darnation darndest darned darnel darner darnex darning daroga daron darr darrein darrell darshana dart dartagnan dartboard darted darter darters darting dartingly dartles dartmoor dartoic dartoid dartre darts darvon darwin darwinian darwinism darwinist darwinistic darwinite das daschagga dash dashboard dashed dashedly dashee dasher dashes dashing dashmaker dashnak dashnakist dashnaktzutiun dashplate dashy dasi dasiphora dass dasselbe dassie dast dastard dastardize dastardly dastards dasturi dasya dasyatidae dasyatis dasycladaceae dasycladaceous dasylirion dasymeter dasypaedes dasypaedic dasypeltis dasyphyllous dasypodidae dasypodoid dasyprocta dasyproctidae dasyproctine dasypus dasystephana dasyure dasyuridae dasyurine dasyurus dasyus dat data database datable datableness dataria datary datcha date dated dateless dateline datemark datepalms dater dates dati datil dating dation datiscaceae datiscaceous datiscin datiscoside datism datival dative datives dativogerundial datolite datolitic datos datril dats dattock datum datura daturism daturon datus daub daube daubed daubentonia daubentoniidae dauber daubers daubery daubing daubingly daubreelite daubs dauby daucus daud daugherty daughter daughtered daughterlike daughterliness daughterling daughters dauncing dauncy daunii daunt daunted daunter daunting dauntingly dauntingness dauntless dauntlessly daunton dauphin dauphine dauphines dauphiness daur daut dauw davach davallia dave daven davenport daver daverdy david davidic davidical davidist davies davis davison davit davits davoch davy davyne daw dawdle dawdled dawdler dawdling dawdlingly dawish dawkin dawn dawned dawning dawnings dawnlight dawnlike dawnlit dawns dawnward dawny dawson dawsonia dawsoniaceous dawsonite dawtet dawtit dawut day dayabhaga dayakker daybeam daybeams daybed dayberry dayblush daybreak daydawn daydream daydreaming daydreams daydreamy daydrudge dayflower dayfly daygoing daylight daylights daylit daylong dayman daymare daymark dayroom days daysman dayspring daystar daytale daytime daytimes daytona dayworker daywrit daza daze dazed dazedly dazedness dazement dazingly dazzle dazzled dazzlement dazzles dazzling dazzlingly db dbf dbt dc dcn ddnc de deacetylation deacidification deacidify deacon deaconess deaconhood deaconize deacons deaconship deactivate dead deadbeat deadborn deadcenter deaden deadened deadener deadening deadens deader deadest deadeye deadfall deadhead deadheadism deadhearted deadheartedly deadheartedness deadhouse deading deadishly deadishness deadlier deadliest deadlight deadline deadliness deadlock deadly deadman deadmelt deadness deadpan deadtongue deadwood deadwort deaerate deaeration deaerator deaf deafen deafened deafening deafens deafer deafforestation deafish deafly deafness deafs deair deal dealbate dealbation dealcoholization dealcoholize dealer dealerdom dealers dealership dealeth dealing dealings dealkalize dealkylate deallocate deals dealt dealtonlywith deambulatory deamidase deamidate deamidization deamidize deaminate deamination deaminization deaminize dean deanathematize deaneries deanery deaness deanimalize deanna deans deanship deanthropomorphic deanthropomorphization deappetizing deaquation dear dearer dearest dearie dearly dearness dearomatize dears dearsenicate dearsenicize dearth dearthfu dearticulation dearworth dearworthily deary deash deaspirate deaspiration deassimilation death deathbed deathbeds deathblow deathday deathful deathfulness deathify deathin deathless deathlessly deathlier deathlike deathliness deathling deathly deathpf deathroot deaths deathshot deathsman deathtrap deathward deathwards deathweed deathwhite deathworm deathy deave deavely deawie deb debacle debamboozle debar debarbarization debark debarkation debarkment debarment debarrance debarred debarring debase debased debasedness debasement debaser debasing debatable debate debateable debated debateful debatefully debatement debater debates debating debatingly debatings debauch debauched debauchedly debauchee debaucher debaucheries debauchery debauches debauching debauchment debbil debby debellate debellation debellator deben debenture debentured debenzolize debil debile debilitant debilitated debilitating debilitation debilitative debility debind debit debited debituminize deblaterate deblateration deboistly deboistness debonair debonairely debonairness debonnaire deborah debord debordment debosh debouch debouched debouches debouching debouchment debra debris debrominate debromination debruise debt debtful debtor debtors debtorship debts debug debugged debugger debullition debunk debunker debunks debussy debussyanize debut debutant debutante debutantes dec decad decadactylous decadal decadally decadarchy decadary decadation decade decadence decadency decadent decadentism decades decadescent decadianome decadist decadrachm decadron decaffeinate decaffeinated decaffeinize decagonal decagramme decahedral decahedron decahydrate decahydrated decahydronaphthalene decaisnea decalcification decalcified decalcifier decalcomania decalcomaniac decalcomanie decalescent decalogist decalogue decalvant decameral decameron decamerous decameter decametre decamp decamped decampment decan decanal decanate decangular decani decannulation decanonization decanonize decant decanted decanter decanters decantherous decanting decap decaphyllous decapitable decapitalization decapitalize decapitate decapitated decapitation decapod decapoda decapodal decapodan decapodiform decapodous decapper decarbonate decarbonator decarbonization decarbonize decarbonized decarbonizer decarboxylate decarboxylation decarboxylization decarboxylize decarburation decarburization decarburize decarch decarchy decardinalize decare decarhinus decarnate decart decasemic decasepalous decaspermal decaspermous decastere decastich decastyle decasualization decasualize decasyllabic decasyllable decasyllabon decatholicize decatize decatizer decator decatyl decaudate decay decayable decayed decaying decayless decays decca decease deceased deceit deceitful deceitfully deceitfulness deceits deceivability deceivable deceivably deceive deceived deceiver deceivers deceives deceiveth deceiving deceivingly decelerate deceleration decelerator decem december decembrist decemcostate decemdentate decemlocular decempeda decempedal decemplex decemplicate decempunctate decemstriate decemuiri decemvir decemviral decemvirship decenary decence decencies decency decene decennal decennia decenniad decennial decennially decennio decennium decennoval decent decently decentness decentralise decentralist decentralization decentration decentre deceptibility deceptible deception deceptions deceptious deceptiously deceptive deceptively decerebrate decerebration decerebrize decern decerniture decertify decess decession dechemicalization dechemicalize dechlog dechlore dechlorination dechnedfrom dechoralize dechristianization decian deciare deciatine decibel deciceronize decidable decide decided decidedly decidedness decideratum decides deciding decidingly decidua deciduary deciduoma deciduous deciduously deciduousness decigram decigramme decil deciliter decillion decillionth decima decimal decimalism decimalization decimalize decimate decimated decimation decimestrial decimeter decimolar decimole decimosexto decimus decinormal decipher decipherable decipherably deciphered deciphering decipherment decipolar decision decisional decisions decisive decisively decisiveness decitizenize decius decivilization decivilize deck decke decked deckest decketh deckhand deckhead deckie decking deckle decks deckswabber declaim declaimant declaimed declaimer declaiming declamation declamations declamatoriness declamatory declar declarable declarant declaration declarations declarator declaratorily declaratory declare declared declaredness declares declareth declaring declass declassicize declawing declension declensional declensions declericalize declimatize declinable declinate declination declinational declinatory declinature decline declined declinedness decliner declines declining declinometer declivate declive declivities declivitous declivity declivous declutch decoagulate decoagulation decoat decocainize decoctible decoction decoctive decoctum decode decoder decohere decoherence decohesion decoiffee decollate decollated decollator decolletage decolletee decolonize decolor decolorant decolorate decoloration decolorimeter decolorization decolorized decolorizer decolour decommission decompensate decompensation decompile decomplex decomponible decomposability decomposable decompose decomposed decomposer decomposes decomposing decomposite decomposition decompositions decomposure decompoundable decompoundly decompress decompressing decompression deconcatenate deconcentrator decongestant decongestants deconsecration deconsider deconsideration decontamination decontrol decontrolling deconventionalize deconvolve decor decorability decorably decorate decorated decorating decoration decorationist decorations decorative decoratively decorativeness decorator decoratory decorem decorist decorous decorously decorousness decorrugative decorticate decorticated decortication decorticator decorum decostate decouple decoy decoyed decoyer decream decrease decreased decreaseless decreases decreaseth decreasing decreasingly decreation decreative decree decreeable decreed decreeing decreement decreer decrees decrement decremeter decrepid decrepit decrepitate decrepitation decrepitly decrepitness decrepitude decrescent decretal decretalist decretalium decretist decretive decreto decretorial decretorily decretory decretum decrial decried decries decriminalize decrudescence decrustation decry decrying decryption decubital decubitus decultivate deculturate decuman decumana decumaria decumbence decumbency decumbent decumbently decuple decurionate decurrence decurrency decurrent decursion decursively decurvature decury decussata decussated decussately decussis decussorium decyl decylene decylenic decylic dedanim dedanite dedecorate dedecoration dedendum dedicate dedicated dedicating dedicatio dedication dedications dedicative dedicator dedicatorial dedicatory dedicature dedifferentiate dedit deditician dediticiancy dedition dedoggerelize dedogmatize dedolation deducam deduce deduced deducement deduces deducible deducibleness deducing deduct deducted deductible deductibles deducting deduction deductions deductive deductively deductory deduplication dee deed deedbox deeded deedful deedfully deedily deediness deedless deeds deedy deefficulties deem deemed deemedst deemer deemest deemeth deemie deeming deemphasize deems deemster deeoest deep deepen deepened deepening deepens deeper deepest deeping deeplier deeply deepmost deepness deeprooted deeps deepsome deepwater deepwaterman deer deerdrive deere deerfly deerhair deerherd deerhorn deerhound deerlet deermeat deerpark deerskin deerskins deerstalker deerstand deerstealer deertongue deerwood dees deevey deevil deevilick def deface defaced defacement defaces defacing defacingly defalcate defalcation defalk defamation defamed defamer defassa defat default defaultant defaulter defaulters defaulting defaultless defaults defeasanced defease defeasible defeat defeated defeating defeatism defeatist defeatment defeats defeature defecant defecate defecated defecation defecator defect defectibility defectible defection defectionist defectious defective defectively defectiveness defectless defectology defector defectoscope defects defedation defeminize defence defenceless defencelessness defences defend defendable defendant defendants defended defender defenders defendeth defending defendress defends defenestrate defenestration defensative defense defenseless defenselessly defenselessness defenses defensibility defensible defensibleness defensibly defension defensive defensively defensiveness defensor defensores defensorship defensory defer deferable deference deferens deferent deferential deferentiality deferentially deferentitis deferment deferrable deferral deferred deferrer deferring deferrization defers defiable defiance defiant defiantly defiber defibrinate defibrinize deficience deficiencies deficiency deficient deficit defied defier defies defile defiled defilement defiler defiles defileth defiliation defiling defilingly definability definable definably define defined definedly defines definiendum definiens defining definissant definite definitely definiteness definition definitiones definitions definitive definitively definitization definitor deflagrability deflagrable deflagrate deflagrator deflate deflated deflationary deflationist deflator deflect deflectable deflected deflecting deflection deflectionization deflectionize deflections deflective deflectometer deflector deflesh deflex deflexible deflexion deflexions deflexure deflocculator deflorate deflorescence deflower defluent defluous defluvium defocus defog defoliage defoliant defoliate deforce deforcement deforceor deforcer deforest deforestation deforester deformability deformable deformalize deformation deformative deformed deformedly deformeter deformism deformities deformity deforms defoul defraud defraudation defrauded defrauder defraudeth defrauding defraudment defray defrayable defrayal defrayed defrayer defraying defrayment defrication defrost deft defter defterdar deftest deftly deftness defunct defunctionalization defunctionalize defunctness defuse defusion defy defying defyingly deganglionate degas degasification degasifier degasify degassing degauss degelatinize degeneracy degeneralize degenerate degenerated degenerately degenerateness degenerates degeneration degenerative degenerescence degenerescent degentilize degerm degerminate degerminator degged degger deglaciation degli deglutition deglutitive deglutitory deglycerin deglycerine degorge degradation degradational degradative degrade degraded degradedly degradedness degradement degrader degrading degradingly degraduate degraduation degreasing degree degreeless degrees degreewise degression degressive degressively degu deguelin degum degummer degumming degust degustation deh dehaites deheathenize dehematize dehgan dehisce dehisced dehiscent dehistoricize dehkan dehnstufe dehonestate dehonestation dehorn dehorner dehors dehort dehortation dehorted dehull dehumanise dehumanize dehumanizing dehumidification dehumidifier dehumidify dehusk dehydracetic dehydrant dehydrase dehydrate dehydrated dehydrating dehydration dehydrator dehydroascorbic dehydrocorydaline dehydroepiandrosterone dehydrofreezing dehydrogenase dehydrogenation dehydrogenatum dehydrogenize dehypnotize dei deice deicer deicide deictic deidealize deidesheimer deification deificatory deified deifier deiform deify deign deigned deigning deigns deilvered deinde deindividualization deindividualize deindividuate deindustrialization deink deino deinoceras deinodon deinos deinosauria deinotherium deinsularize deintellectualization deintellectualize deionize deipara deiphobus deipnodiplomatic deipnophobia deipnosophism deipotent deis deism deist deistic deistical deistically deisticalness deists deities deity deityship deja dejazmach dejected dejectedly dejection dejectly dejectory dejecture dejeration dejeune dejeuner dejunkerize dekabrist dekaparsec dekapode dekle deknight del delabialization delabialize delacrimation delactation delaminate delamination delaney delapsion delasser delate delater delatinization delatinize delation delator delaware delawarean delay delayage delayed delayer delayful delaying delayingly delays dele delead delectability delectable delectableness delectably delectate delectation delectus delegate delegated delegates delegateship delegating delegation delegations delegator delegatory delenda deleniated delesseria delesseriaceous delessite delete deleted deleterious deleteriousness deletive delf delft delftware delhi delia deliberalization deliberalize deliberant deliberate deliberated deliberately deliberateness deliberating deliberation deliberations deliberative deliberativeness deliberator delicacies delicacy delicate delicately delicateness delicatessen delicatest delicense delicioso delicious deliciously deliciousness delict delicti delicto deligated deligation delighful delight delightable delighted delightedly delightedness delighter delighteth delightful delightfully delighting delightless delights delightsome delightsomely delightsomeness delignate delignification delilah delimit delimitate delimitation delimited delimiter delimiting delimitize delineable delineate delineated delineates delineating delineation delineations delineative delineator delineatory delineature delinquence delinquency delinquent delinquents delint deliquesce deliquescence deliquescent deliquescing deliquium deliration delirifacient delirious deliriousness delirium deliriums delitescence delitescency deliver deliverable deliverance delivered deliveredst deliverer deliverers deliveress deliverest delivereth deliveries delivering deliveror delivers delivery deliveryman dell della dellas delle dellenite dello dells delmarva delobranchiata delocalize delouse delphacidae delphi delphic delphin delphinapterus delphine delphinid delphinidae delphinin delphinine delphinite delphinium delphiniums delphinius delphinoid delphinoidine delphinus dels delsarte delsartean delsartian delta deltafication deltaic deltal deltarium deltas deltation delthyrial deltic deltiology deltohedron deltoid deltoidal deltoideus delude deluded deluder deludher deluding deludingly deluge deluged deluging delundung delusion delusional delusionist delusions delusive delusory delve delved delving dem demagnetise demagnetizable demagnetize demagnetizer demagogic demagogical demagogism demagogue demagoguery demagogy demain demand demandais demande demanded demander demanderais demandest demanding demands demanganize demantoid demarcated demarcation demarcations demarcator demarch demarchy demarco demargarinate demark demarkation demast dematerialization dematerialize dematiaceous deme demean demeaned demeaning demeanor demeanour demency dement dementat dementation demented dementia demephitize demerit demeritorious demeritoriously demerits demersal demersed demes demesman demesne demesnes demesnial demetallize demethylate demethylation demetrian demi demiadult demiangel demiassignation demiatheist demibastion demibastioned demibath demibeast demibob demibrigade demibrute demicannon demicanon demicaponier demichamfron demicircular demicivilized demicoronal demicuirass demidandiprat demideify demidevil demidigested demidistance demiditone demidoctor demidog demidolmen demidome demieagle demifarthing demifigure demiflouncing demifusion demigentleman demiglobe demigod demigoddess demigoddessship demigods demigorge demigriffin demigroat demihag demihearse demiheavenly demihigh demihogshead demihuman demijambe demijohn demikindred demiking demilancer demilawyer demilegato demilion demiliterate demilonization demiluster demilustre demiman demimentoniere demimetope demimillionaire demimondaine demimonde demineralization demineralize deminude deminudity demioctagonal demioctangular demiorbit demiourgoi demiox demipagan demiparallel demipauldron demipectinate demipillar demiplacate demipremise demipremiss demipriest demipuppet demirelief demirevetment demirhumb demirilievo demisable demisacrilege demisang demisavage demise demiseason demisecond demisemiquaver demisemitone demishirt demisovereign demiss demission demissly demissness demissory demisuit demit demitasse demitoilet demitone demitranslucence demitted demitube demiturned demiurge demiurgeous demiurgic demiurgical demiurgically demivambrace demivirgin demivoice demivolt demivotary demiwivern demned demnition demo demobilization demobilize democracies democracy democrat democratic democratical democratically democratifiable democratism democratist democratization democratize democrats demodectic demoded demodocus demodulator demogenic demographic demographically demographist demoid demoiselle demolish demolished demolisher demolishing demolition demolitionary demolitionist demolitions demological demology demon demonastery demoness demonetization demonetize demonetized demoniac demoniacal demoniacally demoniacism demonian demonianism demonic demonifuge demonish demonism demonist demonize demonkind demonlike demonocracy demonography demonolater demonolatrous demonolatrously demonolatry demonologic demonological demonologically demonology demonry demons demonstrability demonstrable demonstrably demonstrant demonstratable demonstrate demonstrated demonstrater demonstrates demonstrateth demonstrating demonstration demonstrational demonstrationist demonstrations demonstrative demonstratively demonstrativeness demonstrator demonstrators demonstratorship demontrais demophil demophilism demophobe demophon demophoon demoralise demoralised demoralising demoralization demoralize demoralized demoralizer demoralizing demorphinization demospongiae demosthenean demosthenic demote demoted demotics demotion demount dempsey dempster demulce demulcent demulsibility demultiplex demur demure demurely demureness demurer demurrable demurrage demurral demurrant demurred demurring demurringly demurs demus demutization demyelination demyship demystify demystifying demythologize den denarcotization denarcotize denarius denaro denationalize denaturalization denaturant denaturate denaturation denature denaturize denaturized denaturizer denaturizes denaturizing dences denda dendrachate dendral dendraspis dendraxon dendrites dendritic dendritiform dendrobates dendrobatinae dendrobe dendrocalamus dendroceratina dendroceratine dendrochronological dendrochronologist dendrocoelan dendrocoele dendrocoelous dendrocolaptine dendroctonus dendrodont dendrodus dendroeca dendrogaean dendrography dendroica dendroidal dendroidea dendrolatry dendrolite dendrologic dendrologous dendrology dendrometer dendron dendrophil dendrophile dendrophilous deneb denebola denehole denervation deneutralization deneyra dengue deniable denial denials denicotinize denied denierage denierer denies denieth denigrate denigration denigrator denim denis denitrate denitrator denitrificant denitrification denitrificator denitrifier denitrify denitrize denizen denizenize denizens denizenship denly denmark denn dennet dennis dennote dennstaedtia denny denominable denominate denominated denominates denomination denominational denominationalism denominationalize denominations denominative denominatively denominator denormalize denotation denotative denotativeness denotatum denote denoted denotement denotes denoting denotive denouement denounce denounced denouncement denouncer denounces denouncing denpasar dens dense denselier densely densen denseness denser densest denshare densher densify densimeter densimetric densimetrically densimetry densities densitometer density dent dental dentale dentaliidae dentalism dentality dentalium dentalization dentalize dentally dentaphone dentaria dentary dentata dentated dentation dentatoangulate dentatocillitate dentatosetaceous dentatosinuate dented dentel dentelated dentelle dentelure dentes dentex dentially denticate denticeti denticular denticulately denticulation denticulatum denticule dentiferous dentification dentiform dentifrice dentigerous dentil dentilabial dentilated dentilation dentile dentiloquist dentiloquy dentimeter dentin dentinal dentinalgia dentinasal dentine dentinitis dentinoblast dentinocemental dentinoma dentiphone dentiroster dentirostrate dentist dentistical dentistry dentists dentition dently dentoid dentolabial dentolingual denton dentonasal dentrifice dents dentural dentures denucleate denudate denudation denude denuded denumerable denumeral denumerant denumerantive denumerative denunciant denunciate denunciation denunciations denunciatively denunciator denunciatory denver deny denying denyingly deo deobstruent deoculate deodand deodands deodorants deodorizer deodorizing deontological deontology deoperculate deoppilant deoppilate deoppilative deorganization deorganize deorsumvergence deorsumversion deorum deorusumduction deota deoxidant deoxidate deoxidative deoxidator deoxidization deoxidizer deoxidizing deoxygenate deoxyribonucleic deoxyribose deozonization deozonize deozonizer depa depaint depakene depakote depancreatization depancreatize deparked deparliament depart departed departer departeth departing departisanize departition department departmental departmentalism departmentalization departmentalize departmentally departmentize departments departs departure departures depas depasturage depasturation depasture depatriate depauperate depauperation depauperize depencil depend dependable dependableness dependably dependance dependances dependant dependants depended dependence dependencies dependency dependent dependently dependents dependeth depending depends depeople deperition depersonalise depersonalization depersonalize depersonize dephase dephilosophize dephlegmation dephlegmatize dephlegmator dephlegmatory dephlogisticate dephlogisticated dephlogistication dephosphorization dephosphorize dephysicalization depickle depict depicted depicter depicting depiction depictions depicts depicture depigmentate depigmentation depilation depilator depilatory depilitant depilous deplaceable deplane deplasmolysis deplaster deplenish deplete depleted deplethoric depletion depletive depletory deplorability deplorable deplorableness deplorably deploration deplore deplored deploredly deploredness deplorer deplores deploring deploringly deploy deployed deployment deplumate deplume deplump depoetize depolarization depolarize depolarizer depolish depolymerization deponent depopularize depopulate depopulated depopulating depopulation depopulative depopulator deport deportation deported deportee deporter deportment deposal depose deposed deposing deposit depositaries depositary depositation deposited depositing deposition depositional depositions depositive depositories depositors depositorum depository deposits depositum depositure depot depotentiate depotentiation depots depradation depravation deprave depraved depravedly depraver depraves depraving depravingly depravity deprecate deprecated deprecates deprecating deprecatingly deprecation deprecations deprecative deprecatorily deprecatoriness deprecatory depreciate depreciated depreciates depreciating depreciation depreciative depreciatively depreciatoriness depreciatory depredate depredation depredationist depredations depredator depredatory depress depressant depressants depressed depresses depressibility depressible depressing depressingly depressingness depression depressions depressive depressively depressomotor depressor deprint depriorize deprivable deprival deprivate deprivation deprivations deprivative deprive deprived deprivement deprives depriving deprovincialize depside depsticium depth depthen depthing depthless depthometer depths depthwise depuis depullulation depurant depuration depurator depuratory deputation deputational deputationist deputations deputatively depute deputed deputies deputing deputize deputy deputygovernor der derabbinize deracinate deradelphus deradenitis deradenoncus deraign derailed derailment derange derangeable deranged derangement deranging derat derater derationalization derationalize deratization derbend derby dere dered deregulate deregulationize dereistic dereistically derek derelict dereliction derelictly dereligion dereligionize deresinate deresinize deric deride derided derider derides deriding deridingly dering deringa deringly deripia derisible derision derisive derisively derisory derivable derivably derival derivately derivation derivationally derivationist derivations derivatist derivative derivativeness derivatives derive derived derivedly derivedness deriver derives deriving derly derm derma dermacentor dermad dermahemia dermal dermalith dermanaplasty dermapostasis dermaptera dermapteran dermasurgery dermatalgia dermatatrophia dermathemia dermatine dermatitis dermatobia dermatocele dermatocellulitis dermatoconiosis dermatocoptes dermatocoptic dermatocyst dermatodynia dermatogen dermatoglyphics dermatograph dermatographia dermatography dermatoid dermatologist dermatologists dermatology dermatoma dermatome dermatomic dermatomuscular dermatomyces dermatomyoma dermatonosus dermatopathia dermatopathic dermatopathology dermatopathophobia dermatophagus dermatophone dermatophony dermatophytes dermatophytosis dermatoplasm dermatoplast dermatoplastic dermatopnagic dermatopsy dermatoptic dermatorrhagia dermatorrhoea dermatoscopy dermatosis dermatoskeleton dermatotherapy dermatotome dermatotomy dermatotropic dermatoxerasia dermatozoon dermatrophy dermestes dermestid dermestidae dermitis dermoblast dermobranchiata dermococcus dermogastric dermographia dermographism dermography dermohemal dermoid dermoidal dermol dermolysis dermomuscular dermomycosis dermoneural dermonosology dermoossification dermopathic dermophlebitis dermophobe dermophyte dermophytic dermoplasty dermoptera dermorhynchi dermorhynchous dermosclerite dermostenosis dermostosis dermotropic dermutation dern derned derness dernier derniere derniers derogate derogately derogates derogation derogatively derogator derogatorily derogatoriness derogatory derotrema derotremate derotrematous derotreme derrick derricking derrickman derricks derride derriere derries derringer derris ders deruralize derust dervish dervishes dervishhood dervishism des desaccharification desacralize desagrements desalt desamidization desart desarts desarve desarves desaturation desaurin descamisados descant descanted descanter descanting descantist descartes descend descendance descendant descendants descended descendens descendent descendental descendentalist descendentalistic descender descendibility descending descendingly descends descension descensionist descensive descensus descent descents deschampsia descort descreeptive describability describable describe described describes describeth describing descried descrier descript descriptio description descriptionist descriptionless descriptions descriptive descriptively descriptor descry dese deseaved desecrate desecrated desecrater desecration desecrations deseed desegmented desegregate desensitise desensitization desensitizer desentimentalize deseret desert deserta deserted desertedness deserter deserters desertful desertfully desertic deserticolous desertify deserting desertion desertions desertism desertless desertlessly desertness desertress desertrice deserts desertward deserve deserved deservedly deserveless deserves deservest deserveth deserviat deserving deservingly desesperee desespoir desexualize deshabille desicate desiccated desiccates desiccating desiccation desiccator desiderata desiderate desideration desideratum desight design designable designate designated designates designating designation designations designator designed designedly designee designer designers designful designfully designing designless designlessly designlessness designs desilicate desilicification desilicify desiliconization desiliconize desilver desilverization desilverizer desinence desinent desiodothyroxine desipience desipramine desirability desirable desirableness desirably desire desired desiredly desiredness desireful desires desirest desireth desiring desiringly desirous desirousness desist desistance desisted desition desjazmach desk desklike desks deslime desma desmachymatous desmachyme desmacyte desman desmarestiaceous desmatippus desmectasia desmepithelium desmidiaceae desmidiaceous desmidiologist desmocyte desmocytoma desmodactyli desmodontidae desmodus desmognathae desmognathism desmognathous desmography desmohemoblast desmomyaria desmon desmoncus desmoneoplasm desmonosology desmopathologist desmopathy desmopexia desmopressin desmopyknosis desmoscolecidae desmoscolex desmosite desmotomy desmotropic desocialization desolate desolated desolately desolateness desolater desolating desolatingly desolation desolations desonation desonide desophisticate desoxalate desoxyanisoin desoxycinchonine desoxymorphine desoxyribonucleic despair despaired despairer despairful despairfully despairfulness despairing despairingly despairingness despairs despatch despatched despatches despatching despeate despecialization despecification despect desperacy desperado desperadoes desperadoism desperate desperately desperation despicable despicably despiritualization despisable despisableness despisal despise despised despisedness despisement despiser despisers despises despiseth despising despisingly despit despite despiteful despitefully despitefulness despiteously despoil despoiled despoiler despoilers despoiling despoliation despond despondence despondency despondent despondently desponder desponding despondingly desport despot despotat despotate despotic despotically despoticalness despoticly despotism despotisms despots despumate despumation desquamate desquamation desquamative desquamatory dess dessa dessept dessert desserts dessertspoon dessertspoonful dessus destain destandardize desterilization desterilize destinate destination destinct destine destined destinies destining destinism destinist destiny destitute destitutely destitution destour destra destrier destroy destroyable destroyed destroyedst destroyeng destroyer destroyers destroyest destroyeth destroying destroyingly destroys destruct destructibility destructible destructibleness destruction destructional destructionism destructionist destructions destructive destructively destructiveness destructivism destructor destructuralize desubstantiate desuete desuetude desugar desugarize desulphur desulphurate desulphuration desulphurization desulphurize desulphurizer desultor desultorily desultoriness desultorious desultory desyl desynapsis desynaptic desynchronize desynonymization detach detachable detachably detached detachedly detacher detaching detachment detachments detail detailed detailedly detailedness detailer detailing detailist details detain detainal detained detainee detainers detaining detainment detar detassel detax detect detectable detectably detectaphone detected detecteo detectible detecting detection detective detectives detectivism detector detects detenant detention detentive deter detergence detergency detergent deteriora deteriorate deteriorated deteriorates deteriorating deterioration deteriorations deteriorative deteriorism deteriority determent determinability determinable determinableness determinably determinacy determinant determinantal determinants determinate determinately determinateness determinates determination determinationem determinations determinative determine determined determinedly determinedness determiner determines determining determinism determinist deterministic determinists determinoid deterred deterrence deterrent deterring deters detersion detersively detersiveness detest detestable detestableness detestably detestation detested detesting detests dethronable dethrone dethroned dethronement dethroner dethrones dethyroidism detin detinue detonated detonates detonating detonation detonative detonator detorsion detour detournant detours detoxicant detoxicate detoxication detoxification detoxify detoxifying detract detracted detracter detracting detractingly detraction detractors detractory detractress detracts detrain detrainment detribalise detribalization detribalize detriment detrimental detrimentality detrimentally detrimentalness detrital detritus detroit detrude detruncate detruncation detrusion detrusive detrusor detubation deuce deuced deucedly deurbanize deus deutencephalic deutencephalon deuteranomal deuteranope deuteranopia deuteranopic deuteric deuterium deuteroalbumose deuterocanonical deuterocone deuteroconid deuterodome deuteroelastose deuterogamist deuterogenic deuteroglobulose deuteromorphic deuteromycetes deuteromyosinose deuteron deuteronomic deuteronomical deuteronomist deuteronomistic deuteronomy deuteropathic deuteropathy deuteroplasm deuteroproteose deuteroscopy deuterostoma deuterostomata deuterostomatous deuterotokous deutliche deutobromide deutocarbonate deutomala deutomalal deutomalar deutomerite deuton deutonephron deutonymphal deutoplasm deutoplasmic deutoplastic deutoscolex deutoxide deutsche deutschen deutscher deutsches deutschland deux dev deva devachan devadasi devait devall devaloka devalorize devant devaporate devaporation devast devastate devastated devastates devastating devastation devastations devastative devastator devastavit develin develop developability developable develope developed developedness developement developes developing developist development developmental developmentalist developmentarian developmentary developmentist developments develops devertebrated devest devez deviability deviable deviancy deviant deviate deviated deviates deviating deviation deviationism deviations deviator device devicefulness devices devient devil devildom deviled deviling devilish devilishly devilism devilkin devillike devilman devilment devilmonger devilry devils devilship deviltry devilwise devilwood devily devious deviously deviousness devirginate devirgination devirginator devisable deviscerate devisceration devise devised devisee deviser devising devisor devisser devitalization devitalize devitalized devitrify devoice devoid devoir devoirs devolute devolution devolutionary devolve devolved devolvement devolves devolving devon devonic devonite devonport devonshire devorative devot devote devoted devotedly devotedness devotee devotees devotement devotes devoting devotion devotional devotionalism devotionality devotionalness devotionate devotionist devotions devoue devour devourable devoured devourer devourers devouress devoureth devouring devouringly devours devout devoutest devoutless devoutlessly devoutlessness devoutly devoutness devow devrait devulcanization devulcanize devvel dew dewanship dewater dewaterer dewax dewbeam dewberry dewclaw dewclawed dewcup dewdrop dewdropper dewdrops dewed dewelop dewer dewey deweylite dewfall dewlap dewlapped dewlaps dewlight dewool dewret dews dewworm dewy dexbrompheniramine dexchlorpheniramine dexiotrope dexiotropic dexiotropism dexiotropous dexon dexter dexterical dexterity dexterous dexterously dexterousness dextral dextrality dextrally dextraural dextrin dextrinase dextrinate dextrinize dextrinous dextro dextroamphetamine dextroaural dextrocular dextrocularity dextroglucose dextrogyrate dextrogyratory dextrogyrous dextrolimonene dextromethorphan dextrorotatary dextrorse dextrorsely dextrosazone dextrose dextrosinistral dextrosinistrally dextrotartaric dextrothyroxine dextrotropic dextrous dextrously dextrousness dey deyhouse deys deyselves dezaley dezincation dezincification dezincify dhabb dhahran dhai dhak dhamnoo dhangar dhanush dhanvantari dharana dharani dharma dharmakaya dharmasmriti dhava dhaw dhea dheneb dheri dhhs dhk dhole dhoni dhoolies dhoon dhoti dhoul dhow dhritarashtra dhrunken dhscern dhu dhunchee dhunchi dhurra dhyal di diabase diabasic diabeta diabetes diabetic diabetics diabetogenous diabetometer diable diablerie diabolepsy diaboleptic diabolic diabolical diabolically diabolicalness diabolification diabolify diabolist diabolize diabological diabolology diabrosis diabrotic diacanthous diacaustic diacetate diacetic diacetin diacetonuria diacetyl diacetylene diachronic diachusin diachylum diacid diaclase diaclasis diaclastic diacodion diacoele diacoelia diaconicon diacope diacranterian diacranteric diacritic diacritical diacromyodi diact diactin diactinal diactinic diactinism diadelphia diadelphous diadem diadema diaderm diadoche diadochi diadochian diadochite diadochokinesia diadochokinetic diadumenus diaene diaereses diaeresis diaeretic diaetetae diaetetic diagenesis diagenetic diageotropism diaglyph diaglyphic diagnosable diagnose diagnosed diagnoses diagnosing diagnosis diagnostic diagnostication diagnostics diagonal diagonalize diagonally diagonalwise diagonic diagram diagrammatic diagrammatize diagrammeter diagrams diagraphic diagraphical diagraphics diagredium dial dialdehyde dialect dialectally dialectic dialectical dialectician dialecticism dialectics dialectological dialectology dialector dialects dialed dialin dialing dialist dialister dialkyl dialkylamine diallage diallagic diallagite diallagoid diallelon diallelus diallyl dialog dialogic dialogical dialogically dialogism dialogistic dialogistical dialogite dialogue dialogues dialonian dialoron dialuric dialycarpous dialypetalae dialyse dialyses dialysing dialysis dialystaminous dialystelic dialystely dialytic dialytically dialyzability dialyzable dialyzate dialyzation dialyzer diamagnetism diamantiferous diamantine diamantoid diameter diameters diametral diametrally diametric diametrically diamicton diamide diamine diamines diaminoacetic diaminogene diamminonitrate diamond diamondback diamondiferous diamondize diamondlike diamonds diamondwise diamondwork diamylose diana diancecht diander diandria diandrian diane dianil dianilid dianilide dianne dianodal dianoetic dianoetical dianoetically dianoia dianoias dianthaceae dianthus diapase diapasm diapason diapasonal diapause diapedetic diapensia diapensiaceae diapensiaceous diaper diapered diaphane diaphaneity diaphanogrophy diaphanometry diaphanoscopy diaphanotype diaphanous diaphany diaphone diaphonia diaphonic diaphonical diaphonous diaphoresis diaphoretic diaphoretical diaphote diaphragm diaphragmal diaphragmatic diaphragms diaphram diaphrams diaphtherin diaphysial diaphysis diaplasma diaplex diaplexal diaplexus diapnotic diapophysial diaporthe diapsid diapsida diapsidan diapyesis diapyetic diarch diarchial diarchic diarchy diarhemia diarial diarian diaries diarist diaristic diarize diarrhea diarrheal diarrheic diarrhetic diarthrodial diarthrosis diarticular diary diaschistic diascope diascord diascordium diaskeuasis diaskeuast diaspidinae diaspidine diaspinae diaspine diaspirin diaspore diastaltic diastase diastasic diastasimetry diastataxic diastataxy diastatic diastem diaster diastole diastolen diastolic diastomatic diastral diastrophe diastrophism diastrophy diasyrm diately diatessaron diathermacy diathermal diathermaneity diathermic diathermize diathermometer diathermotherapy diathermous diathesic diathesis diathetic diatom diatoma diatomaceae diatomales diatomeae diatomic diatomicity diatomiferous diatomite diatoms diatonical diatonically diatonous diatoric diatreme diatribe diatribist diatropic diatropism diatryma diatrymiformes diau diaulos diaxial diazenithal diazepam diazeuctic diazide diazo diazoamine diazoamino diazoaminobenzene diazoanhydride diazoate diazobenzene diazoic diazoimide diazoimido diazole diazoma diazomethane diazonium diazotate diazotic diazotizable diazotization diazotize diazotype dib dibase dibasicity dibatag dibatis dibber dibble dibbler dibbling dibbuk dibenzophenazine dibenzopyrrole dibhole diblastula diborate dibrach dibranchia dibranchiate dibranchious dibromide dibrominated dibromobenzene dibs dibstone dibucaine dibutyrin dicacodyl dicaeidae dicaeology dicalcic dicarbonate dicarboxylate dicarpellary dicaryon dicaryophase dicaryophyte dicast dicastae dicastic dicathoxylic dicating diccon dice diceboard dicebox dicecup dicellate diceman dicentra dicentrine dicephalism dicephalous diceplay dicer dicere dicerion dicerous dicetyl dich dichapetalum dichas dichloramine dichlorhydrin dichloride dichloromethane dichocarpism dichocarpous dichogamous dichogamy dichondra dichopodial dichoptic dichord dichoree dichorisandra dichotic dichotomal dichotomically dichotomist dichotomistic dichotomization dichotomous dichotomously dichotomy dichroic dichroiscope dichroism dichroite dichroitic dichromasy dichromat dichromate dichromatic dichromatism dichromic dichronous dichrooscope dichroous dichroscopic dichter dicit dick dickcissel dickens dicker dickered dickerson dickey dickinson dickinsonite dicksonia diclidantheraceae diclinism diclofenac dicloxacillin diclytra dicoelious dicolic dicolon dicotyl dicotyledonary dicotyledones dicotyledonous dicotyledons dicotyles dicotylous dicranaceae dicranaceous dicranoid dicranum dicrostonyx dicrotism dicrotous dicruridae dict dicta dictaphone dictate dictated dictates dictating dictatingly dictation dictative dictator dictatorial dictatorially dictatorialness dictatorship dictature diction dictionaries dictionary dictionnaire dictis dictograph dictum dictus dictynid dictynidae dictyoceratina dictyoceratine dictyodromous dictyogen dictyogenous dictyograptus dictyoid dictyonema dictyonine dictyophora dictyopteran dictyosiphonaceous dictyostele dictyota dictyotales dictyotic dictyoxylon dicyanide dicyclic dicyclica dicyclomine dicyema dicyemata dicyemidae dicynodontia did didactic didacticality didactically didactician didacticism didacticity didactics didactyl didactylism didactylous didapper didascalar didascaliae didascalic didascalos didascaly diddle diddler diddy didelphia didelphic didelphid didelphidae didelphine didelphyidae didepsid didest didie didine didinium didle dido didodecahedral didodecahedron didos didrachma didrachmal didromy didst didu didunculidae didunculinae didus didym didymia didymium didymoid didymolite didynamia didynamian didynamous die dieb dieback diebold diectasis died diedral diedric dieffenbachia diego diehard dieldrin dielectric dielectrically dielike dielytra diem diemaking diencephalon diene dier diervilla dies diese dieselben dieselization dieselize diesinker diesinking diesis diest diet dietarian dietary dieter dieters dietetic dietetically dietetics dietetist dieth diethanolamine diethyl diethylamine diethylenediamine diethylpropion diethylstilbestrol dietic dietics dietine dieting dietist dietotherapeutics dietotherapy dietotoxicity dietrich dietrichite diets diety dietz dietzeite diewise dieyerie difda diferrion difetto diffame diffarreation diffeomorphic differ differed difference differenced differences differencing different differentia differentiable differential differentiant differentiarum differentiate differentiated differentiating differentiation differentiator differently differentness differents differest differing differs difficile difficult difficulties difficultly difficultness difficulty diffidation diffide diffidence diffident diffidently diffidentness diffluence diffluent difform difformed difformis diffract diffraction diffractive diffractiveness diffractometer diffrangibility diffrunt diffunce diffuse diffused diffusely diffuser diffuses diffusibility diffusible diffusibleness diffusibly diffusimeter diffusing diffusiometer diffusion diffusive diffusiveness diffusivity diflorasone diformin dig digallate digallic digametic digamist digamma digammated digammic digamous digamy digastric digenea digeneous digenesis digenetic digenetica digenic digenous digerent digest digestant digested digestedly digestedness digester digestibility digestible digestibleness digestibly digesting digestion digestional digestions digestive digestively digestment digests diggable digged digger diggers diggeth digging diggings dight dighting digit digital digitalein digitalin digitalis digitalism digitalization digitalize digitally digitaria digitata digitated digitiform digitigrade digitigradism digitipinnate digitize digitogenin digitorium digitorum digitoxin digitoxose digits digitus digladiate digladiation digladiator diglottic diglottism diglottist diglyceride diglyph diglyphic dignation dignification dignified dignifiedly dignifiedness dignifies dignify dignifying dignitarial dignitarian dignitaries dignitary dignitate dignities dignity dignityof dignius digoneutism digonoporous digor digram digraph digrediency digredient digress digresses digressing digressingly digression digressional digressionary digressions digressive digressiveness digressory digs diguanide digynia digynous dihalide dihalo dihalogen dihedral dihedron dihexagonal dihexahedral dihexahedron dihybridism dihydrate dihydrated dihydrazone dihydric dihydrite dihydrocodeine dihydrocuprin dihydrogen dihydrol dihydroxy dihydroxyacetone dihydroxysuccinic dihydroxytoluene diiamb diiambus diiodide diiodo diipenates diipolia diis diisatogen dijo dijudication dika dikage dikaios dikaryon dikaryophase dikaryophasic dikaryophyte dikaryophytic dikaryotic dike diked dikelocephalid diker dikes diketo dikkop diktyonite dilaceration dilambdodont dilantin dilapidate dilapidated dilapidation dilapidations dilapidator dilatability dilatableness dilatably dilatancy dilatant dilatate dilatation dilatative dilate dilated dilatedly dilatedness dilates dilating dilatingly dilation dilatometer dilatometric dilatometry dilator dilatorily dilatoriness dilatory dildo dilection dilemi dilemma dilemmas dilemmatic dilemmatical dilemmatically dilettant dilettante dilettanteish dilettanteism dilettantes dilettanteship dilettanti dilettantish dilettantism dilettantist dilexi diligence diligences diligency diligens diligent diligently dilker dill dilleniaceae dilleniaceous dilleniad dilligrout dilling dillon dillseed dillue dillweed dillydallier dillydally dillyman dilo dilogarithm dilogy diluent dilute diluted dilutedly dilutedness dilutee diluteness dilutent diluter dilutes diluting dilution dilutional dilutive diluvia diluvial diluvialist diluvian diluvianism diluvion diluvium dim dimagnesic dimanganion dimaris dimastigate dimatis dimber dimberdamber dimble dime dimension dimensionable dimensional dimensionality dimensionally dimensioned dimensionless dimensions dimensive diment diments dimer dimercaprol dimercury dimerism dimerization dimerlie dimerous dimes dimetapp dimeter dimethyl dimethylalloxans dimethylamine dimethylamino dimethylaniline dimethylbenzene dimethylphenyl dimetria dimetric dimication diminish diminishable diminished diminisher diminishes diminisheth diminishing diminishingly diminuendo diminutal diminute diminution diminutive diminutiveness dimished dimiss dimissing dimission dimissorial dimissory dimit dimity dimly dimmed dimmedness dimmer dimmest dimmet dimmeth dimming dimmish dimna dimness dimorph dimorphic dimorphous dimple dimpled dimplement dimples dimpling dimplings dimply dimps dims dimyarian dimyaric din dinah dinamode dinantian dinanzi dinaphthyl dinar dinaric dinars dinarzade dinastia dindymus dine dined diner dinergate dineric diners dines dineuric ding dingbat dingdong dinge dinged dingee dingey dinghee dingier dingiest dingily dinginess dinging dingleberry dingledangle dingly dingmaul dingo dingoes dingus dingy dinheiro dinic dinichthys dining diningroom dinings dinitrate dinitril dinitrile dinitrobenzene dinitrocellulose dinitrophenol dinitrotoluene dink dinkey dinkum dinky dinmont dinna dinned dinner dinnerless dinnerly dinners dinnertable dinnertime dinnerware dinnery dinning dinobryon dinoceras dinoceratan dinoceratid dinoceratidae dinoflagellata dinoflagellatae dinoflagellate dinoflagellida dinomic dinomys dinophyceae dinornis dinornithes dinornithic dinornithid dinornithiformes dinornithine dinornithoid dinosaur dinosauria dinosaurian dinosaurs dinotherian dinotheriidae dinotherium dinsome dint dints dinus diobely diobol diocesan diocese dioceses diocesis diocletian dioctahedral dioctophyme diodon diodont dioecia dioecian dioeciodimorphous dioecious dioeciously dioeciousness dioecism dioecy dioestrus diolefin diolefinic diomedea diomedeidae dionaea dionise dionym dionymal dionysia dionysiac dionysiacal dionysian dionysus dioon diophantine diopsidae diopside dioptase diopter dioptidae dioptometry dioptoscopy dioptra dioptral dioptrate dioptric dioptrically dioptrics dioptrischer dioptrometer dioptroscopy dioptry diorama dioramic diordinal diorite diorites dioritic dioscorea dioscuri diose diosma diosmin diosphenol diospyraceous diota diotocardia diovular dioxane dioxide dioxime dioxindole dioxy dioxybenzaldehydes dip dipala diparentum dipartite dipaschal dipe dipeptid dipetalous dipetto diphase diphasic diphead diphenol diphenyl diphenylamine diphenylchloroarsine diphenylene diphenylguanidine diphenylmethane diphosgene diphosphate diphosphide diphosphoric diphosphothiamine diphrelatic diphtheria diphtheria/tetanus diphtherial diphtheric diphtheritic diphtheritis diphtheroid diphtheroidal diphtherotoxin diphthong diphthongal diphthongally diphthongation diphycercal diphycercy diphyletic diphylla diphyllobothrium diphyllous diphyodont diphyozooid diphysite diphysitism dipicrate dipicrylamin diplanar diplanetic diplanetism diplantidian diplarthrism diplarthrous diplasion diplegia dipleidoscope dipleura dipleural dipleurogenesis dipleurogenetic diplobacillus diploblastic diplocardiac diplocaulescent diplocephaly diplococcal diplococcemia diplococcoid diplococcus diploconical diplocoria diplodia diplodocus diplodus diploetic diplogenesis diplogenetic diploglossata diploglossate diplographic diplography diplohedral diploid diploidic diploidion diploidy diplois diplokaryon diploma diplomacy diplomacyand diplomas diplomat diplomate diplomatic diplomatical diplomatically diplomatics diplomaticum diplomatique diplomatist diplomatists diplomatlque diplomats diplomyelia diplonema diplonephridia diploneural diplophase diplophyte diploplacula diploplaculate diplopoda diplopodic diploptera diplopterous diplopy diplosis diplosome diplosphene diplospondyli diplospondylic diplospondylism diplotaxis diplotegia diplotene diplozoon diplumbic dipneumona dipneumones dipneumonous dipneusti dipnoi dipnoid dipnoous dipode dipodic dipodidae dipodomyinae dipodomys dipody dipolar dipolarization dipolarize dipole diporpa dipped dipper dipping diprimary diprismatic dipropionate dipropyl diprotodon diprotodont diprotodontia dips dipsacaceae dipsaceae dipsaceous dipsacus dipsadinae dipsetic dipsomania dipsomaniac dipsomaniacal dipsosis dipstick dipter diptera dipteraceae dipteraceous dipterad dipteran dipterist dipterocarpaceae dipterocarpaceous dipterocarpus dipterocecidium dipterology dipteros diptych diptychs dipus dipware dipylon dipyre dipyrenous dipyridamole dipyridyl dipyrone dirac diract dirais dirca dird dire direct directed directer directest directeth directeur directing direction directional directionally directionless directions directitude directive directively directiveness directivity directly directness directoire director directoral directorial directors directorship directory directress directrices directs direful direfully direfulness direly dirempt diremption direness direst dirge dirgeful dirgelike dirges dirgler dirian dirichlet dirichletian dirigent dirigibility dirigible dirigomotor diriment dirk dirl dirndl dirt dirtboard dirten dirtied dirtier dirtiest dirtily dirting dirtplate dirty dirtying dis disabilities disability disable disabled disablement disabling disabusal disabuse disabused disacceptance disaccharide disaccharose disaccommodate disaccommodation disaccord disaccordance disaccustomed disacknowledge disacknowledgement disacquaint disacquaintance disadjust disadorn disadvance disadvantage disadvantaged disadvantageous disadvantageously disadvantageousness disadvantages disadvantagous disadventure disadventurous disaffect disaffectation disaffected disaffectedly disaffectedness disaffection disaffectionate disaffiliation disaffirmance disaffirmation disaffirmative disafforest disafforestation disafforested disageeable disagglomeration disaggregate disaggregation disaggregative disagio disagree disagreeability disagreeable disagreeableness disagreeables disagreeably disagreed disagreeing disagreement disagreements disagreer disagrees disalike disallow disallowance disally disambiguate disamenity disanagrammatize disanalogous disanimal disanimation disannex disannexation disannul disannuller disannulment disapostle disapparel disappear disappearance disappearances disappeared disappearer disappearing disappears disappoint disappointed disappointedly disappointer disappointing disappointingly disappointment disappointments disappoints disappreciate disappreciation disapprobation disapprobative disapprobatory disappropriate disappropriation disapproval disapprove disapproved disapprover disapproves disapproving disapprovingly disaproned disarchbishop disarm disarmament disarmature disarmed disarmer disarming disarms disarrange disarranged disarrangement disarranges disarranging disarray disarrayed disarticulate disarticulation disarticulator disasinate disasinize disassemble disassembly disassociate disassociated disassociation disaster disasters disastrous disastrously disattaint disattire disattune disauthenticate disavow disavowable disavowal disavowed disavower disavowment disazo disbalance disbalancement disband disbanded disbanding disbandment disbark disbarment disbelief disbelieve disbelieved disbeliever disbelievers disbelieves disbelieving disbench disbloom disbody disbosom disbrain disbud disbudder disburden disburdened disburdenment disbursable disburse disbursed disbursement disbursements disburser disburthen disburthened disbury disc discal discalceate discalced discanonize discanter discard discarded discarder discarding discardment discards discarnate discarnation discase discastle discept disceptator discern discerned discernible discernibly discerning discerningly discernit discernment discerns discerp discerpible discerptibility discerptible discerptibleness discerption discharge dischargeable discharged dischargee discharges discharging discharing discharity discharm dischase disciflorae discifloral discigerous discina discinct discinoid disciple disciplelike disciples discipleship disciplinability disciplinable disciplinableness disciplinaire disciplinal disciplinant disciplinarian disciplinarianism disciplinary disciplinative disciplinatory discipline disciplined discipliner disciplining discipular discircumspection discission disclaim disclaimed disclaiming disclaims disclamation disclamatory disclass disclassify disclimax discloister disclose disclosed discloses disclosing disclosive disclosure disclosures disco discoach discoactine discoblastic discobols discobolus discocarp discocarpium discocephalous discodactyl discodactylous discogastrula discoglossid discoglossidae discoglossoid discography discohexaster discoid discoidal discoideae discolichen discolor discolorate discoloration discolored discoloredness discolorization discolors discolour discolouration discoloured discolouring discolourization discomedusae discomfit discomfited discomfiture discomfort discomfortable discomfortableness discomforting discomforts discommendably discommender discommode discommoded discommoding discommodiously discommodity discommon discommons discomorula discompliance discompose discomposed discomposedly discomposedness discomposing discomposingly discomposure discomycete discomycetes discomycetous disconanthae disconanthous disconcert disconcerted disconcertedly disconcerting disconcertingly disconcertion disconcertment disconcerts disconcord disconduce disconectae disconform disconformity discongruity disconjure disconnect disconnected disconnectedly disconnectedness disconnecter disconnecting disconnection disconnectiveness disconsider disconsideration disconsolate disconsolately disconsonancy discontent discontented discontentedly discontentedness discontentful discontenting discontentive discontentment discontents discontiguous discontiguousness discontinuable discontinuance discontinue discontinued discontinuing discontinuity discontinuous discontinuously disconula disconventicle discophile discophora discophoran discophore discoplacenta discoplacentalia discoplacentalian discopodous discord discordance discordances discordancies discordancy discordant discordantly discordantness discordful discords discorporate discorrespondent discount discounted discountenanced discountenancer discounter discounting discounts discourage discourageable discouraged discouragement discouragements discourager discourages discouraging discouragingly discouragingness discours discourse discoursed discourser discourses discoursing discoursive discoursively discoursiveness discourteously discourtesy discous discouvered discover discoverability discoverable discoverably discovered discoverer discoverers discovereth discoveries discovering discovers discovert discoverture discovery discreate discreation discrecioun discredence discredit discreditability discreditable discredited discrediting discredits discreet discreeter discreetly discreetness discrepancies discrepancy discrepant discrepantly discrepation discrested discrete discretely discreteness discretion discretional discretionally discretionary discretively discriminable discriminant discriminantal discriminate discriminated discriminately discriminateness discriminates discriminating discriminatingly discrimination discriminational discriminations discriminative discriminatively discriminator discriminatory discriptions discrown discs disculpate disculpates disculpation discumber discursify discursive discursively discursory discursus discus discuss discussable discussant discussation discussed discusses discussible discussing discussion discussionism discussions discutable discutee discutient disdain disdainable disdained disdainer disdainful disdainfully disdainfulness disdaining disdainly disdains disdeceive disdenominationalize disdiaclast disdiaclastic disdiapason disdodecahedroid disdub disease disease/hl diseased diseasedness diseaseful diseases disecondary disedification disedify diseducate disegnate diselder diselectrification diselectrify disembark disembarkation disembarked disembarking disembarkment disembarrass disembattle disembed disembellish disembitter disembocation disembodied disembodiment disembody disembogue disemboguement disembogues disembosom disembowel disemboweling disembowelled disembowelling disembowelment disembower disemburden diseme disemic disemplane disemploy disemployment disempower disenable disenablement disenact disenactment disenamor disenamour disenchain disenchant disenchanted disenchanter disenchanting disenchantingly disenchantment disencharm disenclose disencumber disencumbered disendow disenfranchise disenfranchisement disengage disengaged disengagedness disengagement disengages disengaging disengirdle disenjoy disenjoyment disenmesh disennoble disennui disenshroud disenslave disentail disentailing disentailment disentangle disentangled disentanglement disentangler disentangling disenthrall disenthrallment disenthronement disentitle disentombment disentrain disentrainment disentrammel disentrance disentrancement disentwine disenvelop disepalous disequalize disequalizer disequilibrate disequilibration disequilibrium disestablished disestablisher disestablishmentarian disesteem disesteemer disestimation disexcommunicate disfaith disfavor disfavorer disfavour disfeatured disfellowship disfen disfiggered disfiguration disfigurative disfigure disfigured disfigurement disfigurements disfigurer disfiguring disfoliage disfranchise disfranchised disfranchisement disfranchising disfriar disfrock disfrocked disfurnishment disgarland disgarnish disgarrison disgavel disgenius disgig disglorify disgood disgorge disgorged disgorgement disgospel disgown disgrace disgraced disgraceful disgracefully disgracefulness disgraces disgracing disgracious disgradation disgrade disgrazia disgregate disgregation disgruntle disgruntled disgruntlement disguise disguised disguisedly disguisedness disguiseless disguisement disguiser disguises disguising disgulf disgust disgusted disgustedly disguster disgustfully disgustfulness disgusting disgustingly disgustingness disgusts dish dishabilitate dishabille dishabituated dishallucination disharmonic disharmonious disharmonism disharmonize disharmony dishboard dishcloth disheart dishearten disheartened disheartening dishearteningly disheartens dished dishellenize dishelm disher disherison disherit disheritment dishes disheveled disheveler disheveling dishevelled dishevelling dishevelment dishful dishing dishley dishlike dishling dishmaker dishmaking dishmonger dishonest dishonestly dishonesty dishonor dishonorable dishonorableness dishonorably dishonored dishonorer dishonour dishonourable dishonourably dishonoured dishonoureth dishonouring dishonours dishorner dishorse dishouse dishpan dishpanful dishtowels dishumanize dishwasher dishwashing dishwatery dishwiper dishwiping disideratum disilane disilicane disilicate disilicic disilicid disilicide disillude disilluminate disillusion disillusioned disillusionize disillusionment disillusive disimagine disimitate disimitation disimmure disimpark disimpassioned disimprison disimprisoned disimprisonment disimprove disincarcerate disincarceration disincarnation disinclination disincline disinclined disinclines disincorporate disincorporation disincrust disindividualize disinfect disinfectant disinfected disinfecter disinfecting disinfection disinfector disinfects disinfest disinfestation disinflame disinflate disinflation disingenuity disingenuous disingenuously disinherison disinherit disinheritable disinherited disinheriting disinhume disinsulation disintegrable disintegrant disintegrated disintegrating disintegration disintegrationist disintegrative disintegrator disintegratory disintegrous disintensify disinter disinterest disinterested disinterestedly disinterestedness disinteresting disinterment disinterred disintricate disinvest disinvigorate disinvolve disiressed disject disjection disjoinable disjoint disjointed disjointure disjunctively disjuncture disjune disk diskelion disks dislaurel disleaf dislegitimate dislevelment dislicense dislikable dislike disliked dislikelihood disliker dislikes disliking dislink disload dislocable dislocate dislocated dislocatedly dislocatedness dislocating dislocation dislocatory dislodge dislodged dislodgement dislodging disloyal disloyalist disloyally disloyalty dismal dismalest dismallest dismally dismalness dismals disman dismantle dismantled dismantlement dismantling dismarble dismark dismast dismasted dismastment dismay dismayed dismayedness dismayful disme dismember dismembered dismemberer dismembering dismemberment dismembers dismembrator disminion disminister dismis dismiss dismissable dismissal dismissed dismisses dismissible dismissing dismission dismissive dismissory dismount dismountable dismounted dismounting dismutation disnaturalize disnature disnest disney disneyland disnosed disobedience disobedient disobediently disobey disobeyed disobeyer disobeying disobligation disoblige disobliged disobliger disobliging disobligingness disoccupation disoccupy disodic disodium disolved disomatic disomic disomus disoperculate disopyramide disorb disorchard disorder disordered disorderedly disorderedness disorderer disorderliness disorderly disorders disordinated disordination disorganisation disorganise disorganised disorganization disorganize disorganized disorganizer disorganizes disorganizing disorient disorientate disorientation disoriented disown disownable disowned disowning disowns disozonize dispaire dispapalize disparage disparageable disparaged disparagement disparager disparaging disparagingly disparate disparation disparities disparity dispark dispart dispartment disparts dispassionate dispassionately dispassionateness dispassioned dispatch dispatched dispatcher dispatches dispatchful dispatching dispatriated dispauper dispauperize dispeaceful dispel dispelled dispelling dispels dispend dispendious dispendiously dispenditure dispensability dispensable dispensableness dispensaries dispensary dispensate dispensation dispensations dispensative dispensatively dispensator dispensatory dispensatress dispensatrix dispense dispensed dispenser dispensers dispenses dispensing dispensingly dispeople dispeopler dispergate dispergator dispericraniate disperiwig dispermous dispermy dispersal dispersant disperse dispersed dispersedness dispersement disperser disperses dispersible dispersing dispersion dispersity dispersive dispersively dispersiveness dispersoid dispersoidological dispersoidology dispersonalize dispersonification dispersonify disphenoid dispiece dispireme dispirited dispiritedly dispiritedness dispiriting dispiritingly dispise dispiteous dispiteously dispiteousness displace displaceability displaceable displaced displacement displacements displacency displacer displaces displacing displant display displayed displayer displaying displays displease displeased displeasedly displeaser displeases displeaseth displeasing displeasingly displeasingness displeasure displeasurement displenish displume displuviate dispondee dispone dispopularize disport disporting disportive disportment disporum disposability disposable disposableness disposal dispose disposed disposedly disposedness disposer disposes disposest disposing disposingly dispositio disposition dispositional dispositioned dispositions dispossess dispossessed dispossession dispossessor dispost dispowder dispractice dispraise dispraising dispraisingly dispread dispreader disprejudice disprepare disprince disprison disprivacied disprivilege disprized disprobabilize disproof disproportion disproportionable disproportionableness disproportionably disproportional disproportionally disproportionalness disproportionate disproportionately disproportionateness disproportionation disproval disprove disproved disproven disprover disproves disproving dispulp disputable disputably disputation disputations disputatious disputatiousness disputative disputatively dispute disputed disputes disputeth disputing disqualification disqualifications disqualified disqualifies disqualify disquantity disquiet disquieted disquietedly disquieter disquietest disquieteth disquieting disquietingly disquietly disquietness disquietude disquiparant disquisite disquisition disquisitional disquisitionary disquisitions disquisitively disquisitor disquisitorial disquixote disrank disrate disrealize disregard disregardable disregarded disregarder disregardful disregardfully disregardfulness disregarding disregards disrelated disrelation disrelish disrelishing disremember disrepair disreputability disreputable disreputableness disreputably disreputation disrepute disrespect disrespecter disrespectful disrespectfully disrespectfulness disring disrobe disrobed disrobement disrober disroot disrump disrupt disruptability disruptable disrupted disrupting disruption disruptionist disruptive disruptively disruptiveness disruptor dissatisfaction dissatisfactions dissatisfactoriness dissatisfactory dissatisfied dissatisfiedly dissatisfiedness dissatisfy dissatisfying disscepter disseat dissect dissected dissecting dissection dissectional dissections dissects disseizoress disselboom dissemblance dissemble dissembled dissembler dissembling dissemilative disseminate disseminated disseminates disseminating dissemination disseminative disseminator dissenhurrit dissension dissensions dissensualize dissent dissentaneous dissented dissenter dissenterism dissenters dissentiency dissentient dissenting dissentingly dissentiously dissepimental dissertate dissertation dissertational dissertationes dissertationist dissertations dissertative dissertator disserve disservice disserviceable disserviceableness dissettlement dissever disseverance dissevered disseverment dissheathe disshroud dissidently dissight dissiliency dissilient dissimilar dissimilarities dissimilarity dissimilars dissimilate dissimilation dissimilatory dissimilitude dissimulate dissimulated dissimulating dissimulation dissimulative dissimuler dissipable dissipate dissipated dissipatedly dissipatedness dissipater dissipates dissipating dissipation dissipations dissipative dissipativity dissipator dissociability dissociable dissociableness dissocial dissociality dissociant dissociate dissociated dissociation dissociative dissoconch dissogeny dissolubility dissolubleness dissolute dissolutely dissoluteness dissolution dissolutionism dissolutionist dissolutiva dissolvableness dissolve dissolved dissolvent dissolvents dissolvers dissolves dissolving dissolvingly dissonance dissonances dissonant dissonantly dissonous dissoul dissuade dissuaded dissuader dissuading dissuasion dissuasively dissuasory dissuitable dissuited dissyllabic dissyllabification dissyllabify dissyllabism dissymmetrical dissymmetrically dissymmetry dissympathize dissympathy distact distad distaff distaffe distain distained distal distalwards distance distanced distanceless distances distancing distancy distannic distant distantly distantness distaste distasted distasteful distastefully distastefulness distater distemper distempered distemperedly distenant distend distended distendedly distending distensible distension distensive distention disthene disthrall disthrone distich distiches distichlis distichously distil distill distillable distillage distillate distillation distillatory distilled distiller distilleries distillery distilling distillment distills distils distinct distincter distinctify distinction distinctions distinctive distinctively distinctiveness distinctly distinctness distingishing distingmshed distinguish distinguishability distinguishable distinguishableness distinguished distinguishes distinguishing distinguishingly distinquish distintness distoclusion distomatidae distomatous distome distomian distomidae distomum distort distorted distortedly distortedness distorting distortion distortional distortionist distortionless distortions distract distracted distractedly distractedness distractible distracting distractingly distraction distractions distractive distractively distracts distrain distrainable distrained distrainee distrainer distrainor distraint distrait distraite distraught distress distressed distressedness distresses distressful distressfully distressfulness distressing distressingly distributary distribute distributed distributedly distributee distributer distributes distributing distribution distributional distributione distributions distributively distributiveness distributor district districts distrouser distrust distrusted distruster distrustful distrustfully distrustfulness distrusting distrustingly distrusts distune disturb disturbance disturbances disturbative disturbed disturber disturbers disturbest disturbing disturbs disturnpike disubstituted disubstitution disulfide disulfiram disulfonic disulphide disulphonate disulphone disulphonic disulphoxide disulphuret disulphuric disuniformity disunion disunionism disunionist disunite disunited disuniting disunity disusage disusance disuse disused disutility disutilize disvaluation disvalue disvertebrate disvisage disvoice diswarren diswench disworth disyllabic disyoke dit dita dital ditch ditchbank ditchbur ditchdigger ditchdown ditcher ditchers ditches ditching ditchless ditchside ditchwater diterpene ditertiary dithalous dithecal ditheist ditheistic dithematic dithering dithery dithiobenzoic dithiocarbamate dithion dithionate dithionic dithionite dithymol dithyramb dithyrambic dithyrambically dithyrambos dithyrambs dition ditolyl ditrematous ditremid ditremidae ditriglyphic ditrigonal ditrocha ditrochean ditrochee ditrochous ditroite ditta dittany dittied ditties ditto dittogram dittographic dittography dittology ditty dity diuranate diureide diuresis diuretics diurna diurnal diurnally diurnalness diurnation diurne diurnule diuturnal diuturnity diva divagate divagation divagations divalent divan divans divariant divaricate divaricately divaricating divaricatingly divarication divaricator dive dived divel divellent divellicate diver diverge diverged divergence divergences divergency divergent divergently diverging divers diverse diversely diverses diversi diversicolored diversifiability diversification diversified diversifier diversiflorate diversiflorous diversifolious diversiform diversify diversifying diversion diversionary diversions diversisporous diversities diversity diversory divert diverted diverter divertibility divertible diverticle diverticula diverticular diverticulate diverticulitis diverticulum divertimento diverting divertingly divertingness divertisement divertive diverts dives divest divested divestible divesting divestiture divestment divi dividableness divide divided dividedly dividedness dividend dividends divider dividers divides divideth dividing dividingly dividual dividually dividuous divil divin divina divinable divinail divination divinatory divine divined divinely divineness diviner divineress divines divinest diving divining diviningly divinite divinities divinity divinityship divinize divins divinum divinyl divisible divisibly division divisional divisionism divisionist divisions divisive divisons divisor divisorial divisory divisural divorce divorced divorcer divorces divorcible divorcing divorcive divortium divoto divulgater divulgation divulgatory divulge divulged divulgement divulgence divulger divulges divulging divulse divulsion divulsive divulsor divus divvers diwan diwata dix dixenite dixere dixie dixiecrat dixieland dixit dixon dizain dizen dizenment dizoic dizygotic dizzard dizzied dizziest dizzily dizziness dizzy dizzying djagatay djave djehad djereed djerib djibouti djinn djinni djuka dloctor dm dna dnieper dnr do doab doable doan doarium doat doated doater doating doatingly doatish dob dobbed dobber dobbin dobbing dobbs dobe dobla doblon dobra dobrao doby doc docent docentship docet docetae docetist docetistic dochmiacal dochther docibility docible docibleness docile docilely docility docimasia docimastic docimasy docimology dock docked docken docket dockhouse docking dockization dockize dockland dockmaster docks dockyard dockyardman dockyards docoglossa docrrine doctor doctorate doctorbird doctordom doctored doctoress doctorfish doctorial doctorially doctoring doctorization doctorize doctorlike doctors doctorship doctrinaire doctrinairism doctrinal doctrinality doctrinally doctrinarian doctrinarians doctrinarily doctrinarity doctrinary doctrine doctrines doctrinis doctrinism doctrinist doctrinization document documenta documental documentalist documentarily documentary documentation documented documenti documentize documentos documents dod doddart dodder doddered dodderer doddering doddery doddie dodding doddypoll dode dodecade dodecagon dodecagonal dodecahedra dodecahedral dodecahedric dodecahydrate dodecahydrated dodecamerous dodecane dodecanesian dodecanoic dodecant dodecapetalous dodecarch dodecarchy dodecasemic dodecastyle dodecasyllabic dodecasyllable dodecatemory dodecatoic dodecatyl dodecatylic dodecuplet dodecyl dodge dodged dodger dodges dodginess dodging dodgy dodkin dodlet dodman dodo dodoism dodona dodonaea dodonaeaceae dodonean dodonian dodson doe doegling doer doers does doeskin doesn doesn't doesna doest doeth doff doffed doffer doffs doftberry dog dogate dogbane dogberry dogbush dogcart dogcatcher dogdom doge doges dogface dogfish dogfoot dogged doggedly doggedness dogger doggerel doggereler doggerelist doggerels doggeries doggery doggess doggie dogging doggish doggishness doggo doggone doggrel doggrelize doggy doghead doghole doghood doghouse dogie dogleg dogless doglike dogly dogma dogman dogmas dogmatic dogmatica dogmaticae dogmatical dogmatically dogmaticalness dogmatics dogmatism dogmatization dogmatize dogmatizer dogmouth dogproof dogrib dogs dogskin dogsleep dogstone dogtail dogtie dogtooth dogtoothing dogtrick dogtrot dogvane dogwatch dogwood dogwoods dogy doigt doiled doin doina doing doings doit doited doitrified doke doketic doketism dokimastic dokmarok doko dol dola dolabriform dolcan dolce dolcian dolciano dolcino dole doled dolefish doleful dolefully dolefulness dolefuls dolently dolerite dolerites dolerophanite dolesome dolesomely dolesomeness doli dolia dolichoblond dolichocephal dolichocephalic dolichocephalism dolichocephaly dolichocercic dolichocnemic dolichopellic dolichopodous dolichoprosopic dolichopsyllidae dolichos dolichosaur dolichosauri dolichosaurus dolichosoma dolichostylous dolichotmema dolichuric doline doling dolioform doliolidae dolium doll dollah dollahs dollar dollarbird dollardom dollarfish dollarleaf dollars dollbeer dolldom dollface dollfish dollhood dollhouse dollier dolliness dolling dollish dollishly dollishness dollmaking dollop dolls dollship dolly dollyman dollyway dolman dolmen dolmens dolo dolomedes dolomite dolomites dolomitic dolomitization dolomitize dolomization dolor dolores doloriferous dolorifuge dolorous dolorously dolorousness dolous dolph dolphin dolphinlike dolphins dolphus dolsk dolt doltish doltishness dolts dom domain domainal domaine domains domal domani domanial domatium domatophobia domba dombeya domdaniel dome domeboro domed domelike domenico doment domer domes domesday domestic domesticality domestically domesticate domesticated domestication domesticator domestici domesticities domesticity domestics domeykite domi domic domical domicella domicile domiciled domiciles domiciliar domiciliary domiciliate domiciliation dominance dominancy dominant dominantly dominate dominated dominates dominating dominatingly domination dominations dominative dominator domine domineer domineered domineering domineeringly domingo dominial dominic dominical dominicale dominican dominie dominion dominionism dominions dominique domino dominoes dominus domite domitic domn domnei domoid domos dompt domus domy don don't dona donaciae donacidae donahue donaldson donary donatary donate donated donatee donating donation donations donatism donatistic donative donator donatress donax donc doncella dondia done doneck donee donet doney dong donga dongolese dongyng dongynge donia donjon donkey donkeyback donkeyish donkeyman donkeys donna donnai donnais donned donnelly donner donnered donnert donning donnish donnism donno donnybrook dono donohue donor donors donorship donought donovan dons donship dont dontcha dontchuknow donum donuts doob dooce dooced doocedly doocot doodab doodad doodia doodle doodlesack doohickey doohickus doohinkey doohinkus dook dooket dool doolee dooley dooli doolittle dooly doom doomage doombook doomed doomful dooming dooms doomsman doomstead doon door doorbell doorbells doorboy doorbrand doorcase doorcheek doorframe doorhead doorjamb doorjambs doorkeep doorkeeper doorknob doorknobs doormaid doormaking doorman doormat doormen doorplate doorpost doors doorstead doorstep doorsteps doorstop doorway doorways doorwise dooryard dooties dooty doozy dop dopa dopamelanin dopaminergic dopant dopatta dope doped doper dopes dopester dopey doppelkummel dopper doppia doppler dopplerite dora dorab dorask doraskean dorbeetle dorcas dorcastry dorcatherium doree dorhawk doria dorian doric dorical doricism dorididae doris dorism dorite dorize dorized dorje dorking dorlach dorlot dorm dormant dormer dormered dormient dormilona dormition dormitive dormitories dormitory dormiunt dormouse dorn dorneck dornic dornick dornock dorobo doronicum dorosoma dorothea dorp dorsabdominal dorsad dorsah dorsal dorsale dorsales dorsalgia dorsalis dorsally dorsalmost dorsalward dorsalwards dorsars dorsel dorser dorset dorsi dorsibranchiata dorsibranchiate dorsicollar dorsicommissure dorsiduct dorsifixed dorsiflex dorsilumbar dorsimedian dorsimesal dorsimeson dorsiparous dorsiventral dorsiventrality dorsiventrally dorso dorsoabdominal dorsoapical dorsocaudal dorsocentral dorsocephalad dorsocervical dorsocervically dorsodynia dorsoepitrochlear dorsointercostal dorsointestinal dorsolateral dorsolumbar dorsomedian dorsonuchal dorsopleural dorsoposteriad dorsoposterior dorsosacral dorsoscapular dorsosternal dorsothoracic dorsoventrad dorsoventrally dorsum dorter dortiness dortmund dorty doruck dory doryanthes dorylinae doryphorus dos dosa dosage dose dosed doser doses dosimetric dosimetrist dosinia dosis dosology doss dossal dossier dossil dossing dossman dost dostoevsky dot dotal dotard dotardly dotards dotardy dotation dotchin dote doted doter doth dothideacea dothidella dothienenteritis dotiness doting dotingly dotingness dotish dotkin dotless dotlike doto dotonidae dots dotted dotter dotterel dotting dottings dottler dottore dotty doty douar double doubled doubledamn doubleday doubleganger doublegear doublehanded doublehandedly doublehandedness doublehatching doubleheader doublehorned doublelunged doubleness doubler doubles doublet doubleted doubletone doubletree doubleyou doubling doublings doubloon doubloons doublure doublures doubly doubt doubtable doubted doubtedly doubter doubtest doubtful doubtfully doubtfulness doubting doubtingly doubtingness doubtings doubtless doubtlessly doubtlessness doubtmonger doubts doubtsome douc douce doucely douceness doucet douches douching doucin doudle doug dough doughbird doughboy doughboys doughcake dougherty doughface doughfaceism doughfoot doughhead doughiness doughlike doughmaker doughman doughnut doughnuts dought doughtier doughtiest doughtiness doughty doughy douglas douglass douleur douleurs douloureux doun doundake dounge doup douping dour dourine dourly dourness doused douser dousing dout douter doutous doux douzepers douzieme dove dovecot dovecote doveflower dovefoot dovehouse dovekey dovekie dovelet dovelike doveling dover doves dovetail dovetailer doveweed dovewood dowable dowager dowagers dowdily dowdy dowdyism dowed dowel doweler doweling dowelled doweller dowelling dower doweral dowered dowering dowers dowery dowie dowieism dowieite dowily dowitch dowitcher dowl dowlas dowless dowling down downbear downbeard downbeat downbent downby downcast downcastly downcastness downcome downcoming downcurved downcut downdale downdraft downe downed downer downface downfall downfallen downfalling downflow downfold downgate downgone downgrade downgrowth downhanging downheaded downhearted downheartedly downhill downily downiness downing downland downlands downlie downlier downligging downlike downline downlooked downplay downpour downrange downright downrightest downrightly downrightness downriver downs downset downside downsinking downsliding downslip downslope downspout downstairs downstate downstater downstream downstroke downtake downthrow downton downtown downtrodden downtroddenness downturn downward downwardness downwards downway downweight downweighted downwind downwith downy dowry dowsabel dowse dowser dowset doxa doxantha doxepin doxographer doxographical doxography doxological doxologies doxologize doxology doxy doxycycline doxylamine doyen doze dozed dozen dozens dozenth dozer dozes doziness dozing dozy dr drab drabbet drabbish drabbletail drably drabness drabs drachm drachmae drachmai drachmal drachmas drachms dracma draco draconian draconianism draconid draconis draconitic dracontian dracontiasis dracontic dracontites dracontium draff draffman draffy draft draftage drafted draftee drafter draftily drafting draftman draftmanship draftproof drafts draftsman draftsmanship draftswoman draftswomanship draftwoman drag dragade dragbar drager dragged dragger draggily dragginess dragging draggingly draggle draggled draggletailed draggletailedly draggletailedness draggling draggly draghound dragman dragnet drago dragoman dragomanate dragomanic dragomanish dragon dragonesque dragoness dragonet dragonfish dragonflies dragonfly dragonhead dragonhood dragonish dragonism dragonize dragonlike dragonroot dragons dragontail dragonwort dragoon dragoonable dragoonade dragoonage dragooner dragoons dragrope drags dragstaff drail drain drainable drainage drainboard draine drained drainer drainerman draining drainless drainman drains draintile drake drakes drakestone drakonite dram drama dramalogue dramas dramatic dramatical dramatically dramaticism dramatics dramaticule dramatis dramatise dramatised dramatism dramatist dramatists dramatizable dramatize dramatized dramatizer dramaturge dramaturgic dramaturgical dramaturgist dramaturgy dramless dramm drammage drammatica drammed drammer dramming drammock drams dramseller dramshop drank drant drap drapable draparnaldia drape drapeable drapeau draped draper draperess draperies drapers drapery drapes draping drapping drassid drassidae drastic drastically drat dratchell dratted draught draughtboard draughthouse draughtman draughtmanship draughts draughtsman draughtsmanship draughtswoman draughtswomanship draughty drave dravida dravidian dravidic dravya draw drawable drawarm drawback drawbacks drawbar drawbeam drawbench drawboard drawbore drawboy drawbridge drawcansir drawcut drawdown drawed drawee drawer drawers draweth drawfile drawfiling drawgear drawglove drawhead drawing drawinge drawingroom drawings drawknife drawknot drawl drawlatch drawlatching drawled drawler drawling drawlingness drawlink drawloom drawls drawly drawn drawnet drawoff drawout drawplate drawpoint drawrod draws drawsheet drawside drawstop drawtube dray drayman draymen drays drazel dread dreaded dreader dreadful dreadfuller dreadfullest dreadfully dreadfulness dreadfuls dreading dreadless dreadlessly dreadlessness dreadly dreadnaught dreadness dreads dream dreamage dreamed dreamer dreamers dreamful dreamfully dreamfulness dreamhole dreamiest dreamily dreaminess dreaming dreamish dreamland dreamless dreamlessly dreamlessness dreamlet dreamlike dreamlit dreamlore dreams dreamt dreamtide dreamwhile dreamworld dreamwrapt dreamy dreaned drear drearier dreariest drearihead drearily dreariment dreariness drearly dreary dred dredge dredged dredgeful dredger dredgers dredging dree dreeing dreen dreepiness drefful dreg dreggily dreggish dreggy dregless dregs dreiling dreissiger dremp drench drenched drencher drenching dreng drengage drepanaspis drepanidae drepanididae drepanis drepanoid dreparnaudia dresden dress dressage dressed dresser dressers dressership dresses dressily dressiness dressing dressinggown dressings dressline dressmake dressmaker dressmakers dressmakery dressmakes dressmaking dressy drest drew drewest drewite drexing dreyfuss drias drib dribble dribbled dribblement dribbler dribbling dribe driblet dribs dried drier drierman dries driest drieth drift driftage drifted drifting driftingly driftings driftland driftless driftlet driftman driftpiece driftpin drifts driftway driftwind driftwood drifty drill drilled drilling drillman drillmaster drills drily drimys drinck dringle drink drinkability drinkable drinkableness drinkably drinke drinker drinkers drinkest drinketh drinking drinkless drinks drinky drip dripped dripping drippings dripple drippy drips dripstick dripstone drisk driv drivable drive driveaway driveboat drivehead drivel driveler driveling drivelingly drivelling driven driver driverless drivers drivership drives drivescrew driveth driveway driveways driving drivingly drizzle drizzling drizzly droddum drogh drogher droit droits droitural drokpa drole drolesses droll drolleries drollery drollest drolling drollingly drollishness drolly dromaeognathism dromaeognathous dromaeus drome dromedarian dromedarist dromedary drometer dromiacea dromic dromiceiidae dromicia dromograph dromomania dromond dromornis dromostanolone dronage drone droned dronelike dronepipe drones drongo droning droningly dronishly dronishness drool drooled drooling droop drooped drooper drooping droopingness droops droopt droopy drop droped dropflower drophead droplet droplets droplike dropling dropman dropout dropped dropper droppers dropping droppings droppy drops dropseed dropsical dropsicalness dropsy dropt dropwise dropwort droschken drosera droseraceous droshky drosograph drosometer drosophyllum dross drossel drosser drossiness drossless drostdy drought droughtiness droughts droughty drouthy drove drover drovers droves droving drovy drow drown drownd drownded drowned drowner drowning drowningly drowns drowse drowsed drowsily drowsiness drowsing drowsy drs drub drubber drubbing drucken drudge drudged drudgery drudges drudgingly druery drug drugeteria drugged drugger druggery drugget druggeting drugging druggist druggister druggists druggy drugless drugs drugshop drugstore druid druidic druidical druidism druidry druids druith drukpa drum drumbeat drumbledore drumfish drumhead drumheads drumlinoid drumloid drumloidal drummed drummer drumming drummy drums drumskin drumstick drumsticks drumwood drung drungar drunk drunkard drunkards drunken drunkenly drunkenness drunkensome drunkenwise drunker drunkery drunks drupa drupal drupe drupelet drupeole drupetum drupiferous drury druse drusy druv druxiness dry dryad dryadetum dryads dryas drybeard dryden drydenian drydenism dryer dryers dryest dryfoot drygoods drygoodsman dryhouse drying dryish dryly drymouth drynaria dryness dryobalanops dryopes dryophyllum dryopians dryopithecid dryopithecinae dryopithecine dryopithecus dryops dryopteris drypoint dryrubbing drysalter dryster dryth dryue dryworker ds dsa dschubba dt dtaw dtd dthe dtic dtp dts du duadic dual duala dualin dualist dualistic dualistically duality dualize dually dualmutef dualogue duane duarch duas dub dubash dubba dubbah dubbed dubber dubby dubhe dubhgall dubiocrystalline dubiosity dubious dubiously dubiousness dubitable dubitably dubitant dubitatingly dubitation dublin duboisia duboisin duboisine dubonnet dubs duc duca ducal ducally ducamara ducat ducato ducatoon ducats ducdame duces duche duchesnea duchess duchesse duchesses duchesslike duchies duchy duck duckblind duckboards duckboat ducked ducker duckery duckfoot duckhearted duckhood duckhunting ducking ducklings ducklingship duckmeat duckpin ducks duckshot duckstone duckweed duckwife duckwing ducky duco ducs duct ductal ducted ductibility ductile ductilely ductileness ductilimeter ductility ductilize duction ductless ducts ductu ductule ductus ductwork ducula dud dudder duddies dude dudeen dudgeon dudine dudish dudler dudley dudleya duds due duel dueled dueling duelist duelists duelling duellist duellists duello duels dueness duenna duennadom duennaship dues duessa duet duets duettist duff duffadar duffel duffer dufferdom duffing duffle duffy dufoil dufrenite dufterdar duftery dug dugal dugdug duggler dugong dugongidae dugout dugouts dugs dugustissimus dugway duhat duhr duim dujan duke dukedom dukeling dukes dukhn dukker dukkeripen dulat dulbert dulcet dulcetly dulcetness dulcian dulciana dulcifluous dulcify dulcimer dulcitol dulcitude dulcose duledge duler dull dullard dullardism dullardness dullbrained dulled duller dullest dullhead dullify dulling dullish dullity dullness dullpate dulls dully dulness dulotic dulse dulseman dult dultie dulwilly duly dum duma dumaist dumb dumbbell dumbbeller dumbcow dumbfounded dumbfounder dumbfounderment dumbhead dumbledore dumbly dumbness dumbwaiter dumdum dumetose dumfound dumfounded dumfounder dummel dummered dummies dumminess dummy dummyism dummyweed dumn dumontiaceae dumontite dumortierite dumosity dump dumpage dumpcart dumped dumper dumpily dumping dumpish dumpishness dumple dumpling dumplings dumps dumpty dumpy dumsola dun dunair dunal dunbar dunbird duncan dunce duncehood duncery dunces dunciad duncical duncify duncish duncishly duncishness dunder dunderhead dunderheaded dunderheadedness dunderheads dunderpate dune dunedin dunes dung dungan dungannonite dungaree dungbird dungbred dunged dungeon dungeonlike dungeons dunghill dunghilly dungings dungon dungy dungyard dunk dunkadoo dunkerque dunkirk dunlin dunlop dunn dunnage dunne dunner dunness dunning dunno dunnock dunpickle duns dunst dunstable dunt duntle duo duocosane duodecahedral duodecahedron duodecane duodecennial duodecimal duodecimality duodecimally duodecimfid duodecimo duodecimole duodena duodenal duodenary duodenate duodenation duodene duodenocholangitis duodenocystostomy duodenoenterostomy duodenogram duodenojejunal duodenojejunostomy duodenopancreatectomy duodenoscopy duodenostomy duodenotomy duodenum duodrama duograph duoi duole duopod duopolist duopolistic duopsonistic duopsony duos duosecant duotriacontane duotype dupe duped dupedom duper dupery dupes duping dupla duplation duple duplex duplexity duplicability duplicable duplicand duplicate duplicated duplicates duplication duplications duplicature duplicia duplicident duplicidentate duplicipennate duplicitas duplicity duplify duplone duquesne dur dura durability durable durableness durain duralumin duramatral duramen durance durandarte durangite durango durant duranta durante duraplasty duraquara duraspinalis duration durational durationless durations durax durbachite durbar durch durdenite dure durene durer duress duressor durgan duridine durindana during duringly durio durity durkin durn duro durometer duroquinone durra durrin durry durs durst durum durward durwaun duryodhana dusack duscle dusenberg dusenbury dush dusio dusk duskier duskily duskiness duskingtide duskish duskly duskness dusky dusseldorf dust dustbins dustcloth dusted dustee duster dusters dustier dustily dusting dustless dustlessness dustman dustpan dustuck dustup dustwoman dusty dustyfoot dusun dutch dutcher dutchman dutchmen dutchy duteous duteously duteousness dutiability dutiable duties dutiful dutifully dutifulness dutra dutton duty dutymonger duumvir duumviral duumvirate duvetyn dux duyker dvaita dvandva dwalm dwamish dwang dwarf dwarfed dwarfish dwarfishly dwarfishness dwarfism dwarfling dwarfness dwarfs dwayberry dwell dwelled dweller dwellers dwellest dwelleth dwelling dwellingplace dwellings dwells dwelt dwindle dwindled dwindles dwindling dwine dwinel dyad dyadic dyak dyakish dyarchic dyas dyassic dyaster dyaus dyce dychynge dye dyeable dyed dyehouse dyeing dyeleaves dyemaker dyer dyes dyester dyestuff dyeware dyewood dygogram dying dyingly dyingness dyke dykehopper dykereeve dykes dylan dynametrical dynamic dynamical dynamics dynamis dynamism dynamistic dynamitard dynamite dynamiters dynamitic dynamitical dynamitically dynamitish dynamitist dynamization dynamo dynamoelectric dynamoelectrical dynamogenesis dynamogenic dynamogenous dynamogenously dynamometamorphic dynamometamorphosed dynamometer dynamometric dynamoneure dynamos dynamostatic dynamotor dynast dynastic dynastical dynastically dynastidan dynastides dynasties dynastinae dynasty dynatron dyne dynel dyophone dyophysitic dyophysitism dyotheism dyotheletian dyotheletic dyotheletical dyotheletism dyowin dyphylline dyryth dysacousia dysanalyte dysaphia dysarthria dysarthric dysarthrosis dysbulia dysbulic dyschroa dyschroia dyschromatopsia dyschromatoptic dyschronous dyscrasia dyscrasial dyscrasite dyscratic dysenteric dysenterical dysentery dysepulotic dysepulotical dysergasia dysesthetic dysfunctional dysgenesic dysgenesis dysgenetic dysgenic dysgenical dysgenics dysgeogenous dysgnosia dyskinesia dyskinetic dyslalia dyslogistic dyslogistically dyslysin dysmenorrhea dysmenorrheal dysmerism dysmerogenesis dysmeromorph dysmeromorphic dysmetria dysmorphism dysmorphophobia dysnomy dysodile dysodontiasis dysorexia dysorexy dysoxidation dysoxidize dyspareunia dyspathetic dyspathy dyspepsia dyspepsy dyspeptic dyspeptical dyspeptically dysphagic dysphasic dysphemia dysphonia dysphonic dysphoria dysphrasia dyspituitarism dysplasia dysplastic dyspneic dyspnoea dyspnoic dysprosia dysprosium dysraphia dyssnite dysspermatism dyssynergia dyssystole dystaxia dystectic dysthyroidism dystomic dystonia dystonias dystrophia dystrophic dystrophy dysuria dysuric dysyntribite dytiscidae dytiscus dyvers dzeren e e'er e's e.g ea eabdonomoi eabdouchoi each eachwhere ead eadier eagan eager eagerer eagerest eagerly eagerness eagle eaglelike eagles eaglestone eaglet eagre ealdorman ealdormen ean eanos ear earbob earcap eardrop eardrops eared earflower earhole earing earl earlap earldom earldoms earless earlidr earlier earliest earlike earliness earlock earls earlship early earmark earmarks earmuff earmuffs earn earned earner earners earnest earnestest earnestly earnestness earneth earnful earning earnings earns earpick earpiece earplug earreach earring earrings ears earscrew earshot earsplitting eartab earth earthboard earthborn earthbound earthbred earthed earthen earthenhearted earthenware earthfall earthfast earthgall earthgrubber earthian earthiness earthless earthlight earthliness earthling earthly earthmaking earthmen earthmove earthmover earthmoving earthpea earthquake earthquaken earthquakes earthquaking earths earthshaker earthshaking earthshine earthshock earthslide earthstar earthtongue earthward earthwards earthworks earthworm earthworms earthy earwax earwitness earwort ease eased easeful easefully easefulness easel easeless easement eases eash easier easiest easily easiness easing east eastbound easterling easterly eastern easternmost eastertide eastings eastland eastman eastmost eastre easts eastward eastwardly eastwards easy easygoing eat eatability eatable eatables eatage eatberry eate eaten eater eaters eateth eatin eating eatinge eaton eats eatun eau eave eaved eaves eavesdrop eavesdropper eavesdroppers eavesdropping eavesdroppings eb ebb ebbed ebbing ebbman ebbs eben ebenaceae ebenales ebeneous ebenezer eber eberthella eberybody ebionite ebionitic ebionitism ebionize eboe ebon ebonist ebonite ebonize ebony ebracteate ebranle ebriate ebriety ebrious ebriously ebullience ebulliency ebullient ebulliently ebulliometer ebullioscope ebullioscopy ebullition ebullitions ebulus eburated eburine eburna eburnated eburnean eburneoid eburneous eburnian ebv ecad ecanda ecardinal ecarte ecballium ecbole ecca ecce eccellence eccentrate eccentric eccentrical eccentrically eccentricities eccentricity eccentrics eccentring eccentrometer ecchondrosis ecchondrotome ecchymoma ecchymose ecchymosis ecclesia ecclesiae ecclesiarch ecclesiast ecclesiastic ecclesiastica ecclesiasticae ecclesiastical ecclesiastically ecclesiasticism ecclesiasticize ecclesiastics ecclesiasticus ecclesiastique ecclesiastry ecclesioclastic ecclesiolater ecclesiolatry ecclesiologic ecclesiological ecclesiologically ecclesiologist ecclesiology ecclesisstical eccoprotic eccritic eccyesis ecdemic ecdemite ecderonic ecdysiast ecdysis ecesic ecesis ecg echea echelon echelonment echelonned echelonning echelons echeloot echeneidid echeneididae echeveria echidna echidnidae echimys echinacea echinal echinate echinidea echinital echinite echinocaris echinochrome echinococcus echinoderes echinoderm echinoderma echinodermal echinodermatous echinodermic echinodiscus echinodorus echinoid echinoidea echinologist echinology echinomys echinopanax echinopsine echinorhinidae echinorhynchus echinospermum echinosphaerites echinostoma echinostome echinostomiasis echinulated echinulation echinus echis echiurid echiuroidea echo echocardiogram echocardiography echoed echoer echoes echogram echoing echoingly echoism echoist echolalia echolalic echoless echometer echopractic echopraxia echte eckehart ecklein eclair eclaireront eclaireurs eclampsia eclat eclaterent eclectic eclectical eclecticism eclecticize eclectics eclectist eclipsable eclipse eclipsed eclipser eclipses eclipsing eclipsis ecliptical eclogite eclogue eclosion ecmnesia ecole ecoles ecology econometer econometric econometrica econometrician econometrics economic economical economically economics economies economiques economise economised economism economist economists economite economization economize economized economizer economizing economy ecophene ecophobia ecosa ecospecies ecospecific ecostate ecosystem ecotonal ecotype ecotypic ecoutant ecphorable ecphore ecphoria ecphorization ecphorize ecphrasis ecrit ecrits ecru ecstacies ecstacy ecstasies ecstasis ecstasized ecstasizing ecstasy ecstatic ecstatica ecstatically ecstrophy ectad ectadenia ectasia ectatic ectene ectental ectethmoid ectethmoidal ecthlipsis ecthyma ectiris ectobatic ectoblast ectoblastic ectobronchium ectocardia ectocarpaceous ectocarpic ectocarpous ectocinerea ectocinereal ectocoelic ectocondylar ectocondyle ectocuneiform ectocuniform ectodactylism ectoderm ectodermal ectodermic ectodynamomorphic ectoentad ectoethmoid ectogenic ectogenous ectoglia ectognatha ectoloph ectomere ectomeric ectomorphic ectomorphy ectoparasitic ectoparasitica ectopatagium ectopia ectopic ectopistes ectoplacenta ectoplasm ectoplastic ectoprocta ectoproctan ectoproctous ectopterygoid ectoretina ectorganism ectorhinal ectosarc ectosarcous ectosomal ectosphenoid ectosphere ectosteal ectostosis ectotheca ectotoxin ectozoa ectozoic ectozoon ectrodactylia ectrodactyly ectrogenic ectrogeny ectromelia ectromelian ectromelus ectropion ectropium ectropometer ectrosyndactyly ectypal ectypography ecuador ecuelling ecumenic ecumenical ecumenicality ecumenist ecute ecyphellate eczema eczematization eczematoid eczematosis eczematous ed edacious edaciously edafous edana edaphic edaphology edaphon edaphosauria eddaic edder eddied eddies eddo eddy eddying eddyroot edea edeagra edeitis edelweiss edema edemic eden edenization edenize edentate edentulate edeodynia edeology edeomania edeoscopy edeotomy edessan edestan edestosaurus edgar edge edged edgeless edgemaker edgeman edger edgerman edges edgeshot edgestone edgetool edgeways edgeweed edgewise edginess edging edgingly edgings edgrew edgy edh edibility edible edict edictal edictally edicts edicule edification edificatory edifice edifices edificial edified edify edifying edifyingness edinburgh edingtonite edison edit edital edited edith editing editio edition editionem editions editor editorial editorialize editorials editors editorship editress edits ediya edlen edmonds edmondson edmonton edmund edo edoni edrioasteroid edrioasteroidea edriophthalma edriophthalmatous edriophthalmian edriophthalmic edriophthalmous edrophonium edt edta eduardo educabilia educabilian educability educable educand educate educated educates educating education educationable educational educationalism educationalist educationist educationists educative educator educators educatory educed educement educible educive educt eductive eductor edulcorate edulcorative edulcorator eduskunta edward edwardean edwardeanism edwardian edwardine edwardsia edwardsiidae edwin edwina edyche ee eecg eee eeg eegrass eel eelbobber eelcake eelcatcher eelery eelgrass eellike eelpout eels eelskin eelspear eelware eelworm eely een eeoc eer eerie eerily eerisome efa efer effable efface effaced effacer effacing effect effected effecting effective effectively effectiveness effectivity effector effects effectual effectuality effectually effectualness effectuate effectuation effeminacy effeminate effeminatize effeminization effeminize effendi efferent effervesce effervescence effervescency effervescent effervesces effervescible effervescing effervescingly effervescive effervessence effete effeteness effetman effets efffects efficacious efficaciously efficacy efficax efficience efficiency efficient efficiently effie effigial effigiate effigiation effigie effigies effigurate effiguration effigy efflate effloresce efflorescence efflorescent efflower effluence effluency effluent effluents effluunt effluvia effluvial effluviography effluvious effluvium efflux effluxion effodient efform effort effortful effortless effortlessly efforts effossion effraction effranchise effroi effrontery effulge effulgence effulgent effulgently effund effuse effusiometer effusion effusions effusive effusively eflagelliferous eflect efore efoveolate eft eftest efts eftsoons egad egalitarian egalitarianism egality egan egbert egbo egence egeria egest egestion egg eggcup eggeater egged eggfish eggfruit egghead egging eggler egglike eggnog eggplant eggs eggshell eggsperimunt eggy egipto eglandular eglandulose eglantine egma ego egocentric egocentricity egocentrism egocerus egoism egoist egoistic egoistically egoists egoize egoizer egomaniac egomaniacal egophony egosyntonic egotheism egotism egotisms egotist egotistic egotistical egotistically egotists egotize egram egregious egregiousness egress egression egressive egressor egret egurgitate eguttulate egypt egyptian egyptianization egyptianize egyptien egyptienne egyptiens egyptize egyptologer egyptologic egyptological egyptologist egyptology ehatisaht ehlers ehretia eichbergite eichhornia eichner eicosane eident eider eiderdown eidetic eidograph eidolic eidolism eidolology eidolon eidoptometry eidouranion eigenes eigenfunction eigenspace eigenstate eigentlichen eigenvalue eight eighteen eighteenmo eighteenpence eighteenth eighteenthly eightfoil eightfold eighth eighthly eighths eighties eightieth eightling eightsman eightsome eighty eign eigne eikonogen eikonology eileen eimer eimeria ein eine einem einer eines einigen einiger einkorn einstein einsteinium eio eire eireannach eiremenos eirene eiresione eis eisegesis eisegetical eisenhower eisner eisodic eisteddfodic eita either eitrage ejaculated ejaculates ejaculating ejaculation ejaculations ejaculative ejaculator ejaculatory ejam eject ejecta ejectamenta ejected ejecting ejection ejective ejectively ejectivity ejectment ejects ejoo ejus ejusdem ekamanganese ekasilicon eke eked eker ekerite ekg ekka ekoi ekron ekronite ekstrom ektachrome ektodynamorphic el elaborate elaborated elaborately elaborateness elaborates elaboration elaborative elaborato elaborator elaboratory elabrate elachistaceae elaeagnaceous elaeagnus elaeis elaeoblast elaeoblastic elaeocarpaceae elaeocarpus elaeococca elaeolite elaeometer elaeoptene elaeothesium elaidate elaidin elaidinic elain elaine elaioleucite elaioplast elaiosome elamitic elamitish elan eland elanet elaphe elaphine elaphoglossum elaphomyces elaphrium elaphure elaphurine elaphurus elaphus elapid elapidae elapinae elapoid elaps elapse elapsed elapsoidea elasmobranch elasmosaur elasmothere elasmotherium elasped elastic elastically elastician elasticin elasticity elastin elastomer elastometer elastometry elastose elate elated elatedly elaterid elateroid elates elatha elation elative elator elavil elba elbert elbow elbowboard elbowbush elbowed elbowing elbowpiece elbowroom elbows elbowy elcaja elchee eld elder elderberry elderblow elderbush elderliness elderly elderman elders eldership elderwoman elderwood elderwort eldest eldin eldon eldress eldrich eldritch eleanor eleatic eleazar elecampane elect electable elected electee electerized electicism electing election electioneer electioneerer electioneering elections elective electively electivity electly elector electoral electorally electorate electorial electors electorship electra electragist electragy electralize electress electric electrical electrically electricalness electrician electricians electricity electriclighting electriferous electrifiable electrification electrified electrifier electrifies electrify electrifying electrion electrionic electriques electrischen electrizable electrize electro electroaffinity electroamalgamation electroanalytic electroanalytical electroanesthesia electrobath electrobiological electrobiologist electrobiology electrobioscopy electroblasting electrobus electrocapillarity electrocapillary electrocardiogram electrocardiograph electrocardiographic electrocardiography electrocatalysis electrocatalytic electrocataphoresis electrochemical electrochemically electrochemist electrochronograph electrochronographic electrochronometric electroculture electrocute electrocutional electrocutioner electrode electrodeless electrodeposition electrodepositor electrodes electrodesiccate electrodesiccation electrodiagnosis electrodialysis electrodialyze electrodialyzer electrodissolution electrodynamic electrodynamics electrodynamism electrodynometer electroencephalogram electroencephalograph electroencephalography electroengraving electroergometer electroetching electroethereal electroextraction electroform electroforming electrofused electrofusion electrogalvanic electrogenetic electrographic electrographite electroharmonic electrohemostasis electrohorticulture electrohydraulic electroimpulse electroindustrial electroirrigation electrokinematics electrokinetics electrolier electrolithotrity electrologic electrologist electroluminescence electrolyse electrolysed electrolyses electrolysing electrolysis electrolyte electrolytes electrolytic electrolytically electrolyzation electrolyze electrolyzer electromagnetic electromagnetical electromagnetically electromagnetics electromagnetism electromagnetist electromassage electromechanics electromedical electromeric electromerism electrometallurgical electrometallurgist electrometallurgy electrometer electrometrically electrometry electromobile electromotion electromotive electromotor electromuscular electromyographic electromyography electron electronic electronically electrons electrooptic electrooptically electrooptics electroosmosis electroosmotic electroosmotically electrootiatrics electropathic electropathology electropathy electropercussive electrophobia electrophone electrophore electrophoretic electrophorus electrophotometer electrophotometry electrophototherapy electrophrenic electrophysics electrophysiological electrophysiologist electrophysiology electroplater electroplating electroplax electropneumatic electropneumatically electropolar electropositive electropotential electropult electropyrometer electrorefine electroscission electroscopic electrosherardizing electroshock electrostatic electrostatical electrostatics electrosteel electrostenolysis electrostriction electrosurgical electrosyntheses electrosynthetic electrotactic electrotautomerism electrotaxis electrotechnical electrotechnician electrotechnics electrotechnology electrotelegraphy electrotelethermometer electrotest electrothanasia electrothanatosis electrotherapist electrotherapy electrothermal electrothermancy electrothermics electrothermometer electrothermostat electrothermostatic electrotitration electrotonic electrotonize electrotonus electrotrephine electrotropism electrotype electrotyper electrotypic electrotyping electrotypist electrotypy electrovalence electrovection electroviscous electrovital electrowin electrum elects eleemosynariness eleemosynary elegance elegances elegancies elegancy elegant elegantly elegiac elegiacal elegiacis elegiambic elegiast elegies elegist elegize elegy eleidin element elemental elementalism elementalistic elementalize elementarily elementary elementoid elements elemi elemicin elemin elena elenchi elenchic elenchical elenchically elenchize elenchtic elenchus elenge eleoblast eleomargaric eleometer eleoptene eleostearate eleostearic elephant elephanta elephantiac elephantiasis elephanticide elephantidae elephantine elephantinely elephantoid elephantoidal elephantopus elephants elephas elerquince eleusiac eleusine eleusinia eleusinion eleut eleutherarch eleutheria eleutherios eleutherism eleutherodactyl eleutherodactyli eleutherodactylus eleutheromorph eleutherophyllous eleutherosepalous eleutherozoa eleutherozoan elevate elevated elevatedness elevates elevating elevation elevations elevator elevators eleve eleven elevenfold eleventh elf elfic elfin elfinwood elfish elfishly elfishness elfkin elfland elflike elflock elfship elfwife elgin elia elian elianic elias elicit elicitable elicitate elicitation elicited eliciting elicitor elicitory elicits elidible eliding eligibilities eligibility eligible eligibles eligibly elihu eliminant eliminate eliminated eliminates eliminating elimination eliminator eliminatory elinvar eliot eliquate elisha elishah elision elisions elisor elist elite elixir elixirs eliza elizabeth elizabethanize elk elkanah elkdom elkesaite elkhart elkhorn elkhound elkoshite elks elkslip elkuma elkwood ell ella ellachick ellagate ellagitannin ellasar elle ellenyard ellfish elliminated elliot ellipse ellipses ellipsis ellipsoid ellipsone elliptic elliptical elliptically ellipticalness ellipticity elliptograph elliptoid ellops ells ellwood elm elmen elmira elms elmsford elmy eloah elocular elocution elocutionary elocutionist elocutionize elod elodeaceae elodes eloge elogio elogium elohim elohism elohist elohistic eloign eloigner eloise elongate elongated elongates elongating elongation elongative elonite elope eloped elopement eloper elopidae eloping elops eloquence eloquent eloquential eloquently eloquentness elpasolite elpidite elrey elsa else elsevier elsewards elseways elsewhen elsewhere elsewheres elsewhither elsewise elsholtzia elsie elt elthon elton eluate elucidate elucidated elucidating elucidation elucidations elucidative elucidator elucidatory elucubrate elucubration elude eluded eluder eludes eluding elusion elusive elusively elusiveness elusoriness elute elution elutor elutriate elutriation elutriator eluvial eluviation eluvium elvan elvanite elvanitic elves elvet elvira elvish elvishly ely elydoric elymi elymus elysee elysian elysium elytral elytriferous elytrigerous elytrin elytroid elytron elytropolypus elytroposis elytrorhagia elytrorrhagia elytrorrhaphy elytrotomy elzevir elzevirian em emacem emaciate emaciated emaciation emajagua emanate emanated emanates emanating emanation emanational emanationism emanationist emanations emanatism emanatistic emanator emanatory emancipate emancipated emancipates emancipating emancipation emancipationist emancipatist emancipative emancipator emancipatress emanium emanuel emarcid emarginate emargination emarginula emasculate emasculated emasculation emasculator emasculatory embadomonas emball emballonurid emballonurine embalm embalmed embalmer embalming embalmment embalms embamming embank embanked embanking embankment embannered embar embarcadero embargo embargoes embark embarkation embarked embarking embarkment embarks embarrass embarrassed embarrassedly embarrasses embarrassing embarrassingly embarrassment embarrassments embarrel embassadors embassies embassy embastioned embatholithic embattle embattled embattlement embaumement embay embayed embayment embden embe embedded embedder embedding embeded embelia embellish embellished embellisher embellishing embellishment embellishments ember embergoose emberiza emberizinae emberizine embers embezzle embezzlement embezzler embiidae embind embiodea embioptera embiotocid embiotocidae embiotocoid embitter embittered embittering embitterment emblaze emblazon emblazoned emblazoner emblazonment emblazonry emblem emblema emblematic emblematical emblematically emblematicalness emblematicize emblematist emblement emblemize emblemology emblems emblic emblossom embodied embodies embodiment embodiments embody embodying embog embolden emboldened emboldener emboldens embolectomy embolemia embolic emboliform embolismic embolismus embolite embolium embolize embolo embololalia embolomeri embolomerism embolomerous embolomycotic embolum emborder emboscata embosom embosomed emboss embossed embossing embossman embossment embottle embouchure embowed embowel embowelment embower embowered embowering embowerment embowing embowment embox embrace embraceable embraceably embraced embracement embraceor embracery embraces embraceth embracing embracingly embracingness embracings embracive embranchment embrangle embranglement embrasure embrasures embreathement embree embrica embrittle embrittlement embroaden embrocate embrocation embroider embroidered embroiderer embroideress embroideries embroidering embroiders embroidery embroil embroiled embroilment embronze embrown embrowned embrowning embrued embruted embryectomy embryo embryocardia embryoctonic embryoctony embryogenetic embryogeny embryogony embryographer embryography embryoid embryoism embryologic embryological embryologically embryologist embryology embryon embryonal embryonate embryonated embryone embryonic embryonically embryoniferous embryoniform embryony embryophagous embryophore embryophyta embryophyte embryoplastic embryos embryoscope embryoscopic embryotome embryotomy embryotrophic embryotrophy embryous embryulcus embubble embuia embus embusk emcee eme emend emendable emendandum emendating emendation emendations emender emerald emeralds emerge emerged emergence emergencies emergency emergent emergently emergentness emerges emerging emerita emeriti emeritus emersion emerson emersonianism emery emesa emesidae emesis emetic emetically emetics emetocathartic emetomorphine emgalla emication emiction emictory emigrant emigrants emigrate emigrated emigrating emigration emigrational emigrationist emigrations emigrative emigrator emigratory emigre emigree emil emile emilio emily emim eminence eminences eminency eminent eminently emir emirs emirship emissaries emissarium emissary emissaryship emission emissive emissivity emit emits emitted emittent emitting emm emmarvel emmenagogue emmeniopathy emmenology emmensite emmental emmet emmetrope emmetropia emmetropism emmetropy emmulation emolliate emolliated emollient emollit emolument emolumental emolumentary emoluments emote emotion emotionable emotional emotionalism emotionality emotionalize emotionally emotioned emotionist emotionize emotionless emotionlessness emotions emotive emotively emotiveness emotivity empacket empaistic empanel empanelment empannelled empanoply empaper emparchment empark empasm empathic empathically empathize empedoclean emperial emperor emperors empery empetraceae empetraceous empetrum emphases emphasis emphasise emphasised emphasising emphasize emphasized emphasizes emphasizing emphatic emphatically emphaticalness emphlysis emphractic emphraxis emphysema emphysematous emphyteusis emphyteuta emphyteutic empicture empididae empire empirema empires empirical empirically empiricism empirics empiriocritical emplace emplacements emplars emplastic emplastration emplastrum emplectite empleomania employ employable employed employee employees employer employerin employers employes employing employless employment employments employs emplume empodium empoison empoisoned empoisoning emporetic emporeutic emporia emporial emporium emporta empower empowered empowering empowerment empowers empress emprise emprosthotonic emprosthotonos emprosthotonus empt emptied emptier empties emptily emptiness emptinesses emptings emption emptional empty emptyhearted emptying emptysis empurple empurpled empusa empyema empyemic empyocele empyreal empyrean empyreuma empyreumatize empyromancy emu emulate emulated emulating emulation emulative emulatively emulator emulatory emulgence emulgent emulgents emulous emulously emulousness emulsible emulsifiability emulsifiable emulsification emulsified emulsifier emulsify emulsin emulsion emulsionize emulsions emulsive emulsoid emunctory emus emyd emydea emydian emydidae emydinae emydosaurian emys en enabhng enable enabled enabler enables enabling enact enacted enacting enactment enactments enactory enacts enaena enage enalapril enaliornis enallage enaluron enamber enambush enamdar enamel enameler enameling enamelist enamelled enamelless enamelling enamels enamelware enamorato enamored enamoredness enamorment enamour enamoured enanguish enanthematous enanthesis enantiamorphous enantiobiosis enantioblastic enantioblastous enantiomer enantiomeride enantiomorphic enantiomorphism enantiomorphously enantiopathia enantiopathic enantiopathy enantiosis enantiotropic enarbor enarbour enarch enarme enarthrodial enarthrosis enate enatic enbrave encaenia encage encake encamp encamped encamping encampment encanker encapsule encarditis encarnadine encarnalize encarpium encarpus encase encased encasement encash encashable encashment encastage encatarrhaphy encauma encaustes ence encefalon enceinte encenter encephala encephalalgia encephalartos encephalic encephalin encephalitic encephalitis encephalocele encephalogram encephalograph encephaloid encephaloma encephalomalacia encephalomalaxis encephalomeric encephalometer encephalomyelitis encephalomyelopathy encephalon encephalopathia encephalopathic encephalophyma encephalopsychesis encephalopyosis encephalosclerosis encephaloscopy encephalosepsis encephalospinal encephalotome encephalotomy enchain enchained enchaining enchair enchant enchanted enchanter enchanters enchanting enchantingly enchantment enchantments enchantress enchants encharge enchase enchaser enchasten enchest enchilada enchiridion enchodontid enchodontidae enchodus enchondroma enchurch enchylema enchylematous enchytrae enchytraeus encina encinal encincture encinillo encipher encircle encircled encirclement encircler encircles encircling encist encitadel enciting enclaret enclave enclavement enclitic enclitical enclitically encloak enclose enclosed encloser encloses enclosing enclosure enclosures enclothe encloud encoach encode encoil encolden encollar encolor encolpion encomendero encomia encomiastic encomiastical encomiastically encomienda encomiologic encomium encomiums encommon encompass encompassed encompasser encompasses encompassing encompassment encoop encopresis encorbelment encore encores encoronal encoronet encounter encounterable encountered encounterer encountering encounters encourage encouraged encouragement encouragements encourager encouragers encourages encourageth encouraging encouragingly encowl encraal encradle encranial encratite encraty encrease encrimson encrimsoned encrinal encrinic encrinidae encrinitic encrinoid encrinoidea encrinus encrisp encroach encroached encroacher encroaches encroaching encroachment encroachments encrotchet encrown encrustation encrustations encrusted encrusting encrustment encryption encuirassed encumber encumbered encumberer encumbering encumberingly encumberment encumbrance encumbrancer encumbrances encurl encurtain encushion encyclical encyclopaedia encyclopaedic encyclopaedically encyclopaedists encyclopedia encyclopediac encyclopedial encyclopedian encyclopedias encyclopediast encyclopedic encyclopedically encyclopedie encyclopedism encyclopedist encyclopedize encyrtid encyrtidae encystation encysted encystment encysts end endable endamage endamagement endamask endameba endamebic endamoebic endamoebidae endanger endangered endangerer endangering endangerment endangium endaortic endaortitis endarch endarchy endarterectomy endarterial endarteritis endarterium endaspidean endboard ende endear endearance endeared endearedly endearing endearingly endearment endearments endears endeavor endeavored endeavorer endeavoring endeavors endeavour endeavoured endeavoureth endeavouring endeavours endeavouted ended endeictic endellionite endemic endemically endemiology endemism endep ender endermatic endermically enderonic endew endgate endiaper endicott ending endings endite endives endless endlessly endlessness endlong endmatcher endmost endoabdominal endoangiitis endoaortitis endoappendicitis endoauscultation endobatholithic endoblastic endobronchially endocardiac endocardial endocarditis endocardium endocarp endocarpal endocarpic endocarpoid endocarps endocentric endoceratidae endoceratitic endocervicitis endochondral endochorion endochorionic endochrome endocline endocoelar endocoele endocolitis endocorpuscular endocranial endocranium endocrine endocrinism endocrinologic endocrinological endocrinology endocrinopathic endocrinopathy endocrinotherapy endocrinous endocycle endocyclic endocyemate endocyst endocystitis endoderm endodermal endodermic endodermis endodontia endodontist endodontists endoenteritis endoenzyme endogalvanism endogamic endogamous endogastric endogastrically endogastritis endogenae endogenesis endogenetic endogenic endogenous endogenously endogeny endoglobular endognathion endogonidium endokaryogamy endolemma endolymph endolymphangial endolymphatic endolymphic endolysin endomastoiditis endometriosis endometritis endometry endomitosis endomitotic endomixis endomorphic endomorphism endomorphy endomyces endomysial endoneurial endoneurium endonuclear endonucleolus endoparasite endoparasitic endoparasitica endopathic endopelvic endopericarditis endoperidium endoperitonitis endophagous endophagy endophasia endophasic endophragmal endophyllaceae endophyllous endophytal endophyte endophytes endophytic endophytous endoplasm endoplast endoplastron endoplastule endopleura endopleural endopleurite endopleuritic endopodite endopoditic endoproctous endopsychic endopterygota endopterygote endopterygotic endopterygotism endorachis endoral endorphins endorsation endorse endorsed endorsee endorsement endorsements endorser endorses endorsing endorsingly endosalpingitis endosarc endosarcous endosclerite endoscopes endoscopic endoscopies endoscopy endosecretory endosepsis endosiphon endosiphonal endosiphonate endosiphuncle endoskeleton endosmometer endosmometric endosmosic endosmosis endosmotically endosome endosperm endospermic endospore endosporium endoss endosteally endosteoma endosternite endosternum endostoma endostosis endostracal endostracum endostyle endostylic endotheca endothecate endothelia endothelial endothelioblastoma endotheliocyte endothelioid endotheliolysin endotheliolytic endothelioma endotheliomyoma endotheliomyxoma endotheliotoxin endothelium endothermal endothermic endothia endothoracic endothorax endothrix endothys endotoxic endotoxin endotoxoid endotrachelitis endotrophi endotrophic endotys endovasculitis endovenous endow endowed endower endowing endowment endowments endows endozoa endpaper endpiece endromis ends endue endued enduement endura endurability endurable endurableness endurably endurance endurant endure endured endurer endures endurest endureth enduring enduringly endways endwise endymal endymion endyoed eneclann ened enema enemas enemies enemy enemylike enemyship enepidermic energeia energesis energetic energetical energetically energeticalness energeticist energic energical energies energism energize energizer energizing energumen energumenon energy enervate enervated enervates enervating enervation eneuch eneugh enface enfacement enfance enfant enfants enfeature enfeeble enfeebled enfeeblement enfeebler enfeebling enfelon enfeoff enfeoffment enfester enfetter enfilade enfilading enfile enflagellate enflagellation enflower enfold enfolded enfolden enfolding enfolds enforce enforceability enforced enforcedly enforcement enforcer enforces enforceth enforcibility enforcible enforcing enforcingly enfork enfoul enframe enframed enframement enfranchise enfranchised enfranchisement enfranchiser enfrenzy enfuddle engage engaged engagedly engagedness engagement engagements engages engageth engaging engagingly engagingness engaol engarble engarland engarment engarrison engastrimyth engastrimythic engaud engel engem engender engendered engendering engenderment engenders enghosted engine engineer engineered engineering engineers engineership enginehouse engineless enginelike engineman enginery engines enginous engird engirding engirdle engirdled engirdling engirt engjateigur englacial englad engladden england englander engler englewood englifier englify englischen englischer english englishable englished englishhood englishism englishize englishly englishman englishmen englishness englishwoman englobe englobement englory englut englyn engnessang engold engolden engore engorge engorged engorgement engossed engraff engraft engraftation engrafted engrafter engrafting engraftment engrail engrailed engrailment engrain engrained engrainedly engrainer engram engramma engrammatic engrammic engrandizement engraphic engraphically engraphy engrapple engraulis engrave engraved engravement engraven engraver engravers engraving engravings engreen engrieve engroove engross engrossed engrosser engrosses engrossing engrossingly engrossingness enguard engulf engulfed engulfing engulfment engulfs engyscope engystomatidae enhallow enhalo enhamper enhance enhanced enhancement enhancer enhances enhancing enhancive enharmonical enharmonically enhat enhearse enhearten enhedge enhemospore enheritage enheritance enhorror enhunger enhusk enhydrinae enhydris enhydrite enhydros enhydrous enhypostatic enhypostatize eniac enicuridae enid enif enigma enigmas enigmatic enigmatical enigmatically enigmaticalness enigmatist enigmatization enigmatize enigmatography enigmatology enim ening enisle enjail enjamb enjambed enjelly enjeopard enjeopardy enjewel enjoin enjoined enjoiner enjoining enjoinment enjoins enjoy enjoyable enjoyableness enjoyably enjoyed enjoyer enjoying enjoyingly enjoyment enjoyments enjoys enjoythe enkernel enkidu enkindle enkindled enkindling enlace enlacement enlard enlarge enlargeable enlargeableness enlarged enlargedly enlargedness enlargement enlargements enlarger enlarges enlargeth enlarging enlargingly enlaurel enleaf enleague enlight enlighten enlightened enlightenedly enlightening enlightenment enlightens enlighting enlinkment enlirely enlist enlisted enlisting enlistment enlistments enliven enlivened enlivening enliveningly enlivenment enlock enlodgement enmarble enmask enmass enmesh enmeshed enmities enmity enmoss enmuffle enneacontahedral enneacontahedron enneadianome enneadic enneagon enneagynous enneahedral enneahedria enneahedron enneapetalous enneasemic enneasepalous enneastyle enneastylos enneasyllabic enneatic enneatical ennerve enniche ennoble ennobled ennoblement ennobler ennobles ennobling ennui enoch enodally enolate enolic enolizable enolize enomania enomoty enophthalmos enopla enoplan enoptromancy enorganic enorm enormities enormity enormous enormously enormousness enos enostosis enough enouncement enow enplane enquicken enquire enquired enquirer enquires enquiries enquiring enquiry enrace enrage enraged enragement enraging enrank enrapt enrapture enraptured enrapturer enravish enravishingly enray enregiment enrib enrich enriched enricher enriching enrichingly enrichment enrico enring enrive enrobe enrobement enrober enrol enroll enrolled enrollee enroller enrolling enrollment enrolment enroot enrough enruin ensaffron ensaffroned ensandal ensate enscene ensconce ensconced enscroll ensculpture ense enseam ensellure ensemble ensepulcher ensepulchre enserf ensete enshade enshadow ensheathe enshell enshelter enshield enshrine enshrined enshrinement enshrining enshrouded enshrouding ensiform ensign ensigncy ensignhood ensignment ensignry ensigns ensilage ensilate ensile ensilist ensisternum ensky enslave enslaved enslavement enslaver enslaving ensnare ensnared ensnarement ensnarer ensnaring ensnaringly ensnarl ensorcelize ensorcell ensoul enspell ensphere ensphered enstar enstatite enstatitic enstatolite enstool enstrengthen ensuant ensue ensued ensuer ensues ensuing ensuingly ensulphur ensure ensured ensurer ensures ensuring enswathe ensweep ent entablature entablatured entablement entach entad entail entailable entailed entailing entailment entails entame entamoeba entamoebic entangle entangled entangledness entanglement entanglements entangles entangling entanglingly entapophysial entapophysis entary entasis entelam entelechy entelodon entelodont entempest entemple entendais entendre enter enterable enteraden enteradenographic enteradenography enteradenological enteradenology enteral enteralgia enterate enterauxe enterclose enterectomy entered enterer entereth entergogenic enteria enteric entericoid entering enteritidis enteroanastomosis enterobiliary enterocele enterocentesis enterochirurgia enterochlorophyll enterocholecystostomy enterocinetic enterocleisis enteroclysis enterocoela enterocoele enterocoelous enterocolitis enterocrinin enterodynia enterogastritis enterogenous enterohelcosis enterohemorrhage enterohepatitis enterohydrocele enteroid enteroischiocele enterokinase enterokinesia enterokinetic enterolith enterolithiasis enterolobium enterology enteromegalia enteromegaly enteromere enteromorpha enteromycosis enteron enteroneuritis enteroparesis enteropathy enteropexia enteropexy enterophthisis enteroplasty enteroplegia enteropneust enteropneusta enteropneustan enteroptosis enteroptotic enterorrhaphy enterorrhea enteroscope enterosepsis enterospasm enterostasis enterostenosis enterostomy enterosyphilis enterotoxemia enterotoxication enterozoa enterozoic enterprise enterprised enterpriseless enterpriser enterprises enterprising enterprisingly enterprizes enterritoriality enters entertain entertainable entertained entertainer entertainers entertaining entertainingly entertainingness entertainment entertainments entertains enthalpy entheal enthelmintha enthelminthes enthetic enthral enthraldom enthrall enthralldom enthralled enthralling enthralls enthralment enthrone enthroned enthronization enthronize enthuse enthusiasm enthusiasms enthusiast enthusiastic enthusiastically enthusiasts enthymematical enthymeme entia entice enticeable enticed enticement enticer enticeth entichamber enticing enticingly entifical entification entify entincture entire entirely entireness entirety entiring entiris entitative entitatively entities entitle entitled entitlement entitles entitling entity ently entobranchiate entobronchium entocarotid entocnemial entocoele entocoelic entocondylar entocondyloid entocone entoconid entocranial entocuneiform entocuniform entocyst entoderm entodermal entodermic entogastric entogenous entoglossal entohyal entoilment entoloma entomb entombed entombment entombs entomere entomeric entomic entomical entomion entomoid entomological entomologically entomologist entomologists entomologize entomology entomophaga entomophagan entomophagous entomophilous entomophily entomophthora entomophthoraceae entomophthoraceous entomophthorous entomophytous entomosporium entomostraca entomostracous entomotomist entoolitic entoparasite entoparasitic entophytically entoplastic entoplastral entopopliteal entoprocta entoproctous entopterygoid entoptic entoptical entoptics entoptoscope entoptoscopic entoptoscopy entoretina entorganism entosarc entosclerite entosphenal entosphenoid entosternal entotic entotrophi entourage entozoal entozoan entozoological entozoologist entozoology entozoon entracte entractes entrail entrails entrained entrainer entrammel entrance entranced entrancedly entrancement entrances entranceway entrancing entrant entrants entrap entrapment entrapped entrapper entrappingly entraps entre entreasure entreat entreated entreaties entreating entreatingly entreats entreaty entree entrench entrenched entrenchment entrenchments entrepas entrepot entrepreneur entrepreneurship entresol entrez entries entrochite entrochus entropion entropy entrough entrust entrusted entrusting entry entryman ents enttance enturret entwine entwined entwinement entwining entwist entwisting entyloma enucleate enucleation enucleator enuff enumerable enumerate enumerated enumerates enumerating enumeration enumerations enunciability enunciable enunciate enunciated enunciating enunciation enunciative enunciator enunciatory enure enuresis enuretic envapor envapour envault envelop envelope enveloped enveloper envelopes enveloping envelopment envelops envenom envenomation enverdure enviable enviableness envie envied envier envies envieth envineyard envious enviously enviousness environ environage environed environing environment environmentalism environmentalist environmentally environments environs envisagement envisaging envision envoi envoles envolume envoy envoys envoyship envy envying envyingly envyings enwallow enwiden enwind enwoman enwomb enworthed enwound enwrap enwrapment enwrapped enwraps enwrite enwrought enzone enzootic enzooty enzymatic enzyme enzymes enzymically enzymologist enzymology enzymolysis enzymolytic enzymotic eoan eodevonian eogaea eogaean eohippus eolith eomecon eon eonism eons eonubii eopalaeozoic eopaleozoic eorhyolite eorum eorumque eos eosate eosaurus eosin eosinic eosinoblast eosinophilia eosinophils eozoic eozoonal epa epacme epacrid epacridaceae epactal epagogic epagomenae epaleaceous epanadiplosis epanaleptic epanaphora epanaphoral epanastrophe epanisognathism epanodos epanorthidae epanorthosis epanthous epappose eparch eparchean eparchial eparterial epaule epaulement epaulet epaulets epaulette epauletted epaulettes epauliere epaxially epee epeira epeiric epeirid epeirogenetic epeirogeny epembryonic epencephal epencephalic epencephalon ependyma ependymal ependyme ependymoma ependytes epenthesis epenthetic epepophysial epergne eperotesis eperua epexegetical epexegetically ephah epharmonic epharmony ephebe ephebic ephebos ephebus ephedra ephedraceae ephedrine ephelcystic ephemerae ephemeral ephemerality ephemerally ephemeralness ephemeran ephemerida ephemeridae ephemerides ephemeris ephemerist ephemeromorphic ephemerons ephemerous ephesian ephesus ephetae ephete ephialtes ephippial ephod ephor ephoralty ephorate ephoric ephphatha ephraim ephraimitic ephraitic ephthalite ephthianura ephthianure ephydra ephydriad ephydrid ephydridae ephyra epi epibasal epibaterium epibatholithic epibenthos epiblast epiblastema epiblastic epibole epibolic epiboulangerite epibranchial epic epical epically epicalyx epicardia epicardiac epicardial epicardium epicaridea epicarides epicedial epicedian epicene epicenism epicentral epicentre epicentrum epiceratodus epicerebral epichile epichilium epichindrotic epichirema epichlorhydrin epichondrosis epichordal epichorial epichoric epichoristic epicleidian epicleidium epiclinal epicnemial epicoela epicoelar epicoele epicoelia epicoeliac epicondylar epicondylian epicondylitis epicontinental epicoracohumeral epicoracoid epicoracoidal epicormic epicorolline epicortical epicostal epicotyl epicranial epicranium epicranius epicrisis epicritic epicrystalline epics epicure epicurean epicureanism epicures epicurishly epicurism epicycle epicyclic epicyclical epicycloidal epicyemate epicyesis epicystotomy epicyte epideictic epideictical epideistic epideixeis epidemic epidemical epidemically epidemicalness epidemiographist epidemiography epidemiologist epidemiologists epidemiology epidendric epiderm epiderma epidermal epidermatic epidermatous epidermical epidermically epidermis epidermization epidermolysis epidermomycosis epidermophytosis epidermose epidermous epidesmine epidiascope epidiascopic epidictic epididymectomy epididymis epididymitis epididymodeferential epididymovasostomy epidiorite epidiorthosis epidosite epidote epidotiferous epidotization epifolliculitis epigamic epigaster epigastraeum epigastrical epigastriocele epigeal epigean epigeic epigene epigenesis epigenesist epigenetically epigenist epigeous epiglottic epiglottidean epiglottiditis epiglottis epiglottitis epigonation epigone epigoni epigonic epigonichthyidae epigonium epigonus epigram epigrammatic epigrammatically epigrammatism epigrammatizer epigrams epigraph epigrapher epigraphic epigraphie epigraphy epiguanine epigyne epigynous epigyny epihyal epihydric epihydrinic epikesis epiklesis epikouros epilachnides epilaryngeal epilation epilatory epilegomenon epilepsy epileptic epileptiform epileptogenous epileptoid epileptologist epileptology epilimnion epilobium epilogation epilogical epilogist epilogistic epilogize epilogue epimacus epimanikia epimedium epimenidean epimere epimeric epimeride epimeron epimorphosis epimysium epimyth epinaos epinastic epinastically epineolithic epinephelidae epinephelus epinette epineural epineurial epingle epinglette epinician epinine epiopticon epiotic epipaleolithic epiparodos epipastic epiperipheral epipetalous epiphany epiphegus epiphenomenalism epiphenomenalist epiphenomenon epiphloedal epiphloeum epiphonema epiphora epiphragm epiphylline epiphyllous epiphyllum epiphysary epiphyseal epiphyseolysis epiphysial epiphysis epiphysitis epiphyte epiphytes epiphytic epiphytism epiphytology epiphytous epipial epiplankton epiplanktonic epiplasmic epiplastron epipleura epipleural epiploce epiplocele epiploic epiploitis epiploon epiplopexy epipodial epipodiale epipodite epipoditic epipodium epipolism epiprecoracoid epipteric epipubic epipubis epirhizous epirogenic epirote epirotulian epirrhematic episarcine epische episclera episcleritis episcopacy episcopal episcopalianism episcopalianize episcopalism episcopality episcopally episcopate episcopature episcope episcopi episcopolatry episcopum episcotister episematic episiocele episiohematoma epision episiorrhagia episiorrhaphy episiostenosis episiotomy episkeletal episodal episode episodes episodial episodic episodical episodically epispadiac epispadias epispastic episperm epispinal episplenitis episporium epistapedial epistasis epistatic epistaxis episteme epistemic epistemologically epistemologist epistemology epistemophilia epistemophiliac epistemophilic episternal episternite episternum epistilbite epistlar epistle epistler epistles epistolarian epistolary epistolatory epistoler epistolic epistolical epistolist epistolizable epistolization epistolographic epistolographist epistoma epistomian epistrophe epistropheal epistrophic epistrophy epistylar epistyle episyllogism episynaloephe epitactic epitaph epitapher epitaphial epitaphian epitaphist epitaphize epitaphless epitaphs epitasis epitaxial epitaxy epitela epithalamia epithalamial epithalamiast epithalamic epithalamion epithalamize epithalamus epithalline epitheca epithecal epithecate epithecium epithelia epithelial epithelioblastoma epithelioceptor epitheliogenetic epithelioglandular epithelioid epitheliolysin epitheliolysis epitheliolytic epitheliomuscular epitheliosis epitheliotoxin epithelium epithelization epithelize epitheloid epithem epithet epithetic epithetical epithetician epithetize epitheton epithets epithyme epithymetic epitimesis epitomator epitome epitomes epitomic epitomical epitomically epitomizer epitomizes epitonic epitoniidae epitonion epitonium epitoxoid epitrachelion epitrichial epitrichium epitrite epitrochlea epitrochlear epitrochoid epitrochoidal epitrope epitrophic epitympanic epitympanum epityphlitis epiural epixylous epizoal epizoan epizoarian epizoic epizoicide epizoon epizootic epoch epocha epochal epochism epochist epochs epomophorus eponychium eponym eponymic eponymism eponymize eponymous eponymus eponymy epoophoron epopees epopoean epopoeia epopoeist epopt epoptic epoptist epornitic epornitically epos epouvente epoxy eppie eppy eproboscidea epsilon eptatretidae eptatretus epulary epulis epulo epuloid epulosis epulotic epupillate epurate epuration epyllion equability equable equably equal equalable equaled equalest equaling equalisations equalitarianism equality equalization equalize equalizing equalled equalling equally equalness equals equangular equanimity equanimous equanimously equant equarrie equatable equation equationism equations equator equatorial equatorially equatorward equatorwards equerry equestrial equestrian equestrianism equestrianize equestrianship equestrienne equianchorate equiangular equianharmonic equiatomic equiaxed equiaxial equicohesive equicrural equicurve equid equidense equidensity equidiagonal equidifferent equidimensional equidistance equidistant equidistantial equidistantly equidistribution equidiurnal equidivision equidivisional equidominant equidurable equiexcellency equiform equiglacial equigranular equilateral equilibrant equilibrate equilibrative equilibrator equilibratory equilibria equilibrial equilibrio equilibrious equilibrist equilibristat equilibristic equilibrists equilibrium equilibrize equilobate equilobed equilocation equilucent equimodal equimomental equine equinecessary equinity equinoctial equinovarus equinox equinumerally equip equipage equipages equiparation equiped equiperiodic equipluve equipment equipoise equipollency equipollent equipollentness equiponderance equiponderancy equiponderation equipostile equipotent equipotential equipotentiality equipped equipper equipping equiprobability equiproducing equiproportional equiradial equiradical equirotal equis equisetales equisetic equisided equisized equison equisonant equispatial equisufficiency equisurface equitable equitableness equitably equitangential equitation equitative equitemporaneous equites equitriangular equity equivalence equivalenced equivalency equivalent equivalently equivalents equivaliant equivaluer equivalve equivalved equivalvular equivocacy equivocal equivocality equivocally equivocate equivocatingly equivocation equivocations equivocator equivoluminal equivoque equivorous equivote equoidean equuleus equus er era erable eradiation eradicant eradicate eradicated eradicating eradication eradicative eradiculose eragrostis eral eranist eranthemum erary eras erase erased eraser erasers erasing erasion erasmian erasmus erastian erastianism erastianize erastus erasure erasures erat erature erava erbia erbium erbout erda erdvark ere erechtheum erechtheus erechtites erect erected erecter erectile erectility erecting erection erections erectly erectness erectopatent erector erects ered erelong eremacausis eremic eremital eremite eremites eremiteship eremitish eremitism eremochaeta eremopteris eremurus erenach erenow erepsin erept ereptase ereption erethismic erethistic erethitic erethizon eretrian erewhile erexit ergal ergamine ergasia ergasterion ergastic ergastoplasm ergastulum ergatandromorphic ergatandry ergative ergatocracy ergatocrat ergatogyne ergatogynous ergatoid ergatomorph ergatomorphic ergatomorphism ergmeter ergo ergogram ergographic ergology ergoloid ergomaniac ergometer ergon ergophobia ergophobiac ergoplasm ergostat ergosterin ergosterol ergot ergotamine ergotaminine ergoted ergotic ergotinine ergotist ergotization ergotoxine ergs erhaltenen erian erianthus eric erica ericaceous ericad erical ericeticolous ericetum erich erichthus erichtoid ericineous ericius ericoid ericolin ericophyte ericsson eridanid erie erigible eriglossa eriglossate erik erika erikite erinaceus erineum ering eriobotrya eriocaulaceae eriocaulaceous eriodendron eriophorum eriophyidae eriosoma eriphyle eristalis eristic eristically erithacus eritrean erizo erlernen erlking erlong erly erma ermanaric ermanrich ermelin ermine ermined erminee erminites erne ernest ernestine ernment ernor ernst ernudder ernuff erode eroded erodent eroding erodium erogeneity erogenesis erogenetic erogenic erogenous erogeny eros erose erosion erosional erosionist erosions erosive erot eroteme erotetic erotic erotica erotical erotically eroticism eroticize eroticomania erotism erotogenesis erotogenetic erotogenic erotomania erotopath erotopathic erotylidae erpetoichthys erquickt err errable errableness errabund errancy errand errands errant errantia errantly errants errata erratic erratically erraticalness erratum erred errhine erring errite erro errol erroneous erroneously erroneousness error errorful errorist errors errs ers ersatz erse erskine erst erste ersten erstwhile ertebolle erthen erthling erties erubescent erubescite eruc erucic eruciform erucin erucivorous eruct eructance eructative eruction erudit erudite eruditeness eruditical erudition eruditional erugate erugation erupted eruption eruptional eruptions eruptive eruptively eruptiveness ervenholder ervin ervipiame ervum erw erway erwin erwinia eryhtrism erymanthian eryngium eryngo eryops erysibe erysimum erysipelas erysipelatoid erysipelothrix erysipelous erysiphaceae erythea erythema erythematic erythematosus erythraea erythraeidae erythrasma erythrean erythremia erythrin erythrinidae erythrinus erythrismal erythristic erythrite erythritic erythritol erythrityl erythroblastic erythrocarpous erythrochroic erythrochroism erythroclastic erythrocyte erythrocytic erythrocytolysin erythrocytolysis erythrocytolytic erythrocytometer erythrocytosis erythrodegenerative erythrodermia erythrodextrin erythrogenic erythrogonium erythroid erythrol erythrolein erythrolitmin erythrolysis erythromelalgia erythromycin erythron erythronium erythropenia erythrophagous erythrophilous erythrophleine erythrophobia erythrophore erythrophyllin erythropia erythroplastid erythropoietic erythropsia erythropsin erythroscope erythrose erythrosiderite erythrosin erythrosinophile erythrosis erythroxylaceae erythroxyline erythroxylum es esca escadrille escalade escalader escalado escalate escalin escallonia escalloped escaloped escambio escambron escapable escapade escapades escapage escape escaped escapee escapeful escapeless escapement escaper escapes escapeth escaping escapism escapist escarbuncle escargatoire escarole escarp escarpment escarpments escertained eschallot eschalot eschar escharine escharotic eschatocol eschatological eschatologist eschatology escheatable escheatment escheator escheatorship eschew eschewal eschewance eschewed eschewer eschewing eschews eschort eschorting eschscholtzia eschynite esclavage escoba escobadura escobilla escolar esconson escopette escorial escoriazioni escort escortage escorted escorting escortment escorts escribe escritoire escritores escrol escrow esctasy esculent esculetin esculin escutcheon escutcheoned escutcheons escutellate esdragol esdras ese esebrias esemplasy eserine esexual eshin esina esiphonal esker eskimoic eskimoized eskualdun eskuara esmark esmeralda esmolol esnd esocataphoria esocidae esodic esoenteritis esoethmoiditis esogastritis esonarthex esoneural esophagalgia esophageal esophagean esophagectasia esophagectomy esophagismus esophago esophagocele esophagodynia esophagogastroscopy esophagogastrostomy esophagography esophagomalacia esophagometer esophagomycosis esophagoplasty esophagoptosis esophagoscope esophagostenosis esophagostomy esophagotome esophagotomy esophagus esophoria esoteric esoterica esoterical esoterically esotericist esoterism esoterize esotery esothyropexy esotrope esotropia esox espadon espalier espanol espanola espantoon esparcet esparto espathate espave especial especialiv especially especialness espellare esperance esperantidist esperantism espial espichellite espied espieglerie espier espinal espingole espino espionage espised esplanade esplanades esplees esponton esposito espousal espousals espouse espoused espousement espouser espouses espousing esprit esprits espundia espy espying esquamate esquamulose esquiline esquirearchy esquiredom esr esriecially essai essais essang essay essayed essayer essayeth essayette essayical essaying essayist essayistic essayistical essayists essaylet essays esse essed essedones esselen essen essence essenced essences essenian essenianism essenic essenical essenis essenism essenize essential essentialism essentiality essentially essentialness essentials essenwood esset essex essexite essling esso essoinee essoiner essoinment essorant est establish established establisher establishes establisheth establishing establishment establishmentarian establishmentarianism establishmentism establishments estadal estadio estado estafette estafetted estaient estamene estamp estampede estate estates ested esteem esteemable esteeme esteemed esteemedst esteemer esteemeth esteeming esteems estella estelle ester esterellite esteriferous esterification esterify esterization esterize esterlin esterling esters estes estetiche estevin esth esthacyte esther estheriidae esthesia esthesio esthesioblast esthesiogen esthesiogenic esthesiology esthesiometer esthesiometric esthesioneurosis esthetic esthetically esthetology esthetophore estimable estimableness estimably estimate estimated estimates estimating estimatingly estimation estimative esting estival estivate estivation estoc estoile estolate estonia estop estoppage estoppel estotiland estrade estradiot estragole estrange estranged estrangedness estrangement estrangements estranges estranging estre estreat estrepe estriate estriche estriol estrogen/progesterone estrogenic estrogens estrone estrual estruate estuarial estuaries estuarine estuary estuous estus esurient eswl et eta etablira etablissements etacism etacist etaient etais etait etamine etangs etarnally etats etc etcetera etch etched etchimin etching etchings etectrode eteocretes eteocreton eternal eternalist eternality eternalization eternalize eternally eternalness eternity eternization eternize etes etesian etext ethacrynic ethal ethaldehyde ethambutol ethanamide ethane ethanediol ethanethial ethanim ethanol ethanolamine ethanolysis ethanoyl ethel ethene ethenic ethenoid ethenol ethenyl etheostoma ether etherate ethereal etherealised etherealism etherealization etherealize etherealizes ethereally etherealness etherean ethered ethereous etheria etheric etheriidae etherin etherism etherization etherizer etherolate etherous ethers ethic ethical ethicalism ethically ethicism ethicist ethicists ethicize ethicoaesthetic ethicophysical ethicopolitical ethicosocial ethics ethid ethidene ethinyl ethiodide ethionamide ethionic ethiop ethiopia ethiopian ethiopic ethiopiens ethmofrontal ethmoid ethmoidal ethmolith ethmomaxillary ethmonasal ethmopalatal ethmopalatine ethmopresphenoidal ethmosphenoid ethmoturbinal ethmoturbinate ethmovomer ethmovomerine ethnal ethnarch ethnic ethnical ethnicist ethnicity ethnicize ethnize ethnobiological ethnobotanical ethnobotanist ethnobotany ethnocentric ethnocentrism ethnocracy ethnogenic ethnogeny ethnogeographer ethnogeographic ethnogeographical ethnogeographically ethnographer ethnographic ethnographical ethnographist ethnography ethnologic ethnological ethnologically ethnologist ethnologists ethnology ethnomaniac ethnopsychic ethnopsychological ethnos ethnotechnics ethnotechnography ethnozoological etholide ethologic ethonomics ethopoeia ethosuximide ethotoin ethoxide ethoxycaffeine ethrog ethyl ethylamide ethylate ethylation ethylene ethylenediamine ethylenic ethylenimine ethylidene ethylin ethylsuccinate ethyne ethynyl etiam etidocaine etidronate etiez etiogenic etiolate etiolates etiolation etiolize etiological etiologically etiologist etions etiophyllin etioporphyrin etiotropic etiquette etiquettical etnean etoiles etolienne etonne etonnes etourderie etrangeres etre etretinate etruscan etruscologist etruscology etta ettarre etter ettle etua etude etudes etym etymic etymologer etymological etymologically etymologicon etymologies etymologist etymologization etymologize etymology etymon etypical etypically eu euahlayi euaster eubasidii euboean euboic eubranchipus eucaine eucairite eucalypt eucalypteol eucalyptic eucalyptography eucalyptol eucalyptus eucarida eucharis eucharist eucharistial eucharistic eucharistize eucharists eucharitidae eucharus euchite euchlorhydria euchloric euchlorine euchlorophyceae euchological euchologion euchology euchorda euchre euchroic euchroite euchromatic euchromatin euchrome euchromosome euchrone eucirripedia euclase euclea eucleidae eucnemidae eucolite eucommia eucommiaceae eucone euconjugatae eucrasia eucrasite eucrasy eucre eucryphia eucryphiaceae eucryphiaceous eucryptite eucrystalline euctical eudaemon eudaemonic eudaemonism eudaemonist eudaemonistic eudaemonize eudaemony eudaimon eudaimonia eudaimonikos eudaimonism eudaimonist eudemian eudeve eudiagnostic eudialyte eudiaphoresis eudidymite eudiometer eudiometric eudiometrical eudiometrically eudiometry eudipleural eudist eudorina eudoxian eudromias eudyptes euergetes euery eugene eugenesic eugenesis eugenetic eugenia eugenically eugenicist eugenics eugenie eugenism eugeny euglandina euglena euglenaceae euglenales euglenida euglenineae euglobulin eugranitic eugubium euharmonic euhedral euhemerism euhemerist euhemerize eukaryote euktolite eulachon eulamellibranch eulamellibranchia eulamellibranchiata euler eulerian eulima eulogia eulogic eulogically eulogies eulogious eulogism eulogist eulogistic eulogistical eulogistically eulogists eulogium eulogization eulogize eulogized eulogizing eulogy eulysite eulytine eumenes eumenid eumenidae eumenidean eumenides eumenorrhea eumerism eumeristic eumerogenesis eumerogenetic eumeromorph eumeromorphic eumitotic eumolpides eumolpus eumorphous eumycete eumycetes eumycetic eunice eunicid eunomia eunomian eunomianism eunomy eunuch eunuchal eunuchize eunuchoid eunuchry eunuchs euomphalid euomphalus euonymin euonymus euornithes euorthoptera euosmite euouae eupad eupanorthus eupathy eupatoriaceous eupatorin eupatorium eupatory eupepsia eupeptic euphausia euphausiacea euphausiidae euphemia euphemian euphemiously euphemism euphemist euphemistic euphemistical euphemistically euphemize euphemizer euphemous euphemy euphon euphonetics euphonic euphonicalness euphonious euphoniously euphonium euphonize euphonon euphony euphonym euphorbia euphorbiaceae euphorbiaceous euphorbium euphoria euphoric euphory euphrasia euphrasy euphratean euphrosyne euphuism euphuistically euphuize eupione eupittonic euplectella euplexoptera euplocomi euploid euploidy eupnea eupolidean eupolyzoa eupomatia eupomatiaceae eupractic eupraxia euprepia euproctis eupsychics euptelea eupyrchroite eupyrion eurafric euraquilo eurasia eurasiatic eurhodol euridyce euripides euripus eurite euroaquilo eurobin euroclydon europa europaischen europasian europe european europeanism europeanization europeanize europeward europium europocentric euryalae euryale euryaleae euryalida euryalidan eurybathic eurybenthic eurycephalous eurygaea eurygnathic eurygnathism eurygnathous euryhaline eurylaimoid eurymus eurypharyngidae eurypharynx eurypterida eurypteroidea eurypterus eurypygae eurypylous eurystomatous eurythermal eurythermic eurythmical eurythmics eurytomid eurytomidae euscaro euskaldun euskara euskera euspongia eusporangiate eustachian eustachium eustathian eustatic eusthenopteron eustomatous eustyle eusuchia eusuchian eusynchite eutannin eutaxic eutaxite eutaxy eutechnic eutechnics eutectic eutectics eutectoid eutexia euthanasia euthanasy euthenist eutheria eutherian euthermic euthycomi euthycomic euthyneural euthyneurous euthytropic eutony eutopia eutrophic eutropic eutychian eutychianism euxanthate euxenite eva evacuant evacuate evacuated evacuating evacuation evacuative evacuator evacue evadable evade evaded evader evading evadne evagation evaginable evaluable evaluate evaluated evaluating evaluation evaluations evaluative evaluators evalue evan evanesce evanescence evanescent evanescible evangel evangelary evangeliary evangelic evangelical evangelicalism evangelically evangelicalness evangelican evangelicity evangeline evangelion evangelising evangelism evangelist evangelistarium evangelistic evangelistically evangelistics evangelists evangelistship evangelium evangelize evangelized evangelizing evaniidae evanish evanishment evanition evans evanston evansville evaporability evaporable evaporate evaporated evaporating evaporation evaporations evaporative evaporimeter evaporometer evase evasion evasions evasive evasively evasiveness eve evea evection evectional evehood evejar evelina eveline evelyn even evenblush evendown evened evener eveness evenfall evenforth evenhanded evenhandedly evenhandedness evening evenings evenly evenmete evenminded evenmindedness evenness evens evensong event eventful eventfully eventide eventime eventlessness eventognathi eventognathous eventration events eventsat eventual eventualities eventuality eventually eventuation evenwise eveque eveques ever everard everbearer everbloomer everblooming everduring eveready everett everglades evergreen evergreenite evergreens everhart everlasting everlastingly everlastingness evermore evernia evernioid eversion eversive eversporting evert evertebral evertebrata evertile everting evertor everwho every everybody everydav everyday everydayness everyhow everyman everyone everything everytime everywhen everywhere everywheres everywhither eves evestar evetide eveweed evicted evicting evictor evidence evidenced evidences evidencing evidencive evident evidential evidentially evidentiary evidently evidentness evil evildoer evildoers evildoing evilest evilhearted evilly evilmouthed evilness evilnurtured evilproof evils evilsayer evilspeaker evilwishing evince evinced evincible evincing evincive evirate eviration evisceration evisite evitable evitation evittate evlybody evnin evocable evocate evocation evocative evocatively evocator evocatrix evodia evoke evoked evoker evokes evoking evolute evolution evolutional evolutionally evolutionary evolutionist evolutionize evolutions evolutoid evolve evolved evolvement evolvent evolves evolving evonymus evulgation evulse evulsion evzone ewder ewe ewelease ewer ewery ewes ewing ex exacerbate exacerbated exacerbescent exact exactable exacted exactest exacting exactingness exaction exactions exactitude exactly exactment exactness exactor exactress exacts exaggerate exaggerated exaggeratedly exaggerates exaggerating exaggeratingly exaggeration exaggerations exaggerative exaggerativeness exaggerator exagitation exalbuminose exalbuminous exalt exaltation exaltations exaltative exalted exaltedness exalteth exalting exalts examinability examinate examination examinational examinations examinative examinator examinatorial examinatory examine examined examinee examiner examiners examines examining examiningly example exampled examples exampleship exams exanimate exanimation exanthem exanthematous exappendiculate exarate exaration exarch exarchal exarchate exarchic exareolate exarteritis exarticulate exasperate exasperated exasperatedly exasperater exasperates exasperating exasperatingly exasperation exasperations exasperative exaspidean exaudi exaugurate exauguration excalceation excamber excandescence excandescency excandescent excantation excathedral excaudate excavate excavated excavating excavation excavations excavator excavators excave excecate excecation excedent exceed exceeded exceeder exceeding exceedingly exceedingness exceeds excel excelled excellence excellences excellencies excellency excellent excellentest excellenti excellently excellest excelleth excelling excels excelsin excelsitude excentric excentrical excentricity exceot except exceptant excepted excepting exception exceptionable exceptionably exceptionahy exceptional exceptionality exceptionally exceptionary exceptionless exceptions exceptious exceptiousness excerpt excerption excerptor excerpts excerside excess excesses excessive excessively excessiveness exchange exchangeability exchangeable exchangeably exchanged exchanges exchanging exchangite exchequer excidio excipient exciple excipulaceae excipular excipuliform excipulum excircle excisable excise excised exciseman excision excisions excisor excitability excitable excitableness excitancy excitant excitation excitative excitator excitatory excite excited excitedly excitedness excitement excitements exciter excites exciting excitingly excitive excitoglandular excitometabolic excitomotion excitomotory excitonutrient excitor excitory excitosecretory exclaim exclaimed exclaimer exclaiming exclaimingly exclaims exclamation exclamational exclamations exclamative exclamatory exclasively excludable exclude excluded excluder excludes excludible excluding excludingly exclusion exclusionary exclusioner exclusionism exclusive exclusively exclusiveness exclusivist exclusivity exclusory excoecaria excogitable excogitated excogitation excogitative excogitator excommunicable excommunicant excommunicate excommunicated excommunicating excommunication excommunicative exconjugant excoriable excoriate excoriated excoriating excoriation excoriations excoriator excorticate excortication excrement excrementitious excrementitiously excrements excresce excrescence excrescences excrescent excrescential excreta excrete excreted excreter excretes excretion excretionary excretive excretory excriminate excruciable excruciate excruciated excruciating excruciatingly excruciation excruciator excubant exculpate exculpation exculpatorily exculpatory exculptae excurrent excurse excursion excursional excursioner excursioning excursionism excursionists excursions excursive excursory excursus excurvate excurvated excurvature excurved excusability excusable excusableness excusably excusal excusator excusatory excuse excused excuseful excusefully excuses excusing excusingly excuss excyst excystation excysted exdelicto exeat execrable execrableness execrate execrated execrates execration execrations execrative execratively executable executants execute executed executer executes executeth executing execution executional executioneering executioner executions executive executiveness executives executiveship executor executors executorship executory executress executrix executrixship exedent exegesis exegete exegetes exegetical exegetically exegetist exemplar exemplarily exemplariness exemplarism exemplarity exemplars exemplary exemplification exemplificational exemplifications exemplificative exemplified exemplifies exemplify exemplifying exempt exempted exempting exemption exemptionist exemptions exempts exencephalic exencephalus exendospermic exenterate exenteration exequial exequy exercisable exercise exercise/hl exercised exerciser exercises exercising exercitant exercitationum exercitor exercitorial exercitorian exercitus exeresis exergual exergue exert exerted exerting exertion exertional exertionless exertions exertive exerts exes exeter exeunt exfigure exflagellate exflagellation exflect exfodiate exfodiation exfoliate exfoliation exfoliative exfoliatory exgorgitation exhalable exhalation exhalations exhalatory exhale exhaled exhalements exhales exhaling exhaust exhausted exhaustedly exhaustedness exhauster exhaustible exhausting exhaustingly exhaustion exhaustions exhaustive exhaustively exhaustiveness exhaustless exhausts exhibit exhibitable exhibitant exhibited exhibiting exhibition exhibitional exhibitioner exhibitionism exhibitionistic exhibitionize exhibitions exhibitive exhibitively exhibitor exhibitorial exhibitors exhibitorship exhibitory exhibits exhilarate exhilarated exhilarating exhilaratingly exhilaration exhilarator exhilaratory exhort exhortation exhortations exhortative exhortatively exhortator exhortatory exhorted exhorter exhorting exhortingly exhorts exhumation exhumations exhumator exhume exhumed exhumers exigence exigences exigencies exigency exigenter exigently exigible exiguity exiguous exiguousness exilarch exilarchate exile exiled exiledom exilement exiler exiles exilic exility eximious eximiously exinguinal exist existability existait existance existe existed existence existences existent existentialism existentialistic existentialize existentially existently exister existible existing existit existlessness exists exit exite exiting exition exits exitus exlaimed exmeridian exmoor exoarteritis exoascaceae exoascaceous exoascus exobasidiaceae exobasidium exocardia exocardial exocarp exoccipital exocentric exochorda exochorion exochos exoclinal exocoelar exocoelic exocoelom exocoetus exocolitis exocone exocrine exoculate exoculation exocyclic exocycloida exode exodic exodontia exodontist exodos exodromic exodus exoenzymic exoerythrocytic exogamic exogamous exogamy exogastrically exogenetic exogenic exogenous exogeny exognathion exognathite exogonium exogyra exoloration exometritis exomis exomologesis exomorphic exomorphism exomphalous exomphalus exon exoner exonerate exonerated exoneration exonerative exonerator exoneural exonship exopathic exoperidium exophagous exophagy exophoria exophoric exophthalmic exophthalmos exopod exopodite exopterygota exopterygotic exopterygotism exopterygotous exorability exorable exorableness exorbital exorbitance exorbitancy exorbitant exorbitate exorbitation exorcisation exorcise exorcised exorcisement exorcism exorcismal exorcist exorcistical exordia exordium exordize exorganic exormia exornation exosepsis exosmic exosmosis exosmotic exosperm exosporal exospore exosporous exostosed exostotic exostra exostracize exoteric exoterical exotericism exotheca exothecate exothermic exothermous exotic exotica exotically exoticalness exoticism exoticity exotics exotism exotoxic exotropia exotropic exotropism expalpate expand expanded expandedly expandedness expander expanders expanding expands expanse expanses expansibility expansible expansibly expansion expansional expansionary expansionism expansions expansive expansively expansiveness expansivity expansometer expansure expatiate expatiated expatiater expatiates expatiating expatiatingly expatiation expatiative expatriate expatriation expect expectancy expectant expectantly expectants expectation expectations expectative expected expectedly expecter expecting expectingly expective expectorant expectorate expectorated expectorator expects expedeetion expediate expedience expediency expedient expediential expediently expedients expedite expedited expeditely expediteness expediter expedition expeditionary expeditionist expeditions expeditious expeditiously expeditor expel expellant expelled expellee expeller expelling expels expence expences expend expendability expended expendible expending expenditor expenditrix expenditure expenditures expends expenence expense expenseful expensefulness expenseless expenses expensive expensively expensiveness expenthesis experielice experience experienceable experienced experienceless experiencer experiences experiencible experiencing experiensque experimemtalist experimenis experiment experimental experimentalen experimentalist experimentalists experimentalize experimentally experimentarian experimentation experimentative experimented experimentee experimenter experimenters experimenting experimentize experiments expert expertise expertly expertness experts expertship expiable expiate expiated expiates expiating expiation expiational expiations expiatist expiative expiator expiatoriness expiatory expilate expilator expirable expirant expirate expiration expirator expire expired expires expiring expiringly expiry expiscate expiscation expiscator expiscatory explain explainable explained explainer explaining explainingly explains explanate explanation explanations explanative explanatorily explanatory explant explantation explement expletive expletiveness expletives expletory explicable explicate explication explications explicative explicatively explicit explicitly explicitness explodable explode exploded explodent exploder explodes exploding exploit exploitable exploitage exploitation exploitationist exploitative exploited exploiter exploiters exploiting exploits exploiture explorable explorandi exploration explorational explorations exploratioui exploratively explorativeness exploratory explore explored explorement explorer explorers explores exploring exploringly explosion explosionist explosions explosive explosively explosives exponence exponent exponentially exponentiate exponentiation exponents exponible export exportability exportable exportation exported exporter exporting exports exposal expose exposed exposedness exposer exposes exposing exposition expositional expositionary expositions expositively expositor expositorial expositorially expositors expository expositress expostulate expostulated expostulating expostulatingly expostulation expostulations expostulatively expostulator exposure exposures expound expoundable expounded expounder expounding expounds expres express expressa expressable expressage expressed expressedly expresser expresses expressi expressibility expressible expressibly expressing expression expressionable expressional expressionism expressionist expressionless expressionlessness expressions expressive expressively expressiveness expressivism expressivity expressless expressly expressman expressmen expressness expressway exprimable exprobrate exprobratory expromission expropriate expropriation expropriator expugn expugnable expuition expulsatory expulse expulsion expulsionist expultrixque expunge expungeable expunged expungement expurgate expurgated expurgative expurgator expurgatorial expurgatory exquisite exquisitely exquisiteness exquisites exquisitism exquisitively exradio exradius exsanguination exsanguineous exsanguinity exsanguinous exsanguious exscriptural exsculptate exscutellate exsect exsectile exsector exship exsibilate exsiccant exsiccatae exsiccate exsiccation exsomatic exspiratione exspuition exstipulate exstrophy exsuccous exsufflicate exsurge exsurgent extant extatic extemporal extemporally extemporaneity extemporaneous extemporaneously extemporary extempore extemporised extemporization extemporize extemporized extemporizing extend extended extendedly extendedness extender extendibility extendible extending extends extensibility extensible extensile extension extensional extensionist extensions extensive extensively extenso extensometer extensor extensorum extensory extensum extent extenuate extenuated extenuates extenuating extenuatingly extenuation exter exteremely exterior exteriorate exterioration exteriority exteriorization exteriorize exteriorized exteriorly exteriors exterminable exterminate exterminated exterminates exterminating extermination exterminative exterminators exterminatory exterminatress exterminatrix exterminist extern externa external externalist externalistic externality externalization externalize externally externals externate externation externis externity externization externomedian externus exteroceptor exterraneous exterritorial exterritoriality exterritorially extinct extinction extinctionist extinctions extinctive extine extinguish extinguishant extinguished extinguisher extinguishes extinguishing extinguishment extipulate extirpate extirpated extirpating extirpation extirpationist extirpative extirpator extirpatory extispex extispicious extispicy extogenous extol extoll extolled extolleth extolling extollingly extolment extoolitic extorsive extort extorted extorter extorting extortion extortionary extortionate extortionately extortioner extortionist extortions extortive extra extrabold extrabranchial extrabronchial extrabulbar extrabureau extraburghal extracalendar extracapsular extracathedral extracerebral extracivically extracloacal extracollegiate extracolumella extraconscious extraconstitutional extracorporeal extracorpuscular extracosmic extracostal extract extractable extractant extracted extractible extractiform extracting extraction extractions extractor extractors extracts extracultural extracurial extracurricular extracurriculum extracystic extradialectal extraditable extradite extradition extradomestic extrados extradosed extradotal extraduction extraembryonic extraenteric extraepiphyseal extraequilibrium extraessentially extrafascicular extrafloral extrafocal extrafoliaceous extraformal extragalactic extragastric extrait extrajudicial extrajudicially extralateral extralegal extralinguistic extralite extramammary extramatrical extramental extrametaphysical extrametrical extramodal extramolecular extramorainal extramorainic extramoral extramoralist extramundane extramural extramusical extranatural extranean extraneity extraneous extraneousness extranidal extranuclear extraofficial extraoral extraorbital extraordinarily extraordinarius extraordinary extraorganismal extraovate extraovular extraparenchymal extraparental extraparochial extraparochially extrapatriarchal extraperineal extraperiodic extraperiosteal extraphysical extraphysiological extrapituitary extrapleural extrapoetical extrapolar extrapolation extrapolative extrapolator extrapopular extraprostatic extraprovincial extrapyramidal extraquiz extrared extraregular extras extrasacerdotal extrascholastic extraschool extrascientific extrascriptural extrascripturality extrasensory extraserous extrasocial extrasolar extrasomatic extraspectral extraspherical extrastapedial extrastate extrasterile extrastomachal extrasyllabic extrasyllogistic extrasyphilitic extrasystole extrasystolic extratarsal extratellurian extratelluric extratension extraterrene extraterrestrial extraterritorial extraterritoriality extrathecal extratheistic extrathermodynamic extrathoracic extratracheal extratribal extratropical extratubal extravagance extravagances extravagancy extravagant extravagantes extravagantly extravagantness extravaganza extravagate extravasated extravasation extravascular extraventricular extraversion extravillar extravisceral extrazodiacal extream extreamely extreamly extrema extreme extremeless extremely extremeness extremer extremes extremest extremis extremist extremistic extremists extremital extremities extremity extremos extremum extricable extricably extricate extricated extricates extricating extrication extrinsic extrinsically extrinsicalness extrinsication extropical extrorse extrorsely extrospective extroversive extrovertish extrude extruder extruding extrusile extrusion extrusions extrusive extry extubation extumescence extund extusion exuberance exuberant exuberantly exuberantness exuberate exuberation exudation exude exuded exudence exudes exuding exuere exulcerate exulceration exulceratory exult exultance exultant exultantly exultation exultations exulted exultet exulting exultingly exults exululate exumbrella exundancy exundate exundation exurb exurbia exuviability exuviae exuvial exuviate exuviation exxon ey eyah eye eyeball eyeballs eyebalm eyebar eyeblink eyebolt eyebree eyebrow eyebrows eyecup eyed eyedness eyedropper eyedrops eyeflap eyeful eyeglance eyeglass eyeglasses eyeing eyeish eyelash eyelashes eyeless eyelessness eyelet eyeletter eyelid eyelids eyelight eyeline eyemark eyen eyepiece eyepit eyepoint eyereach eyeroot eyes eyesalve eyeservant eyeservice eyeshield eyeshot eyesight eyesome eyesore eyespot eyestalk eyestring eyeth eyetooth eyewaiter eyewash eyewater eyewear eyewink eyewinker eyewitness eyewort eyey eying eyn eyot eyoty eyra eyre eyrie eyries eyrir eyry ezba f f's faa fabaceous fabella fabianism fabianist fabiform fable fabled fableist fableland fablemaker fablemonger fabler fables fabling fably fabric fabricant fabricate fabricated fabricating fabrication fabricator fabricatress fabrics fabroniaceae fabula fabular fabulis fabulosity fabulous fabulously facadal facade facades facchino face facebread faced facedown faceless faceman facemark facepiece facer faces facet facete faceted facetely facetiae facetiation facetious facetiously facetiousness facets facetted facewise facia facial facially faciation facie facient facies facile facilely facileness facilitate facilitated facilitates facilitating facilities facility facing facings facinorous facinorousness facio faciobrachial faciocervical faciolingual facioplegia facit fack fackeltanz fackings facks facounde facsimile facsimiles facsimilies facsimilize fact facta factable factful factice faction factional factionalism factionary factioneer factionist factionistism factions factious factiously factiousness factish factitial factitious factitiously factitiousness factitive factitude factive facto factor factorability factorable factordom factoress factorial factorially factories factorist factors factory factotum facts factsheets factual factum facture factus facty facula facular facultate facultates facultied faculties facultize faculty facund fad fadable faddiness faddish faddishness faddism faddist faddle faddy fade fadeable fadeaway faded fadedly fadeless faden fadeout fader fades fadeth fadeur fading fadingness fadridden fads fae faeces faecula faeni faerie faeroe faery faeryland faff fafiot fag fagaceae fagaceous fagald fage fagelia fagged faggery fagging faggot faggoting faggots fagine fagopyrism fagot fagoting fagots fagottino fagoty faicte faidy faience fail failed faileth failing failingness failings fails failsafe failsoft failure failures fain fainaigue fainaiguer faineantism fainly fainness fains faint fainted fainter faintest faintful faintheart fainthearted faintheartedly faintheartedness fainting faintingly faintings faintishness faintly faintness faints fainty faipule fair faire fairer fairest fairfield fairgrass fairground fairhued fairies fairish fairishly fairlead fairling fairly fairm fairness fairport fairs fairspeaking fairtime fairview fairwater fairways fairy fairydom fairyfolk fairyhood fairyish fairyism fairyland fairylands fairylike fairyologist fairyology fairyship fairytale faisaient faisait fait faite faites faith faithbreaker faithful faithfuless faithfull faithfully faithfulness faithless faithlessness faiths faithwise faithworthy faitour faits fake faked fakement fakery fakes fakiness faking fakir fakirism fakirs fakofo faky fal falanaka falangism falangist falasha falbala falcade falcata falcate falcation falcer falces falchion falcial falcinellus falciparum falcon falconbill falconelle falconet falconidae falconiformes falconinae falconine falconish falconlike falconry falcons falcopern falcular falculate falcunculus falderal faldstool falernian faliscan falisci fall fallace fallacies fallacious fallaciously fallacy fallage fallait fallation fallaway fallback fallectomy falled fallen fallest falleth fallfish fallibility fallible fallibleness falling falloff fallopian fallostomy fallout fallow fallowing fallowist fallowness fallows falls falmouth falowe falsary falsche false falsehearted falseheartedly falsehood falsehoods falsely falsen falseness falser falsest falsettist falsetto falsie falsification falsified falsifier falsify falsifying falsism falsities falsity falstaff falstaffian falsum faltboat faltche falter faltered faltering falteringly falters faluns falutin faluting falx fama famatinite fambly fame famed fameflower fameful fameless famelessness fameuse fameworthy familial familiar familiarise familiarised familiarities familiarity familiarization familiarize familiarized familiarizer familiarizing familiarizingly familiarly familiarness familiars familias families familism familist familistic famille family familyish familys famine famines famish famished famishing famishment famotidine famous famouse famously famulus fan fana fanal fanam fanatic fanatical fanatically fanaticism fanaticisms fanaticize fanatics fanciable fancical fancied fancier fancies fanciful fancifully fancifulness fanciless fancy fancying fancywork fand fandangle fandango fandom fane fanegada fanes fanfarade fanfaron fanflower fanfoot fang fanged fangle fanglement fangless fangot fangs fangy fanhouse faniente fanlight fanlike fanned fannel fanner fannia fannier fanning fanny fanon fanone fanout fans fantail fantasia fantasies fantasque fantassin fantastic fantastical fantasticality fantastically fantasticalness fantastication fantasticism fantasticness fantastico fantastics fantastry fantasy fanti fantigue fantoccini fantocine fanwe fanweed fanwise fanwork fanwort fanwright fany fapesmo far faradaic faraday faradizer faradocontractility faradomuscular faradonervous faradopalpation farandole farasula faraway farawayness farber farce farcelike farcer farceur farcial farcialize farcical farcicality farcically farcicalness farcied farcify farcinoma farcist farct farde fare fared farer fares fareth farewell farewells farfel farfetched farfetchedness farfugium fargo fargoing fargood farikia farina faring farinose farinosely fario farkas farle farleu farly farm farmable farmed farmer farmeress farmering farmers farmhouse farmhouses farming farmington farmland farmlands farmost farms farmstead farmsteading farmsteads farmy farmyard farmyards farnesol farness farnovian farnsworth faro faroeish faroese farrago farrand farrandly farrantly farre farreate farreation farrell farrier farrierlike farriery farrisite farrowing farruca farsalah farse farseeing farseeingness farseer farset farsightedly farsightedness farther farthermost farthest farthing farthingale farthingless farthings farting farweltered fas fascet fascia fascial fasciate fasciated fasciately fasciation fascicled fascicular fascicularly fasciculately fascicule fasciculus fascinate fascinated fascinates fascinating fascinatingly fascination fascinations fascinative fascinator fascine fascinery fascio fasciodesis fasciola fasciolar fasciolaria fasciole fasciolet fascioloid fascioplasty fasciotomy fascism fascist fascisti fascisticization fascisticize fascistization fascistize fash fasher fashery fashion fashionability fashionable fashionableness fashionably fashioned fashioner fashioners fashioneth fashioning fashionize fashionmonger fashions fasibitikite fasinite fass fast fasted fasten fastened fastener fastening fastenings fastens faster fastest fasteth fastgoing fasti fastidious fastidiously fastidiousness fastigate fastigated fastigium fasting fastland fastness fastnesses fasts fastuously fastuousness fat fatal fatalest fatalism fatalist fatalistic fatalistically fatalities fatality fatalize fatally fatalness fate fated fateful fatelike fates fathead fatheaded fatheadedness fathearted father fathered fatherhood fathering fatherland fatherless fatherlessness fatherlike fatherliness fatherly fathers fathership fathom fathomable fathomage fathomed fathoming fathomless fathomlessly fathomlessness fathoms fatidical fatidically fatiferous fatigability fatigable fatigant fatigue fatigued fatigueless fatigues fatiguesome fatiguing fatiha fatil fatiloquent fatima fatimid fatiscence fatling fatly fatness fats fatsia fattable fatte fatted fatten fattened fattener fattening fattens fatter fattest fattily fattiness fatting fattish fattishness fatto fattrels fatty fatuism fatuitous fatuity fatuoid fatuous fatuously fatuousness fatur fatwood faubourg faubourgs fauburg faucal fauces faucet faucets fauch fauchion fauchions faucial faucitis faucre faugh faujasite fauld faulkland faulkner fault faultage faulted faultered faultfinder faultfinding faultful faultier faultily faultiness faulting faultless faultlessly faultlessness faults faultsman faulty faun fauna faunal faunas faunchion faunish faunist faunistical faunistically faunlike faunological faunology fauns faunule fause faussebraie faussebrayed faust faustian faustus faut faute fautor fautorship fauve fauvism faux fava favaginous favella faventine faveolus faviform favilla favillous favissa favonian favor favorable favorably favored favoredly favoredness favorer favoress favoring favoringly favorite favorites favoritism favors favose favosely favosites favositidae favositoid favour favourable favourably favoured favourer favouring favourite favourites favouritism favours favous favus fawce fawn fawned fawner fawnery fawning fawns fawnskin fawny faxing fay fayalite fayetteville fayles fays fayth faze fazenda fcampiglio fd fda fe feaberry feal fealty fear fearable feard feared fearedly fearedness fearest feareth fearful fearfullest fearfully fearfulness fearing fearingly fearless fearlessly fearlessness fearnought fears fearsome fearsomeness feasibility feasible feasibly feast feasted feasten feaster feasters feastful feastfully feasting feastings feastless feasts feat feather featherbed featherbedding featherbeds featherbird featherbone featherbrain featherbrained featherdom feathered featheredged featherer featherfew featherhead featherheaded featherheadedness feathering featherleaf featherless featherlessness featherlike feathermonger featherpate feathers featherstitch featherstitching feathertop featherway featherweed featherweight featherwise featherwood featherworker feathery featliness featness featous feats featurally feature featured featureless featureliness featurely features featuring featy feaze feazings feb febricide febricula febriferous febrifugal febrifuge febrile febrility febronian febronianism february fecalis fechnerian fecisti feck feckfully feckless fecklessly fecklessness fect fecula feculence feculency fecund fecundate fecundating fecundation fecundative fecundator fecundatory fecundify fecundity fecundize fed feddan feddest federacy federal federalistic federally federalness federate federated federating federation federationist federations federatist federative federatively fedia fedora fee feeble feeblebrained feeblehearted feebleheartedly feebleheartedness feebleminded feeblemindedness feebleness feebler feeblest feebling feeblish feebly feed feedable feedback feedbox feeder feeders feedest feedeth feeding feedman feeds feedstuff feedway feeing feel feelable feeled feeler feelers feeless feelest feeleth feeling feelingful feelinglessly feelingly feelingness feelings feels feeney feer feering fees feet feetage feetless feex feeze fefaked fegary feh fei feif feigher feign feigned feignedly feigner feigning feigningly feigns feijoa feil feint feints feis feist feisty felde feldene feldes feldman feldsher feldspar feldsparphyre feldspathic feldspathoid felicia felicific felicitate felicitated felicitating felicitation felicitations felicitator felicities felicitous felicitously felicitousness felicity felid felidae felinae feline felines felinity felinophile felinophobe felis felix fell fellable fellage fellah fellaheen fellahs fellar fellars fellata fellatah fellatio fellation fellea felled fellen feller fellers fellest felleth fellic felliducous felling fellingbird fellmongering felloe felloes fellow fellowess fellowheirship fellowless fellowlike fellowman fellows fellowship fellowshiped fellowshiping fellowships fellowtribesmen fells fellside felly felo felon feloness felonious feloniously felonry felons felonsetter felonsetting felonweed felonwort felony fels felsite felsitic felsobanyite felsophyre felsophyric felsosphaerite felspar felspars felspathic felstone felt felted felter felting feltlike feltmaker feltmaking feltmonger feltness feltwort felty felucca felup felwort female femalely femaleness females femality femalize feme femic femicide feminacy feminal feminality feminate femineity feminie feminin feminine femininely feminineness femininity feminised feminism feminist feministic feminists feminity feminologist feminology femme femoral femorale femoris femorotibial femur fen fenbank fenberry fence fenced fencelessness fencelet fenceplay fences fenchene fencible fencing fend fendable fended fender fendering fenderless fendillate fending fendy feneration fenestella fenestellidae fenestra fenestrae fenestral fenestrated fenestration fenestrato fenestrule fenetre fenfluramine fenian fenite fenks fenland fenlander fenman fennec fennel fennels fennig fennish fennoman fenny fenouillet fenrir fens fensive fent fenter fenugreek fenzelia feod feodal feodatory feoff feoffee feoffeeship feower fer feracity ferahan feral ferarum ferber ferce ferdiad ferdwit fereber fered feretory feretrum ferganite fergib fergit fergot fergus ferguson feria ferial feridgi ferine ferinely feringi ferio ferk ferling ferly fermail fermata fermatian ferment fermentable fermentation fermentations fermentative fermentatively fermentativeness fermentatory fermented fermenter fermenting fermentitious fermentive fermentology ferments fermentum fermery fermi fermilyus fermion fern fernal fernbird ferngale fernland fernleaf ferns fernshaw ferny ferocactus ferocious ferociously ferociousness ferocities ferocity feromenoio feronia ferox ferrado ferrament ferrara ferrated ferrateen ferrean ferred ferreira ferrel ferreous ferrer ferret ferreted ferreter ferreting ferrets ferretto ferrety ferri ferriage ferric ferricyanate ferricyanide ferricyanogen ferried ferries ferriferous ferrihydrocyanic ferriprussic ferris ferrite ferritization ferritungstite ferrivorous ferroalloy ferroaluminum ferrocalcite ferrocerium ferrochromium ferroconcrete ferrocyanate ferrocyanhydric ferrocyanic ferrocyanide ferrocyanogen ferroelectric ferrogoslarite ferromagnesian ferromagnet ferromagnetic ferromanganese ferronatrite ferronniere ferrophosphorus ferroprint ferroprussiate ferroprussic ferrosilicon ferrous ferrovanadium ferrozirconium ferruginate ferrugination ferruginous ferrule ferruler ferrum ferruminate ferrumination ferry ferryboat ferryhouse ferryings ferrymen ferryway fertanche ferthe ferthumlungur fertile fertileness fertilise fertility fertilizable fertilization fertilizational fertilize fertilized fertilizer fertilizers fertilizes fertilizing feru ferula ferulaceous ferule ferules ferulic fervanite fervency fervent fervently ferventness fervescence fervid fervidity fervidly fervidness fervidor fervor fervorless fervour fesapo fescennine fescenninity fess fessed fessely fesswise fest festal festally feste fester festered festering festinance festinate festinately festine festino festival festivally festivals festive festively festivities festivity festology festoon festooned festoons festoony festschrift festucine fet fetal fetalization fetation fetch fetched fetches fetcheth fetching fetchingly fete feted fetes fetial fetiales fetiches fetichistic fetichmonger feticidal fetid fetidity fetidly fetidness fetiparous fetish fetishes fetishism fetishist fetishists fetishmonger fetlocked fetlocks fetlow fetography fetometry fetoplacental fetoprotein fetor fetter fetterbush fettered fetterer fettering fetterless fetterlock fetters fetticus fettle fettler fettling feu feucht feud feudal feudalism feudalist feudalistic feudality feudalizable feudalization feudalize feudatorial feudatories feudatory feudee feuds feued feuille feuilleton feuilletonist feulamort feustra feux fever feverberry feverbush fevered feveret feverfew fevergum fevering feverish feverishly feverous feverously feverroot fevers fevertrap fevertwig feverweed few fewer fewest fewness fewsome fewtrils feymell feymels feyness fez fezzan fezzed fezziwig fezzy fhat fi fiacre fiacres fiance fiancee fianchetto fiar fiasco fiat fib fibber fibbing fibdom fibe fiber fiberboard fibered fiberglass fiberizer fiberless fibers fiberware fibonacci fibration fibre fibreless fibres fibreware fibril fibrilla fibrillar fibrillary fibrillate fibrillated fibrillation fibrilliferous fibrilliform fibrillose fibrillous fibrils fibrin fibrinate fibrination fibrinoalbuminous fibrinocellular fibrinogen fibrinogenic fibrinogenous fibrinolysin fibrinolytic fibrinoplastic fibrinoplastin fibrinopurulent fibrinose fibrinosis fibrinous fibroadipose fibroangioma fibrocarcinoma fibrocaseose fibrocaseous fibrocellular fibrochondritis fibrochondroma fibrochondrosteal fibrocrystalline fibrocyst fibrocystic fibrocystoma fibrocyte fibroelastic fibroenchondroma fibroglia fibroglioma fibroid fibroids fibroligamentous fibrolipoma fibrolipomatous fibroma fibromas fibromata fibromatoid fibromatosis fibromatous fibromembrane fibromembranous fibromuscular fibromyectomy fibromyitis fibromyomatous fibromyomectomy fibromyositis fibromyotomy fibromyxoma fibroneuroma fibronuclear fibropericarditis fibroplastic fibropolypus fibropsammoma fibropurulent fibroreticulate fibrosarcoma fibrose fibrosis fibrosis/ fibrositis fibrospongiae fibrotuberculosis fibrous fibrously fibrousness fibrovasal fibrovascular fibry fibs fibster fibula fibulae fibular fibulare fibulocalcaneal ficaria ficary fice ficelle fiche fichtean fichtelite fichu fichus ficials ficiform fickle ficklehearted fickleness ficklest ficklety ficoidaceae ficoideae ficoides fictile fictileness fiction fictional fictionally fictionary fictioneer fictioner fictionistic fictionize fictions fictious fictitious fictitiously fictively ficus fid fidac fidalgo fidate fidation fiddle fiddleback fiddlebrained fiddlecome fiddled fiddledeedee fiddlefaced fiddler fiddlers fiddlery fiddles fiddlestick fiddlestring fiddlewood fiddley fiddling fide fidei fideicommissum fideism fidejussion fidejussionary fidejussor fidejussory fidel fidele fideles fidelia fidelimm fidelio fidelis fidelity fidepromission fidepromissor fides fidessa fidget fidgeted fidgetily fidgetiness fidgeting fidgetings fidgets fidgety fidia fidicinal fido fiducia fiducial fiduciary fiducinales fie fied fiedlerite fief fiefdom fiefs field fieldbird fielded fielder fieldfare fieldman fields fieldstone fieldwards fieldwoman fieldwork fieldworker fieldy fiend fiendful fiendfully fiendhead fiendish fiendishly fiendishness fiendism fiendlike fiendliness fiendly fiends fiendship fient fier fierabras fierasfer fierasferid fierasferidae fierasferoid fierce fiercehearted fiercely fiercen fierceness fiercer fiercest fierding fieri fierily fieriness fiery fiesta fiestas fieulamort fife fifer fifes fifo fifteen fifteener fifteenfold fifteenpence fifteenth fifteenthly fifth fifthly fifths fifties fiftieth fifty fiftyfold fiftypound fig figaro figbird figeater figged figger figgering figging figgle figgy fight fighter fighteress fighters fighteth fighting fightingly fightings fights fightstead fightwite figitidae figless figlike figment figmental figpecker figs figshell figulate figulated figuline figurable figural figurante figuras figurate figuration figurative figuratively figure figured figuredly figurehead figureheadless figureheads figureheadship figureless figurer figures figuresome figurial figurine figuring figurism figurize figury figworm fijian fike fikie fil filace filaceous filago filament filamentar filamentary filamentiferous filamentoid filamentose filamentous filaments filander filanders filar filaria filarial filarian filariform filariid filariidae filarious filasse filate filator filature filch filched filching filchings file filed filefish filelike filemaking filemot filer files filesmith filet filial filiality filially filialness filiation filibeg filibranch filibranchia filibranchiate filibusterer filibusterism filical filicauline filicidal filicide filiciform filicin filicinean filicite filicologist filicology filicornia filiety filiferous filiformed filigera filigerous filigree filing filings filiopietistic filioque filipendula filipendulous filipinization filipinize filipino filipuncture filite filium filius filix fill fillable filled filledst fillemot filler fillercap fillet filleted filleter filleth filleting filletlike fillets filling fillingness fillings fillip filliped fillipeen filliping fillister fillmass fillock fillowite fills filly film filmed filmet filmgoer filmgoing filmic filmiform filmily filminess filming filmish filmist filmland filmlike filmogen films filmslide filmstrip filmy filologia filoplumaceous filopodium filousophe fils filter filterable filterableness filtered filtering filters filth filthier filthiest filthify filthiness filthless filthy filtrability filtrable filtratable filtrate filtration filtrations fimbria fimbriae fimbriated fimbriation fimbriatum fimbricated fimbrillate fimbrilliferous fimbrillose fimbriodentate fimbristylis fimicolous fin finable finableness finagle final finale finalism finalist finalities finality finally finance financed finances financial financialist financially financier financiere financiering financing financist finback finch finchbacked finched finchery find findability findable findal finde finder findest findeth findfault finding findings findjan finds fine finebent fined fineish fineleaf fineless finely finement fineness finer finery fines finespun finesse finessed finesser finessing finest finestill finfoot fingal fingall fingent finger fingerable fingerberry fingerbreadth fingered fingerer fingerfish fingerflower fingerhold fingering fingerleaf fingerless fingerlet fingerling fingernails fingerparted fingerprint fingerprinting fingerprints fingerroot fingers fingersmith fingerspin fingerstone fingertip fingertips fingerwork fingery fingu finial finialed finials finical finicality finically finicalness finick finickiness finicking finify finikin finiking fining finings finis finish finishable finished finisher finishes finishing finitary finite finitely finiteness finitude finity finjan fink finland finlet finlike finmark finned finnegan finner finnic finnicize finnikin finnip finnish finny finochio fins fionnuala fior fiorded fiords fioretti fiorite fiot fiour fip fiques fir firbolg firca fircrested fire fireable firearm firearms firebeams firebird fireboard fireboat firebox fireboy fireboys firebrand firebrands firebrat firebreak firebrick firebug fireburn fireclay firecoat firecracker firecrest fired firedamp firedog firedogs firedrake firefang fireflaught fireflies fireflirt fireflower fireguard fireless firelight firelike fireling firelit firelock fireman firemanship firemaster firemen fireplace fireplaces firepower fireproof fireproofing fireproofness firer fireroom fires firesafeness firesafety fireshaft fireside firesider firesideship firestone firesurrounded firetrap firewall firewarden firewater fireweed firewood firework fireworkless fireworks fireworky fireworm firing firk firkin firlot firm firma firmament firmamental firman firmance firmans firmer firmest firmisternal firmisternous firmly firmness firms firmware firn firnismalerei firoloida firry firs first firstborn firste firstfruits firsthand firstlings firstly firstness firstship firth firths fisc fiscal fiscalism fiscally fise fisetin fish fishable fishback fishberry fishbolt fishbones fisheater fished fisher fishergirl fisheries fisherman fishermen fishers fisherwoman fishery fishes fishet fisheye fishful fishgarth fishgig fishhood fishhook fishhooks fishify fishily fishiness fishing fishingly fishless fishlet fishline fishman fishmarket fishmarkets fishmonger fishmouth fishpond fishpool fishpound fishskin fishtail fishweed fishweir fishwife fishwives fishwoman fishwomen fishwood fishworker fishworks fishworm fishy fisk fiske fisnoga fissate fisse fissicostate fissidactyl fissidens fissidentaceous fissile fissileness fissilinguia fissility fission fissipalmation fissiparation fissiparism fissiparous fissiparously fissiped fissipedia fissipes fissirostrate fissirostres fissive fissural fissuration fissure fissurellidae fissures fissuriform fissuring fist fisted fister fistful fistiana fistic fistical fisticuff fisticuffery fistify fistiness fistlike fistnote fists fistuca fistulana fistulariidae fistularioid fistulas fistulate fistulated fistulatome fistulatous fistuliform fistulina fistulize fistwise fit fitch fitchburg fitched fitcher fitchery fitchet fitchew fitful fitfully fitly fitness fitnesses fitout fitroot fits fittable fitted fittedness fitten fitter fitters fittest fitting fittingly fittingness fittings fittonia fitty fittyfied fittywise fitweed fitzclarence fitzgerald fitzpatrick fitzroy fitzroya fiue fiuman five fivebar fivefold fivefoldness fiveling fivepence fivepenny fivepins fiver fives fivescore fivestones fix fixable fixage fixate fixatif fixation fixative fixator fixature fixed fixedly fixedness fixer fixes fixidity fixing fixity fixt fixture fixtureless fixtures fixy fiy fizeau fizelyite fizgig fizz fizzer fizzing fizzle fizzled fizzy fjord fjordian fjords fjorgyn fla flabbergast flabbergastation flabbiest flabbiness flabby flabellariae flabellarium flabellate flabellinerved flabellum flaccid flaccidity flaccidly flacian flacianist flack flacked flacker flacket flacourtiaceae flacourtiaceous flaff flaffer flag flagboat flagella flagellant flagellar flagellariaceous flagellate flagellated flagellative flagellatory flagelliferous flagellist flagellula flagellum flageolet flagfall flagged flaggily flagginess flagging flaggingly flaggish flagitate flagitious flagitiousness flagler flagless flaglet flaglike flagmaking flagon flagonet flagonless flagons flagpole flagrancy flagrant flagrante flagrantly flagroot flags flagship flagstaff flagstick flagstone flagstones flagworm flail flails flaith flakage flake flaked flakeless flakelet flakes flakey flaking flaky flam flamandize flamant flamb flambe flambeau flambeaux flamberg flamboyance flamboyant flamboyantism flamboyantize flame flamed flameflower flameless flamelet flamelike flamenship flameout flameproof flames flamfew flamineous flaming flamingant flamingo flaminian flamma flammability flammable flammeous flammeus flammiferous flammulated flammulation flan flancard flanch flanched flanconade flandan flando flandowser flane flaneries flaneur flange flangeless flanger flanges flangeway flank flankard flanked flanker flanking flanks flankwise flanky flannel flannelbush flanneled flannelette flannelflower flannelleaf flannellet flannelly flannelmouth flannelmouthed flannels flannin flap flapcake flapdock flapjack flapmouthed flapped flapper flapperdom flapperhood flapperish flapperism flappers flapping flaps flare flareback flared flareless flares flaring flaringly flary flaser flash flashback flashboard flashed flashes flashet flashgun flashily flashing flashings flashlight flashlike flashly flashness flashover flashpan flashproof flashtester flashy flask flasked flasket flaskful flasklet flasks flasque flat flatboat flatboatman flatbottom flatcap flatcar flatdom flated flatfeet flatfish flathat flathead flatiron flatland flatling flatly flatman flatness flatnose flats flatted flatten flattened flattener flattening flattens flatter flatterable flattercap flattered flatterer flatterers flattereth flatteries flattering flatteringly flatters flattery flattie flatting flattish flattop flatulence flatulency flatulent flatus flatware flatway flatways flatweed flatwise flatwoods flaubertian flaught flaughter flaunt flaunted flaunter flauntily flauntiness flaunting flauntingly flauntings flaunty flautino flautist flavaniline flavanthrene flavanthrone flavedo flaveria flavescence flavian flavic flavicant flavin flavine flavius flavo flavobacterium flavor flavored flavorer flavorful flavoring flavorings flavorless flavorous flavors flavory flavour flavoured flavourful flavouring flavourless flavours flavus flaw flawed flawless flawlessly flawlessness flawn flaws flawy flax flaxboard flaxbush flaxdrop flaxen flaxman flaxseed flaxwife flay flayed flaying flea fleabane fleabite fleadock fleaks fleam fleas fleaseed fleawood fleay flebile fleche flechette fleck flecked fleckiness flecking fleckled fleckless flecklessly flecks flecky flecnodal flecnode flection flector fled fledge fledged fledgling fledglings fledgy flee fleece fleeceable fleeced fleeceless fleecelike fleecer fleeces fleech fleechment fleecily fleeciness fleecy fleed fleeing fleer fleerer fleering fleeringly fleers flees fleest fleet fleeted fleeter fleetest fleetful fleeth fleeting fleetingly fleetingness fleetings fleetly fleetness fleets flem fleming flemish flensing fleps flerry flesh fleshed fleshen fleshful fleshhood fleshhook fleshiness fleshing fleshings fleshless fleshlike fleshly fleshment fleshmonger fleshpot fleshy flet fleta fletcherism fletcherite fletcherize fleur fleuret fleurettee fleuronnee fleurs fleury flew flewed flewit flews flex flexanimous flexed flexes flexibility flexible flexibly flexility flexing flexion flexionless flexor flexuosity flexuous flexuously flexuousness flexural flexure flexured flexures fley fleyedness fleyland flibbertigibbet flibuste flicflac flick flicked flicker flickered flickering flickerings flickerproof flickers flickertail flickery flicking flicks flidder fliers flies flig flight flighted flighten flighter flightiness flightless flights flightshot flighty flimflam flimflammer flimflammery flimmer flimsier flimsiest flimsily flimsiness flimsy flinch flinched flinches flinching flinchingly flinder flindosa flindosy fling flinging flings flingy flint flinter flinthearted flintiest flintify flintily flintless flints flintwork flintworker flinty flioma flip flipe flipjack flippancy flippant flippantly flipped flipper flippers flippertigibbets flipping flirt flirtable flirtation flirtationless flirtations flirtatious flirtatiously flirtatiousness flirted flirter flirtigig flirting flirtingly flirtish flirtling flirts flisk flisky flit flitch flitchen flite flitfold fliting flits flitted flitterbat flittermouse flitting flitwite flivver flix flixee flixweed flnd flne flo float floatage floatation floatative floated floater floaters floating floative floatmaker floatman floatplane floats floatsman floatstone floaty flob flobby floc floccing floccipend floccose floccosely flocculant floccular flocculate flocculator flocculency flocculent flocculently flocculi flocculus floccus flock flocked flocker flocketh flocking flockless flocklike flockman flockmaster flockmasters flockowner flocks flockwise flocky flocoon flodge floe floeberg floerkea floes floey flog floggable flogged flogger flogging floggingly floggings flogster flokite flom flood floodable floodage floodboard floodcock flooded flooder floodgate floodgates flooding floodless floodlight floodlighting floodlit floodmark floodmarks floodometer floodproof floods floodtime floody floor floorage floorboards floorcloth floored floorer floorhead flooring floorings floorman floors floorwalker floorwalkers floorward floorway floozy flop flopover flopped floppers floppiness flopping floppy flops flopwing flora floral floralize florally floran floras florate floreal floreate florence florent florentine florentinism florentium flores florescence floressence floreted floretum floriate floriated floriation floricultural floriculture florid florida floridan florideae floridean floridity floridly floridness floriferous floriferously floriferousness florification florigen florigenic florilegium florimania florimanist florin florinda florins floriparous floripondio floriscope florist floristic floristics florists florivorous floroscope florulent flory floscular floscularia flosculariidae floscule flosculose flosculous flosh floss flossflower flossie flossification flossy flot flota flotage flotas flotation flotative flotes flotilla flotorial flotsam flounce flounced flounces flouncey flouncing flouncy flounder floundered floundering flounderingly flounders flour flouride flouring flourish flourishable flourished flourisher flourishes flourishing flourishingly flourishy flourlike flours floury flouse flout flouted flouting floutingly flouts flow flowable flowage flowchart flowed flower flowerage flowerbed flowerbeds flowered flowerer floweriest flowerily flowering flowerist flowerless flowerlessness flowerlet flowerlike flowerpecker flowerpot flowerpots flowers flowery flowest floweth flowing flowingly flowmeter flown flowoff flows flowstone floyd flrom flu fluate fluavil flub flucan fluctiferous fluctisonant fluctuability fluctuable fluctuant fluctuate fluctuated fluctuating fluctuation fluctuations fluctuous flucuated flucytosine flue flued flueless fluellite flueman fluency fluent fluently fluer flues fluff fluffed fluffer fluffiness fluffy flugelhorn flugelman fluid fluid/electrolyte fluidally fluidextract fluidglycerate fluidible fluidic fluidification fluidify fluidimeter fluidism fluidist fluidity fluidly fluidness fluids fluigram fluitant fluke fluked flukes flukewort fluky flumdiddle flume flumerin flumethasone fluminose flummadiddle flummer flummery flummydiddle flung flunisolide flunk flunked flunker flunkey flunkeydom flunkeyish flunkeyize flunkeys flunky flunkydom flunkyhood flunkyish flunkyism flunkyistic flunkyite fluoaluminic fluoborate fluoboric fluoboride fluoborite fluocinolone fluocinonide fluohydric fluoine fluophosphate fluor fluoran fluoranthene fluorapatite fluorate fluorbenzene fluorenyl fluorescein fluorescence fluorescent fluorescigenic fluorescigenous fluorescin fluorhydric fluoric fluoridation fluoride fluorides fluoridization fluoridize fluorimeter fluorinate fluorination fluorindine fluorine fluormeter fluorobenzene fluoroborate fluorocarbon fluoroform fluoroformol fluorogen fluorogenic fluorography fluorometer fluorometholone fluoroscope fluoroscopic fluoroscopy fluorouracil fluorspar fluoryl fluosilicate fluotantalate fluotantalic fluotitanic fluoxetine fluoxymesterone fluozirconic fluphenazine flurandrenolide flurazepam flurn flurr flurried flurriedly flurries flurry flus flush flushed flusher flusherman flushes flushest flushing flushingly flushness flusk fluster flusterate flusterated flusteration flustered flusterer flusterment flusters flustery flustra flustroid flustrum flute flutebird fluted flutelike fluter flutes flutework flutidae fluting flutings flutist flutter flutterable flutteration fluttered flutterer flutterers flutterful fluttering flutterings flutterless flutters fluttersome fluttery fluty fluvial fluvialist fluviatic fluviatile fluvicoline fluvioglacial fluviograph fluviolacustrine fluviology fluviomarine fluviometer fluviose fluvioterrestrial fluviovolcanic flux fluxation fluxed fluxer fluxes fluxibility fluxibly fluxile fluxility fluxing fluxionally fluxionary fluxionist fluxweed fly flyable flyball flybane flyblow flyblown flyboat flyboy flyby flycatcher flyeater flyer flyers flyflap flyflapper flyflower flying flyleaf flyless flyman flyness flynn flyover flype flyproof flyspeck flytail flytier flytrap flyway flywheel flywinch fm fmc fmf fo foal foalhood foals foaly foam foambow foamed foamer foamily foaming foamingly foamless foamlike foams foamy fob focal focalization focalize focally foci focimeter foco focoids focometer focometry focsle focus focusable focused focuses focusing focusless focussed focussing fod fodder foddering fodderless foder fodge fodgel fodient foe foederati foehn foehnlike foeless foeman foemanship foemen foeniculum foenngreek foes foeship foetal foetalization foeticide foetid foetus fog fogarty fogbow fogeater fogey fogfruit foggage foggily fogginess fogging foggish foggy foghorn fogies fogle fogless fogman fogo fogon fogou fogram fogramite fogramity fogs fogscoffer fogus fogy fogydom fogyish fogyism fohae foible foibles foie foil foilable foiled foiler foiling foils foilsman foin foine foining foiningly fois foism foison foist foisted foister foistiness fokes fokker folate fold foldable foldage foldaway foldboat foldcourse folde folded foldedly folden folder folderol folders folding foldless folds foldskirts foldure foldwards folget folia foliaceous foliae foliage foliaged foliageous folial foliar foliary foliate foliated foliation foliature folie foliicolous foliiform folio foliobranch foliobranchiate foliocellosis foliole folioliferous folios foliose foliosity folious foliously folium folk folkirsor folklore folkloric folklorish folklorism folklorist folkloristic folkmoot folkmooter folkmot folkmote folkmoter folkright folks folksiness folksongs folksy folkvang folkvangr folkway folky foller follered folles folletage folliage follicle follicles follicular folliculate folliculated follicule folliculitis folliculose folliculosis follies follis follow followable followed follower followers followership followest followeth following followingly follows folly follyproof fomalhaut foment fomentations fomented fomenter foments fomites fond fondant fonder fondest fondle fondled fondler fondles fondlesome fondlike fondling fondlingly fondly fondness fonds fondue fonduk fonly fonnd fonnish fono fons font fontaine fontainebleau fontally fontanel fontanelles fontange fonted fontibus fontinalaceae fontinalis fontis fontlet foo foochow food foodful foodless foodlessness foods foodstuff foodstuffs foody foofaraw fool fooled fooler fooleries foolery fooless foolest foolfish foolhardihood foolhardiness foolhardiship foolhardy foolin fooling foolish foolisher foolishly foolishness foollike foolproof fools foolscap foolship fooner fooster foot footage footback football footballer footballist footband footblower footboard footboy footbreadth footbridge footcloth footed footeite footer footfall footfalls footfarer footfault footfolk footganger footgear footgeld foothalt foothills foothold footholds foothot footing footingly footings footle footler footlicker footlights footlining footlocker footmaker footman footmanhood footmanry footmanship footmark footmarks footmen footnote footnoted footnotes footpace footpad footpaddery footpath footpick footpiece footplate footprint footprints footrail footrest footrill footroom foots footscald footslog footsore footsoreness footstall footstep footsteps footstone footstool footstools footwalk footwall footway footways footwear footworn footy fop fopling foppery foppish foppishly foppishness foppy fopship for forage foraged foragement foragers forages foraging foralite foramen foramina foramination foraminifera foraminiferal foraminose foraminous foraminulate foraminulose foraminulous forane foraneen foraneous forasmuch foraunionof forayer forays forb forbad forbade forbar forbear forbearance forbearer forbeareth forbearing forbearingly forbearingness forbears forbes forbesite forbid forbiddable forbiddance forbidden forbiddenly forbidder forbidding forbiddingly forbids forbit forbled forbore forborne forbow forcat force forceable forced forcedly forceful forcefully forcefulness forceless forcement forceps forcepslike forces forchase forche forcibility forcible forcibly forcina forcing forcipate forcipes forcipiform forcipulata forcipulate forcleave forconceit ford fordable fordableness fordays forded fordham fording fordless fordo fords fore foreaccounting foreaccustom foreacquaint foreact foreadapt foreadmonish foreadvertise foreadvice foreadvise foreallege foreallot foreannounce foreannouncement foreanswer foreappointment forearm forearms foreassign forebackwardly forebay forebear forebears forebemoan foreber forebespeak forebitt forebitten forebless forebode foreboded forebodement forebodeth foreboding forebodingness forebodings foreboot forebore forebowels forebrace forebraces foreburton forebush forecar forecarriage forecast forecasted forecaster forecasteth forecasting forecastingly forecastle forecastleman forecasts forecatharping forechamber forechase forechoice forechurch forecited foreclaw foreclosable foreclose forecome forecomingness forecommend foreconceive foreconclude foreconscious foreconsent forecontrive forecool forecooler forecounsel forecount forecourse forecourt forecourts forecover foredate foreday foredeck foredeclare foredefeated foredefine foredenounce foredeserved foredesign foredestine foredestiny foredevote forediscern foredivine foredone foredoom foredoomed foredoomer foredoor foreface forefather forefathers forefault forefeelingly forefeels forefelt forefendations forefield forefigure forefin forefinger forefingers forefit foreflank foreflap foreflipper forefoot forefront foregallery foregame foregate foregathered foregift foregirth foreglance foregleam forego foregoing foregone foreground foregrounds foreguidance forehall forehammer forehanded forehandedness forehandsel forehard forehatch forehead foreheaded foreheadless foreheads forehear forehearth forehill forehinting forehold forehood forehook foreign foreigner foreigners foreignership foreignism foreignization foreignize foreignly foreignness foreimagination foreimpressed foreinclined foreinstruct foreintend foreiron forejudge forejudgment forekeel foreking foreknee foreknowable foreknower foreknowing foreknowledge foreknown forel forelady foreland forelay forelearn foreleg forelegs forelimb forellenstein forelock forelooper foreloopers foreloper foremade foreman foremanship foremark foremartyr foremast foremasthand foremastman foremeant foremelt foremen foremention foremessenger foremisgiving foremistress foremost foremostly foremother forenight forenoon forenote forenotice forensic forensical forensicality forensically foreordain foreordained foreordainment foreorder foreordinate foreordination foreorlop forepad forepale forepart forepast forepaw forepaws forepayment forepiece foreplace foreplan foreplanned foreplanting foreplay forepole foreporch forepredicament foreprepare foreproduct forepromise forepromised foreprovided foreprovision forepurpose forequoted foreran forerank forerecited forerehearsed foreremembered forereport forerevelation forerigging foreroom foreroyal forerun forerunner forerunners forerunnership forerunnings foresaddle foresaid foresail foresaw foresay forescene foreschool foreschooling forescript foreseason foreseat foresee foreseeability foreseeing foreseeingly foreseen foresees foreseeth foreseize foresend foresense foresentence foreset foresettled foreshadow foreshadowed foreshadowing foreshadowings foreshaft foreshaped foresheet foreshew foreshift foreshock foreshoe foreshop foreshore foreshores foreshorten foreshortened foreshortening foreshorting foreshot foreshoulder foreshower foreshroud foreside foresight foresightedness foresightful foresightless foresign foresignify foresin foresing foresinger foreskin foreskirt foresleeve foresman foresound forespeak forest forestaff forestage forestair forestal forestall forestalled forestaller forestalling forestallment forestarling forestation forested forestem forestep forester forestership forestick forestiera forestish forestology forestress forestry forests forestside foresty foresummon foreswear foresweat foreswore foret foretalk foretalking foretaste foretaster foretell foretelling foretells forethink forethinker forethought forethoughted forethoughtful forethoughtfully forethoughtfulness forethoughtless forethrift foretime foretimed foretoken foretold foretop foretopmast foretrace foretrysail foreturn foretype foretypified foreuse foreutter forevalue forevalued forever forevermore forevision forevow foreward forewarm forewarmer forewarn forewarned forewarner forewarning forewarningly foreween foreweep foreweigh forewent forewing forewinning forewisdom forewish forewoman forewonted foreworld foreworn forewritten forewrought foreyards foreyear forfairn forfar forfeit forfeited forfeiter forfeiting forfeits forfeiture forfeitures forfend forfication forficiform forficula forficulate forficulidae forfouchten forfoughen forgainst forgat forgather forgave forge forgeable forged forgedly forgeful forger forgeries forgers forgery forges forget forgetful forgetfully forgetfulness forgetive forgetness forgets forgettable forgetter forgetteth forgetting forgettingly forgie forgilded forging forgit forgivable forgivableness forgive forgiveless forgiven forgiveness forgives forgiveth forgiving forgivingness forgo forgoer forgot forgotted forgotten forgottenness forgrow forgrown forhow forint forisfamiliate forjesket fork forkbeard forked forkedly forker forkful forkiness forking forkless forklift forks forky forleft forlet forlorn forlorner forlornity forlornly forlornness form formal formaldehyde formaldehydesulphoxylate formaldehydesulphoxylic formaldoxime formalin formalism formalistic formalith formalities formality formalize formalized formally formalness formamide formamides formamidine formamido formamidoxime formanilide formate formation formations formative formatively formatted formatting formature formazyl forme formed formedy formel formene formenic former formerly formerness formiate formic formica formicariae formicarioid formicarium formicaroid formicary formicate formication formicative formicid formicidae formicide formicinae formicine formicivora formicivorous formidability formidable formidably formin forminate forming formist formless formlessly formlessness formonitrile formosa formosan formose formoxime forms formula formulable formulae formular formularism formularization formulary formulas formulate formulated formulating formulation formulations formulator formulatory formule formulist formulization formulize formulizer formy formylate fornacic fornax fornaxid fornenst fornical fornicate fornication fornicator fornix foro forpart forpet forpine forrad forrads forrard forrest forrit forritsome forrue forrune forrus fors forsake forsaken forsakenly forsakenness forsaker forsakers forsakes forsakest forsaketh forsaking forset forsomuch forsook forsooth forspeak forspend forspread forst forswear forswearer forswearing forswears forswore forsworn forswornness forsythe forsythia fort fort-lamy fortable forte fortescure forth forthcome forthcomer forthcoming forthcut forthfigured forthgo forthgoing forthink forthputting forthright forthrightly forthtell forthteller forthward forthwith forthy forties fortieth fortification fortifications fortified fortifier fortifies fortify fortifying fortifyingly fortiori fortitude fortitudinous fortius fortlet fortnight fortnightly fortran fortress fortressed fortresses forts fortuitism fortuitist fortuitous fortuitously fortuitousness fortuity fortuna fortunate fortunately fortunateness fortune fortuned fortuneless fortunella fortunes fortuneteller fortunite forty fortyfold forum forums forward forwardal forwarded forwarder forwarding forwardly forwardness forwards forwean forwent forwoden fosh fosie fosite foss fossa fossane fossarian fosse fosses fossette fossiform fossil fossilated fossilation fossildom fossiles fossiliferous fossilification fossilify fossilised fossilism fossilist fossilization fossilize fossilized fossilogist fossilogy fossilological fossilologist fossils fossor fossorial fossorious fossula fossulate fossule fossulet fostell foster fosterage fostered fostering fosteringly fosterite fosterland fosterling fosters fostership fostress fot fotch fother fothergilla fotmal fotui foudroyant fougade fought foughten foughty foujdary foul foulage foulard fouled fouler foules foulest fouling foulish foully foulmouthed foulness fouls foulsome foultitude foumart found foundation foundational foundationally foundationed foundationer foundations founde founded founder foundered foundering founderous founders foundership foundery foundest founding foundland foundling foundlings foundress foundries foundry foundryman founds fount fountain fountained fountainhead fountainlet fountainous fountainously fountains fountainwise founts fouquieria fouquieriaceae four fourble fourche fourchee fourcher fourer fourflusher fourfold fourfooted fourierian fourierism fourieristic fouriers fourling fourpence fourpenny fourpounder fours fourscore foursome foursquare foursquareness fourstrand fourteen fourteener fourteenfold fourteenth fourteenthly fourth fourthe fourthly fourths foute fouter fouth fovea foveal foveate foveated foveation foveiform foveola foveolarious foveolate foveolated foveole fow fowk fowl fowler fowlerite fowlers fowlery fowlfoot fowls fox foxbane foxberry foxer foxery foxes foxfeet foxfinger foxfire foxglove foxhall foxhole foxhound foxily foxiness foxing foxish foxproof foxship foxtail foxtailed foxtongue foxwood foxy foy foyaite foyaitic foyboat foyer foziness fpc fra frabjously frabous fracedinous fractabling fracted fracticipita fractile fraction fractional fractionalism fractionally fractionary fractionating fractionator fractionization fractionize fractions fractious fractocumulus fractonimbus fractuosity fractural fracture fractured fractures fracturing frae fragant fraghan fragilariaceae fragile fragilely fragility fragment fragmentarily fragmentariness fragmentary fragmentation fragmented fragmentize fragments fragrance fragrancer fragrancy fragrant fragrantly fragrantness fraicheur fraid fraik frail frailejon frailest frailish frailly frailness frailties frailty frais fraise fram framable framableness frame framea frameable frameableness framed framefuls framemaker framer framers frames framesmith framework framing framingham frammit frampold fran franc franca francais francaise francaises france frances franche franchisal franchise franchisement franchiser franchises francic francisc francisca franciscan franciscanism francisco francium francize franco francois francoise francolin francomania franconian francophile francophilism francophobia francs frangent frangible frangibleness frangula frangulic frangulin frank frankability frankable frankenia frankeniaceous frankenstein franker frankest frankfort frankfurter frankheartedness frankincense franking frankish frankist franklandite franklin franklinia franklinization frankly frankness frankpledge frantic frantically frantick franticly franticness franz franzy frap frapper frasco frasier frass frat fratch fratched fratcher fratchy frate frater fraternal fraternalism fraternality fraternise fraternity fraternization fraternize fraternized fraternizes fraternizing fratery frates fratority fratres fratricelli fratricidal fratricide fratry frattura fraud fraude frauded fraudful fraudfully fraudibus fraudless fraudlessly fraudlessness frauds fraudulence fraudulency fraudulent fraudulently fraudulentness fraught frawn fraxetin fraxin fraxinus fray frayed frayedly frayedness frayeth fraying frayn frayproof fraze frazier frazzling freak freakdom freaked freakery freakily freakish freakishly freakishness freaks freaky freath freck frecken freckened frecket freckled freckles freckling frecklish freckly freddy frederic frederica fredericks fredericksburg fredholm free freebase freeboard freeboot freebooter freebooters freebootery freebooting freeborn freed freedman freedmen freedom freedoms freedwoman freehanded freehandedly freehandedness freehearted freeheartedly freeheartedness freehold freeholder freeholdership freeholding freeholds freeing freekirker freelage freely freeman freemanship freemason freemasonic freemasonical freemasonism freemasonry freemen freend freer frees freesias freesilverite freest freestone freestones freet freethink freethinker freetrader freety freeway freewheel freewheeler freewheeling freewill freezable freeze freezer freezes freezing fregata fregatidae freibergite freight freighted freighter freighters freighting freightment freights freilich freir freit fremd fremdness fremescence fremescent fremitus fremontia fremontodendron frenate french frenche frenched frenchification frenchily frenching frenchism frenchize frenchless frenchly frenchman frenchness frenchwise frenchy frenetic frenetical frenular frenum frenzelite frenzied frenziedly frenzies frenzy freon frequence frequency frequent frequentable frequentation frequentative frequented frequenter frequenters frequenting frequently frequentness frequents frere fresco frescoed frescoer frescoes frescoist frescos fresh freshen freshened freshener freshening freshens fresher freshes freshest freshet freshets freshly freshman freshmanhood freshmanic freshmen freshness freshwater fresison fresnel fret fretful fretfully fretfulness fretless fretre frets fretsome frett frettage frettation frette fretted fretting frettingly fretty fretum fretways fretwise fretwork fretworked freud freudian freudism freudist freundlich freut freya freyalite freyja freyr fri friability friable friand friandise friar friarbird friarhood friaries friarling friarly friars friary frib fribble fribbler fribblery fribbling fribblish fribby fricandel fricassee fricatrice frick friction frictionable frictional frictionally frictionize frictionless frictionlessly frictionproof frictions fridging fridila fridstool fried frieda friedman friedrich friedrichsdor friend friendless friendlessness friendlier friendliest friendlike friendlily friendliness friendliwise friendly friends friendship friendships friendshiq frier fries frieseite friesian frieze friezes friezy frigate frigates frigga fright frighted frighten frightened frightenedly frightenedness frightener frightening frighteningly frightens frighter frightful frightfully frightfulness frighting frightless frights frighty frigid frigidarium frigidity frigidly frigidness frigiferous frigolabile frigoric frigorific frigorifical frigorify frigorimeter frigostable frijol frijolillo frike frill frillback frilled frillery frillily frilliness frilling frills frilly frim frimaire fringe fringed fringent fringepod fringes fringilla fringillaceous fringilline fringilloid fringing fringy fripperer fripperies frippery frisesomorum frisette frisian frisii frisk frisket friskful friskier friskiness frisking friskingly frisks frisky frisolee frist fristed frisure frit frith frithborh frithbot frithles frithstool fritillaria fritillary fritt fritter frittered fritterer frittering fritz friulian frivol frivolism frivolist frivolities frivolity frivolous frivolously frivolousness frixion friz frize frizz frizzed frizzer frizzily frizziness frizzing frizzle frizzled frizzler frizzling frizzly frizzy frm fro frock frockcoat frocked frocking frockless frockmaker frocks froe froebelian froebelism frog frogbit frogeye frogfish frogflower frogfoot frogged froggery frogginess froggish froggy froghood froghopper frogland frogleg frogman frogmouth frognose frogs frogskin frogtongue froid froise frolic frolicked frolickers frolicking frolicks frolicness frolicsome frolicsomely from fromage frond frondage fronded frondesce frondescence frondescent frondiform frondlet frondous fronds front frontad frontage frontager frontages frontal frontale frontality frontals fronted fronter frontier frontiere frontieres frontierlike frontierranges frontiers frontiersman frontiersmen frontignan fronting frontirostria frontis frontispiece frontless frontlessly frontlet frontlets frontoethmoid frontolysis frontomallar frontomaxillary frontooccipital frontoorbital frontoparietal frontopontine frontosphenoidal frontosquamosal frontotemporal frontozygomatic frontpiece fronts frontstall frontward frontways frontwise froom frore frory frost frostation frostbird frostbitten frostbow frosted froster frostfish frostflower frostily frosting frostless frostlike frostnip frostroot frosts frostwort frosty froth frothed frother frothi frothily frothiness frothing frothless froths frothsome frothy frotton froufrou frough froughy frovides frow froward frowardly frowardness frower frown frowned frowner frowning frowningly frownless frowns frowsiness frowst frowstily frowstiness frowsty frowsy frowy frowze frowzily frowziness frowzly frowzy froze frozen frozenly frst fruchtschiefer fructed fructescence fructescent fructicultural fructiculture fructidor fructiferous fructiferously fructification fructificative fructifier fructiform fructify fructifying fructose fructuosity fructuous fructuously fructuousness fructusque fruehauf frugal frugality frugally frugivora frugivorous fruit fruitade fruitage fruitcake fruiter fruiterer fruiteress fruitery fruitful fruitfully fruitieres fruitiness fruiting fruition fruitive fruitless fruitlessly fruitlessness fruitlike fruitling fruits fruitstalk fruitwoman fruitwood fruity frumentaceous frumentarious frumentation frump frumpery frumpily frumple frush frustrate frustrated frustrately frustrater frustrating frustration frustrations frustratory frustule frustulent frustulose frustum frutescence fruticetum fruticous fruticulose frutify fry frye fryer frying fs ftc fthe ftom fu fub fubby fucaceae fucaceous fucales fucate fucatious fuchs fuchsia fuchsian fuchsine fuchsinophilous fuchsite fuchsone fuci fucinita fuciphagous fucoid fucoidal fucoideae fucosan fucose fucoxanthin fucus fud fuddle fuddled fuddler fuddling fuder fudge fudger fudging fudgy fuegian fuel fueled fueler fuelhouse fueling fuelizer fuelled fueller fuelling fuerte fuffy fugaciously fugaciousness fugacity fugally fugge fuggy fugient fugit fugitation fugitive fugitives fugitivism fugitivity fugle fugleman fuglemanship fugler fugue fugues fuguist fuhgot fuidhir fuirdays fuirena fuji fujitsu ful fulah fulcral fulcrate fulcrum fulfil fulfill fulfilled fulfiller fulfilling fulfillment fulfills fulfilment fulfilments fulfils fulfulde fulgent fulgently fulgentness fulgide fulgor fulgora fulgorid fulgoridae fulgoroidea fulgorous fulgur fulgurata fulgurating fulguration fulgurator fulgurite fulgurous fulham fulica fulicinae fuligine fuliginosity fuliginous fuliginously fuliginousness fuligula fuligulinae fuliguline fulk full fullam fuller fullerton fullery fullest fullface fulling fullish fullmouthed fullmouthedly fullness fullom fully fulmar fulminate fulminated fulminating fulmination fulminations fulminator fulmine fulmineous fulminuric fulness fulsome fulsomely fulsomeness fulth fultitude fulton fultz fulup fulvene fulvescent fulvidness fulvous fulzie fum fumado fumago fumare fumaria fumariaceous fumaric fumaroid fumarole fumaroles fumarolic fumaryl fumatorium fumble fumbled fumbler fumbles fumbling fume fumed fumer fumeroot fumes fumette fumewort fumiferous fumigate fumigated fumigating fumigation fumily fuming fumingly fumose fumosity fumously fumy fun funambulate funambulation funambulic funambulism funambulist funambulo funaria funariaceae funariaceous func function functional functionalism functionalist functionality functionally functionaries functionarism functionary functionation functioned functioning functionings functionize functions functor functorial fund fundable fundament fundamental fundamentally fundamentalness fundamentals funded fundic fundiform fundless fundmongering fundraise funds funduline fundungi fundus funebre funeral funeralize funerals funerary funereal funereally funest fungal fungales fungate fungi fungia fungian fungible fungic fungicide fungicides fungiferous fungilliform fungistatic fungivorous fungo fungoid fungoids fungological fungologist fungology fungous fungus fungused funguslike funicle funicular funiculate funicule funiculitis funiculus funiform funipendulous funis funiture funje funk funker funkia funkiness funmaker funnee funnel funnelashaped funneled funnelform funneling funnelled funneller funnellike funnelling funnels funnier funniest funnily funniment funning funny funori funt funtumia fuo fuos fur furacious furacity fural furan furanoid furazan furazolidone furbelows furbish furbishable furbished furbishing furbishment furca furcal furcate furcately furcation furcellaria furciferine furciferous furciform furcoated furcular furdel furder furfooz furfur furfural furfuralcohol furfuraldehyde furfuramide furfuran furfurane furfuration furfurine furfuroid furfurole furfurous furfuryl furibund furied furies furify furilic furiosity furioso furious furiously furiousness furison furl furled furler furless furling furlong furlongs furlough furls furman furmity furnace furnacelike furnaceman furnaces furnacite furnage furnariidae furnariides furnarius furninshes furnish furnishd furnished furnishes furnishing furnishings furnishment furniture furo furoate furocoumadin furocoumarins furodiazole furoic furoin furor furore furos furred furriery furrily furriness furrow furrowed furrowing furrowings furrowless furrowlike furrows furrowy furry furs furstone further furtherance furthered furtherer furtherest furthering furtherings furtherly furthermore furthermost furthers furthersome furthest furtive furtively furtiveness furto furud furuncle furuncular furunculoid furunculosis furunculous fury furyl furze furzechat furzed furzeling furzetop furzy fus fusarial fusariose fusarium fusarole fusate fuscescent fuscin fuscohyaline fuscous fuse fuseboard fused fusel fuses fusht fusible fusibleness fusibly fusicladium fusiform fusiformis fusil fusilade fusillade fusillades fusing fusinist fusion fusional fusionist fusionless fusios fusoid fuss fussbudget fussed fusses fussify fussily fussiness fussing fussock fussy fust fustanella fusteric fustet fustian fustianist fustianize fustic fustigation fustilugs fustiness fusty fusure fut futchel fute futile futilely futileness futilitarian futilities futility futilize futtermassel futtock future futureless futures futurism futurist futurity fuye fuze fuzed fuzes fuzz fuzzball fuzzed fuzzily fuzzy fwat fyfte fyke fylde fylfot fyll fyrd fyrst fyue g g's ga gab gabardine gabble gabbled gabblement gabbling gabbro gabbroic gabbroid gabby gabe gabelled gabelleman gabeller gaberdine gaberdines gaberones gabfest gabi gabion gabionade gabionage gabioned gable gableboard gabled gablelike gables gablet gabon gaboon gaborone gabriel gabriella gabrielle gabrielrache gaby gad gadabout gadaria gadbee gaddang gadded gadder gaddi gadding gaddingly gaddishness gade gadfly gadge gadger gadgeteer gadgetry gadgety gaditan gadman gadoid gadolinic gadolinite gadolinium gadroon gadroonage gads gadsbodikins gadsden gadslid gadsman gadswoons gadus gadwall gadzooks gae gael gaeldom gaelic gaelicism gaelicist gaelicization gaelicize gaen gaertnerian gaetulan gaetuli gaetulian gaff gaffe gaffer gaffes gaffkya gaffle gaffsman gag gage gaged gagee gageite gagelike gager gagership gagged gagger gaggery gaggle gagman gags gagster gagtooth gagwriter gahnite gahrwali gaiassa gaidropsaridae gaieties gaiety gail gaillardia gails gaily gaiment gain gainage gaincall gaincome gained gainer gaines gainful gainfullest gaining gainless gainliness gains gainsaid gainsay gainsayed gainsaying gainsome gainspeaking gainst gainstrive gaintwist gainyield gair gait gaiter gaitered gaiterless gaiters gaithersburg gaiting gaits gaize gaj gal gala galacaceae galactagogue galactagoguic galactan galacthidrosis galactic galactidrosis galactite galactocele galactodendron galactogenetic galactoid galactolipide galactolytic galactoma galactometer galactophagist galactophorous galactophygous galactopoiesis galactorrhea galactorrhoea galactoscope galactoside galactostasis galacturia galagala galaginae galago galah galanas galanga galangin galant galanthus galantine galany galapago galatea galatia galatian galatotrophic galax galaxias galaxiidae galaxy galban galbanum galbreath galbula galbulae galbulinae galbulus galcha galchic gale galea galeage galeate galeeny galega galei galeid galeiform galen galenian galenic galenical galenism galenist galenite galeodes galeopithecus galeopsis galeorhinidae galeorhinus galeproof galera galericulate galerum galerus gales galet galeus galewort galey galga galgulidae galibi galician galictis galidia galidictis galik galilean galilee galimatias galiongee galipidine galipine galipoidin galipoidine galipoipin galipot gall galla gallah gallanilide gallant gallantest gallantize gallantly gallantries gallantry gallants gallate gallature gallbladder galleass galled gallegan gallein galleon galleons galler galleria gallerian galleried galleries galleriidae gallery gallet galley galleys gallfly galli gallian galliantest galliard galliardly galliardness gallic gallican gallicanism gallicism gallicisms gallicization gallicize gallicized gallicizer gallicola gallicolae gallicole gallicolous gallicrow gallied galliferous gallification galliform galligaskin galligaskins gallinaceae gallinacei gallinaceous gallinae gallinazo galline galling gallingly gallingness gallinipper gallinula gallinuline gallipot gallirallus gallium gallivant gallivanter galliwasp gallnut gallocyanine galloflavine galloglass galloman gallon gallonage galloner gallons gallop gallopade gallopaded galloped galloperdix gallophilism gallophobe gallophobia galloping gallopped gallops galloptious gallotannate gallotannic gallotannin gallous galloway gallowglass gallows gallowsness gallowsward galls gallstone gallup gallus galluses gallweed gallwort gally gallybagger gallybeggar galoisian galoot galore galravage galravitch gals galt galtonia galtonian galusha galvanic galvanical galvanically galvanised galvanism galvanization galvanize galvanized galvanizer galvanizing galvanocauterization galvanocautery galvanocontractility galvanofaradization galvanoglyph galvanograph galvanographic galvanography galvanologist galvanolysis galvanomagnet galvanomagnetic galvanometric galvanometrical galvanoplastic galvanoplastical galvanoplastically galvanoplasty galvanopsychic galvanopuncture galvanoscope galvanosurgery galvanotactic galvanotaxis galvanotherapy galvanothermometer galvanothermy galvanotonic galvanotropic galvayne galvayning galyak galziekte gam gamahe gamashes gamasid gamasidae gamazole gamba gambade gambado gambang gambeer gambet gambette gambier gambist gambit gamble gambled gambler gamblers gambles gambling gamblng gamboge gambogian gambogic gamboised gambol gamboling gambolled gambols gambreled gambusia game gamecock gamecraft gamekeep gamekeeper gamekeepers gamekeeping gamelang gamelotte gamely gameness games gamesman gamesome gamesomely gamesomeness gamester gametange gamete gametes gametic gametically gametocyst gametocyte gametogenesis gametogenous gametogeny gametogonium gametogony gametoid gametophagia gametophyll gametophyte gametophytic gamey gamic gamier gamily gamin gaminesque gaminess gaming gaminish gamins gamma gammacismus gammadion gammarid gammarine gammaroid gammarus gammation gamme gammelost gammerel gammexane gammick gammon gammoning gammy gamobium gamodesmic gamogenesis gamogenetically gamolepis gamomania gamont gamopetalae gamophagia gamophagy gamophyllous gamostele gamostely gamotropic gamotropism gamut gamy gan ganam ganapati ganch gander ganderess gandergoose gandermooner ganderteeth gandhara gandhiism gandhism gandum gandurah gane ganef gang ganga gangamopteris gangan gangava gangboard ganges gangetic ganggang ganging gangism ganglander ganglia ganglial gangliar gangliate gangliated gangliform gangliitis gangling ganglioblast gangliocyte ganglioform ganglioid ganglioma ganglion ganglionary ganglionate ganglionectomy ganglioneure ganglioneuroma ganglioneuron ganglionic ganglionitis ganglionless ganglions ganglioplexus gangly gangmaster gangplank gangrel gangrene gangrenescent gangrenous gangs gangsman gangster gangtide ganguela gangway gangwayman ganised ganner gannet gannett ganocephalan ganodont ganodonta ganodus ganoid ganoidal ganoidean ganoidei ganomalite ganophyllite gansey gansy ganta gantang gantanol gantlet gantline ganton gantries gantrisin gantry gantsl ganymede ganzie gao gaol gaolbird gaoler gaolers gaols gaon gaonate gaonic gap gapa gape gaped gaper gapes gapeseed gapeworm gaping gapingly gapingstock gapped gaps gapy gar gara garabato garage garageman garamond garapata garasons garawi garb garbage garbed garbel garbell garbill garble garbless garbling garboard garboil garbs garcia gardant garded gardeen garden gardenable gardencraft gardened gardener gardeners gardenership gardenesque gardenhood gardenin gardening gardenless gardenlike gardenly gardenmaker gardenmaking gardens gardenwards gardenwise gardeny gardevin gardiners garding gardner gardnerella gardy gare gareh garetta garewaite gargantuan gargle gargles gargling gargol gargoyle gargoyled gargoyles gargoylish gargoylism garhwali gariba garibaldi garibaldian garish garishly garishness garland garlandage garlanded garlandlike garlandry garlands garle garlic garliclike garlicmonger garlicwort garment garmentmaker garments garmenture garmentworker garn garner garnerage garnered garnering garners garnet garnetiferous garnets garnetter garnetwork garnetz garnice garniec garnierite garnies garnish garnishable garnished garnishee garnisheement garnishment garnishry garniture garo garoo garookuh garrafa garret garreted garretmaster garrets garrett garrison garrisoned garrisonian garrisonism garrisons garrot garroter garrulinae garruline garrulity garrulous garrulously garrulousness garrulus garrupa garry garrya garryaceae gars garse garsil garter gartering garters garth garthman garths garuda garum garvock gary gas gasan gasbag gascoigny gasconism gascony gaseous gaseousness gases gasfitter gash gashed gashes gashful gashliness gasholder gashy gasifiable gasification gasifier gasiform gasify gasing gasket gaskin gaslight gaslighting gaslights gaslit gasmaker gasman gasogene gasogenic gasohol gasolene gasoliery gasoline gasometer gasometry gasp gaspar gasparillo gasped gaspee gasper gaspereau gaspergou gaspiness gasping gaspingly gaspingness gaspipes gasproof gasps gaspy gass gasser gasserian gassing gassy gast gastaldite gastaldo gaster gasteralgia gasteromycetes gasteromycetous gasterosteid gasterosteidae gasterosteiform gasterosteoid gasterosteus gasterotheca gasterothecal gasterotrichan gastornis gastornithidae gastraea gastraead gastraeadae gastraeal gastralgia gastralgic gastraneuria gastrasthenia gastratrophia gastrelcosis gastric gastricism gastriloquial gastriloquism gastriloquist gastriloquous gastriloquy gastrin gastrinoma gastritis gastroadenitis gastroadynamic gastroanastomosis gastroarthritis gastroatonia gastroatrophia gastroblennorrhea gastrocatarrhal gastrocele gastrocentrous gastrochaena gastrocnemian gastrocnemius gastrocolic gastrocolostomy gastrocolotomy gastrocolpotomy gastrocystic gastrocystis gastrodialysis gastrodisk gastroduodenitis gastroduodenoscopy gastroduodenotomy gastroelytrotomy gastroenteric gastroenteritis gastroenteroanastomosis gastroenterocolitis gastroenterocolostomy gastroenterological gastroenterologist gastroenteroptosis gastroenterotomy gastroesophageal gastroesophagostomy gastrogastrotomy gastrograph gastrohelcosis gastrohepatic gastrohydrorrhea gastrohyperneuria gastrohypertonic gastrohysterectomy gastrohysterotomy gastrointestinal gastrojejunal gastrolatrous gastrolith gastrolobium gastrologer gastrology gastrolytic gastromalacia gastromelus gastromenia gastromyces gastromycosis gastronephritis gastronome gastronomical gastronomist gastronomy gastronosus gastropancreatitis gastroparalysis gastropathic gastropathy gastroperiodynia gastrophile gastrophilism gastrophilist gastrophilite gastrophrenic gastrophthisis gastroplasty gastroplenic gastropleuritis gastropneumatic gastropneumonic gastropod gastropoda gastropulmonary gastropulmonic gastropyloric gastrorrhagia gastrorrhaphy gastroschisis gastroscope gastroscopic gastroscopy gastrosophy gastrospasm gastrosplenic gastrostaxis gastrostegal gastrostege gastrostenosis gastrosuccorrhea gastrotome gastrotomic gastrotomy gastrotricha gastrotrichan gastrovascular gastroxynsis gastrozooid gastrula gastrulae gastrular gastrulation gasworker gat gatch gatchwork gate gateado gateage gatefold gatehouse gatekeeper gateless gatelike gatemaker gatepost gates gatetender gateward gatewards gateway gateways gatewise gatewoman gateworks gatha gather gatherable gathered gatherer gathereth gathering gatherings gathers gathic gating gatlinburg gator gatteridge gaub gauby gauche gaucheness gaucher gaucherie gaucho gauchos gaud gaudery gaudet gaudete gaudful gaudier gaudily gaudiness gaudsman gaudy gaufer gauffer gauffered gauffre gaufre gaufrette gauge gauged gauger gauges gauging gauguin gaul gaulding gauleiter gaulic gaulish gaullist gaulter gaultherase gaultheria gaultherin gaum gaumless gaumlike gaumy gaun gaunt gaunted gauntlet gauntleted gauntlets gauntly gauntness gauntry gaunty gaup gaupus gaur gaura gaurian gaussage gaussbergite gaussian gauster gauteite gauze gauzelike gauziness gauzy gavall gave gavel gaveler gavelkind gavelkinder gavelled gaveller gavelock gaven gavest gaviae gavialoid gaviiformes gavin gavotte gavyuti gaw gawcie gawk gawkhammer gawkihood gawkiness gawking gawkish gawkishly gawkishness gawky gawm gawney gawsie gay gayatri gaybine gaycat gaydiang gayer gayest gayeties gayety gayish gaylussite gayly gayment gayness gaypoo gaywings gayyou gazabo gazangabin gazania gaze gazebo gazed gazel gazeless gazella gazelle gazelles gazement gazer gazers gazes gazettal gazette gazetted gazetteer gazetteerage gazetteership gazettes gazing gazingstock gazogene gazon gazophylacium gazy gazzetta gdansk ge geal gean geanticlinal geanticline gear gearbox geared gearing gearksutite gears gearshift gease geat geatas gebang gebanga gebbie gebur geck gecko geckoid geckotid geckotidae ged gedackt gedanite gedanken gedder gedeckt gedecktwork gederite gee geebong geebung geeldikkop geep geepound geese geest geezer gegenschein gegenwartigen gegg geggee geggery gehabt geheimrat geiger geikia geikielite geira geisenheimer geisha geison geisothermal geissoloma geissolomataceae geissolomataceous geissorhiza geissospermin geissospermine geistigen geistlische geitonogamous geitonogamy gekko gekkones gekkonoid gekkota gekleideten gel gelada gelandejump gelandelaufer gelandesprung gelasimus gelastic gelastocoridae gelatification gelatigenous gelatin gelatinate gelatine gelatined gelatiniferous gelatiniform gelatinify gelatinigerous gelatinity gelatinizable gelatinization gelatinize gelatinochloride gelatinoid gelatinous gelatinousness gelation geld geldable geldant gelded gelder gelding geldings gelechia gelechiid gelfomino gelid gelidiaceae gelidity gelinotte gell gellert gelly gelogenic geloscopy gelosin gelotherapy gelsemic gelseminic gelt gem gematria gematrical gemauve gemel gemellione gemellus gemfibrozil geminate geminated geminately gemination geminative gemini geminid geminiflorous geminiform gemitorial gemless gemlike gemma gemmaceous gemman gemmation gemmative gemmed gemmer gemmiferous gemmiform gemmily gemmingia gemmipara gemmipares gemmiparously gemmoid gemmology gemmulation gemmuliferous gems gemsbuck gemstones gemul gemuti gemwork gen gena genal genarch genarchship gendarme gendarmerie gendarmery gendarmes gender genderer genderless gene genealogic genealogical genealogically genealogies genealogize genealogizer genealogy genear geneat genecological genecologically genecology genep genera generability generable generableness general generalcy generale generalia generalific generalisation generalisations generalised generalism generalissimo generalist generalistic generalities generality generalizable generalization generalizations generalize generalized generalizer generalizing generall generallv generally generals generalship generalty generate generated generates generating generation generational generationism generations generative generatively generativeness generator generators generatrices generatrix genere generic generically genericalness generosities generosity generous generously genesco genesee geneserine geneses genesiac genesiacal genesial genesis genesiurgic genet genetal genethliac genethliacs genethlialogical genethlialogy genethlic genetic genetically genetmoil genetous genetrix geneura genevan genevese genevois genial geniality genialize genially genialness genian genic geniculate geniculated geniculum genie genii genin genioglossal geniohyoglossus geniolatry genip genipa genipap genipapada genista genistein genital genitalia genitals genitival genitivally genitive genitocrural genitor genitory genitourinary geniture genius geniuses genoa genoblast genocidal genocide genoese genom genomic genonema genotypic genotypical genoveva genovino genre genres genro gens gent gentamicin gente genteel genteelish genteelism genteelly genthite gentian gentiana gentianaceae gentianaceous gentianella gentianic gentianose gentians gentibus gentil gentile gentiledom gentiles gentilesse gentilic gentilicia gentilism gentilitious gentility gentilization gentilize gentilman gentis gentisein gentisic gentium gentle gentlefolk gentlefolks gentlefolkses gentleheartedly gentlehood gentleman gentlemanhood gentlemaning gentlemanize gentlemanlike gentlemanliness gentlemanly gentlemanship gentlemen gentlemens gentlemouthed gentleness gentlenesses gentlepeople gentler gentlest gentlewoman gentlewomanhood gentlewomanish gentlewomanlike gentlewomanliness gentlewomen gently gentman gentoo gentrice gentry gents genty genu genua genual genuflect genuflection genuflections genuflector genuflectory genuflex genuflexuous genuine genuinely genuineness genus genwine genyophrynidae genyoplasty genys geo geobiologic geobiology geoblast geobotanist geobotany geocentric geocentrical geochemical geochemist geochemistry geochronology geochronometry geococcyx geocoronium geocratic geocronite geodaesia geodesic geodesical geodesiques geodesist geodete geodetic geodetical geodetically geodetician geodiatropism geodiferous geodynamic geodynamical geoethnic geoffrey geoffroyine geoform geogenesis geogenetic geogenous geoglossaceae geognosis geognosy geogonic geogonical geogony geographer geographers geographic geographical geographically geographie geographies geographique geographiques geographische geographischen geographism geography geohydrologist geohydrology geoid geoisotherm geolatry geoloeical geologer geologian geologic geological geologically geologiche geologician geologie geologique geologiques geologischen geologischer geologist geologists geologize geology geomagnetist geomalism geomaly geomance geomancer geomantic geomantical geomantically geometer geometers geometric geometrical geometrically geometrician geometricians geometrid geometrina geometrine geometrischen geometrize geometry geomoroi geomorphic geomorphist geomorphogenic geomorphogenist geomorphogeny geomorphological geomorphy geomyid geon geonavigation geonegative geonic geonim geonoma geonyctinastic geoparallelotropic geophagia geophagism geophagous geophila geophilidae geophilus geophone geophysical geophysicist geophysics geophyte geophytic geoplana geopolitical geopolitics geopolitik geoponic geopony georama geordie george georgetown georgette georgia georgiana geoscience geoscopic geoscopy geoselenic geoside geosphere geospiza geostatics geostrategic geostrategist geostrophic geosyncline geotactic geotactically geotaxy geotectology geotectonic geotectonics geoteuthis geothermal geothermic geothermometer geothlypis geotic geotical geotilla geotonic geotropic geotropically geotropism geotropy geoty geously gepeoo gephyrea gephyrean gephyrocercal gephyrocercy gepidae ger gerah gerald geraldine geraniaceae geranial geraniales geranic geranium geraniums geranomorph geranomorphae geranyl gerard gerardia gerastian geratologic geratology geraty gerb gerbe gerber gerberia gerbil gerbillinae gerbillus gercrow gereagle gered gerefa gerenda gerendum gerent gerenuk gerfalcon gerhard geriatrician geriatrics gerip germ germal german germander germane germanely germaneness germanesque germanhood germania germanical germanically germanics germanify germanious germanische germanish germanist germanite germanity germanium germanization germanly germanness germanocentric germanophile germanophilist germanophobe germanophobia germanophobic germanous germantown germany germanyl germen germfree germicidal germicide germifuge germigenous germin germina germinability germinable germinal germinally germinance germinant germinate germinated germinates germinating germination germinative germinatively germinator germinogony germiparity germling germlings germproof germs germy gernitz gerocomia gerocomical geromorphism geronomite gerontal gerontes gerontine gerontism geronto gerontocracy gerontocrat gerontogeous gerres gerrhosaurid gerridae gerrymanderer gers gershon gershonite gertie gertrude gerund gerundial gerundially gervais gerygone geryonidae geryoniidae ges gesammte gesamte geschichte geschichtlichen geschlechliche geshurites gesith gesithcund gesithcundman gesnera gesneraceae gesneraceous gesnerian gesning gessamine gesta gestae gestalter gestaltist gestapo gestation gestative geste gesten gestic gesticulacious gesticulant gesticular gesticulate gesticulated gesticulating gesticulation gesticulations gesticulative gesticulator gesticulatory gestion gestis gestning gesto gests gestural gesture gestured gestureless gesturer gestures gesturing get geta getae getah getdberrorstring getee gether gethsemane gethsemanic getic getling gets getsul gettee getter getteth gettin getting gettingfresh gettings gettun gettysburg getup geullah geum geurin geushkine gewesen gewgaw gewgawry gewgaws gewgawy geworden gey geyan geyser geyseral geyseric geyserish geyserite geysers gez gh ghalva ghan ghana gharial gharnao ghassanid ghastlily ghastliness ghastly ghat ghatwal ghazi ghaznevid gheber ghebeta ghedda gheg ghent gherkin ghetchoo ghetto ghettoization ghettoize ghibelline ghibellinism ghiordes ghizite ghoom ghost ghostcraft ghostdom ghoster ghostfish ghostflower ghostified ghostish ghostland ghostless ghostlet ghostlify ghostlike ghostlily ghostliness ghostly ghostology ghosts ghostship ghostweed ghostwrite ghoul ghoulish ghoulishly ghoulishness ghouls ghrush ghurry ghuz gi giam giansar giant giantess gianthood giantize giantkind giantlike giantly giantry giants giantship giardia giardiasis giarra gib gibaro gibbed gibber gibbered gibberella gibbergunyah gibbering gibberish gibberose gibberosity gibbet gibbeted gibbets gibbetwise gibbi gibblegabble gibblegabbler gibbles gibbon gibbons gibbose gibbous gibbousness gibbs gibbus gibby gibe gibel gibelite gibeonite gibes gibing gibingly gibleh giblet gibson gibstaff gid giddify giddily giddiness giddinesses giddy giddyberry giddybrain giddyhead giddying giddyish gideon gidgee gie gied gieing gien gienah gieseckite gif gifford gift gifted giftedly giftless giftling gifts gig gigabit gigacycle gigahertz gigaherz gigantean gigantesque giganteum gigantic gigantical gigantically giganticidal giganticness gigantism gigantoblast gigantological gigantomachy gigantopithecus gigantosaurus gigantostracous gigartina gigartinaceae gigartinales gigas gigawatt gigback gigelira gigerium gigful gigger giggish giggit giggle giggled giggledom gigglement giggler giggles gigglesome giggling gigglish giggly gigito giglet gigliato gigman gigmaness gigmanhood gigmania gigmanic gigmanically gigmanism gignate gigolo gigs gigsman gigster gigunu gil gila gilaki gilbert gilbertage gilbertese gilbertian gilbertianism gilbertite gilchrist gild gildable gilded gilden gilder gilding gilds gileadite gileno giles gilia gilim gill gillaroo gillbird gillespie gillflirt gillhooter gillian gillie gilliflirt gilliflowers gilligan gilling gilliver gillivers gillotage gills gillstoup gillyflower gillyflowers gillygaupus gilo gilpy gilravage gilravager gilse gilsonite gilt gilttail gim gimbaled gimbaljawed gimbals gimble gimcrack gimcrackery gimcrackiness gimcracks gimcracky gimlet gimleteyed gimleting gimlety gimmal gimme gimmerpet gimmick gimmickry gimmicks gimmicky gimp gimper gimping gin gina ginerous ging ginger gingerade gingerberry gingerbread gingerbready gingerin gingerline gingerliness gingerly gingerness gingerol gingerous gingerroot gingersnap gingerwork gingerwort gingery gingham ginghamed ginghams gingiva gingival gingivalgia gingivectomy gingivitis gingivoglossitis gingivolabial gingko ginglyform ginglymoarthrodia ginglymoarthrodial ginglymodi ginglymodian ginglymoidal ginglymostoma ginglymostomoid ginglymus ginglyni ginhouse gink ginkgo ginkgoaceae ginkgoaceous ginko ginmill ginn ginned ginner ginnery ginney ginning ginnle ginny gino gins ginsberg ginsburg ginseng gintleman ginuine ginward giobertite giornata giornatate giorni giorno giottesque giovanni gioventu gip gipon gipper gippy gipser gipsies gipsy gipsyweed giraffa giraffe giraffes giraffidae giraffine girandole girasol girasole girba gird girded girder girderage girderless girders girdeth girding girdingly girdings girdle girdlecake girdled girdlelike girdler girdles girdling girdlingly girds girella girellidae girgashite girgasite girl girleen girlery girlfound girlfriend girlfully girlhood girlie girliness girling girlish girlishly girllike girls girly girn girny giroflore girondin girondism girouette girouettism girr girse girsh girsle girt girth girthed girths girtline gisarme gisela gish gisler gist git gitaligenin gitalin gith gitksan gitonin gitoxigenin gits gittin gittite giudicandolo giuliano giuseppe giustina giv give giveaway given giveness givenness giver givers gives givest giveth givin giving givre gizz gizzard gizzen gizzern glabellar glabellous glabellum glabrescent glabrous glace glaceed glaceing glacial glacialism glacially glaciaria glaciarium glaciate glaciation glacier glaciered glacieres glacieret glacierist glaciers glacioaqueous glaciolacustrine glaciological glaciologist glaciology glaciomarine glaciometer glacionatant glacis glack glad gladden gladdened gladdener gladder gladdest gladdon glade gladelike glades gladeye gladfully gladiator gladiatorial gladiatorism gladiators gladiatrix gladiolar gladiole gladioli gladiolus gladkaite gladless gladlier gladly gladness gladsome gladsomely gladsomeness gladstone gladstonian gladstonianism glaesum glaga glagolitic glagolitsa glaieul glaik glaiketness glair glaireous glairiness glairy glaister glaky glamor glamorize glamorous glamorously glamour glamoury glams glance glanced glances glancing glancingly gland glandarious glandered glanderous glanders glandes glandiferous glandlike glands glandular glandularly glandule glanduliferous glanduliform glanduligerous glandulose glandulousness glaniostomi glans glansh glar glare glared glareless glareola glareole glares glareworm glarily glariness glaring glaringly glaringness glarry glary glaserian glaserite glass glassblow glassed glassen glasser glasses glassfish glassful glasshouse glassie glassine glassiness glassite glassless glasslike glassmake glassophone glassrope glassteel glassware glassweed glassworker glassworking glassworks glasswort glassy glaswegian glathsheim glauberite glaucescent glaucidium glaucin glaucine glaucionetta glaucolite glaucomatous glauconia glauconiferous glauconiidae glauconite glauconitic glaucophane glaucophanite glaucophanization glaucous glaucously glauke glaum glaumrie glaur glaury glaver glaves glaze glazed glazen glazework glazier glaziery glazily glaziness glazing glazings glazy gleam gleamed gleamest gleamily gleaminess gleaming gleamingly gleamless gleams gleamy glean gleanable gleaned gleaner gleaners gleaning gleanings gleary gleason gleba glebal glebe glebeless glecoma gled glede glee gleeful gleefully gleefulness gleeishly gleem gleemaiden gleeman glees gleesome gleesomeness gleet gleg glegly glen glenda glendale glengarry glenn glenohumeral glenoid glenoidal glens glent glet gleyde gli glia gliadin glial glib glibbery glibly glibness glidden glidder gliddery glide glided glider gliderport glides glidest gliding glidingly gliff gliffing glim glime glimmer glimmered glimmering glimmerings glimmerite glimmerous glimmers glimpse glimpsed glimpser glimpses glint glinted glinting glints glioma gliomatous gliosis glipizide glires gliridae glirine glisky glissade glissader glissando glisten glistened glistening glisteningly glistens glister glistered glistering glisteringly glitnir glitter glitterance glittered glittering glitters glittersome glittery gloam gloaming gloat gloated gloater gloating gloatingly globally globate globated globe globed globefish globeflower globeholder globes globicephala globin globiocephalus globoid globosa globous globousness globular globularity globularly globularness globule globules globuliferous globuliform globulimeter globulin globulins globulinuria globuloid globulous globulus globulysis globus globy glochid glochideous glochidia glochidial glochidian glochidiate glochis gloea gloeal gloeocapsa gloeocapsoid gloire glom glome glomerella glomeroporphyritic glomerular glomerulate glomerule glomeruli glomerulonephritis glomerulose glomerulus glomonephritis glomus glonoin glonoine gloom gloomed gloomfully gloomier gloomiest gloomily gloominess glooming gloomingly glooms gloomth gloomy glop gloppen glore gloria gloriae gloriation gloried glories glorieth gloriette glorifiable glorification glorified glorifier glorifies glorify glorifying gloriole gloriosa gloriosity glorious gloriously gloriousness glory glorying gloryingly gloryless glosen gloss glossa glossalgia glossalgy glossarial glossarian glossarist glossarize glossary glossata glossate glossatorial glossectomy glossed glosser glosses glossic glossily glossina glossiness glossingly glossist glossitic glossmeter glossocarcinoma glossocele glossocomon glossodynia glossoepiglottidean glossograph glossographer glossographical glossography glossohyal glossoid glossolabial glossolabiolaryngeal glossolabiopharyngeal glossolalist glossological glossologist glossology glossoncus glossopalatinus glossopathy glossopetra glossophaga glossophagine glossopharyngeal glossopharyngeus glossophorous glossophytia glossoplegia glossopodium glossoptosis glossopyrosis glossorrhaphy glossoscopia glossoscopy glossosteresis glossotomy glossotype glossy glost glottalite glottid glottidean glottis glottiscope glottogonic glottogony glottologic glottological glottology gloucester glout glove gloved glovelike glovemaking glover gloveress gloves gloving glow glowed glower glowered glowerer glowering gloweringly glowing glowingly glows glowworm glowworms gloxinia gloze glozing glozingly glub glucagon glucase glucid glucide glucina glucine glucinic glucinum gluck glucocorticoids glucofrangulin glucolipid glucolipide glucolipin glucolysis gluconate glucosaemia glucosamine glucosan glucosane glucose glucosemia glucosic glucosid glucosidal glucosidase glucoside glucosides glucosidic glucosin glucosine glucosone glue glued gluemaker gluer glueth glueyness glug gluing gluish gluishness glum gluma glumaceae glumaceous glumales glumly glummy glumness glumose glumosity glump glumpily glumpiness glumpish glumpy gluneamie glusid gluside glut glutamate glutaminic glutaric glutathione glutch gluteal gluten gluteofemoral gluteoperineal glutethimidefor gluteus glutin glutination glutinative glutinosa glutinosity glutinous glutinously glutinousness glutoid glutose glutted glutter glutting glutton gluttoness gluttonish gluttonism gluttonize gluttonous gluttonousness gluttons gluttony glyburide glyceraldehyde glycerate glyceria glyceric glyceride glycerin glycerinate glycerination glycerine glycerite glycerizin glycerizine glycerogel glycerogelatin glycerol glycerolate glycerole glycerolize glycerols glycerose glyceroxide glyceryl glycid glycidic glycidol glycinin glycocholate glycocin glycocoll glycogelatin glycogenic glycogenize glycogenolysis glycogenous glycohaemia glycohemia glycolate glycolic glycolide glycolipide glycolipin glycolipine glycols glycoluril glycolyl glycolytic glycolytically glyconin glycoproteid glycosaemia glycose glycosemia glycosides glycosin glycosine glycosuria glycouril glycuresis glycyl glycyphyllin glycyrrhizin glyoxal glyoxalase glyoxalic glyoxaline glyoxim glyoxylic glyph glyphic glyphograph glyphographer glyphographic glyphs glyptic glyptodont glyptodontidae glyptodontoid glyptograph glyptographer glyptographic glyptolith glyptologist glyptology glyptotherium glyster gm gmt gnabble gnaphalioid gnar gnarl gnarled gnash gnashed gnashes gnashing gnashingly gnat gnatflower gnathal gnathalgia gnathic gnathidium gnathion gnathitis gnatho gnathobase gnathobasic gnathobdellae gnathobdellida gnathometer gnathonical gnathonically gnathonism gnathonize gnathoplasty gnathopod gnathopoda gnathopodite gnathostegite gnathostomata gnathostomi gnathostomous gnats gnatsnap gnatter gnatworm gnaw gnawable gnawed gnawing gnawingly gnawn gnaws gneiss gneisses gneissic gneissitic gneissose gnetaceous gnetum gnocchetti gnome gnomed gnomes gnomic gnomical gnomically gnomide gnomist gnomologic gnomologist gnomon gnomonia gnomonical gnomonologically gnomonology gnosiological gnosiology gnosis gnostic gnostical gnostically gnosticism gnosticity gnosticize gnosticizer gnp gnrh gnu go goa goad goaded goading goads goadsman goadster goaf goajiro goal goala goalage goalee goalie goalkeeper goalless goalpost goals goaltend goan goanese goanna goasila goat goatbrush goatbush goatee goateed goatfish goatherd goatherdess goatish goatishly goatishness goatland goatlike goatling goatly goats goatsbeard goatskin goatskins goatstables goatstone goatsucker goback gobang gobber gobbet gobbets gobbing gobble gobbled gobbledegook gobbler gobbles gobbling gobby gobelin gobernadora gobia gobian gobierno gobiesocidae gobiesox gobiid gobiidae gobiiform gobiiformes gobinism gobinist gobioid gobioidea goblet gobleted goblets goblin gobline goblinish goblinism goblins gobonated gobony gobstick goburra goby gobylike goclenian god goddam goddaughter godded goddess goddesses goddesshood goddessship goddikin goddize godet godetia godfather godfatherhood godfathership godforsaken godfrey godful godhead godheads godkin godless godlike godliness godly godmaking godmother godmotherhood godmothers godmothership godown godpapa gods godsake godsend godship godson godsonship godwin godwinian godwit goeduck goelism goemagot goers goes goest goetae goeth goethe goethian goetia goff goffer goffered gofferer goffering goffle gogga goggan goggle goggled goggler goggles goggly gogh gogo gohei goi goiabada goidel goidelic going goings goitcho goiter goitered goitre goitrogen goitrogenic goitrous gokuraku gol gola goladar golandaas gold goldarn goldbeater goldberg goldbird goldbrick goldbricker goldcrest goldcup golden goldeneye goldenfleece goldenhair goldenknop goldenly goldenmouth goldenmouthed goldenrod goldenseal goldenwing goldest goldfield goldfields goldfinch goldfinches goldfinny goldfish goldfishing goldflower goldhammer goldic goldie goldilocks goldin goldish goldless goldman golds goldseed goldseekers goldsmith goldsmithery goldsmithing goldsmiths goldspink goldstein goldstone goldtail goldtit goldwater goldwork goldy golee golem goleta golf golfdom golfer golfers golfing golgi goli goliard goliardery goliardic goliath goliathize golkakra goll golland gollar golliwogg golly golo goloe golpe goma gomari gomarite gomart gomavel gombay gombeen gombeenism gombroon gome gomeisa gomer gomlah gomontia gomphocarpus gomphodont gomphosis gomuti gonad gonadial gonadic gonads gonaduct gonakie gonal gonalgia gonangial gonangium gonapod gonapophysal gonapophysial gonapophysis gond gondang gondite gondola gondolas gondolier gone goneoclinic gonepoiesis goneril gonesome gonfalonier gonfalonierate gonfaloniere gonfaloniership gong gongman gongoresque gongoristic gongs gonia goniac gonial goniale goniatite goniatites goniatitic goniatitid goniatitidae gonidangium gonidia gonidial gonidic gonidiferous gonidioid gonidiophore gonidiospore gonidium gonimic gonimium gonimoblast gonimolobe gonimous goniocraniometry goniodorididae goniodoris goniometer goniometric goniometrically goniometry goniopholidae goniopholis goniostat goniotropous gonitis gonium gonoblast gonoblastic gonoblastidial gonoblastidium gonocalycine gonocheme gonochorism gonochorismal gonochorismus gonochoristic gonococci gonococcic gonococcoid gonocoel gonocyte gonoecium gonolobus gonomere gonomery gonophore gonophoric gonophorous gonoplasm gonopoietic gonorrhea gonorrheic gonostyle gonotokont gonotome gonotype gonozooid gonyalgia gonydial gonyocele gonystylaceae gonystylus gonytheca gonzales gonzalez goo good goodby goodbye goode gooden goodeniaceous goodenoviaceae goodhap goodhearted goodheartedness goodhumoured goodish goodishness goodlier goodliest goodlike goodliness goodlooking goodly goodman goodmanship goodmen goodnatured goodness goodnight goods goodsized goodsome goodturn goodwill goodwillit goodwin goodwives goody goodyish goodyism goodyness goodyship goof goofer goofily goofiness goofy googly googolplex gooier gooiest gook gool goolah goold gools goon goondie goonie goop goopher goophered goosander goose gooseberry goosebill goosebird goosebone gooseboy goosebumps gooseflower goosefoot goosegog gooseherd goosehouse goosemouth gooseneck goosenecked gooserumped goosery goosetongue gooseweed goosewinged goosish goosishness goot goote gopher gopherberry gophers gopherwood gor goracco goran gorb gorbal gorbellied gorble gorblimy gorcock gorcrow gordiacean gordian gordiidae gordius gordolobo gordon gordunite gordyaean gore gored goren gores gorge gorgeable gorged gorgelet gorgeous gorgeously gorgeousness gorgerin gorges gorget gorgeted gorging gorgon gorgonacea gorgonacean gorgonaceous gorgonesque gorgonia gorgoniacean gorgoniaceous gorgonin gorgonize gorgonzola gorgosaurus gorham gorilla gorillas gorillaship gorilloid gorily goring gorkhali gorkiesque gorky gorlin gorlois gormandize gormandizer gormandizers gormed gorra gorraf gorry gorse gorsebird gorsehatch gorsy gorton gortonian gortonite gory goschen goshawk goshen goshenite goslarite goslet gosling gosmore gospel gospelist gospellike gospelly gospelmonger gospels gospelwards gospodar gosport gossamer gossamered gossaniferous gossip gossipdom gossiped gossipee gossiper gossiphood gossipiness gossiping gossipingly gossipping gossipred gossipry gossips gossipy gossy gossypine got gota gotch gote goth gotha gothic gothically gothicism gothicist gothicity gothicizer gothish gothism gothite gothlander gotiglacial gotra gotraja gotta gotten gotter gottlieb gouaree goucher gouda goudy gouged gouger gouges gouging goujon gould goumi goums goup goura gourami gourd gourdful gourdhead gourdlike gourds gourdworm gourdy gourinae gourmand gourmander gourmandism gourmands gourmet gourmetism gourounut goustrous gout goutify goutily goutiness goutish gouts goutte goutweed goutwort gouty gouvernement gove goverment govern governability governably governail governance governante governed governess governessdom governesses governessy governeth governing governingly government governmental governmentalism governmentalist governmentally governments governor governorgeneral governors governorship governours governs gowdnie gowf gowfer gowiddie gowk gown gownd gowned gownless gownlet gowns gownsman gowpen gowt goy goyazite goyetian goyim goyin goyle gozell gpd gra grab grabbed grabbing grabble grabbler grabbling grabbots grabby grabed grabhook grabouche grabs grace graced graceful gracefulest gracefully gracefulness graceless gracelessly gracelessness gracelike graces gracilaria gracilariid gracilariidae gracile gracileness gracilescent gracilis gracility gracing gracioso gracious graciously graciousness graculus grad gradal gradate gradation gradationally gradationately gradations gradative gradatively gradatory graddan grade graded gradely grades gradgrind gradgrindian gradgrindish gradient gradienter gradients gradin gradine grading gradings gradiometer gradiometric gradual gradually gradualness graduand graduate graduated graduates graduateship graduatical graduating graduation graduations graduator gradus grady graeca graecae graecorum graeculus graff graffage graffer graffias graffiti grafship graft graftage grafted grafters grafting graftproof grafts graham grahamite graidelest graidely grail grailing grain grainage grained grainedness grainer grainering grainery grainfield graininess graining grainland grainless grains grainsickness grainsman grainways grainy graith grallatores grallatory grallic grallina gralloch gram grama gramarye grame gramenite gramicidin graminaceae graminaceous gramineae gramineal gramineous gramineousness graminiferous graminin graminivorous graminology graminous grammalogue grammar grammarian grammarianism grammarians grammarless grammars grammatical grammaticism grammatics grammatistical grammatolator grammatologia grammatophyllum gramme grammes grammontine gramoches gramophone gramophones gramophonic gramophonically gramophonist grams gran granada granadilla granadillo granadine granaries granary granch grand grandam grandame grandaunt grandchild grandchildren granddad granddaddy granddames granddaughter granddaughters grande grandee grandeeism grandees grandeeship grander grandes grandesque grandest grandeur grandeurs grandfather grandfatherhood grandfatherish grandfatherless grandfatherly grandfathers grandfer grandiloquence grandiloquent grandiloquous grandiose grandiosely grandioseness grandisonant grandisonian grandisonianism grandly grandma grandmama grandmamma grandmammas grandmammy grandmontine grandmother grandmotherhood grandmotherism grandmotherliness grandmotherly grandmothers grandnephew grandniece grandpa grandpapa grandparentage grandparental grandparents grandpaternal grandperes grands grandsire grandsires grandson grandsons grandsonship grandstand grandstander granduncle grane grange granger grangerism grangerization grangerize grangerizer grangousier graniform granilla granite granites granitic granitiform granitite granitize granitoid granivore granivorous granjeno grank grannie grannom granny grannybush grano granoblastic granola granolite granolithic granomerite granophyric granose grant grantable granted grantee granth grantia grantiidae granting grantor grants granula granular granularly granulary granulated granulater granulating granulation granulations granulative granulator granule granules granulet granuliferous granuliform granulite granulitic granulitis granulitization granulocyte granuloma granulomatous granulometric granulosa granulose granville granza granzita grape graped grapeflower grapefruit grapeless grapelike grapenuts graperoot grapery grapes grapeshot grapestone grapevime grapevimes grapevine graph graphalloy grapheme graphic graphical graphically graphicalness graphicness graphics graphidiaceae graphiola graphiological graphiologist graphiology graphis graphite graphiter graphitic graphitization graphitoidal graphologic graphological graphologist graphologists graphology graphomania graphometer graphometry graphophone graphorrhea graphoscope graphospasm graphostatical graphostatics graphotype grapnel grapple grappled grappler grapples grappling grapsidae grapsoid grapta graptolithida graptolitic graptolitoidea graptoloidea graptomancy grapy gras graslp grasp graspable grasped grasper grasping graspingly graspingness graspless grasps grass grassant grassation grasschat grasscut grasscutter grasse grassed grasses grasset grassflat grasshopper grasshopperdom grasshopperish grasshoppers grasshouse grassiest grassiness grassless grasslike grassman grassquit grassweed grasswidowhood grasswork grassy grat grata grate grated grateful gratefuler gratefully gratefulness grateless gratelul grateman grater grates gratewise grati gratia graticulation gratification gratifications gratified gratifiedly gratifier gratifies gratify gratifying gratility gratillity gratin gratinate grating gratings gratiola gratiolin gratiosolin gratious gratis gratitude gratten grattoir gratuitous gratuitously gratuitousness gratuity gratulant gratulations gratulatorily gratulatory graupel gravamen gravamina grave graveclod gravecloth graveclothes graved gravedigger gravegarth gravel graveled graveless gravelike gravelish gravelled gravelliness gravelly gravels gravelstone gravely gravemaker gravemaking graveman gravemaster graven graveness gravenstein graveolency graver graves graveside gravest gravestead gravestone gravestones graveward graveyard graveyards gravic gravicembalo gravid gravidarum gravidity gravidly gravidness gravies gravigrada gravigrade gravimeter gravimetric gravimetrical gravimetrically graving gravis gravitate gravitated gravitates gravitating gravitation gravitational gravitations gravitative gravity gravy grawls gray grayback graybeard grayed grayer grayfish grayfly grayhead graying grayish grayling grayly graymalkin graymill grayness grays grayson graywacke grayware graywether grayzel grazable graze grazeable grazed grazes grazier graziers grazing grazingly grease greasebush greased greasehorn greaseless greaseproof greaseproofness greaser greases greasier greasiest greasily greasing greasy great greatcoat greatcoated greate greatens greater greatest greathead greatheart greathearted greatheartedness greatly greatmouthed greatness greatnesses greaved greaves grebe grebo grece grecian grecianize grecism grecize grecomaniac grecophil grecque grecs gree greece greed greedily greediness greedy greedygut greedyguts greek greekery greekess greekist greekize greekless greekling greeks green greenage greenback greenbacker greenbackism greenbacks greenbark greenbelt greenberg greenblatt greenbriar greenbrier greencloth greencoat greene greened greener greenery greenest greeney greenfield greenfinch greenfish greengage greengill greengrocer greengrocery greenheart greenhearted greenhew greenhide greenhood greenhorn greenhorns greenhouse greenhouses greening greenish greenishness greenkeeper greenkeeping greenland greenlander greenlandic greenlandite greenlandman greenless greenlet greenling greenly greenness greenockite greenovite greens greensauce greensboro greenshank greensick greensickness greenside greenstick greenstone greenstuff greensward greentail greenth greenuk greenville greenware greenwich greenwing greenwithe greenwood greenwort greeny greenyard greer greet greeted greeter greeting greetingly greetings greets greffiero gregal gregale gregaloid gregarian gregarianism gregarinae gregarine gregarinida gregarinidal gregariniform gregarinina gregarinoidea gregarinosis gregarious gregariously gregariousness grege gregg greggle gregorianist gregorianizer gregory greige greisen gremial grenade grenades grenadian grenadier grenadierial grenadierly grenadiers grenadiership grenadin grenadine grendel grenier gresham gressoria gressorial gressorious gret gretchen gretel gretted grevillea grew grewia grewsome grey greybeard greyer greyheaded greyhound greyhounds greying greyish greyly greyness greys greywackes grid griddle griddler gridiron grids grieced griechische griechischen griechishen grief griefful grieffully griefless grieflessness griefs grieschischen grievance grievances grieve grieved grievers grieves grieveship grieveth grieving grievous grievously grievousness griff griffade griffado griffaun griffe griffin griffinage griffinhood griffinish griffinism griffith griffon grift grifter grig grignet grigri grill grillade grillage grille grilled griller grilling grills grillwork grilse grim grimace grimacer grimaces grimacier grimacing grimaldi grime grimed grimes grimful grimily griminess grimly grimm grimme grimmer grimmest grimmia grimmiaceae grimmiaceous grimmish grimness grimp grimy grin grinagog grinch grind grindable grinder grinderman grindery grindeth grinding grindingly grindle grinds grindstone gringo gringolee gringophobia grinned grinning grinningly grinny grins grip gripe griped gripeful griper gripes gripgrass griphosaurus griping gripingly gripment grippe gripped gripper gripping grippingly grippingness gripple grippleness grippotoxin grips gripy griquaite gris grisaille grisard griseofulvin grisette grisettes griseus grisgris griskin grisliness grisly grison grisounite grissel grissens grist gristbite grister gristhorbia gristle gristly gristmill gristmiller gristmilling griswald grit grith grithbreach grithman gritless gritrock grits gritstone gritted gritten gritter grittily grittiness grittle gritty grives grivet grizel grizzel grizzled grizzly grkztntgzyal groan groaned groanful groaning groaningly groanings groans groat grobianism grocer groceress groceries grocerly grocers grocery groff grog groggery groggily grogginess groggy grogram grogshop groin groined groinery groining groins grolier grolieresque gromatic grommet grona groom groomed groomer grooming groomish groomishly groomlet groomling grooms groomsman groomsmen groose groot grooty groove grooved grooveless groovelike groover grooverhead grooves grooving grope groped groper gropers gropes groping gropingly gropings grorudite gros grosbeak grosbecs grosgrain grosgrained gross grossart grosse grossen grosser grossest grossification grossify grossly grossman grossness grosso grossulaceous grossular grossularia grossulariaceae grossulariaceous grossularite grosz groszy grot grotesque grotesquely grotesqueness grotesquerie grotesques grothite grotian grotianism groton grottesco grotto grottoed grottoes grottos grottowork grouch grouchily grouchingly grouchy grough ground groundable groundably groundberry grounde grounded groundenell grounder groundhog grounding groundless groundlessly groundlessness groundly groundman groundmass groundmasses groundnut groundplan groundplot grounds groundsel groundskeep groundsman groundswell groundward groundwater groundwood groundwork groundy group groupageness grouped grouper grouping groupings groupist grouplet groupment groupoid groups groupwise grouse grouseberry grouseless grouseward grousewards grousy grout grouter grouts grouty grove groved grovel groveled groveler groveless groveling grovelingly grovelled grovelling grovellings grovels groves grovy grow growable growan growed growers groweth growing growingly growl growled growler growlery growling growlingly growlings growls growly grown grownup grows growth growthful growthiness growths growthy grozet grub grubbed grubber grubbery grubbily grubbiness grubbing grubby grubless grubroot grubs grubstaker grubstreet grubworm grubworms grudge grudged grudgekin grudgeless grudgery grudges grudging grudgingly gruel grueler grueling grues gruesome gruesomely gruff gruffily gruffiness gruffish gruffly gruffness gruffs grufted gruidae gruiformes gruis grum grumble grumbled grumbler grumbles grumbletonian grumbling grumblingly grumblings grumbly grumium grumly grummel grummels grummet grummeter grumness grumose grumous grumousness grumph grumphie grumphy grumpily grumpiness grumpish grumpy grundified grundlov grundy grundyism grundyist grunerite gruneritization grunion grunt grunted grunter grunth grunting gruntingly gruntled gruntling grunts grurin grush grushie grusian grusinian gruss grutch grutten gryde grylli gryllid gryllidae gryllos gryllotalpa gryphaea gryphon gryposis grysbok gu guaba guacacoa guachamaca guacharo guacho guacico guacimo guacin guaconize guadagnini guadalcazarite guaharibo guahiban guahivo guaiacol guaiacolize guaiacolsulfonate guaiaconic guaiacum guaiasanol guaka guana guanabana guanabano guanabenz guanaco guanadrel guanajuatite guanase guanay guanche guancia guaneide guanethidine guango guanidine guanidopropionic guanine guanize guano guanosine guanyl guanylic guao guapena guar guaraguao guarana guarani guaranian guaranine guarantee guaranteed guaranteeing guarantees guaranteeship guaranties guarantorship guaranty guarapucu guaraunan guard guardable guarded guardedly guardedness guarder guardhouse guardia guardian guardianess guardianless guardianly guardiano guardians guardianship guarding guardingly guardless guardlike guardo guardrail guardroom guards guardship guardships guardsman guardsmen guardstone guarea guariba guaribile guarinite guarneri guarnerius guarrau guarri guaruan guasa guastalline guatemala guatemaltecan guativere guato guatusan guatuso guauaenok guava guavaberry guayabo guayacan guaycuru guaymie guayroto guayule guaza guazuma gubbertush gubbo gubernaculum gubernative gubernator gubernatrix gud guddee guddle gude gudebrother gudefather gudesake gudge gudgeon gudok gue guebucu guelph guelphish guelphism guemal guenepe guenon guenther guepard guerdon guerdoner guereza guerickian guerilla guerin guerinet guernsey guernseyed guerra guerre guerrilla guerrillaship guesdism guesdist guess guessable guessed guesser guesses guessing guesswork guest guestchamber guested guesten guester guesting guestive guestmaster guests gufa guff guffaw guffawed guffin guffy guggenheim guggle gugglet guglet gugu guha guhayna guhr guiana guianan guianese guib guid guidable guidage guidance guide guideboard guidebook guidebookish guidebooks guided guideless guideline guidelines guidepost guider guideress guidership guides guideship guideway guiding guidman guidon guidonian guige guignardia guilandina guild guilder guilders guildhall guildic guildry guildship guildsman guile guileful guilefully guileless guilelessly guilelessness guilford guillain guillevat guillochee guillot guillotine guillotined guillotinement guillotiner guilt guiltiest guiltily guiltiness guiltless guilty guily guimbard guimpe guincensis guinea guineaman guineas guinevere guipure guise guiser guisers guising guitar guitarfish guitarist guitars guitguit guittonian gujrati gukcziojimas gul gulae gulancha gulanganes gular gulch gulden guldengroschen gule gules gulf gulfasin gulfed gulfport gulfs gulfside gulfwards gulfweed gulinulae gulinular gulix gull gullah gulled gullery gullet gullets gullibility gullible gullibly gullies gulling gullion gullish gullishly gullishness gulls gully gulosity gulp gulped gulpin gulping gulpingly gulpings gulpy gulsach gum gumboil gumby gumdigger gumdigging gumfield gumflower gumihan gumless gumlike gumly gumma gummaker gummatous gummed gummer gumminess gummosis gummosity gummous gummy gumption gumptionless gumptious gums gumshoe gumwood gun guna gunboat gunboats gunbright gunbuilder guncotton gunderson gundi gundy gunfight gunflint gunj gunk gunky gunl gunlock gunmaker gunmakers gunmaking gunman gunmanship gunmen gunmetal gunnage gunne gunnel gunner gunnera gunneraceae gunneress gunners gunnership gunnery gunnies gunning gunnung gunny gunnysack gunong gunpaper gunplay gunpowder gunpowdery gunrack gunreach gunrunner guns gunshop gunshot gunshots gunsling gunsman gunsmith gunsmithery gunstock gunstocker gunstocking gunter gunwale gunyang gunyeh gunzian gup gur guran gurdle gurdwara gurge gurgeons gurgitating gurgitation gurgite gurgle gurgled gurgles gurgling gurglingly gurgly gurgoyle gurgoyles gurgulation gurian guric gurish gurjara gurjun gurk gurmukhi gurnard gurnet gurnetty gurneyite gurrah gurry gurt gus gush gushed gusher gushes gushet gushily gushiness gushing gushingly gushingness gushy gusla gusle guss gusset gussie gust gustable gustative gustativeness gustatores gustatory gustave gustfully gustfulness gustily gustiness gustless gusto gustoish gusts gustus gusty gut guthrie guti gutium gutless gutlike gutling gutnic gutnish guts gutta guttable guttated guttatim guttation guttatus gutte gutted gutter guttera gutterblood guttered guttering gutterling gutterman gutters guttersnipe guttersnipish gutterspout gutterwise gutti guttiferae guttiferal guttiferales guttiferous guttiform guttiness guttle guttler guttula guttulae guttule guttural gutturality gutturalization gutturalize gutturally gutturalness gutturals gutturize gutturonasal gutturopalatal gutturopalatine gutturotetany gutty gutwise guv guvacoline guy guyana guyandot guydom guyed guyer guys guytrash guze guzmania guzzle guzzled guzzledom guzzlers guzzling gwag gweduc gweed gweeon gwen gwine gwyn gwyniad gyarung gyascutus gybe gyle gym gymel gymnadenia gymnanthes gymnarchidae gymnarchus gymnasiarch gymnasic gymnasium gymnast gymnastic gymnastically gymnastics gymnasts gymnics gymnoblastea gymnoblastic gymnocalycium gymnocarpous gymnocidium gymnoderinae gymnodiniaceae gymnodiniaceous gymnodinium gymnodont gymnodontes gymnogenous gymnoglossate gymnogyps gymnolaema gymnolaemata gymnonoti gymnopaedes gymnopaedic gymnophiona gymnorhina gymnorhininae gymnosophy gymnospermae gymnospermal gymnospermous gymnosporangium gymnospore gymnosporous gymnostomata gymnostomina gymnostomous gymnothorax gymnotid gymnotidae gymnotoka gymnotokous gymnotus gymnura gymnure gymnurinae gymnurine gyn gynaeceum gynaecocoenic gynander gynandrarchic gynandria gynandrian gynandroid gynandromorphic gynandromorphous gynandromorphy gynandrosporous gynandrous gynantherous gynarchic gynarchy gynecic gynecidal gynecide gynecocentric gynecocracy gynecocrat gynecocratic gynecolatry gynecologic gynecological gynecologists gynecology gynecomastia gynecomastism gynecomasty gynecomazia gynecomorphous gynecopathy gynecophorous gynecotelic gynerium gynethusia gyniatrics gynics gynobase gynobaseous gynobasic gynocardia gynocardic gynocratic gynodioecious gynodioeciously gynodioecism gynomonecious gynomonoeciously gynomonoecism gynophagite gynophore gynophoric gynosporangium gynospore gynostegia gynostegium gynostemium gynura gyp gype gypper gyppo gyps gypseous gypsies gypsiferous gypsine gypsiologist gypsite gypsography gypsologist gypsology gypsophila gypsophilous gypsous gypster gypsum gypsy gypsyhood gypsyish gypsyism gypsylike gypsyry gypsyweed gypsywort gyracanthus gyrally gyrant gyrated gyrating gyration gyrational gyrations gyre gyrencephala gyrencephalate gyrencephalic gyrencephalous gyrene gyrfalcon gyrinid gyrinidae gyrinus gyro gyroceracone gyroceran gyroceras gyrocompass gyrodactylus gyrograph gyroidal gyroidally gyrolite gyrolith gyroma gyromagnetic gyromancy gyrometer gyromitra gyron gyronny gyrophoraceae gyrophoric gyropigeon gyroplane gyroscope gyroscopic gyrose gyrostabilize gyrostabilizer gyrostachys gyrostat gyrostatic gyrostatically gyrostatics gyrotheca gyrous gyrovagi gyrovagues gyrowheel gyrus gyve h's haab haaf haag hab habab habanera habbe habble habdalah habe habeas haben habena habenal habendum habenula habenular haber haberdash haberdasher haberdashers haberdashery haberdine habergeon haberman habet habilable habilatory habile habiliment habilimentation habilimented habiliments habilitate habilitator hability habiru habit habitability habitable habitableness habitacle habitacule habitan habitance habitancy habitants habitat habitation habitational habitations habite habited habits habitual habitualize habitually habitualness habituate habituated habituates habituation habitude habitudes habitue habitues habitus habnab haboob habronema habu habutai habutaye hac hache hachiman hachure hacia hacienda hack hackamatak hackamore hackbarrow hackbolt hackbush hackbut hacked hackee hacker hackers hackery hackett hackin hacking hackingly hackings hackle hackled hackles hacklog hackly hackmack hackman hackney hackneyed hackneyer hackneyman hacks hackster hackthorn hacktree hacky had hadamard hadassah hadbot haddad hadde hadder haddie hadding haddo haddock haddocker hade hadean hadendoa hadendowa hadentomoid hadentomoidea hades hadith hadj hadjemi hadley hadn hadn't hadna hadno hadrian hadrome hadromerina hadromycosis hadron hadrosaur hadrosaurus hadst hae haec haecceity haeckelism haem haemamoeba haemaphysalis haemathermal haemathermous haematinic haematite haematobranchiate haematocryal haematoma haematopus haematorrhachis haematotherma haematothermal haematoxylic haematoxylin haematoxylon haemochromogen haemoconcentration haemodilution haemodoraceae haemodoraceous haemoglobin haemoglobulin haemogregarina haemonchiasis haemonchosis haemonchus haemony haemophile haemorrhage haemorrhagia haemorrhagic haemorrhoid haemorrhoidal haemorrhoids haemosporid haemosporidia haemosporidian haemosporidium haena haet haf haff haffet haffkinize haffle hafgan hafiz hafnium hafnyl haft hafter hag haganah hagberry hagbush hagdon hageen hagen hagenia haggada haggadist haggadistic haggard haggardness hagged hagger haggis haggish haggishly haggister haggle haggled haggler haggles hagglest haggling haggly haggy hagi hagia hagiarchy hagiocracy hagiographa hagiographal hagiographer hagiographist hagiolatry hagiologist hagiology hagiophobia hagioscopic haglike haglin hagride hagrope hags hagstone hagstrom hagtaper hague hagweed hagworm hah hahm hahnemannism haida haidan haidee haifa haik haiku haikwan hail hailed hailer hailing hailproof hails hailse hailstone hailstones hailstorm hailweed haily hain hainai hainan hainberry haine haines hair hairbeard hairbird hairbrain hairbreadth hairbreadths hairbrush hairbrushes haircloth haircut haircutter haircutting hairdress hairdresser hairdressers haire haired hairen hairhoof hairhound hairif hairiness hairlace hairless hairlessness hairlet hairlets hairlike hairlock hairmeal hairmonger hairpin hairpins hairs hairsplitter hairsplitting hairspring hairstone hairstreak hairtail hairup hairwork hairworm hairy haitians haje hajib hak hakam hakdar hake hakea hakeem hakenkreuz hakenkreuzler hakim haku hal hala halakah halakic halakist halakistic halalcor halawi halazepam halazone halberd halberdman halberds halberdsman halch halcinonide halcyon halcyonian halcyonic halcyonidae halcyoninae halcyons haldanite hale haleakela halebi haled haleness halerz halesome haley half halfback halfbeak halfdetached halfdreams halfer halfheaded halfheartedly halfheartedness halfling halfman halfpence halfpennies halfpenny halftone halfway halfwise haliaeetus halibios halibiotic halibiu halibut halibuter halicarnassean halicarnassian halichondrine halichondroid halicore halide halides halidom halieutically halifax haligonian halimeda halimous halinous haliographer haliotidae haliotoid haliplankton haliplid halisteretic halite halitheriidae halitherium halitus hall hallah hallan hallecret halleflintoid hallelujah hallelujahs hallex halley halleyan halliblash halling hallmark hallmarked hallmoot hallo halloaing halloo hallooed hallooing hallopididae hallopodous hallow hallowed hallowedly hallowedness halloween hallowmas hallows halloysite hallpike halls hallstatt hallucal hallucination hallucinations hallucinative hallucined hallucinosis hallway halmalille halo halobios halocarbon halochromy halocynthiidae haloed haloesque halogen halogenate halogenation halogenoid halogeton halohydrin haloid haloids halolimnic haloperidol halophile halophilism halophilous halophyte halopsychidae halos halosauridae halosaurus haloscope halosphaera halotrichite halpern hals halse halsen halsey halstead halt halted halter halterbreak haltere halteres halters haltica halting haltingly haltingness haltless halts halurgist halurgy halvaner halve halved halvelings halver halves halyard halyards ham hamacratic hamada hamadan hamadryad hamamelidaceae hamamelidaceous hamamelidanthemum hamamelidin hamamelidoxylon hamamelin hamamelis hamartiologist hamartiology hamate hamathite hambroline hamburg hamburger hame hamel hamelia hamesucken hamewith hamfatter hami hamidian hamidieh hamiform hamilton hamiltonianism hamiltonism hamingja hamirostrate hamital hamitic hamiticized hamitism hamitoid hamlah hamlet hamleted hamleteer hamlets hamlin hamlinite hammada hammal hammam hammer hammerbird hammered hammerer hammerhead hammering hammeringly hammerkop hammerlike hammerlock hammerman hammers hammersmith hammerstone hammerwise hammerwork hammochrysos hammock hammocks hammond hammy hamose hamous hamper hampered hamperedness hampering hamperman hampers hampshire hamrongite hams hamsa hamshackle hamstring hamstrings hamular hamulate hamule hamulites hamulose hamulus hamus han hanafi hanaper hanbury hanc hanch hancock hancockite hand handbag handbags handball handbanker handbill handbills handbolt handbook handbooks handbreadth handcart handclap handclasp handcraft handcraftman handcraftsman handcuff handcuffs handed handedness handel hander handersome handfasting handfastly handfastness handflower handful handfuls handgrasp handgravure handgrip handgriping handgrips handgun handhaving handhole handicap handicapped handicapping handicaps handicraft handicrafts handicraftship handicraftsmanship handicraftsmen handicraftswoman handier handily handiness handing handistroke handiwork handkerchief handkerchiefful handkerchiefs handkerchieves handlaid handle handleable handlebar handlebars handled handleless handler handlers handles handless handlike handling handloom handmade handmaid handmaiden handmaidenly handmaidens handmaids handout handpick handpicked handpost handpower handrail handrailing handrails handreader hands handsale handsaw handsbreadth handscrape handsel handselled handseller handset handshake handshaking handshakings handshook handsmooth handsome handsomeish handsomely handsomeness handsomer handsomest handspade handspike handspoke handspring handstaff handstone handstroke handwork handwoven handwrist handwrite handwriting handwritten handy handybook handygrip handyman handymen handystrokes haney hanford hang hangability hangable hangar hangbird hangby hangdog hangdogs hange hanged hangee hanger hangeth hangie hanging hangingly hangings hangman hangmanship hangment hangnail hangnest hangs hangwoman hangworm hangworthy hanif hanifite hanifiya hank hankel hanker hankered hankerer hankering hankeringly hankie hankle hanks hanksite hanky hanley hanlon hanna hannibal hannibalian hannibalic hano hanover hanoverian hanoverianize hanoverize hans hansard hansardize hanse hanseatic hansel hanselled hansen hansgrave hansom hansoms hant hantle hanukkah hanuman hao haoma haori hap hapale hapalidae hapalote hapalotis hapaxanthous hapenny haphazard haphazardly haphtarah hapi hapless haplessly haplessness haplite haplochlamydeous haplography haploidic haploidy haplologic haplology haploma haplomid haplont haploperistomic haploperistomous haplophase haploscope haplosis haply happed happen happened happeneth happening happenings happens happenstance happier happiest happify happiless happily happiness happinesses happing happy haps hapsburg hapten haptene haptere hapteron haptics haptometer haptophorous haptotropically haptotropism hapu hapuku hapy haqueton har harakeke harangue harangued harangueful haranguers harangues haranguing harare hararese harari harass harassable harassed harasses harassing harassingly harassment haratin haraya harb harbergage harbinger harbingers harbingery harbor harborage harbored harborers harboring harborless harbors harborside harborward harbour harboured harbouring harbours harcourt hard hardanger hardball hardboard hardcopy harden hardenable hardenbergia hardened hardener hardening hardens harder harderian hardest hardfaring hardfern hardfist hardfisted hardfistedness hardhack hardhanded hardheaded hardheadedness hardhearted hardheartedness hardie hardier hardiest hardihood hardily hardim hardin hardiness hardish hardly hardmouthed hardness hardpan hardscrabble hardship hardships hardstand hardstanding hardtack hardtail hardtop hardware hardwickia hardwood hardworked hardworking hardy hardystonite hare harebottle harebrain harebrained harebrainedly harebrainedness harefooted harehearted harelike harelip harelipped harem haremlik harems harengiform hares harfang hariolate hariolation hariolize harish hark harka harked harkened harking harl harleian harlem harlemese harlequin harlequinade harlequinery harlequinism harlequinize harley harling harlock harlot harlotings harlotry harlots harm harmachis harmal harmala harmaline harmattan harmed harmel harmful harmine harming harminic harmless harmlessly harmon harmonia harmoniacal harmonial harmonic harmonica harmonical harmonically harmonicalness harmonichord harmonicism harmonicon harmonics harmonies harmonious harmoniously harmoniphone harmonise harmonised harmonises harmonising harmonist harmonistically harmonite harmonium harmonizable harmonization harmonize harmonized harmonizer harmonizes harmonizing harmonogram harmonograph harmony harmotomic harms harn harness harnessed harnesser harnesses harnessing harnessry harold harp harpa harpago harpalinae harpe harperess harpers harpidae harpier harpies harping harpings harpist harpless harplike harpocrates harpoon harpooned harpooner harpooners harpooning harpoons harpress harps harpsichord harpula harpwaytuning harpylike harquebus harquebusade harquebusier harrass harrassed harrd harridans harried harrier harriman harrington harrisia harrison harrow harrowed harrower harrowing harrowingly harrowingness harrowment harrows harry harrying harsh harshen harsher harshest harshish harshly harshness harshnesses harshweed harstigite hart hartal hartberry hartebeest hartin hartite hartland hartleian hartley hartleyan hartman hartogia harts hartshorn hartungen harumscarum haruspex haruspical haruspicate haruspication haruspice haruspices haruspicy harvardian harvardize harveian harvest harvestbug harvested harvester harvesters harvesting harvestry harvests harvesttime harveyize harzburgite has hasan hasenpfeffer hash hashab hashed hasher hashimite hashish hashiya hashmal hashy hasidean hasidic hasidim hasilius haskalah haskness hasky haslet haslock hasmonaean hasn hasn't hasna hasp hasping hassle hassled hassock hassome hast hasta hastately hastati hastatosagittate haste hasted hasteful hastefully hastelessness hasten hastened hastener hastening hastens haster hastes hasteth hastilude hastily hastiness hasting hastings hastingsite hastish hastler hasty hat hatbox hatbrim hatbrush hatch hatchability hatched hatchel hatchers hatchery hatcheryman hatches hatchet hatchetback hatchetfish hatchetlike hatchetman hatchets hatchettolite hatchety hatching hatchling hatchman hatchment hatchminder hatchway hatchwayman hate hateable hated hatedst hateful hatefuler hatefully hatefulness hateless hater haters hates hateth hatful hath hathaway hatherlite hati hating hatless hatlessness hatlike hatmaking hatpins hatrack hatrail hatred hatreds hatress hats hatt hatted hatter hatteras hattery hatti hattie hattiesburg hattism hattize hattock hau hauberget hauberk hauberks hauchecornite haue hauerite haugh haughland haught haughtier haughtiest haughtily haughtiness haughtness haughtonite haughty haul haulabout haulage haulageway haulback hauled hauler haulers hauling haulm hauls haulsers haunch haunched haunches haunchless haunt haunted haunter haunters haunting hauntingly hauntings haunts haunty hauranitic haurient hausa hausdorff hausen hausmannite haussmannize haustellate haustellated haustellum haustement haustorial haustrum haut hautboy hautboyist hauteur hauynophyre havage havana havanese have haveable haveage haveing havel haveless havelock haven haven't havenage havener havenership havenet havenful havenless havens havent havenward haver havercake haverel havergrass havers haversack haversian havier havildar havin having havinga havingness havings haviour havoc havock haw hawaii hawaiian hawaiite hawberk hawcubite hawer hawiya hawk hawkbill hawkbit hawked hawkers hawkery hawkie hawking hawkins hawkish hawklike hawknut hawks hawkweed hawky hawm hawnet hawok haworthia haws hawse hawsehole hawsepiece hawser hawserwise hawthorn hawthorne hawthorned hawthorny hay haya haybird haybote haycap haycart haycock hayden haydn hayey hayfield hayfields hayfork haygrower haying haylift hayloft haymakers haymaking haymow haynes hayrack hayrake hayraker hayrick hayrides hays hayseed hayseeds haystack haystacks haysuck haytime hayward hayweed haywire hayworth hazara hazard hazardable hazarded hazarding hazardize hazardous hazardously hazardousness hazards haze hazed hazel hazeled hazelled hazelly hazels hazelwood hazelwort hazen hazily hazing hazle haznadar hazy hazzan hbp hcg hdl hdv he he'd he'll he/she head headach headache headaches headachy headbander headboard headborough headcap headchair headcheese headdress headdresses headed headender header headfirst headforemost headful headgear headhunt headily heading headings headkerchief headland headlands headless headlessness headlight headlighting headlights headlike headline headlines headlock headlong headlongly headlongs headlongwise headman headmaster headmastership headmen headmistress headmold headmost headnote headpenny headphone headpiece headplate headquarter headquarters headrail headreach headring headroom headrope heads headset headsets headship headsman headsmen headstall headstand headstock headstocks headstone headstones headstreams headstrong headstrongness headtire headwaiter headwall headward headwark headwaters headway headwork headworker headworking heady heah heal healable heald healder healed healer healeth healey healful healing healingly heals healsome healsomeness health healthful healthfully healthfulness healthguard healthier healthiest healthily healthiness healthless healthlessness healthline healths healthsome healthsomely healthsomeness healthy healy heap heaped heapeth heaping heaps heapy hear heard heardest heare heared hearee hearer hearers hearest heareth hearing hearings hearken hearkened hearkener hearkeneth hearkening hearkens hearn hears hearsay hearse hearsecloth hearsed hearselike hearses hearst heart heart/lung heartache heartaches heartaching heartbeat heartbeats heartbird heartblood heartbreak heartbreaker heartbreaking heartbreakingly heartbroken heartbrokenly heartbrokenness heartburn heartburning heartburnings heartdeep hearted heartedly heartedness hearten heartened heartener heartening heartfelt heartful heartfuls heartgrief hearth hearthless hearthman hearthrug hearths hearthstead hearthstone hearthwarming heartiest heartily heartiness hearting heartland heartleaf heartless heartlessly heartlessness heartling heartly heartpea heartquake heartrending heartroot hearts heartscald heartsick heartsickening heartsickness heartsome heartsomely heartsomeness heartsore heartstrings heartthrob heartward heartwater heartwise heartwood hearty heat heatdrop heated heatedly heater heath heathbells heathberry heathbird heathen heathendom heathenesse heathenhood heathenish heathenishly heathenishness heathenising heathenize heathenness heathenry heathens heathenship heather heathered heatheriness heathery heathfolk heathkit heathland heathless heathmen heaths heathwort heathy heating heatless heatlike heatmaker heatmaking heatproof heatronic heats heatsman heatstroke heaume heaumer heautarit heautontimorumenos heautophany heave heaved heaveless heaven heavenese heavenful heavenhood heavenish heavenishly heavenize heavenliest heavenliness heavenly heavens heavenward heavenwardness heavenwards heaves heavier heaviest heavily heaviness heaving heavings heavisome heavity heavy heavyback heavyhanded heavyhandedness heavyhearted heavyset heavyweight hebamic hebdomad hebdomadal hebdomadally hebdomadary hebdomader hebdomarian hebdomary hebegynous hebenon hebeosteotomy hebepetalous hebephrenia hebephrenic hebetative hebete hebetic hebetomy hebetude hebraean hebraic hebraical hebraistically hebraization hebraizer hebrewdom hebrician hebridean hebronite hecate hecatean hecatic hecatine hecatomb hecatombaeon hecatombs hecatontarchy hecatontome hecatophyllous hecause hechtia heck heckerism heckimal heckle heckler heckman hectare hectares hecte hectic hectical hecticness hectocotyliferous hectocotylization hectocotylize hectocotylus hectogram hectographic hectography hectoliter hectometer hector hectoring hectoringly hectorism hectorly hectostere hectowatt hecuba hed heddle heddlemaker heddler hedenbergite hedeoma hedera hederaceously hederated hederic hederiferous hederiform hederigerent hederose hedge hedgeberry hedgeborn hedgebote hedged hedgehog hedgehoggy hedgehop hedgehopping hedgeless hedger hedgerow hedgerows hedges hedgeside hedgeweed hedgewise hedgewood hedging hedgy hedonic hedonist hedonistic hedonistically hedonology hedriophthalmous hedrocele hedrumite hedulin hedychium hedyphane hedysarum hee heed heeded heeder heedest heedeth heedful heedfully heedily heediness heeding heedless heedlessly heedlessness heeds heel heelband heeled heelers heeling heelmaker heelmaking heelpath heelplate heelpost heelprint heels heelstrap heeltap heem heer heerd heerdemen heerdmen heere heered heeze heezy heft hefted hefter heftily heftiness hefty hegelianism hegelianize hegemon hegemonic hegemonical hegemonist hegemonizer hegemony hegendary hegira hegumenos hehe hei heiau heid heidelberg heifer heiferhood heifers heigh heighday height heighten heightened heightener heightening heightenings heightens heights heii heiltsuk heimin heine heing heinie heinous heinousness heinrich heintzite heir heirdom heiress heiresses heiresshood heirless heirloom heirs heirship heirskip heitiki hejazi hejazian hekteus helbeh helcoid helcology helcotic held heldentenor helder helderbergian hele helen helenin helenioid helenium helenus helga heliacal heliacally heliaean heliamphora heliand helianthaceous helianthemum helianthium helianthus heliast heliazophyte helical helically heliced helices helichryse helichrysum heliciform helicina helicine helicinidae helicline helicobacter helicogyrate helicogyre helicoidal helicometry helicon heliconian heliconiinae heliconius helicotrema helicteres helictite helide heling heliocentric heliocentrically heliocentricity heliochromic heliochromoscope heliochromotype helioculture heliodon heliodor helioelectric heliogabalize heliogabalus heliogram heliograph heliographic heliographical heliography heliogravure helioid heliolater heliolatries heliolatrous heliolatry heliolite heliolites heliolitidae heliologist heliometer heliometric heliometrical heliometry heliomicrometer helion heliophilia heliophobe heliophobia heliophobic heliophotography heliophyllite heliophyte heliopora helioporidae heliornithidae helioscope helioscopy heliosis heliostat heliostatic heliotactic heliotaxis heliothermometer heliothis heliotrope heliotroper heliotropiaceae heliotropian heliotropical heliotropically heliotropine heliotropism heliotropium heliotropy heliotype heliotypography heliotypy heliozoan heliozoic helipterum helispheric helispherical helium helix hell helladian helladic hellandite hellbender hellborn hellbox hellbroth hellcat helldog helleboraceous hellebore helleborein helleboric helleborin helleborine helleborus hellen hellene hellenian hellenic hellenique hellenism hellenist hellenistic hellenistically hellenisticism hellenization hellenize hellenized hellenocentric heller helleri hellespont hellfire hellhound hellicat hellion hellish hellishly hellishness hellkite hellness hellroot hells hellship helluo helm helmage helmed helmet helmeted helmetlike helmetmaker helmetmaking helmets helmholtz helmholtzian helminth helminthes helminthiasis helminthism helminthite helminthoid helminthologic helminthology helminthosporium helminthous helms helmsman helmsmanship helmsmen helmut helobious heloderma helodermatoid helodermatous helodes heloe heloma helonias helonin helosis helotage helotism helotize helotry helots help helpable helpe helped helper helpers helpeth helpful helpfuller helpfully helpfulness helping helpingly helpless helplessly helplessness helply helpmate helpmeet helps helsinki helt helve helvella helvellaceous helvellales helvellic helver helvetian helvetic helvetica helvetii helvetischen helvidian helvite hem hemabarometer hemachate hemachrome hemachrosis hemacite hemad hemadrometer hemadynamic hemadynamics hemagglutinate hemagglutination hemagglutinative hemagglutinin hemagogic hemalbumen hemamoeba hemangioma hemangiomatosis hemangiosarcoma hemaphein hemapod hemapodous hemapoiesis hemapophyseal hemapophysial hemapophysis hemarthrosis hemase hemastatics hematachometer hematal hematein hematemesis hematemetic hematencephalon hematherm hemathermous hematid hematimeter hematin hematinometer hematobious hematoblast hematocatharsis hematocele hematochezia hematochyluria hematoclasis hematocolpus hematocrit hematocrystallin hematocyst hematocytoblast hematocytogenesis hematocytometer hematocytotripsis hematocytozoon hematocyturia hematodynamometer hematogenesis hematogenetic hematogenic hematogenous hematoglobulin hematohidrosis hematolin hematolite hematologic hematological hematology hematolysis hematolytic hematometry hematomphalocele hematonephrosis hematopathology hematopexis hematophyte hematoplast hematopoietic hematoporphyrin hematoporphyrinuria hematosepsis hematosis hematospectrophotometer hematospectroscope hematospermatocele hematospermia hematostibiite hematotherapy hematothermal hematothorax hematoxic hematozoan hematozymosis hematozymotic hematuresis hematuria hemautogram hemautograph hemautographic hemautography heme hemellitene hemellitic hemelytral hemelytron hemen hemera hemeralopia hemerobaptist hemerobian hemerobiid hemerobius hemerocallis hemerology hemerythrin hemiablepsia hemiacetal hemiageusia hemiageustia hemialbumin hemialbumose hemiamb hemiamblyopia hemiamyosthenia hemianacusia hemianalgesia hemianesthesia hemianopia hemianopic hemianopsia hemianoptic hemianosmia hemiapraxia hemiascales hemiasci hemiascomycetes hemiataxia hemiataxy hemibasidiales hemibasidii hemibasidiomycetes hemibathybian hemibenthonic hemibranchiate hemic hemicanities hemicarp hemicellulose hemicerebrum hemichorda hemichordate hemichorea hemichromatopsia hemicircle hemicircular hemicrane hemicrania hemicranic hemicrystalline hemicycle hemicyclic hemicylindrical hemidactylous hemidactylus hemidemisemiquaver hemidiaphoresis hemiditone hemidomatic hemidome hemidysergia hemidysesthesia hemidystrophy hemiekton hemielliptic hemigale hemigalus hemiganus hemigastrectomy hemigeusia hemiglossal hemiglossitis hemihdry hemihedral hemihedric hemihedrism hemihedron hemihydrated hemihyperesthesia hemihypertonia hemihypertrophy hemihypesthesia hemihypotonia hemikaryon hemikaryotic hemilaminectomy hemilaryngectomy hemileia hemilethargy hemiligulate hemimelus hemimeridae hemimetabola hemimetabole hemimetabolic hemimetabolism hemimetaboly hemimetamorphous hemimorph hemimorphic hemimorphy hemimyaria hemina hemineurasthenia hemingway hemiolic hemionus hemiopia hemiopic hemiorthotype hemiparalysis hemiparaplegia hemiparasitism hemiparesthesia hemiparetic hemiphrase hemipic hemipinic hemipinnate hemiplane hemiplankton hemiplegia hemiplegic hemipodius hemiprismatic hemiprotein hemipter hemiptera hemipteral hemipteran hemipteroid hemipterology hemipteron hemipterous hemipyramid hemiramphinae hemiramphine hemisaprophyte hemispasm hemisphere hemisphered hemispheres hemispherical hemispherically hemispheroid hemispheroidal hemistich hemisymmetrical hemisymmetry hemisystole hemiterata hemiteratic hemiteratics hemiteria hemiterpene hemitery hemithyroidectomy hemitone hemitremor hemitrichous hemitropal hemitropism hemitropous hemitropy hemitype hemitypic heml hemline hemlock hemlocks hemmed hemmer hemming hemoalkalimeter hemoblast hemochromatosis hemochromometer hemochromometry hemoclasia hemocoelic hemocoelom hemoconcentration hemoconiosis hemocry hemocyanin hemocyte hemocytoblast hemocytometer hemocytotripsis hemocytozoon hemodiagnosis hemodilution hemodrometer hemodrometry hemodromograph hemodromometer hemodynameter hemodynamic hemodynamics hemodystrophy hemoerythrin hemoflagellate hemogastric hemogenesis hemogenetic hemogenic hemogenous hemoglobiniferous hemoglobinometer hemoglobinopathies hemoglobinuria hemogram hemogregarine hemokoniosis hemol hemologist hemology hemolymph hemolymphatic hemolytic hemolyze hemomanometer hemometer hemonephrosis hemopathy hemophage hemophagia hemophagocyte hemophagocytosis hemophagy hemophile hemophiliac hemophiliacs hemophilias hemophilic hemophilus hemophthalmia hemophthisis hemopiezometer hemoplasmodium hemoplastic hemopneumothorax hemopoiesis hemopoietic hemoptoe hemoptysis hemopyrrole hemorrhage hemorrhages hemorrhagic hemorrhaging hemorrhea hemorrhoid hemorrhoids hemosalpinx hemoscopy hemosiderin hemosiderosis hemospasia hemospastic hemosporid hemosporidian hemostasia hemostat hemostatic hemotachometer hemotherapy hemotoxic hemotrophe hemotropic hemozoon hemp hempbush hempen hemplike hempseed hempstead hempstring hempwort hempy hems hemstitch hemstitched hen henbill hence henceforth henceforward henceforwards henchboy henchman henchmen hencoop hend hendecacolic hendecagon hendecahedron hendecane hendecasemic hendecasyllable hendecoic henderson hendiadys hendle hendly hendrick hendricks hendrickson hends henequen henfish henhearted henism henley henlike henmoldy henna hennebique hennin hennish henny henogeny henotheism henotheist henotheistic henpeck henrician henrietta henrik henry hens hensen hension hent hentenian hentriacontane henware henyard heortological heortologion heortology hep hepar heparin hepatatrophia hepatauxe hepatectomy hepatic hepaticae hepatical hepaticoduodenostomy hepaticogastrostomy hepaticologist hepaticopulmonary hepaticostomy hepaticotomy hepatis hepatite hepatitis hepatize hepatocele hepatocellular hepatocystic hepatoduodenostomy hepatodynia hepatodysentery hepatoenteric hepatogastric hepatogenic hepatogenous hepatoid hepatolenticular hepatolith hepatolithic hepatologist hepatolysis hepatolytic hepatomalacia hepatomegalia hepatomegaly hepatomelanosis hepatoperitonitis hepatopexy hepatophlebotomy hepatoportal hepatoptosia hepatoptosis hepatopulmonary hepatorenal hepatorrhagia hepatorrhaphy hepatorrhea hepatorrhexis hepatorrhoea hepatoscopy hepatostomy hepatotherapy hepatotoxemia hepatoumbilical hepburn hepcat hephaesteum hephaestian hephaestus hephthemimeral hepper heppin heptacapsular heptace heptacolic heptad heptadecyl heptaglot heptagon heptagonal heptagynous heptahedral heptahedrical heptahedron heptahexahedral heptahydrated heptahydric heptal heptameron heptamerous heptameter heptametrical heptangular heptanoic heptapetalous heptaphyllous heptaploid heptaploidy heptapodic heptarchal heptarchic heptarchical heptarchist heptarchy heptasemic heptaspermous heptastich heptastyle heptateuch heptatomic heptatrema heptavalent heptene hepteris heptine heptitol heptoic heptose heptoxide heptyl heptylene heptylic heptyne her hera heraclean heracleidan heracleonite heracleopolitan heracleum heraclid heraclidae heraclidan heracliteanism heraclitic heraclitical heraclitism heraclitus herald heralded heraldess heraldic heraldical heralding heraldist heraldry heralds herb herba herbaceous herbage herbager herbagious herbal herbalist herbalists herbalize herbane herbaria herbarial herbarian herbarism herbarist herbariums herbarize herbartianism herbicidal herbicide herbiferous herbist herbivora herbivore herbivority herbivorous herbless herblet herblike herbman herborist herborization herborizer herbosity herbs herbwife herbwoman herby hercogamous hercogamy herculanean herculanensian herculanian herculean hercules herculid herd herdboy herded herder herderite herdic herding herds herdship herdsman herdsmen herdswoman here hereabout hereabouts hereadays hereafter hereafterward hereamong hereaway hereaways hereby heredipetous hereditament hereditarianism hereditarily hereditariness hereditarist hereditary hereditation hereditative hereditism hereditist hereditivity heredity heredofamilial heredolues heredoluetic heredosyphilis heredosyphilitic heredosyphilogy herefrom herein hereinafter hereinbefore hereinto herem hereniging hereof hereon heresiarch heresies heresimach heresiologer heresiologist heresiology heresy heretic heretical heretically hereticalness heretication hereticide heretics hereto heretoch heretofore heretoforetime heretoga hereunder hereunto hereupon herewith herewithal herile heriot heriotable herisson heritability heritable heritage heritiera heritor heritress heritrix herkimer herling herm herma hermaean herman hermann hermaphrodite hermaphroditic hermaphroditical hermaphroditish hermaphroditism hermeneut hermeneutic hermesian hermesianism hermetic hermetical hermetically hermetics hermetism hermetist hermidin hermione hermit hermitage hermitages hermite hermitian hermitic hermitically hermitish hermitism hermitize hermitry hermits hermogenian hermoglyphic hermokopid hermosa hern hernandez hernandiaceae hernanesell hernani hernant hernia hernial herniaria herniarin herniary hernias herniated hernioenterotomy hernioid herniology herniopuncture herniorrhaphy herniotome herniotomy hero heroarchy herodianic herodii herodiones herodionine heroes heroess herohead herohood heroic heroical heroically heroicalness heroicity heroick heroicly heroicness heroicomical heroics heroid heroides heroify heroine heroines heroineship heroinize heroism heroisms heroistic heroize heromonger heron heroner heronite heronry herons heroologist heroology herophilist herotheism herpestes herpestinae herpestine herpetic herpetism herpetography herpetologic herpetologically herpetologist herpetology herpetomonas herpetophobia herpetotomist herpetotomy herpotrichia herr herrengrundite herrenvolk herring herringbone herringer herrnhuter hers herse herseff herself hershey hersir hertz hertzian hertzog heruli herulian hervati herzegovinian herzlichen herzog hes heself hesione hesionidae hesitancies hesitancy hesitant hesitantly hesitate hesitated hesitates hesitating hesitatingly hesitation hesitations hesitatively hesper hespera hesperian hesperic hesperidate hesperidene hesperides hesperidian hesperidin hesperidium hesperiid hesperiidae hesperinon hesperis hesperornis hesperornithiformes hesperornithoid hesperus hess hesse hessian hessite hestern hesther hests hesychasm hesychast het hetaera hetaeric hetaerist hetaeristic hetaerocracy hetaerolite hetaery hetairiae heteradenic heterakid heterakis heteralocha heterandrous heteratomic heterauxesis heterically heterism heterize hetero heteroagglutinin heteroalbumose heteroauxin heteroblastic heteroblastically heteroblasty heterocarpism heterocarpus heterocaseose heterocellular heterocentric heterocephalous heterocerc heterocercal heterocercality heterochiral heterochlamydeous heterochloridales heterochromatism heterochromatization heterochromatized heterochromia heterochromic heterochromous heterochromy heterochronic heterochronism heterochronistic heterochronous heterochrony heterochthon heterochthonous heteroclinous heteroclital heteroclite heterocoela heterocoelous heterocotylea heterocyclic heterocyst heterocystous heterocysts heterodactyl heterodactylae heterodactylous heterodera heterodonta heterodontidae heterodontism heterodontoid heterodontus heterodox heterodoxal heterodoxes heterodoxical heterodoxly heterodoxy heterodromous heterodromy heterodyne heteroecious heteroeciousness heteroepic heteroepy heteroerotic heteroerotism heterofermentative heterofertilization heterogalactic heterogamete heterogametic heterogamety heterogamous heterogamy heterogeneal heterogenean heterogeneity heterogeneous heterogeneously heterogeneousness heterogenetic heterogenicity heterogenist heterogenous heterognath heterogone heterogonism heterogonous heterogonously heterogony heterograft heterographic heterographical heterogyna heteroicous heteroimmune heteroinfection heteroinoculable heteroinoculation heterointoxication heterokaryon heterokaryosis heterokinesis heterokinetic heterokontae heterokontan heterolalia heterolateral heterolecithal heterolobous heterologic heterologous heterolysin heterolytic heteromallous heteromastigate heteromastigote heteromeral heteromeran heteromeri heteromeric heteromerous heterometabola heterometabole heterometabolic heterometabolism heterometabolous heteromi heteromorpha heteromorphic heteromorphite heteromorphosis heteromorphous heteromorphy heteromya heteromyaria heteromyarian heteromys heteronereis heteronomous heteronomously heteronomy heteronym heteronymic heteronymous heteronymously heteronymy heteroousian heteroousious heteropathic heteropathy heteropelmous heteropetalous heterophaga heterophagi heterophagous heterophasia heterophemism heterophemist heterophemistic heterophil heterophile heterophoria heterophylesis heterophyllous heterophylly heterophyly heterophyte heteropia heteropidae heteroplasia heteroplastic heteroploid heteropod heteropodal heteropolar heteropolarity heteropoly heteroproteide heteroproteose heteroptera heteropterous heteropycnosis heterorhachis heterosexuality heterosexuals heterosiphonales heterosomati heterosomi heterosomous heterosporeae heterosporic heterosporous heterospory heterostracan heterostraci heterostrophic heterostrophous heterostructure heterostylism heterostyly heterosyllabic heterotactic heterotactous heterotaxia heterotaxis heterotaxy heterotelic heterothallic heterothallism heterothermal heterothermic heterotopia heterotopous heterotransplant heterotransplantation heterotrich heterotrichales heterotrichosis heterotrichous heterotropal heterotroph heterotrophy heterotype heterotypic heteroxenous heterozygosis heterozygosity heterozygote heterozygotic heterozygous heth hether hetmanate hetmanship hetter hetterly hettie hetty heublein heuchera heugh heumite heuretic heureuse heureux heuristically heusen heut heutigen hev hevea hevi hew hewed hewel hewer hewers hewett hewettite hewhall hewing hewitt hewlett hewn hews hewt hex hexabasic hexabiblos hexabiose hexabromide hexacanthous hexacapsular hexace hexachloride hexachlorocyclohexane hexachloroethane hexachord hexachronous hexacolic hexacorallan hexacorallia hexact hexactinal hexactine hexacyclic hexad hexadactyly hexadecahedroid hexadecanoic hexadecene hexadecimal hexadecyl hexadic hexadiene hexadiyne hexadrate hexadrol hexafluoride hexafoil hexaglot hexagon hexagonal hexagonally hexagonial hexagonical hexagonous hexagrammidae hexagynia hexagynian hexahedral hexahedron hexahydrate hexahydric hexahydride hexahydrite hexahydrobenzene hexahydroxy hexakisoctahedron hexakistetrahedron hexameric hexamerism hexameron hexamerous hexameter hexameters hexamethylenamine hexamethylene hexamethylenetetramine hexametrist hexametrographer hexamita hexamitiasis hexammine hexanaphthene hexanchidae hexandric hexandrous hexandry hexanedione hexangular hexapartite hexaped hexapetalous hexapla hexaplar hexaplarian hexaplaric hexaploid hexaploidy hexapod hexapoda hexarch hexarchy hexasemic hexastemonous hexaster hexastich hexastichic hexastichon hexastichous hexastichy hexastigm hexastylar hexastyle hexastylos hexatetrahedron hexateuch hexateuchal hexathlon hexatriacontane hexatriose hexecontane hexenbesen hexene hexer hexerei hexeris hexestrol hexicological hexine hexiological hexis hexitol hexitols hexoctahedron hexode hexogen hexoic hexone hexonic hexosaminic hexosan hexose hexosediphosphoric hexosephosphatase hexosephosphoric hexoylene hexpartite hexyl hexylene hexylic hexyne hey heyday hezronites hfe hfz hg hgh hhf hhs hi hia hiant hiatal hiate hiation hiatt hiatus hiawatha hib hibachi hibbertia hibbin hiber hibernacle hibernacular hibernal hibernate hibernating hibernation hibernator hibernia hibernian hibernianism hibernic hibernicize hibernization hibiscus hibito hibitos hic hicatee hiccough hiccoughing hiccoughs hiccuped hiccupped hich hick hickman hickories hickory hicks hickwall hicoria hid hidable hidage hidalgism hidalgo hidalgoism hidalgos hidated hidatsa hidden hiddenly hiddenmost hiddenness hide hideaway hidebind hided hideling hideous hideously hideousness hideout hider hides hidest hideth hiding hidling hidlings hidradenitis hidromancy hidrotic hidun hie hied hieder hielaman hield hielmite hiemal hiemation hier hierapicra hierarch hierarchic hierarchical hierarchies hierarchism hierarchist hierarchize hierarchy hieratical hieratically hieraticism hieratite hierochloe hierocracy hierocratic hierodule hierodulic hierofalco hierogamy hieroglyph hieroglypher hieroglyphes hieroglyphic hieroglyphics hieroglyphs hierogram hierogrammat hierogrammate hierogrammateus hierogrammatic hierogrammatical hierogrammatist hierograph hierographic hierographical hierography hierolatry hierologic hierological hieromachy hieromancy hieromnemon hieromnemones hieromonach hieron hieronymic hierophancy hierophant hierophantes hierophantically hieroscopy hierosolymitan hierosolymite hierurgical hierurgy hies hifalutin higdon higeous higgaion higgle higglehaggle higglery higgling high highbacked highball highbawn highbinder highborn highboy highbred highbrows higher highermost highesl highest highfalutin highfaluting highfalutinism highfliers highflying highhanded highhandedly highhearted highheartedly highheartedness highish highjacker highland highlander highlandman highlandry highlands highlighting highlights highly highness highroad hight hightail hightoby hightop highwater highway highwayman highwaymen highways higuero hijack hijeous hike hiker hilaria hilarious hilariously hilariousness hilarity hilarymas hilarytide hilasmic hilbert hilda hildebrand hildebrandian hildebrandine hildebrandism hildebrandslied hildegard hildegarde hilding hiliferous hill hillberry hillebrandite hillel hillet hillhousia hillman hillmen hillock hillocked hillocks hillocky hills hillsale hillsalesman hillside hillsides hillsman hilltop hilltops hilltrot hillward hilly hilsa hilt hiltless hilton hilts hilum hilus him him/her himalaya himantopus himp hims himseemed himself himsell himyaric himyarite himyaritic hin hinau hind hindbrain hindcast hinddeck hinder hinderance hindered hindereth hinderful hinderfully hindering hinderingly hinderlings hinderlins hinderly hinderment hindermost hinders hindersome hindhand hindi hindmost hindquarter hindquarters hindrance hindrances hinds hindsaddle hindu hinduize hindustani hindward hing hinge hinged hingeflower hingeless hinger hinges hingeways hinging hingle hinman hinnites hinny hinoid hinoideous hinsdalite hint hinted hintedly hinterland hinting hintingly hintproof hints hiodon hiodont hiodontidae hiortdahlite hip hipbone hipe hiphalt hipless hipmold hippa hipparch hipparion hippeastrum hipped hippelates hippen hippia hippiater hippiatrical hippiatrics hippiatrist hippiatry hippidae hippidion hippidium hipping hippish hipple hippo hippobosca hippocampal hippocampi hippocampus hippocastanaceous hippocentaur hippocentauric hippocerf hippocoprosterol hippocrateaceae hippocrateaceous hippocrates hippocratian hippocratic hippocratical hippocrepiform hippodamia hippodamous hippodrome hippodromic hippodromist hippogastronomy hippoglossus hippogriff hippogriffin hippoid hippolite hippolyte hippolytidae hippolytus hippomancy hippomedon hippomelanin hippomenes hippometric hippometry hipponactean hipponosological hippopathological hippopathology hippophagi hippophagistical hippophagous hippophagy hippophile hippophobia hippopod hippopotami hippopotamian hippopotamic hippopotamoid hippopotamus hippos hipposelinum hippotigrine hippotigris hippotomical hippotomist hippotomy hippotragus hippurate hippuric hippuridaceae hippuris hippurites hippuritoid hippy hips hipshot hipster hirable hiragana hiramite hircarra hircine hircinous hircocerf hircocervus hircosity hire hired hireless hireling hirelings hiren hirer hirers hires hiring hirings hirmos hirneola hirondelle hiroshi hirple hirrient hirsch hirschsprung hirse hirsel hirsle hirsute hirsuteness hirsuties hirsutism hirsutulous hirudin hirudine hirudinean hirudinidae hirudinize hirudinoid hirundine hirundinidae hirundo his his/her hisingerite hisn hispania hispanicism hispanicize hispanics hispanidad hispaniolize hispanist hispanize hispanophile hispanophobe hispid hispidity hispidulate hiss hissed hisself hisses hissh hissing hissingly hissings hissproof histamine histidin histidine histie histiocyte histiocytes histiocytic histiology histiophoridae histiophorus histoblast histochemical histoclastic histocyte histodiagnosis histodialysis histogen histogenesis histogenetic histogenetically histogenic histogenous histogeny histographer histographic histographical histoid histoire histologic histological histologist histology histolysis histolytic histolytica histometabasis histomorphological histonal histone histones histonomy histopathologist histophysiology histoplasmin historia historiae historial historiale historiam historian historians historiated historic historical historically historicalness historicas historician historicism historicity historicocritical historicocultural historicophilosophica historicophysical historicoprophetic historicos historics historicus historied historiens histories historiette historify historiograph historiographer historiographical historiometric historiometry historious historique historiques historisch historische historism history histotherapist histotome histotomy histotrophic histotrophy histotropic histozoic histozyme histrion histrionic histrionical histrionically hit hitachi hitch hitchcock hitched hitches hitchhiker hitchily hitchiness hitching hitchproof hitchy hithe hither hithering hithermost hitherto hitherward hitler hitlerite hitless hits hittable hitter hitting hittitics hittology hiv hive hived hiveless hiver hives hiveward hivite hlidhskjalf hlithskjalf hlorrithi hnd hnve ho hoagie hoagland hoar hoard hoarded hoarding hoardings hoards hoardward hoarfrost hoarhead hoarheaded hoarily hoariness hoarish hoarness hoarse hoarsely hoarsen hoarseness hoarser hoarstone hoarwort hoary hoaryheaded hoast hoastman hoatzin hoax hoaxee hoaxer hoaxing hoaxproof hob hobber hobbes hobbesian hobbies hobbil hobbism hobbist hobbistical hobble hobblebush hobbled hobbledehoy hobbledehoydom hobbledehoyhood hobbledehoyish hobbledehoyism hobbledygee hobbler hobbles hobbling hobblingly hobbly hobbs hobby hobbyhorse hobbyhorsically hobbyless hobgoblins hoblike hobnail hobnailed hobnailer hobnails hobnob hobnobbed hobnobber hobnobbing hobo hoboes hoboing hobomoco hobs hobthrush hoc hocco hochdeutschen hochelaga hochheimer hochsten hock hockday hockelty hocker hocket hockey hocktide hocky hocus hod hodden hodder hodds hoddy hodening hodge hodgepodge hodges hodgkin hodgkins hodgkinsonite hodiernal hodman hodmandod hodograph hodometer hodometrical hoe hoed hoedown hoeful hoeing hoeings hoernesite hoes hoff hoffman hoffmannist hoffmannite hog hogarthian hogbush hogfish hogframe hogged hogger hoggerel hoggery hogget hoggie hoggishly hoggishness hoggism hogherd hoglike hogling hogmace hognose hognut hogpen hogreeve hogs hogshead hogsheads hogship hogskin hogsty hogward hogwash hogweed hogwort hogyard hohe hohenzollern hohenzollernism hohere hoick hoin hoise hoist hoistaway hoisted hoister hoisting hoists hoistway hok hokan hokey hokum hola holarctic holard holarthritis holaspidean holcomb holconoti hold holdable holdall holdback holden holdenite holder holders holdest holdeth holdfast holding holdings holdout holds holdup holdups hole holeable holectypoid holed holeless holeman holeproof holer holes holethnos holewort holey holia holiday holidaymaker holidaymaking holidays holier holiest holily holiness holinight holism holistic holl holla hollaite holland hollandaise hollander hollandish hollandite hollantide holle holled holler hollered hollering hollies hollin holliper hollister hollo hollong hollow hollowed hollowhearted hollowheartedness hollowing hollowness hollows holluschick holluschickie holly hollyhock hollyhocks hollywood hollywooder holm holmberry holmdel holmgang holmic holmium holms holobaptist holoblastically holobranch holocaine holocarpic holocarpous holocaust holocaustal holocausts holocene holocentrid holocentridae holocentroid holocentrus holocephali holocephalian holocephalous holochoanites holochoanoid holochoanoida holochordate holocrine holocryptic holocrystalline holodactylic holodedron hologamous hologamy hologastrula hologastrular holognatha holograph holographic holography holohedral holohedric holohedrism holohemihedral holohyaline holomastigote holometabola holometabolian holometabolism holometabolous holometaboly holometer holomorph holomorphic holomorphosis holomorphy holomyaria holomyarii holoparasite holoparasitic holophane holophotal holophote holophotometer holophrase holophrasm holophrastic holophyte holoplexia holopneustic holoptic holoptychian holoptychiid holoptychiidae holoptychius holoquinoid holoquinoidal holoquinonic holoquinonoid holorhinal holosaprophyte holosaprophytic holosericeous holoside holosiphona holosomata holospondaic holostean holosteous holosteric holosteum holostomata holostomatous holosymmetric holosymmetrical holosymmetry holosystematic holosystolic holothecal holothoracic holothuria holothurian holothuridea holothurioid holotonia holotony holotrich holotricha holotrichal holotrichida holotrichous holour holpen holstein holster holstered holsters holt holus holy holyday holyokeite holystone holzerni hom homage homages homalocenchrus homalographic homaloid homaloidal homalophylla homalopsinae homaloptera homalopterous homalosternal homam homarine homaroid homarus homaxial homaxonial hombre home homebred homebuild homebuilder homecome homecomer homecoming homecraft homecroft homecrofter homed homegoer homegrown homekeeper homekeeping homelander homeless homelessly homelessness homelet homelier homeliest homelike homelikeness homelily homeliness homely homelyn homemade homemake homemaker homeoblastic homeochromatic homeochromatism homeochronous homeocrystalline homeogenous homeokinesis homeokinetic homeomerous homeomorph homeomorphic homeomorphism homeomorphy homeopath homeopathic homeopathicity homeopathist homeopathy homeophony homeoplasy homeopolar homeostatic homeotype homeotypical homeown homeowner homeozoic homerical homerically homerid homeridae homeridian homerist homerologist homeromastix homeroom homes homeseeker homesick homesickness homesite homesome homespun homestall homestead homesteader homesteaders homesteads homestretch homeward homewardly homewards homework homeworker homewort homicidal homicidally homicide homicidie homicidious homiculture homier homiest homiletic homiletical homiletics homiliarium homilies homilist homilite homilize homily hominal homine homines homing hominian hominid hominidae hominiform hominine hominis hominisection hominivorous hominoid hominum hominy homishness hommage homme hommes homo homoanisic homoarecoline homobaric homoblastic homoblasty homocentric homocentrical homocentrically homocerc homocercality homocercy homocerebrin homochiral homochlamydeous homochrome homochromic homochromosome homochromous homocoela homocoelous homocreosol homocyclic homodermic homodont homodontism homodox homodromal homodrome homodromous homodynamic homodynamy homodyne homoeanism homoecious homoeoarchy homoeochronous homoeocrystalline homoeogenic homoeomerae homoeomeria homoeomerian homoeomerianism homoeomeric homoeomorphism homoeomorphous homoeomorphy homoeopath homoeopathic homoeopathically homoeopathicity homoeopathist homoeopathy homoeophony homoeoplasia homoeoplasy homoeopolar homoeosis homoeotel homoeoteleutic homoeotic homoeotype homoeotypic homoeozoic homoerotic homoerotism homofermentative homogamic homogamous homogangliate homogen homogenate homogene homogeneal homogenealness homogeneity homogeneization homogeneize homogeneous homogeneously homogenesis homogenetic homogenetical homogenic homogenize homogenizer homogenous homogeny homoglot homogonous homogonously homograft homographic homography homohedral homoiotherm homoiothermal homoiousia homoiousian homoiousious homolateral homolecithal homolog homologate homologation homological homologically homologist homologize homologizer homologon homologoumena homologous homologue homologues homology homolosine homolysin homolysis homomallous homomeral homometrically homomorpha homomorphic homomorphosis homomorphous homomorphy homoneura homonomous homonomy homonuclear homonym homonymic homonymous homonymy homoousia homoousian homoousianism homoousianist homoousion homoousious homopathy homopetalous homophobia homophone homophyllous homophyly homopiperonyl homoplasis homoplasmic homoplastic homopolarity homopter homoptera homopteron homorganic homosexualism homosexualist homosexuality homosexuals homosporous homosteus homostyled homostylic homostylism homostylous homostyly homosystemic homotactic homotaxeous homotaxia homotaxial homotaxially homotaxic homotaxis homotaxy homothallism homothetic homothety homotonous homotonously homotony homotopic homotopy homotransplant homotransplantation homotropal homotypal homotypic homotypical homovanillic homovanillin homozygosity homozygous homrai homuncio homuncle homuncular homunculus homy hondo honduran honduras hondurean hondurian hone hones honest honester honestly honestness honestone honesty honey honeybee honeybind honeyblob honeybloom honeycomb honeycombed honeycombs honeydew honeydrop honeyed honeyedly honeyfall honeyful honeyless honeylike honeylipped honeymoon honeymooner honeymoonlight honeymoonshine honeymoonstruck honeymoony honeymouthed honeypod honeystone honeysuck honeysucker honeysuckle honeysuckled honeysuckles honeysweet honeywell honeywood honeywort honied honk honked honking honolulu honor honora honorabel honorable honorableness honorableship honorably honoraria honorarily honorarium honorary honored honoree honorer honoribus honorific honorifically honoring honorous honors honorsman honour honourable honourably honoured honoureth honouring honours honshu honte hontish hoo hooch hoochinoo hood hoodcap hooded hoodedness hoodful hoodie hooding hoodlike hoodlum hoodlumish hoodlumize hoodman hoodmold hoodoo hoods hoodsheaf hoodwink hoodwinkable hoodwinked hoodwinker hoodwinking hooey hoof hoofbeat hoofbound hoofed hoofiness hoofless hooflet hoofprint hoofrot hoofs hoofy hook hookah hooked hookedness hookedwise hooker hookera hookerman hookers hookheal hooking hookish hookless hooklet hooklike hookmaking hookman hooks hooksmith hooktip hookum hookup hookweed hookwise hookworm hookwormer hookwormy hooky hooligan hooliganism hooliganize hooly hoon hoonoomaun hoop hooped hooping hoopla hoople hoopless hoopman hoopoe hoops hoopskirt hoopstick hoopwood hooray hoorer hooroaring hoose hoosegow hoosh hoosier hoosierese hoot hootay hooted hootenanny hooter hooters hooting hootings hoove hooven hoover hooverism hooverize hooves hoovey hop hopatcong hopbush hopcrease hope hoped hopeful hopefully hopefulness hopeite hopeless hopelessly hopelessness hoper hopes hopest hopfrog hopfull hopi hoping hopingly hopital hopkinsian hopkinsonian hoplite hoplitodromos hoplocephalus hoplomachic hoplomachist hoplomachos hoplomachy hoplonemertea hoplonemertean hoplonemertine hopoff hopped hopper hopperburn hopperdozer hopperette hopperings hopperman hoppers hoppestere hoppet hopping hoppingly hoppity hopple hops hopscotcher hoptoad hopyard hora horace horal horary horatian horatio horatius horbachite hordarian hordary horde hordeaceous hordein hordes horehound horismology horizon horizonal horizonless horizons horizontal horizontality horizontalization horizontalize horizontally horizontalness horizontic horizontical horizontically hormigo hormogon hormogonales hormogoneae hormogoneales hormogonia hormogonium hormonal hormone hormonic hormonize hormonogenesis hormonology hormonopoiesis horn hornbeam hornbill hornblende hornblendic hornblendite hornblendophyre hornblower hornbook hornbug horned hornedness horner hornerah horners hornet hornets hornety hornfels hornful horngeld horniness horning hornish hornist hornito hornless hornlet hornmouth hornpipe hornpiping hornplant horns hornstay hornstone hornswaggled horntail horntip hornwood hornwork hornworm horny hornyhanded hornyhead horographer horography horokaka horologer horologic horological horologically horologist horologium horologue horometry horonite horopito horopter horopteric horoptery horoscopal horoscope horoscoper horoscopic horoscopist horoscopy horouta horrendous horrendously horreum horrible horribleness horribly horrid horridest horridity horridly horrific horrifically horrification horrified horrifies horrify horrifying horrifyingly horripilation horrisonant horrizontal horror horrorful horrorish horrorize horrormongering horrorous horrors horrorsome hors horse horseback horseboy horsecar horsecloth horsecraft horsed horsedealer horsefair horsefettler horsefight horsefish horseflesh horsefly horsehair horsehide horsehood horsehoofs horsejockey horsekeeper horselaugher horseless horselike horseload horseman horsemanship horsemen horsemonger horseplayful horsepond horseposts horsepox horser horses horseshoe horseshoer horseshoes horsethief horsetown horsetree horseway horseweed horsewhip horsewhipper horsewomanship horsewood horsey horsfordite horsing horst horsy horsyism hortation hortative hortatively hortator hortatorily hortatory hortense hortensia hortensial hortensian horticultmal horticultural horticulture horticulturist hortite horton hortonolite hortulan hortus horum horus horvatian hosanna hosannahing hose hosed hosel hoseman hosen hosier hosiery hosing hosiomartyr hospice hospitable hospitably hospitage hospital hospitalary hospitale hospitaler hospitalier hospitalities hospitality hospitalize hospitals hospitant hospitate hospitation hospitator hospitious hospitium hospitize hospodar hoss hosses host hostage hostager hostages hostageship hostel hostelry hoster hostess hostesses hostile hostileness hostilities hostility hostilize hosting hostler hostlership hostless hostry hosts hostship hot hotbed hotbeds hotblood hotbox hotbrained hotbuns hotchpot hote hotel hoteldom hotelkeeper hotelless hotelman hotels hotelward hotfoot hothead hotheadedness hothearted hotheartedly hothouse hothouses hotly hotmouthed hotness hotrod hottentot hottentotese hottentotic hottentotism hotter hottery hottest hottonia houdaille houdan houdini hough houghband houghed hougher houghmagandy houghton hounce hound hounded hounder hounding houndish houndlike hounds houndsbane houppelande hour hourful hourglass houri houris hourly hours housage housal house houseball houseboat houseboating housebote housebound houseboy housebreak housebreaker housebreaking housebroke housebroken housebug housebuilder houseclean housecleaning housecoat housed housefast housefather housefly houseful housefurnishings household householder householders householdership householding householdry households housekeeper housekeeperly housekeepers housekeeping housel houseleek houseless houselessness houselet houselights houseling houselled housemaid housemaidenly housemaiding housemaids housemaidy housemaster housemastership housemate housemating houseminder housemistress housemother houseowner houser houseroof houseroom houses housesmith housetop housetops houseward housewares housewarm housewarmer housewarming housewife housewifeliness housewifely housewifery housewives housework housewright housing houstonia housy houted houtou hova hove hovedance hovel hoveler hovels hoven hovenia hover hovered hoverer hovering hoverly hovers how howadji howard howbeit howdah howdahs howder howdie howdy howe howed howel however howff howish howitzer howitzers howkit howl howled howler howling howlingly howlings howls hows howso howsoever howsomever hox hoya hoyden hoyle hoyman hpt hpv hr hrimfaxi hrothgar hrt hsc hst hsvs hthe hu huaca huaco huajillo huamuchil huanaco huanacos huantajayite huaracho huari huastec huastecan huave huavean hub hubb hubbard hubbell hubber hubbite hubbly hubbub hubbuboo huber hubmaker hubmaking hubris hubristic hubs hubshi huccatoon huchen hucho huckaback huckle huckleback huckleberries huckleberry huckmuck huckster hucksterage hucksterer hucksteress hucksterize hucksters huckstery hud huddle huddled huddledom huddlement huddler huddling huddlingly huddock huddroun huddup hudibrastically hudson hudsonia hudsonian hue hued hueless huer huertas hues huff huffier huffily huffingly huffish huffishness huffle huffler huffman huffy hug huge hugely hugeness hugeously huggable hugged hugger huggermugger hugging huggingly huggins hughes hugo hugoesque hugs hugsome huguenot huguenotic huguenotism hugy huh huia huipil huisache huiscoyol huit huitain huius hula huldah hulk hulkage hulking hulky hull hullabaloo huller hulling hullo hulloo hulls hulsean hulsite hulver hulverhead hum huma humaine human humane humanely humaner humanest humani humanics humanification humaniformian humanised humanish humanising humanism humanist humanistic humanistical humanistically humanitarian humanitarianism humanitarians humanitary humanitian humanities humanity humanitymonger humanize humanized humanizer humanizing humankind humanlike humanly humanoid humans humate humble humblebee humbled humblehearted humblemouthed humbleness humblenesse humbler humbles humblest humbleth humbling humblingly humbly humbo humboldtilite humboldtite humbug humbugable humbugged humbugger humbuggeries humbuggery humbugging humbuggism humbugs humdinger humdrum humdrummish humdrummishness humdudgeon humean humect humectant humectate humective humerale humeroabdominal humerocubital humerodigital humerodorsal humeroradial humerus humet humetty humhum humic humicubation humid humidification humidifiers humidistat humidity humidityproof humidly humidness humidor humific humification humify humiliant humiliate humiliated humiliates humiliating humiliatingly humiliation humiliations humiliative humiliator humiliatory humilis humilite humilities humility humin humiria humiriaceae humism humistratous humlie hummed hummie humming hummingbirds hummock hummocks hummocky humor humoral humoralism humoralistic humored humoredly humoresque humorific humoring humorist humoristic humorists humorless humorlessness humorology humorous humorously humorousness humors humorsome humorsomely humorsomeness humour humoured humouredly humourful humouring humourist humourous humours humous hump humpback humpbacked humped humph humphing humphrey humpies humpiness humpless humps humpty humpy hums humstrum humulene humulus humus humuslike hunch hunchback hunchbacked hunched hunches hunching hunchy hundert hundred hundredal hundredary hundredfold hundredi hundredpenny hundreds hundredth hundredweight hundredwork hung hungaria hungarian hungarite hungary hunger hungered hungerer hungerest hungering hungeringly hungerings hungerless hungerly hungerproof hungers hungerweed hungrier hungrify hungrily hungriness hungry hunh hunk hunker hunkerism hunkerous hunkerousness hunkers hunkpapa hunks hunky hunlike hunnian hunnish hunnishness hunt huntable hunted huntedly hunter hunterian hunterlike hunters huntilite hunting huntington huntress hunts huntsman huntsmanship huntsmen huntspear huntsville hup hupa hupaithric huqas hura hurcheon hurd hurdies hurdis hurdle hurdler hurdles hurdlewise hureaulite hureek hurgila hurl hurlbarrow hurled hurler hurley hurleyhouse hurling hurls hurly huron huronian hurr hurrah hurrahing hurrahs hurray hurri hurrian hurricane hurricanes hurried hurriedly hurriedness hurrier hurries hurrisome hurrock hurroo hurroosh hurry hurrying hurryscurryation hursinghar hurst hurt hurtable hurte hurter hurteth hurtful hurtfully hurting hurtle hurtleberry hurtled hurtless hurtlessly hurtlessness hurtling hurtlingly hurts hurtsome hurty hurtynge husband husbandable husbandage husbande husbanded husbander husbandfield husbandhood husbanding husbandless husbandlike husbandliness husbandly husbandman husbandmen husbandom husbandress husbandry husbands husbandship huse huseful hush hushable hushcloth hushed husheen hushel hushes hushful hushfully hushing hushion husho husk husked huskened husker huskershredder huskies huskily huskiness husking husks husky huso huspil huss hussar hussars hussies hussitism hussy hussydom hussyness hustings hustle hustlecap hustled hustlement hustler hustling huswife huswifes hut hutcher hutches hutchet hutchins hutchinson hutchinsonian hutchison huthold hutholder hutia hutkeeper hutlet hutment huts hutsulian hutted hutterites huttonian huttonianism huttoning huttonweed hutukhtu huvelyk huxley huxtable huzoor huzvaresh huzza huzzar huzzard huzzing hwome hyacinth hyacinthian hyacinthine hyacinths hyacinthus hyades hyaena hyaenanche hyaenarctos hyaenas hyaenidae hyaenodon hyaenodont hyaenodontoid hyalescent hyaline hyalinization hyalinize hyalinocrystalline hyalinosis hyalitis hyaloandesite hyalobasalt hyalodacite hyalogen hyalograph hyalographer hyalography hyaloliparite hyalolith hyalomelan hyalomucoid hyalophane hyalophyre hyalopilitic hyaloplasm hyaloplasma hyaloplasmic hyalopsite hyalopterous hyalospongia hyalotekite hyalotype hyaluronidase hybla hyblaean hybodont hybodus hybosis hybrid hybridism hybridist hybridizable hybridization hybridize hybridous hybrids hyd hydantoate hydantoic hydantoin hydatid hydatidiform hydatidinous hydatigenous hydatogenesis hydatogenic hydatogenous hydatoid hydatomorphic hydatomorphism hydatopneumatic hydatopneumatolytic hydatopyrogenic hyde hyderabad hydnaceae hydnaceous hydnocarpate hydnocarpic hydnocarpus hydnora hydnoraceous hydnum hydra hydracetin hydrachnid hydrachnidae hydracid hydracrylate hydractinian hydradephagan hydradephagous hydragogue hydragogy hydralazine hydramine hydramnion hydramnios hydrangeaceae hydrangeaceous hydrant hydranth hydrarch hydrargillite hydrargyrate hydrargyric hydrargyrosis hydrargyrum hydrarthrosis hydrarthrus hydras hydrastine hydrastis hydrate hydrated hydrates hydraucone hydraulic hydraulician hydrauliciens hydraulicity hydraulicked hydraulics hydrazide hydrazidine hydrazimethylene hydrazino hydrazo hydrazobenzene hydrazoic hydrazone hydrazones hydrazyl hydremic hydrencephalocele hydrencephaloid hydrencephalus hydria hydriatric hydriatrist hydrically hydride hydrindene hydriodate hydriodic hydriodide hydro hydroa hydroaeric hydroalcoholic hydroaromatic hydroatmospheric hydrobarometer hydrobatidae hydrobilirubin hydrobiologist hydrobiology hydrobiosis hydrobiplane hydrobomb hydrobranchiate hydrobromide hydrocarbide hydrocarbon hydrocarbonate hydrocarbonic hydrocarbonous hydrocarbons hydrocarbostyril hydrocardia hydrocaryaceae hydrocaryaceous hydrocatalysis hydrocauline hydrocaulus hydroceles hydrocephalic hydrocephalocele hydrocephaloid hydrocephalus hydrocephaly hydroceramic hydrocerussite hydrocharidaceae hydrocharitaceous hydrochelidon hydrochemical hydrochemistry hydrochlorate hydrochlorauric hydrochloric hydrochloride hydrochlorides hydrochlorothiazide hydrochlorplatinic hydrochlorplatinous hydrocholecystis hydrocinnamic hydrocirsocele hydroclastic hydrocleis hydrocobalticyanic hydrocodone hydrocollidine hydroconion hydrocorallia hydrocorallinae hydrocoralline hydrocorisan hydrocotarnine hydrocotyle hydrocupreine hydrocyanate hydrocyanic hydrocyclist hydrocyon hydrocystic hydrodamalidae hydrodamalis hydrodictyon hydrodrome hydrodromica hydrodromican hydrodynamic hydrodynamical hydrodynamics hydroeconomics hydroelectric hydroelectricity hydroelectrization hydroergotinine hydroextract hydroextractor hydroferricyanic hydroferrocyanic hydrofluate hydrofluoboric hydrofluoric hydrofluoride hydrofluosilicate hydrofoil hydroforming hydrofranklinite hydrofuge hydrogen hydrogenase hydrogenated hydrogenic hydrogenide hydrogenium hydrogenize hydrogeology hydrognosy hydrogode hydrograph hydrographer hydrographic hydrographical hydrographically hydrography hydrogymnastics hydrohematite hydroid hydroida hydroidean hydroiodic hydrokinetic hydrokinetical hydrokinetics hydrol hydrolase hydrolatry hydrolea hydrolize hydrologic hydrological hydrologically hydrology hydrolyse hydrolysed hydrolyses hydrolysis hydrolyte hydrolytic hydrolyzable hydrolyzate hydrolyzation hydrolyze hydromagnesite hydromancer hydromancy hydromania hydromaniac hydromantic hydromantically hydrome hydromechanical hydromedusa hydromedusae hydromedusan hydromel hydromeningitis hydromeningocele hydrometallurgically hydrometamorphism hydrometeorology hydrometer hydrometra hydrometric hydrometrical hydrometrid hydrometridae hydrometry hydromica hydromonoplane hydromorph hydromorphic hydromorphone hydromorphous hydromyelia hydromyelocele hydromys hydronegative hydronephelite hydronitric hydronitroprussic hydronitrous hydronium hydroparacoumaric hydroparastatae hydropath hydropathic hydropericarditis hydropericardium hydroperiod hydroperitoneum hydrophane hydrophanous hydrophid hydrophidae hydrophil hydrophile hydrophilic hydrophilid hydrophilidae hydrophilism hydrophiloid hydrophily hydrophinae hydrophis hydrophobe hydrophobia hydrophobic hydrophobical hydrophobophobia hydrophobous hydrophoby hydrophoid hydrophoran hydrophore hydrophorous hydrophthalmia hydrophthalmos hydrophthalmus hydrophylacium hydrophyllaceae hydrophylliaceous hydrophyllum hydrophysometra hydrophyte hydrophytic hydrophyton hydrophytous hydropic hydropicus hydropigenous hydroplane hydroplanula hydroplatinocyanic hydroplutonic hydropneumatic hydropneumatosis hydropneumopericardium hydropneumothorax hydropolyp hydroponic hydroponics hydropot hydropotes hydrops hydropterideae hydroptic hydropult hydropultic hydroquinol hydroquinone hydrorachis hydrorhiza hydrorhizal hydrorrhachitis hydrorrhoea hydrorubber hydrosalpinx hydrosalt hydroscopic hydroscopist hydroselenide hydroselenuret hydroseparation hydrosilicate hydrosilicon hydrosol hydrosomal hydrosome hydrosorbic hydrosphere hydrospire hydrospiric hydrostat hydrostatic hydrostatical hydrostatically hydrostatician hydrostatics hydrostome hydrosulphide hydrosulphocyanic hydrosulphurated hydrosulphuret hydrosulphureted hydrosulphuric hydrosulphurous hydrosulphuryl hydrotachymeter hydrotactic hydrotalcite hydrotaxis hydrotechnic hydrotechnical hydrotechny hydroterpene hydrotheca hydrothecal hydrotherapy hydrothermal hydrothorax hydrotic hydrotical hydrotimeter hydrotimetric hydrotimetry hydrotropic hydrotropism hydrotype hydrous hydrovane hydroxamic hydroxide hydroxides hydroximic hydroxyacetic hydroxyanthraquinone hydroxybutyricacid hydroxychloroquine hydroxyketone hydroxyl hydroxylactone hydroxylamine hydroxylate hydroxylation hydroxylic hydroxylization hydroxylize hydroxyurea hydroxyzine hydrozincite hydrozoa hydrozoal hydrozoan hydrozoic hydruntine hydrurus hydrus hydurilic hyena hyenadog hyenanchin hyenas hyenic hyeniform hyenine hyenoid hyetal hyetographic hyetographical hyetographically hyetography hyetological hyetology hyetometer hygeia hygeian hygeistic hygeology hygiantic hygiantics hygiastic hygiastics hygieist hygienal hygiene hygienic hygienically hygienics hygienist hygienization hygienize hygiology hygric hygroblepharic hygrodeik hygrograph hygrology hygroma hygromatous hygrometer hygrometric hygrometrical hygrometrically hygrophilous hygrophobia hygrophthalmic hygrophyte hygrophytic hygroplasm hygroscope hygroscopic hygroscopically hygroscopy hygrothermal hygrothermograph hyla hylarchic hylarchical hyle hyleg hylic hylicism hylicist hylidae hylism hyllus hylobates hylobatian hylobatine hylocichla hylocomium hylodes hylogeny hylomorphic hylomorphical hylomorphism hylomorphist hylopathism hylopathist hylopathy hylotheistic hylotheistical hylozoic hylozoism hylozoist hylozoistic hym hyman hymen hymenaea hymenaeus hymenaic hymenal hymeneal hymeneally hymeneals hymenean hymenial hymeniferous hymeniophore hymenocallis hymenogaster hymenogastraceae hymenogeny hymenoid hymenomycetal hymenophore hymenophorum hymenophyllaceae hymenophyllaceous hymenophyllum hymenoptera hymenopterological hymenopterologist hymenopteron hymenopterous hymenotomy hymettian hymettic hymn hymnal hymnarium hymnary hymning hymnist hymnlike hymnodical hymnodist hymnody hymnography hymnologic hymnological hymnologically hymns hynde hyobranchial hyocholalic hyoepiglottidean hyoglossal hyoglossus hyoglycocholic hyoid hyoidal hyoidan hyoideal hyoidean hyolithes hyolithidae hyolithoid hyomandibula hyomandibular hyomental hyoplastron hyoscapular hyoscyamine hyoscyamus hyosternal hyostylic hyostyly hyotherium hyothyroid hypaethron hypaethros hypaethrum hypalgesia hypalgic hypanthial hypapante hypapophysis hyparterial hypate hypautomorphic hypaxial hype hyper hyperabelian hyperabsorption hyperaccurate hyperacid hyperacidaminuria hyperacidity hyperacoustics hyperaction hyperactive hyperactivity hyperacuity hyperacusia hyperacute hyperacuteness hyperadenosis hyperadiposis hyperadrenalemia hyperaemic hyperalbuminosis hyperalgebra hyperalgesic hyperalgesis hyperalgetic hyperaltruism hyperanarchy hyperangelical hyperaphic hyperapophyseal hyperapophysial hyperapophysis hyperarchaeological hyperazotemia hyperbarbarous hyperbatic hyperbatically hyperbaton hyperbola hyperbolaeon hyperbole hyperboles hyperbolic hyperbolical hyperbolicly hyperbolism hyperbolize hyperboloid hyperboloidal hyperboreal hyperborean hyperbrachycephal hyperbrachyskelic hyperbranchia hyperbranchial hyperbrutal hyperbulia hypercalcemia hypercarbamidemia hypercatalectic hypercatalexis hypercathartic hypercathexis hyperchamaerrhine hyperchlorhydria hyperchloric hypercivilized hyperclassical hypercoagulability hypercomplex hypercomposite hyperconcentration hyperconformist hyperconscientious hyperconscious hyperconservatism hyperconstitutional hypercoracoid hypercorrect hypercorrection hypercorrectness hypercosmic hypercreaturely hypercritical hypercritically hypercriticism hypercriticize hypercryalgesia hypercylinder hyperdactylia hyperdactyly hyperdeify hyperdelicacy hyperdemocratic hyperdeterminant hyperdiabolical hyperdiapason hyperdiapente hyperdiatessaron hyperdiazeuxis hyperdicrotic hyperdicrotism hyperdimensional hyperdimensionality hyperdissyllable hyperdistention hyperditone hyperdolichocephalic hyperdolichocephaly hyperdolichocranial hyperdoricism hyperdulia hyperdulical hyperelegant hyperelliotic hyperemic hyperemphasize hyperenthusiasm hypereosinophilia hyperequatorial hyperessence hyperesthesia hyperethical hypereuryprosopic hypereutectic hypereutectoid hyperexcursive hyperexophoria hyperextended hyperfastidious hyperfederalist hyperfocal hyperfunction hyperfunctioning hypergalactia hypergamy hypergenesis hypergenetic hypergeometrical hypergeometry hypergeusia hypergeustia hyperglycemia hypergoddess hypergol hypergrammatical hyperhedonia hyperhidrosis hyperhilarious hyperhypocrisy hypericaceae hypericaceous hypericales hypericin hypericism hypericum hyperidealistic hyperideation hyperimmune hyperimmunization hyperingenuity hyperinosis hyperinotic hyperinsulinization hyperinvolution hyperirritable hyperisotonic hyperite hyperkeratoses hyperkinesia hyperkinetic hyperlactation hyperleptoprosopic hyperleucocytosis hyperlipemia hyperlipidemia hyperlithuria hyperlogical hyperlustrous hypermagical hypermakroskelic hypermature hypermenorrhea hypermetamorphic hypermetamorphism hypermetamorphotic hypermetaphorical hypermetaphysical hypermetaplasia hypermeter hypermetrical hypermetron hypermetrope hypermetropia hypermetropic hypermetropical hypermetropy hypermixolydian hypermnesia hypermnesic hypermnesis hypermnestic hypermodest hypermoral hypermorph hypermorphism hypermorphosis hypermotility hypermystical hypernatural hypernephroma hyperneurotic hypernic hypernitrogenous hypernomian hypernomic hypernormal hypernote hypernutrition hyperoartia hyperoartian hyperobtrusive hyperodontogeny hyperoodon hyperoon hyperope hyperopia hyperopic hyperorganic hyperorthognathic hyperosmia hyperosmic hyperosmolar hyperostotic hyperothodox hyperothodoxy hyperotreta hyperotretan hyperotretous hyperoxygenate hyperoxygenation hyperoxygenize hyperpanegyric hyperparasite hyperparasitic hyperparasitism hyperparasitize hyperparoxysm hyperpencil hyperpepsinia hyperperistalsis hyperperistaltic hyperphalangeal hyperphalangism hyperpharyngeal hyperphenomena hyperphoric hyperphosphatemia hyperphosphorescence hyperpietic hyperpietist hyperpigmentation hyperpigmented hyperplane hyperplasia hyperplasic hyperplatyrrhine hyperploidy hyperpnea hyperpredator hyperprism hyperproduction hyperprognathous hyperprophetical hyperprosexia hyperpulmonary hyperpure hyperpurist hyperpyretic hyperpyrexial hyperreactive hyperrealize hyperresonance hyperresonant hyperreverential hyperridiculous hyperritualism hypersacerdotal hypersaintly hypersalivation hypersceptical hyperscholastic hyperscrupulosity hypersecretion hypersensibility hypersensitive hypersensitiveness hypersensitization hypersensitize hypersensual hypersensualism hypersensuous hypersexuality hypersolid hypersonic hyperspace hyperspatial hypersphere hyperspherical hyperspiritualizing hypersthene hypersthenia hypersthenic hypersubtlety hypersuggestibility hypersuperlative hypersurface hypersusceptibility hypersystole hypertechnical hypertelic hypertely hypertensin hyperterrestrial hypertetrahedron hyperthermalgesia hyperthermesthesia hyperthermia hyperthermic hyperthermy hyperthesis hyperthetic hyperthetical hyperthyreosis hyperthyroid hyperthyroidism hyperthyroidization hyperthyroidize hypertonia hypertonicity hypertonus hypertoxic hypertoxicity hypertragical hypertragically hypertranscendent hypertrophic hypertrophied hypertrophies hypertrophy hypertropia hypertype hypertypic hypertypical hyperurbanism hyperuresis hypervascular hypervascularity hypervenosity hyperventilate hypervigilant hypervitalize hypervitaminosis hypervolume hyperwrought hypesthesia hypesthesic hypethral hypha hyphae hyphaeresis hyphema hyphen hyphenated hyphenic hyphenism hyphenization hyphenize hyphens hypho hyphodrome hyphomycete hyphomycetes hyphomycetic hyphomycosis hypidiomorphic hypidiomorphically hypinosis hypnaceous hypnesthetic hypnoanalysis hypnobate hypnody hypnoetic hypnogenesis hypnogenetic hypnoid hypnoidal hypnoidization hypnoidize hypnologic hypnological hypnologist hypnology hypnone hypnophobia hypnopompic hypnoses hypnosporangium hypnospore hypnosporic hypnotic hypnotics hypnotise hypnotised hypnotism hypnotistic hypnotizability hypnotizable hypnotization hypnotize hypnotized hypnotizer hypnotoid hypnotoxin hypoacid hypoactivity hypoadenia hypoadrenia hypoaeolian hypoalimentation hypoalkaline hypoalkalinity hypoaminoacidemia hypoazoturia hypobasal hypobatholithic hypobenthos hypoblastic hypobole hypobranchial hypobranchiate hypobromous hypobulia hypobulic hypocarp hypocarpogean hypocatharsis hypocathartic hypocathexis hypocenter hypocentrum hypocephalus hypochaeris hypochilium hypochlorhydria hypochlorite hypochlorous hypochloruria hypochondria hypochondriac hypochondriacal hypochondriacally hypochondriacism hypochondrial hypochondriast hypochondry hypochordal hypochrosis hypochylia hypocleidium hypocoelom hypocondylar hypocone hypoconule hypoconulid hypocoracoid hypocorism hypocoristic hypocoristical hypocoristically hypocotyl hypocotyledonous hypocotylous hypocrater hypocraterimorphous hypocreaceae hypocreaceous hypocreales hypocrisies hypocrisis hypocrisy hypocrite hypocrites hypocritic hypocritical hypocritically hypocrize hypocrystalline hypocycloid hypocycloidal hypocystotomy hypocytosis hypodactylum hypodermal hypodermatic hypodermatically hypodermatomy hypodermella hypodermic hypodermically hypodermoclysis hypodermosis hypodermous hypodiapason hypodiazeuxis hypodicrotic hypoditone hypodynamia hypodynamic hypoeliminator hypoeosinophilia hypoeutectic hypoeutectoid hypogastric hypogastrium hypogastrocele hypogeal hypogean hypogee hypogeic hypogeiody hypogene hypogenesis hypogenetic hypogenous hypogeum hypogeusia hypoglobulia hypoglossal hypoglossitis hypoglycemia hypoglycemic hypognathism hypognathous hypogonation hypogynic hypogynium hypogynous hypogyny hypohalous hypohemia hypohippus hypohyal hypoiodous hypoionian hypoisotonic hypokalemia hypokeimenometry hypokinesia hypokinesis hypokoristikon hypolemniscus hypoleptically hypoleucocytosis hypolydian hypomagnesia hypomania hypomanic hypomeral hypomeron hypometropia hypomnematic hypomorph hypomotility hypomyotonia hyponastic hyponastically hyponasty hyponitric hyponitrite hyponitrous hyponoetic hyponoia hyponome hyponomic hyponychial hyponychium hyponym hyponymous hypoparia hypopepsia hypopetalous hypopetaly hypophalangism hypophamin hypophamine hypophare hypopharyngeal hypophloeodal hypophonic hypophonous hypophora hypophoria hypophosphatemia hypophosphite hypophosphoric hypophosphorous hypophrenia hypophrenic hypophrenosis hypophrygian hypophyge hypophyll hypophyllium hypophyllum hypophyse hypophyseal hypophysectomy hypophyseoprivous hypophysial hypophysical hypophysics hypophysis hypopial hypopinealism hypopituitarism hypopitys hypoplankton hypoplanktonic hypoplasia hypoplastic hypoplastral hypoplastron hypoplasty hypoplasy hypopselaphesia hypopteron hypoptilar hypoptosis hypopus hypopygial hypopygidium hypopyon hyporadial hyporadiolus hyporadius hyporchema hyporchesis hyporhachis hyporhined hyporrhythmic hyposcenium hyposcleral hyposcope hyposensitization hyposensitize hyposkeletal hyposmia hypospadiac hypospadias hyposphene hypostase hypostasis hypostasization hypostasize hypostasy hypostatic hypostatical hypostatization hypostatize hyposternal hyposternum hyposthenic hypostigma hypostilbite hypostoma hypostomata hypostomatic hypostrophe hypostypsis hypostyptic hyposulphate hyposulphite hyposulphurous hyposyllogistic hyposynergia hypotactic hypotarsal hypotarsus hypotaxia hypotaxis hypotension hypotensor hypotenusal hypothalamus hypothalline hypothallus hypothec hypotheca hypothecate hypothecation hypothecator hypothecatory hypothecial hypothecium hypothenal hypothermia hypothermic hypothermy hypotheses hypothesi hypothesis hypothesise hypothesist hypothesizer hypothetic hypothetical hypothetically hypothetics hypothetist hypothetize hypothyroidism hypotonia hypotonic hypotonicity hypotony hypotoxic hypotoxicity hypotrachelium hypotrich hypotricha hypotrichida hypotrichosis hypotrichous hypotrochanteric hypotympanic hypotypic hypotypical hypotyposis hypovanadate hypovanadous hypovitaminosis hypoxanthine hypoxia hypoxylon hypozeugma hypozeuxis hypozoic hyprocrisy hypsibrachycephalic hypsibrachycephalism hypsicephaly hypsidolichocephalic hypsidolichocephalism hypsidolichocephaly hypsiliform hypsilophodon hypsilophodont hypsilophodontid hypsilophodontidae hypsiprymnodontinae hypsistarian hypsistenocephalic hypsobathymetric hypsochrome hypsochromic hypsochromy hypsodont hypsodontism hypsodonty hypsographic hypsographical hypsoisotherm hypsometer hypsometric hypsometrical hypsometrist hypsometry hypsophobia hypsophonous hypsophyll hypsophyllary hypsophyllous hyraces hyrachyus hyracid hyracodon hyracodont hyracodontid hyracodontidae hyracodontoid hyracoidean hyracothere hyracotheriinae hyracotherium hyrax hyrcan hyrcanian hyrtl hys hyson hyssop hystazarin hysteralgic hysterectomies hysterectomy hysteresis hysteretic hysteretically hysteria hysteriales hysteric hysterical hysterically hystericky hysterics hystericus hysteriform hysterioid hysterocarpus hysterocatalepsy hysterocele hysterocleisis hysterocrystalline hysterocystic hysterodynia hysterogenic hysterogenous hysteroid hysterolaparotomy hysterolith hysterolithiasis hysterology hysterolysis hysteromania hysterometer hysteromorphous hysteromyoma hysteromyomectomy hysteroneurasthenia hysteropathy hysteropexia hysteropexy hysterophore hysterophytal hysterophyte hysteroproterize hysteroptosia hysteroptosis hysterorrhexis hysteroscope hysteroscopy hysterosis hysterotomy hysterotraumatism hystriciasis hystricid hystricidae hystricine hystricismus hystricomorph hystricomorphic hystricomorphous hystrix i i's i've i.e ia iacchic iacchos iacchus iachimo iam iamb iambe iambelegus iambi iambic iambist iambize ian iannuzzo ianthine iao iapetus iapyges iapygian iapygii iatraliptic iatraliptics iatric iatrical iatrika iatrochemical iatrochemist iatrochemistry iatrological iatrology iatromathematician iatromathematics iatromechanical iatromechanist iatrophysical iatrophysicist iatrotechnics ibad ibanag iberes iberi iberia iberian iberic iberism iberite ibex ibi ibices ibid ibidine ibilao ibis ibm ibn ibo ibota ibsenian ibsenic ibsenish ibsenism ibsenite ibuprofen ibuprofin icacinaceae icacinaceous ical icance icarian icarianism icarus ice iceberg icebergs iceblink iceboat icebone icebound icebreaker icecap icecraft iced icefall icefish icehouse iceland icelandian iceleaf icelike iceman iceni iceroot icerya ices icework ich ichneumia ichneumoned ichneumones ichneumonid ichneumonidae ichneumonidan ichneumonides ichneumoniform ichneumonized ichneumonology ichneutic ichnite ichnographical ichnographically ichnography ichnolite ichnolithology ichnological ichnology ichnomancy icho ichor ichorous ichorrhemia ichors ichthbs ichthulin ichthulinic ichthus ichthyic ichthyismus ichthyization ichthyized ichthyocoprolite ichthyodea ichthyodectidae ichthyodont ichthyodorulite ichthyofauna ichthyoform ichthyographer ichthyography ichthyoid ichthyoidal ichthyoidea ichthyol ichthyolatrous ichthyolatry ichthyolite ichthyolitic ichthyologic ichthyological ichthyologist ichthyologists ichthyology ichthyomantic ichthyomorpha ichthyomorphic ichthyomorphous ichthyonomy ichthyophagi ichthyophagian ichthyophagist ichthyophagize ichthyophagy ichthyophthiriasis ichthyopolism ichthyopolist ichthyopsid ichthyopsidan ichthyopterygia ichthyopterygian ichthyopterygium ichthyornis ichthyornithes ichthyornithiformes ichthyornithoid ichthyosauria ichthyosaurus ichthyotic ichthyotomi ichthyotomous ichthyotomy ichthyotoxin ichthyotoxism ichu ici icica icicaille icicle icicled icicles iciest icigo icily icing icky icon iconic iconical iconism iconoclasm iconoclast iconoclastically iconoclasticism iconoclasts iconodulic iconodulist iconoduly iconograph iconographer iconographic iconographical iconographist iconography iconolater iconolatrous iconologist iconology iconomachy iconomania iconomatic iconomatically iconometer iconometrical iconometrically iconophilism iconophilist iconoplast iconostas iconostasis iconotype icosahedral icosahedron icosasemic icositetrahedron icosteid icosteidae icosteus icotype icterical icteridae icteritious icterogenetic icterogenic icterogenous icterohematuria icteroid icterus icthyosaurus ictic ictonyx ictus icup icy ida idaean idaho idahoan idaic idalia idalian iddat ide idea ideaful ideagenous ideal idealess idealise idealism idealist idealistic idealistical idealistically idealists ideality idealization idealize idealized idealizer idealizing idealless ideally idealness ideals ideamonger idean ideas ideational ideationally ideative idee idees ideist identic identical identicalism identically identicalness identifiable identifiableness identification identifications identified identifier identifies identify identifying identism identities identity ideogenical ideogenous ideogeny ideogram ideogrammic ideograph ideographic ideographical ideographically ideography ideolatry ideolect ideological ideologically ideologist ideologize ideologue ideology ideomotion ideomotor ideophone ideophonetics ideoplastic ideoplastics ideoplasty ides idgah idiasm idic idiobiology idioblastic idiochromatin idiochromosome idiocrasis idiocratic idiocratical idiocy idiocyclophanous idioelectrical idiogastra idiogenesis idiogenetic idiogenous idioglossia idiograph idiographic idiographical idiolalia idiolatry idiolysin idiom idiomatic idiomatical idiomaticalness idiomelon idiometer idiomography idiomology idiomorphic idiomorphically idiomorphous idioms idiomuscular idiopathy idiophanism idiophanous idiophonic idioplasm idioplasmatic idioplasmic idiopsychology idioreflex idiorepulsive idioretinal idiorrhythmic idiosepion idiospasm idiospastic idiosyncrasies idiosyncrasy idiosyncratic idiosyncratical idiot idiotcy idiothalamous idiothermous idiothermy idiotic idiotical idiotically idiotish idiotize idiotropian idiotry idiots idiotype idistic idite iditol idle idled idleful idlehood idleman idlement idleness idler idlers idleset idlest idlety idling idlish idly ido idocrase idoism idoist idoistic idol idolaster idolater idolaters idolatress idolatric idolatrize idolatrizer idolatrous idolatrously idolatrousness idolatry idolify idolise idolism idolistic idolization idolize idolized idolizer idolizes idoloclast idoloclastic idolodulia idololatrical idolomancy idolomania idolous idols idolum idoneal idoneity idoneous idorgan idosaccharic idose idotea idoteidae idothea idrialin idrialine idrisid idrisite idryl iduret idyl idylize idyll idyllia idyllic idyllical idyllically idyllicism idylls idyls ie iera ierne if ife iffy ifhe ifni ifugao ig igapo igara igbira igelstromite igg igitur ignatia ignatian ignatius ignavia ignea igneoaqueous igneous ignescent igniarius ignicolist igniferousness igniform ignipotent ignipuncture ignitability ignite ignited igniter ignites ignitibility ignitible igniting ignition ignitive ignitor ignitron ignivomous ignobility ignoble ignobleness ignobler ignoblesse ignobly ignominious ignominiously ignominiousness ignominy ignoramus ignorance ignorances ignorant ignorantine ignorantist ignorantly ignorantness ignoration ignore ignored ignorement ignorer ignores ignoring ignote igor iguana iguania iguanodon iguanodons iguanodontoid iguanodontoidea iguvine ihat ihe ihlat ihleite ihm ihram ihre ihrem ihrer iii iike iiwi ijo ijore ijussite ikat ike ikey ikeyness ikhwan ikon ikona ikons ikra il ila iland ile iled ileectomy ilegant ileitis ileocaecal ileocaecum ileocolic ileocolotomy ileon ileostomies ileostomy ilesite ileum ileus ilex iliac iliacus iliadic iliadize iliau ilicaceae ilicaceous ilicic iliocaudal iliococcygeal iliococcygeus iliococcygian iliocostalis iliofemoral ilioischiac iliolumbar iliopectineal iliopelvic iliopsoas iliopsoatic iliopubic iliosacral iliosciatic iliospinal iliotibial ilissus ilium ilk ilka ill illa illaborate illachrymableness illano illapsable illapse illapsive illaqueate illaqueation illas illation illative illatively illaudable illaudably illaudation illdefined ille illecebraceae illecebrous illeck illegal illegality illegalize illegally illegible illegibleness illegibly illegitimacy illegitimate illegitimately illegitimation illegitimatize illeism illeist illess illguide illiberal illiberalism illiberality illiberalize illiberally illicit illicitly illicitness illimitable illimitation illimitedness illinition illinois illinoisian illipe illipene illiquation illiquid illiquidity illision illiteracy illiteral illiterate illiterately illiterateness illiterates illiterature illness illnesses illocal illocality illocally illogical illogicality illogically illogicalness illogician illoricate illos illoyal ills illsatisfied illth illtreating illucidate illucidation illucidative illude illudedly illuder illume illumer illumes illuminable illuminance illuminant illuminate illuminated illuminati illuminating illumination illuminations illuminatism illuminatist illuminato illuminatory illuminatus illumine illumined illuminee illumines illuminism illuminist illuministic illuminize illuminometer illuminous illure illurement illused illusible illusion illusional illusionary illusioned illusionism illusionistic illusions illusive illusively illusiveness illusor illusorily illusory illustrable illustrantia illustratable illustrate illustrated illustrates illustrating illustration illustrational illustrations illustrative illustratives illustrator illustre illustres illustricity illustrious illustriousness illutate illutation illuviation illy illyrian ilm ilmenorutile ilocano ilokano iloko ilona ilongot ils ilustrado ily ilysanthes ilysiidae ilysioid ilyushin image imageable imaged imagen imager imagerial imagerially imagery images imaginability imaginable imaginably imaginarily imaginariness imaginary imagination imaginational imaginationalism imaginations imaginative imaginatively imaginativeness imaginator imagine imagined imaginer imagines imagineth imaging imagining imaginings imaginist imagism imagist imagistic imago imam imamah imamate imamic imamship imaret imaums imbalance imbalances imban imband imbannered imbark imbased imbat imbauba imbecile imbecilely imbeciles imbecilic imbecilitate imbecilities imbecility imbedded imber imberbifiora imbibation imbibe imbibed imbiber imbibes imbibing imbibition imbibitory imbirussu imbittering imbolish imbondo imbordure imborsation imbosom imbrex imbribus imbricate imbricated imbricately imbricative imbrue imbrued imbrute imbruted imbue imbued imbuement imbues imbuing imcomparable imer imerina imeritian imfamous imi imidazoles imidazolyl imide imidic imidobenzoic imine imino iminohydrin imipramine imitable imitableness imitancy imitate imitated imitates imitating imitation imitationist imitations imitative imitatively imitativeness imitator imitators imitatress imitatrix imitatur immaculacy immaculance immaculate immaculately immaculateness immane immanely immanence immanency immanent immanental immanentism immanently immanes immanifest immanifestness immanity immarble immarcescible immarcescibly immarcibleness immarginate immask immatchable immaterial immaterialism immaterialist immateriality immaterialize immaterially immaterialness immatriculation immatura immature immaturely immaturity immeability immeasurability immeasurable immeasurably immeasureable immeasured immechanically immediacy immediate immediately immediateness immediatism immedicable immedicableness immedicably immejit immelodious immemor immemorial immemorially immemorialness immense immensely immensity immensurability immensurable immensurableness immensurate immerd immerfort immerge immergence immergent immerited immeritorious immeritoriously immerse immersed immersement immersible immersing immersion immersionist immersive immethodical immethodically immetrical immigrant immigrants immigrate immigrated immigration immigrations immigrator imminence imminent imminently imminentness immingle immiscibility immiscible immiscibly immission immit immitigable immitigably immix immixable immixture immobile immobility immobilization immobilize immoderacy immoderate immoderately immoderateness immodest immodestly immodesty immolate immolated immolating immolation immolator immoment immomentous immonastered immoral immoralism immoralities immorality immoralize immorally immorigerous immorigerousness immortability immortable immortal immortali immortalise immortalised immortalism immortalist immortalitati immortality immortalizable immortalize immortalized immortalizer immortalness immortals immortelle immortification immotile immotioned immotive immound immovability immovable immovableness immovably immoveable immune immunities immunity immunizations immunized immunochemistry immunocompromised immunodeficiency immunoelectrophoresis immunogenetic immunogenically immunogenicity immunoglobulin immunologic immunological immunology immunoreaction immunosuppressive immunotherapy immuration immure immured immurement immusical immusically immutability immutable immutably immutation imoerfect imogen imolinda imonium imoortance imoortant imp impacability impacable impack impact impacted impactionize impactment impages impaint impair impairable impaired impairing impairment impairs impala impalace impalatable impale impaled impalement impaler impaling impalm impalpable impalpably impalsy impaludism impanate impanator impanel impanelment impapase impapyrate impar imparasitic imparisyllabic impark imparl imparsonee impart impartable impartance impartation imparted impartial impartialism impartiality impartially impartialness impartibilibly impartibility impartible impartibly imparting impartivity impartment imparts impassable impassableness impassably impasse impassibilibly impassibility impassible impassibleness impassibly impassionable impassionate impassioned impassionedly impassionedness impassive impassively impassivity impastation impaste impasto impasture impaternate impatible impatience impatiency impatient impatientaceae impatientaceous impatiently impatronize impave impavid impavidity impavidly impeach impeachability impeached impeaching impeachment impeachments impearl impeccability impeccable impeccably impeccance impeccancy impeccant impectinate impecuniary impecuniosity impecunious impecuniously impedance impede impeded impeder impedes impedibility impedible impediment impedimenta impedimentary impediments impeding impeditive impedometer impel impelled impellent impeller impelling impels impended impendence impendent impending impenetrability impenetrable impenetrableness impenetrably impenetration impenetrative impenitence impenitent impenitently impenitentness impenitibleness impennate impennes impent imperance imperare imperata imperation imperatival imperative imperatively imperativeness imperatorial imperatorially imperatorian imperatoribus imperatorious imperatorship imperatory imperceivable imperceivableness imperceivably imperceived imperceiverant imperceptibility imperceptible imperceptibleness imperceptibly imperceptiveness impercipience impercipient imperence imperent imperfect imperfecta imperfected imperfectibility imperfection imperfections imperfectious imperfective imperfectly imperfectness imperforable imperforata imperforate imperformable imperial imperiale imperialin imperialine imperialism imperialist imperialists imperiality imperialize imperially imperialty imperil imperiled imperiling imperilled imperious imperiously imperiousness imperish imperishability imperishable imperishableness imperishably imperium impermanency impermanent impermanently impermeability impermeabilization impermeable impermeably impermutable imperscriptible impersonal impersonality impersonalization impersonally impersonate impersonated impersonation impersonative impersonator impersonatress impersonatrix impersonification impersonify impersonization impersonize imperspirability imperspirable impersuasibility impersuasible impertinacy impertinence impertinences impertinent impertinently impertinentness imperturbability imperturbable imperturbableness imperturbably imperturbation imperturbed imperverse impervestigable imperviability imperviable imperviableness impervious imperviously imperviousness impest impestation impester impeticos impetigo impetition impetration impetrative impetrator impetulant impetuosity impetuous impetuously impetuousness impetus impeyan imphee impi impidint impierceable impiete impieties impiety impinge impinged impingement impingence impingent impious impiously impish impishness impiteous impitiably implacability implacable implacableness implacably implacement implacentalia implacentate implant implanted implanting implants implastic implasticity implausibility implausible implausibleness implausibly implead impleader implement implemental implementation implemented implementer implementiferous implementor implements implete impletion implex impliable implicate implicated implicateness implication implications implicatively implicatory implicit implicitly implied impliedly impliedness implies impling implode implodent implorable imploramus imploration implorator implore implored implorer implores imploring imploringly imploringness implosion implosive implosively implume impluvium imply implying impocket impofo impolarizable impolicy impolite impolitely impolitic impolitical impolitically impoliticalness impoliticly impoliticness impollute imponderabilia imponderability imponderable imponderableness impone imponent impoor impopular imporiant imporosity imporous import importable importance importancia importancy important importantitemsin importantly importants importation importations imported importer importers importing importless importraiture importray imports importunacy importunance importunate importunately importunateness importune importuned importunely importunement importuning importunities importunity imposable imposableness imposal impose imposed imposement imposes imposing imposingly imposingness imposition impositional impositions impositive impossibile impossibilification impossibilist impossibilitate impossibilities impossibility impossible impossibleness impossibly impost imposter imposters impostor impostorism impostors impostress impostrous imposts impostumate impostumation imposture impostures imposturism imposturous impot impotable impotence impotency impotent impotently impotentness impound impoundable impoundage impounded impounder impoundment impoverish impoverished impoverishing impoverishment impracticability impracticable impracticableness impracticably impractical impracticalness imprecant imprecate imprecation imprecations imprecator imprecatorily imprecise imprecisely imprecision impreg impregn impregnability impregnable impregnableness impregnably impregnant impregnate impregnated impregnating impregnation impregnative impregnator impremeditate impreparation imprescience imprescriptibility imprescriptibly imprese impress impressable impressed impresser impresses impressibility impressible impressibly impressing impression impressionable impressionableness impressional impressionality impressionally impressionary impressioned impressionism impressionist impressions impressive impressively impressiveness impressment impressor impressure imprestable imprevisible imprevision imprime imprimis imprimitive imprimitivity impringing imprint imprintcd imprinted imprinter imprinting imprints imprison imprisonable imprisoned imprisoner imprisoning imprisonment imprisonments imprisons improbabilities improbability improbable improbably improbative improbatory improbity improcreant improcurability improcurable improducible improficience improgressively improgressiveness improlificical impromptu impromptuist impromptus improof improper improperation improperly impropriate impropriation impropriatrix impropriety improve improved improvement improvements improver improvership improves improvidence improvident improvidentially improvidently improving improvingly improvisate improvisation improvisational improvisator improvisatorially improvisatorize improvisatory improvise improvised improvisedly improvises improvising improvision improviso improvisor imprudence imprudences imprudency imprudent imprudential imprudently imps impship impuberal impuberate impubic impudence impudency impudent impudently impudentness impudicity impugn impugnable impugnation impugned impugner impugning impugnment impugns impuissance impuissant impulse impulses impulsion impulsive impulsively impulsiveness impunctate impunctual impunement impunible impunibly impunity impure impurely impureness impuritanism impurities impurity imputability imputableness imputably imputation imputations imputative impute imputed imputer imputes imputing imputrescibility imputrescible imputrid impy imshi in inability inabordable inaccentuated inaccentuation inacceptable inaccessibility inaccessible inaccessibleness inaccessibly inaccordance inaccordancy inaccordantly inaccuracies inaccuracy inaccurate inaccurately inachid inachidae inachoid inachus inacquaintance inactinic inaction inactivate inactivated inactivation inactive inactively inactiveness inactivity inactuate inactuation inadaptable inadaptation inadept inadequacy inadequate inadequately inadequateness inadequative inadhesion inadhesive inadjustability inadmissibility inadmissible inadmissibly inadventurous inadvertence inadvertencies inadvertency inadvertent inadvertently inadvisable inadvisableness inaffability inaffable inagglutinable inaggressive inagile inaidable inaja inal inalacrity inalienable inalimental inalterableness inalterably inamissibility inamissible inamissibleness inamorata inamorate inamovability inamovable inane inanely inanga inanimadvertence inanimate inanimated inanimately inanities inanition inanitions inantherate inapathy inappealable inappeasable inappellable inappendiculate inappertinent inappetence inappetency inappetent inapplicability inapplicable inapplicableness inapplicably inapplication inapposite inappositely inappreciable inappreciative inappreciatively inappreciativeness inapprehensible inapprehensive inapprehensiveness inapproachability inapproachable inapproachably inappropriable inappropriableness inappropriate inappropriateness inapt inaptitude inaptly inaptness inaqueous inarable inarch inarculum inarguably inarm inarticulacy inarticulata inarticulate inarticulated inarticulately inarticulateness inartificial inartificiality inartificially inartistic inartistical inartisticality inartistically inasmuch inassimilable inassimilation inattention inattentive inattentively inattentiveness inaudibility inaudible inaudibly inaugural inaugurate inaugurated inauguration inaugurative inaugurer inaurate inauration inauspicious inauspiciously inauspiciousness inauthentic inauthenticity inauthoritative inaxon inbeaming inbeing inbending inbent inbirth inblow inblown inboard inbond inborn inbound inbread inbreak inbreaking inbreather inbred inbreed inbring inby incalculable incalculableness incalculably incalescent incalver incameration incan incandent incandescence incandescency incandescent incanous incant incantation incantations incantator incanton incapability incapable incapables incapably incapacious incapacitate incapacitated incapacitating incapacitation incapacity incapsulate incarcerate incarcerated incarceration incarcerations incarcerator incardinate incardination incarial incarmined incarn incarnadine incarnadined incarnant incarnate incarnated incarnates incarnating incarnation incarnational incarnationis incarnationist incarnative incase incased incast incatenation incaution incautious incautiously incautiousness incavate incavated incavern incelebrity incendiary incendivity incensation incense incensed incenseless incensement incenses incensory incensurable incenter incentive incentively incentives incentor inception inceptive inceptively inceptor inceration incertitude incessable incessably incessancy incessant incessantly incest incestuous incestuously incestuousness inch inchanted inchased inched inches inchmeal inchned inchoacy inchoant inchoate inchoately inchoateness inchoation inchued inchworm incidence incidences incident incidental incidentally incidentalness incidentals incidents incincti incinerable incinerate incinerating incineration incinerator incipient incipiently incipit incircumspect incircumspection incircumspectly incisal incise incised incisely incises incisiform incising incision incisional incisions incisive incisively incisiveness incisor incisorial incisors incitable incitant incitation incite incited incitement incitements inciter inciting incitingly incitive incitress incivility incivilization inclemency inclement inclemently inclementness inclinable inclinableness inclination inclinational inclinations inclinatorily inclinatorium inclinatory inclinced incline inclined incliner inclines inclining inclinometer inclip inclose inclosed incloses inclosing inclosure includable include included includedness includer includes including inclusa incluse inclusion inclusionist inclusive inclusively inclusiveness inclusory incoalescence incogent incogitability incogitancy incogitantly incogitative incognita incognitive incognito incognizable incognizance incognizant incognoscent incognoscibility incognoscible incoherence incoherences incoherency incoherent incoherentific incoherently incoherentness incohering incohesion incohesive incoincidence incombustible incombustibly income incomer incomers incomes incoming incomings incommensurability incommensurable incommensurableness incommensurate incommensurately incommensurateness incommiscibility incommiscible incommodate incommodation incommode incommoded incommodement incommoding incommodious incommodiousness incommodity incommunicability incommunicable incommunicableness incommunicado incommunicatively incommunicativeness incommutability incommutable incommutableness incompact incompactness incomparability incomparable incomparableness incomparably incompassionate incompassionately incompassionateness incompatability incompatibility incompatible incompatibleness incompatibly incompendious incompensation incompetence incompetency incompetent incompetently incompetentness incompletability incompletable incomplete incompleted incompletely incompleteness incompletion incompliance incompliancy incompliant incompliantly incomplicate incomplying incomposed incomposedly incomposedness incomposite incomprehended incomprehending incomprehendingly incomprehensibility incomprehensible incomprehensibly incomprehension incomprehensive incomprehensively incomprehensiveness incompressibility incompressible incompressibly inconcealable inconceivable inconceivableness inconceivably inconcinnately inconcinnity inconcinnous inconcludent inconcluding inconclusion inconclusive inconclusively inconcrete inconcurring incondensability incondensable incondite inconditionate inconditioned inconducive inconeivably inconfirm inconformable inconformably inconfused inconfusedly inconfutably incongealableness incongenial incongeniality inconglomerate incongruence incongruently incongruities incongruity incongruous incongruously incongruousness inconjoinable inconnu inconscience inconscient inconscious inconsciously inconsecutive inconsecutiveness inconsequence inconsequent inconsequential inconsequentialities inconsequentiality inconsequentially inconsequently inconsequentness inconsequents inconsiderable inconsiderate inconsiderately inconsideration inconsistence inconsistencies inconsistency inconsistent inconsistently inconsistentness inconsolability inconsolable inconsolableness inconsolably inconsolately inconsonant inconsonantly inconspicuous inconspicuously inconstancy inconstant inconstantly inconstantness inconstruable inconsultable inconsumably incontemptible incontestability incontestable incontestably incontinence incontinency incontinent incontinently incontinuity incontinuous incontractile incontraction incontrollable incontrollably incontrolled incontrovertibility incontrovertible incontrovertibly inconvenience inconvenienced inconveniences inconveniency inconvenient inconveniently inconvenientness inconversant inconversibility inconvertibility inconvertible inconvertibleness inconvinced inconvincibility inconvincible inconvincibly incoordination incopresentability incoronate incoronated incorporate incorporated incorporatedness incorporates incorporating incorporation incorporative incorporator incorporeal incorporealist incorporeality incorporealize incorporeally incorporeity incorporeous incorpse incorrect incorrection incorrectly incorrectness incorrespondence incorrespondency incorrigibility incorrigible incorrigibly incorrodable incorrosive incorrupt incorrupted incorruptibility incorruptible incorruptibleness incorruptibly incorruption incorruptly incorruptness incourteously incrash incrassate incrassated incrassative increasable increasableness increase increased increasedly increaseful increasement increaser increases increaseth increasing increasingly increate increately increative incredibility incredible incredibleness incredibly incredulities incredulity incredulous incredulously incredulousness incremation increment incremental incremented incremento increments increpate increpation increscence increscent increses increst incretionary incriminate incriminating incrimination incriminator incroach incroached incross incrossbred incrotchet incruent incruental incruentous incrust incrustant incrustata incrustate incrustation incrustations incrusted incrustive incrystal incrystallizable incubate incubated incubating incubation incubational incubative incubator incubatorium incubous incubus incudal incudate incudectomy incudes incudostapedial inculcate inculcated inculcation inculcative inculcator inculcatory inculpable inculpably inculpate inculpation inculpative inculpatory incultivation inculture incumbence incumbencies incumbency incumbent incumbentess incumbently incumbents incumber incumbered incumberment incumbrance incumbrancer incunable incunabular incunabulist incunabulum incur incurability incurable incurably incuriosity incurious incuriously incuriousness incurrable incurred incurrence incurrent incurrer incurring incurs incurse incursion incursionist incursions incursive incurvate incurvation incurvature incurved incus ind indaba indaconitine indagate indagation indagative indagator indagatory indagatrix indan indane indanthrene indazin indazine indazol indazole inde indebt indebted indebtedness indecency indecent indecently indecentness indecidua indeciduous indecipherableness indecision indecisive indecisively indeclinable indeclinableness indecomposableness indecorous indecorousness indecorum indeed indeedy indefaceable indefatigable indefatigableness indefatigably indefeasibility indefeasible indefeasibleness indefeasibly indefeatable indefectibly indefective indefensibility indefensible indefensibleness indefensive indeficiency indeficient indeficiently indefinable indefinableness indefinably indefinite indefinitely indefiniteness indefinitive indefinitively indefinity indefluent indeformable indehiscence indelectable indelegability indelegable indeliberately indeliberateness indeliberation indelible indelibly indelicacy indelicate indelicately indemnification indemnificatory indemnified indemnifier indemnify indemnitor indemnity indemonstrability indemonstrable indemonstrably indene indent indentation indentations indented indentedly indentee indenter indentment indentor indenture indentured indentures indentureship indentwise independable independance independancy independant independantly independence independency independent independentism independently independents independista indeposable indeprehensible indeprivability inderal inderivative indescribable indescribably indescript indesert indestructibility indestructible indestructibleness indetectable indeterminable indeterminableness indeterminably indeterminate indeterminately indeterminateness indetermination indeterminism indeterministic indevirginate indevoted indevotion indevoutly index indexed indexer indexes indexical indexically indexing indexless indexlessness indexterity india indiadem indian indianeer indianesque indianism indianist indianite indianization indianize indians indiarubber indic indica indicable indican indicant indicanuria indicate indicated indicates indicating indication indications indicative indicatively indicator indicatorinae indicators indices indicia indicium indicolite indict indictable indicted indictee indicter indictional indictive indictment indictments indies indiferous indifference indifferences indifferent indifferentiae indifferential indifferentism indifferentist indifferentistic indifferently indigant indigena indigenal indigenate indigence indigency indigenist indigenity indigenous indigent indigested indigestedness indigestibility indigestible indigestibleness indigestibly indigestion indigestive indigitate indigitation indign indignance indignancy indignant indignantly indignatio indignation indignatory indignify indignities indignity indignly indigo indigoberry indigoferous indigoid indigotin indigotindisulphonic indiguria indimensional indiminishable indirect indirected indirection indirections indirectly indirectness indirrubber indiscerned indiscernibility indiscernible indiscernibleness indiscernibly indiscerptible indiscerptibleness indisciplinable indiscipline indisciplined indiscoverably indiscovered indiscreet indiscreetly indiscreetness indiscrete indiscretely indiscretion indiscretionary indiscretions indiscriminate indiscriminated indiscriminately indiscriminateness indiscriminating indiscriminatingly indiscrimination indiscriminative indiscriminatory indiscussable indiscussible indispellable indispensable indispensableness indispensablest indispensably indispose indisposed indisposedness indisposes indisposition indispositions indisputability indisputable indisputably indissipable indissociable indissolubility indissoluble indissolubly indissolute indissolvability indissolvable indissolvableness indissolvably indissuadable indissuadably indistinct indistinctively indistinctiveness indistinctly indistinctness indistinguishable indistinguishableness indistinguishably indistinguished indistortable indisturbable indisturbed indite inditement inditer indium individable individual individualism individualist individualistic individualistically individualists individualities individuality individualization individualize individualized individualizer individualizes individually individuals individuate individuation individuative individuator individuity individuum indivisibility indivisible indivisibleness indivisibly indivision indochina indochinese indocibility indocible indocibleness indocile indocility indocin indoctrinate indoctrinated indoctrinating indoctrination indoctrinator indoctrinization indoctrinize indoeuropean indogaea indogen indogenide indogermanischen indol indole indolence indolent indolently indoles indoline indology indomitable indomitableness indone indonesia indonesian indoor indoors indophenin indophenol indophilist indorse indorsed indorsee indorsement indorsements indorser indorsing indraft indraught indrawal indrawing indrawn indris indubious indubiously indubitable indubitableness indubitably indubitatively inducas induce induced inducedly inducement inducements inducer inducers induces induciae inducible inducing induct inductance inductee inductility induction inductionally inductionless inductions inductive inductively inductiveness inductophone inductor inductory inductoscope indue indued induement indujging indulge indulgeable indulged indulgence indulgenced indulgences indulgency indulgent indulgentially indulgently indulgentness indulger indulges indulging indulgrence indult indulto indument indumentum induna induplicate induplication induplicative indurable indurate indurated indurating induration indurative indus indusiate indusiated indusiform indusioid indusium industaes industrial industrialist industrialize industrialized industrially industries industrious industriously industriousness industrochemical industry induviate indweller indylic inebriate inebriative inebrious ineconomic ineconomy inedibility inedible inedite inedited inedites inediti ineditos inedits ineducable ineducation ineffable ineffableness ineffably ineffaceability ineffaceable ineffaceably ineffectibly ineffective ineffectively ineffectiveness ineffectual ineffectuality ineffectually ineffervescence ineffervescent ineffervescibility ineffervescible inefficacious inefficaciously inefficience inefficiencies inefficiency inefficient inefficiently ineffulgent inelaborated inelaborately inelastic inelasticate inelasticity inelegance inelegant inelegantly ineligibility ineligible ineligibly ineloquence ineloquent ineluctability ineluctable ineluctably ineludible ineludibly inemendable inemotivity inenarrable inenergetic inenubilable inenucleable inept ineptitude ineptness inequable inequalities inequality inequally inequidistant inequigranular inequilateral inequilibrium inequilobed inequipotentiality inequitable inequitably inequivalent inequivalve ineradicable ineradicableness ineradicably inerasable inerasably ineri inermi inermia inermous inerrable inerrableness inerratic inerringly inert inertance inertia inertial inertion inertly inertness inerudite inescapable inescapableness inescapably inesculent inessentiality inestimability inestimable inestimableness inestimably inestivation inethical ineundam ineunt ineuphonious inevadible inevaporable inevasible inevidence inevident inevitability inevitable inevitableness inevitably inexact inexacting inexactitude inexactly inexactness inexcitability inexcitable inexclusively inexcommunicable inexcusable inexcusably inexhaustedly inexhaustibility inexhaustible inexhaustibleness inexhaustibly inexigible inexist inexistence inexorability inexorable inexorableness inexorably inexpansive inexpectancy inexpected inexpectedly inexpectedness inexpediency inexpedient inexpensive inexperience inexperienced inexpert inexpiableness inexpiably inexplainable inexplicability inexplicable inexplicables inexplicably inexplicit inexplicitness inexplorable inexplosive inexportable inexpress inexpressible inexpressibleness inexpressibles inexpressibly inexpressive inexpressively inexpressiveness inexpugnability inexpugnable inexpugnableness inexpugnably inexpungeable inexpungible inextant inextensible inextensile inextensional inexterminable inextinct inextinguishable inextinguishably inextirpableness inextricability inextricable inextricableness inextricably inez inf inface infallibilism infallibilist infallibility infallible infallibleness infallibly infalsificable infame infamonize infamous infamously infamousness infamy infancy infandous infanglement infant infanta infantado infantia infanticidal infanticide infantile infantilism infantine infantlike infantry infantryman infantrymen infants infanzia infarctate infarcted infarction infarcts infare infartion infatuated infatuatedly infatuating infatuation infatuator infaust infeasibility infeasibleness infect infectant infected infecting infection infections infectiosum infectious infectiously infectiousness infective infectiveness infectivity infector infectress infects infecund infecundity infeed infeftment infelicific infelicitous infelicitously infelicitousness infelicity infelonious infelt infeminine infer inferable inference inferences inferent inferential inferentialism inferentialist inferentially inferior inferiorism inferiority inferiors inferis infern infernal infernalism infernalize infernally infernalry infernalship inferno inferoanterior inferolateral inferoposterior inferred inferribility inferrible inferring inferringly infers infertile infertilely infest infestation infestations infested infester infesting infestive infestment infeudation infibulate infibulation inficete infidel infidelic infidelical infidelistic infidelities infidelity infidelize infidelly infidels infield infight infilling infilm infilter infiltrate infiltration infiltrations infimum infinitarily infinitary infinitate infinite infinitely infiniteness infinites infinitesimal infinitesimally infiniteth infinities infinitival infinitivally infinitive infinitively infinitives infinitize infinitude infinitum infinity infirm infirmarer infirmarian infirmary infirmate infirmation infirmities infirmity infirmly infirmness infissile infit infix infixion inflame inflamed inflamedly inflamedness inflames inflaming inflamingly inflamitory inflammability inflammable inflammation inflammations inflammative inflammatory inflatable inflate inflated inflatedly inflater inflates inflatile inflating inflation inflationary inflationism inflatus inflect inflectedness inflection inflectional inflectionally inflections inflective inflexed inflexibility inflexible inflexibleness inflexibly inflexions inflexive inflict inflictable inflicted inflicter inflicting infliction inflictions inflicts inflood inflorescence inflow inflowing influence influenceable influenced influencer influences influencing influencive influent influential influentiality influentially influenza influenzae influenzic influx influxible influxionism infold infolded infolder infolding infoldment infoliate inforce inforced inform informal informalities informality informalize informally informant informants informatica information informational informations informative informatory informed informer informers informidable informing informity informs infortiate infortitude infortunate infortunately infortune infra infrabasal infrabestial infrabuccal infracaudal infracelestial infracephalic infraclavicular infraclusion infraconscious infracotyloid infract infractible infraction infractions infractor infradentary infradiaphragmatic infragenual infraglottic infragrant infragular infrahyoid infralinear infralittoral inframammary inframandibular inframarginal inframaxillary inframercurial inframercurian inframolecular inframontane inframundane infranatural infrangibility infrangible infrangibleness infrangibly infranodal infranuclear infraoccipital infraocclusion infraocular infraorbital infraordinary infrapatellar infraperipherial infraprotein infraradular infrarimal infrascientific infraspinal infraspinatus infraspinous infrastapedial infrasternal infrastipular infrastructure infratemporal infraterrene infrathoracic infratracheal infratrochlear infratubal infravaginal infraventral infrequency infrequent infrequently infrigidate infrigidation infrigidative infringe infringed infringement infringements infringer infringes infringing infructuose infructuosity infructuous infrustrable infumate infundibular infundibulata infundibulate infundibulum infuriate infuriated infuriately infuriating infuriatingly infuriation infuscate infuscation infuse infused infusedly infuser infuses infusibility infusible infusibleness infusile infusing infusion infusionism infusionist infusions infusive infusoria infusorial infusorian infusoriform infusorioid infusorium ing inga ingaevones ingaevonic ingage ingallantry ingate ingatherer ingathering ingeldable ingenerability ingenerably ingenerate ingenerately ingenerative ingenile ingeniosity ingenious ingeniousest ingeniously ingeniousness ingenit ingenue ingenuities ingenuity ingenuous ingenuously ingenuousness ingest ingesta ingested ingestible ingesting ingestion ingestive inghilois ingiving ingle inglenook ingleside inglobate inglobe inglorious ingloriously ingluvial ingluvies ingluviitis ingly ingoing ingot ingotman ingots ingraft ingrafted ingrafting ingrain ingrained ingrainedness ingram ingrammaticism ingrandize ingratefully ingrately ingratiate ingratiates ingratiating ingratiatingly ingratiation ingratiatory ingratitude ingravescent ingravidate ingravidation ingredient ingredients ingress ingressive ingross ingrowing ingrown ingrownness ings inguen inguinal inguinoabdominal inguinocrural inguinocutaneous inguinodynia inguinolabial inguinoscrotal inguklimiut ingulf ingulfed ingulfment ingurgitation inhabit inhabitable inhabitancy inhabitant inhabitants inhabitation inhabitativeness inhabited inhabitedness inhabiteth inhabiting inhabitiveness inhabits inhalant inhalation inhalations inhalator inhale inhaled inhalement inhalent inhaler inhalers inhales inhaling inharmonic inharmonical inharmonious inharmoniously inharmoniousness inharmony inhaul inhauler inhaustion inhearse inheaven inhere inherence inherency inherent inherently inhering inherit inheritability inheritable inheritableness inheritably inheritage inheritance inheritances inherited inheriting inheritor inheritrice inheritrix inherits inhesion inhiate inhibit inhibitants inhibited inhibiting inhibition inhibitionist inhibitive inhibitor inhibitors inhibitory inhibits inholding inhomogeneity inhomogeneously inhospitable inhospitableness inhospitably inhospitality inhuman inhumane inhumanely inhumanism inhumanity inhumanize inhumanly inhumanness inhumate inhumation inhumationist inhume inhumorous inhumorously ini inidoneity inidoneous inigenue inigo iniguinal inimical inimically inimitable inimitableness inimitably ining iniome iniomi iniomous inion iniquitable iniquitably iniquities iniquitous iniquitously iniquitousness iniquity inirritable inirritant inirritative initial initiale initialer initialist initialization initialized initially initials initiate initiated initiates initiating initiation initiative initiatively initiatives initiators initiatory initiatress initiatrix initis initive inject injected injecting injection injections injector injects injelly injudicial injudicious injudiciously injunct injunction injunctions injunctive injunctively injurable injure injured injurer injures injuries injuring injurious injuriously injuriousness injury injustice ink inkberry inkblot inkbottle inkerman inket inkfish inkholder inkhorn inkhornism inkhornist inkhornize inkiest inkindle inkish inkle inkless inklike inkling inklings inkmaker inkmaking inknot inkpot inkra inkroot inks inkslinger inkslinging inkstain inkstains inkstand inkstandish inkstone inkweed inkwell inkwood inkwriter inky inlagation inlaid inlaik inlake inland inlander inlarge inlaw inlawry inlaying inlays inleague inleak inleakage inlet inlets inlier inlluence inlooker inlported inly inlying inman inmate inmates inmeats inmost inn innards innascibility innascible innate innately innateness innatism innative innaturality innaturally innavigable inner innercent innerds inneren innermost innerness innersole innervating innervation innervational inness innet inninmorite innisfail innkeeper innocence innocency innocent innocently innocentness innocents innocuous innocuousness innominable innominables innominatum innovate innovation innovational innovationist innovations innovator innovators innovatory innoxious innoxiously innoxiousness inns innuendo innuendoes innuit innumerable innumerably innumerous innutrition innutritious innutritive inobedience inobedient inobediently inoblast inobnoxious inobservable inobservance inobservancy inobservant inobservantly inobservantness inobservation inobtainable inobtrusive inobtrusiveness inobvious inocarpus inoccupation inochondritis inoculability inoculable inoculant inocular inoculate inoculated inoculating inoculation inoculum inocyte inodorous inodorously inodorousness inoepithelioma inoffensive inoffensively inoffensiveness inofficial inofficially inofficiosity inofficiously inofficiousness inogenesis inogenic inogenous inohymenitic inomyoma inomyositis inomyxoma inone inoperable inoperative inoperculata inopes inopinate inopportune inopportunely inopportuneness inopportunist inopportunity inoppressive inoppugnable inopulent inorb inorderly inordinacy inordinary inordinate inordinately inordinateness inorganic inorganical inorganically inorganizable inorganized inornate inosclerosis inosculate inosculation inosic inosin inosinic inositol inova inoxidable inparabola inpardonable inpatient inpayment inpensioner inphase inpolygon inproved inpush input inquaintance inquartation inquest inquests inquestual inquiet inquietation inquietly inquietness inquietude inquinate inquirant inquiration inquire inquired inquirendo inquirent inquirer inquirers inquires inquiries inquiring inquiringly inquiry inquisite inquisition inquisitionist inquisitions inquisitive inquisitively inquisitiveness inquisitor inquisitorial inquisitorially inquisitorialness inquisitorious inquisitors inquisitorship inquisitory inquisitress inquisitrix inquisiturient inradius inreality inreases inrichment inrigged inrigger inrighted inring inro inroad inroader inroads inroll inrub inrun inrush ins insack insagacity insalivation insalubrious insalubrity insalutary insalvability insalvable insane insanely insaneness insanest insanify insanitariness insanitary insanitation insanity insapiency insapient insatiability insatiable insatiableness insatiate insatiated insatiately insatisfaction insaturable inscibile inscribable inscribableness inscribe inscribed inscriber inscribes inscribing inscriotion inscript inscriptible inscription inscriptional inscriptioned inscriptionist inscriptionless inscriptions inscriptionum inscriptive inscriptively inscriptured inscroll inscrutability inscrutable inscrutableness inscrutables inscrutably insculpture insea inseam insect insecta insectarium insectary insectean insected insecticide insecticides insectiferous insectiform insectile insection insectival insectivora insectivore insectivorous insectlike insectologer insectologist insectology insectproof insects insecty insecure insecurely insecurity insee inseer inselberg insemination insensate insensately insensateness insense insensibility insensibilization insensibilize insensibilizer insensible insensibly insensitive insensitiveness insensitivity insensuous insentience insentiency insentient inseparability inseparable inseparableness inseparably inseparately insert insertable inserted inserter inserting insertion insertions inserts insessor insessores inset insets insetter insetting inseverable inseverably inshave inshell inshining inship inshoe inshoot inshore inshrined inside insider insiders insides insidious insidiously insidiousness insight insightful insights insigne insignia insignificance insignificant insignificantly insignis insimplicity insincere insincerely insincerities insincerity insinking insinuate insinuated insinuating insinuation insinuations insinuative insinuatively insinuativeness insinuator insinuatory insinuendo insipid insipidity insipidness insipience insist insistance insisted insistence insistency insistent insistently insister insisting insistive insists insititious insnarement insnarer insobriety insociability insociable insociableness insociably insocial insocially insofar insolation insole insolence insolences insolent insolently insoles insolid insolidity insoluable insolubility insoluble insolubleness insolubly insolvable insolvence insolvency insolvent insomnia insomniac insomniacs insomnias insomnious insomnolence insomnolency insomnolent insomuch insonorous insorb insouciant insouciantly inspan inspeak inspect inspectable inspected inspecting inspectingly inspection inspectioneer inspections inspective inspector inspectoral inspectors inspectorship inspectrix inspects inspheration insphere insphering inspirability inspirant inspirati inspiration inspirational inspirationalism inspirations inspirato inspirator inspiratory inspiratrix inspire inspired inspiredly inspirer inspirers inspires inspiring inspiringly inspirit inspirited inspiriter inspiriting inspiritingly inspiritment inspissant inspissation inspissator inspissosis inspoke inspreith instability instable install installant installation installations installed installer installing installment installments instalment instalments instance instanced instances instancy instanding instant instantaneity instantaneous instantaneously instantaneousness instanter instantial instantly instantness instants instar instate instatement instaurator instead instealing insteep instep instid instigant instigate instigated instigation instigative instigator instigatrix instil instill instillation instillator instillatory instilled instiller instilling instillment instills instinct instinctive instinctively instinctivist instinctivity instincts instinctual instipulate institor institorian institory institute instituted instituter institutes instituting institution institutional institutionalism institutionality institutionalize institutionalized institutionary institutione institutionize institutions institutive institutively institutor institutress institutrix instonement instrengthen instroke instruct instructed instructedness instructer instructeth instructing instruction instructional instructionary instructione instructions instructive instructively instructiveness instructor instructors instructorship instructress instructs instruire instrument instrumental instrumentalism instrumentalist instrumentality instrumentally instrumentary instrumentate instrumentation instrumentative instrumentist instrumentman instruments insuavity insubduable insubmersible insubmission insubmissive insubordinate insubordinately insubordinateness insubordination insubstantial insubstantiality insubstantially insubstantiate insubvertible insuccess insucken insue insufferable insufferableness insufferably insufficent insufficience insufficiency insufficient insufficiently insufflation insufflator insula insular insulary insulate insulated insulating insulation insulator insulators insulin insulins insulize insulse insulsity insult insultable insultant insultation insulted insulting insultingly insultproof insults insunk insuperability insuperable insuperableness insupportable insupportableness insupportably insupposable insuppressibly insurable insurance insurances insurant insure insured insurer insures insurgency insurgent insurgentism insurgents insuring insurmountability insurmountable insurmountableness insurpassable insurrect insurrection insurrectionally insurrectionary insurrectionist insurrectionize insurrections insurrectory insusceptible insusceptibly inswamp inswarming insweeping inswell inswept inswing inswinger intact intactly intactness intagliated intagliati intaglio intaglios intake intaker intangibilities intangibility intangible intangibleness intangibly intarissable intarsiate intarsist intastable intaxable integer integrability integrable integral integrality integralize integrand integraph integrate integration integrative integrator integrifolious integriously integripalliate integrity integrodifferential integropallial integument integumentary integumentation inteind intellect intellectation intellection intellective intellects intellectual intellectualism intellectualist intellectuality intellectualization intellectualizer intellectually intellectualness intellectuals intelligence intelligenced intelligencer intelligences intelligency intelligent intelligential intelligently intelligentsia intelligibility intelligible intelligibleness intelligibly intelligize intemerate intemerately intemerateness intemperable intemperably intemperament intemperance intemperate intemperately intemperature intempestivity intemporal intenability intenbe intend intendance intendant intendantship intended intendedly intendedness intendence intender intendible intending intendingly intendit intendment intends inteneration intenible intensate intensative intense intensely intenseness intenser intensest intensification intensified intensifies intensify intensifying intension intensional intensionally intensities intensity intensive intensively intensiveness intensol intent intention intentional intentionalism intentionality intentionally intentioned intentionless intentions intentive intentiveness intently intentness intents inter interacademic interaccessory interaccuse interacinar interacinous interact interacting interaction interactional interactionism interactionist interactions interactive interactivity interacts interadaptation interaffiliation interagent interagglutinate interagglutination interagree interagreement interalar interallied interalveolar interambulacrum interantagonism interantennal interapophyseal interapplication interarboration interarch interarched interarcualis interarmy interarticular interartistic interarytenoid interassociation interassure interasteroidal interatomic interatrial interattrition interaulic interaural interavailable interaxal interaxillary interaxis interbalance interbanded interbank interbedded interbelligerent interbody interborough interbourse interbrachial interbrain interbranch interbranchial interbreath interbrigade interbronchial intercadence intercalare intercalarium intercalary intercalate intercalated intercalation intercalatory intercale intercalm intercanal intercanalicular intercapillary intercardinal intercarpal intercarpellary intercarrier intercartilaginous intercaste intercausative intercavernous intercede interceded interceder intercedes interceding intercellular intercensal intercentral intercentrum intercept intercepted intercepting interceptive interceptor intercerebral intercession intercessional intercessionary intercessionment intercessions intercessor intercessorial interchange interchangeability interchangeable interchangeableness interchangeably interchanged interchanger interchanging interchapter interchase interchoke interciliary intercircle intercity interclash interclasp interclass interclavicular intercloud interclub intercoastal intercoccygean intercollegian intercolline intercolonial intercolonially intercolumniations intercom intercombat intercombination intercome intercommon intercommonage intercommoner intercommunal intercommune intercommuner intercommunicability intercommunicate intercommunication intercommunicative intercompany intercompare intercomplexity intercomplimentary intercondylar intercondylic intercondyloid interconfessional interconfound interconnect interconnection interconnexion intercontradiction interconversion interconvertibility interconvertible interconvertibly intercooling intercoracoid intercorpuscular intercorrelate intercorrelation intercortical intercosmically intercostal intercostally intercostobrachial intercounty intercourse intercoxal intercreate intercrinal intercross intercrossings intercrural intercrust intercrystalline intercrystallization intercrystallize intercultural intercurl intercurrence intercursation intercutaneous intercystic interdash interdental interdentally interdentil interdepartmental interdepartmentally interdepend interdependable interdependence interdependency interdependent interderivative interdestructive interdestructiveness interdetermination interdict interdicted interdiction interdictory interdicts interdictum interdiffusion interdiffusive interdiffusiveness interdigital interdigitate interdigitation interdine interdiscal interdispensation interdistrict interdorsal interdrink interduce intereat interelectrode interempire interenjoy interentanglement interepimeral interepithelial interequinoctial interesred interest interested interestedly interestedness interester interesting interestingly interestingness interestless interests interface interfacial interfactional interfamily interfascicular interfault interfector interfederation interfenestration interferant interfere interfered interference interferent interferential interferer interferes interfering interferingly interferingness interferon interferons interferric interfertile interfertility interfibrillary interfibrous interfilamentar interfilamentary interfilamentous interfilar interfinger interflange interflow interfluence interfluminal interfluous interfoliaceous interfoliar interfoliate interfraternity interfret interfretted interfruitful interfuse interfused interfusion interganglionic intergenerating intergential intergilt interglacial interglyph intergossip intergovernmental intergrade intergraft intergranular intergrapple intergroupal intergrown intergrowth intergular interhabitation interhemal interhemispheric interhostile interhuman interhyal interhybridize interim interimist interimistic interimistical interimistically interimperial interincorporation interindependence interindicate interinfluence interinhibition interinhibitive interinsert interinsurance interinsurer interionic interior interiority interiorize interiorly interiors interirrigation interisland interjacent interjaculate interjangle interjealousy interject interjected interjection interjectional interjectionalize interjectionally interjectionary interjections interjectiveness interjectorily interjectural interjoist interjudgment interkinesis interkinetic interknot interknow interknowledge interlaboratory interlace interlaced interlacement interlacery interlaces interlacing interlacings interlaid interlake interlamellar interlamellation interlaminar interlamination interlanguage interlap interlard interlardation interlarding interlardment interlatitudinal interlay interleaf interleague interleave interleaved interleaver interleukin interlibel interlibrary interlie interligamentous interlight interlimitation interline interlineally interlinear interlineary interlineate interlineation interlined interliner interlingua interlingual interlinguistic interlining interloan interlobar interlobate interlobular interlocal interlocally interlocate interlocation interlock interlocked interlocker interlocular interloculus interlocution interlocutive interlocutor interlocutorily interlocutors interlocutory interlocutress interloper interloping interlot interlucation interlucent interlude interludes interlunation interlying intermalleolar intermammillary intermarine intermarriage intermarriageable intermarriages intermarried intermarry intermarrying intermatch intermaxillar intermaxillary intermeasure intermeddle intermeddlement intermeddler intermeddlesomeness intermeddling intermediae intermediaries intermediary intermediate intermediately intermediation intermediator intermedius intermeet intermelt intermeningeal intermenstrual intermenstruum interment intermental intermention interments intermercurial intermesenterial intermesenteric intermessage intermetacarpal intermetameric intermetatarsal intermewed intermigration interminable interminably interminant interminate intermine intermingle intermingled intermingling interminister interministerial interministerium intermission intermissions intermit intermitted intermittedly intermittence intermittences intermittency intermittent intermittently intermitter intermitting intermix intermixed intermixtly intermixture intermobility intermodification intermodulation intermolar intermolecular intermomentary intermontane intermorainic intermountain intermundial intermunicipal intermunicipality intermural intermuscular intermutation intermutually intern internal internalization internalize internally internals internarial internasal international internationale internationales internationalism internationalist internationalization internationalize internecine internecion internecive internescine interneural interneuronic internist internment internobasal internode internodium internunciary internunciatory internuncio internuncius internuptial interobjective interoceanic interoceptive interoceptor interocular interoffice interopercle interopercular interoperculum interoptic interorbital interosculant interosculate interossei interosseous interownership interpage interpalatine interparenchymal interparental interparenthetical interparenthetically interparietale interparliament interparliamentary interparoxysmal interparty interpave interpeal interpectoral interpeduncular interpel interpellant interpellation interpellator interpenetrable interpenetrate interpenetrated interpenetration interpenetrative interpenetratively interpervade interpetiolar interphalangeal interphase interplacental interplant interplay interpleader interpledge interpleural interplical interplicate interplight interpoint interpol interpolable interpolant interpolary interpolate interpolated interpolating interpolation interpolative interpole interpolity interpone interportal interposable interposal interpose interposed interposes interposing interposingly interposition interpour interpressure interpret interpretability interpretableness interpretably interpretation interpretational interpretations interpretatively interpretatus interpreted interpreter interpreters interpretership interpreting interpretorial interpretress interprets interproduce interprofessional interproglottidal interprotoplasmic interpterygoid interpubic interpulmonary interpunction interpunctuation interpupillary interquarrel interrace interracial interradial interradially interradiate interradiation interramicorn interramification interred interreflection interregal interregimental interregional interregnum interreign interrelated interrelatedly interrelatedness interrelation interreligious interrenal interrepellent interrepulsion interrer interresponsibility interreticular interreticulation interrex interrhyme interright interriven interroad interrogability interrogable interrogant interrogate interrogated interrogatee interrogates interrogating interrogatingly interrogation interrogational interrogations interrogative interrogatively interrogatives interrogator interrogatorily interrogatory interrun interrupt interrupted interruptedness interrupter interruptible interrupting interruptingly interruption interruptions interruptive interruptory interruptress interrupts intersale intersalute interscapilium interscapular interscapulum interschool interscribe interscription intersect intersected intersecting intersection intersections intersects intersegmental intersentimental interseptal intersertal intersession intersessional interset intersex intersexuality intershoot intershop intershot intersocial intersociety intersolubility intersoluble intersomnial intersomnious intersow interspace interspaced interspaces interspatial interspatially interspeaker interspecific interspersal intersperse interspersed interspersing interspersion interspheral interspinalis interspinous interspiration intersprinkle interstage interstaminal interstapedial interstate interstation intersterile intersterility intersternal interstice intersticed interstices interstimulate interstimulation interstitial interstitious interstratification interstratified interstratify interstreak interstream interstriation interstrive intersubjective intersubsistence intersystem intersystematical intertalk intertangle intertanglement interteam intertentacular intertergal interterminal interterritorial intertexture interthronging intertidal intertie intertill intertillage intertinge intertissued intertone intertonic intertouch intertrace intertrade intertrading intertraffic intertragian intertransformable intertransmissible intertransmission intertransversal intertransversary intertransverse intertrappean intertribal intertriginous intertriglyph intertrigo intertrinitarian intertrochanteric intertropic intertropical intertropics intertrude intertubercular intertwin intertwined intertwining intertwist intertwistingly intertype interungulate interunion interuniversity interurban interureteric intervaginal interval intervallic intervallum intervals intervalvular intervarietal intervascular intervenant intervene intervened intervener intervenes intervenience interveniency intervenient intervening intervenor intervention interventionism interventions interventive interventor interventral intervenular interversion intervert intervertebra intervertebrally interverting intervesicular interview interviewable interviewed interviewee interviewer interviewing interviews intervisible intervisitation intervocal intervolute intervolve interwar interweave interweavement interweaver interweaving interweld interwhiff interwhile interwish interword interwork interworks interworry interwound interwove interwoven interwovenly interwrap interwreathe interzonal interzone interzygapophysial intestable intestacy intestate intestation intestinal intestinally intestine intestineness intestines intestiniform intestinovesical intextine inthistownstandingtavern inthrallment inthrong inthronization inthronize inthrow inthrust intil intima intimacies intimacy intimal intimate intimated intimately intimateness intimater intimates intimating intimation intimations intimes intimidate intimidated intimidates intimidating intimidation intimidator intimidatory intimite intimos intinction intinded intine intitule intituling into intolerability intolerable intolerableness intolerably intolerance intolerancy intolerant intolerantly intolerantness intomb intonation intonations intone intoned intonement intoner intoning intonings intoothed intorsion intort intorthe intoxicants intoxicate intoxicated intoxicatedness intoxicates intoxicating intoxicatingly intoxication intoxicator intra intrabiontic intrabuccal intracalicular intracanalicular intracardiac intracarpal intracarpellary intracartilaginous intracellular intracellularly intracephalic intracerebellar intracerebrally intracervical intrachordal intracistern intracloacal intracoelomic intracolic intracollegiate intracommunication intracompany intracontinental intracorporeal intracorpuscular intracortical intracosmically intracostal intracranial intracranially intractability intractable intractably intractile intracutaneous intracystic intrada intradepartmental intradermal intradermally intradermic intradermically intradermo intradistrict intradivisional intraduodenal intradural intraecclesiastical intraepiphyseal intraepithelial intrafascicular intrafissural intraformational intragastric intragemmal intraglacial intraglobular intragroup intragroupal intragyral intrahyoid intraimperial intrait intrajugular intralamellar intralaryngeally intraleukocytic intraligamentary intralobular intralocular intralogical intralumbar intramammary intramarginal intramastoid intramatrical intramatrically intramedullary intramembranous intrameningeal intramental intrametropolitan intramolecular intramontane intramundane intramural intramuralism intramuscular intramyocardial intranarial intranatal intraneous intraneural intranidal intranquil intranquillity intranscalency intranscalent intransformable intransfusible intransgressible intransient intransigent intransigentism intransigentist intransitable intransitive intransitively intransitiveness intransitivity intransmissible intransmutability intransmutable intransparency intrant intraoctave intraocular intraoral intraorbital intraorganization intraossal intrapair intraparenchymatous intraparochial intraparty intrapelvic intrapenile intrapericardiac intrapericardial intraperineal intraperiosteal intraperitoneally intraphilosophic intrapial intraplant intraprostatic intrapsychic intrapsychically intrapyretic intrarachidian intrarectal intrarelation intrarenal intraretinal intrarhachidian intraschool intrascrotal intrasegmental intraselection intraseptal intraserous intrashop intraspecific intraspinal intrastate intrasusception intrasynovial intratarsal intratelluric intraterritorial intratesticular intrathoracic intrathyroid intratomic intratonsillar intratrabecular intratracheally intratropical intratubular intratympanic intrauterine intravaginal intravalvular intravasation intravascular intravascularly intravenous intravenously intraventricular intraverbal intravertebral intravesical intravital intravitelline intravitreous intraxylary intreat intreated intreaties intreating intrench intrenchant intrenching intrenchment intrenchments intrepid intrepidity intrepidly intrepidness intres intricacies intricacy intricate intricately intrigant intrigue intrigued intrigueproof intriguer intriguers intriguery intrigues intriguing intriguingly intrine intrinse intrinsic intrinsical intrinsicality intrinsically introceptive introconversion introconvertibility introdden introduce introduced introducee introducer introduces introducing introduction introductions introductive introductively introductor introductorily introductoriness introductory introflex introgression introgressive introitus introject introjective intromissible intromission intromissive intromittent intron introouction intropression intropulsive introreception introrsal introrse introrsely introsentient introspect introspection introspectional introspectionism introspectionist introspective introspectively introspectiveness introspectivism introspectivist introspector introsuction introsuscept introsusception introthoracic introtraction introvenient introverse introversibility introversion introversive introversively introverted introvertive introvision introvolution intrude intruded intruder intruders intrudes intrudest intruding intrudingly intrudress intrusion intrusional intrusions intrusive intrusiveness intrust intrusted intubate intubationist intubator intue intuicity intuit intuitable intuition intuitional intuitionalist intuitionist intuitionistic intuitionless intuitions intuitive intuitively intuitiveness intuitivism intuitivist intumesce intumescence intumescent inturbidate inturned intussusception intwine inula inulaceous inulase inulin inuloid inumbrate inumerable inunctum inunctuous inundable inundant inundate inundated inundates inundating inundation inundations inundatory inunderstandable inunison inurbane inurbanity inure inured inuredness inurn inusitateness inustion inutilely inutility inutilized inutterable invaccinate invaccination invadable invade invaded invader invaders invades invading invaginable invaginated invagination invalid invalidate invalidated invalidating invalidation invalided invalidism invalidity invalidly invalidness invalids invalidship invalorous invaluable invaluableness invalued invar invariability invariable invariableness invariably invariance invariancy invariant invariantive invariantly invaried invasion invasionist invasions invasive invecked invection invective invectiveness invectives invectivist invector inveigh inveigher inveigle inveigled inveiglement inveigler invein invendibility invenient invent inventary invented inventer inventibility inventible inventibleness inventing invention inventional inventione inventionless inventions inventive inventiveness inventor inventorial inventorially inventoried inventories inventors inventory inventress invents invenzioni inveracity inverisimilitude inverminate invermination inverness inverosimiles inverse inversed inversedly inversely inversion inversive invert invertase invertebracy invertebrate inverted invertedly invertend inverter invertin inverting invertive invertor invest investable invested investible investigable investigandarum investigatable investigate investigated investigates investigating investigation investigations investigative investigator investigators investing investitive investitor investiture investment investments investor invests inveteracies inveteracy inveterate inveterately inveterateness invicto invictus invidious invidiously invidiousness invigilance invigilancy invigilation invigor invigorate invigorated invigorates invigorating invigoratingly invigoratingness invigoratively invigorator invincibility invincible invincibly inviolability inviolable inviolableness inviolably inviolacy inviolate inviolated inviolateness invirility invirtuate inviscate inviscid inviscidity invisible invisibleness invisibly invistment invitable invitant invitation invitational invitations invite invited inviter invites invitiate inviting invitingly invitress invivid invocable invocant invocate invocation invocations invocative invocator invocatory invoice invoices invoicing invoke invoked invoker invokes invoking involatile involatility involucel involucellated involucral involucre involucred involucriform involucrum involuntarily involuntariness involuntary involute involuted involutedly involutely involution involutionary involve involved involvedly involvedness involvement involvent involves involving invulnerability invulnerable invulnerably invultuation inwale inward inwardly inwardness inwards inwedged inweed inweight inwood inwork inwound inwoven inwrap inwrapment inwrapped inwreathe inwrought inyoke io ioclude iodamoeba iodate iodated iodation iodhydrate iodhydric iodhydrin iodic iodide iodides iodiferous iodinate iodination iodine iodinophil iodinophilic iodinophilous iodism iodite iodization iodize iodized iodizing iodo iodobehenate iodobenzene iodocasein iodochlorhydroxyquin iodochloride iodochromate iodocresol iododerma iodoethane iodoform iodogallicin iodohydrate iodohydric iodohydrin iodol iodomercuriate iodomethane iodometric iodometrical iodometry iodopsin iodoso iodosobenzene iodospongin iodotannic iodotherapy iodothyrin ioduret iodureted iol ion ione ioni ionian ionic ionicism ionicize ionidium ionism ionist ionizable ionized ionizer ionizing ionogen ionogenic ionone ionornis ionosphere ionoxalis ions iontophoresis ioskeha iota iotacism iotacist iotization iotize iowa iowan ipalnemohuani ipecac ipidae ipil ipomoea ipomoein ipsa ipseand ipsedixitish ipsedixitism ipsedixitist ipsi ipsius ipso iq ir ira iracund iracundity iracundulous irade irades irai iran irani iranian iranic iranism iranist iranize iraq irascent irascibility irascible irascibly irate ire ireful irefully irefulness ireland irena irenarch irene irenical irenically irenicist irenicon irenics iresine irgunist irian iriarteaceae iricism iricize iridaceae iridadenosis iridal iridate iridauxesis iridectomize iridectomy iridemia iridentropium irideremia iridesce iridescence iridescency iridescent iridescently iridic iridin iridiocyte iridiophore iridioplatinum iridious iridium iridoavulsion iridocele iridoceratitic iridocoloboma iridoconstrictor iridocyclitis iridocyte iridodesis iridodonesis iridokinesia iridoncus iridophore iridoplegia iridoptosis iridopupillary iridorhexis iridosclerotomy iridosmium iridotasis iridotomy iris irisated irisation iriscope irised irises irisher irishian irishize irishly irishness irishwoman irishy irisin irislike irisroot iritic iritis irk irked irking irks irksome irksomely irksomeness irma iroha irok iroko irom iron ironbark ironbush ironclad ironclads irone ironed ironer ironfaced ironfisted ironflower ironfounding irongrated ironheaded ironhearted ironheartedly ironheartedness ironic ironical ironically ironicalness ironice ironies ironing ironish ironism ironist ironless ironlike ironly ironmaker ironmaster ironmonger ironmongering ironmongery ironness irons ironshod ironsides ironstone ironweed ironwork ironworked ironworking ironworks ironwort irony irradiance irradiancy irradiant irradiate irradiated irradiates irradiating irradiatingly irradiation irradiations irradiative irradiator irradicate irrarefiable irrationability irrationable irrationably irrational irrationalism irrationalist irrationality irrationalize irrationally irreality irreceptive irreceptivity irreciprocal irreciprocity irreclaimability irreclaimable irreclaimableness irreclaimably irreclaimed irrecognition irrecognizability irrecollection irreconcilability irreconcilable irreconcilableness irreconcilably irreconcile irreconcilement irreconciliability irreconciliable irreconciliableness irreconciliably irreconciliation irrecordable irrecoverable irrecoverableness irrecoverably irrecusably irredeemability irredeemable irredeemableness irredeemably irredeemed irredenta irredential irredentism irredentist irredressibility irredressibly irreducible irreducibleness irreductibility irreductible irreduction irreflection irreflective irreflectively irreflectiveness irreformability irrefragable irrefragableness irrefrangibility irrefrangibleness irrefutability irrefutable irregeneracy irregenerate irregeneration irregular irregularism irregularities irregularity irregularize irregularly irregularness irregulars irregulated irregulation irrelate irrelated irrelation irrelative irrelativeness irrelevance irrelevancy irrelevant irrelevantly irrelievable irreligion irreligionism irreligiosity irreligious irreligiously irreligiousness irreluctant irremeable irremeably irremediable irremediably irrememberable irremissibility irremissibly irremission irremissive irremovability irremovable irremovableness irremovably irremunerable irrenderable irrepair irrepairable irreparability irreparable irreparableness irreparably irrepassable irrepealability irrepealably irrepentance irrepentant irreplaceable irreplaceably irrepleviable irreportable irreprehensible irreprehensibleness irreprehensibly irrepresentableness irrepressibility irrepressible irrepressibleness irrepressibly irrepressive irreproachability irreproachable irreproachably irreprovable irreprovableness irreprovably irresilient irresistance irresistibility irresistible irresistibleness irresistibly irresoluble irresolute irresolutely irresoluteness irresolution irresolvability irresolvableness irresolved irresonant irrespectability irrespectable irrespectful irrespective irrespectively irrespondence irresponsibility irresponsible irresponsibly irresponsive irrestistable irrestrainable irrestrainably irrestrictive irresuscitable irresuscitably irretentive irretentiveness irreticent irretraceably irretractable irretrievability irretrievable irretrievableness irretrievably irrevealably irreverence irreverend irreverendly irreverent irreverential irreverentialism irreverentially irreverently irreversible irreversibleness irreversibly irreviewable irrevisable irrevocability irrevocable irrevocableness irrevocably irrevoluble irrigable irrigably irrigant irrigate irrigated irrigating irrigation irrigational irrigationist irrigative irrigatorial irrigatory irriguous irriguousness irrision irrisoridae irritability irritable irritableness irritably irritant irritants irritate irritated irritatedly irritates irritating irritatingly irritation irritations irritativeness irritator irritomotility irrorate irrotational irrotationally irrupt irruption irruptions irruptively irs irsa irvine irving irvingiana irvingite isaacson isabelita isabelline isaconitine isadelphous isadora isadore isagoge isagogic isagogical isagogically isagon isaiah isaian isallobar isallotherm isandrous isanemone isanomal isaria isatate isatic isatinic isatogen isawa isazoxy iscariot iscariotic iscariotical ischein ischemia ischemic ischiac ischiadic ischiadicus ischial ischialgia ischialgic ischiatic ischidrosis ischioanal ischiocapsular ischiocaudal ischiocavernous ischiocele ischiocerite ischiococcygeal ischiofemoral ischiofibular ischioneuralgia ischioperineal ischiopodite ischiopubis ischiorrhogic ischiosacral ischiotibial ischiovaginal ischiovertebral ischium ischocholia ischuretic ischuria ischury ischyodus iscipline ise ised isegrim isenergic isentropic iserine iserite isethionate isethionic iseum isfahan ished ishmael ishmaelitic ishmaelitish ishment ishpingo ishshakku isiacal isidae isidiophorous isidiose isidium isidoid isidorian isinai isindazole ising isinglass isis islam islamic islamism islamist islamistic islamite islamitish islamization islamize island islanda islander islanders islandhood islandic islandlike islandman islandress islandry islands islandy islay isle isleless isles islet isleta islets isleward islot ism ismaelite ismaelitic ismaelitical ismaelitish ismailian ismal ismatical ismaticalness ismdom isn isn't isnardia iso isoagglutination isoagglutinative isoagglutinin isoagglutinogen isoalantolactone isoamarine isoamide isoamyl isoamylene isoamylidene isoantibody isoapiole isoasparagine isoaurore isobar isobare isobarism isobarometric isobath isobathic isobathytherm isobenzofuran isobilateral isobilianic isobiogenetic isoborneol isobornyl isobront isobronton isobutane isobutyl isobutylene isobutyraldehyde isobutyrate isobutyric isocaproic isocarbostyril isocardia isocarpic isocellular isocephalism isocephalous isocephaly isochasm isochasmic isocheimal isocheimenal isocheimonal isocholesterol isochor isochoric isochromatic isochronal isochronally isochrone isochronic isochronon isochronous isochroous isocinchomeronic isocinchonine isocitric isoclasite isoclinal isocline isocodeine isocola isocoria isocorybulbin isocorybulbine isocorydine isocoumarin isocracy isocrotonic isocrymal isocrymic isocyanate isocyanic isocyanide isocyanine isocyano isocyanogen isocyanurate isocyanuric isocyclic isocytic isodiabatic isodiametric isodiazo isodimorphism isodimorphous isodomic isodomum isodont isodontous isodurene isodynamia isodynamic isoelectronic isoelemicin isoemodin isoenergetic isoerucic isoetaceae isoetales isoetes isoflor isogamete isogametism isogamous isogamy isogen isogenesis isogenetic isogenic isogeny isogeotherm isogloss isoglossal isognathism isogon isogonal isogonality isogonally isogonic isogoniostat isogonism isograft isogram isograph isographic isographical isographically isography isogynous isohaline isohalsine isohel isoheptane isohexyl isohydric isoimmune isoimmunity isoimmunize isoindole isokeraunic isokeraunographic isokeraunophonic isokontae isokontan isolability isolable isolate isolated isolatedly isolating isolation isolationist isolde isolecithal isologous isologue isology isoloma isolysin isomagnetic isomaltose isomastigate isomenthone isomer isomera isomere isomeric isomerically isomeride isomerism isomerization isomerize isomeromorphism isomerous isometric isometrical isometrograph isometry isomorphic isomorphism isomorphous isomyaria isoneph isonergic isonicotinic isonitramine isonitrile isonomous isonomy isonymic isopag isopelletierin isopentane isoperimeter isoperimetric isoperimetrical isopetalous isophane isophasal isophene isophenomenal isophoria isophthalic isophthalyl isophylly isopilocarpine isopleura isopleural isopleuran isopodan isopodiform isopodimorphous isopodous isopogonous isopolitical isopolity isopoly isoprene isopropyl isopropylacetic isopropylamine isoproterenol isopsephic isopsephism isoptera isopterous isoptic isopurpurin isopyrrole isoquercitrin isoquinine isoquinoline isorcinol isorhamnose isorhodeose isorithm isorrhythmic isoscele isosceles isoseismal isoseismic isoseismical isoseist isosmotic isospondylous isospore isosporic isosporous isostasist isostatic isostatically isostemony isostere isosterism isostrychnine isosulphide isosulphocyanate isosulphocyanic isotely isotheral isotherm isothermal isothermally isothermals isothermic isothermobath isotherombrose isothiocyanates isothiocyanic isothujone isotimal isotome isotomous isotonia isotonic isotonicity isotony isotopic isotopism isotopy isotrehalose isotretinoin isotrimorphic isotrimorphism isotrimorphous isotron isotropic isotropism isotropy isotypic isotypical isovalerianate isovalerianic isovaleric isovanillic isovoluminal isoxazole isoxylene isoyohimbine isozooid ispaghul ispravnik israeli israelite israeliteship israelitic israelitism iss issanguila issedoi issite issuable issuably issuant issue issued issueless issues issueth issuing ist istanbul isthmi isthmian isthmiate isthmic isthmoid isthmus istid istiophorid istiophoridae istiophorus istle istoke istrian istvaeones isuretine isuridae isuroid isurus iswara isz it it&t it'd it'll ita itabirite itacism itacistic itacolumite itaconate itaconic italian italiana italianately italianation italianism italianist italianization italiano italians italic italical italically italican italicanist italici italicism italicized italicizes italics italiote italite italomania italon itamalate itamalic itan itatartaric itc itch itched itching itchingly itchless itchproof itchy iteaceae ited itelmes item iteming itemize itemized items itendant itenean iter iterance iterancy iterant iterate iterated iterating iteration iterative ith ithaca ithacensian ithagine ithaginis ithe ither ithiel ithis ithomiidae ithyphallic ithyphallus ithyphyllous ities itineracy itinerant itinerantly itinerarium itinerary itinerate itineration itmo ito itoist itoland itonaman itonia itonidid itost itp its itself itsscope itual itude iturite ity itys iu iubente iud iurin ius iv iva ivan ivanhoe ive iver iverson ivery ivied ivies ivin ivoried ivorine ivorist ivory ivorywood ivry ivy ivybells ivyflower ivylike ivyweed ivywood ivywort iwa iwis ixia ixiama ixil ixion ixionian ixodes ixodic ixodid ixodidae ixora ixperience ixpriss iyam iyo izar izcateco izing izle izote izzard j jaalin jab jabara jabarite jabbed jabber jabbered jabberer jabbering jabberingly jabberment jabberwock jabberwockian jabberwocky jabbing jabbingly jabble jabers jabia jabiru jablonsky jaborandi jabot jaboticaba jacal jacaltec jacamar jacamaralcyon jacameropine jacamerops jacami jacamin jacana jacanidae jacaranda jacare jacate jacent jacinth jacitara jack jackal jackals jackanapes jackass jackasses jackassification jackassness jackboy jackdaw jackeen jacket jacketed jacketing jacketless jackets jacketwise jackfish jackhammer jackie jackknife jackleg jacklight jackman jackpudding jackpuddinghood jackrabbit jackrod jackshay jacksnipe jackson jacksonia jacksonian jacksonite jacksonville jackstay jackstones jackstraw jacktan jackweed jackwood jacky jacobaean jacobi jacobic jacobin jacobinia jacobinic jacobinically jacobinism jacobinization jacobinize jacobite jacobitic jacobitical jacobitishly jacobs jacobsite jaconet jacquard jacqueminot jacques jactance jactancy jactation jactitate jacuaru jaculate jaculative jaculator jaculatorial jaculatory jacunda jade jaded jadedly jades jadesheen jadeship jadestone jadishly jadishness jady jaeger jaf jaga jagatai jagataic jager jagged jaggedly jaggedness jagger jaggery jagir jagirdar jagless jagrata jags jagua jaguar jaguarete jahrlichen jahve jahvist jahvistic jail jailage jailbird jailbreak jaildom jailed jailer jailering jailers jailership jailhouse jailish jails jaime jain jaina jainism jaipuri jajman jakarta jake jako jakob jakun jalalaean jalap jalapa jalapin jalkar jalopy jalousie jalousied jam jama jamaica jamaican jamais jamb jambe jambeau jambo jambolan jambone jambool jambosa jambs jamdani james jamesian jamesina jamesonite jamestown jami jamlike jammed jammer jamming jammy jamnia jampani jams jamwood jan janeiro janet janghey jangkar jangle jangled jangler jangles jangling janiceps janiculan janiculum janiform janissary janitor janitorial janitorship janitrix janizarian janizary jank jann jansenist jansenistic jansenize janthina jantu janua januarius january januslike jaob japaconine japaconitine japan japanee japanese japanesquely japanesquery japanesy japanization japanize japanned japanner japannery japannish japanolatry japanologist japanology japanophile japanophobe japanophobia jape japer japetus japheth japhetic japhetide japhetite japingly japish japishly japishness japonica japonism japonize japonizer japygidae japygoid japyx jaqueline jaquesian jar jara jaragua jarble jardiniere jardinieres jardins jared jarfly jarful jarg jargon jargoneer jargonelle jargoner jargonesque jargonic jargonish jargonium jargonization jargonize jargons jarkman jarl jarldom jarlship jarnut jarosite jarrah jarred jarreny jarring jarringly jarringness jarrings jarry jars jarveys jarvin jasey jaseyed jasminaceae jasmine jasmines jasminewood jasminum jasmone jason jasper jaspered jasperoid jaspers jaspery jaspideous jaspis jaspoid jasponyx jaspopal jassoid jatamansi jateorhiza jateorhizine jatni jatropha jatrophic jatrorrhizine jatulian jaudie jaun jaunce jaunder jaundiced jaundiceroot jaunt jauntily jauntiness jaunting jauntingly jaunty java javahai javali javanese javelin javelina javelins javer javitero jaw jawbation jawbones jawbreaker jawbreaking jawbreakingly jawfall jawing jawless jaws jaws/chewing jawsmith jawy jay jaybird jaycees jayhawk jays jaywalk jaywalker jazerant jazyges jazz jazzer jazzily jazziness jazzing jazzy jdh jealous jealousies jealously jealousness jealousy jeanie jeanne jeanpaulia jeavons jebr jebusite jebusitic jebusitical jebusitish jecoral jecorize ject jected jed jedcock jedding jeddock jeep jeer jeered jeering jeeringly jeerproof jeers jeewhillijers jeewhillikens jefferisite jefferson jeffersonia jeffersonian jeffersonianism jeffersonite jeffrey jeh jehad jehovah jehovic jehovism jehovist jehu jehup jejunal jejune jejunely jejuneness jejunitis jejunity jejunoduodenal jejunostomy jejunum jelab jelerang jelick jell jelliedness jellies jelloid jelly jellydom jellyfish jellyleaf jellylike jem jemadar jemez jemima jemmily jemmy jenkin jenkins jenna jennerization jennerize jennet jennie jenny jensen jentacular jeopard jeoparder jeopardize jeopardized jeopardizing jeopardous jeopardously jeopardousness jeopardy jequirity jerahmeel jerahmeelites jerbilla jerboa jereed jeremiad jeremiah jeremian jeremianic jeremy jerib jericho jerk jerked jerker jerkily jerkin jerkined jerkiness jerking jerkingly jerkings jerkins jerkish jerks jerksome jerkwater jerky jerl jerm jermonal jeroboam jeromian jerque jerquer jerry jerryism jersey jerseyan jerseyed jerseyman jerseys jert jervia jervine jes jess jessakeed jessamine jessamy jessant jesse jessean jessed jessur jest jestbook jested jestee jester jesters jesting jestingly jestingstock jestproof jests jestwise jestword jesty jesu jesuit jesuitess jesuitical jesuitically jesuitish jesuitism jesuitize jesuitocracy jesuitry jet jete jethronian jetliner jets jetsam jettage jetted jetter jettied jetties jettiness jetting jettison jetton jetty jetz jeu jeune jeunes jeunesse jeux jew jewel jeweled jeweler jewelers jewelhouse jeweling jewelled jeweller jewellers jewellery jewellike jewellry jewelry jewels jewelsmith jewelweed jewely jewett jewfish jewhood jewishly jewishness jewism jewlike jewling jews jewship jewstone jewy jezail jezebel jezebelian jezebelish jezekite jeziah jharal jhow jhuria jib jibber jibbering jibbings jibby jibe jibes jibman jiboa jibs jibstay jicaque jicaquean jicara jicarilla jiff jiffy jig jigamaree jigged jigger jiggerer jiggering jiggerman jiggers jigget jiggety jigging jiggish jiggle jiggling jiggly jiggumbob jiggy jiglike jigs jigsaw jihad jill jillet jilt jilted jiltee jilter jilting jim jimberjaw jimberjawed jimcrack jimjam jimmie jimmy jimply jimpness jimpricute jimpson jimsedge jincan jine jined jineral jing jingal jingbang jingle jingled jinglejangle jingler jingles jinglet jingling jinglingly jinglings jingly jingo jingoes jingoism jingoistic jinjili jink jinker jinket jinks jinn jinnestan jinniyeh jinriki jinrikiman jinrikisha jint jinte jints jinx jipper jiqui jis jist jiti jitneur jitneuse jitney jitro jitterbug jitterbugger jitterbugging jitteriness jitters jiujitsu jiva jivaran jivaro jivaroan jive jixie jndged jo joachimite joan joanne joannite job jobade jobars jobation jobb jobber jobbernowl jobbernowlism jobbers jobbery jobbing jobble jobbs jobholder jobless jobman jobmaster jobmonger jobo jobs jocasta jocelin joch jock jockey jockeydom jockeying jockeyish jockeylike jockeys jockeyship jocko jockteleg jocoque jocose jocosely jocoseness jocoserious jocosity jocote jocu jocular jocularity jocularly jocularness jocum jocund jocundity jodel jodeled jodeler jodeling jodelr jodhpur jodhpurs jodo joe joel joewood joey jog jogged jogging joggle jogglework joggling jography jogs jogtrottism johann johanna johannesburg johannine johannisberger johansen john johnadreams johnian johnin johnny johnnycake johnnydom johnsen johnsmas johnsonese johnsonian johnsonianism johnsonianly johnston johnstrupite johnswort joie join joinable joinant joinder joined joiner joinery joining joiningly joinings joins joint jointage jointed jointer jointing jointly joints jointure jointureless jointworm jointy joist joisting joistless joists jojoba joke joked jokelet jokeproof joker jokers jokes jokesmith jokesome jokesomeness jokester joking jokingly jokist jokul jolie jolla jolleyman jollier jolliest jollify jollily jolliness jollities jollity jollop jolloped jolly jolt jolted jolter jolterhead jolterheaded jolthead joltiness jolting joltingly joltless joltproof jolts jon jonahesque jonas jonathan jonathanization jongleur jongleurs jonque jonquil jonquille jonquils jonsonian jonvalization jonvalize jookerie joost jordan jordanite joree jorge jorgenson jorist jorum jose josef joseite joseph josephine josephinism josephinite josephism josephite josephson josh joshed josher joshi joshing josie joss jossakeed josser jostle jostled jostlement jostles jostling jostlings jot jota jotnian jots jotted jotting jottings jotty joubarb jouer joug jough jouk joukerypawkery joulean joulemeter jounce jounced jour journal journaling journalish journalism journalist journalistic journalistically journalists journalization journalize journalizer journall journals journey journeycake journeyed journeying journeyings journeyman journeymen journeys journeywork journeyworker jours joust jousting jousts jova jovial jovialist jovialistic joviality jovialize jovially jovialness jovialty jovian jovianly jovicentric jovicentrical jovicentrically jovilabe jovinian jovinianist jovite jowar jowari jowl jowler jowlish jowlop jowls jowly jown jowned jowpy joy joyance joyed joyeux joyful joyfully joyfulness joyhop joying joyless joylessly joylessness joylet joyous joyously joyousness joyride joys jozy jthe jthere jthis ju juan juang juanita juba jubate jubbah jubbe jube juberous jubilance jubilancy jubilant jubilantly jubilarian jubilate jubilatio jubilation jubilean jubilee jubilize juckies jucundity jud judaeomancy judaeophilism judaeophobe judahite judaism judaist judaistic judaistically judaization judaize judas judaslike judcock judd judean judex judge judgeable judged judgement judgements judger judges judgeship judgest judgeth judging judgingly judgmatic judgmatical judgmatically judgment judgments judica judicable judicatis judicator judicatorial judicatory judicature judices judiciable judicial judiciality judicialize judicially judicialness judiciarily judiciary judicious judiciously judiciousness judicis judieio judson jufti jug juga jugal jugale jugatae jugate jugation juge jugement jugera jugerum juggernautish jugging juggins juggle juggled juggler jugglers jugglery juggling juglandaceae juglandin juglans juglone jugoslavia jugs jugular jugulares jugulary jugulate jugulum juice juiceful juiceless juices juiciness juicy juilliard juist jujitsu juju jujube jujuism juke jukebox jukes juletta julia juliana julianist julid julidae julie julienite julienne juliet julius juloid juloidea julolidin juloline julus july julyflower jumada jumana jumart jumble jumbled jumblement jumbler jumbles jumbo jumboesque jumboism jumbuck jumelle jument jumentous jumillite jumma jump jumpable jumped jumper jumpeth jumpiness jumping jumpingest jumpings jumpness jumps jumpseed jumpsome jumpy juncaceae juncaceous juncaginaceous juncagineous junciform juncite junco junction junctor juncture junctures june juneau juneberry junebud junectomy junesey jung junge jungermanneoides jungermannia jungermanniaceae jungermanniaceous jungle junglecraft jungled jungles jungleside junglewards junglewood jungli jungly junior juniority juniors juniorship juniper junipers juniperus junius junivals junk junkboard junkerdom junkerish junket junketer junketing junks junky juno junoesque junonia junt juo jupati jupe jupon jura jurait jural jurament juramentado juramental jurane jurara jurassic jurassienne jurat juration jurative juratorial jurel jurer juridical juridico juries juring juris jurisdiction jurisdictionalism jurisdictions jurisdictive jurisprudence jurisprudential jurisprudentialist jurisprudentially jurist juristic juristical juristically jurists juror jurors juruparis jury juryman jurymen jus jusquaboutisme jussas jussel jussiaean jussieuan jussive jussory just justen juster justest justice justicehood justicelike justicer justices justiceship justiceweed justicia justiciability justiciable justicial justiciar justiciarius justiciary justicies justifiable justifiableness justifiably justification justificative justificator justificatory justified justifier justifies justifieth justify justifying justifyingly justin justine justing justinianian justinianist justled justly justment justness justo justus jut jute jutic jutish jutka jutlandish juts jutted jutting juttingly jutty juturna juvantibus juvavian juvenal juvenalian juvenate juvenile juvenileness juvenilify juvenilities juvenility juventas juvia juvite juxtamarine juxtaposed juxtaposit juxtaposition juxtapositional juxtapositive juxtapyloric juxtaspinal juxtaterrestrial juxtatropical juza jynginae jyngine jynx k kababish kabaka kabard kabardian kabaya kabbalistic kabel kaberu kabiet kabirpanthi kabistan kabob kabonga kabuki kabul kabuli kabyle kachin kadaga kadarite kadaya kaddish kadein kadikane kadischi kadmi kados kadu kaempferol kaf kafa kaferita kaffiyeh kafir kafiri kafka kafkaesque kaftan kagu kaha kahar kahn kahuna kai kaibab kaid kaik kaikawaka kail kailyarder kailyardism kainah kainga kainite kainyn kairine kairoline kaiser kaiserdom kaiserism kaiserliche kaiserlichen kaivel kaiwhiria kajar kajugaru kaka kakan kakapo kakar kakarali kakariki kakatoidae kakistocracy kakke kakortokite kaladana kalamazoo kalamian kalanchoe kalapooian kalasie kaldani kale kaleidophon kaleidophone kaleidoscope kaleidoscopes kaleidoscopic kaleidoscopically kalendae kalends kalewife kalgoorlie kali kaliana kaliborite kaliform kaligenous kalinite kaliophilite kalipaya kalium kallah kallilite kallima kallista kallitype kalmarian kalmia kalmuck kalmuk kalo kalon kalong kalpis kalsomine kalsomined kalsominer kalumpit kalymmaukion kamachile kamaloka kamansi kamao kamares kamarupa kamarupic kamasin kamass kamatz kamba kamboh kamchadal kamchatka kame kameeldoorn kameelthorn kamelaukion kamerad kamias kamichi kamikaze kammalan kampala kamperite kampong kampongs kan kana kanaanaischen kanae kanagi kanaka kanara kanarese kanat kanauji kanawha kande kandelia kandol kane kaneh kanephore kanephoros kaneshite kanesian kanga kangani kangaroo kangarooer kangaroos kanji kankakee kankanai kankie kann kanoon kanred kans kansan kansas kantele kanteletar kanten kantian kantianism kantism kantist kanuri kaoliang kaolin kaolinite kaolinization kapa kapellmeister kapok kapp kappa kapur kaput karachi karagan karaism karaite karaitism karamazov karamojo karate karaya karbi karch kareao karel karela karelian karez karharbari karite karl karluk karma karmathian karnischen karo karol karou karp karree karri karroo karstenite karstic karthli kartometer kartos karwar karwinskia karyatid karyenchyma karyochrome karyochylema karyogamic karyokinesis karyokinetic karyologic karyological karyologically karyolymph karyolysidae karyolysus karyomerite karyomicrosome karyomitoic karyomitome karyomitotic karyoplasm karyoplasma karyoplasmatic karyoplasmic karyopyknosis karyorrhexis kasa kasai kasbah kasbeke kascamiol kashan kasher kashga kashi kashima kashoubish kashubian kasida kasikumuk kaska kasm kassabah kassak kassite kat kata katabanian katabasis katabella katabolize katabothron katachromasis katacrotism katagenesis katakana katakinesis katakinetomer katakinetomeric katalase katalyst katalyze katamorphism kataphoresis kataphoretic kataphoric kataplectic katastate katathermometer katatonia katatonic katatype katchung katcina kate kath katha kathagis katharina katharine katharsis kathartic kathemoglobin kathenotheism katherine kathodic kathopanishad katie katinka katipuneros katmandu katmon katogle katothen katrine katrinka katsup katsuwonidae katuka katukina katun katunischen katurai katydid katz kauffman kauravas kauri kavass kavasses kaw kawaka kawasaki kawchodinne kawika kawntree kay kayak kayan kayo kazak kazi kazis kazoo keach keacorn keaton keats keatsian keb kebbie kebbuck keck keckle keckling kecksy ked kedar kedarite keddah kedge kedgeree kedgerees kedlock kedushshah keek keeker keel keelbill keelboat keelboating keelboatman keelboatmen keelboats keeled keeler keelfat keelhale keelhaul keelie keelless keelman keelrake keelson keen keena keenan keened keener keenest keenlier keenly keenness keep keepable keepee keeper keeperess keeperless keepers keepership keepest keepeth keeping keeps keepsakes keer keered keerful keerless keers keest keeve keffel kefir kefti keftian keg kegel kegg kegler kegs kehaya kehillah kehoeite keita keitai keith keitloa kekchi kekotene keld kele keleh kelek kelep kelima kelk kell kella kelley kellion kellogg kelly keloid keloidal keloids kelp kelper kelpware kelpwort kelter keltoi kelty kelvin kemalism kemalist kemb kempite kemple kempt kempy ken kenaf kenai kend kendall kendir kendyr kenelm kenipsim kenlore kenmark kennan kennebec kennebecker kennebunker kennecott kennedy kennel kennelly kennelman kennels kenner kenney kenogenetically kenogeny kenosis kenotic kenoticism kenoticist kenotism kenotist kenotoxin kenotron kens kenspac kenspeckle kent kentia kentish kentishman kentledge kenton kentrogon kentrolite kentuckian kenya kenyon kenyte keoe kep kepe kepler kept kepyng ker keracele kerana keraphyllous kerasin kerasine kerat keratalgia keratectasia keraterpeton keratin keratinization keratinize keratinoid keratinos keratinose keratinous keratocele keratocentesis keratoconjunctivitis keratoconus keratogenic keratogenous keratoglobus keratohyal keratoid keratoidea keratoiritis keratol keratoleukoma keratolysis keratolytic keratoma keratomalacia keratome keratometer keratometry keratonosus keratonyxis keratophyre keratoplastic keratoplasty keratorrhexis keratoscope keratoscopy keratoses keratotome keratotomy keraulophon keraulophone keraunion keraunograph keraunography keraunophone keraunophonic keraunoscopia keraunoscopy kerb kerbstone kerchief kerchiefed kerchiefs kerchoo kerchug kerchunk kerectomy kerel keres keresan kerflap kerguelen kermanji kermesite kermess kermis kermit kern kernel kerneled kernelly kernels kerner kernetty kernighan kernish kernite kerogen kerosene kerplunk kerr kerria kerrie kerrikerri kerril kerrite kersantite kersey kerseymere kerslam kerslosh kerugma kerwham kerygma kerystic kerystics kessler kesslerman kested kestrel kestrels ket ketal ketapang ketazine ketch ketched ketches keten ketene ketimide ketipate ketipic keto ketogen ketogenesis ketoheptose ketoketene ketol ketone ketonemia ketones ketonimid ketonimin ketonimine ketonize ketonuria ketoprofen ketose ketoside ketosuccinic ketoximes kette kettering ketting kettle kettlecase kettledrum kettledrummer kettlemaking kettles ketyl keup keuper keurboom kevalin kevel kevelhead kevutzah keweenawan kex kexy key keyage keyboard keyed keyes keyhole keyholes keyless keynesian keynote keys keyserlick keysmith keystone keystoner keyword kgw khaddar khafila khagiarite khaiki khair khaja khajur khakanship khaki khakied khaldian khalifa khalsa khami khamsin khan khanate khanates khanda khanjar khanjee khans khanum khar kharijite kharoshthi kharouba kharroubah khartoum khartoumer khasa khasi khass khat khatti khattish khazarian khedivate khedive khedivial khediviate khem kherwari kherwarian khevzur khinjak khir khitan khivan khmer khoja khokani khond khorassan khotan khu khuai khubber khuskhus khussak khutbah khuzi khwarazmian kiack kiaki kialee kiang kiangan kiaugh kibble kibbler kibbutzim kibe kibei kibitz kibitzer kibosh kiby kick kickable kickback kicked kickee kicker kicking kickings kickish kickless kickoff kickout kicks kickseys kickshaw kickup kid kidd kidde kidder kidderminster kiddie kiddier kiddies kidding kidlet kidnap kidnapee kidnaper kidnapped kidnapper kidnappers kidnapping kidney kidneys kidneywort kids kidsman kieffer kiekie kiel kien kier kieselguhr kieserite kiev kiho kikar kikatsik kikawaeo kiku kikuel kikumon kikuyu kil kilampere kilbrickenite kildee kilderkin kiley kilgore kiliare kilim kill killable killadar killarney killcrop killcu killdeer killed killeekillee killer killers killeth killick killifish killing killingly killingness killings kills killweed killwort killy kiln kilnhole kilnman kilnrib kilns kiloampere kilocalorie kilocycle kilodyne kilogauss kilogramme kilograms kilojoule kiloliter kilolumen kilometer kilometrage kilometre kilometres kiloparsec kilostere kiloton kilovar kilowatt kilp kilted kilter kiltie kilting kimball kimberlin kimbundu kimigayo kimnel kimono kimonoed kin kina kinaesthesia kinaesthesis kinaesthetic kinah kinase kinbote kinch kinchin kincob kind kinda kindee kinder kindergarten kindergartener kindergartner kinderhook kindest kindhearted kindheartedly kindheartedness kindle kindled kindler kindles kindlesome kindleth kindlier kindliest kindlike kindliness kindling kindlings kindly kindness kindnesses kindred kindredless kindredly kindreds kindredship kinds kine kinematic kinematical kinematics kinematograph kinemometer kineplasty kinepox kinesalgia kinescope kinesiatric kinesic kinesics kinesimeter kinesiological kinesiology kinesis kinesitherapy kinesodic kinesthesia kinesthesis kinetic kinetical kinetics kinetochore kinetogenesis kinetogenetic kinetogenetically kinetogenic kinetogram kinetograph kinetographer kinetographic kinetography kinetomeric kinetonema kinetonucleus kinetophonograph kinetoscope kinfolk kinfolks king kingbird kingbolt kingcob kingcup kingdom kingdomed kingdomful kingdomless kingdoms kingdomship kingfish kingfisher kingfishers kinghead kinghood kinghunter kingless kinglessness kingliness kingling kingly kingmaking kingpiece kingrow kings kingsbury kingship kingston kingtom kingu kingweed kink kinkable kinkaider kinkajou kinkhab kinkily kinkiness kinkle kinkled kinkly kinks kinksbush kinky kinless kinnor kino kinoplasm kinorhyncha kinospore kinosternidae kinosternon kinsfolk kinsfolks kinshasa kinshasha kinship kinsman kinsmanly kinsmanship kinsmen kinspeople kinswoman kintar kintyre kioea kioko kiosk kiotome kiowa kiowan kioway kip kipage kipchak kipling kiplingese kiplingism kippeen kipper kips kiranti kirchner kirchoff kiri kirillitsa kirimon kirk kirker kirkify kirkii kirking kirkinhead kirklike kirkyard kirman kirn kirombo kirtle kirtles kirundi kirve kirver kish kishy kismet kismetic kiss kissableness kissage kissed kissedher kisser kisses kissing kissingly kissings kissproof kisswise kist kistful kiswa kit kitab kitabis kitakyushu kitalpha kitamat kitan kitchen kitcheneer kitchener kitchenmaid kitchens kitchenwards kitchenware kitchenwife kitcheny kite kiteflier kiteflying kites kith kithless kitkehahki kitlope kits kittatinny kitten kittendom kittenhood kittenish kittenishly kittenless kittens kittenship kitter kittereen kittiwake kittle kittles kittlish kittock kitty kittysol kitunahan kiva kiver kivikivi kivu kiwai kiwanian kiwanis kiwi kiwikiwi kiyas kiyi kizil kjeldahl kjeldahlization klafter klaftern klamath klanism klansman klaprotholite klassischen klatch klavern klebsiella kleeneboc klein kleinian kleistian klendusic klendusity klepht klephtic klephtism kleptic kleptistic kleptomanist kleptophobia klicket klikitat kline kling klingsor klipbok klipdachs klipdas klipfish klipspringer klockmannite klom klondiker klooch kloofs klootchman klop klops klosh klumene klux kluxer klystron kmet knabble knack knacker knackery knacky knag knagged knaggy knap knapbottle knape knapp knappan knapper knappishly knapsack knapsacked knapsacking knapsacks knapweed knar knarry knauer knautia knave knavery knaves knaveship knavess knavish knavishly knawel knead kneaded kneader kneading knebelite kneck knee kneebrush kneecap kneed kneedeep kneehole kneel kneeled kneeler kneelet kneeling kneelingly kneels kneenaps kneepan kneepiece knees kneestone kneippism knell knells knelt knesset knet knew knewest knezi kniaz knick knicker knickerbocker knickerbockered knickerbockers knickered knickers knickknack knickknackatory knickknacked knickknacket knickknackish knickknacks knickknacky knife knifeboard knifed knifeful knifeless knifelike knifeman knifeproof knifesmith knifeway knight knightage knighted knightess knighthood knightia knighting knightless knightliness knightling knightly knighton knights knightship kniphofia knisteneaux knit knits knitted knitter knitters knitting knittle knitweed knitwork knives knivey knob knobbed knobber knobble knobbler knobbly knobby knobkerrie knobs knobstick knobstone knobular knobwood knock knockabout knockdown knocked knockemdown knocker knocking knockless knockout knocks knockup knod knoll knoller knolls knolly knop knopite knopper knoppy knorria knosp knosped knot knotberry knotgrass knothole knothorn knotless knotlike knotroot knots knott knotted knotter knottily knottiness knotting knotty knotweed knotwork knotwort knout knovn know knowability knowable knowableness knowe knowed knower knowest knoweth knowhow knowing knowingly knowingness knowledge knowledgeable knowledged knowledgement knowledging knowles knowlton known knowperts knows knox knoxian knoxville knub knubbly knubby knublet knuckle knucklebone knuckled knuckler knuckles knuckling knuckly knuclesome knur knurl knurled knurling knurly knut knutson knyaz koa koae koasati kob koban kobayashi kobellite kobird kobold kobong koch kochia kochliarion kodak kodaker kodakry kodashim kodiak kodro kodurite koeberlinia koeberliniaceous koechlinite koeksotenok koellia koelreuteria koenenite koenig koenigsberg koft koftgar koftgari koggelmannetje kohemp kohen kohistani kohl kohlrabi koi koiari koibal koil koimesis koine koinon koinonia koipato kojang kokako kokan kokerboom kokio koklas koko kokoon kokoromiko kokowai koku kokum kokumingun kola kolach kolaches kolarian kolea kolhoz kolinski kolinsky kolis kolkhoz kollast kollaster kolo kolobion kolobus kolokolo kolsun koltunnor koluschan komal komati komatik kome komen kominuter kommetje kommos komsomol kona konak konariot kong kongo kongoese kongolese kongoni kongsbergite kongu koniaga koniga koniglichen konini koniology koniscope konjak konomihu konrad konstantin kontakion konyak kooka kookaburra kookeree kookri kooliman koolooly koombar koorg kootcha kop kopeck kopeks kopi koppa koppen koppers koppite koprino koradji korah korait korakan korana koranic korari kore korea korean koreci koreish koreshanity korin kornephorus kornskeppa korntonde korntonder korntunnur koroa koromika koromiko korona korova korrigum korumburra koruna korwa koryak kos kosalan koschei kosher kosimo kosin kosmokrator koso kosotoxin kossaean kossean kosteletzkya koswite kota kotal kotar kotch koto kotoko kotschubeite kottigite kotuku kotukutuku kotwalee kotyle kotylos kou koulan koungmiut kouwenhoven kouza kovacs kovil kowagmiut kowalewski kowalski kowloon kowtow kozo kpuesi kra kraal kraftiges krag kragerite krageroite krait krakens krakow kral krama kramer krameria kran krantzite krapina kras krasis krater kratogen kratogenic kraurite kraurosis kraurotic krause krausen kraut krebs kreis kreittonite krelos kremlin krems kreutzer krieger krieker krigia krimmer krina kris krishna krishnaism krishnaist krishnaite krishnaitic kristin krisuvigite kritisch kritische kritrima krobyloi krobylos krocket krome kromogram kromskop krona kronecker kroner kronion kronor kronur kroo kroon krosa krouchka kru krueger kruger krut kryokonite krypsis kryptic krypticism kryptocyanine kryptol kryptomere ks kuar kuba kubachi kubba kubera kubuklion kuchean kudize kudo kudos kudrun kudu kudzu kuehneola kuei kufic kuge kuhn kuhnia kui kukri kukui kukupa kukuruku kula kulack kulah kulaite kulakism kulanapan kulang kuli kulikos kulimit kulkarni kullaite kulturkreis kumbi kumhar kumiss kumni kumquat kunai kunbi kundry kuneste kunk kunkur kunmiut kunzite kuomintang kupfernickel kupfferite kurchicine kurchine kurgan kurgans kuri kurilian kurmburra kurmi kuroshio kurrajong kurtosis kuruba kurukh kurung kurus kurvey kurzer kusam kusan kusha kushshu kuskos kuskus kuskwogmiut kustenau kusti kusum kutcha kutchin kuttab kuttar kuttaur kuvasz kuvera kvass kwakiutl kwamme kwan kwannon kwapa kwarta kwarterka kwazoku ky kyack kyah kyanite kyar kyards kyars kyat kyaung kybele kyklops kyl kylite kymation kymatology kymbalon kymogram kymograph kynges kynurenic kynurine kyo kyoto kyphoscoliosis kyphoscoliotic kyphosis kyrie kyschtymite kyurin l l'oeil l's la laable laager lab labara labarum labba labdacism labdacismus labefact labefactation labefaction label labeled labeling labellate labelled labeller labelling labelloid labels labetalol labia labialism labialismus labialize labiated labidura labiduridae labiella labilization labilize labiocervical labiodental labioglossal labioglossolaryngeal labioglossopharyngeal labiograph labiolingual labiomental labionasal labiopalatal labiopalatine labiopharyngeal labiose labiotenaculum labiovelar labis labium lablab labor laborability laborable laborage laboratorial laboratorian laboratories laboratory labordom labored laboredly laborer laborers laboress laborhood laboring laboriosus laborious laboriously laboriousness laborism laborist laborite laborless laborous laborousness labors laborsaving laborsomely laboulbeniales labour laboured labourer labourers labourest laboureth labouring labourite labours labrador labradorean labradorite labradoritic labretifery labroid labrosauroid labrosaurus labrose labrus labrusca labrys labs laburnum labyrinth labyrinthally labyrinthectomy labyrinthibranch labyrinthibranchiate labyrinthibranchii labyrinthic labyrinthical labyrinthici labyrinthiform labyrinthine labyrinthitis labyrinthodon labyrinthodont labyrinthodontian labyrinthodontoid labyrinths labyrinthula lac lacca laccaic laccainic laccolith laccolithic laccolitic lace lacebark laced lacedaemonian laceleaf laceless lacelike lacemaker lacemaking laceman lacepiece lacer lacerability lacerable lacerant lacerate lacerated lacerately lacerates lacerating laceration lacerations lacerative lacerta lacertidae lacertilian lacertiloid lacertine lacertose lacery laces lacets lacewing lacewoman lacewood lacework laceybark lache lacher laches lachesis lachnanthes lachnosterna lachryma lachrymae lachrymaeform lachrymal lachrymally lachrymatory lachrymiform lachrymist lachrymose lachrymosely lachrymosity lachsa lacily laciness lacing lacinia laciniata laciniated laciniform laciniolate laciniose lacinulate lacinulose lacis lack lackadaisical lackadaisicality lackadaisicalness lackaday lacked lacker lackest lacketh lackey lackeydom lackeyed lackeyism lackeys lackeyship lacking lackluster lacklustre lacklustrous lacks lackwit lackwittedly lackwittedness lacmoid lacmus laconic laconically laconicism laconism laconize laconizer lacosomatidae lacquer lacquered lacquerer lacquerist lacquey lacrimal lacrosse lacrosser lacrymal lactamide lactant lactarene lactarium lactarius lactate lactation lactational lacteal lacteals lactean lactenin lacteous lactesce lactescence lactescency lactescent lactic lacticinia lactid lactiferous lactiferousness lactification lactiflorous lactiform lactifuge lactify lactigenic lactigerous lactinate lactivorous lacto lactobacillus lactocele lactochrome lactocitrate lactoflavin lactoglobulin lactol lactometer lactone lactonization lactonize lactophosphate lactoproteid lactoprotein lactose lactoside lactosuria lactothermometer lactotoxin lactovegetarian lactovegetarians lactucarium lactucerin lactucol lactucon lactyl lacuna lacunae lacunal lacunar lacunaria lacune lacunose lacunosity lacunulose lacuscular lacustral lacustrian lacustrine lacwork lacy lad ladakhi ladakin ladanigerous ladanum ladder laddered laddering ladderlike ladders laddery laddie laddikie laddish laddock lade laded lademan laden lader lades ladhood ladies ladify ladin lading ladinischen ladino ladkin ladle ladled ladleful ladler ladlewood ladling ladly ladri ladrone lads lady ladybird ladybug ladydom ladyfern ladyfinger ladyfly ladyfy ladyish ladyism ladykin ladyless ladylike ladylikeness ladylintywhite ladylove ladyly ladyship ladytide laemodipoda laemodipodan laemodipodiform laemodipodous laemostenosis laeotropic laeotropism laestrygones laet laetation laeti laetic laetrile laevich laevigrada laevis laevoduction laevogyrate laevogyre laevogyrous laevolactic laevorotation laevorotatory laevulinic laf lafayette laff lafite lag lagenaria lageniform lager lagerstroemia lagetta laggar laggard laggardism laggardness laggards lagged laggen lagger laggin lagging laglast lagna lagniappe lagomorph lagomorpha lagomorphic lagoon lagoonal lagoons lagoonside lagophthalmos lagopode lagopous lagopus lagorchestes lagrange lagrangian lags lagting laguerre laguncularia lagunero lagunes lagurus lagwort lahnda lahontan lai laibach laic laical laicality laich laicism laicity laicization laicize laicizer laid laidlaw laidst laigh lain laine lair laird lairdess lairdie lairdly lairdship laired lairless lairman lairs lairstone lairy laisse laissez laith laity lak lakarpite lakatoi lake lakeland lakelet lakelike lakemanship laker lakes lakeside lakeweed lakhs lakie laking lakishness lakist lakota laks lakshmi lalang lalifolius lall lallan lalland lallation lally laloneurosis lalopathy lalophobia laloplegia lalor laluks lam lama lamaic lamaism lamaist lamaite lamanism lamanite lamany lamarck lamarckia lamarckianism lamarckism lamasery lamastery lamb lamba lambale lambaste lambda lambdacism lambdoid lambdoidal lambency lambent lambently lamber lambes lambhood lambie lambing lambish lambkill lambkin lambkins lamblia lamblike lambling lambly lambrequin lambrequins lambs lambsdown lambsuccory lamby lame lamed lamedh lamel lamella lamellae lamellar lamellariidae lamellarly lamellary lamellate lamellated lamellately lamellation lamellibranchia lamellibranchiata lamellibranchiate lamellicorn lamellicornate lamellicornes lamellicornous lamelliferous lamelliform lamellirostral lamellirostrate lamellirostres lamellose lamellosity lamely lameness lament lamentable lamentableness lamentably lamentation lamentational lamentations lamentatory lamented lamentedly lamenter lamenting lamentingly lamentive lamentng lamentory laments lamer lamest lamester lamestery lameter lamia lamiaceae lamiaceous lamiides lamiinae lamin lamina laminable laminae laminar laminariaceae laminariales laminarian laminarin laminarioid laminarite laminary laminate laminated laminectomy laming laminiferous laminiplantation laminose laminous lamish lamista lamiter lamium lammastide lammer lammergeyer lammicken lammigers lammock lammocken lamna lamnectomy lamnid lamnoid lamp lampad lampadephore lampadephoria lampatia lampblack lamper lampern lampers lampfly lampful lamping lampion lampions lampist lampistry lampless lamplet lamplight lamplighter lamplights lamplit lampman lampong lampoon lampoonery lampooning lampoonist lamppost lampposts lamprey lampreys lamprophony lamprophyre lamprophyric lamprotype lamps lampshade lampshades lampsilis lampsilus lampstand lampyrid lampyridae lampyris lamus lamziekte lan lana lanao lanarkia lanarkite lanas lanate lanated lanaz lancait lancashire lancaster lancasterian lancastrian lance lanced lancegay lancelet lancely lanceman lanceolar lanceolate lanceolated lanceolately lanceolation lanceolatus lanceproof lancer lancers lances lancet lanceted lanchets lanciers lanciferous lanciform lancination lancing land land's landau landaulette landblink landbook landdrost lande landed lander landes landfall landfast landflood landform landgravate landgrave landgravess landgraviates landgravine landhold landholder landholders landholdership landholding landimere landing landingplace landings landis landladies landlady landladydom landladyish landladyship landless landlessness landline landlock landlocked landlook landlooker landloper landlord landlordly landlordry landlords landlordship landlouping landlubber landlubberish landlubberly landmark landmarker landmarks landmen landmil landmonger landocrat landolphia landover landowner landowners landowning landplane landraker lands landscape landscapes landscapist landshard landship landsick landside landskip landslides landslip landslips landsman landsmen landspringy landsting landstorm landsturm landuman landwaiter landward landwards landwash landwire landwrack lane lanes lanete laneway laney lang langarai langbeinite langca lange langerhans langhian langite langle langley lango langobardic langoon langooty langrage langsat langsettle langshan langspiel langsyne language languageless languages langue langued languescent languet languid languidly languidness languish languished languishes languishing languishingly languor languorous languorously languour langur laniariform laniary laniferous lanific laniflorous laniform lanigerous lanioid lanista lanital lanius lank lanket lankish lankness lanky lanner lanneret lanolin lanose lanosity lanoxin lansat lansdowne lanseh lansing lansknecht lanson lansquenet lant lantaca lantana lantern lanternflower lanternist lanternleaf lanternman lanterns lanthanide lanthanite lanthopine lanum lanx lanyard laodicean laor laos lap lapacho lapachol lapactic laparectomy laparocele laparocolectomy laparocolotomy laparocystotomy laparoenterotomy laparogastroscopy laparogastrotomy laparohepatotomy laparohysterectomy laparohysterotomy laparoileotomy laparomyitis laparomyomotomy laparonephrectomy laparonephrotomy laparorrhaphy laparosalpingotomy laparoscope laparoscopic laparoscopy laparosplenectomy laparosplenotomy laparostict laparosticti laparothoracoscopy laparotome laparotomist laparotomize laparotrachelotomy lapboard lapeirousia lapel lapels lapful lapidarian lapidaries lapidary lapidate lapidation lapidator lapide lapideon lapidicolous lapidification lapidify lapidist lapillo lapillus lapis lapithae lapithaean laplacian lapland laplander laplandian lapon laportea lapp lappa lappage lapped lappet lappeted lappets lapping lappula laps lapsability lapsana lapsation lapse lapsed lapser lapses lapsing lapstrake lapstreak lapstreaked lapstreaker lapt laputa laputan laputically lapwing laquearian lar laramide laramie larboard larbolins larbowlines larcenist larcenous larcenously larceny larch larchen larches larchwoods lard lardacein lardaceous larded larder larderellite larderful larders lardiform lardizabalaceous lardon lardy lareabell laredo larentiidae larfed large largebrained largehanded largeheartedness largely largemouth largemouthed largen largeness larger largess largesse largest larghetto largish largition largo lari laria lariat larick larid laridae laridine larigo larigot lariid lariidae larinae larine larix larixin lark larker larking larkish larklike larkling larks larksome larkspur larkspurs larly larmier larmoyant larn larnax larnt laroid larrigan larrikin larrikiness larrikinism larrikins larriman larrup larry larsen larsenite larson larton larunda larva larvacea larvae larval larvarium larve larvicolous larviparous larviposit larviposition laryngal laryngalgia laryngeal laryngeally laryngean laryngeating laryngectomee laryngectomees laryngectomy laryngemphraxis larynges laryngic laryngismal laryngismus laryngitic laryngitis laryngocele laryngocentesis laryngofissure laryngograph laryngological laryngometry laryngopathy laryngopharyngeal laryngopharyngitis laryngophony laryngophthisis laryngoplasty laryngorrhagia laryngoscope laryngoscopic laryngoscopical laryngoscopist laryngoscopy laryngospasm laryngostasis laryngostenosis laryngostomy laryngotome laryngotracheal laryngotracheitis laryngotracheobronchitis laryngotracheoscopy laryngotracheotomy laryngovestibulitis larynx las lasa lasagna lasarwort lascar lascars lascivious lase lasers laserwort lash lashed lashes lashing lashingly lashings lashless lasi lasianthous lasiocampa lasiocampid lasiocampoidea lasiocarpous lasius lask lasket laspeyresia laspring lasque lass lasses lassie lassiehood lassitude lasso lassoes lassooed lassus last lastage lasted laster lastest lasting lastingly lastingness lastly lastre lasts lastspring laszlo lat lata latae latah latax latch latched latches latchkey latchless latchman latchstring late latecomer latecomers lated lateen lateener lateinischen lately laten latence latency lateness latent latentness later latera laterad lateral lateralis laterality lateralization lateralize laterally lateran latericiam lateriflexion laterifloral lateriflorous laterifolious laterigradae laterinerved laterite lateritic lateritious laterization lateroanterior laterocaudal laterodeviation laterodorsal lateroduction lateromarginal lateroposition lateroposterior lateropulsion laterostigmatal lateroversion latescence latest latet latewhile latex latexosis lath lathe lathed latheman lather latherable lathered lathereeve latherer latherwort lathery lathes lathesman lathhouse lathing laths lathwork lathy lathyric lathyrism lathyrus latian latibulize latices laticiferous laticostate latidentate latifundium latigo latimeria latin latine latinesque latini latinic latiniform latinism latinistic latinitaster latinity latinize latinizer latins latinus latipennate latiplantar latirostral latirostres latirus latiseptate latissimus latisternal latitancy latitant latitat latite latitude latitudes latitudinal latitudinally latitudinarian latitudinarians latitudinary latitudinous lative latomy latooka latrant latration latreutic latria latrididae latrine latris latrobe latrobite latrocinium lattener latter latterly lattermath lattermost latterness lattice latticed lattices latticewise latticework latticinio latuka latus latvian laubanite laud laudability laudable laudableness laudably laudanin laudanosine laudanum laudat laudation laudative laudator laudatorily laudatory lauded laudem lauder lauderdale laudian laudianism laudification lauding laudist lauds laue laugh laughable laughableness laughably laughed laughee laughers laughest laugheth laughful laughing laughingly laughingstock laughs laught laughter laughterful laughterless laughworthy lauia laumontite launce launch launched launcher launches launchful launching launchways laund launder launderability laundered launderer launderette laundress laundresses laundries laundry laundryman laundryowner laur laura lauraceae laurate laurdalite laureate laureated laureates laureateship laureation laurel laureled laurellike laurels laurelship laurelwood lauren laurence laurencia laurent laurentian laurentide laureole lauric laurie laurin laurinoxylon laurone laurotetanine laurus laurustine laurustinus laurvikite lauryl lausanne lautitious lautus lava lavable lavabo lavacre lavage lavaliere lavalike lavanga lavant lavas lavatera lavation lavational lavatory lave laved laveer lavender lavenite laverania laverwort laves lavialite lavic laving lavish lavished lavisher lavishes lavishing lavishingly lavishly lavishment lavoisier lavrovite law lawbook lawbreak lawbreaker lawbreaking lawcraft lawful lawfully lawfulness lawgive lawgiver lawgivers lawing lawless lawlessness lawmake lawmaker lawmakers lawmaking lawman lawmen lawmonger lawn lawned lawner lawnlet lawnlike lawns lawny lawrence lawrencite lawrencium lawrie lawrightman laws lawson lawsoneve lawsonia lawsonite lawsuit lawsuits lawter lawton lawyer lawyeress lawyerlike lawyerling lawyerly lawyers lawyership lawyery lax laxate laxatively laxiflorous laxifoliate laxifolious laxism laxity laxly laxness laxy lay layback layed layer layerage layered layers layest layeth layia laying layland layman laymanship laymen layne layoff layoffs layout layover lays layship laystall laystow layton laywoman laz lazar lazaret lazaretto lazarist lazarlike lazarly lazarole laze lazier laziest lazily laziness lazule lazuli lazuline lazulite lazulitic lazy lazyhood lazyish lazyship lazzarone lb ldls le lea leab leabe leach leachate leached leachy lead leadback leaded leaden leadenhearted leadenheartedness leadenpated leader leaderess leaderette leaders leadership leadest leadeth leadhillite leadin leadiness leading leadingly leadman leadoff leadout leadproof leads leadsman leadsmen leadstone leadway leadwood leadwork leadwort leady leaf leafage leafbuds leafcup leafed leafen leafery leafit leaflard leafless leaflessness leaflet leaflets leaflike leafs leafstalk leafwork leafy league leagued leagueless leaguelong leagues leah leak leakage leakages leakance leaked leakiness leaking leakless leakproof leaks leaky leal lealand leally lealty leam leamer lean leander leaned leaner leanest leaning leanings leanish leanly leanness leans leant leap leaped leapfrog leapfrogged leapfrogger leaping leapingly leapings leaps leapt learchus learn learnable learned learnedly learnedness learner learners learning learns learnt learoyd leasable lease leased leasehold leaseholder leaseholders leasemonger leaser leases leash leashed leashes leashless leasing leasow least leastways leastwise leat leath leather leatherback leatherboard leatherbush leathercoat leathercraft leatherer leatherette leatherfish leatherflower leatherhead leatherine leatherize leatherlike leathermaker leathermaking leathern leatherneck leatherroot leathers leatherside leatherstocking leatherwing leatherwood leatherworking leathery leathwake leats leaues leave leaved leaveless leavelooker leaven leavened leavening leavenish leavenless leavenworth leaver leaves leavest leaveth leaving leavings leavy leban lebanese lebanon lebensraum lebesgue lecama lecaniid lecaniinae lecanine lecanomancer lecanomantic lecanoraceae lecanoraceous lecanoroid lecanoscopic lech leche lecher lecherous lecherously lecherousness lechery lechriodont lechriodonta lecideiform lecidioid lecithalbumin lecithality lecithin lecithinase lecithoblast leck lecotropal lected lectern lection lector lectorate lectorial lectors lectotype lectrice lectual lecture lectured lectureproof lecturer lecturers lectures lectureship lectureships lecturess lecturette lecturing lecythid lecythidaceous lecythoid lecythus led lede lederhosen lederle ledge ledgeless ledger ledgerdom ledgers ledges ledging ledgy ledidae ledol ledum lee leeangle leeboard leech leechdom leechdoms leecheater leeched leechery leeches leechkin leechwort leed leedle leeds leefang leeftail leek leekish leeky leep leepit leer leered leerily leering leeringly leerish leerness leeroway leers leersia leery lees leet leetle leewan leeward leewardmost leeway leewill left leftest lefthand leftish leftism leftments leftness leftwardly leftwards lefty leg legacied legacies legacy legal legalist legalistic legalistically legality legalization legalize legalized legalizing legally legalness legantine legatary legate legatee legatees legates legateship legati legation legationary legations legatus legend legenda legendary legende legendic legendist legendless legendry legends legendum leger legerdemain legerdemainist legere legerity leges legg legged legger legging legginged leggings leggins leggy leghorn legibility legible legibly legific legio legion legionaries legionary legioner legionnaires legionry legions legis legislate legislated legislating legislation legislativ legislative legislatively legislator legislatorial legislators legislatorship legislatress legislature legislatures legist legit legitim legitimacy legitimate legitimately legitimateness legitimatized legitimism legitimist legitimistic legitimists legitimity legitimization legitimize legitimized leglen legless leglet leglike legman legoa legpull legpuller legrope legs legua leguan leguatia leguleious legumes legumin leguminosae leguminose leguminous legumins lehigh lehman lehr lehrman lei leibnitzian leibnitzianism leicester leidos leigh leighton leimtype leiocephalous leiocome leiodermatous leiomyofibroma leiomyoma leiomyomatous leiomyosarcoma leiophyllous leiophyllum leiotrichan leiotrichidae leiotrichinae leiotrichous leiotrichy leiotropic leipoa leishmaniasis leisten leister leisurable leisurably leisure leisured leisureful leisurely leisureness leitmotif leitneria leitneriaceae leitneriaceous leitneriales lek lekach lekane leke lekha leks lelia lem leman lemanea lemel lememba lemme lemmoblastic lemmocyte lemmus lemna lemnaceae lemnaceous lemnad lemnian lemniscate lemniscatic lemniscus lemography lemon lemonade lemoniidae lemoniinae lemonlike lemons lemonwood lemony lemosi lemovices lempira lemur lemures lemuria lemurian lemurid lemuriform lemurinae lemurine lemuroid lemuroidea len lena lenad lenaea lenaean lenaeum lenaeus lenape lenca lencan lench lend lendemain lender lendest lending lends lendu lene length lengthen lengthened lengthener lengthening lengthens lengthful lengthily lengthiness lengths lengthsman lengthways lengthwise lengthy lenience leniency lenient leniently lenify leninist leninite lenis lenitic lenitive lenitude lenity lenk lennoaceae lennoaceous lennow leno lenoltec lenore lens lensed lenses lensless lent lente lenten lenthways lentibulariaceae lentibulariaceous lenticel lenticellate lenticonus lenticula lenticular lenticularis lenticularly lenticulated lenticule lenticulostriate lenticulothalamic lentil lentilla lentils lentisc lentiscine lentisco lentiscus lentitude lentitudinous lentor lentous lenvoi lenvoy leo leon leonard leonardesque leonardo leonato leoncito leone leonese leonhardite leonid leonine leoninely leonis leonist leonnoys leonotis leontiasis leontocebus leontocephalous leontodon leontopodium leonurus leopard leoparde leopardine leopards leopold leopoldite leotard lepadidae lepadoid lepanto lepargylic lepas lepcha leper leperdom lepered lepidene lepidium lepidodendraceae lepidodendrid lepidodendroid lepidodendron lepidoidei lepidolite lepidophyllum lepidophyte lepidophytic lepidopter lepidoptera lepidopteral lepidopteran lepidopterid lepidopterist lepidopterologist lepidosauria lepidosaurian lepidosiren lepidosirenidae lepidosirenoid lepidosis lepidosperma lepidostrobus lepidote lepidotes lepidotic lepidotus lepidurus lepilemur lepiota lepisma lepismatidae lepismoid lepisosteus lepocyte lepomis leporide leporiform leporine leporis lepospondyli lepospondylous leposternidae leposternon lepra lepralia lepralian leprechaun leprechaunism lepric leprologist leprology leproma lepromatous leprosies leprosis leprosy leprous leprously leprousness lept leptamnium leptandra leptid leptidae leptiform leptilon leptinotarsa leptite leptocardia leptocardian leptocephalia leptocephalic leptocephalid leptocephalidae leptocephaloid leptocephalus leptochlorite leptoclase leptodactyl leptodactylidae leptodactylous leptodactylus leptodermatous leptodermous leptokurtic leptolepidae leptolepis leptolinae leptomatic leptomedusae leptomeningeal leptomeninges leptomeningitis leptomeninx leptomonad lepton leptonecrosis leptonema leptophis leptophyllous leptoprosope leptoprosopic leptoprosopous leptoprosopy leptorrhin leptorrhinian leptorrhinism leptosome leptosperm leptospermum leptosphaeria leptospira leptospirosis leptostracan leptostracous leptostromataceae leptosyne leptotene leptotrichia leptotyphlopidae leptotyphlops leptynite lepus ler lerky lernaea lernaeacea lernaeidae lernaeiform lernaeoid lernaeoides leroy lerp lerret lerwa les lesath lesbia lesbian lesbianism lesche lesgh lesion lesional lesions leskea leskeaceae leskeaceous leslie lesotho lesquerella less lessayais lessee lessees lesseeship lessen lessened lessening lessens lesser lessive lessness lesson lessoned lessons lest lester lestiwarite lestobiosis lestobiotic lestodon lestrad lestrigonian let letch letdown lete lethal lethality lethalize lethally lethargic lethargically lethargicness lethargy lethean lethern lethiferous lethocerus lethologica letic letn leto letoff letras lets lett letten letter lettered letterer letteret letterheads lettering letterless letterman lettermen letterpress letters letterspace letterweight letterwood lettest letteth lettic lettice letting lettish lettres lettrin lettsomite lettuce letty letup letzten leu leucadendron leucadian leucaemia leucaemic leucaethiop leucaethiopic leucaniline leucanthous leucaurin leucemia leuch leuchaemia leuchemia leucichthys leuciferidae leucin leucine leucism leucite leucitic leucitite leucitohedron leucitoid leuckartia leuckartiidae leuco leucobasalt leucoblast leucoblastic leucobryaceae leucochalcite leucocholy leucochroic leucocidic leucocidin leucocrate leucocratic leucocyan leucocyte leucocytes leucocythemic leucocytoblast leucocytogenesis leucocytology leucocytolysin leucocytometer leucocytopenia leucocytopenic leucocytopoiesis leucocytosis leucocytotherapy leucocytotic leucodermatous leucodermic leucoencephalitis leucogenic leucoid leucoindigo leucoindigotin leucojaceae leucomaine leucomelanous leucon leuconostoc leucopenia leucopenic leucophane leucophanite leucophoenicite leucophyllous leucoplakia leucoplakial leucopoiesis leucoquinizarin leucorrheal leucoryx leucosolenia leucosoleniidae leucospermous leucosphenite leucospheric leucostasis leucosticte leucosyenite leucothea leucothoe leucous leucoxene leucyl leuk leukemic leukocidic leukocidin leukocyte leukocytes leukoplakia leukosis leukotic leuma leur leurs lev levana levance levanter levator levatores leve levee levees level leveled leveler leveling levelish levelled leveller levelling levellings levelly levelman levelness levels leven lever leverage levered leverer leveret levers leverwood levi leviable leviathan leviathans levied levies levigable levigation levigator levin levining levir levirate leviratical leviration levis levisticum levitate levitation levitator levite levitical leviticalism leviticality levitically leviticism leviticus levities levity levo levodopa/carbidopa levogyrate levogyre levolactic levolimonene levorotation levorotatory levothyroxine levoversion levre levres levulic levulin levulinic levulose levy levying levyist levynite lew lewd lewdly lewdness lewie lewisia lewisite lewisson lewth lex lexandrie lexeos lexia lexical lexicalic lexicographer lexicographian lexicographic lexicographical lexicographically lexicographist lexicography lexicologic lexicological lexicology lexicon lexiconist lexicons lexigraphical lexigraphy lexington lexiphanic lexiphanicism ley leyse leysing lfxeon lherzolite liabilities liability liable liableness liablitiy liably liah liaison liana liang liar liars lias liatris lib libanophorous libant libate libation libationer libations libatory libbed libbin libbra libby libel libelant libeled libelee libeler libeling libelist libellant libellary libellate libelled libeller libelling libellous libellula libellulidae libelluloid libellus libelously libels libely liber liberal liberalia liberalisers liberalism liberalist liberalistic liberality liberalization liberalize liberalizer liberalizing liberally liberalness liberals liberate liberated liberates liberating liberation liberationism liberative liberator liberators liberatress liberia liberomotor libertarian libertarianism libertas liberte liberticide liberties libertine libertinism liberty libertyless liberum libethenite libidibi libidinal libidinally libidinosity libidinously libido libken libocedrus libra libral librarian librarianess librarianship libraries librarious librarius library libraryless libration librations libratory libretti librettist libretto libri librid libris libro libroplast librorum libros librum libs libya libyan libytheidae libytheinae lic licania licareol licca lice liceman licence licensable license licensed licensee licenseless licenser licenses licensing licensors licentiate licentiateship licentiation licentious licentiously licentiousness licet lich licham lichanos lichee lichen lichened lichenes licheniasis lichenic lichenicolous lichenin lichenism lichenivorous lichenization lichenlike lichenographer lichenographical lichenographist lichenography lichenoid lichenologic lichenological lichenopora lichenoporidae lichenose lichens licheny lichi lichnophora lichnophoridae licht licitation licitly lick licked licker lickerish lickerishness licking lickpenny licks lickspittle lickspittling licorice licorn licorne lictorian lictors licuala licuit lid lida lidder liddes liddle lidflower lidgate lidis lidless lido lids lie liebenerite lieber liebfraumilch liebigite liechtenstein lied lief liefer liege liegefully liegeless liegely liegeman lieges lien lienal lienee lienic lienocele lienointestinal lienomalacia lienomedullary lienomyelogenous lienopancreatic lienor lienotoxin liens lienteria lieproof lieprooflier lier lies liesh liest lieth lieu lieue lieutenancy lieutenant lieutenantry lieutenants lieutenantship lieve lieved liever lievi life lifeblood lifeboatman lifeday lifedrop lifeful lifefully lifehold lifeholders lifeless lifelessly lifelessness lifelet lifelike lifelikeness lifeline lifelong lifeman liferentrix liferoot lifesaver lifesaving lifesomely lifespan lifestyle lifetime lifey lifo lift lifted lifter liftest lifteth lifting liftless liftman lifts ligable ligament ligamental ligamentary ligamentous ligaments ligamentum ligation ligator ligature ligatures ligeance ligget liggett light lightable lightbrained lighted lighten lightened lightener lighteneth lightening lightens lighter lighterage lighterful lighterman lighters lightest lighteth lightface lightfast lightful lightfulness lighthead lightheaded lightheadedly lightheadedness lighthearted lighthouse lighthouseman lighthouses lighting lightings lightish lightless lightlessness lightlier lightloving lightly lightman lightmanship lightmouthed lightness lightning lightningproof lightnings lightproof lights lightship lightships lightsome lightsomely lightsomeness lighttight lightweight lightwood lignaloes lignes lignescent lignicoline lignicolous ligniferous lignification ligniform lignify lignin ligniperdous lignite lignites lignitic lignitiferous lignitize lignoceric lignography lignone lignose lignosity lignosulphite lignosulphonate lignum ligroine ligue ligula ligulate ligulated liguliflorae ligulin liguorian ligurian ligurite ligurition ligyda liierature likable likableness like likeable liked likee likelier likeliest likelihead likelihood likelihoods likeliness likely likeminded liken likened likeness likenesses likening likens liker likes likesome likest liketh likeways likewise likin liking likings lilac lilaceous lilacin lilack lilacs lilactide lilaeopsis lilally lilas lile lilee liliaceae liliaceous lilian lilied lilies liliputian lilith lilium lillianite lillibullero lilliput lilliputian lilly lilt lilting lily lilyfy lilyhanded lilylike lilywood lilywort lim lima limaceous limacidae limaciform limacina limacinid limacinidae limacoid limacon limam liman limawood limb limbat limbeck limbed limber limbered limberham limbers limbie limbiferous limbless limbo limboinfantum limbos limbous limbs limbu limburger limburgite limby lime limeade limean limeberry limebush limed limehouse limekiln limeless limelight limelighter limelike limeman limequat limer limerick limes limestone limestones limettin limewater limewort limey limeys limicolae limicoline liminal liminary liming limit limitable limitarian limitary limitate limitation limitations limitative limited limitedly limitedness limites limiting limitless limitlessly limitlessness limits limma limmer limmock limn limnanth limnanthaceae limnanthaceous limnanthemum limned limner limnetis limnimeter limnite limnobiologic limnobiological limnobiologically limnobiology limnobios limnobium limnologic limnological limnologically limnology limnophile limnophilidae limnophilous limnoplankton limnorchis limnoria limnoriidae limnorioid limodorum limoid limonene limoniad limonin limonite limonitization limosa limose limousine limp limped limpest limpet limphault limpid limpidity limpidly limpily limpin limpiness limping limpingly limpingness limpish limply limps limpsy limpwort limsy limulid limulidae limulus limurite limy lin lina linable linaceae linaga linage linaloa linalol linalool linamarin linaria linchbolt linchet linchpin lincloth lincoln lincolnesque lincolniana lincolnlike lincomycin linctus lind lindackerite linden lindens linder lindholm lindoite lindquist lindsay lindsey lindstrom line linea lineae lineage lineaged lineages lineal lineality lineament lineamental lineaments linear linearity linearization linearize linearly lineate lineation lineature linebacker linebackers linecut lined lineiform lineless linelet lineman linemen linen linene linenette linenizer linenman linens lineocircular lineograph lineolate lineolated liner liners lines linesman linet lineup linewalker ling linga lingberry linge lingel lingenberry linger lingered lingerer lingerie lingering lingeringly lingers lingo lingonberry lingua linguacious linguaciousness linguadental linguae linguaeform lingual linguale linguality lingualize lingually linguanasal linguata linguatula linguatulina linguet linguidental linguiform linguist linguistic linguistical linguistician linguistics linguistry lingulid lingulidae linguliferous linguodental linguodistal linguogingival lingwort lingy linha linie liniment liniments linin lininess lining linings linitis linja linje link linkable linkage linkboy linked linker linking linkman links linksmith linky linnaea linnaeanism linnaeite linnet linnets lino linolate linoleic linolein linolenate linolenic linolenin linoleum linolic linolin linometer linos linotype linotypist linous linoxin linoxyn linpin linquist linsang linseed linseedcake linsey linstock lint lintel linteled linteling lintels linten linter lintern lintless lintonite lintseed lintstocks lintwhite linum linus linxi linyphia linyphiidae liodermia liomyofibroma liomyoma lion lioncel lionel lionesque lioness lionhearted lionheartedness lionhood lionism lionizable lionization lionize lionlike lionly lions lionship liothrix liothyronine liotrichi liotrichidae liotrichine lip lipa lipacidemia lipaciduria lipad lipan liparian liparis liparite liparoid liparomphalus lipase lipectomy lipemia lipeurus lipid lipin lipless lipo lipoblast lipocaic lipochondroma lipochrome lipochromogen lipoclastic lipocyte lipodissection lipoferous lipofibroma lipogenetic lipogram lipogrammatic lipogrammatism lipohemia lipoid lipoidemia lipolysis lipolytic lipomatosis lipomatous lipometabolic lipometabolism lipomorph lipomyxoma lipophagic lipoplasty lipopod lipopoda lipoproteins liposarcoma liposis liposome lipostomy lipothymial lipotrophic lipotrophy lipotropy lipoxenous lipped lipper lipperings lippincott lippiness lipping lippy lipread lipreading lips lipsanographer lipschitz lipscomb lipspeech lipstick lipuria lipwork liquamen liquate liquefacient liquefaction liquefiable liquefied liquefier liquefy liquesce liquescence liquescent liqueur liqueurs liquid liquidable liquidambar liquidate liquidation liquidator liquidators liquidity liquidize liquidizer liquidness liquidogenic liquidogenous liquids liquidus liquidy liquiform liquor liquorice liquorish liquorishly liquorishness liquorist liquorless liquors lira liration lire lirella lirelliform lirellous liriodendron liripipe lirobably lirruping lirst lisbon lise lish lisiere lisk lisle lisp lisped lisping lispingly lisps lispund liss lissamphibian lisse lissencephala lissencephalous lissoflagellate lissom lissome lissomely lissomeness lissotrichan lissotriches lissotrichous lissotrichy list listed listedness listel listen listenable listened listener listeners listening listenings listens lister listerellosis listeriosis listerize listeth listing listings listis listless listlessly listlessness lists listun listwork lit litanies litany litanywise litas litation litchi litde lite liter litera literaily literal literalist literalistic literality literalize literalizer literally literalminded literalness literarian literariness literarisches literarius literarum literary literate literati literato literatura literaturae literature literatures literatus literose literosity liters lith lithagogue lithanthrax litharge lithe lithectasy lithely lithemic litheness lither lithesome lithi lithia lithiate lithification lithify lithite lithium litho lithobiid lithobioid lithocarpus lithochemistry lithochromatic lithochromatography lithochromography lithochromy lithoclase lithoclasty lithoculture lithocyst lithocystotomy lithodes lithodid lithodomus lithofracteur lithogenesis lithogenetic lithogenous lithoglypher lithoglyphic lithoglyptic lithoglyptics lithograph lithographed lithographer lithographic lithographically lithographize lithographs lithography lithogravure lithoid lithoidite litholabe litholatrous litholatry lithologic lithology litholysis litholyte litholytic lithomancy lithomarge lithometer lithonephritis lithonephrotomy lithontriptic lithontriptist lithontriptor lithophagous lithophane lithophanic lithophilous lithophotography lithophthisis lithophyl lithophyllous lithophysa lithophysal lithophytic lithophytous lithopone lithoprint lithoptysis lithoscope lithosian lithosiid lithosiidae lithosiinae lithosis lithospermon lithospheric lithotomic lithotomical lithotomist lithotomous lithotony lithotripsy lithotriptor lithotrite lithotritic lithotritist lithotrity lithotypic lithoxyl lithsman lithuania lithuanian lithuanic lithuresis lithuria lithy liticontestation litigable litigant litigants litigate litigated litigation litigationist litigator litigatory litigiosity litigious litigiously litis litiscontest litiscontestation litiscontestational litle litmus litopterna litorina litorinidae litra litre litres litsea litte litter litterae litteraire litteraires litterateur litteratura litterature littered litterer littering litteris litters littery little littlebeds littleness littlenesses littles littlest littleton littling litton littoral littorella littress lituiform lituite lituites litumical lituola lituoline lituoloid liturate liturgic liturgical liturgically liturgics liturgies liturgiological liturgiologist liturgische liturgism liturgist liturgistic liturgistical liturgize liturgy litus lituus lityerses litz liukiu liv livability livable livableness live liveborn lived livelier liveliest livelihood liveliness livelong lively livened liver liverance liverberry livered liveried liveries liverish liverishness liverleaf livermore livers liverwort livery liverydom liveryless liveryman liverymen lives livest livestock liveth livian livid lividity lividly lividness livier living livingly livingness livings livingston livingstoneite livish livistona livonian livor livres lixive lixiviate lixiviated lixiviating lixiviation lixiviator lixivious lixivium liz lizard lizards lizardtail lizzie ll llama llamas llanberisslate llano llautu llberte lles llew llianas llood lludd llyn lme lmonthly lncustrine lnstitutes lo loa load loaded loaden loading loads loadsome loadstone loaf loafed loafer loaferish loafers loafing loafingly loaflet loaghtan loam loaminess loaming loammi loams loamy loan loanable loaned loaner loanin loans loasaceae loasaceous loath loathe loathed loather loathes loathful loathfulness loathing loathingly loathliness loathly loathness loathsome loathsomely loave loaves lob lobal lobale lobar lobaria lobata lobate lobated lobber lobbies lobby lobbyer lobbying lobbyism lobbyists lobbyman lobcock lobe lobectomy lobed lobelia lobeliaceous lobelin lobellated lobes lobiform lobing lobiped loblolly lobo lobola lobopodium lobosa lobose lobotomy lobscourse lobscouse lobscouser lobster lobstering lobsterish lobsterlike lobsterproof lobsters lobularia lobularly lobulated lobulation lobule lobules lobworm loc loca local locale localised localism localistic localities locality localizable localization localize localized localizer localizes localizing locallegislature locally localness locals locanda locarnist locarnite locarnize locate located locater locates locating location locations locative locator lochage lochan locher lochetic lochia lochial lochiocolpos lochiocyte lochiometra lochiopyra lochiorrhagia lochlin lochoperitonitis lochopyra lochus loci lociation lock lockable lockage lockatong lockbox locke locked locker lockerman lockers locket lockets lockfast lockful lockhart lockhole lockian lockianism locking lockjaw lockless locklet lockmaker lockman locknut lockout lockpin lockport lockram locks locksman locksmith locksmithing lockstitch lockwood locky loco locoed locofoco locoism locomobile locomobility locomotility locomotion locomotive locomotiveman locomotiveness locomotives locomotory locomutation loculate loculated loculation locule loculi loculicidal loculicidally locum locus locust locusta locustal locustberry locustelle locustid locustidae locustlike locusts locution locutions locutor locutory loddigesia lode lodemanage lodes lodestar lodestone lodestuff lodge lodgeable lodged lodgeful lodgeman lodgement lodgepole lodger lodgerdom lodgers lodges lodgest lodgeth lodging lodginghouse lodginghouses lodgings lodgment lodha lodowick lodur loduret loeb loegria loess loessal loessial loessic loessland loessoid lof lofstelle loft loftier loftiest loftily loftiness lofting loftless loftman loftsman lofty log logan logania logaoedic logarithm logarithmal logarithmetic logarithmetical logarithmetically logarithmic logarithmomancy logarithms logbook logbooks loge logeion logeum loggat logger loggerhead loggerheads logging loggish loggy loghead logia logic logical logicalist logicalization logicalize logically logicalness logician logicians logicism logicist logicity logicize logicless logie login logion logistician logistics logjam loglet loglike logman logo logocracy logodaedaly logogogue logographer logographers logographical logographically logogriph logogriphic logoi logolatry logomachical logomachist logomachize logomachy logomancy logomania logometer logometric logometrical logometrically logopedia logopedics logos logothete logotype logotypy logres logris logroll logroller logs logway logwood logwork lohan lohana lohar loi loied loike loimic loin loined loins loir loire lois loiter loitered loiterer loiterers loitereth loitering loiteringly loiteringness loiters loka lokao lokaose lokapala lokiec lokindra lola loliginidae loligo lolium loll lollardian lollardize lollardlike lollardy lolled loller lolling lollingite lollingly lollop lollopy lolly lollypop lolo lomatine lomatium lomb lombard lombardic lombardy lomboy lombrosian lome lomentaceous lomentaria lomentariaceous lomentarius lomentum lomita lommock lomustine lon lonchocarpus londinensian london londonese londonish londonism londonize londony londres lone lonelier loneliest lonelihood lonelily loneliness lonely loneness lones lonesome lonesomely lonesomeness lonesomest long longa longan longanimity longanimous longaville longbeak longboat longbow longcloth longe longear longed longedst longer longest longeth longevity longfellow longful longhair longhand longhead longheaded longheadedly longheadedness longhorn longicaudal longicaudate longicone longicorn longifolius longilateral longilingual longimanous longimetric longimetry longing longingly longings longinian longinquity longirostral longirostrine longirostrines longisection longish longitude longitudinal longitudinally longleg longmouthed longnosed longo longobard longobardic longs longshanks longshoreman longsomely longsomeness longspun longtail longtime longueur longus longway longways longwinded longwise longwool longwork longwort lonicera lonk lonlier lonquhard lontar lontthe looby lood loode loof loofah loofie loofness look looke looked lookedat lookee lookest looketh lookin looking lookout looks lookum lookup loom loomed loomer looming looms loon looney looning loons loony loop looped looper loopful loophole loopholed loopholes looping loopist looplet looplike loops loopy loose loosed looseleaf loosely loosen loosened loosener looseness loosening loosens looser looses loosestrife loosing loosish loot lootable looted looten lootie lootiewallah looting lootsman lop lope loped loper loperamide lopez lophiid lophiidae lophine lophioderm lophiodont lophiodontidae lophiodontoid lophiomys lophiostomate lophiostomous lophobranchiate lophocalthrops lophocercal lophocome lophocomi lophophora lophophore lophophorinae lophophorine lophophorus lophophytosis lophopoda lophornis lophosteon lophotriaene lophotrichic lophotrichous lophura loping loppard lopped lopper loppet lopping loppy lops lopseed lopsided lopsidedly lopsidedness lopstick loquacious loquaciously loquaciousness loquacity loquat loquens lor lora loral lorandite loranskite loranthaceous lorate lorazepam lord lording lordless lordlet lordliest lordlike lordlily lordling lordlings lordly lordolatry lordosis lordotic lords lordship lordships lordwood lordy lore loreal lored lorelei loren lorenz lorenzan lorenzenite loretta lorette lorettine lorgnette lorgnettes loric loricarian loricariidae loricarioid loricata loricate lories lorikeet lorilet lorimer lorinda loriot lorius lormery lorn lorni lornness loro lorraine lorrainer lorriker lorry lors lorsque lorum los losableness lose losel loselism losenger loser loses loseth losh losing loss losse lossenite losses lossless lossy lost lostling lostness lot lota lotase lote lotebush loth lothario lothe lothly lothness lotic lotiform lotion lotions lotment lotophagi lotophagous lotophagously lotrite lots lotta lotteries lottery lottie lotting lotto lotus lotuses lotusin lotuslike lou louch loud louden louder loudest loudish loudly loudmouth loudness loudspeak louenco louey lough louie louis louisa louise louisianian louisine louisville louk loukoum loulu lounder lounderer lounge lounged lounger loungers lounges lounging loungy lounsbury loupe lour lourdes lourdy louring louse louseberry lousewort lousiness lousy lout louted louter louther loutish loutishness loutrophoros louty louvar louvered louvering louverwork louvre louvred lovable lovably lovastatin love lovebird loved lovefeasts lovelace loveland lovelass loveless lovelessly lovelessness lovelier loveliest loveliness loveling lovelornness lovely lovemaking loveman lovemate lovemonger lovenotes loveproof lover loverdom lovered loverhood loverlike loverly lovers lovership loves lovesick lovest loveth loveworth loveworthy loving lovingkindness lovingly lovingness lovly low lowa lowan lowbell lowboy lowbred lowbrow lowdah lowdown lowdownest lowe lowed loweite lowell lower lowerable lowered lowerers lowering loweringly loweringness lowermost lowers lowery lowest lowhung lowigite lowing lowings lowish lowishly lowishness lowland lowlander lowlands lowlier lowliest lowlily lowliness lowly lowmost lown lowness lownly lows lowted lowth lowy lox loxic loxoclase loxocosm loxodograph loxodont loxodontous loxodrome loxodromic loxodromically loxodromics loxodromism loxolophodon loxolophodont loxomma loxophthalmus loxosoma loxosomidae loxotomy loy loyal loyalism loyalists loyalize loyall loyally loyalness loyalties loyalty loyolism loyolite lozenge lozenger lozenges lozengeways lozengewise lp lschara lsd lsi lso lstia ltb lth lthere ltv luam luau lub luba lubafax lubber lubberland lubberlike lubberliness lubberly lubbers lubbock lube lubeat lubeck lubric lubricant lubricants lubricate lubricated lubricating lubrication lubricational lubricative lubricator lubricators lubricatory lubrifaction lubrification lubritorian lubritorium lubs lucan lucania lucanid lucanidae lucanus lucarne lucayan lucayanum luce luceat lucent lucentio lucently luceres lucernaria lucernariidae lucerne luchuan lucia lucian luciana lucible lucid lucida lucidity lucidly lucidness lucifee lucifer luciferin luciferoid luciferousness lucific lucifugal lucigen lucile lucilia lucimeter lucina lucinda lucinidae lucinoid lucius lucivee luck lucked lucken luckful luckier luckiest luckily luckiness luckless lucklessly lucklessness lucky lucration lucrative lucrativeness lucre lucrece lucretia lucretian lucretius lucriferous lucriferousness lucrine luctiferous luctiferousness lucubrate lucubration lucubrations lucubrator lucubratory lucule luculent luculently lucullan lucuma lucumia lucumo lucumony lucy ludden luddism luddite ludditism ludgate ludgatian ludian ludibrious ludibry ludicropathetic ludicrosity ludicrous ludicrously ludicrousness ludification ludlamite ludlow ludo ludwig ludwigite lue lues luetic luetically lueurs lufberry lufbery luff luffa lufthansa luftwaffe lug lugal luganda luge luger luggage lugged lugger luggie lugging luggnagg lugmark lugnas lugs lugubrious lugubriously lugubriousness luhinga lui luian luigi luis luise luite lujaurite lukely lukemia lukeness lukewarm lukewarmish lukewarmly lukewarmness lukewarmth lula lulab lularia lull lullabies lullaby lulled luller lulliloo lulling lullingly lulls lum lumachel lumbaginous lumbago lumbales lumbang lumbar lumbarization lumbayao lumber lumberdom lumbered lumberer lumbering lumberingly lumberingness lumberjacks lumberless lumbermen lumbers lumbersome lumbocolostomy lumbocolotomy lumbocostal lumbodorsal lumbodynia lumbosacral lumbovertebral lumbricidae lumbriciform lumbricine lumbricoid lumbricoides lumbricosis lumen luminaire luminal luminance luminaries luminarious luminarism luminary lumination luminator lumine luminescence luminescent luminibus luminiferous luminificent luminism luminist luminologist luminosity luminous luminously luminousness lummox lummy lump lumpectomies lumpectomy lumped lumpering lumpily lumpiness lumping lumpish lumpishly lumpishness lumpkin lumpman lumps lumpsucker lumpur lumpy luna lunacy lunambulism lunar lunare lunarian lunarist lunate lunatellus lunately lunatic lunatically lunatics lunatize lunatum lunch lunchbasket lunchbox lunched luncheon luncheonette luncheons luncher lunches lunching lunchroom lunchtime lund lunda lundberg lundinarium lundquist lundress lune lunel lunes lunette lung lunge lunged lungeous lungfish lungful lungie lunging lungis lungmotor lungs lungsick lungworm lungwort lungy lunicurrent luniform lunisolar lunistitial lunitidal lunkhead lunn lunt lunula lunular lunularia lunulate lunulated lunule lunulet lunulites luny lupa lupanarian lupanine lupe lupeol lupercal lupercalia lupercalian luperci lupid lupiform lupin lupine lupinin lupinine lupinosis lupinus lupis lupoid lupous lupulic lupulin lupuline lupulinic lupulinous lupulinum lupulus lupus lupuserythematosus lur lura lural lurch lurched lurcher lurches lurching lurchingfully lurchingly lurchline lurdan lurdanism lure lured lureful lurement lurer lures luresome lurg lurgworm luri lurid luridity luridly luridness luring luringly lurk lurked lurking lurkingly lurkingness lurks lurrier lurry lusaka lusatian luscinia luscious lusciously lush lushai lushburg lushly lushness lushy lusiad lusian lusitania lusitanian lusk lusky lusory lust lusted luster lusterer lusterless lustful lustfully lustfulness lustier lustihead lustily lustiness lusting lustral lustrant lustrate lustration lustrations lustrative lustratory lustre lustreless lustres lustrify lustrine lustring lustrous lustrously lustrousness lustrum lusts lusty lut lutanist lutany lutaria lutation lutayo lute lutecium luted lutein luteinization lutemaker luteo luteocobaltic luteofuscescent luteolin luteolous luteorufescent luteovirescent luter lutetia lutetian luteway luth lutheranism lutheranize luthier lutianid lutianidae lutianus lutidine lutionary lutist lutjanidae lutjanus lutose lutra lutreola lutrinae lutrine lutulence lutz luvian luwian lux luxate luxe luxemburger luxemburgian luxuriance luxuriancy luxuriant luxuriantly luxuriantness luxuriate luxuriated luxuriation luxuries luxurious luxuriously luxuriousness luxurist luxury luxus luzon luzula lveinlieder lvh lwo ly lycaconitine lycaena lycaenid lycaenidae lycanthrope lycanthropist lycanthropize lycanthropous lycee lycees lyceum lyceums lychnis lychnomancy lychnoscopic lycidae lycium lycodes lycodidae lycopene lycoperdaceae lycoperdaceous lycoperdales lycoperdoid lycopod lycopode lycopodiaceous lycopodiales lycopodium lycopsida lycorine lycosa lycosid lycosidae lyctidae lyctus lyddite lydia lydian lydischen lydy lye lyencephala lyencephalous lyery lyes lyeth lygaeid lygodium lying lyingly lyle lyman lymantria lymantriid lymantriidae lymhpangiophlebitis lymnaea lymnaeid lymnaeidae lymph lymphad lymphadenectasis lymphadenia lymphadenitis lymphadenoma lymphadenopathy lymphaemia lymphagogue lymphangeitis lymphangiectasis lymphangiectatic lymphangiitis lymphangiology lymphangioma lymphangiomatous lymphangioplasty lymphangiosarcoma lymphangiotomy lymphangitic lymphangitis lymphatic lymphatical lymphatics lymphatism lymphatolysin lymphatolysis lymphatolytic lymphectasia lymphedema lymphenteritis lymphoblast lymphoblastic lymphocele lymphocyst lymphocystosis lymphocytes lymphocytoma lymphocytosis lymphocytotic lymphocytotoxin lymphoduct lymphogenous lymphoglandula lymphogranuloma lymphoid lymphoidectomy lymphokines lymphology lymphomatosis lymphomonocyte lymphomyxoma lymphopenia lymphopenial lymphopoiesis lymphoprotease lymphorrhage lymphorrhagia lymphorrhagic lymphorrhea lymphosarcoma lymphosarcomatosis lymphosarcomatous lymphostasis lymphotaxis lymphotomy lymphotoxemia lymphotoxin lymphotrophic lymphotrophy lymphuria lymphy lyncean lynceus lynch lynchable lynchburg lyncher lynches lynching lynchings lyncine lyndhurst lynette lyngbyaceae lyngbyeae lynnhaven lynx lyomeri lyon lyonese lyonetiid lyonetiidae lyonnais lyonnaise lyophile lyophobe lyopoma lyopomatous lypothymia lyra lyraid lyrate lyraway lyre lyrebird lyreflower lyres lyretail lyric lyrical lyrically lyrichord lyrici lyricism lyricist lyricize lyrico lyrics lyrid lyrism lyrist lyrurus lys lysenko lysenkoism lyses lysidine lysigenous lysigenously lysiloma lysimachia lysimeter lysin lysis lysogenesis lysogenetic lysogenic lyssa lyssophobia lytel lythraceous lythrum lytic lyxose m m's ma'am maam maamselle mab mabel mabi mabinogion mabolo mac macaasim macabre macabresque macaco macadam macadamia macadamised macadamite macadamization macadamize macadamized macadamizer macaglia macan macana macanese macao macaque macaranga macarani macareus macarism macaroni macaronical macaronicism macaronism macaroons macarthur macassarese macaw maccabees maccoboy macdougall macduff mace macedoine macedonia macedonic macehead macer macerate macerated macerater maceration macgregor mach machairodontidae machairodontinae machairodus machan machete machetes machi machiavel machiavelli machiavellian machiavellianism machiavellic machiavellism machiavellist machicolate machicolated machicolation machicoulis machicui machilidae machilis machin machina machinability machinable machinal machination machinations machinator machine machineel machineful machineless machinelike machinemonger machinery machines machinify machinism machinist machinists machinize machinoclast machinofacture machinotechnique macho machopolyp machree macies macilence macilency macilent macintosh mack mackenboy mackenzie mackerel mackereler mackereling mackey mackinaw mackins mackintosh mackintoshed mackintoshite mackle macle macleaya macled maclurea maclurin macmillanite maconite macracanthorhynchus macracanthrorhynchiasis macrame macrander macrandrous macrauchene macrauchenia macraucheniid macrauchenioid macrencephalic macro macroanalysis macroanalyst macroanalytical macrobacterium macrobian macrobiosis macrobiotic macrobiotus macroblast macrocarpous macrocentrinae macrocentrus macrocephalia macrocephalous macrocephalus macrocephaly macrochaeta macrochelys macrochira macrochiran macrochiropteran macroclimatic macrocoly macroconidial macroconidium macroconjugant macrocornea macrocosm macrocosmic macrocosmical macrocosmology macrocosmos macrocrystalline macrocyst macrocystis macrocytic macrocytosis macrodactylia macrodactylic macrodactylism macrodactyly macrodomatic macrodontia macrodontism macroevolution macrofarad macrogamete macrogametocyte macrogamy macrogastria macroglossate macrognathic macrogonidium macrograph macrographic macrolepidopterous macromastia macromelia macromeral macromere macromeric macromeritic macromesentery macrometer macromethod macromyelonal macron macronucleus macropetalous macrophage macrophages macrophagocyte macrophagus macrophoma macrophotograph macrophotography macrophysics macropia macropinacoid macroplankton macropodia macropodidae macropodinae macropodous macroprosopia macropsia macropteran macropterous macroreaction macrorhinia macroscian macroscopic macroscopically macroseismic macrosepalous macrosmatic macrosomia macrosplanchnic macrosporange macrosporic macrosporium macrosporophore macrosporophyl macrostachya macrostructural macrostructure macrostylous macrosymbiont macrotheriidae macrotherioid macrotome macrotone macrouridae macrourus macrozamia macrura macrural macruran macruroid mactroid macuca macula macular maculas maculate maculation maculicole maculicolous maculiferous maculocerebral maculose macusi macuta mad madagascan madagascar madagascarian madam madame madapollam madarotic madbrain madbrained madcap madd madded madden maddened maddening maddeningly maddeningness maddens madder madderwort maddest madding maddingly maddle made madecase madefaction madefy madegassy madeira madeiran madeleine madeline madelon mademoiselle madescent madest madhouse madhuca madhva madi madia madiga madison madisterium madling madly madman madmen madness mado madoc madonna madonnahood madonnaish madonnalike madotheca madrague madras madrasi madreperl madreporacea madreporacean madrepore madreporian madreporic madreporiform madreporite madrid madrier madrigal madrigaler madrigaletto madrigalian madrilenian madrona madsen madship madstone madurese madweed madwoman madwort mae maeandra maeandrina maeandrine maeandriniform maeandrinoid maeandroid maegbote maelstrom maenad maenadism maenalus maeniana maenianum maenidae maestoso maestro maffick mafficker maffle mafia mafic mafoo maga magadhi magadis magani magas magazine magazinelet magaziner magazines magazinette magazinish magazinism magazinist magaziny magdalen magdalene mage magellan magellanian magellanic magenta magged maggie maggio maggot maggotiness maggots maggoty magh maghribi magianism magic magical magicalize magically magician magicians magics magindanao magiric magirics magirist magiristic magirological magirologist magis magister magisterial magisteriality magisterially magistery magistracies magistracy magistral magistrality magistrand magistrant magistrate magistrates magistrateship magistratic magistratical magistratically magistrative magistrature magistri maglemose magma magmatic magnam magnanimities magnanimity magnanimous magnanimously magnanimousness magnascope magnascopic magnate magnates magnecrystallic magnelectric magneoptic magnes magnesia magnesial magnesian magnesium magnet magnetic magnetical magnetician magnetify magnetimeter magnetiques magnetism magnetist magnetite magnetization magnetize magnetized magnetizer magneto magnetochemical magnetod magnetoelectrical magnetogenerator magnetographic magnetoid magnetomachine magnetometer magnetometrical magnetometrically magnetometry magnetomotive magnetomotor magnetooptic magnetooptical magnetooptics magnetophone magnetophonograph magnetoplumbite magnetoprinter magnetoscope magnetostriction magnets magni magnicaudatous magnifiable magnific magnifical magnificat magnification magnificence magnificences magnificent magnificently magnificentness magnified magnifiers magnifieth magnify magnifying magniloquence magniloquently magniloquy magnipotence magnipotent magnirostrate magnisonant magnitude magnitudes magnitudinous magnitudo magno magnochromite magnolia magnoliaceae magnolias magnum magnus magnuson magot magpie magpieish magpies magsman maguari maguey magyar magyarism magyarization magyarize mahaleb mahalla mahant maharaja maharajah maharana maharani maharao maharashtri maharawal maharawat mahatma mahatmaism mahayanism mahayanistic mahdiship mahdism mahdist mahi mahogany mahoitre maholi maholtine mahomet mahometry mahoney mahori mahout mahouts mahri mahseer mahuang maia maianthemum maid maida maidan maiden maidenhair maidenhead maidenhood maidenism maidenlike maidenliness maidenly maidens maidie maidish maidkin maidlike maidling maids maidservant maidu maidy maie maiefic maier maieutics maig maight maigris maihem maiid mail mailable mailbag mailbox mailed mailer mailguard mailie mailing maillechort mailles mailless maillotins mailman mailmen mailplane mails maim maimed maimedly maimedness maimer maiming maimon maimonist main mainan maine mained mainferre maining mainland mainline mainly mainmast mainour mainpernable mainpernor mainport mainpost mains mainsail mainsheet mainspring mainsprings mainstay mainstays mainstreeter maint maintain maintainable maintainableness maintained maintainer maintainers maintaineth maintaining maintainment maintainor maintains maintenance maintenant maintenon maintien maintop maintopman mainyard maioid maioidea maioli maipure mair mairatour mairie mais maisonette maisons maister maitlandite maitre maitres maitreya maius maize maizebird maizenic maizer maj maja majagga majestic majestical majestically majesticalness majesticness majesty majestyship majeure majo majolica majolist major majora majorate majorcan majordomo majorem majorette majori majorism majorist majoristic majorities majority majors majuscular majuscule mak makaraka makasar makassar make makebate makedom makedonischcn makee makefast maker makeress makers makership makes makeshift makeshiftiness makeshifts makest maketh makethe makeup makeweight maki makimono making makings makom makroskelic maku makua mal mala malaanonang malabar malabarese malabathrum malabsorption malacanthid malacanthidae malacanthus malacca malaccan malaceous malacia malacocotylea malacoderm malacodermatidae malacodermatous malacodermidae malacolite malacological malacologist malacology malacophonous malacophyllous malacopod malacopoda malacopodous malacopterygian malacopterygii malacopterygious malacoscolices malacosoma malacostracology malacostracous maladapt maladaptation maladdress maladie maladies maladive maladjust maladjusted maladjustment maladminister maladministration maladministrator maladroit maladroitly maladroitness maladventure malady malaga malagasy malaguena malahack malaise malakin malamute malamutes malandered malanders malanga malapaho malapert malapertly malapertness malapi malapplication malappointment malaprop malapropish malapropism malapropoism malapterurus malar malaria malarial malarin malariologist malarious malarrangement malasapsap malassimilation malassociation malate malati malattress malawi malax malaxation malaxerman malaxis malayalam malayan malayic malayize malayoid malaysia malaysian malbehavior malbrouck malchus malcolm malconceived malconstruction malcontent malcontented malcontentedly malcontentedness malcontentism malcontently malcontentment malcontents malcreated malcultivation malden maldevelopment maldirection maldistribution maldive maldivian maldonite malduck male malease maleate malebolge malebolgian malebolgic malebranchism maledict malediction maledictions maledictive maledictory malefactor malefactors malefactory malefactress malefically maleficence maleficent maleficiation maleic maleinoid malella maleness malengine maleo maleruption males malesherbia malesherbiaceous malevolence malevolent malevolently malexecution malfed malformation malformations malformed malfortune malfunction malgrado malgre malguzar malguzari malheurs malhygiene mali malic malice maliceproof malicho malicious maliciously malicorium malidentification maliferous maliform malign malignance malignancies malignancy malignant malignantly malignation maligned maligner malignify malignity malignment malik malikala malikana maliki maline malinfluence malinger malingerer malingery malinstitution malintent malism malison malistic malitia malkite mall mallangong mallard mallardite malleability malleable malleableize malleableized malleableness malleablize malleal malleate mallee malleifera malleiform malleinization malleinize mallemaroking mallemuck malleolable malleolus mallet mallets malleus malling mallophagan mallophagous malloseismic mallotus mallow mallowwort malls mally malm malmignatte malmsey malmy malnourished malnutrite malo malobservance malobservation maloccluded malocclusion malodor malodorous malodorously malojilla malonate malone malonic malonyl malonylurea malope maloperation malorganization malorganized malorum malouah malpais malpighiaceae malpighiaceous malpighian malposition malpractice malpractices malpractioner malpresentation malproportion malproportioned malpropriety malpublication malraux malreasoning malrotation malt maltable maltase malted malter maltese maltha malthouse malthusian malthusiast maltiness malting maltman malto maltobiose maltodextrin maltodextrine malton maltreat maltreated maltreating maltreator maltster malturned maltworm malty malure malurinae malus malva malvaceae malvasia malvasian malversation malverse malvoisie malvolition mam mama mamaroneck mambo mamelonation mameluco mamenka mamercus mamers mamertine mamie mamlatdar mamma mammal mammalgia mammalia mammalian mammality mammalogical mammalogy mammals mammary mammas mammea mammee mammer mammies mammiform mammilla mammillaplasty mammillar mammillaria mammillary mammillate mammillated mammillation mammitis mammock mammogen mammogenically mammogram mammography mammon mammondom mammoniacal mammonish mammonism mammonistic mammonite mammonitish mammonization mammonize mammonolatry mammoth mammoths mammula mammular mammut mammutidae mammy mampus man mana manabozho manacled manacles manacling manacus manage manageability manageable manageableness managed manageless management managemental managements manager managerdom manageress managerial managers managership manages managing managua manaism manakh manal manama manasquan manatee manatoid manatus manaus manavelins manbot manche manchester manchesterdom manchesterism manchet manchon manchu manchurian mancinism mancipation mancipative mancipee mancipium manciple mancipular mancono mancunian mancus mand mandaean mandaic mandalay mandament mandamus mandan mandant mandarin mandarinate mandarinic mandarins mandate mandated mandatee mandates mandation mandatory mandatum mandelic mandible mandibula mandibular mandibulary mandibulate mandibulosuspensorial mandilion mandingan mandingo mandioca mandolin mandolinist mandom mandore mandra mandragora mandrake mandrel mandriarch mandrill mandrin mandruka mandua manducable manducatory mandy mandyas mane maned manege manei maneless manent maner manerial manerium manes maness manet manettia maneuver maneuverable maneuverer maneuvering maneuvers maney manfred manfreda manful manfully manga mangabeira mangal manganapatite manganate manganblende manganeisen manganese manganesian manganetic manganhedenbergite manganic manganiferous manganite manganium manganja manganocolumbite manganophyllite manganosiderite manganostibiite manganotantalite manganous manganpectolite mangar mangbattu mange mangeao mangel mangelin mangels manger mangers mangifera mangily manginess mangle mangled mangler mangling manglingly mango mangoes mangolds mangona mangonel mangonization mangosteen mangrate mangrove mangroves mangue mangy manhattan manhattanite manhattanize manhead manhole manhood manhunt mani mania maniable maniac maniacal maniacally maniacs manibus manic manicaria manicate manichaean manichaeanize manichaeism manichaeist manicole manicure manicured manicurist manid manidae manienie manifest manifestable manifestant manifestation manifestational manifestationist manifestations manifestative manifestatively manifested manifestedness manifesting manifestive manifestly manifesto manifestos manifests manifold manifoldly manifoldness maniform manify manihot manikin manikinism manikins manila maning manioc maniple manipulable manipular manipulatable manipulate manipulated manipulates manipulating manipulation manipulations manipulative manipulator manipulatory manipuri manis manist manistic manito manitoban manius maniva manjak mank mankeeper mankin mankind manless manlet manley manlier manliest manlihood manlike manlikeness manliness manling manly manmade mann manna manned mannequin manner mannerable mannered mannerhood mannering mannerism mannerisms mannerist manneristic manneristical manneristically mannerize mannerless mannerlessness mannerliness mannerly manners manness mannheimar mannide mannie manniferous mannify mannikin mannikinism manning mannish mannishness mannitic mannitol mannoheptitol mannoketoheptose mannonic mannosan mannose manny mano manobo manoc manoeuvre manoeuvred manoeuvres manoeuvring manograph manometer manometers manometric manometrical manometry manomin manor manorial manorialism manors manorship manoscope manostat manostatic manquait manque manred manrope mans mansard mansarded manscape manse manservant manship mansion mansional mansionary mansioneer mansionry mansions manslaughter manslaughterer manslaughterers manslaughtering manslaughterous manslayer manslaying manstealer manstealing manstopper manstopping mansuetely mansuetude mansum mant manta mantal manteau mantel mantelet manteline mantelletta mantelpiece mantelpieces mantels mantelshelf manteltree manter mantic manticore mantid mantillas mantilles mantinean mantis mantises mantispa mantispid mantissa mantistic mantle mantled mantlepiece mantles mantlet mantling mantodea mantoidea mantologist mantology mantoux mantrap mantuamaking manual manualii manualism manualist manualiter manually manuals manubriated manubrium manucaptor manucodiata manuduce manuduction manufaciure manufactories manufactory manufacturable manufactural manufacture manufactured manufacturer manufacturers manufactures manufacturing manuka manul manuma manumea manumisable manumission manumissive manumit manumitted manumitter manumotive manurable manurage manurance manure manured manureless manurer manures manurial manuring manus manuscript manuscription manuscripts manuscriptural manuscrits manustupration manutagi manvantara manward manwards manway manweed manx manxman manxwoman many manyberry manye manyfold manyof manyplies manyroot manywise manzana manzanillo manzanita manzas manzil maomao maori maoridom maoriland maorilander map mapach maphrian maphrotight mapland maple maples mapo mappable mapped mapping mappist mappy maprotiline maps mapuche mapwise maquahuitl maquette maquiritare maquis mar marabotin marabou marabout marabuto maraca maracock marae marafino marakapas maranatha marang maranha maranham maranhao marantaceae marantaceous mararie maraschino marasmic marasmius marasmoid marasmous marasmus marathi marathon marathoner marathoners marathonian marathons maratism maratist marattiaceae marattiaceous maraud marauder marauders marauding maravi marbelize marble marbled marblehead marbleheader marblehearted marbleization marbleize marbleizer marblelike marbler marbles marbling marbly marbre marcan marcantant marcasite marcasitic marcasitical marcel marceline marceller marcellian marcello marcescence marcgraviaceae marcgraviaceous march marchande marchands marchantia marchantiaceae marchantiaceous marche marched marcher marches marchese marchetto marching marchioness marchite marchland marchpane marcid marcionite marcionitic marcionitish marcionitism marcite marcobrunner marconi marconigram marconigraph marconigraphy marcor marcosian marcy mardi mardy mare mareblob mareca marechal marehan maremma maremmatic maremmese marengo marennin mareotic mareotid mares marfan marfik marfire margarate margarelon margaric margarin margarine margarines margarita margarodes margarodid margarodinae margarodite margarosanite margay marge margeline margent margery margie margin marginal marginalia marginally marginate marginated margination margined marginella marginellidae marginirostral marginoplasty margins margo margosa margravate margrave margravely margraves margraviate margravine marguerite marhala mari marialite mariamman marian mariana marianic marianne marianolatrist marianolatry maricolous marid marie mariengroschen marietta marigenous marigold marigolds marigram marigraphic mariied marijuana marilla marilyn marimba marimonda marin marina marinade marinate marinated marine mariner marineres mariners marines marinheiro marino marinorama mario mariolatrous mariolatry mariologische mariology marionette marionettes marions maris marish marishness marist maritage marital maritality maritally mariticidal mariticide maritima maritime maritimes maritorious marjorie marjory mark markable markdown marke marked markedly markedness marker markers market marketable marketableness marketably marketed marketer marketing marketplace markets marketstead markfieldite markgenossenschaft markham markhor marking markings markless markman markmoot marko markov marks markshot marksman marksmanly marksmanship marksmen markswoman markup markweed marl marlberry marlboro marlborough marled marlene marler marli marlin marling marlite marlitic marllike marlock marlowish marlowism marls marly marm marmalade marmalady marmar marmarization marmarize marmarosis marmelos marmennill marmit marmorate marmorated marmoration marmorcae marmoreally marmoric marmosa marmose marmoset marmot marmota marmots marnels maro marok maronist maronite maroon marooned maroons maroquin marplot marplotry marque marquee marquesan marquess marquessate marquesses marqueterie marquetry marquette marquis marquisal marquisate marquise marquises marquisette marquisina marranize marrano marred marree marrer marreth marriage marriageability marriageable marriageableness marriageproof marriages married marriedin marries marrietta marring marron marronne marrons marrow marrowbone marrowfat marrowish marrowless marrowsky marrowskyer marrowy marrucinian marry marrying marrymuffe mars marsala marsdenia marse marseilles marser marsh marsha marshal marshaled marshaler marshaless marshaling marshalled marshalling marshalman marshals marshberry marshbuck marshes marshfield marshfire marshflower marshgrass marshite marshland marshlander marshlands marshlike marshlocks marshmallow marshmallows marshy marsi marsian marsilea marsileaceae marsileaceous marsipobranch marsipobranchia marsipobranchiata marsipobranchiate marsoon marspiter marssonia marssonina marster marsupial marsupialian marsupialization marsupialize marsupian marsupiata marsupiate marsupium mart martagon martel marteline martellate marten martensite martensitic martes martext martha martial martialed martiality martialization martialize martially martialness martian martin martinet martineta martinetish martinetishness martinetism martinez martingale martini martinico martinmas martinoe martins martinson martite martius marts marty martynia martyniaceae martyr martyrdom martyred martyress martyrium martyrization martyrizer martyrlike martyrly martyrolatry martyrologic martyrological martyrologist martyrologistic martyrology martyrs martyrship marvel marveled marveling marvelled marveller marvelleth marvelling marvellous marvellously marvelment marvelous marvelously marvelousness marvels marvin marwari marxian marxism marxist mary maryland marylander marylandian marymass marysole marzipan mas masai masaridid masarididae masaris mascagnine mascagnite mascara mascarades mascaron mascleless mascot mascotry mascularity masculation masculine masculinism masculinist masculinity masculinize masculinizing masculist masculofeminine masculy masdeu masdevallia maser mash masha mashallah mashed mashelton masher mashie mashing mashona mashpee mashy masjid mask masked maskegon maskelynite maskers maskette masking masklike maskoi maskoid masks maslin masochist masochists mason masoner masonic masonite masonries masonry masons masooka masoola masoretic masquais masque masquer masquerade masquerades masquerading masques mass massa massachusetts massacre massacred massacres massacring massage massaged massager massaging massagist massalian massasauga masse massebah massecuite massed massedness massekhoth massel masser masses masseter masseteric masseuse massey massiest massif massilia massily massing massive massively massiveness masskanne massless massmonger massotherapy massoy massula massy mast mastadenitis mastadenoma mastage mastalgia mastatrophia mastauxe mastax mastectomies masted master masterable masterate mastercraft masterdom mastered masterer masterful masterfully masterfulness masterhood mastering masterless masterlessness masterlike masterliness masterling masterly masterman mastermind masterous masterpiece masterpieces masterproof masters mastership masterships masterwort mastery mastful masthead mastheaded mastheads masthelcosis mastic masticability masticable masticated masticating mastication masticator masticatory mastiche masticic mastick masticura mastiff mastigamoeba mastigate mastigium mastigobranchial mastigophora mastigophoran mastigophorous mastigopoda mastigopodous mastigote mastigure mastman mastocarcinoma mastoccipital mastochondroma mastochondrosis mastodon mastodons mastodonsaurian mastodonsaurus mastodont mastodontic mastodontidae mastodontine mastodontoid mastodynia mastoid mastoidal mastoidectomy mastoiditis mastoidohumeralis mastologist mastoparietal mastopathy mastorrhagia mastoscirrhus mastosquamose mastotomy masts masturbate masturbation masturbational masturbator mastwood masty masu mat matacan matachina mataco matadero matador mataeologue mataeology matagalpan matagory matai matalan matamoro matanza matatua matawan matax matboard match matchable matchableness matchboard matchboarding matchbook matchbox matchcoat matched matcher matches matching matchless matchlessly matchlessness matchlock matchmake matchmaker matchmaking matchmark matchsafe matchstick matchsticks matchwood mate mated mategriffon matehood mateless matelessness matelote matelotes mately mateo mater materia material materialism materialist materialistic materialistical materialists materiality materialization materialize materialized materializer materializes materially materialness materials materiation materiel maternal maternality maternalize maternally maternity maternology mates mateship matey matfelon matgrass mathemaltiques mathematic mathematical mathematically mathematicals mathematician mathematicians mathematicize mathematicks mathematics mathematik mathematique mathematiques mathemeg mathes mathetic mathewson mathias mathieu maths mathurin matieres matilda matildite matin matinal matinee mating matins matipo matisse matka matless matlockite matmaker matmaking matra matral matralia matranee matrass matreed matriarchal matriarchalism matriarchate matriarchic matriarchy matric matrices matricidal matriculant matricular matriculate matriculated matriculation matriculator matrigan matriheritage matriherital matrilineal matrilineally matrilinearism matrilocal matrimonial matrimonious matrimony matriotism matripotestal matrix matroclinic matroclinous matrocliny matron matronage matronal matronalia matronhood matronism matronize matronliness matronly matrons matronship matronymic mats matsu matsuri matta mattamore mattaro matte matted mattedly mattedness matter matterate matterative mattered matterfulness mattering matterless matters mattery matteuccia matthaean matthew matthews matthiola matti matting mattock mattoid mattoir mattrass mattrasses mattress mattresses mattson mattulla matty maturable maturate maturation maturative mature matured maturely maturement maturer matures maturescence maturescent maturing maturish maturity matutinal matutine matutinely matweed maty matzo matzoon matzos matzoth mau maud maudle maudlin maudlinism maudlinize maudlinly mauger maugh maul maulawiyah mauled mauler mauley mauling maulstick maumee maumet maun mauna maund maunder maunderer maundering maunderings maundful maunge maunna mauretanian mauri maurice mauricio maurist mauritania mauritia mauritian mauritius maurus mauser mausolea mausoleal mausolean mausoleum mausoleums mauther mauvaise mauve mauveine mauvette mauvine maux maverick mavis mavortian maw mawkishness mawky max maxilla maxillary maxilliferous maxilliform maxilliped maxillipedary maxillodental maxillofacial maxillojugal maxillolabial maxillomandibular maxillopalatal maxillopharyngeal maxillopremaxillary maxillozygomatic maxim maxima maximal maximalism maximalist maximally maximate maxime maximilian maximist maximization maximize maximon maxims maximum maximus maxine maxixe maxwellian may maya mayaca mayacaceous mayance mayapple mayathan maybe maybes maybird maybloom maybush maycock mayday maye mayer mayest mayeye mayfish mayflower mayfowl mayhap mayhappen maylike maynard maynt mayo mayologist mayonnaise mayor mayoral mayoralty mayoress mayors mayorship mayoruna maypoling mayrhofen maysin mayst mayten maytenus maytide maytime mayweed maywings maywort maza mazalgia mazama mazard mazarine mazateco mazda mazdaism mazdaist mazdakite mazdean maze mazed mazedly mazedness mazeful mazement mazer mazes mazhabi mazic mazily maziness mazodynia mazolysis mazolytic mazopathic mazopexy mazuca mazuma mazur mazurian mazurka mazurkas mazut mazy mazzard mazzinian mazzinianism mazzinist mba mbabane mbabne mbalolo mbaya mbori mbuba mcadams mcallister mcbride mccabe mccall mccallum mccarthy mccarty mccauley mcclellan mcclure mccluskey mcconnel mccording mccormick mccullough mcdaniel mcdermott mcdonnell mcdowell mcelroy mcfadden mcfarland mcginnis mcgrath mcgregor mcguire mchugh mcintosh mckay mckenna mckenzie mckeon mckinley mckinney mcknight mclean mcmillan mcmullen mcnally mcneil mcorded mdewakanton me meable meaching mead meader meadian meadow meadowed meadowland meadowlark meadowless meadows meadowsweet meadowy meads meadsman meager meagerly meagerness meagre meagrely meagreness meagrest meak meal meale mealed mealer mealies mealily mealiness mealman meals mealtimes mealy mealymouthed mealymouthedly mealymouthedness mealywing mean meander meandered meandering meanderingly meanders meandrine meandriniform meandrous meane meaned meaner meanest meaneth meaning meaningful meaningfully meaningless meaninglessness meaningly meanings meanish meanlooking meanly meanness meannesses means meant meantes meantime meantone meanwhile mease measle measled measles measley measly measondue measurability measurable measurableness measurably measuration measure measured measuredly measuredness measureless measurelessly measurelessness measurement measurements measures measuring meat meatballs meatbird meatcutter meated meatily meatiness meatless meatman meatoscope meatotome meatpackers meats meatus meatworks meaty mebbe mebsuta mebutamate mecaptera mecca meccano mechanal mechanality mechanalize mechanic mechanical mechanicalism mechanicalist mechanicality mechanicalization mechanically mechanician mechanicochemical mechanicocorpuscular mechanicointellectual mechanicotherapy mechanics mechanise mechanism mechanisms mechanist mechanistic mechanistically mechanize mechanized mechanizer mechanolater mechanology mechanomorphic mechanomorphism mechanotherapist mechir mechlin mechoacan meck meckelectomy meckelian meckels mecklenburgian meclizine meclofenate mecodonta mecometer mecometry mecon meconic meconidium meconin meconioid meconium meconology meconophagist mecoptera mecopteron mecopterous mecum med medailles medal medaled medalet medalist medalize medallary medallic medallically medallion medallions medals meddle meddlecome meddled meddlement meddler meddlers meddles meddlesome meddlesomeness meddling meddlingly mede medea medecine medellin medeltiden medeola medford media mediacy mediaeval mediaevalism mediaevalize mediaevals medial medialization medialize medialkaline medially median medianimic medianimity medianism medianity medianly medianus mediastinal mediastine mediastinotomy mediastinum mediate mediated mediately mediateness mediates mediating mediatingly mediation mediative mediatize mediatized mediator mediatorial mediatorialism mediatorship mediatory mediatress mediatrix medic medica medicable medicago medicaid medical medicalert medically medicament medicamentally medicamentary medicamentous medicaments medicare medicas medicaster medicate medicated medications medicative medicator medicatory medicean medici medicinable medicinableness medicinal medicinally medicine medicined medicines medicining medico medicobotanical medicochirurgical medicodental medicolegal medicolegally medicomechanic medicomoral medicophysical medicopsychological medicopsychology medicos medicostatistic medicosurgical medicotopographic medicozoologic medietate mediety medieval medievalism medievalist medievalistic medievally mediglacial medimn medimno medimnus medinilla medio medioanterior mediocarpal mediocre mediocres mediocrities mediocrity mediodepressed mediodigital mediodorsal mediodorsally mediofrontal mediolateral mediopalatal mediopalatine mediopassive mediopectoral mediopontine medioposterior mediotarsal medipren mediprin medisect medisection medish medism medit meditate meditated meditates meditating meditatingly meditation meditationist meditations meditatist meditative meditatively meditativeness mediterranean mediterraneanization mediterraneanize meditrinalia meditullium medium mediumism mediumization mediumize mediums mediumship medizer medjidie medlar medley medleys medoc medowe medowes medregal medressas medrinaque medulla medullar medullary medullate medullated medullization medullose medusae medusaean medusal medusalike medusan medusiferous medusiform medusoid medycyner mee meean meebos meece meeching meed meedless meek meeker meekest meekheartedness meekling meekly meekness meekoceras meenister meer meered meerkat meerschaum meese meesion meet meetable meeten meeter meeterly meetest meeteth meethelp meetin meeting meetinger meetings meetinhof meetly meets mefenamic meg megabar megabyte megacephalic megacephaly megacerine megaceros megacerotine megachile megachiroptera megachiropteran megachiropterous megacolon megacoulomb megadoses megadrili megadynamics megaera megaerg megafarad megafog megagamete megagametophyte megahertz megajoule megalaema megalaemidae megalania megalensian megalerg megalesia megalesian megalesthete megalethoscope megalichthyidae megalichthys megalith megalithic megalobatrachus megaloblast megaloblastic megalocardia megalocarpous megalocephalic megalocephaly megaloceros megalocornea megalocyte megalodactylism megalodactylous megalodon megalodont megalodontidae megalogastria megalograph megalohepatia megalomaniac megalomanic megalomelia megalonychidae megalopa megalopenis megalophonic megalophonous megalophthalmus megalopinae megalopine megalopolis megalopolitan megalopolitanism megalopore megalopsia megaloptera megalopyge megalopygidae megalornis megalornithidae megalosaur megalosaurian megalosauroid megalosaurus megaloscope megaloscopy megalosphere megalospheric megalosplenia megalosyndactyly megaloureter megaluridae megamastictora megamastictoral megamere megampere meganeura meganthropus megaparsec megaphone megaphotographic megaphyton megapod megapodiidae megapodius megaprosopous megaptera megapterinae megarensian megarhinus megarhyssa megarian megaric megaron megascleric megasclerous megasclerum megascope megascopical megascopically megaseism megaseismic megasoma megasporange megasporangium megasporic megasporophyll megathere megatherian megatheriidae megatherine megatherium megatherm megathermic megatheroid megatype megatypy megavitamin megavolt megawatt megaweber megaword megazooid megazoospore megerg meggy megilp megohm megohmit megohmmeter megrim megrims mehalla mehari meharist mehelya mehmandar mehr mei meibomia meibomian meier meilleur mein meinem meinen meinie meio meiobar meionite meiosis meiotaxy meiotic meissa meistersinger meith meizoseismal meizoseismic mejorana mek mekhitarist mekometer mekong mel mela melaconite melagabbro melagra melaleuca melalgia melam melamed melampodium melampsora melampsoraceae melampyritol melampyrum melanagogal melanagogue melancholia melancholiac melancholically melancholics melancholily melancholiousness melancholomaniac melancholy melancholyish melanconiaceae melanconiales melanemia melanger melangeur melania melanic melanie melaniferous melaniidae melanilin melanin melanippe melanippus melanist melanistic melanite melanitic melanize melano melanocarcinoma melanocerite melanochroite melanocomous melanocratic melanocyte melanocytes melanodendron melanoderma melanodermia melanogaster melanogen melanoid melanoidin melanoma/skin melanopathia melanopathy melanophore melanoplakia melanopteron melanorrhagia melanorrhoea melanosarcoma melanosarcomatosis melanose melanosis melanosity melanospermous melanotic melanotrichous melanous melanterite melanthaceae melanthium melanure melanuria melanuric melaphyre melas melasma melasmic melastoma melastomaceae melastomaceous melastomad melatope melaxuma melburnian melch melcher melchite melchora meld meldrop mele meleagridae meleagrina meleagrinae meleagris melee melees melena melene meles melezitase melezitose melia meliaceous meliadus melian melianthaceae melianthaceous meliatin melic melica melicent melicera meliceris melicerous melicerta melicertidae melichrous melicitose melicocca melicraton melilite melilitite melilotus meline melinis melinite meliola meliora meliorable meliorant meliorate meliorater melioration meliorative meliorator meliorist melioristic meliority meliphagan meliphagidae meliphanite melipona meliponinae meliponine melisma melissyl melissylic melitaea melitemia melithemia melitis melitose melitriose melituria melituric mellaginous mellate mellay melleous meller mellifera melliferous mellificate mellification mellifluence mellifluent mellifluently mellifluous mellifluously mellifluousness mellisonant mellisugent mellit mellitate mellite mellitic mellitus mellivorinae mellon mellonides mellow mellowed mellower mellowest mellowing mellowly mellowness mellows mellowy melocactus melocoton melodeon melodia melodic melodica melodically melodicon melodics melodies melodion melodious melodiously melodiousness melodism melodized melodram melodrama melodramas melodramatic melodramatical melodramatically melodramaticism melodrame melody melodyless meloe melogram melogrammataceae melograph melographic meloid meloidae melologue melolonthidae melolonthidan melolonthinae melolonthine melomania melomaniac melon melonechinus melonist melonite melonites melonmonger melonry melons melophonic melophonist melopiano meloplast meloplasty melopoeia melos melosa melospiza melothria melotragedy melotrope melphalan melt meltable meltage melte melted meltedness melters melting meltingness melton meltonian melts melungeon melursus melville mem member membered memberless members membership membracid membracidae membral membrana membrane membraned membraneless membranelike membranelle membraneous membranes membraniform membranin membranipora membraniporidae membranocalcareous membranocartilaginous membranocoriaceous membranocorneous membranogenic membranosis membranous membranously membranula membranulas membranule membres membretto membrum meme memento mementoes mementos memmo memnonian memnonium memo memoir memoire memoires memoirism memoirist memoirs memor memorabilia memorability memorable memorably memoranda memorandist memorandize memorandum memorandums memorative memoria memoriae memorial memorialist memorialists memorialization memorialize memorializer memorials memorie memories memorious memorised memorization memorize memorized memorizer memorizing memorpy memory memoryless memos memphis memphite men menaccanite menace menaced menaceful menacer menaces menacing menacingly menage menagerie menagerist menais menald menangkabau menarche mend mendable mendacious mendaciously mendaciousness mendacity mende mended mendee mendel mendelianism mendelism mendelize mendelssohn mendelssohnian mendelssohnic mendelyeevite mender mendi mendiant mendicancy mendicant mendicants mendication mendicity mending mendipite mendole mendozite mends menelaus meney menfolk menfra meng mengwe menhaden menhir menial menialism meniality menially meniere menilite meningeal meninges meningism meningismus meningitic meningitis meningocele meningocerebritis meningococcal meningoencephalitis meningoencephalocele meningomalacia meningomyclitic meningomyelitis meningorachidian meningoradicular meningorhachidian meningorrhea meningorrhoea meningosis meningotyphoid meninx meniscate menisciform meniscitis meniscoid meniscoidal meniscotheriidae meniscus menisperm menispermine menkalinan menkib menkind menlo mennom mennonist mennonite menobranchidae menobranchus menologium menology menominee menopausal menopause menopausic menophania menopoma menorah menorhyncha menorhynchous menorrhagia menorrhagic menorrhagy menorrhea menorrhoea menosepsis menostasia menostatic menostaxis menotyphlic mens mensa mensal mensalize menschlicher mense menseless menservants menses menshevik menshevist mensity mensonges menstrual menstruant menstruate menstruates menstruating menstruation menstruous menstruousness menstruum mensual mensurable mensurableness mensurate mensuration mensurational mensurative ment mental mentalism mentalist mentalistic mentality mentalize mentally mentary mentation mented menthaceae menthaceous menthadiene menthane menthenone menthol mentholated menthone menthyl menticultural mentiferous mentiform mentigerous mentimeter mentimutation mention mentionability mentionable mentionably mentioned mentioner mentioning mentions mentis mentoanterior mentocondylial mentohyoid mentolabial mentomeckelian mentonniere mentor mentorial mentre ments mentum mentzelia menu menura menuridae menus menyanthaceae menyanthaceous menyie meowed meperidine mephenytoin mephistophelean mephistopheleanly mephistopheles mephistophelic mephistophelistic mephitic mephitical mephitinae mephitine mephitis mephitism mephobarbital mer merak meralgia meraline meratia merbaby mercal mercantile mercantilely mercantilist mercaptal mercaptan mercaptides mercaptids mercaptol mercaptole mercatorial mercedarian mercedes mercedinus mercenaries mercenariness mercenary mercer merceress mercerization mercerize mercerizer mercership mercery merchandisable merchandise merchandiser merchandisers merchandising merchant merchantability merchantable merchantableness merchantish merchantlike merchantly merchantman merchantmen merchantry merchants merchantship merchet mercies merciful mercifully mercifulness merciless mercilessly mercilessness merck mercuration mercurean mercurial mercuriali mercurialis mercurialism mercuriality mercurialization mercurialize mercurializing mercurially mercurialness mercuriamines mercurian mercuriate mercuric mercuride mercurification mercurify mercurio mercurius mercurization mercurize mercurochrome mercurophen mercurous mercury mercy mercyproof mere mered meredith merel merely merenchymatous meres merest merestone meretricious meretrix merfold merfolk merge merged mergence merger merges merging mergulus mergus meriah merice merida meridian meridians meridion meridional meridionality meril meringued merino meriones meriquinoid meriquinone meriquinonic meriquinonoid merismatic merist meristele meristem meristematically meristic meristically merit merite merited meritedly meriter meritful meriting meritis meritless meritmonger meritmongery meritorious merits merk merkin merlasses merlatter merle merlette merlin merlon merlons mermaid mermaiden merman mermis mermithidae mermithization mermithized mermithogyne mermnad mermnadae meroblastic merocele merocelic merocrystalline merocyte merodach merogamy merogastrula merogenesis merogenetic merognathite merogonic merohedrism meromyaria meromyarian meropes meropidae meropidan meroplanktonic meropodite meropoditic merops merorganization merorganize meros merosomal merosomata merosomatous merosome merosthenic merostomata merostomatous merostomous merosymmetry merosystematic merotomize merotropism merotropy merozoa merozoite merriam merribauks merrier merriest merriless merrill merrily merrimack merriment merriness merritt merrow merry merrymake merrymaker merrymakers merrymaking merryman merrywing merse mertensia merulioid merulius merveileux mervin merwinite merwoman merycismus merycoidodon merycoidodontidae mes mesa mesabite mesaconate mesaconic mesadenia mesail mesalike mesally mesange mesaraic mesarch mesarteritis mesartim mesas mesaticephalic mesaticephalous mesatipellic mesatipelvic mesaxonic mescal mescaline mescalism mesdames mese mesectoderm meseemed meseemeth meseems meself mesem mesembryanthemaceae mesembryanthemum mesembryonic mesencephalic mesenchymatal mesenchymatic mesenchymatous mesenchyme mesendoderm mesenna mesenterial mesenteric mesenterical mesenterically mesenteritis mesenteron mesenteronic mesentery mesentoderm mesepimeral mesepimeron mesepisternal mesepisternum mesepithelium mesethmoid mesethmoidal mesh meshech meshed meshes meshrabiyeh meshwork meshy mesiad mesial mesially mesian mesic mesically mesidine mesilf mesilla mesiobuccal mesiocervical mesioclusion mesiodistal mesiodistally mesiogingival mesiolingual mesion mesiopulpal mesitae mesitite mesityl mesitylene mesitylenic mesmerian mesmeric mesmerical mesmerically mesmerise mesmerising mesmerism mesmerist mesmerite mesmerizability mesmerization mesmerize mesmerizee mesmerizer mesmeromania mesmeromaniac mesnality mesne meso mesoappendicitis mesoappendix mesoarial mesoarium mesobar mesobenthos mesoblastema mesoblastemic mesoblastic mesobranchial mesobregmate mesocaecal mesocaecum mesocardium mesocarp mesocentrous mesocephal mesocephalic mesocephalism mesocephalon mesocephaly mesochilium mesochondrium mesocoele mesocoelic mesocolic mesocolon mesocoracoid mesocranial mesocuneiform mesodaeum mesoderm mesodermal mesodermic mesodesmatidae mesodevonian mesodevonic mesodisilicic mesodont mesofurca mesogaster mesogastral mesogastrium mesogloea mesogloeal mesognathic mesognathous mesognathy mesogyrate mesohepar mesohippus mesokurtic mesolabe mesolimnion mesolithic mesolobe mesologic mesology mesomere mesomeric mesometrium mesomorph mesomorphic mesomorphous mesomorphy mesomyodi mesomyodous meson mesonemertini mesonic mesonotal mesoparapteral mesoparapteron mesopetalum mesophile mesophilic mesophragma mesophryon mesophyll mesophyllous mesophyllum mesophyte mesophytic mesophytism mesopic mesoplastic mesoplastral mesoplastron mesopleural mesopleuron mesoplodon mesoplodont mesopodial mesopodium mesopotamia mesoprescutum mesoprosopic mesopterygial mesopterygium mesorchium mesorectal mesorectum mesoreodon mesoridazine mesorrhin mesorrhinal mesorrhinism mesosalpinx mesosaur mesosauria mesosaurus mesoscapula mesoscapular mesoscutal mesoscutellar mesoscutellum mesoscutum mesoseismal mesoseme mesosiderite mesosigmoid mesosomatic mesosome mesosporic mesosternal mesosternebra mesosternum mesostoma mesostomatidae mesostomid mesostyle mesostylous mesosuchia mesotaeniaceae mesotaeniales mesotarsal mesotartaric mesothelae mesothelioma mesothelium mesotherm mesothermal mesothesis mesothet mesothetic mesothetical mesothoracic mesothoracotheca mesothorium mesotonic mesotroch mesotrocha mesotrochal mesotron mesotropic mesotype mesovarium mesoventral mesoxalate mesoxalic mesozoa mesozoan mesozoic mesozoica mespil mespot mesropian mess message messagery messages messan messed messelite messenger messengers messer messes messiah messiahship messianic messianically messianism messianize messieurs messily messinese messiness messing messman messmate messmates messor messroom messtin messuage messy mestee mester mestiza mestizo mestome mesua mesure mesylate mesylates mesymnion met metabasis metabasite metabatic metabiological metabiotic metabismuthic metabisulphite metabletic metabolia metabolic metabolism metabolisms metabolite metabolites metabolize metabolized metaboly metaboric metabular metacarpal metacarpale metacarpalia metacarpals metacarpi metacentric metachemic metachemistry metachlamydeae metachromasis metachromatic metachromatin metachromatism metachronism metachrosis metacinnabarite metacism metacismus metacoele metacompounds metaconal metacone metaconid metaconule metacoracoid metacrasis metacresol metacromial metacromion metacyclic metacymene metad metadiabase metadiazine metadiscoidal metadromous metafluidal metaformaldehyde metafulminuric metagalactic metagaster metagastric metage metageitnion metagenetic metagenetically metagenic metageometrical metagnath metagnathous metagnosticism metagram metagrammatism metagrammatize metagraphic metahewettite metainfective metakinesis metal metalammonium metalanguage metalbumin metaldehyde metalepsis metaleptical metaleptically metaler metalic metalined metaling metalinguistic metalist metalize metallary metalleity metallic metallica metallically metallicity metallicize metallics metalliferous metallification metalliform metallique metalliques metallise metallism metallize metallochrome metallochromy metallogenetic metallograph metallographer metallographical metallographist metallography metalloid metalloidal metallophone metalloplastic metallurgic metallurgical metallurgically metallurgist metallurgists metallurgy metalmonger metalogic metals metaluminic metalwork metalworker metalworking metalworks metamathematical metamathematics metamer metameral metamere metameric metameride metamerism metamerization metamerized metamerous metamery metamorphic metamorphism metamorphosable metamorphose metamorphosed metamorphoses metamorphosian metamorphosical metamorphosis metamorphostical metamorphotic metamorphous metamorphy metamynodon metanalysis metanauplius metanemertini metanephritic metanephron metanitroaniline metanotal metanotum metantimonic metantimonious metaorganism metaparapteral metaparapteron metapectus metapepsis metapeptone metaphenomenal metaphenylene metaphenylenediamin metaphloem metaphonical metaphonize metaphony metaphor metaphoric metaphorical metaphorically metaphoricalness metaphors metaphosphoric metaphragmal metaphrase metaphrasis metaphrastic metaphrastical metaphrastically metaphyseal metaphysic metaphysical metaphysician metaphysicianism metaphysicians metaphysicist metaphysicize metaphysicous metaphysics metaphysis metaphytic metaphyton metaplast metaplastic metapleur metapleura metapleural metapleure metapleuron metaplumbate metapneustic metapodial metapodium metapolitician metapolitics metapophysial metapophysis metapore metapostscutellar metaprotein metaproterenol metapsychic metapsychical metapsychics metapsychism metapsychist metapsychological metapsychology metapterygial metapterygium metapterygoid metarabic metarhyolite metarossite metarsenic metarsenious metarsenite metasaccharinic metascutal metascutellar metascutum metasedimentary metasilicate metasilicic metasoma metasomasis metasomatic metasomatosis metasome metaspermae metaspermic metaspermous metastability metastable metastannate metastannic metastases metastasis metastasize metastasizing metastatic metastatical metasthenic metastibnite metastigmate metastome metastrophe metastrophic metastyle metatantalic metatarsal metatarsale metatarsalgia metatarsalia metatarsals metatarse metatarsi metatarsophalangeal metatarsuls metatatically metataxic metate metathalamus metatheology metatherian metatheses metathetical metathetically metathorax metatitanate metatitanic metatoluidine metatracheal metatrophic metatungstic metatype metatypic metavanadate metavanadic metavauxite metavoltine metaxenia metaxite metaxu metaxylem metaxylene metayer metazoa metazoal metazoea metazoic metazoon metcalf mete meted metel metempirical metempiricism metempiricist metempirics metempsychic metempsychosal metempsychosical metempsychosis metemptosis metenteron metenteronic meteogram meteograph meteor meteoric meteorically meteorism meteorist meteoristic meteorital meteorite meteoritics meteorlike meteorogram meteorograph meteorography meteoroid meteoroidal meteorolite meteorological meteorologist meteorology meteorometer meteoroscope meteoroscopy meteorous meteors metepencephalon metepisternum meter metergram meterless meterman metership metes metewand meteyard methacrylate methacrylic methadone methanal methanate methane methanoic methanol methanolysis methazolamide metheglin methemoglobin methemoglobinemia methemoglobinuria methenamine methene mether methide methink methinks methiodide methionic methionine method methodeutic methodic methodical methodically methodicalness methodism methodist methodistical methodistically methodisty methodization methodize methodizing methodless methodological methodologist methods methodus methody methotrimeprazine methought methoxide methoxychlor methoxyl methuselah methyclothiazide methyl methylacetanilide methylal methylamine methylaniline methylanthracene methylate methylated methylation methylator methylcellulose methylcholanthrene methyldiphenyl methylene methylenimine methylenitan methylergonovine methylglycine methylglyoxal methylic methylmalonic methylmethacrylate methylpentose methylpentoses methylphenidate methylprednisolone methylpropane methylsulfanol methyltestosterone metic metics meticulosity meticulous meticulously meticulousness metier meting metlife metochy metoclopramide metoestrous metolozone metonym metonymical metonymically metonymous metonymy metope metopias metopic metopion metopism metopoceros metoposcopical metoposcopist metoposcopy metosteon metoxazine metoxenous metoxeny metralgia metranate metratonia metrazol metre metrectasia metrectopia metrectopic metrectopy metres metreta metrete metretes metric metrical metrically metricism metricist metricize metrics metrification metriocephalic metrist metritis metro metrocarat metrocarcinoma metrocele metroclyst metrocracy metrocratic metrocystosis metrofibroma metrological metrologist metrologue metrology metrolymphangitis metromalacia metromalacoma metromania metromaniac metromaniacal metrometer metroneuria metronidazole metronome metronomic metronomical metronomically metronymic metronymy metroparalysis metropathia metropathic metropathy metrophlebitis metropole metropolis metropolitan metropolitancy metropolitanism metropolitans metropolitanship metropolite metropolitic metropolitical metroptosia metrorrhagia metrorrhea metrorrhexis metrorthosis metroscope metrostaxis metrotherapist metrotherapy metrotome metrotomy mets mettle mettled mettlesome mettlesomely mettre mettrea metusia metzler meus meute mev mew meward mewed mewer mewing mewl mews mexicaines mexican mexicanize mexicans mexico mexiletine mexitl mexitli meyerhofferite meyers meyerton mez mezentian mezentius mezzanine mezzo mezzotint mezzotinter mezzotinto mgm mho mhole mhometer mi mia miami miamia mian miao miaotse miaotze miaow miargyrite miarolitic mias miaskite miasm miasma miasmal miasmas miasmatic miasmatical miasmatically miasmatize miasmatous miasmic miasmology miasmous miasms miastor miauing miaul miauler mib mica micaceous micacious micacite micah micasize micate mication mice micellar mich michabo michael michaelangelo michaelites michaelmas michaelmastide michel michelangelesque michelangelism michelangelo michelin michigander miching michoacan michoacano micht michty mick mickelson mickey mickle micky micmac mico miconazole miconia micrampelis micranatomy micrandrous micraner micranthropos micrencephalia micrencephalous micrencephalus micrencephaly micrergate micresthete micrify microammeter microampere microanalysis microanalytical microangstrom microapparatus microbalance microbar microbarograph microbattery microbe microbeless microbes microbial microbian microbic microbicidal microbicide microbiologic microbiological microbiologically microbiologist microbiology microbiosis microbiota microbiotic microbism microblast microblephary microburet microcaltrop microcardia microcardius microcarpous microcebus microcellular microcentrosome microcentrum microcephal microcephalic microcephalism microcephalus microcephaly microchaeta microcharacter microchemical microchemistry microchiropterous microchromosome microcinema microcinematograph microcinematographic microcinematography microcitrus microclimate microclimatic microclimatological microcline microcnemia micrococcal micrococceae microcoleoptera microcolon microcolorimeter microcolorimetrically microcolorimetry microcolumnar microcombustion microconidial microconjugant microconodon microconstituent microcosm microcosmic microcosmical microcosmography microcosmology microcosmos microcosmus microcoulomb microcranous microcrith microcryptocrystalline microcrystal microcrystalline microcrystallogeny microcrystalloscopy microcurie microdactylism microdentism microdetector microdetermination microdissection microdistillation microdontism microdontous microdose microdrawing microdrili microelectrode microelectrolysis microelectroscope microerg microestimation microeutaxitic microevolution microexamination microfarad microfauna microfiche microfilaria microfilm microfluidal microfoliation microfossil microfungus microfurnace microgadus microgalvanometer microgamete microgametocyte microgametophyte microgamy microgastria microgastrine microgeological microgilbert microglia microglial microglossia micrognathia micrognathic micrognathous microgonidial microgonidium microgram microgramme micrograms microgranitic microgranular microgranulitic micrographical micrographically micrograver microgroove microgyne microgyria microhenry microhistochemical microhistology microhmmeter microhymenopteron microinjection microjoule microlepidoptera microlepidopterist microlepidopteron microlepidopterous microleukoblast microlevel microliter microlithic microliths microlitic micrologic micrological micrologically micrologist micrologue microlux micromania micromaniac micromanipulator micromanometer micromastictora micromelia micromelic micromere micromeria micromeric micromerism micromeritics micromesentery micrometallography micrometer micromethod micrometrical micromicrofarad micromicron micromil micromineralogical micromineralogy micromorph micromotion micromotoscope micromyelia micromyeloblast micron micronase micronesia micronesian micronization micronometer micronutrient microorganic microorganismal microorganisms micropaleontology microparasite microparasitic micropathologist micropegmatite micropegmatitic microperthite microperthitic micropetalous micropetrography micropetrologist microphage microphagocyte microphakia microphallus microphone microphonic microphonograph microphot microphotographic microphotography microphthalmia microphthalmos microphyllous microphysical microphysics microphysiography microphytal microphytic microphytology microplakite microplankton microplastocyte micropodal micropodi micropodidae micropodiformes micropoikilitic micropolariscope micropolarization micropore microporous microporphyritic microprojector micropsy micropterism micropterous micropterus micropterygid micropterygious micropterygoidea micropus micropylar micropyle micropyrometer microreaction microrefractometer microrheometric microrheometrical microrhopias microsauria microsaurian microsclere microsclerum microscope microscopes microscopial microscopic microscopical microscopically microscopics microscopist microscopize microscopy microsection microseismic microseismical microseismometer microseismometrograph microseismometry microseptum microsmatism microsome microsommite microspecies microspectroscope microspectroscopic microspermae microspermous microsphaera microsphaeric microspheric microspherulitic microsplanchnic microsplenia microsplenic microsporange microspore microsporiasis microsporidia microsporon microsporosis microsporum microstat microsthenes microsthenic microstome microstructural microstructure microstylis microsurgical microtechnic microtechnique microtelephonic microthelyphonida microtheos microtherm microthermic microthorax microthyriaceae microtia microtinae microtitration microtome microtomic microtomical microtomist microtone microtype microtypical microvascular microvolt microvolumetric microwatt microwaved microweber microzoa microzoal microzoan microzoaria microzoarian microzoary microzoic microzone microzooid microzoology microzoon microzyma microzyme micrurgic micrurgical micrurgist micrurgy micturate micturition mid midafternoon midair midas midautumn midaxillary midazolam midband midbrain midday midden middenstead middie middle middleaged middlebury middlebuster middleman middlemen middler middles middleschmertz middlesex middlesplitter middletown middlewards middleway middlewoman middling middlingish middlingly middlingness middorsal middy mide midewiwin midforenoon midfrontal midge midges midget midgety midgy midheaven midi midianitish miding midland midlandward midlatitude midleg midlenting midline midmain midmorn midmost midnight midnightly midnights midnoon midparent midparentage midparental midpoint midrange midrash midrib midribbed midriff mids midscale midseason midsentence midshipman midshipmen midshipmite midspace midst midstory midstout midstream midstreet midstroke midstyled midsummer midsummerish midsummery midterm midvein midverse midward midwatch midway midweek midweekly midwest midwesterner midwife midwifery midwinter midwinterly midwives midyear mied miei mien miens miersite mieux miffy mig migh might mightest mightier mightiest mightily mightiness mightless mightnt mighty mightyhearted migniardise mignon mignonette mignonettes mignonne mignonness migraines migrainoid migrate migrated migrates migrating migration migrational migrationist migrations migrative migrator migratorial migratory miguel mihi mihrab mijakite mik mikado mikadoism mikania mikasuki mike mikie mikir mikroskopischen mil mila milady milammeter milan milarite milch milcher milchers milchy mild milden milder mildest mildew mildewed mildewer mildewy mildish mildly mildness mildred mile mileage miledh miler miles miles/hour milestone milestones milestoning mileway miliaceous miliarensis miliaria miliary milicent milieu mililari miliola milioliform militaire militaires militancy militant militantly militantness militare militarily militarism militarist militaristic militarize military militaryism militaryment militate militated militates militation militia militiaman militiamen militiate militum milium milk milked milken milker milkers milkfish milkgrass milkhouse milkiness milking milkings milkless milklike milkmaid milkmaids milkman milkmen milkness milks milkshed milkshop milksick milksop milksopism milksopping milksoppish milksoppy milksops milkstone milkweed milkwhite milkwood milkwort milky mill milla millable millage millard millboard milldam mille milled millenarian millenarianism millenarist millenis millennia millennial millennialism millennially millennian millenniarism millennium millepede millepeds millepora millepore milleporine milleporite miller milleress millering millerism millerite millermoths millerole millers millesimal millet millfeed millful millhouse milliad milliammeter milliamp milliangstrom milliard milliardaire milliare milliarium milliary millibar millicron millicurie milliequivalent milliform milligal milligrade milligram milligrams/deciliter millihenry millilambert millile milliliter milliliters millimeters millimetres millimicron millimole milliner millinerial millinering milliners millinery milling millinormal millinormality millioctave millioersted million millionaire millionairedom millionaires millionairish millionairism millionary millioned millioner millionfold millionism millionist millionize millionnaire millionocracy millions millionth millipede milliphot millipoise millisecond millite millithrum millivolt millocracy millocratism millosevichite millowner millpond millpool millpost mills millsite millstock millstone millstones millstream milltail millward millworker millwrighting milly milner milord milpa milsey miltary milter miltlike milton miltonian miltonic miltonically miltonism miltonist miltwaste milty milvago milvinae milvine milvinous milvus mim mima mimbar mimble mimeo mimeograph mimeographic mimeographically mimer mimesis mimetene mimetesite mimetic mimetically mimetite mimi mimiambic mimic mimicism mimicked mimicker mimicking mimicry mimics mimidae miminypiminy mimmation mimmest mimmocking mimmoud mimmouthed mimmouthedness mimodrama mimographer mimography mimosa mimosaceae mimosis mimosite mimotype mimotypic mimpei mimsey mimulus mimusops min mina minable minaces minacious minaciously minaciousness minacity minahassa minahassan minar minaret minareted minarets minasragrite minatorial minatorially minatorily minatory minature mince minced mincemeat mincer mincing mincingly mincopie mind mindanao minded mindedness mindel mindelian mindest mindful mindfully mindfulness minding mindless mindlessness minds mindsight mine mined minefield minelayer mineowner miner mineragraphic mineragraphy mineraiogic mineral minerale minerales mineralised mineralizable mineralization mineralize mineralogical mineralogically mineralogist mineralogists mineralogize mineralogy minerals miners minery mines mineself minestrone mineter minette ming mingle mingleable mingled mingledly minglement mingler mingles mingling minglingly mingrelian minguetite mingwort mingy minhah mini miniaceous miniature miniatures miniaturist miniaturized minibike minibus minicab minicam minicamera minicomputer miniconjou minienize minification minify minikin minim minima minimal minimalism minimalist minimax minimifidian minimifidianism minimism minimistic minimite minimization minimize minimized minimizer minimizes minimizing minims minimum minimus minimuscular mining minion minionism minionly minions minish minisher minishment minister ministere ministered ministereth ministeriable ministerial ministerialism ministerialist ministerialness ministering ministerium ministers ministership ministrable ministrant ministration ministrations ministrator ministrer ministres ministries ministry ministryship minitant minitari minium miniver minivet mink minkery minkopi minkowski minks minneapolis minnehaha minnesinger minnesong minnetaree minniebush minning minnit minnows mino minoan minoize minometer minor minora minorage minorate minoration minorca minorcan minore minoress minorist minorite minorities minority minors minos minot minotaur minoxidil minseito minsitive minsk minsky minster minstrel minstreless minstrels minstrelship minstrelsy mint mintage mintaka mintbush minted minter minting mintmaker mintmaking mints minty minuend minuet minuetic minuetish minus minuscular minuscule minutary minutation minute minutely minuteman minuteness minuter minutes minutest minuthesis minutia minutiae minutial minutiose minutissimum minverite minx minxish minxishly miny minyadidae minyan minyas miocene miocenic miolithic mioplasmia miosis miothermic miotics miqra mira mirabel mirabell mirabiliary mirabilibus mirabilis mirably mirac mirach miracidial miracidium miracle miraclemonger miracles miraclist miracolo miracula miraculis miraculist miraculosity miraculous miraculously miraculousness mirage miraged mirages mirak mirana miranda mirandous miranha mirate miration mirbane mircalis mird mirdaha mire mired mirepoix mirfak miriam mirid miridae mirific miring mirk mirkiness mirlababo mirny miro miroir mirror mirrored mirroring mirrorize mirrorlike mirrors mirrorscope mirrours mirth mirthful mirthfully mirthfulness mirthless mirthlessly mirthlessness mirthsome miry miryachit mis misaccent misachievement misact misadapt misadaptation misadd misadjust misadministration misadvantage misadventure misadventurer misadventures misadventurous misadventurously misadvice misadvised misadvisedly misadvisedness misaffected misaffection misagent misaim misalienate misaligned misalignment misallegation misallege misalliance misalliances misally misalphabetize misalter misanalyze misandry misanthrope misanthropia misanthropic misanthropical misanthropically misanthropist misanthropy misapparel misappear misappearance misappellation misapplication misapplied misapplier misapply misappoint misappointment misappraise misappraisement misappreciate misappreciation misappreciative misapprehend misapprehensible misapprehension misapprehensions misapprehensive misapprehensively misappropriate misarchism misarchist misarrange misarray misasble misascribe misassert misassign misattend misattribution misauthorization misauthorize misaward misbecome misbecomingly misbefitting misbeget misbehave misbehaved misbehaving misbehavior misbeholden misbelief misbeliever misbelieving misbelievingly misbelove misbestowal misbetide misbias misbind misbirth misbode misborn misbrand misbranded misbuild misbusy miscalculated miscalculating miscalculation miscalculations miscalculator miscall miscalled miscaller miscanonize miscarriage miscarriageable miscarriages miscarried miscarry miscasualty misceability miscegenate miscegenation miscegenetic miscellanarian miscellanea miscellaneity miscellaneous miscellaneousness miscellanies miscellanist miscellany miscetur mischallenge mischance mischanceful mischances mischaracterization mischarge mischief mischiefful mischiefs mischieve mischievous mischievously mischio mischoice mischristen miscibility miscible miscipher misclaim misclaiming misclassification misclassify miscoinage miscolor miscoloration miscommit miscommunicate miscompare miscomplacence miscomplain miscomplaint miscompose miscomprehension misconceive misconceived misconceiving misconception misconceptions misconduct misconducts misconfer misconfidence misconfident misconfiguration misconjecture misconjugate misconjunction misconsecrate misconsequence misconstitutional misconstruable misconstruct misconstruction misconstructions misconstructive misconstrued misconstruer miscontinuance misconvenient misconvey miscookery miscorrection miscounsel miscount miscovet miscreant miscreants miscreator miscredulity miscreed miscript miscue miscultivated miscut misdate misdaub misdeal misdecide misdecision misdeclaration misdeclare misdeed misdeeds misdeem misdeemful misdefine misdeformed misdeliver misdemean misdemeanant misdemeanist misdemeanor misdemeanors misdemeanour misdentition misderivation misderive misdescribe misdescriber misdescription misdescriptive misdesire misdetermine misdiagnosed misdiagnoses misdiet misdirect misdirected misdirection misdispose misdisposition misdistribution misdivide misdoing misdoubt misdoubted misdoubtest misdraw misdrive mise misease misecclesiastic mised misedit miseducate miseducation miseducative miseffect misemploy misemployment misencourage misendeavor misenjoy misenroll misentitle misenunciation misenus miser miserabilist miserabilistic miserability miserable miserables miserablest miserably miserdom miserere miserhood misericordia miseries miserism miserliness miserly misers misery misesteem misestimate misestimation misexecution misexpectation misexpend misexpenditure misexplanation misexplication misexposition misexpress misexpression misfashion misfault misfeasance misfeasor misfeature misfigure misfile misfire misfit misfond misform misformation misformed misfortunate misfortune misfortuned misfortunes misframe misgauge misgauged misgave misgesture misgive misgives misgiving misgivings misgo misgotten misgovernance misgovernment misgovernor misgracious misgraft misground misgrow misgrown misgrowth misguess misguggle misguide misguided misguidedly misguidedness misguidingly mishandle mishandled mishap mishappen mishaps mishearing mishemokwa mishikhwutmetunne mishmash mishmee mishmi mishnic mishongnovi misidentification misidentify misimagination misimpression misimprovement misimputation misincensed misincite misincline misinfer misinference misinform misinformant misinformation misinformed misinformer misingenuity misinstructive misintelligence misintelligible misintention misinter misinterment misinterpret misinterpretable misinterpretation misinterpreted misinterpreter misinterpreting misjoin misjoinder misjudge misjudged misjudgement misjudging misjudgingly misjudgment misjudgments misken miskenning miskill miskindle misknowledge misky mislabel mislabor mislaid mislanguage mislay mislayer mislays mislead misleadable misleading misleadingly misleads mislear misleared mislearn misled mislest mislight mislike misliken misliker misliketh mislikingly mislippen mislive mislodge mismanage mismanageable mismanagement mismanager mismarry mismatch mismate mismated mismeasure mismeasurement mismenstruation mismingle mismotion misname misnamed misnaming misnatured misnavigation misnomed misnomer misnomers misnumber misnurture misobey misobservance misobserve misocapnic misocapnist misocatholic misogamic misogyne misogynical misogynism misogynistic misogynous misogyny misologist misology misomath misoneist misopaterist misopedia misopedism misopedist misopolemical misorder misorganization misorganize misoscopist misosophist misosophy misotheism misotheist misotramontanism mispage mispagination mispaint misparse mispart mispassion mispay misperform misperformance misperuse mispick misplace misplaced misplacement misplant misplay misplead mispleading mispoint mispoise mispossessed mispraise misprincipled misprint misprints misprisal misprision misprize misprized misprizer misproduce misprofess misprofessor mispronounce mispronounced mispronouncement mispronouncing mispronunciation misproud misprovide misprovidence misprovoke mispunctuation mispurchase mispursuit misput misqualify misquality misquote misquoted misrate misread misreader misreading misrealize misreason misreceive misrecital misrecite misreckon misreckoned misrecognition misrecognize misrefer misreference misreform misregulate misrehearsal misrehearse misrelation misreliance misremember misremembrance misrepeat misreport misreporter misreposed misrepresent misrepresentation misrepresentations misrepresented misrepresenter misrepresents misreprint misrepute misresemblance misresolved misresult misreward misrhyme misrhymer misrule miss missa missable missal missals missay missed missee missel missemblance misserable misserve misses misshape misshapen misshapenly misshapenness misshood missible missie missile missilery missiles missiness missing missingly missings mission missionaries missionary missionarying missionaryship missioner missionizer missions missis missishness mississippi mississippian mississippiensis missive missives missmark missouri missourian missourianism missourite misspeak misspell misspelling misspend misspent misstate misstatement misstatements misstay misstep missummation missuppose missus missy missyish missyllabication missyllabify mist mistakable mistakably mistake mistakeful mistaken mistakenly mistakenness mistakeproof mistaker mistakes mistaking mistakingly mistassini misteacher misted mistell mistempered mistend mistendency mister misterm mistetch mistfall mistflower mistful misthought misthrow mistic mistide mistify mistigris mistily mistime mistiness mistis mistiss mistitle mistle mistless mistletoe mistone mistook mistouch mistradition mistrain mistral mistranscribe mistranslation mistreat mistreating mistreatment mistress mistressdom mistresses mistresshood mistressless mistressly mistrust mistrusted mistruster mistrustful mistrustfully mistrustfulness mistrusting mistrustless mistry mistryst mists misty mistyish misunderstand misunderstander misunderstanding misunderstandingly misunderstandings misunderstands misunderstood misunderstoodness misura misusage misusages misuse misused misuseful misuser misusing misusurped misvaluation misvalue misvouch miswed miswisdom miswish misword misworship misworshiper misworshipper miswrite miszealous mit mitanni mitannian mitchboard mitchell mite mitella miteproof miter mitered miterwort mites mith mither mithers mithkals mithraea mithraic mithraicism mithraicize mithraism mithraist mithraistic mithraitic mithras mithratic mithriac mithridate mithridatic mithridatism mithridatize miticidal miticide mitigant mitigate mitigated mitigatedly mitigating mitigation mitigations mitigative mitigator mitigatory mitis mitochondrial mitogenetic mitome mitosis mitosome mitotane mitotic mitotically mitoyens mitra mitraille mitral mitrate mitre mitred mitrer mitres mitridae mitriform mitsukurinidae mitsumata mitted mittelhand mittelschmerz mitten mittened mittens mittimus mittlere mittlern mitts mitty mitu mitua mity mitzvah miurus mix mixblood mixe mixed mixedly mixen mixer mixeress mixers mixes mixhill mixing mixite mixobarbaric mixochromosome mixodectes mixodectidae mixoploidy mixosaurus mixotrophic mixtec mixtilion mixtry mixtum mixture mixtures mixup mixy mizmaze mizpah mizraim mizzen mizzenmastman mizzentopman mizzle mizzling mizzly mizzy mlechchha mlles mlonster mlorning mm mm/hour mmerrors mneme mnemic mnemiopsis mnemonical mnemonicalist mnemonicon mnemonics mnemonism mnemonist mnemonization mnemonize mnemotechnic mnemotechnics mnemotechny mnevis mniaceous mnium mnnners mnst mo moabite moabitic moabitish moan moaned moanfully moanification moaning moaningly moanless moans moat moats mob mobable mobbable mobbed mobber mobbish mobbishness mobbism mobby mobcap mobecule mobed mobil mobile mobilian mobiliary mobility mobilizable mobilization mobilize mobilized mobilizing moble mobocracy mobocratic mobocratical mobocrats mobproof mobs mobsman mocassin moccasins moch moche mock mockado mockbird mocked mocker mockeries mockernut mockers mockery mockest mocketh mockful mockfully mockground mocking mockingbird mockingly mocks mocmain mocoa mocoan mocomoco mocuck mod modal modalism modalist modalistic modalities modalize modally mode model modeled modelessness modeling modelled modeller modelling modelmaker modelmaking models modem modena modenese moderant moderantism moderantist moderate moderated moderately moderateness moderating moderation moderationist moderatism moderatist moderato moderator moderatorship moderatrix modern moderner modernes moderni modernish modernism modernist modernity modernizations modernize modernized modernizer modernly moderns modes modest modestest modestly modesto modesty modiation modicum modifiability modifiable modifiableness modifiably modificable modification modificationist modifications modificator modified modifiers modifies modify modifying modillion modiolar modiolus modish modishness modist modiste modistes modius modo modoc modred modulant modular modulate modulated modulating modulation modulations modulative modulator modulatory moduli modulidae modulo modulus modum modumite modus moe moed moehringia moen moerithere moeritherian moeritherium moeurs moff mofussilite mog mogadiscio mogadisco mogador mogadore mogdad moghan mogigraphia mogigraphic mogilalism mogiphonia mogitocia moglichst mogo mogographia mogollon mogrebbin moguey mogul moh moha mohair mohairs mohammedanism mohammedanize mohammedist mohammedization mohave mohawk mohawkian mohawkite mohel mohican mohineyam moho mohock mohockism mohr mohrodendron mohs mohur moi moidores moieter moiety moil moiled moiler moiling moilingly moilsome moind moindre moine moineau moineaux moines moingwena moins moio moira moire moirette mois moise moiseyev moism moissanite moist moisten moistened moistener moistening moistens moister moistful moistish moistless moistly moistness moisture moistureproof moisturizers moisturizing moit moithered mojarra mojo mokaddam moke moki mokihana moko moksha mokum moky mola molal molala molar molariform molarity molars molary molasse molasses molassied molassy molave mold moldability moldable moldableness moldavia molded molder moldering moldery molding moldings moldmade molds moldy mole molecula molecular molecularist molecularity molecularly molecule molecules molehead moleheap molehill molehills molehilly moleism molendinary moles moleskin moleskins molest molestation molested molester molestful molestfully molesting molests molidae moliere molimen moliminous molinary molindone moline molinia molinist molinistic molka moll molland mollberg molle mollescence mollichop mollicrush mollie mollienisia molliently mollifiable mollification mollified mollify mollifying mollifyingly mollifyingness molligrubs mollipilose mollis mollisiose mollities mollitious mollitude molluginaceae mollugo mollusc mollusca molluscan molluscivorous molluscoid molluscoidal molluscoidean molluscousness molluscs molluscum mollusk mollusks mollusques molly mollycoddle mollycoddler mollyhawk mollyhorning molman molochship moloker molompi molosse molossian molossic molossidae molossine molossoid molossus molothrus molpe molrooken molt molten molter molto molucca moluccan moluccas moluccella moly molybdaina molybdate molybdena molybdenic molybdeniferous molybdenite molybdenous molybdenum molybdite molybdocardialgia molybdomancy molybdomenite molybdonosus molybdophyllite molybdous molysite mom mombin moment momenta momentally momentaneall momentaneity momentaneous momentaneously momentaneousness momentarily momentary momently momentous momentously moments momentum momes momignard momignards moming momiology momism momma mommet momordica momotidae momotus moms momsus momus mon mona monacan monacanthidae monacanthine monacanthous monacha monachism monacid monaco monactin monactine monactinellid monadelph monadelphia monadelphian monadic monadical monadically monadina monadism monadistic monadnock monaene monamine monamines monanday monander monandria monandrian monandric monandrous monandry monanthous monapsal monarch monarchial monarchian monarchianism monarchianist monarchic monarchical monarchically monarchie monarchies monarchism monarchist monarchize monarchlike monarchomachist monarchs monarchy monardella monarthritis monarticular monas monasa monascidiae monase monash monasterial monasteries monastery monastic monastical monastically monasticism monasticize monastique monatomic monatomism monaulos monaural monaxial monaxile monaxon monaxonida monazine monazite monbuttu monchiquite mondayishness mondayland mondays monde mondes mone monegasque monel monell monepic monepiscopal moner monera moneral moneran monergic monergism monergist moneric moneron monerozoic monerula moneses monesia monetarily monetarism monetarist monetary monetite monetization monetize money moneybag moneychangers moneyed moneyer moneyflower moneygrub moneygrubber moneygrubbing moneylending moneyless moneymake moneymaking moneys moneysaving moneywort mong monger mongering monghol mongholian mongler mongo mongol mongolia mongolic mongolioid mongolism mongolization mongolize mongoloid mongoose mongooses mongrel mongreldom mongrelity mongrelization mongrelize mongrelness mongrels mongst monial monias monica monie monied monies moniker monilated monilethrix monilia moniliaceae moniliaceous moniliales moniliform moniliformis moniliformly monilioid moniment monimia monimiaceae monimiaceous monimolite monimostylic monist monistic monition monitions monitor monitorial monitorially monitoring monitorish monitors monitorship monitory monitress monitrix monk monkcraft monkdom monkery monkey monkeyboard monkeyed monkeyflower monkeyfy monkeyhood monkeyish monkeyishness monkeynut monkeypot monkeyry monkeys monkeyshine monkeytail monkfish monkhood monkish monkishly monkism monklike monkly monkmonger monks monkshood monoacetate monoacetin monoacid monoacidic monoamide monoamino monobase monobasic monobasicity monoblastic monoblepsia monobloc monobrominated monobromination monobromized monobromoacetanilide monobromoacetone monobutyrin monocalcium monocarbide monocarbonic monocarboxylic monocardian monocarpal monocarpellary monocarpous monocellular monocentric monocentridae monocephalous monocercous monoceros monocerous monochasium monochlamydeous monochlor monochloracetic monochloranthracene monochlorbenzene monochloride monochlorinated monochlorination monochloro monochloroacetic monochlorobenzene monochoanitic monochord monochordist monochordize monochroic monochromat monochromate monochromatic monochromatically monochromator monochrome monochromic monochromical monochromically monochromist monochromous monochromy monochronic monociliated monocle monoclinal monoclinally monoclinian monoclinic monoclinism monoclinous monoclonal monocoelia monocoelian monocoelic monocondyla monocondylar monocondylian monocondylic monocondylous monocot monocotyledon monocotyledones monocotyledonous monocotyledons monocracy monocrat monocratic monocrotic monocrotism monocular monocularity monoculate monoculist monoculous monocultural monoculture monoculus monocyanogen monocycle monocyclica monocystic monocystidae monocystidea monocystis monocyte monocytogenes monocytopoiesis monodactyl monodactylism monodactylous monodactyly monodelph monodelphia monodelphian monodelphic monodelphous monodermic monodes monodic monodimetric monodist monodize monodomous monodon monodram monodrama monodromy monodynamic monodynamism monoecian monoecious monoeciously monoeciousness monoeidic monoestrous monoethanolamine monoethylamine monoformin monogamian monogamic monogamist monogamistic monogamous monogamousness monogamy monoganglionic monogastric monogene monogenea monogeneity monogeneous monogenesis monogenesy monogenetica monogenism monogenist monogenistic monogenous monoglot monoglycerid monoglyceride monogoneutic monogonoporous monogony monogram monogrammatical monogrammed monogrammic monograms monograph monographer monographic monographical monographist monographs monograptid monograptidae monogynious monogynist monogynous monogyny monohaloid monohybrid monohydrate monohydrated monohydric monohydrogen monohydroxy monolater monoliasis monolingual monoliteral monolith monolithal monolithic monoliths monolocular monologic monological monologist monologize monologue monologues monologuist monology monomachy monomania monomaniac monomaniacal monomeric monometallic monometallism monometer monomethyl monomethylated monomethylic monometric monometrical monomial monomineralic monomolecular monomorium monomorphism monomya monomyaria monomyarian mononaphthalene mononch mononchus mononeural mononitrated mononitration mononitride mononitrobenzene mononomian monont mononuclear mononucleosis mononychous mononym mononymization mononymize mononymy monoousian monoousious monoparental monoparesis monopathy monopectinate monopersulfuric monopetalae monopetalous monophagism monophase monophasic monophobia monophone monophonic monophonous monophony monophotal monophthalmic monophthalmus monophthong monophthongal monophthongization monophthongize monophyletic monophyleticism monophyllous monophyodont monophyodontism monophysite monophysitic monophysitical monophysitism monopitch monoplacula monoplacular monoplaculate monoplane monoplanist monoplast monoplastic monoplegia monoplegic monopneumonous monopodial monopodially monopodium monopodous monopody monopolar monopolarity monopole monopolies monopolise monopolised monopolising monopolist monopolistic monopolitical monopolizable monopolization monopolize monopolized monopolizer monopolizers monopoly monopolylogist monopolylogue monoprionid monopsonistic monopsony monopteral monopteroid monopteron monopteros monoptical monoptote monoptotic monopylaea monopylaria monopyrenous monorailroad monorailway monorchid monorchidism monorchis monorchism monorganic monorhina monorhinal monorhine monorhyme monorhymed monorhythmic monosaccharide monosaccharose monoschemic monoscope monose monosepalous monoservice monosilicate monosiphonic monosiphonous monosodium monosome monosomic monosperm monospermal monospermic monospermous monospored monostelous monostely monostich monostomata monostomatidae monostomatous monostome monostomidae monostromatic monostrophe monosubstitution monosulfone monosulphide monosulphonate monosulphonic monosyllabic monosyllabical monosyllabism monosyllabize monosyllable monosyllables monosymmetric monosymmetrical monosymmetrically monotelephone monotelephonic monotellurite monothalamian monothecal monotheism monotheist monotheistic monothelete monotheletian monotheletism monothelious monothelism monothelitism monothetic monotocardia monotocardiac monotocardian monotocous monotomous monotone monotonic monotonically monotonies monotonize monotonous monotonously monotonousness monotony monotremate monotrematous monotreme monotremous monotrichous monotrocha monotrochian monotrochous monotropa monotropaceae monotropaceous monotrophic monotropic monotropsis monotropy monotype monovalence monovalency monovalent monoxenous monoxide monoxime monoxyle monoxylon monoxylous monozoan monozygotic monroe monroeism monroeist monrolite monrovia monseigneur monsieur monsignor monsignorial monsoni monsoon monsoonal monsoonish monsoons monster monstera monsterhood monsterlike monsters monstership monstrance monstrances monstrari monstrate monstration monstricide monstrosities monstrosity monstrous monstrously monstus montage montagnac montagnais montagnes montague montana montanan montane montanism montanist montanistical montanite montanize montargis montauk montbretia montclair monte montebrasite monteith montem montenegrin montepulciano monterrey montes montesco montesinos montessorianism montgolfier montgomery month monther monthlies monthly monthon months montia monticellite monticello monticle monticoline monticule monticuliporidae monticuliporoid monticulous monticulus montigeneous montilla montmartre montmartrite montmorency montmorilonite monton montra montre montroydite montu monture monumcnts monument monumental monumentalism monumentality monumentalization monumentalize monumentally monumentary monumenti monumentless monumentlike monuments mony monzonite monzonitic mooachaht mooch moocha moocher moochulka mood mooder moodily moodiness moodish moodishly moodishness moodle moods moody mool moolings moolum moon moonack moonbeam moonbeams mooncalf mooncreeper moondown mooned mooner mooney mooneye moonface moonfall moonglade moonglow moonily mooniness mooning moonish moonjah moonless moonlet moonlight moonlighter moonlighting moonlighty moonlikeness moonlit moonlitten moonman moonpath moonpenny moonproof moonraking moonrise moons moonsail moonseed moonset moonshine moonshiner moonshining moonshiny moonsick moonsickness moonstone moonstones moonstruck moontide moonwalking moonwards moonway moonwort moony moop moor moorage moorberry moorbird moorburner moorburning moore moored moorflower moorhen moorhens mooring moorings moorish moorishly moorishness moorland moorlander moorman moorn moors moorship moorstone moortetter moorup moory moosa moose mooseberry moosebird moosecall mooseflower moosetongue moosewob moosey moost mooste moot mootable mooted mooter mooth mootman mootstead mop mopan mopane mopboard mope moped moper mopes mophead mopheaded moping mopingly mopishly mopishness mopla mopokes mopp mopped mopper moppet mopping moppy mops mopstick mopsy mopus moquelumnan moquette moqui mora moraea moraine moraines morainic moral morale morales moralis moralised moralising moralist moralists morality moralization moralize moralized moralizer moralizing moralizingly moralless morally moralness morals moran morass morasses morassweed morate moration moratoria moratorium moratory moravianized morbid morbidities morbidity morbidly morbidness morbiferal morbific morbifical morbifically morbify morbility morbillary morbilliform morbillous morbus morceau morceaux morcellation morchella morcote mordaciously mordacity mordancy mordant mordanted mordella mordellid mordelloid mordenite mordent mordicate mordication mordv mordvinian more moreen morefold morello morencite moreness morenita moreote moreover morepork mores moresque morever morfrey morg morga morganatic morganatical morganatically morganic morganite morganize morgen morgenlandischen morgenstern morgue moriarty moribund moribundity moribundly moric moriform morigerate morigeration morigerous morigerousness morinda morindin morindone moringa moringaceae moringaceous moringad moringua moringuid moringuidae moringuoid morion moriori moriscan morisco morisonian morisonianism morkin morley mormaor mormo mormon mormondom mormoness mormonite mormons mormonweed mormoops mormyr mormyre mormyrid mormyroid mormyrus morn morne morned mornin morning morningly mornings morningtide morningward mornlike mornward moro moroccan morocco morological morologically moromancy moron moroncy moronism moronry moropus morosauroid morosaurus morose morosely moroseness morosity moroxite morphallaxis morpheme morphemic morphemics morphetic morpheus morphia morphiate morphine morphinic morphinism morphinize morphinomaniac morphiomania morphiomaniac morpho morphogenesis morphogenetic morphogenic morphogeny morphographer morphographic morphographical morpholine morphological morphologically morphologist morphology morphometry morphon morphonomic morphonomy morphophonemic morphophonemically morphophyly morphoplasm morphoplasmic morphosis morrhua morrhuate morrill morris morrison morrissey morrow morrowing morrowless morrowspeech morrowtide morsal morse morsel morselization morselize morsels morsing morsure mort mortacious mortage mortal mortality mortalium mortalize mortally mortalness mortals mortalwise mortar mortarboard mortarium mortariumque mortarless mortarlike mortars mortarware mortary mortbell mortem mortersheen mortgage mortgageable mortgaged mortgagee mortgages mortgaging mortgagor morthwyrtha mortier mortiferously mortiferousness mortific mortification mortifications mortified mortifiedly mortifiedness mortifier mortify mortifying mortifyingly mortimer mortised mortiser mortmain mortmainer morton morts mortuarian mortuary mortuous morulation morule moruloid morus morvin morwong mos mosaic mosaically mosaicism mosaics mosaism mosaist mosandrite mosasaur mosasauri mosasaurian mosasauridae mosasauroid moschatel moschiferous moschinae moschus mose moser moses mosesite mosetena mosette mosey mosgu moskeneer mosker moslem moslemah moslemic moslemism moslemite mosque mosquelet mosques mosquish mosquital mosquito mosquitobill mosquitocidal mosquitocide mosquitoes mosquitoey mosquitoish mosquitoproof mosquitos mosr moss mossback mossbunker mossed mossel mosser mossery mosses mossful mosshead mossi mossless mosslike mosstrooper mosstroopery mosswort mossy most moste mosting mostlike mostly mostness mosul mot motacilla motacillidae motacillinae motacilline motatorious motatory motazilite mote moted motel moteless motes motet motets motettist motey moth mothball mother motherdom mothered motherer mothergate motherhood mothering motherkin motherless motherlessness motherliness motherling motherly mothers mothersome motherward motherwise motherwomen mothery mothlike mothproof moths mothworm motif motific motile motility motion motionable motional motioned motioning motionless motionlessly motions motivate motivates motivating motivation motivational motive motived motivee motiveless motivelessly motiveness motives motivity motley motleyness motmot motmots motofacient motograph motomagnetic motophone motor motorboatman motorcar motorcycle motorcyclist motordom motordrome motored motorial motoric motoring motorism motorist motorium motorization motorize motormen motorola motorphobe motorphobia motors motory motozintleca motricity motrin mots mottle mottled mottlement mottler mottles mottling motto mottoed mottoless mottolike mottramite motus motyka moucharaby mouchardism mouche moud moudie moudieman moudy moue mouf mougeotiaceae mought mouille mouillure moujik moujiks moul mould moulded moulder mouldered mouldering mouldest moulding mouldings moulds mouldy moule moulin moulinet moullahs moulrush moult moulted moulter moulting moulton mouly mound moundiness moundlet mounds moundwork moundy mount mountain mountained mountaineer mountaineering mountaineers mountainet mountainette mountainlike mountainous mountainously mountainousness mountains mountainside mountainsides mountaintop mountainwards mountainy mountebank mountebankery mountebankish mountebankism mountebankly mountebanks mounted mounter mounting mountingly mountings mounts mounture mourante mourn mourned mourner mourneress mourners mournful mournfulest mournfullest mournfully mournfulness mourning mourningly mournival mourns mourut mous mouse mousefish mousehawk mousehole mouseion mouselike mouseproof mouser mousery mouses mousetail mousetrap mouseweb mousey mousiness mousing mousle mousmee mousoni mousquetaire mousse moustache moustaches moustachio mousterian moustoc mousy mout moutan mouth mouthed mouthful mouthfuls mouthing mouthingly mouthings mouthishly mouthless mouthparts mouthpiece mouthpieces mouths mouthwash mouthwise mouthy moutonnee moutonnees moutu mouvement mouzouna movable movableness movables movably move moveability moveable moveables moved movedst moveless movelessly movelessness movement movements mover movers moves moveth movie moviedom movieize movieland movies moving movingness movings mow mowana mowburn mowburnt mowch mowcht mowed mowen mower mowers mowha mowing mowland mown mowra mowrah mows mowth moxalactam moxo moy moyen moyenless moyenne moyite moyle moysture mozambican mozambique mozarab mozarabian mozart mozartean mozing mozzare mozzetta mozzo mpangwe mpd mph mpondo mr mri mrs mru msd msg mt. mth mu muang mucago mucaro mucedin mucedinaceous mucedine mucedinous much muchee muchfold muchly muchness mucic mucid mucidness mucific muciform mucigen mucilage mucilaginous mucilaginously mucin mucinoid mucinous mucins muciparous mucivore mucivorous muck mucke mucked muckender mucker muckerish mucket muckiest muckiness mucking muckite muckle mucklucks muckman muckment muckmidden muckna muckrake muckraker mucksy muckweed muckworm mucky mucluc mucocele mucocellulose mucocutaneous mucodermal mucofibrous mucoflocculent mucoid mucoids muconic mucoprotein mucor mucoraceous mucorales mucorine mucorioid mucormycosis mucorrhea mucosa mucosal mucosanguineous mucoserous mucosity mucosocalcareous mucosopurulent mucososaccharine mucous mucousness mucro mucronate mucrones mucronulate mucuna mucus mud mudar mudbank mudcap mudde mudden muddied muddier muddify muddily muddiness mudding muddish muddle muddlebrained muddled muddlehead muddleheadedness muddleproof muddler muddlesome muddling muddy muddybrained muddybreast muddyheaded mudfish mudflow mudge mudhead mudhole mudir mudiria mudland mudless mudproof mudra muds mudsill mudskipper mudsling mudslinger mudslinging mudspate mudstain mudstone mudtrack mudweed muermo muezzin muff muffed muffetee muffin muffins muffish muffishness muffle muffled muffleman muffler mufflers muffles mufflin muffling muffs muffy mufti mug muga mugearite mugful mugg mugger mugget muggily mugginess mugging muggins muggish muggles muggletonian muggy mugho mughus mugience mugiency mugient mugil mugilidae mugiloid mugs mugweed mugwort mugwump mugwumpery mugwumpian muhammadi muharram muid muilla muir muircock muirfowl muishond muist muitifida mujtahid mukden mukri muktar muktatma mukti mulaprakriti mulatresse mulatta mulatto mulattoes mulattress mulberries mulberry mulch mulcher mulciber mulcibirian mulctable mulctatory mulctuary mulder mule muleback mulefoot mulefooted muleman mules muleteer muley mulga muliebrity muliebrous mulier mulierine mulierose mulierosity mulish mulishly mulishness mulism mulita mulitude mulk mull mulla mullah mullahs mullar mullein mullenize muller mullet mullets mulley mulligan mulligatawny mulligrubs mulling mullion mullioned mullions mullite mullock mullocker mulloway mulse mulsify mult multa multaneously multangular multangularly multangulous multangulum multani multanimous multarticulate multeity multi multiangular multiareolate multiarticular multiarticulated multibranched multibranchiate multibreak multicamerate multicapsular multicarinate multicarinated multicellelar multicellular multicentral multicentric multichord multichrome multiciliated multicircuit multicoil multicolor multicolorous multiconductor multicore multicorneal multicostate multicourse multicycle multicylinder multicylindered multidenticulate multidenticulated multidimensional multidirectional multidisperse multiengine multiexhaust multifaced multifaceted multifactorial multifamilial multifarious multifariously multifariousness multiferous multifetation multifibered multifid multifida multifidly multifidous multifidus multifilament multifistular multiflagellate multiflagellated multiflash multiflora multiflorous multiflow multiflue multifoil multifoiled multifold multifoliate multifoliolate multiform multiforme multiformity multiganglionic multigap multigranulate multigraph multigrapher multigyrate multihead multihearth multihued multijet multijugate multilaciniate multilamellar multilamellate multilaminar multilaminate multilateral multilighted multilineal multilinear multilinguist multiliteral multilobar multilobe multilobed multilobulated multilocular multiloculate multiloquious multiloquous multiloquy multimammate multimarble multimascular multimedia multimedial multimetalic multimetallism multimetallist multimillion multimillionaire multimillionaires multimodal multimodality multimolecular multimotored multinervate multinodal multinodous multinodular multinomial multinominal multinominous multinuclear multinucleate multinucleated multinucleolar multinucleolate multinucleolated multiovular multipara multiparient multiparity multiparous multipartisan multipartite multiperforate multiperforated multipersonal multiphaser multiphotography multipinnate multiple multiples multiplet multiplex multipliable multiplicability multiplicable multiplicand multiplicate multiplication multiplicatively multiplicator multiplicity multiplied multiplier multiplies multiplieth multiply multiplying multipointed multipolar multiported multipotent multipresence multipresent multiradiate multiradiated multiramified multiramose multirate multireflex multirooted multirotatory multisacculate multisacculated multiscience multiseated multisect multisensual multiseptate multiserial multiserially multiseriate multisiliquous multisonous multispeed multispermous multispicular multispiculate multispindle multispiral multispired multistage multistaminate multistix multistoried multistory multistratified multistriate multisulcated multisyllabic multisyllable multitarian multitheism multithreaded multititular multitoed multitoned multitube multituberculated multituberculism multitubular multitude multitudes multitudinal multitudinosity multitudinous multitudinously multiturn multivagant multivalency multivalent multivalved multivalvular multivane multivarious multiversant multiverse multivibrator multivincular multivious multivitamins multivocal multivocalness multivoiced multivolent multivoltine multivolumed multocular multum multure multurer mum mumble mumblebee mumbled mumblement mumbler mumbling mumbo mummer mummeries mummers mummery mummia mummick mummied mummies mummified mummiform mummify mumming mummy mummydom mummylike mump mumper mumpishly mumpishness mumps mumpsimus mumruffin mun munandi muncerian munchausenism munchausenize munched muncher munches munchet munching munchings muncie mund munda mundane mundanely mundaneness mundanism mundari mundatory mundi mundic mundificant mundify mundil mundivagant mundle munge mungofa mungril munguba mungy municated munich municipal municipalism municipalities municipality municipalize municipalizer municipally municipia municipium munific munificence munificency munificent munificently munificentness muniment munion munities munition munitionary munitions munity munj munjistin munnion munnopsis munnot munsee munshi munsiff munson muntin muntingia muntjac munychia munychian munychion muong muphrid muppets mur mura muradiyah muraena muraenidae muraenoid murage mural muraled murally muramyl muran muranese muratorian murchy murder murdered murderer murderers murderess murderesses murdering murderingly murderish murderment murderous murderously murderousness murders murdrum mure mured murenger murex murexan murexide murga murgeon muriate muriated muriatic muricid muricidae muriciform muricine muriculate murid muridae muriform murillo murinae murine murinus muriti murk murkier murkily murkiness murkish murkly murky murlin murly murmansk murmered murmi murmur murmurator murmured murmuring murmurings murmurish murmurless murmurous murmurously murmurs murners murphy murra murray murre murrelet murrey murrhine murrina murs murshid murthers murumuru murut muruxi mus musaceous musaeus musal musalmani musar muscadel muscadine muscardine muscariform muscarine muscatel musch musci muscicapidae muscicide muscicoline muscicolous musciform muscle muscled muscleless muscles muscly muscoidea muscological muscologist muscology muscone muscoseness muscosity muscovadite muscovado muscovitic muscovitization muscovitize muscovy muscular muscularis muscularity muscularize muscularly musculation musculature muscule musculin musculoarterial musculocellular musculocutaneous musculodermic musculoelastic musculointestinal musculomembranous musculopallial musculophrenic musculotendinous musculus muse mused museful musefully museless muselike museography museologist musery muses musest museth musette museum museumize museums mush musha mushaa mushabbihite mushed musher mushhead mushheaded mushheadedness mushheads mushily mushiness mushing mushla mushmelon mushrebiyeh mushroom mushroomed mushroomer mushroomic mushroomlike mushrooms mushroomy mushy music musical musicale musicales musicalization musically musicalness musician musiciana musicianer musicianly musicians musicianship musiciens musick musicker musiclike musico musicoartistic musicodramatic musicofanatic musicography musicological musicologist musicologue musicophilosophical musicophobia musicophysical musicopoetic musicotherapy musicproof musicus musie musily musing musingly musings musique musk muskat muskeg muskeggy muskegon muskellunge musket musketade musketeer musketeers musketlike musketproof musketry muskets muskflower muskhogean muskie muskiness muskish musklike muskmelon muskox muskoxen muskrat muskrats muskwaki muskwood musky muslin muslined muslinet muslins musophaga musophagi musophagidae musophagine musquash musquashroot musquashweed musquaw musrol muss mussable mussably mussal mussalchee mussel musseled musseler mussels musses mussily mussiness mussitate mussitation mussuk mussulmanic mussulmanish mussulmanism mussy must mustache mustached mustaches mustachial mustahfiz mustang mustard mustela mustelid mustelus muster musterable musterdevillers mustered musterer musterers mustering musteshar mustiness mustn musts musty musulmane musulmanes muta mutabile mutabilia mutability mutable mutableness mutably mutafacient mutage mutagenic mutandis mutarotate mutarotation mutase mutate mutation mutational mutationally mutations mutatis mutative mutawalli mutazala mutch mute muted mutedly mutel mutely muteness muter mutes mutesarif mutessarifat muth muthmannite mutic muticous mutilate mutilated mutilates mutilating mutilation mutilator mutilatory mutillid mutillidae mutilous mutineer mutineers mutinied mutinous mutinousness mutiny mutisiaceae mutism mutist mutive mutoscopic mutsuddy mutt mutter muttered mutterer muttering mutteringly mutterings mutters mutton muttonbird muttonchop muttonfish muttonmonger muttonwood muttony mutual mutualism mutualistic mutuality mutualization mutualize mutually mutualness mutuary mutuel mutulary mutule mutuum muy muysca muyusa muzhik muzhiks muzzily muzziness muzzle muzzled muzzler muzzles muzzlewood muzzling muzzy mvp my myacea myal myalgia myalgias myalgic myalism myall myalls myaria myarian myasthenia myatony myatrophy mycelia mycelioid mycelium myceloid mycenae mycenaean mycetes mycetism mycetocyte mycetogenesis mycetogenic mycetoid mycetological mycetology mycetoma mycetophilid mycetous mycetozoa mycetozoan mycobacteria mycobacteriaceae mycobacterium mycocecidium mycoderm mycoderma mycodermatoid mycodermatous mycodermic mycodermitis mycodomatium mycogastritis mycogone mycohemia mycoid mycologic mycological mycologically mycologist mycology mycomycete mycomyringitis mycophagous mycophagy mycophyte mycoplana mycoplasm mycoplasma mycoprotein mycose mycosin mycosozin mycosphaerella mycosterol mycosymbiosis mycotic mycotrophic mycterism myctodera myctophid myctophum mydaidae mydaleine mydine mydriasine mydriatic mydriatine myectomize myectomy myectopy myel myelalgia myelasthenia myelauxe myelic myelinate myelinated myelination myeline myelinic myelinization myelinogenesis myelinogenetic myelitis myeloblast myelobrachium myelocoele myelocyst myelocystocele myelocyte myelocythaemia myelocytic myelodiastasis myeloencephalitis myeloganglitis myelogenesis myelogenetic myelogenous myelogonium myelography myeloic myeloid myelolymphangioma myelolymphocyte myeloma myelomatosis myelomenia myelomeningitis myelomere myelon myeloneuritis myeloparalysis myelopathic myelopetal myelophthisis myeloplastic myeloplegia myelopoiesis myelopoietic myelorrhagia myelorrhaphy myelosarcoma myelosclerosis myelospasm myelospongium myelosyphilosis myelosyringosis myelotherapy myelozoa myenteric myenteron myers myesthesia mygale mygalid myiarchus myiodesopsia myiosis mykiss myliobatine mylke mylodon mylodont mylohyoid mylohyoidean mymar mymarid mymaridae myna mynah myne myo myoalbumin myoalbumose myoblast myoblastic myocardiac myocardial myocardical myocardiograph myocarditic myocardium myocarial myocele myocellulitis myoclonic myoclonus myocoel myocomma myocommata myoctonine myocyte myodegeneration myodynamia myodynamic myodynamiometer myodynamometer myoedema myoelectric myoendocarditis myoepicardial myofascitis myofibril myofibroma myofibrositis myogen myogenesis myogenous myoglobulin myographer myography myohematin myoid myoidema myoides myokinesis myolemma myoliposis myologic myological myologist myology myolysis myoma myomalacia myomancy myomantic myomatous myomectomy myomelanosis myomere myometrium myomohysterectomy myomorph myomorphic myoneme myoneural myoneuralgia myoneure myoneurosis myonosus myoparalysis myoparesis myopathia myopathic myopathy myope myoperitonitis myophan myophore myophorous myophysical myopic myopical myoplasm myoplastic myoplasty myoporaceae myoporaceous myoporad myoprotein myoproteose myops myopy myorrhexis myosalpingitis myosarcoma myosclerosis myoscope myoseptum myosin myosinogen myositic myosote myosotis myospasm myospasmia myosurus myotacismus myotalpa myotalpinae myotenotomy myotome myotomes myotomic myotomy myotonia myotonic myotonus myotony myowun myoxine myoxus myrcene myrcia myriacoulomb myriad myriaded myriadfold myriads myriadth myriagram myriagramme myrialitre myriameter myriametre myrianida myriapod myriapodan myriapodous myriarch myriare myricaceous myricales myricin myricyl myricylic myringectomy myringitis myringodermatitis myringomycosis myringoplasty myriologist myriophyllum myriopodous myrioscope myriotrichiaceae myriotrichiaceous myristate myristica myristicivora myristicivorous myristin myristone myrmecia myrmecobiinae myrmecobius myrmecochorous myrmecochory myrmecoid myrmecologist myrmecology myrmecophagidae myrmecophagine myrmecophagoid myrmecophagous myrmecophile myrmecophilism myrmecophilous myrmecophyte myrmecophytic myrmekite myrmeleon myrmeleonidae myrmeleontidae myrmicid myrmicidae myrmicine myrmicoid myrmidon myrmidons myrobalan myron myronate myronic myrosin myrosinase myrothamnaceous myrothamnus myrrh myrrhine myrrhy myrsinaceae myrsinad myrtaceae myrtaceous myrtales myrtiform myrtilus myrtle myrtles myrtol myrtus mysel myself mysell mysian mysidae mysidean mysogynism mysoid mysophobia mysost mystacial mystacocete mystagogic mystagogical mystagogically mystagogue mystagogy mystax mystere mysteres mysterial mysteriarch mysteries mysteriosophic mysteriosophy mysterious mysteriously mysteriousness mysterize mystery mystes mystic mystical mysticality mystically mysticete mysticeti mysticetous mysticism mysticity mysticize mysticly mystics mystific mystifically mystification mystificator mystified mystifiedly mystifier mystify mystifying mystifyingly mystique myth mythic mythical mythicality mythically mythicalness mythicist mythicize mythicizer mythification mythify mythize mythland mythmaker mythmaking mythoclastic mythogony mythographer mythographist mythography mythogreen mythoheroic mythohistoric mythologema mythological mythologically mythologies mythologist mythologists mythologize mythologizer mythologue mythology mythometer mythonomy mythopastoral mythopoeic mythopoeist mythopoem mythopoesis mythopoesy mythopoetize mythopoetry mythos myths mythus mytilacean mytilid mytiliform mytiloid mytilus myxa myxadenitis myxadenoma myxaemia myxasthenia myxedema myxedematoid myxedematous myxedemic myxemia myxine myxinidae myxinoid myxo myxobacteria myxobacteriaceae myxobacteriaceous myxoblastoma myxochondroma myxochondrosarcoma myxococcus myxocyte myxoedema myxoenchondroma myxofibroma myxoflagellate myxogasteres myxogastrales myxogastric myxoglioma myxoid myxoinoma myxolipoma myxomas myxomatosis myxomatous myxomycete myxomycetous myxomyoma myxoneuroma myxophyceae myxophycean myxophyta myxopod myxopodan myxopodium myxopodous myxopoiesis myxospongiae myxospongida myxosporidia myxosporidian myxosporidiida myxosporium myxosporous myzodendraceae myzodendraceous myzodendron myzont myzontes myzostoma myzostomata myzostomatous myzostomid myzostomida myzostomidae myzostomidan myzostomous n na naa naacp naaf naam naaman nab nabak nabalism nabalite nabalitic nabaloi nabalus nabataean nabatean nabathaean nabbed nabbing nabby nabco naberhood nabisco nabk nabla nable nabob nabobery nabobical nabobishly nabobship nabor nabothian nacarat nace nacelle nach nachitoch nachschlag nacionales nacionalista nacket nacred nacreous nacrine nacrite nacrous nadder nadia nadine nadir nadiral nadolol nadorite nae naebody naegate nael naemorhedinae naemorhedus naer naether naething nag naga nagasaki nagatelite nagged nagger naggin nagging naggingness naggle naggly naght nagman nagnag nagor nagoya nagra nags nagsman nagster nagual nagualist nagyagite nahanarvali nahane nahani naharvali nahsty nahuan nahuatl nahuatlan nahuatlecan nahum naiad naiadaceous naiadales naiades naias naibour naid naif naigie naik nail nailbin nailed nailer nailery nailhead nailing naillike nailprint nailproof nailrod nails nailshop nailwort naily nainsel nainsook naipkin nairy nais naissance naissants naither naive naively naiveness naivest naivete nak nake naked nakedish nakedize nakedly nakedness nakedweed naker nakhod nakir nako nakomgilisala nakula nallah naloxone namability namaqua namaquan namazlik nambe namda name nameability nameable nameboard named nameless namelessly namelessness nameling namely nameplate namer names namesake namesakes nameth naming nammad namo nan nana nanawood nance nancing nancy nandi nandina nandine nandow nandu nane nanes nanette nanga nanism nanization nankeen nankin nanking nankingese nannander nannandrium nannandrous nannoplankton nanny nannybush nanocephalia nanocephalic nanocephalism nanocephalous nanocephalus nanocephaly nanogram nanogramme nanoid nanomelus nanometer nanometre nanosecond nanosoma nanpie nant nantokite nantucket nantz nanuin naological naology naometry naos nap napa napaea napal nape napead napellus napery napes naphthacene naphthalene naphthaleneacetic naphthalenesulphonic naphthalenic naphthalic naphthalization naphthalize naphthalol naphthene naphthenic naphthionate naphthoic naphthol naphtholate naphtholize naphtholsulphonate naphtholsulphonic naphthoquinone naphthoresorcinol naphthosalol naphthoxide naphthylaminesulphonic naphthylene naphtol napierian napiform napkin napkining napkins naples napless napoleon napoleonana napoleonically napoleonize napoleons napoo nappe napped napper nappiness napping nappy naprapath naprapathy napron naprosyn naproxen naps napthionic nar narcaciontidae narceine narciss narcissan narcissi narcissine narcissism narcissistic narcissus narcissuses narcist narcistic narcoanesthesia narcobatoidea narcobatus narcohypnia narcohypnosis narcolepsy narcoleptic narcoma narcomania narcomaniac narcomaniacal narcomedusae narcomedusan narcose narcosis narcostimulant narcosynthesis narcotherapy narcotic narcotically narcoticalness narcoticism narcotics narcotina narcotine narcotist narcotization narcous nard nardine nardus narghile nargil narial naric naricorn nariform narily narine naringenin naringin narr narra narraganset narras narrate narrated narrater narrates narrating narration narrational narrations narrative narratively narratives narrator narrators narratress narratrix narratur narrawood narrer narrow narrowed narrower narrowest narrowforeshore narrowhearted narrowheartedness narrowing narrowingness narrowly narrowness narrows narrowy narsarsukite narthex narvik narwhal nary nasa nasab nasal nasalis nasality nasalize nasalized nasalward nasalwards nasard nascan nascent nasch naseberry nashgab nashgob nashim nashira nasi nasial nasicorn nasicornia nasicornous nasiform nasilabial nasillate nasillation nasioalveolar nasioinial nasion nasitis naskhi nasoalveola nasobuccal nasoccipital nasoethmoidal nasofrontal nasogastric nasolabial nasolachrymal nasological nasology nasomalar nasomaxillary nasonite nasopalatal nasopharyngitis nasopharynx nasoprognathic nasoprognathism nasorostral nasoseptal nasosinuitis nasosinusitis nasosubnasal nasrol nassa nassau nassellaria nassellarian nassology nast nastic nastiest nastika nastily nastiness nasturtion nasturtium nasty nasus nasute nasuteness nasutiform nat natability nataka natal natalian natalie natalis natality nataloin natals natantly nataraja natational natator natatorium natatory natch natchbone natchez natchezan natchitoches natchnee nate nater nateral naterel naters nates nathan nathaniel nathe natheless nather natica naticidae naticiform naticoid natiform natimortality nation national nationale nationales nationalisation nationalism nationalistically nationalities nationality nationalization nationalize nationalized nationalizer nationalizing nationally nationalness nationalty nationhood nations nationwide native natively natives nativistic nativity natr natricine natrix natrochalcite natrojarosite natt natter nattered natteredness natterjack nattily nattiness nattle natty natuary natur natura naturae natural naturalesque naturalism naturalist naturalistic naturalists naturality naturalization naturalizations naturalize naturalized naturalizer naturall naturally naturalness nature naturecraft natured naturedly naturel naturelle naturelles natures naturf naturing naturism naturistic naturopath naturopathist natus natutes naucrar naucrary nauger naught naughtiest naughtiness naughty naujaite naumachia naumachy naumannite naumburgia naumk naumkeag naumkeager naupathia nauplial naupliiform nauplioid nauropometer nauscopy nausea nauseant nauseaproof nauseate nauseated nauseating nauseatingly nauseation nauseous nauseously nauseousness nauset nauseum naut nauther nautic nautical nautically nautics nautiform nautilacean nautilicone nautiliform nautilite nautiloid nautiloidea nautiloidean nautilus naval navalism navalistically navar navarch navarchy navarrese nave navel naveled navellike navelwort naves navet navette navew navicert navicula naviculaceae naviculaeform navicular naviculoid navies naviform navigability navigable navigableness navigably navigate navigated navigating navigation navigator navigators navigerous navipendular navite navvy navy naw nawab nawed nay nayar nayarit nayarita naysaid naysay naysayer naysays nayword nazarate nazarene nazarenism nazareth nazarite nazariteship nazaritish nazaritism nazerini nazi nazify nazir nazirite naziritic nbc nble nbs nc ncaa nci ncienne ncr nd ndl ne ne'er nea neal neallotype neanderthal neanderthaler neanderthaloid neanic neanthropic neap neaped near nearable nearabout nearabouts nearaivays nearby nearctic nearctica neared nearer nearest nearing nearly nearness nears nearsightedly nearsightedness nearthrosis neat neaten neater neatest neath neatherd neatherdess neatherds neathmost neatly neatness neback nebaioth nebalia nebber nebby nebel nebelist nebenkern neber nebiim nebraska nebraskan nebuchadnezzar nebula nebulae nebularize nebulation nebulescent nebuliferous nebulite nebulium nebulization nebulize nebulizer nebulose nebulosity nebulous nebulousness nec necator necessar necessarian necessarianism necessaries necessarily necessary necessism necessist necessitarian necessitarianism necessitate necessitated necessitatedly necessitates necessitating necessitatingly necessitative necessities necessitous necessitously necessitousness necessitude necessity neck neckar neckatee neckband neckbands neckcloth necked necker neckercher neckerchief neckerchieves neckful neckguard necking necklace necklaces necklaceweed neckless necklet necklets neckliss neckpiece neckpieces necks neckstock necktie neckties neckwear neckyoke necognition necrectomy necremia necrobacillary necrobacillosis necrobiosis necrobiotic necrogenic necrographer necrologic necrologique necrologue necromancer necromancing necromancy necromantic necromantically necromorphous necronite necrophaga necrophile necrophilism necrophilistic necrophilous necrophobic necropoleis necropolis necropolitan necropsy necroscopic necroscopical necroscopy necrosis necrotization necrotizing necrotomic necrotype necrotypic nectandra nectar nectareal nectarean nectared nectareously nectareousness nectarial nectarian nectariferous nectarine nectarinia nectarious nectarivorous nectarize nectarlike nectarous nectiferous nectocalycine nectocalyx nectophore nectopod nectria nectriaceous necturidae ned nedder neddy nee need needed needest needeth needful needfully needgates needham neediest neediness needing needle needlebook needlebush needled needlefish needleful needlefuls needlemaker needlemaking needleman needlemonger needlepoint needleproof needler needlerocks needles needless needlessly needlessness needlewoman needlewomen needlewood needlework needleworked needleworker needling needly needments needn't needna needs needsome needst needy neem neenter neepour nees neet neetup neeze nefandous nefandousness nefarious nefariously nefariousness nefast nefasti neff neffy neftgil negate negation negationalist negations negative negatived negatively negativeness negativer negatives negativism negativist negativity negatory neginoth neglect neglectable neglected neglectedly neglectedness neglecter neglectful neglecting neglection neglective neglectively neglector neglectproof neglects negli neglige negligee negligence negligency negligent negligently negligibility negligible negligibleness negligibly negociations negotiability negotiable negotiant negotiate negotiated negotiating negotiation negotiations negotiators negotiatory negotiatress negotiatrix negotiis negress negresses negri negritic negritoid negro negrodom negroes negrofied negrofy negrohood negroid negroidal negroism negrolike negroloid negrophil negrophile negrophilism negrophobe negrophobia negrophobiac negrophobist negrotic negus neguses negusti nehantic nehemiah nehru nei neif neigbbour neiges neigh neighbor neighbored neighborer neighboress neighborhood neighborhoodood neighboring neighborlike neighborliness neighborly neighbors neighborstained neighbour neighbourhood neighbouring neighbourlike neighbourly neighbours neighbourship neighbouthood neighed neigher neigheth neighing neihbourhood neillia neirher neisseria neist neither neiwork nejd nejdi nekkar nekton nel nell nelle nellie nelly nelsen nelumbian nelumbonaceae nema nemaline nemalionaceae nemalite nemastomaceae nematelmia nematelminth nematelminthes nemathece nemathecial nemathelminth nemathelminthes nematoblast nematocera nematoceran nematocerous nematocide nematocyst nematocystic nematoda nematode nematodiasis nematogenic nematogenous nematognathi nematognathous nematogonous nematoid nematologist nematology nematomorpha nematophyton nembutal nemean nemertea nemertean nemertina nemertine nemertinean nemertini nemertoid nemeses nemesic nemichthyidae nemichthys nemlich nemmine nemo nemocera nemoceran nemocerous nemopanthus nemophila nemophilist nemophilous nemophily nemoral nemorensian nemoricole nengahiba nennt nenta neoacademic neoanthropic neoarctic neoarsphenamine neobalaena neoblastic neobotanist neobotany neocerotic neoclassic neoclassicism neoclassicist neocomian neoconservative neocracy neocriticism neocyanine neodymium neofabraea neofetal neofetus neofiber neoformation neogaea neogamous neogamy neogene neognathae neognathic neognathous neogrammarian neogrammatical neographic neohexane neohipparion neoholmia neoholmium neoimpressionist neolater neolatry neolithic neologianism neological neologism neologist neologistic neologistical neologize neology neomedievalism neomenia neomenian neomeniidae neomiracle neomorpha neomorphic neomylodon neonatal neonate neonatologist neonatus neonomian neonomianism neontology neonychium neoorthodox neoorthodoxy neopagan neopaganize neopaleozoic neopallial neophilological neophilologist neophobia neophobic neophrastic neophron neophyte neophytic neophytish neophytism neopieris neoplasm neoplasma neoplasmata neoplasms neoplastic neoplasticism neoplatonic neoplatonism neoplatonist neoprene neorama neornithic neosalvarsan neosorex neossin neossology neossoptile neoteinia neoteinic neotenic neoteric neoterically neoterism neoterize neothalamus neotoma neotragus neotremata neotropical neotype neovitalism neovolcanic neowashingtonia neoytterbium nep nepa nepal nepalese nepali nepenthaceae nepenthaceous nepenthe nepenthes neper neperian nepeta nephalism nephalist nephele nepheligenous nepheline nephelinic nephelinitic nephelinitoid nephelite nephelium nephelognosy nepheloid nephelometer nephelometric nephelometrical nephelometry nephesh nephew nephews nephewship nephila nephilinae nephite nephogram nephological nephologist nephology nephradenoma nephralgia nephralgic nephratonia nephrectasis nephrectomize nephrectomy nephrelcosis nephremia nephremphraxis nephria nephric nephridia nephridium nephrite nephritic nephritical nephritis nephroabdominal nephrocardiac nephrocele nephrocoele nephrocoloptosis nephrocyte nephrodium nephroerysipelas nephrogenic nephrogenous nephrogonaduct nephrohydrosis nephrohypertrophy nephroid nephrolepis nephrolith nephrolithiasis nephrolithotomy nephrologist nephrology nephrolysin nephrolysis nephromegaly nephromere nephron nephroncus nephrons nephroparalysis nephropathic nephropathy nephropexy nephropsidae nephroptosia nephropyeloplasty nephropyosis nephros nephrosclerosis nephrosis nephrostoma nephrostomial nephrostomous nephrotomy nephrotoxicity nephrotoxin nephrotyphoid nephrotyphus nephrozymosis nepidae nepman neported nepote nepotic nepotious nepotism nepotist nepotistical nepouite neptunean neptunian ner nere nereid nereidae nereidiformia nereis nereite neri nerita neritic neritina neritoid nerium nero neroic neronian neronic neronize nerry ners nership nerterology nerthridae nerthrus nerval nervate nerve nerved nerveless nervelessly nervelessness nervelet nerver nerveroot nerves nervid nerviduct nervily nervimuscular nerviness nerving nervomuscular nervosa nervosanguineous nervosism nervosity nervous nervouser nervously nervousness nervular nervulet nervuration nervure nervus nes nescience nescient nesessary nesh neshly neshness nesiote neskhi neslia nesogaea nesonetta nesos nesquehonite ness nessed nesses nesslerization nesslerize nest nestable nestage nested nester nestful nestiatria nesting nestitherapy nestle nestled nestles nestlike nestling nestlings nestor nestorian nestorianism nestorianize nestorine nests net netcha nete neter netful netheist nether netherlander netherlandic netherlandish netherlands nethermore nethermost netherstock netherstone netherward netherwards netherworld nethinim neti netilmicin netmaker netmaking netmonger netop nets netsman netsuke nettable nettapus netted netter nettie netting nettle nettlebed nettled nettlefoot nettlelike nettles nettlesome nettlewort nettling nettly netto netty netwise network networks neu neudeckian neue neuer neueren neufeld neugroschen neuma neumann neumatic neumatize neurad neuradynamia neural neurale neuralgia neuralgiac neuralgic neuralgiform neurapophyseal neurapophysial neurapophysis neurarthropathy neurasthenia neurasthenic neurasthenical neurataxia neurataxy neuration neuratrophia neuratrophic neuraxial neuraxon neuraxone neurectasia neurectasis neurectomic neurenteric neurepithelium neurergic neurexairesis neurhypnotist neuric neurilemmal neurilemmatous neurility neurin neurine neurinoma neurism neurite neuritic neuritis neuroanatomic neuroanatomy neuroanotomy neurobehavioral neurobiotaxis neuroblastic neuroblastoma neurocanal neurocentral neurocentrum neurochemistry neurochitin neurochondrite neurochord neurocirculatory neurocity neuroclonic neurocoele neurocoelian neurocytoma neurodegenerative neurodendrite neurodendron neurodermatitis neurodermatosis neurodermitis neurodynia neuroepidermal neuroepithelial neuroepithelium neurofibril neurofibrilla neurofibrillar neurofibroma neurofibromas neurofibromatoses neurofil neuroganglion neurogastric neurogenesis neurogenetic neurogenous neuroglandular neuroglia neurogliac neuroglial neurogliar neuroglic neurogliosis neurogram neurography neurohistology neurohypnotism neurohypophysis neurokeratin neurokyme neurologic neurological neurology neurolymph neurolytic neuroma neuromalacia neuromalakia neuromas neuromast neuromastic neuromatosis neuromatous neuromere neuromerism neuromimesis neuromotor neuromuscular neuromusculature neuromyic neuron neurone neuronic neuronism neuronophagia neuroparalytic neuropath neuropathic neuropathical neuropathically neuropathist neuropathologist neuropathology neuropetide neurophil neurophile neurophilic neurophysiological neurophysiology neuropile neuroplasm neuroplasmic neuropodium neuropodous neuropore neuropsychiatric neuropsychiatry neuropsychopathic neuropsychopathy neuropsychosis neuropter neuroptera neuropteris neuropterist neuropteroid neuropteroidea neuropterological neuropterology neuropterous neuroretinitis neurorrhaphy neurorthopteran neurorthopterous neurosal neurosarcoma neuroses neurosis neuroskeletal neuroskeleton neurosome neurospasm neurospongium neurosthenia neurosurgeon neurosurgeons neurosurgery neurosuture neurotendinous neurotension neurotherapeutics neurotherapy neurothlipsis neurotic neuroticism neuroticize neurotization neurotome neurotomical neurotomize neurotomy neurotoxia neurotripsy neurotrophic neurotrophy neurotropic neurovaccination neurovaccine neurovascular neurovegetative neurovisceral neurula neurypnological neurypnologist neusten neustrian neuter neuterdom neuterness neutral neutralise neutralised neutralism neutralist neutrality neutralization neutralize neutralized neutralizer neutralizes neutralizing neutrally neutralness neutrino neutroceptive neutroceptor neutroclusion neutrodyne neutrogena neutrologistic neutropassive neutrophil neutrophile neutrophilous neutrophils neve nevel never neverland nevermore nevertheless nevoid nevome nevus nevyanskite new newar newark newberyite newbold newborn newcal newcome newcomer newcomers newe newel newelty newer newest newfangle newfangled newfangledism newfangledly newfanglement newfound newfoundland newfoundlander newing newings newish newlandite newline newly newlywed newlyweds newman newmanite newmanize newness news newsbill newsboard newsboy newsboys newscaster newscasting newsdealer newsdealers newsful newsletter newsletters newsman newsmen newsmongering newsmongery newspaper newspaperdom newspaperish newspaperized newspapermen newspapers newspaperwoman newspapery newsreader newsreel newsroom newssheet newsstand newsstands newsworthy newsy newt newtake newton newtonianism newtonic newtonite newyork nexal next nextly nexum nexus neyanda neyther nez nf nfic ngai ngaio ngapi ngf ngoko ngu nguyen nh nhf ni nia niagara niagaran nian niantic nias niasese niata nib nibbed nibber nibble nibbled nibbling nibblingly nibblings nibby nibelung niblick nibs nicaean nicaraguan nicarao niccoliferous niccolous nice niceish nicely niceness nicenian nicenist nicer nicest niceties nicety niche niched niches nicholas nichols nicholson nichrome nicht nick nicked nickel nickelage nickelic nickeliferous nickeling nickelize nickelled nickelous nickels nickeltype nicker nickerpecker nickey nickie nickieben nicking nickle nickname nicknameable nicknamed nicknameless nicknamer nicknames nickneven nicks nickstick nicky niclosamide nicobarese nicodemite nicodemus nicol nicolaitan nicolayite nicorette nicotia nicotian nicotiana nicotianin nicotic nicotine nicotined nicotineless nicotinian nicotinic nicotinism nicotinize nicotize nictate nictation nictitans nictitant nictitation nid nidal nidana nidation niddering niddick niddle nidge nidget nidi nidicolous nidificant nidificate nidification nidificational nidifugous nidology nidor nidorous nidulant nidularia nidulariaceae nidulus nidus nie niece nieceless nieces nieceship niederen niederlandischen niello nielsen nielson niemann niepa nierembergia niersteiner nietzsche nietzschean nietzscheism nieveta nievling nife nifedipine nifesima nific nificent nifle nifling nifty nig nigella nigeria nigerian niggard niggardize niggardly niggardness niggards niggas nigger niggerdom niggerfish niggergoose niggerheads niggerish niggerism niggers niggery niggling nigglingly niggly nigh nigher nighest nighness night nightcap nightcapped nightcaps nightchurr nightclub nightdress nighted nightfall nightfowl nightgown nightgowns nighthawk nightie nightingale nightingales nightingalize nightjar nightjars nightless nightlessness nightlong nightly nightman nightmare nightmares nightmarish nightmary nights nightshade nightshine nightshirt nightstand nightstick nightstock nightstool nighttime nightwalking nightwards nightwatch nightworker nignay nignye nigori nigra nigranilin nigraniline nigrescence nigrescent nigresceous nigrification nigrified nigrify nigrine nigrities nigritude nigrosine nigrous nigua nih nihal nihil nihilianism nihilification nihilify nihilism nihilist nihilistic nikau nike nikeno niklesite nikolai nil niles nilgai nill niloscope nilot nilotic nilous nilpotent nim nimb nimbated nimbed nimbi nimbiferous nimble nimbleness nimbler nimbly nimbose nimbosity nimbostratus nimbus nimes nimiety niminy nimkish nimmer nimrodic nimrodical nimshi nina nincom nincompoop nincompoopery nincompoophood nine ninebark ninefold nineholes ninepence ninepenny ninepin ninepins ninescore nineted nineteen nineteenth nineteenthly ninetieth ninety ninetyknot nineveh ninevite ninevitical ninevitish ning ningpo ninnies ninny ninnyish ninnyism ninnyship ninnywatch ninth nintu ninut niobate niobe niobite niobium niobous niopo niota nip nipa nipcheese niphablepsia nipissing nipmuc nipped nippers nippiness nipping nipple nippleless nipples nipplewort nippon nipponese nipponism nipponium nipponize nippy nips nipter nirles nirmanakaya nirvana nisaean nisan nisei nishiki nisi nisnas nisoria nispero nisqualli nisse nisus nit nitch nitchevo nitchies nite nitella nitency niter niterbush nitered nither nitid nitidulidae nito niton nitranilic nitranilines nitrate nitrated nitrates nitratine nitre nitrian nitriary nitric nitride nitrides nitriding nitridization nitriferous nitrification nitrifier nitrile nitriles nitrilosulphonate nitriot nitrite nitrites nitro nitrobacter nitrobacteria nitrobacteriaceae nitrobacterieae nitrobarite nitrobenzene nitrobenzol nitrobenzole nitrocellulose nitrocotton nitroform nitrofurazone nitrogelatin nitrogen nitrogenic nitrogenization nitrogenize nitrogenous nitroglycerine nitrogren nitrohydrochloric nitrohydroxylaminic nitrolamine nitrolic nitromagnesite nitrometric nitromuriate nitromuriatic nitrophyte nitrophytic nitroprussiate nitroprusside nitrosamine nitrosamines nitrosification nitrosify nitroso nitrosobacteria nitrosochloride nitrosococcus nitrosomonas nitrososulphuric nitrosourea nitrostarch nitrosulphate nitrosulphonic nitrosulphuric nitrosyl nitrosylsulphuric nitrotoluene nitrous nitroxyl nitryl nits nitty nitwit niue nival nivale nivellate nivellation nivenite niveous niver nivicolous nivosity nix nixed nixie nixon niyoga nizam nizatidine nizoral nizy nj njave nkf nm nmr nnd nne nnw no noachian noachic noachical noachite noah nob nobber nobbiest nobbily nobble nobbler nobbling nobbut nobby nobelium nobile nobiliary nobilify nobilitate nobilities nobility nobis noble noblehearted nobleheartedly nobleheartedness nobleman noblemanly noblemen nobleness nobler nobles noblesse noblest noblewoman nobley nobly nobodies nobody nobody'd nobodyness nobs nocardiosis nocent nocerite nociceptive nociperception nociperceptive nock nocked nocktat noctambulant noctambulation noctambulism noctambulist noctambulistic noctambulous nocten noctes noctidial noctidiurnal noctiferous noctilio noctiluca noctilucal noctilucan noctilucence noctilucent noctilucidae noctilucin noctilucine noctilucous noctiluminous noctipotent noctuae noctuid noctuiform nocturia nocturn nocturnal nocturne nocturnes nocuity noculars nocumentum nocuous nocuously nocuousness nod nodal nodality nodated noddding nodded nodder nodding noddingly noddle noddles noddy node nodes nodi nodiak nodical nodiferous nodiflorous nodosaria nodosarian nodosarine nodose nodosity nodous nods nodular nodulate nodulation nodule noduled nodules nodulize nodulous nodus noed noegenetic noematachometic noetherian noetic nof noffing nog nogada nogai nogal noggen noggin nohow nohuntsik noil noilage noiler noily noint noir noise noised noiseful noiseless noiselessly noiselessness noisemaker noisemaking noises noisette noisier noisiest noisily noisome noisomely noisomeness noisy nokta nolan nolition noll nolle nolo nom noma nomad nomadic nomadical nomadically nomadidae nomadism nomadization nomads nomal nomarch nomarchy nomarthral nombre nombreux nome nomen nomenclate nomenclative nomenclatorial nomenclatory nomenclatural nomenclature nomenclaturist nomenon nomes nomial nomic nomina nominable nominal nominalism nominally nominate nominated nominately nominating nomination nominations nominatival nominative nominatively nominatod nominator nominee nomineeism nominees nominy nomism nomistic nomocracy nomogenist nomogenous nomogeny nomogram nomograph nomographer nomographic nomographical nomographically nomography nomological nomologist nomopelmous nomophyllous nomos nomotheism nomothete nomothetic nomothetical non nona nonabandonment nonabdication nonabjuration nonabolition nonabridgment nonabsentation nonabsolute nonabsolution nonabsorbable nonabsorptive nonabstainer nonabstaining nonabstemious nonabstention nonabstract nonabusers nonacademic nonacceding nonacceleration nonaccent nonacceptance nonacceptant nonaccess nonaccession nonaccessory nonaccompaniment nonaccompanying nonaccomplishment nonaccretion nonachievement nonacidic nonacknowledgment nonacosane nonacquiescent nonacquittal nonactinic nonaction nonactive nonactuality nonaddictive nonaddicts nonadecane nonadherence nonadherent nonadhesive nonadjacent nonadjectival nonadjustable nonadjustive nonadmiring nonadmission nonadmitted nonadorantes nonadornment nonadult nonadvancement nonadvantageous nonadverbial nonadvertence nonadvertency nonaesthetic nonaffirmation nonage nonagenarian nonagesimal nonagglutinative nonaggression nonagon nonagrarian nonagreement nonagricultural nonahydrate nonaid nonair nonalarmist nonalcohol nonalcoholic nonalienating nonalignment nonalkaloidal nonallegation nonallegorical nonallergic nonalliterated nonalliterative nonalluvial nonaltruistic nonaluminous nonamendable nonamotion nonamphibious nonamputation nonanalogy nonanalytical nonanalyzable nonanalyzed nonanaphoric nonancestral nonangelic nonangling nonanimal nonannexation nonannuitant nonannulment nonantagonistic nonantibiotic nonanticipative nonantigenic nonapologetic nonapostatizing nonapostolic nonapparent nonappearance nonappearing nonappointment nonapportionable nonapposable nonappreciation nonappropriation nonaqueous nonarcing nonargentiferous nonarithmetical nonarmigerous nonarrival nonarsenical nonarterial nonarticular nonarticulation nonary nonascendancy nonascertainable nonascetic nonascription nonaseptic nonaspersion nonasphalt nonaspirin nonaspiring nonassault nonassent nonassentation nonassented nonassenting nonassertion nonassertive nonassessable nonassessment nonassignment nonassimilable nonassimilating nonassimilation nonassistance nonassistive nonasthmatic nonastronomical nonathlete nonathletic nonatmospheric nonatonement nonattached nonattachment nonattainment nonattendant nonattention nonattestation nonattributive nonaugmentative nonauthentication nonauthoritative nonautomatic nonautomotive nonavoidance nonaxiomatic nonazotized nonbachelor nonbacterial nonbanishment nonbankable nonbarbarous nonbarbiturate nonbaronial nonbase nonbasic nonbathing nonbearded nonbearing nonbeing nonbeliever nonbelligerent nonbending nonbenevolent nonbetrayal nonbeverage nonbiased nonbilious nonbiological nonbitter nonblack nonblameless nonblended nonblockaded nonblocking nonblooded nonblooming nonborrower nonbotanical nonbranded nonbreakable nonbreeding nonbrowsing nonbudding nonburgage nonburnable nonburning nonbuying noncabinet noncaffeinated noncaffeine noncalcarea noncalcareous noncalcium noncallability noncallable noncancellable noncancer noncannibalistic noncanonical noncanonization noncanvassing noncapillarity noncapillary noncapital noncapitalist noncapitulation noncapture noncarbonate noncareer noncarrier noncartelized noncastigation noncataloguer noncatarrhal noncatechizable noncategorical noncatholicity noncausality nonce noncelestial noncellular noncellulosic noncensorious noncensus noncentral noncereal noncerebral nonceremonial noncertain noncertainty nonchafing nonchalance nonchalant nonchalantly nonchalantness nonchampion nonchangeable nonchanging nonchantly noncharacteristic nonchargeable nonchastisement nonchemical nonchemist nonchildproof nonchivalrous nonchronological nonchurch nonchurched nonchurchgoer noncircuit noncircuital noncircular noncirculation noncitation noncitizen noncivilized nonclaim nonclassifiable nonclassification nonclastic nonclearance noncleistogamic nonclergyable nonclimbable nonclinical nonclosure nonclotting noncoagulability noncoagulable noncoagulation noncoalescing noncoercion noncoercive noncognition noncognitive noncognizable noncognizance noncoherent noncohesive noncoincident noncoincidental noncollaborative noncollapsible noncollectable noncollection noncollegiate noncollinear noncollusion noncolonial noncombat noncombatant noncombination noncombining noncombustible noncome noncoming noncommemoration noncommencement noncommensurable noncommercial noncommissioned noncommittal noncommittalism noncommonable noncommorancy noncommunicable noncommunicating noncommunication noncommunion noncommutative noncompearance noncompensating noncompensation noncompetency noncompeting noncomplaisance noncompletion noncompliance noncomplicity noncomposite noncompoundable noncompounder noncomprehension noncomputation nonconcealment nonconceiving nonconcentration nonconception nonconcern nonconcession nonconciliating nonconcludent nonconcluding nonconcordant nonconcurrence nonconcurrency nonconcurrent noncondensable noncondensation noncondensible noncondimental noncondonation nonconducive nonconductibility nonconducting nonconduction nonconductive nonconductor nonconferrable nonconfession nonconfident nonconfinement nonconfirmative nonconfiscation nonconfitent nonconflicting nonconformable nonconformably nonconformance nonconformer nonconforming nonconformist nonconformistical nonconformists nonconformity nonconfutation noncongenital noncongratulatory noncongruent nonconjectural nonconjugate nonconjunction nonconnection nonconnivance nonconnotative nonconnubial nonconscious nonconsecration nonconsecutive nonconsent nonconsenting nonconsequent nonconsideration nonconsignment nonconsistorial nonconsoling nonconsonant nonconspirator nonconspiring nonconstituent nonconstraint nonconstruable nonconstruction nonconstructive nonconsular nonconsumable nonconsumption noncontagionist noncontagious noncontamination noncontemplative noncontending noncontent noncontentious noncontentiously noncontinental noncontinuance noncontinuation noncontinuous noncontraband noncontraction noncontradiction noncontradictory noncontributing noncontribution noncontributor noncontributory noncontrivance noncontrolled noncontroversial nonconvenable nonconventional nonconvergent nonconversable nonconversant nonconversational nonconversion nonconvertible nonconveyance nonconviction nonconvivial noncoplanar noncopying noncorporate noncorporeality noncorpuscular noncorrective noncorrelation noncorrespondence noncorrespondent noncorresponding noncorroboration noncorroborative noncorroding noncorruption noncortical noncosmic noncosmopolitism noncottager noncounty noncranking noncreation noncreative noncredence noncredibility noncredible noncreditor noncretaceous noncriminal noncriminality noncritical noncrucial noncruciform noncrusading noncrustaceous noncrystalline noncrystallizable noncrystallized noncrystallizing noncultivated noncultivation nonculture noncumulative noncurantist noncurling noncurrent noncursive noncurtailment noncuspidate noncustomary noncyclic noncyclical nonda nondamageable nondamnation nondancer nondatival nondealer nondecadent nondecalcified nondecane nondecasyllabic nondecatoic nondecaying nondeceivable nondeception nondeceptive nondeciduata nondeciduate nondeclarant nondeclarer nondecomposition nondedication nondefalcation nondefaulting nondefection nondefendant nondefense nondefensive nondeference nondeferential nondefiance nondefilement nondefining nondefinition nondefinitive nondegradation nondegreased nondehiscent nondeist nondelegable nondelegate nondeleterious nondelineation nondeliquescent nondelivery nondemand nondemobilization nondemocratic nondendroid nondenial nondepartmental nondependence nondependent nondepletion nondeportation nondeposition nondepositor nondepreciating nondepressed nondepression nondeprivable nonderivable nonderivative nondescript nondescripts nondesecration nondesignate nondesigned nondesire nondesirous nondesisting nondesquamative nondestructive nondetachable nondetailed nondetention nondetermination nondeterminist nondeterrent nondetonating nondetrimental nondevelopable nondevelopment nondeviation nondevotional nondexterous nondiabetic nondiabetics nondiabolic nondiagnosis nondiagrammatic nondialectal nondialectical nondialyzing nondiametral nondiastatic nondiathermanous nondiazotizable nondichogamous nondichogamy nondictionary nondidactic nondieting nondifferentation nondifferentiable nondiffractive nondiffusing nondilution nondiphtheritic nondiphthongal nondiplomatic nondipterous nondirection nondisabling nondisappearing nondisarmament nondisbursed nondischarging nondisciplinary nondisclaim nondisclosure nondiscontinuance nondiscordant nondiscovery nondiscretionary nondiscrimination nondiscussion nondisestablishment nondisfranchised nondisingenuous nondisintegration nondisinterested nondisjunct nondisjunction nondisjunctional nondisjunctive nondismemberment nondismissal nondisparaging nondispensation nondispersal nondispersion nondisposal nondisqualifying nondissenting nondissolution nondistinctive nondistribution nondistributive nondisturbance nondivergence nondivergent nondiversification nondivinity nondivisible nondivisiblity nondivision nondivisional nondivorce nondo nondoctrinal nondoing nondomestic nondomesticated nondramatic nondrinkers nondrinking nondropsical nondrug nonduality nondum nondumping nondutiable nondynastic nondyspeptic none nonearning noneastern nonechoic noneclectic noneclipsing nonecompense noneconomic nonedible noneditor noneditorial noneducable noneducation noneducational noneffective noneffete nonefficacious nonefficacy nonefficiency nonefficient nonego nonegoistical nonelastic nonelasticity nonelect nonelective nonelector nonelectric nonelectrification nonelectrized nonelectrocution nonelectronic noneleemosynary nonelementary nonemanating nonemancipation nonembarkation nonembellishment nonemendation nonemergency nonemigration nonemission nonemphatic nonemphatical nonempirical nonemployment nonenactment nonencroachment nonendemic nonendorsement nonene nonenergic nonenforceable nonengagement nonent nonentailed nonenteric nonentities nonentitive nonentity nonentomological nonentres nonenumerated nonenunciation nonenvious nonephemeral nonepic nonepicurean nonepidemic nonepiscopal nonepochal nonequal nonequation nonequatorial nonequilateral nonequivocating nonerecting nonerection nonerotic nonerroneous nonerudite nones nonescape nonespionage nonesthetic nonesuch nonet noneternity nonetheless nonethereal nonethical nonethnological nonethyl noneugenic noneuphonious nonevacuation nonevanescent nonevangelical nonevaporation nonevasion noneviction nonevolutionary nonevolving nonexaction nonexaggeration nonexamination nonexcavation nonexcepted nonexcerptible nonexcessive nonexchangeable nonexciting nonexclamatory nonexclusion nonexclusive nonexcommunicable nonexculpation nonexcusable nonexecution nonexemplary nonexercise nonexertion nonexhibition nonexistant nonexistence nonexistent nonexistential nonexoneration nonexotic nonexpansion nonexpansively nonexpendable nonexperience nonexperimental nonexpert nonexpiation nonexpiry nonexplosive nonexportable nonexposed nonexposure nonextended nonextensile nonextenuatory nonexteriority nonexternal nonexternality nonextraction nonextraditable nonextradition nonextraneous nonextreme nonextrinsic nonexultation nonfabulous nonfacetious nonfacial nonfacility nonfact nonfactual nonfacultative nonfaddist nonfading nonfailure nonfamily nonfanatical nonfanciful nonfarm nonfastidious nonfatal nonfatty nonfavorite nonfeasance nonfebrile nonfederal nonfederated nonfeldspathic nonfelonious nonfelony nonfenestrated nonfermentability nonfermentable nonfermentative nonferrous nonfertile nonfestive nonfeudal nonfibrous nonfiction nonfictional nonfighter nonfigurative nonfilamentous nonfimbriate nonfinding nonfinite nonfiscal nonfisherman nonfissile nonflaky nonflammable nonfloatation nonfloriferous nonflowering nonfluctuating nonfluid nonfocal nonforested nonforfeitable nonformal nonformulation nonfortification nonfouling nonfrat nonfraternity nonfreeze nonfreezing nonfricative nonfriction nonfruition nonfrustration nonfunctional nonfundable nonfundamental nonfuroid nonfusion nonfuturition nonfuturity nongalactic nongalvanized nonganglionic nongaseous nongassy nongelatinizing nongelatinous nongenealogical nongenerative nongentile nongeographical nongeological nongeometrical nongermination nongerundial nongildsman nongipsy nonglacial nonglucose nonglucosidal nongod nongold nongolfer nongonococcal nongovernmental nongraduate nongraduated nongranular nongratuitous nongravity nongray nongreasy nongreen nongregarious nongremial nongrooming nongymnast nongypsy nonhabitable nonhabitual nonhairy nonhalation nonhardenable nonharmonic nonharmonious nonheading nonhedonistic nonhereditarily nonhereditary nonheritor nonhero nonhistoric nonhomaloidal nonhomogeneity nonhomogeneous nonhomogenous nonhostile nonhousekeeping nonhuman nonhumorous nonhunting nonhygrometric nonhygroscopic nonhypostatic nonidealist nonidentical nonidentity nonidiomatic nonidolatrous nonidyllic nonignitible nonignominious nonignorant nonillumination nonillustration nonimbricating nonimitative nonimmersion nonimmigrant nonimmigration nonimmune nonimmunity nonimmunization nonimmunized nonimpact nonimpairment nonimpartment nonimpatience nonimpeachment nonimperial nonimportation nonimporting nonimpressionist nonimputation nonincandescent nonincarnated noninclination noninclusion noninclusive nonincrease nonincreasing nonincrusting nonindictable nonindictment nonindividual nonindividualistic noninductive noninductivity noninfallibilist noninfallible noninfantry noninfected noninfection noninflammability noninflammable noninflammatory noninflectional noninfluence noninfraction noninhabitant noninitial noninjurious noninquiring noninsect noninsertion noninstructional noninstrumental nonintegrable nonintegrity nonintellectual nonintelligence nonintent nonintention noninterchangeability noninterchangeable nonintercourse noninterference noninterferer nonintermittent noninternational noninterpolation noninterposition noninterrupted nonintersecting noninterventionalist nonintoxicating nonintrospective nonintrospectively nonintrusion nonintrusionism nonintuitive noninvasive noninvidious noninvincibility noniodized nonion nonionized nonionizing nonirate nonirradiated nonirrational nonirrevocable nonirrigated nonirrigating nonirritant nonirritating nonisobaric nonisotropic nonissuable nonjoinder nonjudicial nonjurable nonjuress nonjuring nonjurist nonjuristic nonjuror nonjurorism nonjury nonknowledge nonkosher nonlaminated nonlanguage nonlaying nonleaded nonleaking nonlegume nonleprous nonlevel nonlevulose nonliable nonliberation nonlicensed nonlicentiate nonlicet nonlife nonlimiting nonlinear nonlipoidal nonliquefying nonliquid nonliquidating nonliquidation nonlister nonlisting nonliterary nonlitigious nonliturgical nonlixiviated nonlocalized nonlogical nonlosable nonloser nonlover nonloving nonluminescent nonluminosity nonluminous nonluster nonly nonmaintenance nonmajority nonmalarious nonmalignant nonmalleable nonmammalian nonmandatory nonmanifest nonmannite nonmanual nonmanufacture nonmanufactured nonmanufacturing nonmarine nonmarital nonmarket nonmarriage nonmarriageable nonmarrying nonmartial nonmastery nonmaterial nonmaterialistic nonmathematical nonmatrimonial nonmatter nonmeat nonmechanical nonmechanistic nonmedical nonmedicated nonmelodious nonmembership nonmenial nonmental nonmercantile nonmetallic nonmeteoric nonmeteorological nonmetrical nonmetropolitan nonmicrobic nonmicroscopical nonmigratory nonmilitant nonmilitary nonmimetic nonmineral nonmiraculous nonmischievous nonmissionary nonmobile nonmodal nonmolar nonmomentary nonmonarchical nonmonastic nonmonotheistic nonmorainic nonmortal nonmotile nonmotoring nonmountainous nonmulched nonmultiple nonmunicipal nonmussable nonmutationally nonmutative nonmutual nonmystical nonmythical nonmythological nonnagging nonnant nonnasal nonnat nonnational nonnatural nonnaturalism nonnaturalistic nonnaturality nonnaturalness nonnautical nonnaval nonnebular nonnecessity nonnegligible nonnegotiable nonnephritic nonnescience nonneutral nonneutrality nonnitrogenous nonnoble nonnomination nonnotification nonnotional nonnumeral nonnutritious nonnutritive nonobedience nonobedient nonobjection nonobjective nonobligatory nonobservance nonobstetrical nonobstructive nonobvious nonoccidental nonocculting nonoccupant nonoccupational nonoecumenic nonoffender nonofficeholding nonofficial nonofficially nonofficinal nonoily nonomad nononerous nonopening nonoppressive nonoptical nonoptimistic nonoptional nonoriental nonoriginal nonornamental nonorthographical nonostentation nonowner nonoxidizable nonoxidizing nonoxygenated nonpacific nonpacification nonpacifist nonpaid nonpainter nonpalatal nonpapal nonpapist nonparallel nonparalytic nonparasitic nonparasitism nonparishioner nonparochial nonpartial nonparticipation nonpartisanship nonpartner nonparty nonpassenger nonpasserine nonpastoral nonpatentable nonpatented nonpaternal nonpathogenic nonpaying nonpeak nonpeaked nonpearlitic nonpecuniary nonpedestrian nonpelagic nonpeltast nonpenal nonpenalized nonpensionable nonpensioner nonperception nonperfection nonperforating nonperformance nonperforming nonperiodic nonperiodical nonperjury nonpermanent nonpermeability nonpermeable nonpermissible nonpermission nonpersecution nonperseverance nonpersistence nonpersistent nonperson nonpersonal nonpersonification nonperversive nonpharmaceutical nonphenolic nonphenomenal nonphilanthropic nonphilological nonphilosophical nonphilosophy nonphotobiotic nonphysical nonphysiological nonpickable nonpigmented nonplacental nonplanar nonplanetary nonplantowning nonplate nonplausible nonplus nonplusation nonplused nonplussed nonpoet nonpoisonous nonpolar nonpolarizable nonpolarizing nonpolitical nonponderosity nonponderous nonpopery nonpopular nonpopularity nonporous nonporphyritic nonport nonportability nonportable nonportrayal nonpositive nonpossession nonposthumous nonpostponement nonpotential nonpower nonpractical nonpractice nonpraedial nonprecious nonpredatory nonpredestination nonpredicative nonpredictable nonpreference nonpreferential nonprehensile nonprelatical nonpremium nonpreparation nonprepayment nonprepositional nonpresbyter nonprescribed nonprescription nonprescriptive nonpresence nonpresentation nonpreservation nonpresidential nonpress nonprevalent nonpriestly nonprimary nonprimitive nonprincipled nonprobable nonprocreation nonprofane nonprofessional nonprofessorial nonproficience nonproficiency nonproficient nonprofit nonprofiteering nonprognostication nonprogressive nonprohibitable nonprohibitive nonprojection nonprojective nonprojectively nonproletarian nonproliferous nonprolongation nonpromiscuous nonpromissory nonpromotion nonpromulgation nonpronunciation nonpropagation nonprophetic nonproprietary nonproprietor nonprorogation nonproscriptive nonprosecution nonprospect nonprotective nonproteid nonprotestation nonprotractile nonprotractility nonprovidential nonprovocation nonpsychiatric nonpsychic nonpublic nonpublicity nonpulmonary nonpulsating nonpumpable nonpunctual nonpunctuation nonpuncturable nonpunishing nonpunishment nonpurchaser nonpurgative nonpurification nonpurposive nonpursuit nonpurulent nonpurveyance nonputrescent nonputting nonpyogenic nonpyritiferous nonqualification nonquality nonquota nonradiating nonradical nonrapid nonratability nonratable nonrated nonratifying nonrational nonrationalist nonrayed nonreactor nonreader nonreading nonreasoner nonrebel nonrebellious nonreceipt nonreceiving nonrecent nonreception nonrecess nonrecipient nonreciprocal nonreciprocity nonreclamation nonrecognition nonrecognized nonrecollection nonreconciliation nonrecourse nonrecoverable nonrectified nonrecurrent nonredemption nonreducing nonreference nonreflector nonreformation nonrefraction nonrefueling nonrefutation nonregardance nonregarding nonregenerative nonregent nonregistered nonregistrable nonregression nonregulation nonrehabilitation nonreigning nonreinforcement nonreinstatement nonrejection nonrelation nonrelative nonrelaxation nonrelease nonreligion nonreligious nonreligiousness nonrelinquishment nonremanie nonremedy nonremembrance nonremonstrance nonremuneration nonremunerative nonrendition nonrenewable nonrenewal nonrenouncing nonrenunciation nonrepealing nonrepeat nonrepeater nonrepetition nonreplacement nonreplicate nonreportable nonrepresentation nonrepresentational nonrepresentative nonreprisal nonreproduction nonrepublican nonrepudiation nonrequirement nonrequisition nonrequital nonrescue nonreserve nonresidence nonresident nonresidental nonresidentiary nonresidentor nonresidual nonresignation nonresinifiable nonresistance nonresistant nonresolvability nonresolvable nonresonant nonrespectable nonrespirable nonresponsibility nonrestitution nonrestricted nonrestriction nonrestrictive nonresumption nonresuscitation nonretaliation nonretention nonretentive nonreticence nonretinal nonretiring nonretraceable nonretractation nonretractile nonretraction nonretroactive nonreturnable nonrevaluation nonrevelation nonrevenge nonrevenue nonreverse nonreversed nonreversible nonreversing nonreversion nonrevertible nonreviewable nonrevision nonrevival nonrevocation nonrevolting nonrevolutionary nonrhetorical nonrheumatic nonrhymed nonrhyming nonrhythmic nonriding nonrigid nonrioter nonriparian nonritualistic nonrival nonromantic nonrotatable nonrotative nonroutine nonroyal nonroyalist nonrubber nonruminant nonruminantia nonrun nonrupture nonrural nonrustable nons nonsaccharine nonsacerdotal nonsacramental nonsacred nonsacrifice nonsacrificial nonsailor nonsalable nonsale nonsalutary nonsalutation nonsanctification nonsanctity nonsane nonsatisfaction nonsaturated nonsaturation nonsaving nonsawing nonscalding nonscaling nonscandalous nonscarring nonschematized nonscholastic nonscience nonscientific nonscientist nonscoring nonscraping nonscripturalist nonscrutiny nonsecession nonsecrecy nonsecret nonsecretarial nonsecretory nonsectional nonsecular nonsedative nonsedentary nonsegregation nonseizure nonselected nonself nonsenatorial nonsense nonsenses nonsensible nonsensic nonsensical nonsensically nonsensicalness nonsensification nonsensify nonsensorial nonsensuous nonsentient nonseparation nonsequacious nonsequaciousness nonsequestration nonserif nonserious nonserous nonserviential nonsetter nonsettlement nonsexual nonsexually nonshaft nonsharing nonshatter nonshipper nonshrinkable nonshrinking nonsidereal nonsignatory nonsignature nonsignificance nonsignificant nonsignification nonsignificative nonsilicated nonsiliceous nonsine nonsingular nonsinkable nonsinusoidal nonsiphonage nonsister nonskeptical nonskid nonslaveholding nonslip nonslippery nonslipping nonsludging nonsmokers nonsmoking nonsmutting nonsocial nonsocialist nonsocialistic nonsociety nonsoldier nonsolicitation nonsolid nonsolidified nonsolution nonsolvency nonsolvent nonsonant nonspalling nonsparing nonspeaker nonspeaking nonspecial nonspecialist nonspecialized nonspecie nonspecific nonspecification nonspecified nonspectral nonspeculation nonspeculative nonspherical nonspinning nonspinose nonspiny nonspiral nonsporeformer nonsporeforming nonsporting nonspottable nonsprouting nonstampable nonstandard nonstanzaic nonstaple nonstarter nonstarting nonstatic nonstatutory nonstellar nonsteroid nonsticky nonstimulant nonstipulation nonstock nonstop nonstrategic nonstress nonstretchable nonstriated nonstriker nonstructural nonstudent nonstudious nonstylized nonsubject nonsubjective nonsubmission nonsubmissive nonsubordination nonsubscribing nonsubsiding nonsubsidy nonsubsistence nonsubstantial nonsubstantiality nonsubstantiation nonsubtraction nonsuccess nonsuccessful nonsuccession nonsuccour nonsucking nonsuction nonsuctorial nonsuffering nonsuffrage nonsuit nonsummons nonsupport nonsuppositional nonsuppressed nonsuppurative nonsurface nonsurvival nonsurvivor nonsustaining nonswearing nonswimmer nonswimming nonsyllabic nonsyllabicness nonsyllogizing nonsymbiotic nonsymbiotically nonsymmetrical nonsympathetic nonsympathizer nonsympathy nonsymphonic nonsymptom nonsynchronous nonsynodic nonsyntactic nonsynthesized nonsyntonic nontabular nontactical nontangential nontannic nontannin nontariff nontarnishable nontarnishing nontax nontaxability nontaxable nontaxonomic nonteachable nonteacher nonteaching nontechnical nontechnological nontelegraphic nontelephonic nontemporizing nontenant nontenure nontenurial nonterm nonterminating nonterrestrial nonterritorial nonterritoriality nontestamentary nontheological nontheosophical nontherapeutic nonthinker nonthinking nonthoroughfare nonthreaded nonthreatening nontidal nontillable nontitaniferous nontitular nontolerated nontourist nontrade nontrading nontragic nontrailing nontransferability nontransferable nontranslocation nontransmission nontransparency nontransparent nontransportation nontransposing nontraveling nontreated nontreatment nontreaty nontrespass nontribal nontrier nontronite nontropical nontrunked nontruth nontuberculous nonturbinated nontutorial nontyphoidal nontypicalness nontypographical nonulcerative nonulcerous nonultrafilterable nonumbilical nonumbilicate nonunderstandable nonunderstood nonundulatory nonuniformist nonuniformitarian nonuniformity nonuniformly nonunion nonunionism nonunique nonunison nonunited nonuniversal nonuniversity nonuplet nonupright nonurban nonurgent nonuse nonuser nonusing nonusurping nonuterine nonutile nonutilitarian nonutilized nonutterance nonvacant nonvaginal nonvalent nonvalidity nonvaluation nonvalve nonvanishing nonvariable nonvariant nonvascular nonvassal nonvenereal nonvenomous nonvenous nonventilation nonverbal nonverminous nonvertical nonvesicular nonveteran nonveterinary nonviable nonvibratile nonvibration nonvicarious nonvictory nonvillager nonvillainous nonvindication nonvinous nonvintage nonviolation nonviolence nonvirginal nonvirile nonvirtuous nonviruliferous nonvisceral nonviscid nonviscous nonvisional nonvisitation nonvisualized nonvital nonvitreous nonvitrified nonvocal nonvocalic nonvocational nonvolant nonvolatilized nonvolcanic nonvortically nonvoter nonvoting nonwalking nonweakness nonwestern nonwetted nonwhite nonwinged nonwoody nonworker nonworking nonworship nonwrinkleable nonyielding nonyl nonylene nonylenic nonylic nonzealous nonzero nonzodiacal nonzonal nonzoological noo noodle noodledom noodleism nook nooks nooky noological noologist noology noon noonday noonflower nooning noonlight noons noontide noontime noonwards noop noose noosed nooser nooses nootka nopal nope nopinene nor nora norate norbergite norbert norcamphane nord nordcaper nordenskioldine nordicism nordicization nordicize nordlichen nordmarkite noreast norelin norepinephrine norfolk norfolkian norgesic nori noria noric norimon norite norland norlander norlandism norleucine norm norma normal normalcy normalism normalization normalize normalizer normalizes normalizing normally normalness normals normanesque normanish normanization normanizer normannic normated normative normatively normativeness normless normoblast normocyte normocytic normotensive norms norna nornicotine nornorwest noropianic norpinic norplant norridgewock norris norsel norseland norseman norsemen north northbound northeast northeaster northeasterly northeastern northeastward northeastwardly northeastwards norther northerliness northerly northern northerner northerners northernize northernly northernmost northernness northest northing northland northlander northlight northman northness northrop northswest northumber northumberland northupite northward northwardly northwards northwest northwesterly northwestern northwestwards norton nortriptyline norumbega norwalk norwards norwest norwestward norwich nos nosairi nosairian nosarian nose nosean noseanite noseband nosebanded nosebleed nosebone noseburn nosed nosedive nosegay nosegaylike nosegays noseherb noseless noselessness noselite nosema nosepiece nosepinch noser noses nosesmart nosethirl nosetiology nosewards nosey nosily nosine nosing nosism nosocomial nosocomium nosogenetic nosogenic nosogeny nosogeography nosographical nosography nosological nosologically nosologist nosology nosonomy nosophobia nosophyte nosopoetic nosotaxy nosotrophy nosotros nostalgia nostalgic nostalgically nostalgy nostic nostis nostocaceous nostochine nostologic nostology nostomania nostradamus nostras nostrification nostril nostriled nostrils nostrilsome nostrum nostrummonger nostrummongery nostrums not notabilities notable notableness notables notably notacanthid notacanthidae notacanthoid notaeal notaeum notaire notal notalgia notalgic notan notandum notanencephalia notarial notarially notariate notaries notarikon notarise notarize notary notaryship notation notational notations notator notch notchboard notched notchel notcher notches notchful notchy note notebook notebooks noted notedly notedness notehead noteholder notelaea noteless notelessly notencephalocele notencephalus notepaper noter notes notewise noteworthily noteworthiness noteworthy nother nothin nothing nothingism nothingize nothingless nothingness nothingology nothings nothiog nothofagus nothosaur nothosauri nothosaurian nothosauridae nothun nothwithstanding notice noticeable noticeably noticed noticer notices noticing notidanian notidanidae notidanidan notidanoid notidanus notif notifiable notification notified notifier notifies notify notifying noting notion notional notionalist notionality notionally notionalness notionary notioned notionist notionless notions notiosorex notitia notkerian notocentrous notochord notochordal notocord notodontid notodontidae notodontoid notogaea notogaeal notogaean notogaeic notommatidae notonecta notonectal notonectid notonectidae notopodial notopodium notopterid notopteroid notorhynchus notoriete notoriety notorious notoriously notornis notoryctes notostraca nototherium nototrema nototribe notour notre notropis nots nott notting nottingham nottoway notum notungulate notwithstanding nouakchott nougat nougatine nought noumea noumeaite noumeite noumena noumenalism noumenality noumenalize noumenally noumenism noumenon noun nounal nounced nounize nounless nouns noup nourice nourish nourished nourishes nourisheth nourishing nourishingly nourishment nous nouveau nouveaux nouvelle nouvelles nov nova novaculite novak novalia novanglian novantique novarsenobenzene novate novatianism novatianist novation novative novator novatory novatrix novcic novel novela novelas novelcraft noveldom novelesque novelette novelettish noveletty novelish novelism novelist novelistically novelists novelize novelless novellike novelly novels novelties novelty novelwright novem november novemberish novemdigitate novemfid novemlobate novemnervate novemperfoliate novena novenary novene novennial novi novial novice novicehood novicelike novices noviceship noviciate novilunar novis novissimis novitial novitiate novitiates novitiateship novity novodamus novospirozine novotriamzide novotrimel now nowaday nowadays nowanights noway noways nowel nowhar nowhat nowhen nowhere nowheres nowhit nowhither nowise nowroze nows nowt noxal noxally noxious noxiously noxis noyade noyau noyed nozi nozzle nrc nre nrealy nsabp nsaid nsaids nsf nth ntis nu nuance nuances nub nuba nubble nubbling nubbly nubby nubecula nubia nubian nubiform nubigenous nubilate nubilation nubile nubilous nubium nuc nucal nucament nucellar nucha nuchal nuchalgia nuciculture nuciferous nuciform nucin nucivorous nucleal nucleant nuclear nucleary nuclease nucleate nucleated nucleation nucleator nuclei nucleic nucleiform nucleinase nucleoalbumin nucleoalbuminuria nucleohyaloplasm nucleohyaloplasma nucleoidioplasma nucleolar nucleolated nucleolinus nucleoloid nucleolysis nucleomicrosome nucleone nucleonics nucleopetal nucleoplasmatic nucleoplasmic nucleoproteid nucleoprotein nucleoside nucleotide nucleus nuclide nuculacea nuculanium nucule nuculid nuculidae nuculiform nuda nudate nudder nuddle nude nudely nudeness nudens nudge nudged nudger nudges nudging nudgings nudibranch nudibranchia nudibranchian nudibranchiate nudicaudate nudifier nudiped nudish nudism nuditarian nudities nudity nuf nuff nuffin nugaeque nugator nugatoriness nugatory nuggar nugget nuggets nuggety nugilogue nugumiut nuisance nuisancer nuisances nuit nuits nuke nul null nulla nullable nullah nullibicity nullibiquitous nullibist nullification nullificationist nullificator nullified nullifier nullify nullifying nullipara nulliparity nulliparous nullipennate nullipennes nullipore nullism nullisomic nullity nulliverse nullo nullstellensatz numa numantine numb numbed number numbered numberer numberful numbering numberless numberr numbers numbersome numbfish numbing numbingly numble numblike numbly numbness numbs numbskull numen numenius numerable numerably numeral numerals numerant numeration numerative numerator numeric numerical numerically numericalness numerische numerist numerose numerosity numerous numerously numerousness numida numidian numididae numidinae numidiques numinism numismatic numismatist numismatists numismatologist numismatology nummary nummi nummiform nummos nummular nummularia nummulary nummulated nummulation nummulinidae nummulites nummulitic nummulitoid nummus numskull numskulledness numskullery numskullism numskulls numud nun nunatak nunbird nunc nunch nuncheon nunciate nunciative nunciatory nunciature nuncio nuncios nuncle nuncupative nuncupatively nundinales nundination nunhood nunlet nunlike nunnari nunnery nunnify nunnish nunnishness nunnywatch nuns nuove nuovo nupe nuphar nuprin nuptial nuptiality nuptially nuptials nur nuraghe nurhag nurly nursable nurse nursed nursedom nursegirl nursehound nursekeeper nursekin nurselet nurselike nurselings nursemaid nurser nurseries nursery nurseryful nurserymaid nurseryman nurserymen nurses nursetender nursie nursing nursingly nursle nursling nursy nurturable nurtural nurture nurtured nurturedst nurtureless nurturer nurtures nurtureship nurturing nusairis nusakan nusfiah nusquam nuss nussed nut nutant nutarian nutate nutation nutational nutcake nutcrack nutcracker nutcrackery nutgall nuthatch nuther nutjobber nutlet nutlike nutmeg nutmegged nutmeggy nutmegs nutrasweet nutria nutrice nutricism nutrify nutriment nutrimental nutritial nutrition nutritional nutritionally nutritionist nutritious nutritiousness nutritive nutritiveness nutritory nuts nutshell nuttallia nuttalliosis nutted nutter nuttery nuttily nuttiness nutting nuttish nuttun nutty nuys nuzzerana nuzzle nuzzling nv nw ny nyamwezi nyanja nyanza nyaya nyc nychthemeron nyctalopia nyctalopy nyctanthes nyctea nyctereutes nycteribiid nycteridae nycterine nycteris nyctimene nyctipelagic nyctipithecine nyctophobia nydia nye nylast nylon nylons nymil nymph nympha nymphae nymphaea nymphaeaceae nymphaeum nymphalid nymphalidae nymphalinae nymphaline nymphean nymphet nymphic nymphical nymphid nymphine nymphish nymphitis nymphlike nymphly nympholepsia nympholepsy nympholept nympholeptic nymphomania nymphomaniac nymphomaniacal nymphosis nymphotomy nymphs nymphwise nyoro nyquist nyroca nyssa nystagmic nystagmus nystatin nyu o'brien o'connell o'connor o'dwyer o'er o'hare o'neill o's o'shea oadal oaf oafdom oafishly oafishness oahu oak oakboles oaken oakenshaw oaklike oakling oaks oaktongue oakum oakweb oakwood oald oan oar oarage oarcock oared oarfish oarial oariocele oariopathic oariopathy oariotomy oaritis oarium oarless oarlike oarlock oarlop oarman oars oarsman oarsmanship oarsmen oart oarweed oary oasean oases oasis oasitic oasthouse oat oatbin oatcake oatcakes oatear oaten oatenmeal oath oathay oathlet oaths oatmeal oats oatseed oaty obadiah obambulate obambulation obbligato obclavate obclude obcompressed obconical obcordiform obcuneate obdeltoid obdiplostemony obduracy obdurate obdurately obdurateness obe obeahism obeche obedience obediency obedient obedientiae obediential obedientially obedientialness obedientiar obediently obeisance obeisant obeisantly obeliac obelion obelisk obelism obelize obelus ober oberon oberseah obese obesity obex obey obeyed obeyer obeyeth obeying obeyingly obeys obeysance obfuscable obfuscation obfuscatory obfuscous obidicut obispo obit obitual obituarial obituarian obituaries obituarily obituarist obituary object objectable objectation objectative objected objectee objecteth objectification objectifications objecting objection objectionable objectionableness objectionably objectional objectionist objections objectivate objectivation objective objectively objectiveness objectives objectivism objectivist objectivity objectivize objectization objectless objectlessly objectlessness objector objectors objects objet objicient objuration objure objurgation objurgatively objurgatorily objurgatrix oblanceolate oblately oblateness oblation oblational oblationary oblations oblectate oblectation obley obligable obligancy obligated obligation obligational obligations obligative obligativeness obligatorily obligatoriness obligatory oblige obliged obligedly obligedness obligee obligement obliger obliges obliging obligingly obligingness obligistic obliquangular obliquate obliquation oblique obliquely obliqueness obliquitous obliquity obliquus obliterable obliterate obliterated obliterates obliterating obliteration obliterator oblivial obliviality oblivion oblivionate oblivionize oblivious obliviously obliviousness obliviscence obliviscible obllgcd oblocutor oblong oblongata oblongated oblongitude oblongness oblongs obloquy obmutescence obmutescent obnebulate obnounce obnoxious obnoxiously obnoxiousness obnubilate obnubilation obnunciation oboe oboist obol obolaria obolary obole obolus obomegoid obongo oboval obovoid obpyramidal obpyriform obras obrazil obrogate obrogation obrotund obscene obscenely obsceneness obscenest obscenity obscura obscurantism obscurantist obscuration obscure obscured obscurely obscurement obscureness obscurer obscures obscurest obscuring obscurism obscurist obscurities obscurity obsecrate obsecrationary obsecratory obsequence obsequent obsequial obsequience obsequies obsequiosity obsequious obsequiously obsequiousness obsequity obserseah observable observableness observance observances observancy observandum observant observantine observantly observantness observation observationalism observationally observations observatiooal observative observatorial observatory observe observed observedly observer observers observes observeth observing observingly obsess obsessed obsesses obsessing obsessingly obsession obsessions obsidian obsidianite obsidians obsidional obsignate obsignation obsignatory obsolesce obsolescence obsolescent obsolescently obsolete obsoletely obsoletion obsoletism obstacle obstacles obstantibus obstetric obstetrical obstetrically obstetricans obstetrication obstetrician obstetricians obstetrics obstetricy obstetrist obstetrix obstinacies obstinacious obstinacy obstinate obstinately obstinateness obstination obstinative obstipation obstreperosity obstreperous obstriction obstringe obstruct obstructed obstructedly obstructing obstruction obstructionist obstructions obstructive obstructiveness obstructivity obstructor obstructs obstruent obstupefy obtain obtainable obtainal obtaine obtained obtainer obtaineth obtaining obtainment obtains obtected obtemper obtemperate obtend obtenebrate obtenebration obtention obtestation obtrude obtruded obtruder obtrudes obtruding obtruncation obtruncator obtrusion obtrusionist obtrusive obtrusively obtrusiveness obtundent obtunder obtundity obturate obturation obturator obturatorius obturbinate obtusangular obtuse obtusely obtuseness obtusifid obtusifolious obtusion obtusirostrate obtusish obtusity obumbrant obus obvallate obvelation obvention obverse obversion obvertend obviable obviate obviated obviates obviating obviation obviative obvious obviously obviousness obvolute obvolve oc ocarina occamist occamy occasion occasionable occasional occasionalism occasionalist occasionalistic occasionality occasionally occasionalness occasionary occasioned occasioning occasionly occasions occhi occident occidental occidentale occidentalism occidentalist occidentalization occidentalize occidentally occiduous occipital occipitally occipitoanterior occipitoatlantal occipitoaxial occipitobasilar occipitobregmatic occipitofacial occipitofrontal occipitofrontalis occipitomastoid occipitomental occipitonasal occipitonuchal occipitootic occipitoparietal occipitoscapular occipitosphenoid occipitosphenoidal occipitotemporal occiput occitone occlude occluded occludent occlusal occluse occlusion occlusiveness occlusocervical occlusogingival occlusometer occult occulta occultate occultations occulter occultes occulting occultly occultness occupancy occupant occupants occupat occupata occupation occupational occupationalist occupationally occupationless occupations occupative occupiable occupied occupier occupiers occupies occupieth occupiy occupy occupying occur occured occurred occurrence occurrences occurrent occurring occurs ocd ocean oceanarium oceaned oceanet oceanful oceangoing oceania oceanian oceanic oceanity oceanographic oceanographical oceanographically oceanography oceanophyte oceans oceanside oceanstream oceanward oceanwise ocellar ocellary ocellate ocellated ocelli ocellicyst ocelliform ocelligerous ocellus oceloid och ochavo ocher ocherish ochery ochlesitic ochletic ochlocracy ochlocrat ochlocratic ochlocratical ochlocratically ochlophobist ochnaceous ochotonidae ochraceous ochrana ochre ochrea ochreous ochrey ochrocarpous ochrolite ochroma ochronosis ochronotic ochrous ocht ocian ocimum oclock ocotea ocreaceous ocreatae ocreate oct octachordal octachronous octacnemus octactinal octactiniae octactinian octad octadecahydrate octadecane octadic octadrachm octaemeron octaeterid octagon octagonal octagonally octahedra octahedral octahedroid octahedron octahydrated octakishexahedron octal octamerous octameter octanaphthene octandrian octandrious octangle octangular octans octant octantal octapla octaploidic octapodic octapody octarchy octarticulate octary octastich octastichon octastrophic octateuch octaval octavalent octavarium octave octaves octavia octavic octavina octavius octavo octavos octene octennial octet octic octile octillion octillionth octingentenary octoad octoalloy octoate octobass octochord octocorallan octocorallia octocoralline octocotyloid octodactyl octodactylous octodecimo octodentate octodont octodontidae octofid octogenarian octogenarianism octogenarians octogenaries octogenary octogild octoglot octogynia octogynian octogynous octoic octolateral octolocular octomerous octometer octonal octonarian octonarius octonematous octoon octopean octoped octopede octopetalous octophthalmous octophyllous octopi octopine octoploid octoploidy octopoda octopodan octopodous octopus octoradial octoradiate octoradiated octoroon octoroons octose octosepalous octospore octostichous octosyllabic octosyllable octovalent octoyl octroi octroy octuor octuplet octuplex octuplication octuply octylene octyne ocuby ocular ocularly oculary oculate oculated oculauditory oculi oculiform oculigerous oculina oculinidae oculinoid oculist oculistic oculists oculocephalic oculofrontal oculomotory oculonasal oculopalpebral oculopupillary oculospinal oculozygomatic oculus ocydrome ocydromine ocypete ocypoda ocypodan ocypode ocypodidae ocyroidae oda odacidae odacoid odalborn odalisque odaller odalwoman odax odd oddball odder oddest oddities oddity oddlegs oddly oddman oddments oddness odds oddsman ode odel odelet odeon oder odes odessa odeum odic odically odin odinite odinitic odiometer odious odiously odiousness odist odium odobenidae odocoileus odology odometer odometrical odontagra odontalgia odontalgic odontaspidae odontaspis odontatrophy odontes odontexesis odontiasis odontic odontist odontitis odontoblast odontoblastic odontocete odontocetous odontochirurgic odontoclasis odontogen odontogenesis odontogenic odontogeny odontoglossae odontoglossate odontoglossum odontognathae odontognathous odontograph odontographic odontography odontohyperesthesia odontoid odontolcae odontolcate odontolith odontological odontologist odontoloxia odontoma odontonecrosis odontonosology odontopathy odontophore odontophorinae odontophorine odontophorous odontoplast odontopteris odontorhynchous odontormae odontornithes odontornithic odontoschism odontostomatous odontosyllis odontotechny odontotherapia odontotherapy odontotripsis odontotrypy odoom odophone odor odorant odorator odored odorful odoriferous odoriferousness odorimetry odoriphore odorosity odorous odorously odorousness odorproof odors odos odostemon odour odourless odours ods odum odylic odylism odylist odylization odylize odynerus odyssean odysseus odyssey odzookers oe oea oecanthus oecist oecodomic oecodomical oeconomus oecoparasite oecoparasitism oecophobia oecumenian oecumenic oecumenical oecumenicity oedema oedemerid oedemeridae oedicnemine oedipal oedipean oedipus oedogoniaceae oedogoniaceous oedogoniales oedogonium oeil oenanthate oenanthe oenanthic oenanthol oenanthole oenanthyl oenanthylate oenin oenocarpus oenochoe oenocyte oenocytic oenolin oenology oenomancy oenomel oenometer oenophilist oenophobist oenopoetic oenothera oenotheraceae oenotheraceous oer oerhaps oes oesophageal oesophagi oesophagismus oesophagostomiasis oesophagostomum oesophagus oestrian oestriasis oestrid oestridae oestrin oestroid oestrous oestruate oestruation oestrus oeuvre oeuvres ofblessed off offa offal offcial offcome offcut offenbach offence offences offend offendable offendant offended offendedness offender offenders offendeth offendible offending offendress offends offense offenseful offenseless offenselessly offenseproof offenses offensible offensive offensively offensiveness offer offered offerer offereth offering offerings offeror offers offertorial offertory offgrade offhand offhanded offhandedly offhandedness office officeholder officeless officemate officer officered officeress officerhood officerism officerless officers offices official officialese officialism officiality officialize officially officials officialty officiant officiary officiate officiated officiating officiation officiator officiendi officiis officinal officinally officio officious officiously officiousness offiicial offing offish offishly offishness offlet offload offlook offn offord offprint offsaddle offscape offscour offscourer offscouring offscum offset offsets offshoot offshoots offshore offspring offstage offstart offtake offtype offuscation offward oflete oflice oflicer oflicial ofpolyphonic oft often oftener oftenest oftens oftentime oftentimes ofter oftest ofthe oftly oftness ofttime ofttimes oftwhiles ofver og ogaire ogam ogams ogboni ogcocephalidae ogcocephalus ogden ogdoas ogee ogeed ogganition ogival ogived oglala ogle ogled ogling ogly ogmic ogni ognised ogor ogpu ogre ogreish ogreishly ogreism ogrepines ogres ogress ogrish ogrism ogtiern ogum ogygia ogygian oh ohioan ohm ohmage ohmic oho ohoy ohvsical oidioid oidiomycosis oidiomycotic oidium oil oilberry oilbird oilcan oilcloth oilcoat oilcup oildom oiled oiler oilfish oilhole oilily oiling oilless oillessness oillike oilmen oilmonger oilmongery oilometer oilproof oils oilskin oilskinned oilskins oilstock oilstone oilstove oiltight oiltightness oilway oily oinomancy oinomania oinomel oint ointed ointment ointments oireachtas oisanite oiseaux oisin oitava oj ojibwa ojibway ok oka okapi okapia okay okee oket oki okia okie okinawa oklafalaya oklahannali oklahoma oklahoman okoniosis okshoofd okthabah okuari okupukupu olacaceae olaf olam olamic olax olbos olcha olchi old olden oldenburg older oldermost oldest oldfangled oldfangledness oldfieldia oldhamia oldhamite oldhearted oldish oldland oldness olds oldwife oldy ole olea oleaceae oleaceous oleacina oleacinidae oleaginous oleana oleander olease oleate olecranon olefiant olefine oleic olein olena olenellidian olenellus olenid olenidae olenidian oleocalcareous oleocellosis oleocyst oleoduct oleographer oleographic oleomargarine oleometer oleoptene oleorefractometer oleoresinous oleosaccharum oleose oleosity oleostearate oleothorax oleous oleraceous olericultural olericulturally olericulture oleron olethreutes olethreutid olfact olfaction olfactometer olfactometric olfactometry olfactorily olfactory olfacty olga olid olies oligaemia oligandrous oligarch oligarchal oligarchic oligarchical oligarchically oligarchies oligarchism oligarchist oligarchize oligarchs oligarchy oligemia oligocarpous oligocene oligochaeta oligochaete oligochete oligocholia oligochrome oligochronometer oligochylia oligoclase oligoclasite oligocythemia oligocythemic oligodendroglia oligodendroglioma oligodipsia oligodynamic oligohydramnios oligolactia oligomenorrhea oligometochia oligometochic oligomyodae oligomyodian oligomyoid oligonephria oligonephric oligonephrous oligonite oligopepsia oligophagous oligophosphaturia oligophrenic oligophyllous oligoplasmia oligopnea oligopolistic oligopoly oligoprothetic oligopsony oligopsychia oligopyrene oligosepalous oligosialia oligosiderite oligospermia oligostemonous oligosyllabic oligosynthetic oligotokous oligotrichia oligotrophy oligotropic oliguresis oliguretic olinia oliniaceae olit oliva olivaceous olivary olive olivean olived olivella oliveness olivenite oliver oliverian oliverman oliversmith olives olivet olivetan olivetti olivewood oliviform olivil olivile olivilin olivine olivinic olivinitic olla ollamh ollenite ollie ollock ological ologist ologistic ology olomao olona olonets olonetsian olonetsish oloroso olpidiaster olpidium olsen oltonde olykoek olympia olympiad olympiadic olympian olympianism olympianize olympianly olympic olympicly olympics olympieion olympus olynthiac olynthus om oma omagra omagua omaha omalgia oman omani omao omarthritis omasitis omasum omber ombre ombrelly ombrette ombrograph ombrology ombrometer ombrophile ombrophilic ombrophilous ombrophily ombrophobous ombrophoby ombudsman omega omegoid omelet omelette omelettes omen omened omenology omens omental omentectomy omentitis omentocele omentofixation omentopexy omentorrhaphy omentosplenopexy omentulum omentum omeprazole omer omicron omina ominous ominously omission omissions omissive omit omitis omits omitted omitter omitting omlah ommastrephes ommateal ommateum ommatidial ommatidium ommaton ommatophore ommiades omne omneity omnes omniactuality omniana omniarch omnibenevolence omnibenevolent omnibus omnibuses omnibusman omnicausality omnicompetence omnicompetent omnicorporeal omnicredulity omnidenominational omnidirectional omnierudite omniessence omnifacial omnifarious omnifariously omniferous omnific omnifidel omnify omnigenous omnigerent omnigraph omnihumanity omnilegent omniloquent omnimeter omniparient omniparity omniparous omnipercipience omnipercipiency omnipercipient omnipotence omnipotent omnipotentiality omnipotently omnipregnant omnipresence omnipresent omniprevalence omniprevalent omniproduction omniprudent omnirange omniregency omnirepresentative omnirepresentativeness omniscience omnisciency omniscient omniscribent omniscriptive omnisentient omnisignificant omnispective omnisufficient omnitemporal omnitonal omnitonic omnitude omnium omnivalent omnivalous omnivarious omnividence omnivident omnivora omnivorant omnivore omnivorous omodynia omohyoid omoideum omoiomere omoion omophagist omophagous omophagy omoplatoscopy omosternal omou omphacine omphalectomy omphalic omphalism omphalitis omphalodium omphaloid omphalomesaraic omphalomesenteric omphalopagus omphalopsychic omphalorrhea omphalorrhexis omphalosite omphaloskepsis omphalospinous omphalotomy omphalotripsy omphalus omstlichcn omtrent on onager onagra onagraceae onagraceous onanism onanist onca once oncet onchidiidae onchocerca oncia oncidium oncography oncologic oncological oncologists oncology oncome oncometry oncoming oncommon onconnected oncosimeter oncosphere oncost oncostman ondagraph ondameter ondatra ondes ondine ondograph ondometer ondoscope ondy one oneanother oneasy oneberry onefold onefoldness onegite onehalf onehearted onehow oneida oneiric oneirocrit oneirocritic oneirocritical oneirocritically oneirocriticism oneirocritics oneirodynia oneiromancer oneiromancy oneiroscopist oneiroscopy oneirotic oneism onement oneness oner onerary onerative onerosity onerous onerously onerousness oners onery ones oneself onewhere oneyer onfall onflemed onflow onflowing oniomaniac onion onionet onionized onionlike onionpeel onions onionskin oniony onirotic oniscidae onisciform oniscoid oniscoidea oniscoidean onium onkilonite onkos onlay onlepy onliest onliness onlook onlooker onlookers onlooking onluckily only onlybe onmun onnatural onocentaur onoclea onohippidium onolatry onomancy onomasticon onomatologia onomatology onomatomania onomatope onomatoplasm onomatopoeia onomatopoeial onomatopoeian onomatopoeic onomatopoeical onomatopoeically onomatopoesis onomatopoesy onomatopoetic onomomancy onondaga onondagan ononis onopordon onosmodium onpleasant onreasonable onrush ons onset onsets onsetter onside onslaught onslaughts onstand onstead onsweep onsweeping ont ontal ontarian ontaric ontario onthedownburninghouseresting onto ontocycle ontocyclic ontogenal ontogenesis ontogenetic ontogenetically ontogenic ontogenically ontogenist ontogeny ontography ontologic ontological ontologically ontologism ontologist ontologistic ontologize ontosophy onus onward onwardly onwards ony onybody onychatrophia onychauxis onychia onychin onychogryphosis onychogryposis onychoid onychomancy onychonosus onychopathy onychophagist onychophora onychophoran onychophorous onychophyma onychoptosis onychoschizia onychotrophy onym onymal onymancy onymatic onymous onything onyx onyxis onyxitis onza ooblast ooblastema oocystaceae oocystaceous oocystic oocystis oodles oofbird oofy oogamous oogamy ooglea oogonia oogonial oogoniophore oogonium ookinesis ookinete ookinetic oolak oolemma oolitic oolly oologic oologically oologize oology oolong oomancy oometer oometric oomph oomycete oonly oons oont oop oopak oophoralgia oophorauxe oophore oophorectomy oophoreocele oophorhysterectomy oophoric oophoritis oophoroma oophoromalacia oophoromania oophoropexy oophororrhaphy oophorosalpingectomy oophorostomy oophorotomy oophytic ooplasm ooplasmic oopod oopodal ooporphyrin ooposite oor oorali ooscope ooscopy oosphere oospheres oosporange oospore oospores oosporic oosporous oostegite oostegitic ootheca ootocoid ootocoidea ootocous ootype ooze oozed oozes oozily oozing oozooid oozy opacate opacification opacifier opacify opacite opacities opacity opacous opacousness opah opal opaled opalesce opalescence opalescent opalesque opalina opaline opalinidae opalish opalize opalized opaloid opaque opaquely opaqueness opata opdalite ope opec oped opeenion opeenions opeidoscope opel opelet open openable openband opened opener openeth openhanded openhandedly openhead openhearted openheartedness opening openings openly openmouthed openmouthedly openness opens openside openwork opera operable operagoer operalogue operameter operance operandi operant operas operatable operate operated operatee operates operatic operatical operating operation operational operationalist operationist operations operative operatively operativeness operatives operatize operator operators operatory operatrix opercled opercula opercular operculate operculated operculiferous operculiform operculigenous operculigerous operculum opere operetta operette operettist operon operose operosely operosity opes ophelia ophelimity ophiasis ophic ophicalcite ophicephaloid ophicephalus ophichthyidae ophichthyoid ophicleidean ophidia ophidian ophidiidae ophidion ophidious ophidology ophiobatrachia ophioglossaceous ophioglossales ophioglossum ophiography ophioid ophiolater ophiolatrous ophiolatry ophiolite ophiolitic ophiologic ophiological ophiologist ophiology ophiomancy ophiomorpha ophiomorphic ophiomorphous ophionid ophionine ophiophagous ophiophoby ophiopluteus ophiosaurus ophiostaphyle ophisaurus ophite ophitic ophiuchid ophiuchus ophiucus ophiuran ophiurida ophiuroidea ophryon ophrys ophthalmagra ophthalmalgic ophthalmatrophia ophthalmectomy ophthalmetrical ophthalmia ophthalmiatrics ophthalmic ophthalmious ophthalmite ophthalmitic ophthalmocarcinoma ophthalmocele ophthalmodynamometer ophthalmodynia ophthalmoleucoscope ophthalmolith ophthalmological ophthalmologists ophthalmology ophthalmometric ophthalmometry ophthalmomycosis ophthalmomyositis ophthalmomyotomy ophthalmoneuritis ophthalmopathy ophthalmophlebotomy ophthalmophore ophthalmophorous ophthalmophthisis ophthalmoplegia ophthalmoplegic ophthalmopod ophthalmorrhea ophthalmorrhexis ophthalmoscope ophthalmoscopic ophthalmoscopical ophthalmoscopy ophthalmostasis ophthalmostat ophthalmostatometer ophthalmothermometer ophthalmotomy ophthalmotrope ophthalmotropometer ophthalmy opianyl opiate opiateproof opiates opiatic opiconsivia opificer opilia opiliaceae opiliaceous opilionina opilionine opimian opinability opinably opinant opination opinatively opine opined opiner opines opiniaster opiniastre opiniastrety opiniastrous opiniater opiniatively opiniativeness opiniatrety opinion opinionable opinionaire opinionated opinionatedness opinionately opinionative opinionativeness opinionedness opinionist opinions opiomaniac opiophagism opiophagy opiparous opisometer opisthion opisthobranchia opisthobranchiate opisthocoelia opisthocoelian opisthocomidae opisthocomous opisthodome opisthodomos opisthodomus opisthogastric opisthoglossa opisthoglossate opisthoglyphic opisthoglyphous opisthognathidae opisthognathism opisthographal opisthographic opisthographical opisthogyrous opisthoparia opisthoparian opisthophagic opisthoporeia opisthorchis opisthothelae opisthotic opisthotonic opisthotonoid opisthotonus opitschen opium opiumism opobalsam opodeldoc opodidymus opodymus opon oporto opossum opossums opotherapy oppenheimer oppens oppilate oppilative opponency opponent opponents opportune opportuneless opportunely opportuneness opportunism opportunist opportunistic opportunities opportunity oppose opposed opposeless opposer opposes opposing opposingly opposit opposite oppositely oppositeness opposites opposition oppositionary oppositionism oppositionist oppositions oppositious oppositipetalous oppositipinnate oppositipolar oppositisepalous oppositive oppositively opposure oppress oppressed oppresses oppressing oppression oppressions oppressive oppressively oppressiveness oppressor oppressors opprobriate opprobrious opprobriously opprobriousness opprobrium opprobry oppugn oppugnance oppugnancy oppugnant oppugnate oppugnation oppugner opsigamy opsimath opsimathy opsiometer opsisform opsistype opsonic opsonification opsonify opsonist opsonium opsonology opsonometry opsonophilia opsonophoric opsy optableness optant optation optative opted opthalmic opthalmology opthalmophorium opthalmoplegy optic optical optically optician opticians opticist opticociliary opticon opticopapillary opticopupillary optics optigraph optima optimacy optimate optimates optime optimism optimist optimistic optimists optimity optimization optimo optimum option optional optionalize optionally optionary options optischen optive optoacoustic optoblast optogram optography optologist optology optomeninx optometer optometrical optometrist optometrists optotype opulence opulency opulent opulently opulus opuntiaceae opuntiales opuntioid opus opuscular opuscule or ora orabase orabassu oracle oracles oracular oracularity oracularly oracularness oraculously oraculum orad orage oragious oral orale oralism oralist orality oralization orally oralogist oralogy orang orange orangeade orangebird orangeist orangeleaf orangeroot oranges orangewoman orangewood orangutan oraon orare orarian orary orat orate oration orations orator oratorian oratorianism oratorianize oratoric oratorical oratorically oratorio oratorize oratorlike orators oratorship oratory oratrix orb orbed orbi orbicella orbicular orbiculare orbicularis orbicularity orbicularly orbiculate orbiculated orbiculately orbiculation orbiculatoelliptical orbific orbilian orbis orbit orbital orbitale orbitar orbitary orbite orbitelar orbitelarian orbitele orbitofrontal orbitolina orbitolite orbitomalar orbitomaxillary orbitonasal orbitosphenoid orbitostat orbitozygomatic orbits orbless orbs orbulina orc orca orcanet orcein orchamus orchard orcharding orchardist orchards orchel orchella orchester orchestia orchestic orchestra orchestral orchestrally orchestras orchestrate orchestrator orchestre orchestric orchestrina orchic orchichorea orchid orchidaceae orchidacean orchidaceous orchidales orchidalgia orchidectomy orchideously orchiditis orchidocele orchidocelioplasty orchidologist orchidology orchidomania orchidoplasty orchidoptosis orchidorrhaphy orchidotherapy orchids orchiectomy orchiencephaloma orchiepididymitis orchil orchilla orchilytic orchiocatabasis orchioneuralgia orchiopexy orchioplasty orchioscheocele orchioscirrhus orchiotomy orchis orchitic orchotomy orcin orcinol orciprenaline ordain ordainable ordained ordaining ordains ordanchite ordeal order orderable ordered orderer orderest ordering orderless orderliness orderly orders ordinal ordinally ordinance ordinances ordinar ordinaria ordinarily ordinarius ordinary ordinaryship ordinate ordinately ordinates ordination ordinationibus ordinative ordinem ordines ordinis ordnance ordonnance ordonnances ordonnant ordored ordovician ordu ordure ordures ordurous ore oread oreamnos oreas orecchion orectic orective oredited oregon oreille oreillet orellana orellin orendite oreodon oreodontidae oreodontine oreodoxa oreophasinae oreophasine oreophasis oreortyx oreotragine oreotrochilus ores orestean oreweed orexis orful organ organbird organdy organe organella organer organette organic organical organically organicalness organicism organicistic organific organing organisation organised organising organism organismal organismic organisms organist organistrum organists organistship organity organization organizational organizationally organizationist organizations organizatory organize organized organizer organizers organizes organizing organless organoantimony organoarsenic organoboron organochordium organogel organogen organogenesis organogenic organogenist organogold organographic organographical organographist organography organoid organoiron organolead organoleptic organolithium organologic organology organomercury organometallic organonomic organonym organonymal organonymic organonymy organopathy organophil organophile organophilic organophone organophonic organophyly organoplastic organoscopy organosilicon organosilver organotherapy organotin organotropic organotropically organotropy organozinc organry organs organule organum organzine orgasmic orgasms orgastic orgiac orgiastic orgic orgies orgueil orguinette orgy orgyia oribatidae oribi oriconic oricycle oriency orienitalis orient oriental orientale orientalia orientalis orientalism orientalist orientality orientalization orientalize orientall orientally orientalogy orientals orientate orientation oriented orientize oriently orifacial orifice orifices orificial orificium oriflamme oriform origan origanized origanum origenical origenist origenistic origin originable original originalities originality originally originalness originals originarily originate originated originates originating origination originative originatively originator originators origine originem origines originies originist origins orignal orihon orihyperbola orillon orinasality orinase orinoco oriole orioles oriolidae oriolus oris orismologic orismological orison orisons oritur oriya orkney orkneyan orlando orle orlean orleanism orleanistic orleans orlet orleways orlewise ormer ormolu ormond orna ornament ornamental ornamentalism ornamentalist ornamentality ornamentalize ornamentally ornamentary ornamentation ornamented ornamenter ornamenting ornaments ornate ornately ornature orneriest orneriness ornery ornis orniscopic orniscopist ornithin ornithine ornithischian ornithobiographical ornithobiography ornithocephalic ornithocephalidae ornithocephalous ornithocephalus ornithocoprolite ornithodelph ornithodelphia ornithodelphian ornithodoros ornithogaea ornithogaean ornithogalum ornithogeographic ornithogeographical ornithoid ornitholitic ornithologically ornithologist ornithology ornithomancy ornithomantia ornithomantic ornithomimus ornithomyzous ornithopappi ornithophilist ornithophilite ornithophilous ornithophily ornithopoda ornithopter ornithoptera ornithopteris ornithorhynchidae ornithorhynchous ornithosaur ornithosaurian ornithoscelidan ornithoscopic ornithoscopist ornithoscopy ornithosis ornithotomical ornithotomist ornithotomy ornithotrophy ornithurae ornoite oroanal orobanchaceous orobathymetric orochon orocratic orodiagnosis orogenesis orogenetic orogenic orograph orographic orographical orography oroheliograph orohippus orohydrographic orohydrographical orohydrography orolingual orological orologist orology orometer orometric oromo oronoco oropharynx orotherapy orotinan orotund orotundity orous orphan orphanage orphanages orphaned orphange orphanhood orphanry orphans orphanship orpharion orpheist orphenadrine orpheonist orpheum orpheus orphic orphical orphicism orphize orphrey orphreyed orphreys orpine orpington orqins orr orrery orrhoid orrisroot orseille orsel orseller orsellic orsellinate orsellinic orson ort ortalid ortalidae ortega orter orthagoriscus orthal orthant orthian orthic orthicon orthid orthidae orthis orthite orthitic orthoamino orthoaminodiphenylmethane orthoaminophenylpropiolic orthoarsenite orthoaxis orthobenzoquinone orthobiosis orthoborate orthocarbonic orthocarpous orthocenter orthocephalic orthocephaly orthoceracone orthoceratite orthoceratitic orthochlorite orthochromatize orthoclase orthoclasite orthoclastic orthocoumaric orthocresol orthocymene orthodiagram orthodiagraph orthodiagraphic orthodiagraphy orthodiamines orthodiazin orthodontia orthodontic orthodontics orthodontist orthodox orthodoxal orthodoxality orthodoxally orthodoxian orthodoxical orthodoxist orthodoxly orthodoxness orthodoxy orthodromic orthodromics orthodromy orthoepic orthoepically orthoepistic orthoepy orthoformic orthogenetic orthogenic orthognathic orthognathism orthognathous orthognathus orthognathy orthogneiss orthogonal orthogonality orthogonally orthogonial orthograde orthogranite orthograph orthographer orthographic orthographical orthographist orthographize orthography orthohydrogen orthohydroxybenzoic orthologer orthologian orthological orthometopic orthometry orthonitroaniline orthonormal orthopaedic orthopath orthopathic orthopathically orthopathy orthopedic orthopedical orthopedics orthopedy orthophenylene orthophony orthophoric orthophosphate orthophosphoric orthophyre orthopi orthopinacoid orthoplastic orthoplumbate orthopnea orthopneic orthopod orthopoda orthopraxis orthopraxy orthopsychiatric orthopsychiatrist orthopsychiatry orthopter orthoptera orthopterist orthopteroid orthopteroidea orthopterological orthopterologist orthopterology orthopterous orthoptist orthopyramid orthoquinone orthorhombic orthorrhapha orthorrhaphous orthorrhaphy orthose orthosemidin orthosilicate orthosis orthosomatic orthostatic orthostichous orthostichy orthosubstituted orthosymmetric orthosymmetrical orthosymmetrically orthotactic orthotectic orthotic orthotolidin orthotolidine orthotoluic orthotoluidine orthotomous orthotone orthotonesis orthotropal orthotropism orthotropous orthotropy orthotype orthotypous orthovanadic orthoveratraldehyde orthoveratric orthoxazin orthoxazine orthoxylene orthron ortiga ortive ortrud ortstein ortu ortygan ortygian ortyginae ortygine orunchun orvietan orvieto orville orviot ory orycteropodidae orycteropus oryctics oryctognostical oryctognostically oryctognosy oryctolagus oryssidae oryx oryzenin oryzomys oryzorictinae osage osaka osamin osamine osc oscan oscarellidae oscheal oscheocarcinoma oscheocele oscheolith oscheoma oscheoncus oscheoplasty oschophoria oscillance oscillant oscillariaceous oscillate oscillated oscillating oscillation oscillations oscillative oscillatively oscillator oscillatoria oscillatoriaceae oscillatoriaceous oscillatorian oscillatory oscillogram oscillographic oscillography oscillometer oscillometric oscillometry oscilloscope oscin oscines oscinian oscinidae oscitance oscitation oscnode osculant osculate osculation osculatory osculatrix oscule osculum ose osela oser osha oshac oshkosh oside osier osiered osiers osiery osirian osiride osirification osirism osler oslo osmanie osmanli osmanthus osmate osmatic osmatism osmazomatic osmazomatous osmazome osmeridae osmerus osmesis osmeterium osmetic osmic osmidrosis osmious osmium osmodysphoria osmograph osmolagnia osmometer osmometry osmond osmondite osmophore osmorhiza osmoscope osmose osmotherapy osmotic osmotically osmunda osmundaceous osnaburg osoberry osone osophy osotriazole osphradium osphresiolagnia osphresiologic osphresiology osphresiometer osphresiometry osphresiophilia osphretic osphyalgia osphyalgic osphyitis osprey ossa ossal ossarium ossature ossein ossements osseoalbuminoid osseoaponeurotic osseocartilaginous osseous osseously osservauoni osset ossetine ossetish osseus ossian ossianesque ossianic ossianism ossianize ossicular ossiculate ossicule ossiculectomy ossiculotomy ossiferous ossific ossification ossified ossifluence ossifluent ossifrage ossify ossuarium ossuary ossypite ostalgia ostariophysan ostariophysi ostariophysous osteanabrosis osteanagenesis ostearthritis ostearthrotomy osteectomy osteectopia osteectopy osteichthyes osteitic ostemia ostempyesis ostensibility ostensible ostensibly ostensive ostensively ostensorium ostensory ostent ostentate ostentation ostentatious ostentatiously ostentous osteo osteoaneurysm osteoarthritis osteoarthrosis osteoarthrotomy osteoblastoma osteoblasts osteocachetic osteocartilaginous osteocephaloma osteochondritis osteochondropathy osteochondrophyte osteochondrosarcoma osteochondrosis osteochondrous osteoclasis osteoclastic osteoclasts osteoclasty osteocolla osteocystoma osteoderm osteodermal osteodermatous osteodermis osteodiastasis osteodynia osteodystrophy osteoencephaloma osteoepiphysis osteofibroma osteogen osteogenesis osteogenetic osteogenic osteogenous osteoglossidae osteoglossoid osteoglossum osteographer osteoid osteolepidae osteolite osteologically osteologist osteology osteolysis osteolytic osteoma osteomalacia osteomancy osteomanty osteomatoid osteomere osteometric osteometry osteoncus osteonecrosis osteopaedion osteopath osteopathic osteopathically osteopathy osteoperiosteal osteopetrosis osteophage osteophlebitis osteophone osteophyma osteoplast osteoporosis osteoporotic osteorrhaphy osteosarcoma osteosclerosis osteoscope osteosis osteosteatoma osteostixis osteostomatous osteostraci osteosynovitis osteotome osteotomy osteotribe osteotrite osterreichischen ostial ostiary ostiate ostiolate ostiole ostitis ostium ostler ostleress ostmannic ostmen ostomy ostracean ostraceous ostraciidae ostracine ostracioid ostracion ostracise ostracism ostracizable ostracization ostracized ostracod ostracoda ostracoderm ostracodermi ostracodous ostracoid ostracoidea ostracon ostracophore ostracophorous ostracum ostraite ostrakon ostrea ostreger ostreicultural ostreiculture ostreiform ostreoid ostreophage ostreophagist ostrich ostriches ostrichlike ostrogothian ostrogothic ostrsankische ostrya ostyak oswald oswegan ota otacousticon otaheitan otalgia otalgic otalgy otarian otariinae otarioid otate oth othelcosis othello othematoma otheoscope other otherest othergates otherhow otherism otherist otherness others othertime otherways otherwhence otherwhere otherwhereness otherwheres otherwhile otherwhither otherwise otherworld otherworldly otherworldness othmany othonna othygroma oti otiant otiatry otic oticodinia otidae otidine otidiphaps otiorhynchinae otiose otiosely otioseness otiosity otitic otitis oto otoantritis otocephaly otocerebritis otocleisis otoconial otoconite otocranial otocyon otocyst otocystic otodynia otodynic otogenic otogenous otographical otography otogyps otohemineurasthenia otolaryngology otolite otolithidae otolithus otolitic otological otologist otology otomaco otomassage otomi otomian otomitlan otomucormycosis otomyces otomycosis otoneuralgia otopharyngeal otophone otopiesis otoplasty otopyorrhea otopyosis otorhinolaryngologic otorhinolaryngology otorrhea otorrhoea otosalpinx otosclerosis otoscope otoscopy otosis otosteal otosteon ototomy otozoum ott ottajanite ottavarima ottawa otter otterhound otters otterskin ottingkar otto ottoman ottomanean ottomanic ottomanism ottomanlike ottomans ottrelife ottweilian otuquian oturia otus ouabaio ouabe ouachitite ouagadougou ouakari ouananiche oubliette ouch oudemian oudenarde ouenite ouerpresse ouf ough ought oughta oughtenter oughter oughtest oughtn't oughtnt oughts ouija ouistiti ouk oukia oulap ould oun ounce ounces ounds ouphish our ourang oured ourlined ouroub ourouparia ours ourself ourselves ous oust ousted ousting out outa outact outage outambush outang outangs outargue outask outback outbake outbalance outban outbanter outbar outbark outbeam outbear outbeggar outbelch outbellow outbetter outbid outbirth outblaze outbleat outbless outbloom outblot outblow outblown outblunder outbluster outbook outborough outbound outbounds outbox outbrag outbranch outbranching outbrave outbray outbreak outbreaker outbreaking outbreaks outbreath outbreathe outbred outbreeding outbribe outbridge outbring outbroke outbrother outbuilding outbuildings outbulge outbulk outburst outbursts outbustle outbuy outbuzz outby outcaper outcarol outcase outcast outcasting outcasts outcavil outchamber outcharm outchatter outcheat outchide outcity outclamor outclass outclassed outcome outcomer outcomes outcoming outcompass outcompliment outcountry outcrawl outcricket outcries outcrop outcropper outcroppings outcrops outcross outcrossing outcrow outcrowd outcry outcure outcurse outcut outdaciousness outdance outdare outdares outdated outdazzle outdevil outdid outdistance outdistanced outdistrict outdo outdoer outdoing outdone outdoor outdoorness outdoors outdraft outdraw outdream outdrink outdwell outdweller outdwelling outeat outecho outed outedge outen outer outerly outermost outerness outerwear outeye outfable outface outfall outfame outfangthief outfast outfawn outfeat outfeeding outfence outfiction outfield outfielder outfieldsman outfight outfighter outfigure outfit outfitted outfitting outflank outflanked outflanker outflanking outflare outflash outflatter outfling outfloat outflourish outflow outflowing outflunky outflush outflux outfold outfool outfoot outfort outfront outfrown outgabble outgain outgallop outgamble outgarth outgas outgate outgaze outgeneral outgiving outglare outgleam outglitter outgloom outgo outgoes outgoing outgoingness outgoings outgreen outgrew outgrow outgrowing outgrown outgrows outgrowth outgrowths outgun outgush outhasten outhaul outhauler outhear outheart outhector outheel outher outhiss outhit outhold outhorror outhouse outhouses outhousing outhowl outhue outhunt outhurl outhut outhyperbolize outimage outing outings outinvent outish outissue outjetting outjinx outjockey outjuggle outjump outjut outkick outking outkiss outknave outlabor outlaid outlance outland outlander outlanders outlandish outlandishly outlandishness outlands outlash outlast outlasted outlasting outlaugh outlaunch outlaw outlawed outlawry outlaws outlay outlayer outlays outlean outleap outlegend outlengthen outler outlet outlets outlie outlier outliers outlimb outlimn outline outlined outliner outlines outlinger outlining outlip outlipped outlive outlived outliving outllow outlook outlooks outlord outlung outluster outly outlying outmagic outmaneuver outmanoeuvred outmantle outmarch outmarched outmarriage outmarry outmaster outmastered outmatched outmate outmeasure outmerchant outmiracle outmode outmoded outmost outmove outname outness outnight outnook outnumber outnumbered outnumbering outpace outpaced outpage outpaint outparagon outparish outpart outpass outpassed outpatients outpeal outpension outpensioner outpeople outpipe outpitch outpity outplace outplayed outplease outplod outplot outpocketing outpoint outpoise outpoison outpoll outpomp outpopulate outporch outport outporter outpost outposts outpouching outpouchings outpour outpourer outpouring outpourings outpraise outpray outpreach outpreen outprodigy outproduce outpromise outpry outpupil outpurl outpush output outputter outquaff outquestion outquibble outquote outrace outrage outraged outrageous outrageously outrageousness outrageproof outrager outrages outraging outrail outran outrance outrange outrank outranked outrant outrate outraught outrave outre outreached outreason outreckon outredden outreign outrelief outreness outrhyme outrick outrider outriders outriding outrig outrigger outriggered outriggerless outright outring outrival outroads outroar outrogue outromance outroot outrove outrow outroyal outrun outrunner outrunning outruns outrush outs outsail outsailing outsaint outsally outsatisfy outsavor outsay outscent outscold outscore outscour outscream outsearch outsee outseek outsell outsentry outsert outservant outset outsetting outsettler outshadow outshake outshame outsheathe outshine outshiner outshining outshone outshot outshoulder outshout outshow outshower outshut outside outsided outsidee outsideness outsider outsiders outsides outsigh outsin outsit outsize outsized outskirt outskirter outskirts outslang outsleep outslide outslink outsmart outsmell outsnatch outsnore outsoar outsoared outsole outsoler outsonnet outsophisticate outsparkle outsped outspeech outspeed outspell outspill outspit outsplendor outspoke outspoken outspokenness outsport outspout outspread outspreading outsprint outspurn outspurt outstagger outstaid outstair outstander outstanding outstandingness outstare outstart outstate outstation outstatistic outstay outstayed outstaying outsteal outstep outstepped outstink outstorm outstrain outstream outstreet outstretched outstretcher outstretches outstretching outstrike outstrip outstripped outstripping outstrips outstript outstrive outstrut outstudy outstunt outsuck outsucken outsuffer outsulk outsum outswagger outswear outsweep outsweeping outsweeten outswift outswim outswindle outswirl outtaken outtalent outtalk outtaste outtease outtell outthreaten outthrob outthrow outthrust outthruster outthwack outtire outtoil outtrade outtrail outtravel outtrot outturn outturned outtyrannize outvalue outvalued outvanish outvaunt outvictor outvie outvied outvier outvigil outvillain outvociferate outvote outvoted outvoter outwait outwake outwale outwalk outwall outwallop outwander outwar outwarble outward outwardly outwardmost outwards outwash outwaste outwatch outwater outwearied outweep outweigh outweighed outweighs outweight outwent outwhirl outwick outwind outwindow outwish outwit outwith outwittal outwitted outwitting outwoe outwood outwore outworking outworld outworn outworth outwrest outwring outwrite outwrought outyard outyell outzany ouvrages ouvre ouvreuse ouzel ouzo ova ovaherero oval ovalescent ovaliform ovalish ovalize ovally ovalness ovalwise ovambo ovampo ovangangela ovant ovarial ovaries ovarin ovarioabdominal ovariocele ovariocentesis ovariocyesis ovariodysneuria ovariole ovariostomy ovariotomy ovariotubal ovarious ovary ovately ovation ovational ovatoacuminate ovatocordate ovatocylindraceous ovatodeltoid ovatoellipsoidal ovatoglobose ovatolanceolate ovatoorbicular ovatopyriform ovatoquadrangular ovatoserrate ovatotriangular oven ovenful ovenlike ovenly ovenman ovenpeel ovens ovenstone ovenware ovenwise over overable overabstain overabundance overabundant overabundantly overabuse overaccentuate overaccumulation overaccuracy overaccurate overacting overaction overactiveness overactivity overaddiction overadvance overadvice overaffect overaffirmation overafflict overage overaggravate overaggravation overagitate overagonize overall overalled overalls overambitious overambling overangelic overannotate overanswer overanxiety overanxious overanxiously overappareled overappraisal overappraise overapprehended overapprehensive overapt overarch overarched overarches overarching overargue overarm overartificiality overassert overassertive overassertively overassessment overassumption overattention overawe overawed overawes overawful overawing overawn overawning overbake overbalance overbalanced overbalances overbalm overbanded overbandy overbank overbarren overbase overbaseness overbashful overbashfully overbashfulness overbattle overbear overbearer overbearing overbearingly overbearingness overbeating overbeetling overbend overbepatched overberg overbet overbias overbid overbig overbigness overbillow overbit overbite overbitten overbitterly overbitterness overblack overblame overblaze overblessed overblind overblithe overbloom overblouse overblow overblowing overblown overboard overboast overboastful overbody overboil overbold overboldness overbook overbookish overbooming overborne overborrow overbound overbounteous overbounteousness overbow overbowed overbrace overbragging overbravely overbreathe overbred overbreed overbridge overbrightly overbrilliancy overbrilliant overbrilliantly overbrim overbrimming overbrimmingly overbrims overbroaden overbroil overbrood overbrowse overbrush overbrutal overbrutally overbuild overbulky overbumptious overburden overburdened overburdeningly overburdensome overburned overburningly overburnt overburst overburthen overburthening overbusily overbusy overbuy overby overcame overcanny overcanopy overcapable overcapacity overcape overcapitalization overcapitalize overcaptious overcaptiously overcare overcareful overcarefully overcareless overcarelessly overcarking overcarry overcast overcasual overcasually overcaution overcautious overcautiously overcentralize overcertification overchafe overchannel overcharge overcharged overchargement overcharger overcharging overcharitable overcharitably overchase overcheap overcheaply overchief overchildish overchildishness overchill overchlorinate overchrome overcirculate overcircumspect overcircumspection overcivil overcivility overcivilize overclaim overclamor overclasp overclean overcleanly overcleanness overclever overcleverness overcloak overclog overclosely overcloseness overclothe overclothes overcloud overclouded overcloy overcluster overcoached overcoat overcoated overcoating overcoats overcoldly overcollar overcolor overcome overcomer overcomes overcometh overcoming overcommend overcommonly overcommonness overcompensate overcompensation overcompetitive overcomplacency overcomplacent overcomplacently overcomplex overcomplexity overcompliant overcompound overconcentrate overconcentration overcondensation overcondense overconfute overconscientious overconscious overconsciously overconsciousness overconservatism overconservatively overconsiderately overconsumption overcontract overcontraction overcontribute overcontribution overcool overcoolly overcopious overcopiously overcopiousness overcorned overcorruption overcorruptly overcostly overcount overcourteous overcover overcovetous overcovetousness overcow overcram overcredit overcredulity overcredulously overcreep overcritical overcritically overcriticism overcriticize overcrop overcross overcrow overcrowd overcrowded overcrowdedly overcrowdedness overcrust overcull overcultivate overcultured overcumber overcunningly overcunningness overcured overcurious overcuriousness overcurl overcurrency overcurrent overcurtain overcustom overcut overcutter overcutting overdaintily overdamn overdance overdangle overdare overdaringly overdarken overdazed overdear overdearly overdearness overdecoration overdecorative overdeeming overdeep overdeepen overdelicacy overdelicately overdelicious overdelighted overdelightedly overdemand overdemocracy overdepress overdesire overdesirous overdesirousness overdestructive overdestructively overdestructiveness overdetermined overdevelop overdeveloped overdevoted overdevotedly overdevotion overdid overdiffuse overdiffusely overdiffuseness overdigest overdignifiedly overdignifiedness overdignity overdiligence overdiligent overdilute overdischarge overdiscipline overdistance overdistantly overdistantness overdistention overdiversely overdiversification overdiversify overdo overdoctrinize overdoer overdoes overdogmatic overdogmatically overdogmatism overdoing overdome overdominate overdone overdoor overdosage overdose overdoses overdosing overdoze overdraft overdrafts overdramatic overdraw overdrawer overdream overdrench overdress overdressed overdrifted overdrink overdrip overdrive overdriven overdroop overdrowsed overdry overdubbed overdue overdunged overdure overdye overeager overearnest overearnestly overearnestness overeasily overeaten overeater overeating overedit overeducated overeffort overelaborate overelaboration overelate overelegance overelegant overelegantly overelliptical overembellish overembellishment overembroider overemotional overemotionality overemphasize overemphasized overemphatic overemphatically overemphaticness overempired overenthusiasm overenthusiastic overentreat overestimate overestimated overestimating overestimation overexcelling overexcitability overexcitable overexcitably overexcite overexercise overexercising overexert overexerted overexertedly overexertedness overexpand overexpansive overexpectantly overexpert overexplain overexplanation overexpose overexposure overexpress overexquisite overextend overextensive overextreme overexuberant overeye overeyebrowed overfacile overfacilely overfactious overfactiousness overfagged overfaint overfaith overfaithful overfall overfamiliarity overfamous overfanciful overfancy overfar overfast overfastidious overfastidiously overfatten overfavor overfavorable overfearfulness overfeast overfeatured overfed overfee overfeed overfellowlike overfelon overfeminine overfeminize overfertility overfew overfierce overfierceness overfile overfill overfilled overfilling overfilm overfinished overfish overfit overfitted overfix overflatten overfleece overfleshed overflexion overfling overfloat overflog overflorid overfloridness overflow overflowed overflower overflowing overflowingly overflown overflows overfluency overfluent overflush overflutter overfly overfondle overfondly overfoolish overfoolishly overfoolishness overforce overformed overforwardly overforwardness overfoully overfrail overfrailty overfranchised overfrank overfraught overfree overfreedom overfreely overfreight overfrequency overfrequent overfrequently overfret overfrieze overfrighted overfrighten overfroth overfrown overfrozen overfull overfullness overfunctioning overgalled overgamble overgang overgarment overgaze overgeneralize overgenerous overgeniality overgently overget overgild overgladly overglance overglass overgloom overgloominess overgloomy overglorious overgloss overglut overgo overgodliness overgodly overgood overgorge overgovern overgrace overgracious overgrade overgrasping overgrateful overgratification overgratitude overgraze overgreasiness overgreasy overgreat overgreed overgreediness overgreedy overgrew overgrieve overgross overgrossly overgrossness overground overgrow overgrowing overgrown overgrowth overgrowths overguilty overhair overhalf overhand overhands overhang overhanging overhangs overhappy overharass overhard overharden overhardness overhardy overharsh overhasten overhastiness overhasty overhate overhatted overhaughty overhaul overhauled overhauling overhead overheadman overheap overhear overheard overhearer overhearing overhears overheartily overhearty overheat overheated overheatedly overheating overheats overheave overheaviness overheight overheinous overheld overhelp overhelpful overhigh overhighly overhill overhit overholiness overhollow overhomeliness overhonest overhonestly overhonesty overhot overhotly overhour overhouse overhover overhuge overhuman overhumanity overhumanize overhung overhunt overhurriedly overhusk overidealism overidle overidly overillustration overimaginative overimaginativeness overimitate overimitation overimitative overimitatively overimpressible overinclinable overinclined overincurious overindividualism overindividualistic overindulge overindulgence overindulgently overindustrialization overinflate overinflation overinfluential overink overinsist overinsistence overinsistent overinsistently overinsolence overinsolent overinstruct overinsurance overinsure overintellectual overintellectuality overintense overintensely overintensity overinterested overinterestedness overinventoried overinvest overinvestment overiodize overirrigate overirrigation overissue overjade overjaded overjawed overjealous overjealously overjocular overjoy overjoyed overjoyful overjudge overjudgment overjudicious overjump overjutting overkeen overkeenness overkind overkindly overking overknee overknowing overlace overlactation overlade overladen overlaid overlain overland overlander overlanders overlanguaged overlap overlapped overlapping overlaps overlard overlarge overlargely overlargeness overlast overlate overlaudation overlaunch overlavishly overlax overlaxative overlaxly overlaxness overlay overlaying overlays overlead overleaf overlean overleaped overleaps overlearnedness overleather overleave overleaven overleer overlegislation overleisured overlength overlettered overlewd overlewdly overlewdness overliberality overliberally overlicentious overlie overlier overlies overlighted overlightheaded overlightly overlightsome overliking overling overlinked overlip overlipping overlisten overliterary overlive overliveliness overlively overliver overload overloaded overloading overloads overloath overlocker overlofty overlogically overlong overlook overlooked overlooking overlooks overloose overlord overlords overlordship overloud overloup overlover overloyal overlubricatio overluscious overlustiness overlusty overluxuriance overly overlying overmagnify overmagnitude overmajority overmalapert overman overmantel overmantle overmany overmark overmarl overmast overmaster overmastered overmasterful overmasterfully overmasterfulness overmastering overmasters overmatch overmatter overmaturity overmeanly overmeddle overmedication overmeek overmeekness overmellow overmellowness overmelt overmerciful overmercifulness overmerit overmerrily overmerry overmettled overmickle overmighty overmild overmill overminuteness overmix overmoccasin overmodestly overmodulation overmoist overmoisten overmoisture overmortgage overmoss overmost overmotor overmounts overmourn overmournful overmuch overmuchness overmultiplication overmultiply overmultitude overnarrow overnarrowly overnationalization overnear overneat overneatness overneglect overnegligent overnervousness overnew overnice overnight overnimble overnotable overnoveled overnumerous overnumerousness overnurse overobedience overobedient overobediently overobese overoblige overobsequiously overobsequiousness overoffend overofficered overofficious overorder overpained overpainful overpainfully overpainfulness overpamper overpart overparted overpartially overparticular overpass overpassed overpasses overpassionate overpassionately overpassionateness overpast overpatient overpatriotic overpay overpayment overpending overpensive overpeople overperemptory overpersuasion overpert overpessimism overpick overpicture overpitch overpitched overpiteous overplaced overplain overplausible overplay overplease overplot overplow overplume overplump overpointed overpolemical overpolish overpopularity overpopularly overpopulate overpopulation overpopulous overpopulousness overpositive overpotential overpour overpower overpowered overpowerful overpowering overpoweringly overpoweringness overpowers overprecise overpreciseness overpreface overpreoccupation overpreoccupy overpressure overpresumption overpresumptuous overprizer overproduce overproduction overproductive overproficient overprolix overprominence overprominently overprompt overpromptly overpromptness overprone overproneness overpronounced overproof overproportion overproportionated overproportionately overproportioned overprosperity overprosperous overprotecting overprotection overprotraction overproud overprove overprovender overprovident overprovision overprovocation overprovoke overprune overpublic overpuissant overpunish overpunishment overquantity overquarter overquell overquick overquickly overquietness overrace overrack overrake overran overrange overrank overrankness overrapture overrapturize overrashly overrashness overrate overrated overrates overrating overrational overrationalize overreach overreached overreacher overreaching overreachingly overreact overreacts overread overreader overreadily overrealistic overreckon overrefine overrefined overreflection overreflective overregister overregistration overregularity overregularly overregulate overregulation overrelax overreliant overreligion overreligious overremiss overremissly overrennet overreplete overrepletion overrepresent overrepresentation overresolute overresolutely overrestore overrestrain overretention overreward overriches overrichness overridden override overriding overrigged overrighteously overrighteousness overrigid overrigidity overrigidly overrim overriot overripe overripely overripen overripeness overroast overroll overroof overrooted overrough overroughly overroyal overrudeness overruff overrule overruled overruler overrules overruling overrun overrunning overrunningly overrush overrust oversad oversadly oversadness oversaid oversale oversaliva oversand oversanded oversanguine oversanguinely oversapless oversated oversatisfy oversaturate oversaturation oversauce oversauciness oversave overscare overscatter overscented oversceptical overscepticism overscored overscour overscream overscribble overscrub overscruple overscrupulously overscutched oversea overseal overseam overseamer overseas overseason overseasoned oversecurity oversedation oversee overseeing overseen overseer overseerism overseers overseership oversensible oversensibly oversensitive oversensitively oversensitiveness oversententious oversentimentalism oversentimentalize oversentimentally overseriously overseriousness overservice overset oversetter oversetting oversettle oversettled oversevere overseverity oversew overshade overshadow overshadowed overshadower overshadowing overshadowingly overshadowment overshadows overshake oversharp overshave oversheet overshelving overshepherd overshine overshirt overshoe overshoes overshoot overshort overshorten overshortly overshot overshoulder overshrink oversick overside oversight oversights oversilence oversimple oversimplicity oversimplification oversimplify oversimply oversized oversizes overskip overskipper overskirt overslack overslavish overslavishly oversleep oversleeping oversleeve overslept overslight overslope overslow overslowly overslowness overslur oversmall oversman oversmooth oversnow oversoak oversoar oversoft oversoftness oversolemn oversolicitous oversoothing oversophisticated oversophistication oversorrow oversot oversoul oversound oversour oversourness oversow overspacious overspaciousness oversparing oversparingly oversparingness oversparred overspeak overspecialization overspecialize overspeculate overspeculative overspeed overspeedily overspend overspill overspilling overspin oversplash overspread overspreading overspreads overspring oversprinkle oversqueak oversqueamish oversqueamishness overstain overstale overstalled overstand overstate overstated overstately overstatement overstates overstay overstayal oversteadfast oversteady overstep overstepped overstepping oversteps overstiff overstimulate overstimulation overstir overstitch overstock overstoop overstoping overstore overstory overstout overstowage overstowed overstrain overstrained overstrait overstraitly overstraitness overstream overstrength overstress overstretching overstrict overstrictly overstride overstrident overstridently overstriving overstrong overstrongly overstrung overstud overstudied overstudious overstudiously overstudiousness overstudy overstuff oversublime oversubscribe oversubscriber oversubscription oversubtle oversufficient oversufficiently oversure oversurge oversurviving oversusceptible oversuspicious overswarm oversweated oversweep oversweeten oversweetness overswell overswift overswim overswimmer overswing overswirling oversystematic oversystematize overt overtake overtaken overtakes overtaking overtalk overtalkative overtame overtameness overtangled overtapped overtarry overtart overtax overtaxation overtaxed overtaxing overteach overtechnicality overtedious overtediously overteem overtell overtenacious overtender overtenderly overtenderness overtense overtenseness overtension overterrible overtest overthin overthought overthoughtful overthrew overthriftily overthrifty overthrong overthrow overthrowable overthrowal overthrower overthroweth overthrowing overthrown overthrows overthrust overthrusting overthwartness overthwartways overthwartwise overtide overtightly overtill overtimbered overtime overtimer overtimorous overtimorously overtimorousness overtip overtipple overtire overtired overtitle overtly overtness overtoe overtoil overtoise overtone overtones overtongued overtook overtop overtopped overtopping overtops overtorture overtrack overtrade overtrader overtravel overtread overtreatment overtrouble overtrue overtrump overtrust overtruthfully overtumble overture overtures overturn overturnable overturned overturner overturning overturns overtutor overtwist overtype overuberous overunsuitable overurbanization overuse overused overusing overusual overusually overvaliant overvaluable overvalue overvehemence overvehement overveil overventilate overventilation overventurous overvoltage overvote overwages overwake overwalk overward overwasted overwatch overwatcher overwater overwave overway overwealth overweaponed overwear overweather overweb overween overweener overweening overweeningly overweeningness overweep overweigh overweightage overweighted overweighting overwell overwelt overwet overwetness overwheel overwhelm overwhelmed overwhelmer overwhelming overwhelmingly overwhelmingness overwhelms overwhipped overwhisper overwholesome overwide overwild overwilling overwillingly overwily overwin overwind overwing overwinter overwisdom overwise overwithered overwoman overwomanize overwomanly overwonderful overwood overwooded overword overwork overworked overworks overworn overworship overwound overwove overwoven overwrap overwrested overwrestle overwrite overwrought overyear overzeal overzealous overzealousness ovest ovey ovibos ovibovinae ovibovine ovicapsular ovicell ovicellular ovicidal ovicide oviculated oviculum ovicyst ovicystic ovidae ovidian oviducal oviduct oviducts oviferous ovification ovigenous ovigerous ovile ovinae ovine ovipara oviparal oviparity oviparous oviparousness oviposit oviposition ovis ovisac oviscapt ovism ovispermary ovistic ovivorous ovna ovocyte ovoelliptic ovogenesis ovogenous ovoidal ovolo ovological ovologist ovology ovolytic ovomucoid ovoplasmic ovopyriform ovorhomboid ovorhomboidal ovotestis ovovitellin ovovivipara ovoviviparism ovoviviparity ovoviviparous ovoviviparously ovoviviparousness ovula ovularian ovulate ovulating ovulation ovule ovuligerous ovulist ovum ovvero ow owd owe owed owelty owenia owenist owenite owenize owens ower owerby owergang owerloup owermuch owertaen owerword owes owest owght owing owk owl owld owlery owlet owlglass owling owlish owlishly owlishness owlism owls owlspiegle own owned owner owners ownership ownerships ownhood owning owns ownwayish owrelay owse owsen owt owyheeite ox oxacillin oxadiazole oxalacetic oxalaldehyde oxalamid oxalamide oxalan oxalate oxaldehyde oxalic oxalidaceous oxalis oxalite oxalodiacetic oxalonitril oxaluramide oxalurate oxalyl oxalylurea oxamethane oxamid oxamide oxammite oxan oxanate oxanic oxanilate oxanilic oxanilide oxazepam oxazole oxbane oxbird oxblood oxbrake oxcart oxcheek oxdiacetic oxdiazole oxea oxeate oxen oxeote oxetone oxeye oxfordian oxfordism oxgang oxgoad oxharrow oxhead oxheart oxhoft oxhouse oxidability oxidable oxidant oxidase oxidate oxidation oxidational oxidative oxidator oxide oxides oxidic oxidimetry oxidised oxidizability oxidizable oxidization oxidize oxidized oxidizement oxidizer oxidizes oxidizing oxidoreductase oxidoreduction oxidulated oximate oximation oxime oximes oxlike oxlip oxman oxmanship oxnard oxonic oxonium oxonolatry oxozone oxpecker oxreim oxtail oxtongue oxwort oxy oxyacanthine oxyacanthous oxyaena oxyaenidae oxyaldehyde oxyamine oxyanthraquinone oxyaster oxybaphus oxybenzaldehyde oxybenzene oxybenzoic oxybenzyl oxyblepsia oxybutynin oxybutyric oxycalcium oxycalorimeter oxycaproic oxycarbonate oxycellulose oxycephalous oxycephaly oxychloric oxychloride oxycholesterol oxychromatic oxychromatin oxychromatinic oxycinnamic oxycobaltammine oxycoccus oxycocet oxycodone oxycopaivic oxycoumarin oxycrate oxycyanide oxydactyl oxydendrum oxydiact oxydized oxydizing oxyesthesia oxyether oxyfatty oxygen oxygenate oxygenated oxygenator oxygenerator oxygenic oxygenicity oxygenium oxygenizable oxygenize oxygenizement oxygenizer oxygenous oxyhalide oxyhaloid oxyhemocyanin oxyhemoglobin oxyhexactine oxyhydrate oxyhydric oxyhydrogen oxyiodide oxyketone oxyl oxylabracidae oxylabrax oxyluminescence oxymargaric oxymetholone oxymethyl oxymuriatic oxynaphthoic oxynaphtoquinone oxyneurin oxyneurine oxynitrate oxyophitic oxyosphresia oxypetalous oxyphenbutazone oxyphenol oxyphenyl oxyphilic oxyphilous oxyphosphate oxyphthalic oxyphyte oxypicric oxypolis oxyprotsulphonic oxypurine oxypyrimidines oxyquinaseptol oxyquinoline oxyquinone oxyrhine oxyrhinous oxyrhynchus oxyrrhyncha oxysalicylic oxysalt oxystearic oxystomata oxystomatous oxystome oxyterpene oxytocia oxytocic oxytocin oxytocous oxytoluene oxytoluic oxytone oxytonesis oxytonical oxytonize oxytropis oxyuricide oxyuridae oxywelding oyana oyapock oyer oyly oyster oysterage oysterbird oysterer oystergreen oysterhood oysterhouse oysterish oysterishness oysterlike oysterous oysterroot oysters oystershell oysterwife ozark ozarkite ozena ozias ozocerite ozokerit ozokerite ozonation ozonator ozone ozonic ozonide ozonification ozonify ozonization ozonize ozonizer ozonometer ozonometry ozonoscope ozonoscopic ozonous paar paauw paba pabble pabouch pabular pabulary pabulous pabulum pac pacable pacaguara pacate pacative pacay pacaya paccanarist pacchionian pace paceboard paced pacemake pacemaker pacemakers pacemaking pacer paces pacesetting pachak pachisi pachnolite pachometer pachons pachyacria pachyaemia pachycarpous pachycephalia pachycephalic pachycephalous pachychilia pachycholia pachychymia pachydactyl pachydactylous pachydactyly pachyderm pachyderma pachydermal pachydermata pachydermatocele pachydermatous pachydermatously pachydermia pachydermial pachydermic pachydermoid pachyglossal pachyglossate pachyglossia pachyglossous pachyhaemia pachyhaemic pachyhematous pachyhymenia pachyhymenic pachylophus pachyma pachymenic pachymeningitic pachymeningitis pachymeninx pachynathous pachynema pachynsis pachyntic pachyotous pachyperitonitis pachyphyllous pachypleuritic pachypodous pachypterous pachyrhizus pachysandra pachysaurian pachysomia pachysomous pachystichous pachystima pachytene pachytrichous pachytylus pachyvaginitis pacifiable pacific pacifical pacifically pacificate pacification pacificator pacificism pacificity pacified pacifier pacifism pacifist pacifistic pacifistically pacify pacifying pacifyingly pacing pacinian pack packable package packaged packages packard packbuilder packcloth packed packer packers packet packets packhorse packing packly packman packs packsack packsaddle packstaff packwaller packware paco pacolet pacouryuva pact pactolian pactolus pad padcloth padda padded padding paddings paddle paddlecock paddled paddlelike paddler paddlers paddles paddlewood paddling paddock paddocks paddockstone paddy paddyism paddymelon paddywhack padella padge padiament padiamentary padina padishah padlike padlock padlocked padmelon padouk padpiece padraig padre padroadist padroado padrona padrone pads padstone paduanism paduasoy padus paean paeanism paeanize paeans paedarchy paedatrophia paedatrophy paediatry paedogenesis paedometer paedometrical paedomorphic paedomorphism paedonymic paedonymy paedopsychologist paedotribe paedotrophic paegle paelignian paenula paeon paeoniaceae paeonian paeonic paetrick paga pagan paganalia paganic paganical paganically paganism paganist paganistic paganity paganization paganize paganizing paganly paganry pagans page pageant pageanted pageanteer pageantry pageants pageboy paged pageful pagehood pageless pagelike pages pageship pagi pagina paginal paginary paginate pagination pagiopod pagiopoda pagoda pagodalike pagodas pagrus paguma pagurian pagurid paguridae paguridea pagurine pagurinea paguroid paguroidea pagurus pagus pah paha pahareen paharia pahlavi paho pahoehoe pahouin pahutan paiconeca paid paideutic paidological paidology paigle paik pail pailful pailfuls paillasse paillette pailletted pailou pails pain paine pained painful painfullest painfully painfulness paining painingly painkillers painkilling painless painlessly painlessness pains painstaking painstakingly painsworthy paint paintability paintableness paintably paintbrush painted paintedness painter painterish painterlike painters painting paintings paintless paintpot paintress paintrix paints painty paip pair paired pairedness pairing pairrpose pairs pairwise pais paisa paisanite paisley paiwari paix paizah pajahuello pajama pajamaed pajamas pajock pakeha pakhpuluk pakistani paktong pal pala palace palaced palacelike palaceous palaces palacewards paladin paladr palaeanthropic palaeechini palaeechinoidea palaeechinoidean palaeethnologic palaeethnology palaeic palaeichthyan palaeichthyic palaemonid palaemonoid palaeoalchemical palaeoanthropic palaeoanthropography palaeoanthropology palaeobiogeography palaeobiologist palaeobotanic palaeobotanist palaeobotany palaeocarida palaeoceanography palaeocene palaeochorology palaeoclimatic palaeoclimatology palaeoconcha palaeocosmic palaeocrystal palaeocrystallic palaeocrystalline palaeodendrologic palaeodendrological palaeodictyoptera palaeodictyopteran palaeodictyopteron palaeoencephalon palaeoeremology palaeoethnologic palaeoethnological palaeofauna palaeogaea palaeogenesis palaeogenetic palaeogeographic palaeogeography palaeoglyph palaeognathae palaeognathous palaeograph palaeographer palaeographic palaeographist palaeography palaeoherpetology palaeohistology palaeolithic palaeolithical palaeolithist palaeolithoid palaeoliths palaeolithy palaeological palaeologist palaeology palaeometallic palaeometeorological palaeometeorology palaeonemertea palaeonemertean palaeonemertine palaeonemertinea palaeonemertini palaeoniscid palaeoniscidae palaeoniscoid palaeoniscum palaeontographic palaeontography palaeontological palaeopedology palaeophis palaeophysiography palaeophysiology palaeophytic palaeophytological palaeophytologist palaeophytology palaeoplain palaeopotamology palaeopsychic palaeoptychology palaeornis palaeornithinae palaeornithological palaeosaurus palaeosophy palaeospondylus palaeostracan palaeostriatal palaeostylic palaeostyly palaeothalamus palaeothentes palaeothentidae palaeothere palaeotheriidae palaeotherioid palaeotype palaeotypic palaeotypical palaeotypically palaeotypographical palaeotypographist palaeozoic palaestra palaestrian palaestric palaetiological palaetiologist palaetiology palafitte palagonite palagonitic palaic palaiotype palaite palama palamate palamedea palamedean palamitism palampore palander palanka palankeen palanquin palanquins palapalai palapteryx palar palas palatable palatableness palatal palatalism palatalization palatalize palatalized palatalizing palate palatefulness palatelike palates palatia palatial palatially palatialness palatic palatinal palatine palatineship palatinite palatist palatitis palatoglossal palatoglossus palatognathous palatogram palatograph palatography palatonasal palatopharyngeus palatoplasty palatoplegia palatoquadrate palatorrhaphy palatua palau palaung palaver palaverer palavering palaverment palay palazzo palberry palch palchs pale paleaceous paleanthropic palebelly palebuck palechinoid paled paledness paleentomology paleethnographer paleethnologic paleethnological paleethnologist paleethnology paleface paleichthyologic paleichthyologist paleichthyology paleiform palely paleman paleness palenque paleoalchemical paleoanthropic paleoanthropography paleoanthropological paleoanthropologist paleoanthropology paleoatavism paleoatavistic paleobiogeography paleobiologist paleobotanic paleobotanical paleobotanically paleobotany paleoceanography paleocene paleochorology paleoclimatologist paleoclimatology paleoconcha paleocosmology paleocrystallic paleocrystalline paleocrystic paleocyclic paleodendrological paleodendrologically paleodendrologist paleoecologist paleoencephalon paleoeremology paleoethnic paleoethnography paleoethnologic paleoethnological paleoethnologist paleoethnology paleofauna paleogene paleogenesis paleogenetic paleogeographic paleoglaciology paleoglyph paleograph paleographical paleographist paleography paleohistology paleohydrography paleoichthyology paleokinetic paleolate paleolatry paleolimnology paleolith paleolithic paleolithical paleolithoid paleolithy paleological paleologist paleology paleomammalogy paleometallic paleometeorological paleometeorology paleontographical paleontologic paleontological paleontologist paleontologists paleontology paleopathology paleophytological paleopicrite paleopotamoloy paleopsychology paleornithological paleornithology paleostriatal paleostriatum paleotechnic paleothalamus paleothermal paleothermic paleotropical paleozoic paleozoological paler palermitan palesman palest palestine palestra palestral palestrian palestric palet paletiology paletot palette palfrey palfreyed pali palicourea palification paligorskite palikar palikarism palikinesia palila palilalia palilia palillogia palilogetic palilogy palimpsest palimpsestic palinal palindrome palindromic palindromically palindromist paling palingenesia palingenesian palingenesis palingenesy palingenetic palingenetically palingenic palings palinode palinodial palinodic palinodist palinody palinurid palinuridae palinuroid palinurus paliphrasia palirrhea palisade palisaded palisades palisading palisado palisfy palish paliurus pall palla palladammine palladia palladian palladianism palladic palladiferous palladinize palladious palladium palladiumize palladize palladodiammine palladous pallae pallah pallall pallanesthesia pallbearer palled pallescent pallesthesia pallet palleting palletize pallets pallette pallholder palli pallia pallial palliard palliasse palliata palliate palliation palliative palliatives pallid pallidiflorous pallidipalpate palliditarsate pallidity pallidiventrate pallidly palliness palling palliobranchiata palliobranchiate palliocardiac pallioessexite pallion palliopedal pallium pallographic pallometric pallone pallor pallors pallour pally palm palmaceae palmaceous palmad palmae palmanesthesia palmar palmarian palmaris palmary palmata palmated palmately palmates palmatifid palmatiform palmatilobed palmatiparted palmatipartite palmatisected palmatum palmature palmcrist palmed palmella palmellaceous palmerite palmers palmery palmesthesia palmette palmetto palmetum palmful palmicolous palmier palmification palmiform palmigrade palmilobate palmilobed palminervate palminerved palming palmiped palmipes palmist palmister palmistry palmitate palmite palmitic palmitinic palmito palmitone palmiveined palmivorous palmlike palmodic palmoscopy palms palmwise palmwood palmy palmyra palmyrenian palo palomar palombino palosapis palouser palpability palpable palpableness palpably palpacle palpal palpate palpated palpation palpatory palpebra palpebral palpebrarum palpebration palpebritis palped palpi palpicorn palpicornia palpifer palpiger palpitant palpitate palpitated palpitating palpitation palpitations palpless palpocil palpon palpulus palpus pals palsgrave palsied palstave palster palsy palsywort palta palter paltered palterer paltering palterly paltriest paltrily paltriness paltry paludal paludament paludamentum paludial paludian paludicella paludicolae paludicole paludicoline paludinal paludine paludinous paludrin paludrine palule palulus palustrian palustrine paly palynology pam pambanmanche pamela pament pamir pamirian pampa pampakopetrai pampanga pampango pampas pampean pamper pampered pamperedly pamperedness pamperer pamperize pampers pamphagous pampharmacon pamphiliidae pamphlet pamphletage pamphletary pamphleteer pamphleteers pamphleter pamphletful pamphletic pamphletize pamphlets pampiniform pamplegia pampootee pampootie pampre pamprodactylous pan panace panacea panaceas panaceist panache panached panada panade panadol panagia panagiarion panak panaka panama panamaian panaman panamanian panamano panamic panamist panapospory panarchic panarchy panaritium panarteritis panary panatela panathenaea panathenaean panathenaic panatrophy panautomorphic panax panayan panbabylonian pancake pancakes pancarditis panchayat pancheon panchion pancho panchromatic panchromatism panchromatization panchromatize panclastic pancosmic pancratiast pancratiastic pancratic pancratical pancration pancratism pancratist pancratium pancreas pancreatectomize pancreatectomy pancreatemphraxis pancreathelcosis pancreatic pancreaticoduodenal pancreaticosplenic pancreatin pancreatism pancreatization pancreatize pancreatogenic pancreatoid pancreatolipase pancreatopathy pancreatorrhagia pancrelipase pancyclopedic pand panda pandal pandan pandanaceous pandanus pandar pandarctos pandaric pandarus pandation pandean pandect pandectist pandemia pandemian pandemic pandemicity pandemoniac pandemonic pandemonium pandemy pandenominational pander panderage panderer pandering panderism panderma pandermite panderous panders pandership pandestruction pandion pandionidae pandle pandlewhew pandoridae pandorina pandosto pandour pandowdy pandrop pandura panduriform pane panecclesiastical panegoism panegoist panegoistic panegyric panegyrical panegyrically panegyricize panegyrick panegyrics panegyricum panegyris panegyrist panegyrists panegyrize panegyrizer panegyry paneity panel panela panelation paneled paneling panelist panellation panelled panelling panels panelwise panelwork panentheism panes panesthesia panfil panfish panful pang pangaea pangamic pangamously pangamy pangane pangen pangene pangenesis pangenic pangful pangi pangium panglessly panglima panglossian pangolin pangrammatist pangs pangwe panhandle panhandler panharmonic panheaded panhellenios panhellenism panhellenium panhuman panhypersebastos panhysterectomy panic panical panically panicful panichthyophagous panick panicking panicky panicle panicled paniclike panicmonger panico paniconograph paniconographic panicularia paniculate paniculated paniculately panification panimmunity paninean panionia panionian panionic panis panisca panivorous panjabi panjandrum pank pankin panleucopenia panlogical panlogism panman panmelodicon panmelodion panmerism panmeristic panmixia panmnesia panmug panmyelophthisis panna pannage pannam panne panned panner pannery panneuritic pannicle pannicular pannier panniered pannierman panniers pannikin panning pannis pannosely pannum pannus panoan panocha panococo panoistic panomphean panophobia panophthalmia panophthalmitis panoplied panoplist panoply panopticon panoram panorama panoramic panoramical panoramically panoramist panornithic panorpatae panorpidae panosteitis panostitis panpathy panpharmacon panphobia panpneumatism panpsychist panpsychistic pans panscientist pansciolism pansclerotic panse pansexism pansexual pansexualist pansexualize panshard panside pansideman pansied pansies pansmith pansophic pansophical pansophically pansophist pansophy panspermia panspermic panspermist panspermy pansphygmograph pansy pant panta pantachromatic pantagogue pantagraphical pantagruel pantagruelian pantagruelic pantagruelically pantagruelion pantagruelistic pantagruelize pantaleon pantaletless pantalets pantaletted pantalon pantaloon pantalooned pantaloonery pantaloons pantameter pantamorph pantamorphia pantamorphic pantanencephalia pantarbe pantarchy pantascope pantascopic pantastomatida pantastomina pantatrophy pantatype pantechnicon panted pantelegraph pantelephone pantelephonic panter panterer pantheian pantheic pantheism pantheist pantheistic pantheistical pantheistically pantheologist pantheology pantheon pantheonization pantheonize panther pantherine pantherish pantherlike panthers pantheum panti panties pantile pantiled pantiling panting pantingly pantings pantisocracy pantisocrat pantisocratic pantisocratical pantisocratist pantle pantler panto pantochrome pantochromic pantochromism pantochronometer pantocrator pantod pantodon pantoffle pantofle pantoglossical pantograph pantographical pantographically pantographs pantography pantoiatrical pantological pantologist pantology pantomancer pantometer pantometric pantometry pantomime pantomimers pantomimic pantomimical pantomimicry pantomimish pantomimus pantomnesia pantomnesic pantomorphia pantomorphic panton pantoon pantopelagian pantophagic pantophagist pantophagous pantophagy pantophile pantophobia pantophobous pantoplethora pantopod pantopoda pantopragmatic pantopterous pantoscopic pantostomata pantostomate pantostomatous pantostome pantotactic pantothenic pantotheria pantotherian pantotype pantoufloche pantoum pantries pantry pantrywoman pants pantun panty pantywaist panung panurgy panyar panzoism panzooty paolo paon pap papa papability papable papabot papacy papagallo papago papain papal papalist papalistic papalization papalizer papally papanicolaou papaphobia paparchical papas papaship papaveraceous papaverales papaverine papaverous papaw papayaceae papayaceous papboat pape papeete papelonne paper paperback paperbark paperbound papered paperer paperful paperhang paperhanger paperhangers paperiness papering paperlike papermaker papermakers papermouth papern paperosa papers paperweight papery papess papeterie papey papiamento papicolar papilionaceous papiliones papilionid papilionidae papilionides papilioninae papilionine papilionoid papilionoidea papilla papillae papillary papillate papillated papillectomy papilledema papilliferous papilliform papilloadenocystoma papillocarcinoma papilloedema papilloma papillomatosis papillomatous papilloretinitis papillosarcoma papillote papillulate papillule papinachois papio papish papisher papistical papistically papistry papize papless papmeat papolater papolatrous papoose papooseroot pappea pappenheimer pappescent pappi pappiferous pappiform pappose pappox pappus pappy paprika papua papuan papular papulated papulation papule papules papuloerythematous papulosquamous papulous papyr papyraceous papyrean papyri papyrine papyritious papyrocracy papyrographer papyrographic papyrology papyrophobia papyroplastics papyrotamia papyrus paquet paquets par para paraaminobenzoic parabanate parabanic parabasal parabema parabematic parabens parabiotic parablast parablastic parable parablepsis parablepsy parableptic parables parabola parabolanus parabolic parabolical parabolically parabolicness parabolist parabolization parabolizer paraboloid parabomb parabotulism parabranchial parabranchiate parabulia parabulic paracaseinate paracelsian paracelsianism paracelsic paracelsistic paracelsus paracentral paracentric paracentrical paracephalus paracerebellar paracetamol paracholia parachor parachroma parachromatophorous parachrome parachromoparous parachromophoric parachromophorous parachronism parachrose parachute parachutic parachutism parachutist paracmasis paracme paracoelian paracolitis paracolpitis paracolpium paracondyloid paracone paraconscious paracorolla paracoumaric paracresol paracress paracusic paracyesis paracymene paracystic paracystitis parade paraded paradeful paradenitis paradental paradentitis paraderm parades paradiastole paradiazine paradichlorobenzol paradidymis paradigm paradigmatic paradigmatical paradigmatically paradigmatize parading paradingly paradings paradiplomatic paradisaic paradisal paradise paradisea paradisean paradiseidae paradises paradisiac paradisiacal paradisial paradisic paradoctor paradox paradoxal paradoxer paradoxes paradoxial paradoxical paradoxicality paradoxically paradoxician paradoxides paradoxist paradoxographer paradoxure paradoxurinae paradoxurus paradoxy paraenesize paraenetic paraenetical paraengineer paraffin paraffine paraffiny parafloccular paraflocculus parafunction paragammacism paraganglion paragastral paragastric paragastrula paragastrular parage paragenesis paragenetic parageusic parageusis paragglutination paraglobulin paraglossa paraglossal paraglossia paraglycogen paragnath paragnathism paragnathus paragneiss paragoge paragogic paragogical paragogically paragon paragonitic paragonless paragram paragraph paragrapher paragraphic paragraphical paragraphically paragraphistical paragraphize paragraphs paraguay paraguayan paraheliotropic paraheliotropism parahematin parahemoglobin parahepatic parahippus parahormone parahydrogen paraiba parainfluenzae paraiyan parakeet parakeets parakeratosis parakilya parakinesia parakinetic paralactate paralambdacismus paralaurionite parale paralectotype paralepsis paralexic paralgesia paralinguistic paralinin paralipomena paralipsis paralitical parallactic parallactically parallax parallaxes paralle parallel parallelable parallele paralleled parallelepiped parallelepipedal parallelepipedic parallelepipedon parallelinerved parallelinervous parallelism parallelization parallelize parallelizer parallelled parallelling parallelly parallelodrome parallelogram parallelogrammatic parallelogrammatical parallelogrammical parallelograms parallelograph parallelopiped parallelopipedon parallelopipeds parallels parallelwise parallepipedous paralogia paralogist paralogistic paralogize paralogy paraluminite paralysed paralyses paralysing paralysis paralytic paralytical paralyzant paralyzation paralyze paralyzed paralyzer paralyzes paralyzing param paramagnet paramagnetism paramandelic paramarine paramastitis paramastoid paramecidae paramelaconite paramenia parament paramere parameric paramesial parameter paramethasone parametric parametrical parametrise parametritis parametrium paramilitary paramnesia paramoecium paramorph paramorphia paramorphic paramorphine paramorphism paramorphosis paramorphous paramos paramount paramountcy paramountship paramour paramyelin paramylum paramyotone paramyotonia paranasal paranatellon parandrus paranema paranematic paranephric paranephritic paranephros paranepionic parang parangs paranitrosophenol paranoia paranoidal paranosic paranthelion paranthropus paranuclear paranucleate paranucleic paranuclein paranucleus paranymph paranymphal parao paraoperation parapaguridae paraparetic parapathia parapathy parapegm parapegma parapet parapeted parapetless parapets paraphasic paraphenetidine paraphenylenediamine parapherna paraphernalia paraphernalian paraphia paraphilia paraphonia paraphonic paraphototropism paraphrasable paraphrase paraphrased paraphrases paraphrasia paraphrasian paraphrast paraphraster paraphrastic paraphrenic paraphysate paraphysical paraphysiferous paraplasis paraplasmic paraplastic paraplectic paraplegia parapleuritis parapleurum parapod parapodial parapophysial paraproctitis parapsychical parapsychism parapsychology parapsychosis parapteral parapteron parapterum paraquadrate pararctalia pararctalian pararectal parareka pararosaniline pararosolic pararthria parasaboteur parasalpingitis parasang parasceve paraselene paraselenic parasemidine parasexuality parashah parasigmatism parasigmatismus parasita parasital parasitary parasite parasitemia parasites parasitic parasitica parasitical parasitically parasiticalness parasiticidal parasiticide parasitism parasitize parasitogenic parasitoid parasitoidism parasitological parasitology parasitophobia parasitotrope parasitotropic parasitotropism parasol parasoled parasolette parasols parasomnias paraspecific paraspy parastas parastatic parastemon parastemonal parasternum parastyle parasubphonate parasuchia parasuchian parasympathomimetic parasynapsis parasynaptist parasyndesis parasynesis parasynetic parasynthesis parasynthetic parasyphilis parasystole paratactic paratactical paratactically paratartaric parataxis parate paraterminal paratherian parathesis parathetic parathion parathormone parathymic parathyroidal parathyroidectomy parathyroids parathyroprivia parathyroprivic paratitla parative paratoloid paratoluic paratonic paratonically paratory paratragedia paratragoedia paratransversan paratrichosis paratrimma paratriptic paratroop paratrophic paratrophy paratuberculous paratungstate paratungstic paratyphoid paratypic paravaginitis paravent paravertebral paravesical paraxial paraxon paraxylene parazoa parazoan parbake parbate parboiled parbuckle parbuckles parcel parceler parceling parcellate parcellation parcelled parcelling parcellization parcellize parcelment parcels parcelwise parcenary parcener parceque parch parchable parched parchedly parchedness parcheesi parchemin parcher parcheth parching parchingly parchisi parchment parchmenter parchmentlike parchments parchmenty parchy parciloquy parclose pard pardesi pardine pardner pardners pardo pardon pardonable pardonably pardoned pardoner pardoning pardonmonger pardons pards pare pared paregoric paregoricked pareiasauri pareiasauria pareiasaurian pareiasaurus pareille pareioplitae parelectronomic parelectronomy parella paren parencephalic parencephalon parenchyma parenchymatic parenchymatitis parenchymatous parenchymatously parenchyme parent parentage parental parentales parentalia parentalism parentally parentdom parentela parentelic parenteral parenterally parentheses parenthesis parenthesise parenthesize parenthetic parenthetical parentheticality parenthetically parentheticalness parenthood parentless parentlike parently parents parentship pareoean parepididymal parer parerethesis parergic paresis paresthesia paresthetic parethmoid paretically pareto parfait parfilage pargana pargasite parge pargeboard parget pargeter pargeting pargyline parheliacal parhelion parhomologous parhomology pari pariah pariahdom pariahship parial parian pariasauria pariasaurus paridae paridigitate paries parietal parietale parietales parietaria parietary parietem parietoquadrate parietosphenoid parietosphenoidal parietovaginal parify parigenin pariglin parilia parilla parillin parimutuel parine paring parings paripinnate paris parish parished parishen parishes parishional parishionate parishioner parishioners parisian parisii parisis parisology parison paristhmic paristhmion parisyllabic parisyllabical paritium parity parivincular park parka parke parked parkee parker parkin parkinsonia parkinsonism parkish parkland parklike parks parkward parkway parky parlance parlando parlar parlatoria parlatory parle parlement parlements parley parleyed parleyer parleying parlez parliament parliamental parliamentarian parliamentarianism parliamentariness parliamentarism parliamentarization parliamentarize parliamentary parliamenteer parliamenteering parliamenter parliaments parling parlish parlor parlorish parlors parlour parlourmaid parlours parlous parlously parlousness parmak parmelia parmeliaceae parmeliaceous parmelioid parmentiera parmesan parnas parnassia parnassiaceae parnassian parnassism parnassus parnellism parnorpine paroarion paroarium paroccipital paroch parochial parochialism parochialist parochialization parochialize parochialness parochin parochine parochiner parode parodiable parodial parodical parodied parodies parodist parodistic parodistically parodize parodontitis parodos parody parodying parodyproof paroecious paroeciously paroeciousness paroecism paroemia paroemiography paroicous parol parolable parole parolee parolfactory paroli parolist paromologetic paromologia paromphalocele paronomasia paronomasian paronomasiastic paronomastically paronychia paronychium paronym paronymize paronymous paronymy paroophoric paroophoron paropsis paroptesis paroquet parorchis parorexia parosela parosmia parosmic parosteal parostosis parostotic parotia parotic parotid parotidectomy parotiditis parotis parotitis parotoid parous parousia parousiamania parovarian parovariotomy parovarium paroxazine paroxyms paroxysm paroxysmal paroxysmalist paroxysmally paroxysmic paroxysmist paroxysms paroxytone paroxytonic paroxytonize parpal parquet parquetry parr parra parrakeet parrakeets parrel parrhesia parrhesiastic parriable parricidal parricidally parricide parricided parricidial parridae parried parrier parrish parrock parrot parroter parrothood parrotism parrotize parrotlet parrotlike parrotry parrots parrotwise parroty parry parrying pars parsable parse parsee parseme parser parsi parsifal parsimonious parsimoniousness parsimony parsism parsley parsleylike parsleywort parsnip parsnips parson parsonage parsonages parsonarchy parsoned parsonese parsonet parsonic parsonical parsonically parsoning parsonish parsonity parsonly parsonolatry parsonology parsonry parsons parsonship parsonsite parsony part partake partaken partaker partakers partakes partaking partanfull partchmente parte parted partedness parter parterre parterred parterres partes parteth partheniae parthenian parthenic parthenium parthenocarpelly parthenocarpic parthenocarpous parthenogenesis parthenogenetic parthenogenetically parthenogenic parthenogenitive parthenogenous parthenology parthenon parthenopaeus parthenoparous parthenope parthenopean parthenos parthian parti partial partialist partialities partiality partialize partially partialness partials partibus particate participance participancy participant participants participate participated participates participating participatingly participation participatively participator participators participatory participatress participer participial participiality participialize participially participle particle particled particler particles particular particularism particularist particularistic particularity particularization particularize particularized particularly particulars particulate partie parties partigen partile parting partings partinium partisan partisanism partisanize partisans partisanship partita partite partition partitional partitionary partitioned partitionist partitionment partitions partitive partitively partitura partiversal partivity partless partly partner partnerless partners partnership parto partook partriarchal partridge partridgeberry partridgelike partridges partridging parts partschinite parture parturiate parturience parturiency parturient parturifacient parturition parturitive party partyist partyites partykin partyship parulis parure parures parus parvenu parvenudom parvenuism parvifoliate parvifolious parvipotent parvirostrate parvis parviscient parvitude parvolin parvoline parvovirus parvulum paryphodrome pas pasan pasang pascae pasch paschal paschalist paschaltide pascuage pascual pased paseo pasgarde pasha pashadom pashalik pashas pashaship pashm pashmina pashto pasi pasigraphic pasigraphical pasigraphy pasmo paso paspalum pasquilic pasquinade pasquinader pasquinian pasquino pass passaae passable passably passade passage passageable passages passageway passageways passagian passaic passait passalid passalidae passalus passamaquoddy passant passants passava passback passband passe passed passee passegarde passeggio passement passementerie passen passenger passengers passer passerby passeres passeriform passeriformes passerine passers passersby passes passesanenormous passest passeth passewa passibility passibleness passifloraceous passim passimeter passing passingly passingness passion passional passionary passionate passionately passionateness passionative passioned passionful passionfulness passionist passionless passionlessness passionlike passionometer passionproof passions passiont passionwise passionwort passir passivate passive passively passiveness passivity passkey passless passo passout passover passoverish passpenny passport passportless passports passu passus passwoman password passworts passymeasure past pasta pastas paste pasteboard pasted pastel pastelist pastels paster pasterer pastern pasternack pasterned pasteup pasteur pasteurella pasteurelleae pasteurian pasteurization pasteurize pasteurized pasteurizer pasticheur pasties pastil pastille pastilles pastime pastimer pastimes pastinaca pastiness pasting pastness pastophorium pastophorus pastor pastorage pastoral pastorale pastoralism pastoralist pastorality pastorally pastoralness pastorals pastorate pastorhood pastorize pastorlike pastorly pastors pastorship pastose pastosity pastrami pastries pastry pastrycook pasturability pasturable pasturage pastural pasture pastured pastures pasturing pasty pasul pat pata pataca patacao patach pataco patagium patagon patagones pataka patamar patao patapat pataria patarin patarine patas patavian patavinity patball patch patchable patched patches patchily patchiness patching patchouli patchwise patchword patchwork patchworky patchy pate pated patefaction patel patella patellae patellaroid patellate patelliform patelline patellofemoral patelloid patellula patellulate paten patener patent patentability patentable patentably patented patentee patenting patently patents pater patercove paterfamiliar pateriform paternal paternalism paternalist paternalistic paternalistically paternally paternels paternity paternoster pates path pathan pathbreaker pathed pathema pathematic pathematically pathematology pathetic pathetical pathetically patheticalness patheticate pathetism pathetist pathetize pathfarer pathfind pathfinding pathic pathicism pathless pathlessness pathoanatomical pathoanatomy pathobiology pathochemistry pathogen pathogenesy pathogenetic pathogenicity pathogenous pathogens pathogerm pathogermic pathognomical pathognomonical pathognomy pathologic pathological pathologically pathologicoanatomic pathologicopsychological pathologist pathologists pathology patholytic pathometabolism pathomimesis pathomimicry pathoneurosis pathonomia pathophobia pathophoric pathophorous pathoplastically pathopsychology pathos pathrusim paths pathway pathways pathy patience patient patiently patients patinate patination patined patinous patio patisserie patmian patness patnidar pato patois patola patonce patre patria patriam patriarch patriarchal patriarchalism patriarchally patriarchate patriarchdom patriarchic patriarchical patriarchically patriarchist patriarchs patriarchship patrice patricia patrician patricianism patricians patricianship patriciate patricidal patricide patrick patrico patrilineally patrilinear patriliny patrimonial patrimonially patrimonies patrimony patrin patriolatry patriot patrioteer patriotes patriotic patriotical patriotically patriotics patriotism patriotly patriots patriotship patriottismo patripassian patripassianism patripassianist patris patrist patristic patristical patristicalness patristicism patrizate patrization patrocinium patroclinic patroclinous patrocliny patrogenesis patrol patrolled patrolling patrolmen patrological patrols patron patronage patronal patrondom patroness patronesses patronessship patronised patronises patronising patronization patronize patronized patronizer patronizing patronizingly patronless patronly patronomatology patrons patronship patronus patronymic patronymically patronymy patroon patroonry patroonship patruity pats patsy patta patte patted pattee pattened pattener pattens patter pattered patterer pattering pattern patterned patterning patternize patternless patternlike patternmaker patternmaking patterns patterny patters patterson patting patton pattu patty pattypan patu patulent patulously patulousness patwin paty pau paucidentate pauciflorous paucifoliate paucifolious paucijugate paucilocular pauciloquent pauciloquently pauciplicate pauciradiate pauciradiated paucity paughty paul paula paular paulatim paulette paulian paulianist pauliccian paulicianism paulin paulina pauline paulinia paulinian paulinism paulinist paulinize paulinus paulist paulo paulopost paulownia paulsen paulson paumari paunch paunched paunchful paunchiness pauper pauperate pauperdom pauperism pauperization pauperize pauperized paupers paurometabola paurometabolic paurometaboly pauropod pauropoda pauropodous pausably pausal pausation pause paused pauseful pausefully pauseless pausement pauser pauses pausing pausingly paussid paussidae paut pauvre pauvres pauxi pavan pave paved pavement pavemental pavements paver paves pavetta pavilion pavilions paving pavior paviotso paviour pavis pavisade pavisado paviser pavisor pavlov pavo pavonated pavonazzo pavoncella pavonian pavonine pavonize pavy paw pawed pawer paweth pawin pawing pawk pawkery pawkily pawkiness pawkrie pawky pawn pawnable pawnage pawnbroker pawnbrokeress pawnbrokers pawnbrokery pawnbroking pawned pawnee pawning pawnor pawns pawnshop pawpaw pawpaws paws pawtucket pax paxilla paxillar paxillary paxillate paxilliform paxillosa paxillus paxiuba pay payability payable payably payagua payaguan payait payday payed payee payeny payer payers payeth paying payload paymaster paymasters payment payments paymistress payne payni paynim paynimhood paynimry payoff payola payong payor payroll pays paysagist paz pazend pbb pbs pcec pcp pct pd pdp pdq pdwhf pea peaberry peabody peace peaceable peaceably peacebreaker peacebreaking peaceful peacefulest peacefullest peacefully peacefulness peaceless peacelike peacemake peacemaker peacemaking peaceman peacemongering peacetime peach peachberry peachblossom peachblow peachen peacher peachery peaches peachick peachiness peachlet peachlike peachwood peachwort peachy peacock peacockishly peacockism peacocklike peacocks peacockwise peacocky peafowl peag peage peahen peaiism peak peaked peaker peakiness peakish peakishly peakless peaks peakward peal peale pealing peals pean peanut peanuts pear pearance pearce pearceite peared pearl pearlash pearled pearler pearlfish pearlfruit pearliness pearlish pearlite pearlitic pearls pearlstone pearlwort pearly pearmonger pears pearson peart pearten peartest pearwood peas peasant peasantess peasanthood peasantlike peasantly peasantry peasants peasantship peascod pease peaselike peashooter peason peastake peastaking peastone peat peated peatery peatman peatship peaty peavey peavy peba peban pebble pebbled pebblehearted pebbles pebblestone pebbly pebrine pecan pecans peccability peccadillo peccadilloes peccadillos peccancy peccant peccanti peccantly peccata peccation peccavi peces pech peches pechos pecht peck pecked pecker peckerwood pecket peckful peckhamite peckiness pecking peckings peckish peckle peckled peckly pecks pecksniffian pecksniffianism pecky pecopteris pecopteroid pecora pect pectase pectate pected pecten pectic pectin pectinacean pectinal pectinase pectinate pectination pectinatofimbricate pectinatopinnate pectineal pectineus pectinibranch pectinibranchian pectinibranchiata pectinic pectinid pectinidae pectiniform pectinirostrate pectinite pectinogen pectinose pectization pectize pectocellulose pectolite pectora pectoral pectoralgia pectoralis pectoralist pectoriloquial pectoriloquism pectoriloquy pectoris pectosase pectosic pectosinase pectous pects pectunculate pectus peculation peculiar peculiarities peculiarity peculiarize peculiarly peculium pecunia pecuniarily pecuniary pecuniosity peda pedage pedagog pedagogic pedagogical pedagogically pedagogics pedagogist pedagogue pedagoguery pedagoguish pedagoguism pedagogy pedal pedaled pedalferic pedaliaceae pedaliaceous pedalier pedalion pedalism pedalist pedalium pedalled pedalling pedals pedanalysis pedant pedantesque pedanthood pedantic pedantical pedantically pedanticalness pedanticism pedanticly pedanticness pedantize pedantocratic pedantry pedants pedate pedatiform pedatilobate pedatilobed pedatinerved pedatisected pedder peddlars peddle peddled peddler peddlerism peddlers peddlery peddles peddling peddlingly pedee pederastic pedes pedestal pedestalled pedestals pedestrially pedestrian pedestrianate pedestrianism pedestrianizing pedestrians pedetentous pedetes pedetidae pediadontist pedialgia pedialyte pediastrum pediatric pediatrician pediatricians pediatrics pediatrist pedicab pediceled pedicellate pedicellated pedicellation pedicelliform pedicellina pedicle pedicular pedicularia pedicularis pediculate pediculated pedicule pediculicidal pediculid pediculina pediculofrontal pediculoid pediculoparietal pediculous pediculus pedicurism pedicurist pedigraic pedigree pedigreeless pedigrees pediluvium pedimana pedimanous pediment pedimented pediments pedion pedionomus pedipalpal pedipalpate pedipalpida pedipalpous pedipalpus pedipulate pedipulator pedis pedlar pedlers pedobaptism pedobaptist pedocal pedodontic pedodontology pedograph pedological pedology pedometer pedometric pedometrical pedometrist pedomorphism pedomotive pedomotor pedophilia pedophilic pedotrophist pedrail pedregal pedrero pedro pedum peduncled peduncular pedunculate pedunculation pedunculus pee peek peekaboo peeke peeking peel peelable peeled peeledness peeler peelhouse peeling peelings peelism peelite peelman peels peen peenge peens peeoy peep peeped peepee peeper peepeye peephole peepholes peeping peeps peepy peer peerage peerages peerdom peered peeress peerhood peerie peering peeringly peerless peerlessly peerlessness peerling peerly peers peery pees peesash peesoreh peesweep peetweets peeve peeved peevedly peevedness peever peevish peevishly peevishness peewee peewit peewits peg pega pegall peganite peganum pegasian pegasidae pegbox pegged pegger pegging peggle pegless peglet peglike pegman pegmatite pegmatization pegmatize pegmatoid pegmatophyre pegology pegre pegs pegwood pehlevi peignoir peine peinture peirameter peirastically peise peiser peixere pejorate pejoration pejorative pejoratively pejorism pejorist pejority pekan peking pekingese pekkanen pelage pelagial pelagianize pelagic pelamyd pelanos pelargi pelargic pelargikon pelargomorph pelargomorphae pelargonate pelargonic pelargonidin pelasgi pelasgic pelasgikon pelasgoi pele pelean pelecani pelecaniformes pelecanoides pelecanoidinae pelecanus pelecypod pelecypoda pelecypodous pelei pelelith pelerine peleus pelew pelf pelham pelias pelican pelicans pelick pelicometer pelicon pelides pelidnota pelike pelioma peliosis pelisse pelite pelitic pell pellaea pellage pellagra pellagrin pellagrose pellagrous pellar pellas pellation peller pellet pellets pellety pellian pellicle pellicula pellicularia pellicule pellitory pellmell pellotine pellucent pellucid pellucidness pelmanism pelmanist pelmanize pelmatic pelmatogram pelmatozoa pelmatozoan pelobates pelobatid pelobatidae pelobatoid pelodytes pelodytid pelodytidae pelomedusa pelomedusid pelomedusidae pelomedusoid pelomyxa pelopaeus pelopid pelopidae peloponnesian pelops peloria pelorian peloric pelorism pelorization pelorize pelorus peloton pelt pelta peltast peltate peltated peltatifid pelted pelter pelterer pelters peltiferous peltifolious peltiform peltigera peltigeraceae peltigerine peltigerous pelting peltmonger peltogaster pelts pelu peludo pelusios pelveoperitonitis pelves pelvetia pelvic pelvien pelviform pelvigraph pelvigraphy pelvimeter pelvimetry pelviolithotomy pelvioperitonitis pelvioscopy pelviotomy pelvis pelvisternal pelycogram pelycography pelycometry pelycosaur pelycosauria pembina pembroke pemican pemmican pemmicanization pemphigoid pemphigus pen pena penacute penaeaceous penal penalising penalist penality penalizable penalization penalize penalized penally penalties penalty penance penanceless penances penannular penates penbard penbutolol pence pencel penceless penchute pencil penciled penciliform penciling pencilled penciller pencillike pencilling pencilry pencils pencilwood pencotes penda pendant pendanted pendantlike pendants pended pendeloque pendency pendenite pendent pendente pendently pendicle pendicler pending pendle pendragon pendulant pendular pendule penduline pendulosity pendulous pendulously pendulousness pendulum pendulumlike pendulums pene pened penelope penelopean penelophon penelopinae peneplain peneplanation peneplane peneseismic penetrability penetrable penetrably penetralia penetralian penetrance penetrate penetrated penetrates penetrating penetratingness penetration penetrative penetratively penetrativeness penetrator penetrology penetrometer penfieldite penfold penful penghulu penguin penguinery penguins penhead penholder penial penicillamine penicillate penicillated penicillation penicilliform penicillin penicillins penicillium penide pening peninsula peninsular peninsularism peninsularity peninsulas peninsulate penintime penis penistone penitence penitent penitentes penitential penitentially penitentiary penitentiaryship penitently penitents penk penkeeper penknife penmaker penmaking penman penmanship penmen penn pennaceous pennacook pennage pennales pennant pennants pennaria pennariidae pennatae pennate pennated pennatilobate pennatipartite pennatisect pennatulacean pennatulaceous pennatularian pennatules pennatulidae penned penneech penneeck penner pennet penneth penni pennia pennied pennies pennigerous penniless pennilessly pennilessness pennill penninervate pennines penning penninischen pennipotent pennisetum pennisular penniveined pennon pennoned pennons pennopluma pennorth pennsylvanian penny pennybird pennycress pennyearth pennyflower pennyhole pennyleaf pennyrot pennyroyal pennysiller pennyweight pennywinkle pennyworth pennyworths penobscot penologist penology penrack pens pensacola penscript pense pensees penseful pensefulness penser penship pensiero pension pensionable pensionary pensioned pensioner pensioners pensionless pensions pensive pensived pensively pensiveness penster penstick pensy pent penta pentacapsular pentacarbonyl pentacarpellary pentace pentacetate pentachenium pentachloride pentachromic pentacid pentacle pentacontane pentacrinidae pentacrinite pentacrinoid pentacrinus pentacrostic pentacyanic pentad pentadactyla pentadactyloid pentadecahydrate pentadecane pentadecatoic pentadecyl pentadecylic pentadicity pentadodecahedron pentadrachm pentadrachma pentaerythrite pentafid pentafluoride pentagamist pentaglossal pentagon pentagonal pentagonohedron pentagrammatic pentagyn pentagynous pentahedrical pentahedroid pentahedron pentahedrous pentahexahedral pentahydrate pentahydrated pentahydric pentahydroxy pentail pentaiodide pentalobate pentalogue pentalogy pentalpha pentamera pentameral pentameran pentamerid pentameridae pentamerism pentameroid pentamerous pentamerus pentameter pentamethylene pentamethylenediamine pentametrist pentametrize pentandria pentandrian pentandrous pentanedione pentangle pentangular pentanitrate pentanoic pentapetalous pentaphylacaceae pentaphylacaceous pentaphyllous pentaploid pentaploidic pentaploidy pentapody pentapolis pentapolitan pentaptote pentaptych pentaquine pentarch pentarchical pentasepalous pentasilicate pentaspermous pentaspheric pentaspherical pentastich pentastichy pentastome pentastomum pentastyle pentastylos pentasulphide pentasyllabic pentasyllabism pentathionate pentathionic pentathlete pentathlon pentatomic pentatomidae pentatonic pentatriacontane pentavalence pentavalency pentazocine pente penteconter pentecontoglossal pentecost pentecostalist pentecostarion pentecoster pentecostys pentelic pentelican penthemimer penthemimeral penthestes penthiophene penthorum penthouse penthrit penthrite pentine pentiodide pentit pentlandite pentobarbital pentoic pentol pentosan pentosane pentose pentoses pentoside pentosuria pentoxide pentremite pentremites pentremitidae pentrit pentrite pentstemon penttail pentyne penuchi penult penultimate penultimatum penumbra penumbrae penumbral penumbrous penurious penuriously penuriousness penury penutian penwiper penwomanship penworker penwright peon peonage peonism peony people peopled peoplehood peopleize peopleless peoples peoplet peopling peoplish peorian peotomy pep peperci peperine peperino peperomia pephredo pepino peplos peplus pepo peponida peponium pepper peppercorn peppered pepperer peppergrass pepperidge pepperiness peppering pepperish pepperishly peppermint peppermints pepperroot peppers pepperweed pepperwood pepperwort peppery peppin peppiness peppy pepsi pepsico pepsin pepsinate pepsinhydrochloric pepsinogen pepsinogenous pepsis peptic peptical pepticity peptide peptizable peptization peptize peptizer pepto peptogenic peptogeny peptolytic peptonaemia peptonate peptonemia peptones peptonic peptonize peptonizer peptonoid peptonuria peptotoxine pepysian pequot per peracetate peracetic peracute peradventure peragrate peragration perakim perambulant perambulate perambulated perambulating perambulation perambulations perambulator perambulators perambulatory perameles perameloid peration perborate perborax perbromide percale percaline percarbide percarbonic perceivable perceivableness perceivancy perceive perceived perceivedly perceivedness perceiver perceives perceiveth perceiving perceivingness percent percentable percentably percentage percentaged percentages percental percept perceptibility perceptible perceptibleness perceptibly perception perceptional perceptionism perceptions perceptive perceptively perceptiveness perceptual perceptually percesocine perceval perch percha perchable perchance perched percher perches perching perchloric perchloride perchlorinate perchloroethane perchloroethylene perchromate percidae percieved perciformes percipience percipient percival perclose percnosome percoct percoid percoidea percoidean percolable percolate percolated percolating percolation percolative percomorph percomorphous percompound percontation percontatorial percribrate percribration percrystallization perculsion perculsive percur percurration percursory percuss percussion percussional percussioner percussionist percussive percussively percussor percutaneous percutaneously percutient perde perdere perdicinae perdicine perdition perdricide perdue perduellion perdurability perdurance perdurant perdure perduring pere perean peregrina peregrinate peregrination peregrinations peregrinator peregrinity peregrinus pereion pereira peremptorily peremptoriness peremptory perendinant perendinate perendination perennate perennation perennial perenniality perennially perennibranchiata perennibranchiate perennibranchiates perequitate peres pereskia perezone perfecit perfect perfected perfectedly perfecti perfectibilism perfectibilist perfectibilitarian perfectibility perfectible perfecting perfection perfectionation perfectionator perfectionism perfectionistic perfectionize perfectionner perfections perfectism perfectist perfective perfectively perfectiveness perfectivity perfectivize perfectly perfectness perfector perfects perfervent perfervid perfervidity perfervidly perfervor perfervour perfidious perfidiously perfidiousness perfidy perflate perfluent perfoliate perfoliation perforant perforata perforate perforated perforating perforation perforationproof perforations perforative perforator perforatory perforce perforcedly perform performable performance performances performant performative performed performer performers performing performs perfrication perfume perfumed perfumeless perfumer perfumeress perfumery perfumes perfumy perfunctionary perfunctorily perfunctorious perfunctoriously perfunctorize perfunctory perfusate perfuse perfused perfuses perfusion pergamene pergameneous pergamentaceous pergamic pergamon pergamyn pergola perhalide perhalogen perhaps perhapsperceiving perhorresce perhydroanthracene perhydrogenation peri periacinal periacinous periactus periadenitis perial periamygdalitis perianal periangitis perianth perianthial perianthium periaortitis periappendicitis periapt periarctic periarteritis periarthric periarthritis periaster periastral periastron periatrial periauricular periaxial periaxillary periaxonal periblast periblastic periblastula periblem peribolos peribolus peribranchial peribronchial peribronchiolar peribronchiolitis peribronchitis peribulbar pericapsular pericardiac pericardiacophrenic pericardial pericardicentesis pericardiectomy pericardiocentesis pericardiolysis pericardiopleural pericardiotomy pericarditic pericarditis pericardium pericardotomy pericarp pericarpial pericarpic pericarpoidal pericecal pericellular pericemental pericementitis pericementum pericenter pericentral pericephalic pericerebral perichaetial perichaetium pericholangitis pericholecystitis perichondral perichondrial perichondritis perichondrium perichord perichordal perichoresis perichorioidal perichoroidal perichylous periclase periclasia periclasite periclaustral periclean periclinal periclinally periclinium periclitate periclitation pericolpitis periconchal periconchitis pericopal pericope pericowperitis pericranial pericranitis pericranium pericristate periculant pericystic peridendritic peridental peridentium peridentoclasia peridermic peridesmic peridesmitis peridial peridiastole peridiastolic perididymis perididymitis peridiiform peridineae peridiniaceous peridinial peridiniales peridinian peridinid peridinidae peridinium peridiole peridot peridotite peridotites peridotitic periductal periegesis perielesis perience periencephalitis perienteric perienteritis perienteron peries periesophageal perifistular perifoliary perifollicular perifolliculitis perigangliitis periganglionic perigastric perigastritis perigastrula perigastrular perigastrulation perigee perigenital perigeum periglandular periglottis perignathic perigon perigonadial perigone perigonial perigraph perigraphic perigynial perigynium perigynous perihelian perihelion perihelium perihepatic perihepatitis perihermenial perihernial perihysteric perijove perikaryon perikronion peril perilabyrinthitis perilaryngitis periligamentous perilled perilless perilobar perilous perilously perils perilymph perilymphangial perilymphangitis perilymphatic perimedullary perimeningitis perimeter perimeters perimetral perimetric perimetrical perimetritic perimetrium perimetry perimorph perimorphic perimorphism perimorphous perimysial perimysium perine perineocele perineoplasty perineoscrotal perineotomy perinephral perinephric perinephritic perinephritis perineptunium perineural perineurial perinium perintendent perinuclear periocular period periodate periodic periodical periodicalism periodicalist periodically periodicalness periodicals periodicity periodide periodize periodogram periodograph periodology periodontal periodontia periodontium periodontoclasia periodontologist periodontum periodoscope periods perioeci perioecians perioecic perioecid perioecus perionychium perionyxis perioophoritis periophthalmic periople perioplic perioptic perioptometry perior perioral periorbita periorbital periors periost periostea periosteal periosteitis periosteomedullitis periosteorrhaphy periosteotome periosteotomy periosteum periostitis periostoma periostotomy periostracal periostracum periotic periovular peripachymeningitis peripancreatitis peripapillary peripatetic peripatetical peripatetically peripateticism peripatidae peripatoid peripatopsidae peripatus peripericarditis peripetalous peripetasma peripeteia peripetia periphacitis peripharyngeal peripheral peripherial peripheric peripherical peripherocentral peripheroceptor peripheromittor peripherophose periphery periphlebitic periphlebitis periphrase periphrases periphrastically periphyllum periphyse periphysis periplasm periplast periplegmatic periplus peripneumonic peripneumony peripolar periportal periproctal periproctitis periproctous periprostatic peripteral periptery peripyloric perique perirectitis perirrogos perisalpingitis perisarc perisarcal perisarcous perisaturnium periscians periscii perisclerotic periscopic periscopical perish perishability perishable perishableness perished perishes perisheth perishing perishless perishment perisigmoiditis perisinuitis perisinuous perisoma perisomal perisomatic perisomial perisperm perispermal perispermatitis perisphere perisphinctean perisphinctoid perisplanchnitis perisplenetic perisplenic perisplenitis perispome perispomenon perispondylic perispondylitis perisporiaceae perisporiaceous perisporiales perissad perissodactyl perissodactylate perissodactylic perissodactylism perissodactylous perissologic perissological perissosyllabic peristalith peristalsis peristaltic peristaltically peristaphylitis peristele peristeromorph peristeromorphic peristeronic peristerophily peristeropode peristeropodous peristethium peristole peristoma peristomal peristomatic peristome peristrephical peristrumous peristylar peristyle peristyles peristylium peristylos peristylum perisystole perisystolic perit peritectic peritendineum peritenon peritenonitis perithece perithecial perithecium perithelial perithelioma perithyreoiditis perithyroiditis peritomous peritomy peritoneal peritonealgia peritoneally peritoneocentesis peritoneoclysis peritoneomuscular peritoneopathy peritoneopexy peritoneoplasty peritoneum peritonital peritonitic peritonitis peritonsillar peritonsillitis peritracheal peritrema peritrematous peritreme peritrich peritrichan peritrichously peritrochanteric peritrochium peritrochoid peritrophic peritropous perityphlic perityphlitic perityphlitis periumbilical periungual periuranium periureteritis periuvular perivaginal perivisceral perivisceritis perivitellin periwig periwigged periwigs periwinkle periwinkled periwinkler perjink perjinkety perjinkities perjinkly perjure perjured perjuredly perjurer perjurers perjures perjuress perjuries perjuring perjurious perjuriously perjuriousness perjurous perjury perjurymonger perk perked perkiness perking perkingly perkins perkish perknite perks perky perla perlaceous perle perlection perlidae perligenous perlingual perlite perlitic perloir perlustrate perlustration perlustrator perm permafrost permanence permanency permanenet permanent permanently permanentness permanganate permanganic permansive permeable permeably permeameter permeance permeate permeated permeates permeating permeator permiak permian permillage permirific permiscus permissibility permissible permissibly permission permissions permissive permissively permissiveness permissory permit permits permittable permitted permittedly permittee permitting permittivity permixture permocarboniferous permonosulphuric permoralize permoted permutability permutable permutableness permutably permutation permutational permutations permutator permutatorial permutatory permute permuter pern pernasal pernavigate pernettia pernetual pernicious perniciously pernicketiness pernine pernis pernitrate pernitric pernoctation pernor peroba perobrachius perognathinae perognathus peromedusae peromela peromelous peromelus peromyscus peronate peroneal peroneocalcaneal peroneotibial peroneus peronium peronosporaceae peronosporaceous peronosporales peropodous peropus peror peroral perorate peroration perorational perorative perorator peroratorically peroratory perosis perosmate perosmic perosomus perotic perovskite peroxidase peroxide peroxidic peroxidize peroxidized peroxy peroxyl perozonid perozonide perpend perpendicular perpendicularity perpendicularly perpendiculars perpera perperfect perpetrate perpetrated perpetrating perpetration perpetrator perpetrators perpetratress perpetratrix perpetua perpetuable perpetual perpetualism perpetuality perpetually perpetuance perpetuate perpetuated perpetuating perpetuation perpetuator perpetuity perpetuo perphenazine perplex perplexable perplexed perplexedly perplexer perplexes perplexing perplexingly perplexities perplexity perplexment perplext perplication perquisite perquisites perquisitions perquisitor perradially perradiate perridiculous perrinist perron perruche perrukery perruthenate perry pers persae persarves perscrutate perscrutation perse persecute persecuted persecutee persecuting persecution persecutional persecutions persecutive persecutiveness persecutor persecutors persecutory persecutress persecutrix perseid perseite perseity persephassa perservance perseverance perseverant perseveranter perseverate persevere persevered perseveres persevering perseveringly pershing persian persianist persianization persianize persic persicaria persicary persico persicot persiflage persiflate persilicic persimmons persis persism persist persisted persistence persistency persistent persistently persisting persistingly persistive persistively persists persnickety person personable personableness personabler personably personae personage personages personal personalia personalistic personalities personality personalization personalized personally personals personalty personam personate personated personately personating personation personative personator personed personeity personifiable personifiant personification personificator personified personifier personifies personify personization personnel persons personship perspection perspective perspectived perspectively perspectives perspectograph perspicacious perspicaciously perspicaciousness perspicacity perspicuity perspicuous perspicuously perspicuousness perspirable perspirate perspiration perspirations perspired perspiring perspiringly perspiry perstition perstringe perstringement persuadability persuadable persuadableness persuadably persuade persuaded persuadedness persuader persuades persuadest persuading persuadingly persuasibility persuasible persuasibly persuasion persuasions persuasive persuasively persuasiveness persulphate persulphide persulphocyanic persymmetrical pert pertain pertaining pertainment pertains pertaters perte perten pertest perth perthes perthiocyanate perthite perthitic perthitically perthosite pertickler perticular pertinacious pertinaciously pertinaciousness pertinacity pertinence pertinency pertinent pertinentibus pertinently pertinentness pertish pertite pertly pertness perturb perturbability perturbable perturbant perturbate perturbation perturbational perturbations perturbatious perturbator perturbatress perturbatrix perturbed perturbedly perturbing perturbment pertusaria pertusariaceae pertuse pertused pertusion peru peruginesque perukeless perula perularia perulate perule perusable perusal peruse perused peruser perusing peruvian peruvianize pervade pervaded pervadence pervader pervades pervading pervadingness pervagate pervagation pervalvar pervasion pervasive pervasively pervasiveness perverse perversely perverseness perversion perversions perversities perversity pervert perverted pervertedly pervertedness pervertibly perverting pervertive perverts pervicacious pervigilium pervious perviously perviousness pervulgate pervulgation perwitsky pes pesach pesage peser peseta peseverance peshkar peshkash peshwa peshwaship peskily peskiness pess pessary pessimal pessimism pessimist pessimistic pessimistically pessimists pessoner pessular pessulus pest pestalozzianism pester pestered pesterer pestering pesteringly pesterment pesterous pestful pesthole pesthouse pesticidal pesticide pesticides pestiduct pestiferous pestiferously pestiferousness pestilence pestilences pestilenceweed pestilencewort pestilent pestilential pestilentially pestilently pestle pestles pestologist pests pet petal petaled petalia petaliferous petaliidae petaline petalless petallike petalocerous petalodic petalodont petalodontid petalodontidae petalodontoid petalodus petalody petaloid petaloidal petaloideous petalomania petalon petalostemon petalous petals petaly petard petardeer petardier petary petasites petaurine petaurist petaurista petauristidae petauroides petaurus petchary petcock pete peteca petechiae petechiate peteman peter petering peterkin peterloo peternet petersburg petersen petersham peterwort peth pethaps pethidine petiolar petiolary petiolata petiolate petiolated petiole petioled petiolulate petiolule petit petite petitgrain petition petitionable petitional petitionarily petitioned petitioner petitioners petitioning petitionist petitionproof petitions petitor petitory petits petiveria petrarchal petrarchan petrarchesque petrarchism petrarchistic petrarchize petras petre petrean petrels petrescence petrescent petricolous petrie petrifiable petrification petrified petrify petrifying petrine petrinism petrinist petrinize petrobium petrobrusian petrochemical petrochemistry petrogale petrogenesis petrogenic petrogeny petroglyph petroglyphic petroglyphy petrograph petrographer petrographic petrographically petrography petrohyoid petrol petrolage petrolatum petrolean petrolene petroleous petroleum petrolic petroliferous petrolific petrolist petrolithic petrolization petrolize petrologic petrological petrologically petromyzon petromyzont petromyzontes petromyzontoid petronella petropharyngeal petrophilous petroselinum petrosilicious petrositis petrosphenoid petrosphere petrosquamosal petrosquamous petrosum petrotympanic petrous pets pettable petted pettedness petter petticoat petticoated petticoats petticoaty pettifogger pettifoggery pettifogging pettifogulize pettily pettiness pettinesses petting pettingly pettish pettishness pettitoes pettle petty pettyfog petulance petulant petulantly petune petunia petunias petuntse petus petwood petzite peu peucedanum peucetii peucites peugeot peul peumus peur peut peutingerian peux pew pewage pewdom pewee pewfellow pewful pewholders pewit pewmate pews pewter pewterer pewterwort pewy peyerian peyote peyotl peyronie peyton peytrel pezantic peziza pezizaceae pezizaceous pezizaeform pezizales peziziform pezizoid pezograph pezophaps pezzo pfaffian pfannenstiel pfeffer pfeifferella pfeller pfennig pflanzengeographische pfui pfund ph ph.d phaca phacelia phacella phacidiaceae phacitis phacoanaphylaxis phacocele phacochere phacocherine phacochoerid phacochoeroid phacochoerus phacocystitis phacoglaucoma phacoid phacoids phacolite phacolith phacolysis phacomalacia phacometer phacopidae phacosclerosis phacotherapy phaeacian phaedo phaenantherous phaenanthery phaenogamian phaenogenetic phaenological phaenology phaenomenal phaenomenism phaenomenon phaeodaria phaeodarian phaeophore phaeophyceae phaeophycean phaeophyll phaeophyta phaeophytin phaeoplast phaeospore phaeosporous phaethon phaethontes phaethontic phaethontidae phaeton phaetons phage phagedena phagedenic phagedenical phagedenous phagineae phagocyter phagocytic phagocytism phagocytoblast phagocytolysis phagocytolytic phagocytose phagocytosis phagodynamometer phagolysis phagolytic phagomania phainolion phalacrocoracidae phalacrocorax phalacrosis phalaecean phalaecian phalaenae phalaenidae phalangal phalange phalangeal phalangean phalanger phalangeridae phalangerinae phalanges phalangette phalangian phalangic phalangidan phalangidean phalangides phalangiform phalangigrada phalangigrade phalangigrady phalangiid phalangiidae phalangist phalangista phalangistidae phalangistine phalangite phalangitic phalangium phalangologist phalangology phalansterial phalansterian phalansterianism phalansteric phalansterism phalansterist phalanstery phalanx phalanxed phalarica phalaris phalarism phalarope phalaropodidae phalera phaleucian phallaceae phallales phallephoric phalli phallic phallicism phallicist phallism phallist phallitis phallodynia phalloid phalloidine phalloplasty phallorrhagia phallus phanar phanariot phanatron phaneric phanerite phanerocarpae phanerocarpous phanerocephala phanerocodonic phanerocryst phanerocrystalline phanerogamia phanerogamian phanerogamic phanerogamous phanerogamy phanerogenetic phaneroglossa phaneroglossal phaneromerous phaneroscope phanerosis phanerozoic phanerozonate phanic phano phansigar phantasia phantasiastic phantasies phantasist phantasm phantasma phantasmagoria phantasmagorial phantasmagorially phantasmagorian phantasmagoric phantasmagorical phantasmagories phantasmagorist phantasmagory phantasmal phantasmascope phantasmata phantasmatical phantasmatically phantasmatography phantasmic phantasmically phantasmist phantasmogenetic phantasmograph phantasms phantast phantasy phantom phantomatic phantomically phantomize phantomnation phantomry phantoms phantomship phantoplex phantoscope pharaoh pharaonical phare phareodus pharian pharisaean pharisaical pharisaism pharisean phariseeism pharmacal pharmaceutic pharmaceutist pharmacic pharmacies pharmacist pharmacite pharmacodiagnosis pharmacodynamic pharmacodynamical pharmacodynamics pharmacoendocrinology pharmacognosist pharmacognostical pharmacognostically pharmacognostics pharmacography pharmacolite pharmacologia pharmacologic pharmacological pharmacologically pharmacology pharmacomania pharmacomaniac pharmacomaniacal pharmacometer pharmacopedia pharmacopedic pharmacopedics pharmacopeia pharmacopeial pharmacophobia pharmacopoeial pharmacopoeian pharmacopoeias pharmacopoeist pharmacoposia pharmacopsychology pharmacy pharmakos pharmic pharmuthi pharology pharomacrus pharos pharsalian pharyngal pharyngalgic pharyngeal pharyngectomy pharyngemphraxis pharyngic pharyngismus pharyngitic pharyngitis pharyngoamygdalitis pharyngobranch pharyngobranchial pharyngobranchiate pharyngocele pharyngodynia pharyngoesophageal pharyngoglossus pharyngognathous pharyngography pharyngokeratosis pharyngolith pharyngological pharyngology pharyngomaxillary pharyngomycosis pharyngonasal pharyngopalatine pharyngopalatinus pharyngoplasty pharyngoplegic pharyngoplegy pharyngopleural pharyngopneusta pharyngopneustal pharyngorhinitis pharyngoscleroma pharyngoscopy pharyngospasm pharyngotherapy pharyngotomy pharyngotyphoid pharyngoxerosis pharynogotome pharynx phascaceae phascaceous phascogale phascolarctinae phascolome phascolomyidae phascolonus phascum phase phaseal phasemeter phasemy phaseolaceae phaseolin phaseolous phaseolunatin phaseolus phaseometer phases phasianellidae phasianid phasianidae phasianinae phasianoid phasic phasiron phasis phasm phasmatida phasmatidae phasmatrope phasmida phasmidae phasmoid phasogeneous phasotropy phd pheasant pheasantry pheasants pheasantwood phebe phecda phelgmatic phellandrene phellem phelloderm phellodermal phellogen phellogenetic phellogenic phelloplastic phelonion phelps phemic phemie phenacaine phenaceturic phenacite phenacodontidae phenacyl phenakism phenakistoscope phenanthrene phenanthridine phenanthridone phenanthrol phenarsine phenazine phenazone phene phenelzine phenene phenethyl phenetidine phenetole phengite phengitical phenic pheniciens phenicious phenicopter phenidamine phenin phenindamine pheniramine phenobarbital phenocoll phenocopy phenocryst phenocrystalline phenol phenolate phenolates phenolic phenolization phenological phenologically phenology phenolphthalein phenols phenolsulphonate phenolsulphonephthalein phenomena phenomenal phenomenalism phenomenalistic phenomenally phenomenes phenomenic phenomenist phenomenistic phenomenize phenomenological phenomenology phenomenon phenoplast phenoplastic phenoquinone phenosafranine phenosal phenospermy phenothiazine phenotypic phenotypical phenotypically phenoxazine phenoxide phenoxybenzamine phenozygous phensuximide phentermine pheny phenyl phenylacetic phenylalanine phenylamide phenylate phenylation phenylboric phenylbutazone phenylcarbamic phenylglycine phenylhydrazine phenylhydrazone phenylhydrazones phenylketonuria phenylmethane phenylpropanolamine phenyltoloxamine phenytoin pheo pheochromocytomas pheophyl pheophyll pheophytin phere pherecratean pherecratian pherecratic pherephatta pherkad pheromones pherophatta phew phi phial phialful phialide phiallike phialophore phialospore phials phidiac phidian philadelphia philadelphian philadelphite philalethist philamot philan philanderer philandering philanthid philanthidae philanthrope philanthropian philanthropic philanthropically philanthropies philanthropinism philanthropist philanthropistic philanthropists philanthropize philanthropy philantomba philaristocracy philatelic philatelical philatelically philatelism philatelistic philately philathea philematology philepitta philepittidae philesia philetaerus philharmonic philhellene philhellenic philhellenism philhellenist philiater philip philippa philippic philippicize philippine philippism philippist philippistic philippizer philippus philistia philistian philistinely philistinic philistinish philistinism philliloo phillipsine phillipsite phillyrin philobiblian philobiblist philobotanic philobotanist philobrutish philocalist philocaly philocathartic philocatholic philocophico philoctetes philocubist philocynic philocynicism philodemic philodendron philodespot philodestructiveness philodina philodinidae philodox philodramatist philofelist philogarlic philogenitive philogenitiveness philograph philographic philogynaecic philogynist philogynous philogyny philohela philokleptic philoleucosis philologaster philologastry philologer philologian philologic philological philologically philologist philologistic philologists philologize philology philomath philomathematic philomathematical philomathic philomathical philomathy philomel philomusical philonian philonic philonism philonist philonium philonoist philopagan philopater philopatrian philopena philophilosophos philoplutonic philopoet philopogon philopolemic philopolemical philopornist philoprogeneity philoprogenitive philoprogenitiveness philopterid philopteridae philopublican philoradical philorchidaceous philornithic philosoohic philosophaster philosophastering philosophedom philosopher philosopheress philosophers philosophership philosophiae philosophic philosophical philosophically philosophicalness philosophicide philosophicohistorical philosophicolegal philosophicoreligious philosophie philosophies philosophique philosophischen philosophise philosophism philosophister philosophistical philosophization philosophize philosophized philosophling philosophobia philosophocracy philosophos philosophunculist philosophy philotadpole philotechnic philotechnical philothaumaturgic philotheism philotheist philotheistic philotheosophical philotherian philotherianism philotria philoxenian philoxygenous philozoonist philter philterer philterproof philtra philtre philydraceous philyra phimosed phimotic phineas phipps phit phiz phizog phlebalgia phlebangioma phlebarteriectasia phlebarteriodialysis phlebectasis phlebectasy phlebectopia phlebectopy phlebemphraxis phlebenteric phlebenterism phlebitis phlebogram phlebograph phleboidal phlebolite phlebolith phlebolithiasis phlebolithic phlebolitic phlebological phlebometritis phleborrhagia phleborrhexis phlebosclerotic phlebostasia phlebostenosis phlebostrepsis phlebothrombosis phlebotome phlebotomic phlebotomist phlebotomus phlebotomy phlegethontic phlegm phlegmagogue phlegmatic phlegmatical phlegmatically phlegmaticalness phlegmaticly phlegmaticness phlegmatous phlegmless phlegmonic phlegmonous phlegmy phleum phlobaphene phlobatannin phloem phloeophagous phlogisma phlogistian phlogistic phlogisticated phlogiston phlogistonism phlogogenetic phlogogenic phlogogenous phlogopite phlogosed phlomis phloretic phloroglucic phloroglucin phlorone phlox phloxin phnom pho phobiac phobias phobic phobist phobophobia phobos phoby phocaceous phocaean phocaenine phocean phocid phocidae phocinae phocine phocodont phocodontia phocodontic phocoid phocomelia phocomelus phoebe phoebean phoenicaceous phoenicales phoenicean phoenicia phoenicid phoenicite phoenicize phoenicochroite phoenicopteridae phoenicopteriformes phoenicopteroid phoenicopterous phoenicopterus phoeniculidae phoeniculus phoenicurous phoenigm phoenix phoenixlike phoh pholad pholadian pholadid pholadinea pholadoid pholcid pholcidae pholcoid pholcus pholidolite pholidote pholiota phomopsis phon phonal phonasthenia phonate phonation phonatory phonautographic phonautographically phone phoned phoneidoscope phoneidoscopic phonelescope phonemic phonemics phonendoscope phones phonesis phonestheme phonetic phonetical phoneticization phoneticize phoneticogrammatical phonetics phonetism phonetist phoniatrics phoniatry phonics phonies phonikon phonism phono phonodeik phonodynamograph phonogramic phonogrammatic phonogrammatical phonogrammic phonogrammically phonograph phonographer phonographic phonographical phonographist phonolite phonologer phonologic phonologically phonology phonometer phonometric phonometry phonomotor phonon phonopathy phonophore phonophoric phonophorous phonophote phonophotography phonophotoscope phonophotoscopic phonoscope phonotelemeter phonotype phonotypical phonotypically phonotypist phony phora phoradendron phoranthium phoresy phoria phorminx phormium phorology phorometric phorometry phorone phoronic phoronidea phoronis phoronomic phoronomics phoronomy phororhacos phoroscope phorozooid phos phose phosgene phosgenic phosis phosphagen phospham phosphamide phosphamidic phosphatase phosphate phosphated phosphatemia phosphates phosphatese phosphatic phosphatide phosphation phosphatization phosphatize phosphatized phosphaturia phosphaturic phosphene phosphenyl phosphide phosphine phosphinic phosphoaminolipide phosphocarnic phosphocreatine phosphoferrite phosphoglobulins phosphoglycerate phosphoglyceric phosphoglycoprotein phospholipide phospholipin phosphomolybdate phosphonate phosphonic phosphonium phosphophyllite phosphoprotein phosphor phosphorate phosphore phosphoreal phosphoreous phosphorescence phosphorescent phosphorescently phosphoreted phosphori phosphoric phosphorical phosphorism phosphorite phosphorize phosphorograph phosphorographic phosphoroscope phosphorous phosphorus phosphoryl phosphorylase phosphorylate phosphorylation phosphotartaric phosphotungstate phosphotungstic phosphuret phosphuretted phosphuria phosphyl phossy photaesthesia photaesthetic photal photalgia photechy photelectrograph photeolic photesthesis photics photinia photinian photinianism photism photistic photo photoactinic photoactivation photoactive photoalgraphy photoanamorphosis photoaquatint photobacterium photobiotic photobromide photocampsis photocatalyst photocatalytic photocatalyzer photocell photoceptor photoceramics photoceramist photochemic photochemical photochemically photochemigraphy photochemist photochloride photochlorination photochromascope photochromatic photochrome photochromography photochromolithograph photochromoscope photochromotype photochromotypy photochronographical photocoagulation photocollograph photocollographic photocollography photocollotype photocombustion photocompose photocomposition photoconductivity photocopier photocopy photocrayon photodecomposition photodermatic photodissociation photodrama photodramatic photodramatics photodramatist photodramaturgic photodramaturgy photodrome photodromy photodynamic photodynamical photodysphoria photoelastic photoelasticity photoelectrically photoelectricity photoelectron photoelectrotype photoemissive photoengrave photoengraving photoepinastic photoepinastically photoepinasty photoesthetic photoetch photoetcher photoetching photofilm photofinish photofinisher photofinishing photofloodlamp photogalvanograph photogalvanographic photogastroscope photogen photogenic photogenous photoglyph photoglyphography photoglyphy photoglyptic photogram photogrammetrical photogrammetry photograph photographable photographed photographer photographeress photographers photographess photographic photographically photographing photographischen photographometer photographs photography photogravure photoheliometer photohyponastic photohyponastically photohyponasty photoimpression photoinactivation photoinduction photoinhibition photointaglio photoionization photoisomeric photokinetic photolitho photolithograph photolithographic photologic photological photologist photology photoluminescence photoluminescent photolyse photolysis photolyte photolytic photolyze photoma photomagnetic photomagnetism photomapper photomechanical photometer photometric photometrical photometrically photometrician photometrist photometry photomezzotype photomicrogram photomicrographic photomicrography photomicroscopy photomontage photomorphosis photon photonasty photonegative photonosus photons photooxidation photopathic photopathy photoperceptive photoperimeter photoperiod photophile photophilic photophilous photophobia photophobic photophone photophonic photophony photophore photophysicist photopic photopile photoplay photoplayer photoplaywright photopolymerization photoprint photoprinter photoprinting photoptometer photoradio photoradiogram photoreception photoreceptive photoregression photorelief photos photosalt photosantonic photoscope photosculptural photosculpture photosensitive photosensitiveness photosensitization photosensitizer photosensory photospectroheliograph photospectroscope photospectroscopical photospectroscopy photosphere photostability photostable photostat photostationary photostereograph photosurveying photosynthetic phototachometric phototachometrical phototachometry phototactic phototactically phototaxis phototaxy phototelegraphy phototelephone phototelephony phototelescope phototelescopic phototherapeutics phototherapy photothermic phototonic phototonus phototopographic phototopographical phototopography phototoxicity phototrichromatic phototrope phototrophic phototropic phototropically phototropism phototropy phototube phototype phototypic phototypist phototypographic phototypography phototypy photovisual photovitrotype photovoltaic photoxylography photozinco photozincotypy photuria phractamphibia phragma phragmites phragmocone phragmoid phragmosis phrasal phrasally phrase phraseable phrased phraseless phrasemaker phraseman phrasemonger phrasemongery phraseogram phraseograph phraseographic phraseography phraseological phraseologically phraseology phraser phrases phrasing phrasy phratral phratriac phratrial phratry phreatic phreatophyte phrenesia phrenesiac phrenetically phrenic phrenicectomy phrenicocolic phrenicocostal phrenicogastric phrenicohepatic phrenicopericardiac phrenicosplenic phrenicotomy phrenics phrenitis phrenocolic phrenocostal phrenodynia phrenogastric phrenoglottic phrenograph phrenography phrenohepatic phrenologer phrenologic phrenological phrenologically phrenologist phrenologize phrenology phrenomesmerism phrenopathia phrenopathic phrenoplegia phrenoplegy phrenosin phrenosinic phrenosplenic phrenzy phronima phrontisterion phrontisterium phrontistery phryganea phryganeid phryganeidae phryganeoid phrygian phrygianize phrygium phryma phrymaceae phrynid phrynidae phrynin phrynoid phthalan phthalanilic phthalate phthalazin phthalazine phthalein phthalic phthalid phthalimide phthalimides phthalin phthalocyanine phthalyl phthanite phthartolatrae phthinoid phthiocol phthiriasis phthirius phthirophagous phthisical phthisicky phthisiogenesis phthisiogenetic phthisiogenic phthisiology phthisiotherapeutic phthisiotherapy phthisipneumonia phthisipneumony phthisis phthongal phthongometer phthor phthoric phu phugoid phulkari phulwa phulwara phut phyciodes phycite phycitidae phycitol phycochromaceous phycochrome phycochromophyceae phycochromophyceous phycocyanin phycocyanogen phycodromidae phycoerythrin phycological phycologiques phycology phycomyces phycomycete phycomycetes phycomycetous phycophaein phycopyrrin phycoxanthine phygogalactic phyla phylacterical phylacteried phylacteries phylacterize phylactery phylactocarp phylactolaema phylactolema phylactolemata phylarch phylarchic phylarchical phylarchy phylesis phyletism phylic phyllachora phyllactinia phyllade phyllanthus phyllary phyllaurea phylliform phyllin phyllites phyllitic phyllitis phyllium phyllobranchia phyllobranchial phyllobranchiate phyllocactus phyllocarid phyllocarida phylloceras phylloceratidae phylloclade phyllocladium phyllocyanin phyllode phyllodineous phyllodiniation phyllodinous phyllodium phyllodoce phylloerythrin phyllogenetic phylloidal phylloideous phyllomancy phyllomic phyllomorph phyllomorphic phyllomorphosis phyllomorphy phyllophaga phyllophagous phyllophore phyllophorous phyllopod phyllopoda phyllopodan phyllopode phyllopodiform phyllopodium phyllopodous phylloporphyrin phyllopteryx phylloptosis phyllopyrrole phyllorhinine phyllosiphonic phyllosoma phyllosomata phyllosome phyllospondylous phyllostachys phyllosticta phyllostoma phyllostomatidae phyllostomatoid phyllostomatous phyllostomidae phyllostominae phyllostomine phyllotactic phyllotaxy phyllous phylloxera phylloxeran phylloxeric phyllozooid phylogenetic phylogenetical phylogenetically phylogenist phylogeny phylogerontic phylogerontism phylography phylology phyloneanic phylonepionic phylum phyma phymata phymatidae phymatodes phymatoid phymatorhysin phymatosis phymosia physa physagogue physalian physaliidae physalite physalospora physapoda physcia physciaceae physeter physeterinae physeteroid physharmonica physianthropy physiatric physiatrics physic physical physicalism physicalist physicalistically physically physicalness physician physicianary physiciancy physicianed physicianess physicianless physicianly physicians physicianship physicism physicist physicists physick physicked physicker physicking physicky physicoastronomical physicochemic physicochemical physicochemically physicochemistry physicogeographical physicologic physicological physicomechanical physicomedical physicomental physicomorph physicomorphic physicomorphism physicooptics physicophilosophical physicophilosophy physicophysiological physicopsychical physicosocial physicotheological physicotheology physicotherapeutic physics physiform physiochemical physiochemically physiocracy physiocrat physiocratic physiocratist physiogenesis physiogenic physiognomic physiognomical physiognomically physiognomies physiognomist physiognomists physiognomize physiognomonic physiognomy physiogony physiographer physiographic physiographical physiographically physiography physiolater physiolatry physiologer physiologian physiologic physiological physiologically physiologicoanatomic physiologie physiologist physiologists physiologize physiologus physiology physiophilist physiopsychic physiopsychical physiopsychology physiosociological physiosophic physiotherapeutic physiotherapeutical physiotherapeutics physiotherapist physiotherapy physique physiques physischen physitheism physitheistic physiurgy physocarpous physocele physoclist physoclisti physoderma physogastric physogastrism physogastry physometra physonectae physophorae physophoran physophorous physostegia physostigma physostigmine physostome physostomi physostomous phytase phytelephas phytiferous phytiform phytin phytobacteriology phytobezoar phytobiological phytobiology phytochemistry phytochlorin phytodynamics phytoecological phytoecologist phytoecology phytogenetic phytogenetical phytogenetically phytogenic phytogenous phytogeny phytogeographic phytogeographical phytogeographically phytogeography phytoglobulin phytographic phytography phytoid phytol phytolacca phytolaccaceae phytolaccaceous phytolatrous phytolithological phytological phytology phytoma phytomastigoda phytome phytometer phytometric phytometry phytomonad phytomonadida phytomonas phytomorphic phytomorphology phyton phytonic phytonomy phytopaleontologic phytopaleontological phytopaleontology phytoparasite phytopathogen phytopathogenic phytopathologic phytopathologist phytopathology phytophaga phytophagan phytophagic phytophagous phytopharmacology phytophil phytophilous phytophotodermatitis phytophthora phytophylogenetic phytophylogenic phytophylogeny phytophysiology phytoplankton phytopsyche phytoptose phytoptosis phytoptus phytosaur phytosauria phytosaurian phytoserological phytoserologically phytoserology phytosociologic phytosociologically phytosociology phytosterin phytotechny phytoteratological phytoteratologist phytotoma phytotomidae phytotomy phytotopographical phytotopography phytotoxin phytovitellin phytozoa phytozoan phytozoaria phytyl pi pia piaba piacaba piacular piacularly piaculum piaffer pial pialyn pian pianette pianino pianism pianissimo pianist pianiste pianistically piannet piano pianoforte pianofortist pianograph pianokoto pianola pianos piarhemia piarhemic piaroan piarroan piassava piast piaster piastres piation piazine piazza piazzaed piazzaless piazzas piazzian pibcorn piblokto pibroch pica picador picadura picae pical picanninnies picara picard picarel picaresque picariae picarii picaro picaroon picasso picayune picayunes picayunish picayunishness piccadill piccalilli piccolo piccoloist pice picea picene picenian piceotestaceous piceous pichiciago pichuric pici picidae piciform piciformes picinae picine picious pick pickaback pickableness pickaninny pickaroon pickaway pickaxe pickaxes picked pickedness pickee pickeer pickerel pickerelweed pickeringite pickers pickery picket picketboat picketed picketing pickets pickett pickford pickietar picking pickings pickle pickled pickleman pickler pickles pickleweed pickleworm pickling picklocks pickmaw picknick picknicker pickover pickpocket pickpocketism pickpocketry pickpockets pickpole pickpurse picks pickshaft picksman picksmith picksome picksomeness pickthankly pickthankness picktooth pickup pickwick pickwickianism pickwickianly picky picnic picnicked picnickers picnickian picnicking picnickish picnicky picnics picofarad picogram picojoule picoline picolinic picos picot picotee picotite picquet picqueter picra picraconitine picramic picramnia picrasmin picrated picric picris picrite picrocarmine picrodendraceae picrodendron picroerythrin picrorhiza picrorhizin picrotoxic picrotoxinin picryl pict pictarnie pictavi picter pictish pictograoh pictographic pictographically pictography pictones pictoradiogram pictorial pictorialize pictorially pictorialness pictorical pictorically picturability picturably picture pictured picturedom pictureful pictureless picturely picturemaker picturemaking picturer pictures picturesque picturesquely picturesqueness picturing picturization picturize pictury picucule picuda picul piculet picumninae picumnus picunche picuris pid pidan piddle piddler piddling piddock pidgin pidii pie piebald piebaldism piebaldly piece pieceable pieced piecee piecemaker piecemeal piecen piecer pieces piecette piecewise piecework pieceworker piecing piecrust pied piedly piedmont piedmontal piedmontite piedness piegan piehouse pielum piemag pieman piemarker pien pienanny piepan pieplant piepoudre piepowder pieprint pier pierage pierce pierceable pierced piercel pierceless piercer pierces pierceth piercing piercingly piercingness pierdrop pierhead pierian pieridae pierides pieridinae pieridine pierinae pieris pierlike pierre pierrot pierrotic pierrots piers pierson pies piesse pieta pietas pietic pieties pietism pietistic pietistically pietose pietra pietri piety piewipe piewoman piezo piezochemical piezocrystallization piezoelectric piezoelectrically piezoelectricity piezometer piezometric piezometrical piezometry piff pifferari pifferaro piffle pifine pig pigbelly pigdan pigdom pigeon pigeonable pigeonberry pigeoneer pigeoner pigeonfoot pigeongram pigeonhearted pigeonholed pigeonry pigeons pigeontail pigeonweed pigeonwing pigeonwood pigface pigflower pigful piggeries piggery piggin pigging piggish piggishly piggishness piggle piggy pighead pigheaded pigheadedly pigheadedness pigherd pigless piglet piglinghood pigly pigmaker pigment pigmentally pigmentary pigmentation pigmented pigmentless pigments pigmy pignic pignolia pignon pignorate pignoration pignorative pignoris pignus pigpen pigpens pigritude pigroot pigs pigsconce pigskin pigsney pigstick pigsticker pigsties pigsty pigtail pigtails pigwash pigweed pigwidgeon piitis pijoperties pik pike piked pikel pikelet pikeman pikemen pikemonger piker pikes pikestaff piketail pikey pikle piky pilapil pilar pilary pilastering pilasters pilastric pilaued pilch pilchard pilcher pilcorn pilcrow pile pileated piled pileiform pileolated pileolus pileorhiza pileorhize piler piles pilework pileworm pilewort pilfer pilferage pilfered pilferer pilfering pilferingly pilferings pilgarlic pilgrim pilgrimage pilgrimager pilgrimages pilgrimdom pilgrimer pilgrimism pilgrims pili piliferous piliform piligerous pilikai pililloo piline piling pill pillage pillageable pillaged pillagee pillager pillages pillaging pillar pillared pillaret pillaring pillarize pillarlet pillarlike pillars pillary pillas pillbox pilled pilledness pilleus pillion pilliver pillmaker pillmaking pilloried pillory pillow pillowcase pillowcases pillowed pillowing pillowmade pillows pillowy pills pillsbury pillworm pillwort pilm pilmy pilocarpidine pilocarpine pilocarpus pilocereus piloerection pilomotor pilon pilonidal pilori pilose pilosine pilosis pilosism pilosity pilot pilotage pilotaxitic piloted piloting pilotism pilotless pilotman pilotry pilots pilotship pilpai pilpay pilpulistic piltock pilular pilule pilulist pilulous pilum pilumnus pilus pilwillet pily piman pimaric pimelate pimelea pimelite pimenta pimento pimgenet pimienta pimlico pimola pimp pimpery pimpinella pimpla pimpleback pimpled pimpleproof pimples pimplinae pimpliness pimplo pimploe pimply pimpship pin pina pinaceous pinaces pinachrome pinacle pinacles pinacoceras pinacoceratidae pinacocytal pinacoid pinacoidal pinacolic pinacolin pinacone pinacoteca pinacyanol pinafore pinafores pinakoidal pinakotheke pinaleno pinales pinang pinaverdol pinball pinbefore pinbone pinbush pincase pincement pincer pincers pinch pinchable pinchback pinchbeck pinchcrust pinche pinched pinchedness pinchem pincher pinches pinchfisted pinching pinchings pinchpenny pincian pincoffin pincpinc pinctada pincushion pincushiony pindari pindaric pindarically pindarism pindarist pindarize pinder pindolol pindy pine pineal pinealism pinealoma pineapple pineapples pined pinene piner pinery pines pinetum pineweed pinewood pinewoods piney pinfall pinfeatherer pinfeathery pinfish pinfold ping pingle pinguecula pinguedinous pinguefaction pinguescence pinguescent pinguicula pinguiculaceous pinguid pinguidity pinguiferous pinguin pinguinitescent pinguite pinguitude pinguitudinous pinheaded pinheadedness pinheads pinhold pinhole pinic piniferous piniform pining piningly pinion pinioned pinioning pinionless pinionlike pinions pinipicrin pinitannic pinite pinitol pinivorous pink pinkberry pinked pinkeen pinken pinker pinkerton pinkertonism pinkest pinkey pinkeye pinkfish pinkify pinkiness pinking pinkish pinkishness pinkness pinko pinkroot pinks pinkweed pinkwood pinkwort pinky pinless pinlock pinna pinnace pinnacle pinnacled pinnacles pinnaclet pinnae pinnal pinnate pinnated pinnatedly pinnatifid pinnatilobate pinnation pinnatipartite pinnatiped pinnatopectinate pinnatulate pinned pinner pinnet pinniferous pinniform pinnigerous pinnigrada pinninervate pinninerved pinning pinniped pinnipedia pinnisect pinnisected pinnitarsal pinnitentaculate pinniwinkis pinnock pinnoite pinnotere pinnothere pinnotherian pinnotheridae pinnular pinnule pinny pinochle pinocytosis pinole pinoleum pinolia pinolin pinon pinpillow pinpoint pinpointed pinpointing pinrail pins pinsapo pinsetter pinsky pinstripe pint pintadera pintadine pintado pintano pinte pinted pintle pinto pints pintura pinulus pinup pinus pinweed pinwheel pinwork pinworm pinworms pinxter piny pinyl pinyon pioneer pioneerdom pioneering pioneers pioscope pioted piotine piotr pioury pious piously piousness pioxe pipa pipage pipe pipeage pipeclay pipecoline piped pipeful pipelayer pipeless pipelike pipeman piper piperaceous piperate piperazin piperazine piperic piperidge piperidide piperidine piperitious piperno piperonal piperonyl pipery piperylene pipes pipestapple pipestems pipette pipewalker pipework pipewort pipi pipil pipile pipilo piping pipingness pipings pipiri pipistrellus pipit pipkin pipkinet pipless pipped pipper pippin pippinface pippy pipra pipridae piprinae piprine pips piptadenia pipunculidae pipy piquance piquancy piquant piquante piquantly piquantness pique piqued piques piquet piquia piquing pira piracy piraeus piragua piranga piranha pirate pirated pirates piratic piratical piratically piratism piratize piraty piricularia pirijiri piripiri piririgua pirl pirner pirnie pirny pirogue pirogues pirol piroplasm piroplasma piroplasmosis pirouette pirouetted pirouetter pirouetting pirouettist piroxicam pirr pirraura pirssonite pis pisaca pisanite pisauridae pisay piscary piscataqua piscation piscatology piscator piscatorial piscatorialist piscatorially piscatorian piscatorious piscatory pisces piscian piscicapture piscicapturist piscicolous pisciculture piscidia piscifauna pisciferous pisciform piscina piscinal piscine piscinity piscis piscivorous pisco pish pishaug pishu pisidium pisiform pisistratidae pisk pisky pismirism piso pisolite pisolitic pison pisonia piss pissabed pissant pissed pissing pist pistache pistachio pistachios pistacite pistia pistic pistillaceous pistillar pistillary pistilliferous pistilliform pistilligerous pistilline pistillode pistilloid pistle pistol pistole pistoleer pistoles pistolet pistolgram pistolgraph pistollike pistology pistols piston pistonlike pistons pisum pit pita pitahauirata pitahaya pital pitangua pitapatation pitarah pitch pitchable pitchblende pitched pitcher pitcherman pitchers pitches pitchfork pitchforked pitchforks pitchi pitchiness pitching pitchlike pitchman pitchpike pitchstone pitchstones pitchwork pitchy piteous piteously piteousness pitfall pitfalled pitfalls pith pithead pithecanthrope pithecanthropic pithecanthropid pithecanthropus pithecia pithecian pitheciinae pithecolobium pithecological pithecometric pithecomorphic pithecomorphism pithful pithiness pithless pithlessly pithoigia pithole pithos pithsome pithwork pithy pitiability pitiable pitiableness pitiably pitie pitied pitiedly pitiedness pitier pities pitiful pitifullest pitifully pitifulness pitiless pitilessly pitless pitlike pitmaking pitmark pitometer piton pitpan pitpit pits pitt pittacal pittance pittancer pitted pitter pitticite pittiful pitting pittism pittite pittoid pittoresque pittori pittosporaceae pittosporaceous pittosporum pittsburgh pittsfield pituital pituitary pituite pituitous pituitousness pituitrin pituri pitwood pitwright pity pitying pityingly pitylus pityproof pityrogramma pityroid piu piuri piuricapsular pius pivot pivotal pivotally pivoted pivoter pivoting pix pixel pize pizener pizenest pizza pizzeria pizzicato pkd pkr placability placable placableness placaean placard placarded placarding placards placate placating placatingly placation placative placatively placatory placcate place placeable placean placebo placebos placed placeful placeholder placeless placemaking placeman placemanship placement placemonger placenta placentalia placentary placentate placentation placentigerous placentoma placer places placest placet placewoman placid placidity placidly placidness placing plack plackless placoderm placodermal placodermatous placodermi placodermoid placoganoid placoganoidei placoidean placoidei placophora placophoran placoplast placula placuntitis placus plaeed plaga plagal plagianthus plagiaplite plagiarical plagiarii plagiarise plagiarism plagiarist plagiaristic plagiaristically plagiarize plagiarized plagiarizing plagiary plagihedral plagiocephalic plagiocephalism plagioclase plagioclases plagioclasite plagioclastic plagioclinal plagiodont plagiograph plagioliparite plagionite plagiopatagium plagiostomata plagiostomatous plagiostomi plagiotropic plagiotropically plagiotropism plagiotropous plagium plagosity plague plagued plagueful plagueless plagues plaguesomeness plaguing plaguy plaice plaid plaided plaidie plaiding plain plainback plainclothesman plained plainer plaines plainest plainfield plainhearted plainish plainly plainness plains plainsfolk plainsman plainsoled plainsong plainspoken plaint plaintiff plaintile plaintive plaintively plaintiveness plaintless plainward plaisir plaisirs plaistering plait plaited plaiter plaiting plaits plaitwork plan planable planaea planar planaria planarian planarida planariform planarioid planarity planation planch plancheite plancher planchette planching planchment plancier planck planctu plane planed planeload planeness planer planera planes planet planeta planetable planetabler planetal planetaria planetarily planetarum planetary planeted planeting planetlike planetogeny planetoid planetologic planetology planets planful planfully planfulness plang plangor plangorous planicaudate planifolious planiform planigraph planilla planimeter planimetry planineter planing planipetalous planiphyllous planirostrate planiscope planiscopic planish planished planisher planishing planispheral planisphere planispheric planispherical planispiral planity plank plankage planked planker planking planklike planks planksheer planktologist plankton planktonic planktont plankwise planky planless planlessly planlessness planned planning planoblast planoblastic planoconcave planoconical planoconvex planogamete planograph planographic planographist planography planometry planorbine planorbis planorotund planosarcina planosome planospiral plans plant planta plantable plantage plantaginaceae plantaginales plantagineous plantain plantains plantal plantaris plantarium plantarum plantation plantations planted planter planterdom planterly planters plantes plantest planteth plantigrade plantigrady planting plantings plantivorous plantlet plantlike plantling plants plantula plantule planula planulan planular planulate planuliform planuloid planuloidea planuria planury plap plaque plaques plaquette plash plashed plasher plashet plashing plashingly plashment plasm plasma plasmapheresis plasmase plasmatical plasmation plasmatoparous plasmatorrhexis plasmic plasminogen plasmocyte plasmocytoma plasmode plasmodesm plasmodesmic plasmodesmus plasmodia plasmodial plasmodiate plasmodiocarp plasmodiocarpous plasmodiophora plasmodium plasmogen plasmolytic plasmolytically plasmolyzability plasmolyzable plasmolyze plasmon plasmopara plasmophagy plasmoptysis plasmosoma plasmosome plasmotomy plasome plass plastein plaster plastered plasterer plasterers plasteriness plastering plasterlike plasters plasterwise plastery plastic plastically plasticimeter plasticine plasticity plasticization plasticize plasticizer plastics plastid plastidium plastidozoa plastids plastidular plastidule plastin plastinoid plastisol plastochondria plastochron plastochrone plastogamic plastogamy plastogene plastometer plastosome plastotype plastral plastron plastrum plat plataean platalea plataleiform plataleinae plataleine platan platanaceae platanaceous platane platanista platanus platch plate plateasm plateau plateaus plateaux plated plateful plateglass plateiasmus platelayer plateless platelet platemaker platemaking plateman platen platerer plateresque platers platery plates platework plateworker platform platformally platformed platformer platformish platformism platformist platformistic platformless platforms platformy platicly platilla platina platinamine platinammine platine plating platinic platinichloric platinichloride platiniridium platinized platinochloride platinoid platinous platinum platinumsmith platitude platitudes platitudinarian platitudinism platitudinist platitudinization platitudinize platitudinous platitudinousness plato platoda platode platonian platonic platonical platonically platonicalness platonician platonistic platonization platonize platonizer platoon platoons platopic platosamine platt plattdeutsch platte platted platter platterface platterful platters platting plattnerite platybasic platybrachycephalic platybrachycephalous platycarpous platycarpus platycarya platycelian platycelous platycephalidae platycephalism platycephaloid platycephalus platycephaly platycercinae platycercine platycnemia platycnemic platycodon platycrania platycranial platyctenea platycyrtean platydactyl platydactyle platydactylous platydolichocephalic platydolichocephalous platyfish platyglossal platyglossate platyhelmia platyhelminth platyhelminthic platyhieric platymeria platymeric platymery platymesaticephalic platymeter platynite platyopia platyopic platypellic platypetalous platypod platypoda platypodous platyptera platyrhina platyrhynchous platyrrhina platyrrhine platyrrhini platyrrhinian platyrrhinic platyrrhinism platyrrhiny platysma platysmamyoides platysomid platysomidae platystaphyline platystemon platystencephalia platystencephalic platystencephaly platysternal platysternidae platystomidae platystomous plauditory plaudits plaudo plausibility plausible plausibleness plausibly plausive plautine plautus plaved play playa playability playable playact playback playbill playbroker playcraft playcraftsman playday playdown played playedst player playerdom playeress players playfellow playfellows playfellowship playfield playful playfully playfulness playgoer playgoing playground playgrounds playhouse playhouses playing playingly playland playless playlet playmaker playmaking playmate playmates playmonger playne playock playoff playroom plays playscript playsomely playstead playsuit plaything playthings playtime playward playwork playwright playwrightess playwrightry playwrights playwriting plazolite ple plea pleacher plead pleadable pleadableness pleaded pleader pleaders pleading pleadingly pleadingness pleadings pleads pleaproof pleas pleasable pleasableness pleasance pleasant pleasanter pleasantest pleasantish pleasantly pleasantness pleasantries pleasantry pleasantsome please pleased pleasedness pleaseman pleaser pleases pleaseth pleaship pleasing pleasingly pleasingness pleasurability pleasurable pleasurableness pleasurably pleasure pleasureable pleasureless pleasurement pleasuremonger pleasureproof pleasurer pleasures pleasureth pleasuring pleasurous pleat pleated pleater pleatless pleats pleb plebe plebeian plebeiance plebeianize plebeianly plebeianness plebeians plebeity plebian plebianism plebicolar plebicolist plebificate plebify plebis plebiscitarian plebiscitarism plebiscite plebiscitic plebs pleck plecoptera plecopterous plecotinae plecotine plecotus plectognathic plectopter plectopterous plectospondyl plectospondylous plectre plectridial plectron plectrum pled pledge pledgeable pledged pledgee pledgeless pledgeor pledges pledgeshop pledget pledging plegadis plegaphonia plegometer pleiad pleine pleins pleiobar pleiochromic pleiomastia pleiomazia pleiomerous pleiomery pleion pleione pleiophyllous pleiotaxis pleiotropic pleiotropically pleiotropism pleistocene pleistoseist plemochoe plenarily plenariness plenarium plenarty plenary plenicorn pleniloquence plenilunary plenilune plenipo plenipotence plenipotentiaries plenipotentiarily plenipotentiarize plenipotentiary plenipotentiaryship plenishing plenishings plenishment plenist plenitude plenshing plenteous plenteously plenteousness plentiful plentifully plentifulness plentimus plentitude plenty plenum pleochroic pleochroism pleochromatic pleochromatism pleodont pleomastic pleomazia pleometrotic pleomorphism pleomorphist pleomorphy pleonal pleonasm pleonastical pleonastically pleonectic pleonic pleopod pleospora pleosporaceae plerergate pleroma plerome pleromorph plerophory plesiobiosis plesiomorphous plesiosauri plesiosauria plesiosaurian plesiosauroid plesiosaurus plesiotype plessigraph plessimetric plessimetry plessor plethodon plethodontidae plethora plethoras plethoretical plethoric plethorical plethorically plethorous plethory plethysmographic plethysmographically plethysmography pletty pleura pleuracanthea pleuracanthidae pleuracanthini pleuracanthoid pleuracanthus pleural pleuralgia pleurapophysial pleurenchyma pleurenchymatous pleuric pleuriseptate pleurisy pleuritic pleuritical pleuritis pleuro pleurobrachia pleurobrachiidae pleurobranch pleurobranchia pleurobranchial pleurobranchiate pleurocapsa pleurocarp pleurocarpi pleurocarpous pleurocentral pleurocentrum pleurocera pleurocerebral pleuroceridae pleurococcaceae pleurococcaceous pleurococcus pleurodelidae pleurodire pleurodirous pleurodiscous pleurodont pleurodynia pleurodynic pleurogenic pleurogenous pleurohepatitis pleurolysis pleuron pleuronectes pleuronectoid pleuropedal pleuropericardial pleuropericarditis pleuroperitonaeal pleuroperitoneal pleuroperitoneum pleuropulmonary pleurosaurus pleurosigma pleurosteon pleurostigma pleurothotonic pleurotomaria pleurotomarioid pleurotomy pleurotribal pleurotropous pleurotus pleurotyphoid pleurovisceral pleurum pleuston plew plex plexicose plexiform plexiglas pleximeter pleximetry plexodont plexometer plexor plexu plexure plexus plexuses pliability pliable pliably pliancy pliant pliantly plica plicable plicae plical plicate plicated plicater plicatile plication plicatocontorted plicatocristate plicator plicatoundulate plicatulate plicature plicit plied pliers plies plight plighted plighter plilate plilates plim plimmed pline plinian plink plinth plinthiform pliny plinyism pliohippus pliosaur pliosaurian pliosauridae pliothermic pliotron plis plish pliskie plisky ploce ploceidae ploceiform ploceinae ploceus plock plod plodded plodder plodderly plodding ploddingly plodge plods ploima ploimate plop plopped ploring plosion plosive plot plote plotful plotinic plotinical plotinism plotinist plotinize plotless plotproof plots plottage plotted plotter plotters plotting plottingly plotty plough ploughed ploughing ploughings ploughman ploughmanship ploughs ploughshare ploughshares ploughtail plouky plounce plousiocracy plouteneion plouter plove plover ploverlike plovery plow plowable plowbote plowboy plowe plowed plower ploweth plowfish plowfoot plowgate plowgraith plowhead plowing plowjogger plowland plowlight plowline plowmaker plowman plowmell plowmen plows plowshoe plowstaff plowter plowwise plowwoman plowwright ploy pluck plucked pluckerian pluckers pluckily plucking pluckless plucklessness plucks plucky plud pluff pluffer plug plugboard pluggable plugged plugging pluggy plugless pluglike plugman plugs plugtray plugtree plum pluma plumaceous plumage plumaged plumagery plumate plumatellid plumatellidae plumatelloid plumb plumbage plumbaginaceous plumbagine plumbaginous plumbago plumbate plumbean plumbed plumbeous plumber plumbers plumbership plumbery plumbet plumbic plumbism plumbisolvent plumbite plumbless plumbness plumbog plumbosolvent plumbs plumbum plumcot plumdamis plume plumed plumeless plumelet plumelike plumemaking plumeous plumes plumette plumier plumiform plumiformly plumigerous pluminess plumipede plumist plumlet plummer plummet plummeted plummetless plummy plumose plumous plump plumped plumper plumpers plumping plumpish plumply plumpness plumps plumpy plums plumula plumulaceous plumularia plumularian plumulariidae plumulate plumuliform plumulose plumy plunder plunderable plundered plunderer plunderers plundering plunderingly plunderless plunderous plunderproof plunge plunged plunger plungers plunges plunging plungingly plunk plunks plup pluperfectly pluperfectness plural pluralism pluralist pluralistic pluralistically pluralities plurality pluralize pluralizer plurally plurative plurennial pluriaxial pluribus pluricarinate pluricentral pluricuspid pluricuspidate pluridentate pluries plurifacial plurification pluriflagellate pluriflorous plurifoliolate plurify pluriglandular pluriguttulate plurilateral plurilocular plurimos plurinominal plurinucleate pluripara pluriparity pluripartite pluripetalous pluripotence pluripotent pluriseptate pluriseriate pluriseriated plurisporous plurisyllable plurivalent plurivory plus plush plushed plushiness plushlike plushy plusiinae plusquam plusquamperfect plussage plutarch plutarchian plutarchical plutarchically plutarchy plutean pluteus pluto plutocracy plutocrat plutocratic plutocratical plutocrats plutological plutologist plutology plutomania plutonic plutonion plutonism plutonist plutonite plutonium plutonometamorphism plutonomic plutonomist pluvialine pluvialis pluviographical pluviography pluviometrical pluviometrically pluviometry pluvioscope pluviose pluviosity pluvious ply plyer plyers plying plymouthism plymouthist plymouthite plyscore pm pma pms pneodynamics pneomanometer pneometer pneoscope pneuma pneumathaemia pneumatic pneumatically pneumaticity pneumatics pneumatism pneumatize pneumatized pneumatocardia pneumatocele pneumatochemical pneumatochemistry pneumatocyst pneumatocystic pneumatode pneumatogenic pneumatogenous pneumatogram pneumatographer pneumatography pneumatolitic pneumatological pneumatologist pneumatology pneumatolysis pneumatolytic pneumatomachian pneumatomachy pneumatometer pneumatomorphic pneumatophany pneumatophilosophy pneumatophobia pneumatophonic pneumatophore pneumatophorous pneumatoscope pneumatosic pneumatotactic pneumatotherapeutics pneumatotherapy pneumaturia pneumobranchia pneumobranchiata pneumocele pneumochirurgia pneumococci pneumococcic pneumococcous pneumoconiosis pneumoderma pneumoencephalitis pneumoenteritis pneumogastric pneumogram pneumography pneumohemothorax pneumohydropericardium pneumohydrothorax pneumolith pneumolithiasis pneumological pneumolysis pneumomalacia pneumomassage pneumometer pneumonalgia pneumonectomy pneumonedema pneumonia pneumoniae pneumonic pneumonitis pneumonocace pneumonocarcinoma pneumonocentesis pneumonocirrhosis pneumonoconiosis pneumonoenteritis pneumonographic pneumonography pneumonolysis pneumonomelanosis pneumonometer pneumonomycosis pneumonopathy pneumonopexy pneumonopleuritis pneumonorrhagia pneumonorrhaphy pneumonosis pneumonotherapy pneumonotomy pneumopericardium pneumoperitoneum pneumoperitonitis pneumopexy pneumophilia pneumopleuritis pneumopyothorax pneumorrachis pneumorrhachis pneumorrhagia pneumotherapeutics pneumotherapy pneumothorax pneumotomy pneumotropic pneumotropism pneumotyphoid pneumotyphus pneumoventriculography pnl pnt po poa poaceous poach poachable poached poacher poachers poachiness poaching poachy poales poalike pobby poblacht poblacion pobox pobs pochade pochard poche pochette pocilliform pock pocket pocketable pocketableness pocketbook pocketed pocketer pocketful pocketfuls pocketing pocketknife pocketlike pockets pockety pockhouse pockily pockiness pockmanteau pockmantie pockmark pockweed pockwood poco pococuranteism pococurantic pococurantism pococurantist pocono pocosin poculary poculation poculent poculiform pocus pod podagra podagric podagrical podagrous podalgia podalic podaliriidae podalirius podarge podarginae podargine podargus podarthritis podarthrum podatus podaxonia podaxonial podded podder poddidge poddish poddy podemos podeon podere podesta podesterate podetium podex podger podgily podgy podial podiatrist podiatry podical podiceps podices podicipedidae poditic poditti podium podley podlike podobranch podobranchia podobranchial podobranchiate podocarp podocarpous podocarpus podocephalous pododerm pododynia podof podofilox podogyn podogynium podolite podology podomancy podomere podometer podometry podophrya podophthalma podophthalmata podophthalmate podophthalmatous podophthalmian podophthalmic podophthalmite podophthalmitic podophthalmous podophyllaceae podophyllin podophyllotoxin podophyllum podoscaph podoscapher podosomata podosomatous podosperm podosphaera podostemaceae podostemaceous podostemad podostemon podostemonaceae podostomatous podotheca podothecal pods podsnappery podsol podsolization podsolize poduran podurid podzol podzolic podzolization podzolize poe poecile poeciliidae poecilitic poecilocyttarous poecilomere poecilonymic poecilonymy poecilopod poecilopoda poecilopodous poem poemet poems poenas poenitentiales poesie poesies poesis poesy poet poetastery poetastric poetastrical poetcraft poetdom poethood poetic poetical poeticality poetically poeticalness poeticism poeticize poetics poeticule poetisch poetito poetization poetize poetized poetless poetlike poetly poetomachia poetress poetry poetryless poets poetship poetwise pogamoggan pogge pogonatum pogonia pogoniasis pogoniate pogonite pogonological pogonologist pogonology pogonotrophy pogromist pogromize pogy poh poha pohickory pohna pohutukawa poictesme poieseos poietic poignance poignancy poignant poignantly poignard poignarded poignet poikilitic poikiloblast poikiloblastic poikilocythemia poikilothermic poikilothermism poimen poimenic poimenics poincare poinciana poindable poinsettia point pointable pointage pointed pointedly pointedness pointel pointer pointers pointful pointfulness pointillism pointing pointless pointlessly pointlessness pointlet pointman pointment points pointsman pointswoman pointways pointy poise poised poiser poises poising poison poisoned poisoner poisonful poisonfully poisoning poisonings poisonless poisonlessness poisonmaker poisonous poisonousness poisons poisonweed poisson poissons poitrail poivrade pokable pokan pokanoket poke pokeberries pokeberry poked pokeful pokeloken pokeout poker pokerface pokerishness pokeroot pokers pokes pokeweed pokey pokily pokiness poking pokom pokomo pokonchi poky pol polabian polacca polack polacre poland polanisia polar polaric polarid polarimeter polarimetric polariscopic polariscopically polariscopy polaristrobometer polarity polarizability polarizable polarization polarize polarized polarizer polarly polarogram polarograph polarographic polarographically polaroid polaron polarward polaxis poldavis polder polderboy polderman pole polearm poleax polecat polecats poled polehead poleless poleman polemarch polemic polemical polemically polemician polemicist polemics polemize polemoniaceae polemoniales polemonium polemoscope polenta poles polesian polesman polestar poleward poliad poliadic polian polianite polianthes police policed policedom policeless policeman policemanism policemanship policemen policewoman polichinelle policial policies policing policize policizer policy poliencephalomyelitis poligarship poling polinices polioencephalomyelitis poliomyelitis poliomyelopathy polioneuromere poliorcetic poliorcetico poliorcetics poliosis polis polish polished polishedly polishedness polisher polishes polishing polishment polisman polissoir politarch politarchic politbureau politburo polite politeful politely politeness politenesses politer politesse politest politic political politicaldisturbances politicalism politically politician politicians politicist politicize politicking politicly politico politicomania politics politied politique politiques politize polity politzerization politzerize polk polka polkadot polkas poll pollable polladz pollage pollakiuria pollan pollard pollarded pollards polled pollen pollened polleniferous pollenigerous pollenite pollenivorous pollenless pollenlike pollens pollent poller polleten pollex polli pollical pollicate pollicitation pollinar pollinarium pollinate pollinating pollination pollincture polling pollinic polliniferous pollinigerous pollinium pollinivorous pollinization pollinizer pollinodium pollinose pollinosis polliwig polls pollster pollucite pollutant pollute polluted pollutedly pollutedness polluters pollutes polluteth polluting pollution pollutions pollux polly pollyannish pollywog polo poloconic polocyte poloist polonaise polonia polonial polonian polonius polonization polonize polony polopony polos polska polt poltfoot poltoos poltophagy poltroon poltroonery poltroonish poltroonishly poltroonism poltroons poluphloisboiotatotic poluphloisboiotic polverine poly polyacanthus polyacid polyacoustic polyact polyactinal polyactine polyactinia polyad polyadelph polyadelphous polyadenia polyadenoma polyadenous polyaffectioned polyamide polyandrian polyandrianism polyandric polyandrious polyandrism polyandrium polyandrous polyantha polyanthous polyanthus polyarch polyarchical polyarchist polyarchy polyarthritic polyarthritis polyarthrous polyarticular polyatomic polyautographic polybasic polybasicity polybasite polyblast polyborine polyborus polybranch polybranchia polybranchian polybranchiata polybranchiate polybromid polybromide polybunous polybuny polybuttoned polycarboxylic polycarp polycarpic polycarpon polycarpy polycellular polycentric polycephalic polycephalous polycephaly polychaetous polychasium polychloride polychord polychotomy polychrestical polychresty polychroic polychroism polychromatic polychromatism polychromatist polychromatophil polychromatophile polychrome polychromize polychromous polychromy polychronious polyciliate polycitral polyclad polycladose polycladous polyclady polycletan polyclinic polyclona polycodium polycormic polycotyl polycotyledonary polycotyledonous polycotyledony polycotyly polycrase polycratic polycrotic polycrotism polycttarian polycyanide polycyclic polycythemia polycythemic polydactyle polydactylous polydactylus polydactyly polydaemoniac polydaemonism polydaemonist polydaemonistic polydenominational polydental polydermous polydimensional polydipsia polyeidic polyembryonate polyembryonic polyemia polyemic polyenzymatic polyester polyesthesia polyesthetic polyethnic polyethylene polyfenestral polyfoil polyfold polygala polygalaceae polygalaceous polygamist polygamize polygamodioecious polygamous polygamously polygamy polyganglionic polygastric polygene polygenesic polygenesis polygenetic polygenetically polygenic polygenist polygenistic polygenous polygeny polyglandular polyglobulia polyglobulism polyglossary polyglot polyglotry polyglottal polyglotted polyglotter polyglottic polyglottically polyglottist polyglottonic polyglottous polyglycerol polygon polygonaceae polygonaceous polygonal polygonales polygonally polygonatum polygonella polygoneutic polygonic polygonically polygonoid polygonous polygons polygonum polygony polygordius polygram polygrammatic polygraph polygrapher polygraphy polygroove polygyn polygynic polygynious polygynous polygyny polygyral polygyria polyhaemia polyhaemic polyhalide polyharmonic polyharmony polyhedra polyhedral polyhedroid polyhedron polyhedrosis polyhedrous polyhemia polyhistor polyhistory polyhydric polyhydroxy polyideic polyideism polyidrosis polyiodide polylaminated polylinguist polylith polylobular polylogy polyloquent polymastia polymastic polymastiga polymastigate polymastigida polymastigous polymastism polymastodon polymastodont polymasty polymath polymathic polymathist polymathy polymazia polymelia polymelian polymely polymer polymerase polymere polymeria polymerism polymerization polymerizing polymerous polymetallism polymicrian polymicrobic polymignite polymixiid polymixiidae polymnestor polymnia polymnite polymolecular polymolybdate polymorphic polymorphism polymorphistic polymorphonuclear polymorphonucleate polymorphosis polymorphous polymorphy polymyaria polymyarii polymyodi polymyodian polymyodous polymyoid polymyositis polymythy polynaphthene polynemid polynemoid polynemus polynesian polynesic polyneural polyneuric polyneuritic polyneuritis polyneuropathy polynoid polynome polynomic polynucleal polynuclear polynucleate polynucleolar polynucleosis polyodon polyodont polyodontal polyodontidae polyoecious polyoecism polyommatous polyonomous polyonychia polyonym polyonymic polyonymist polyonymous polyonymy polyophthalmic polyopia polyopic polyorama polyorganic polyoxide polyoxyethylated polyoxymethylene polyp polypaged polypapilloma polyparasitism polyparesis polyparia polyparian polyparium polypean polyped polypedates polypeptide polypetalae polypetalous polyphaga polyphage polyphagia polyphagic polyphagist polyphagous polyphalangism polypharmacal polypharmacy polypharmic polyphasal polyphase polyphaser polyphemus polyphloisboioism polyphloisboism polyphobia polyphobic polyphone polyphonist polyphony polyphosphoric polyphotal polyphote polyphyletically polyphylline polyphyllous polyphylogeny polypi polypian polypidom polypifera polypiferous polypinnate polypite polyplacophora polyplacophoran polyplacophore polyplacophorous polyplastic polyplectron polyplegia polyplegic polyploidic polyploidy polypod polypoda polypodia polypodiaceae polypodiaceous polypodous polypody polypoid polypoidal polypomorpha polypomorphic polyporaceae polypore polyporite polyporoid polyporous polyporus polypose polypotome polypous polypragmacy polypragmatical polypragmatist polypragmaty polypragmist polypragmon polypragmonic polypragmonist polyprism polyprismatic polyprotodont polyprotodontia polyps polypseudonymous polypsychical polypterid polypteroid polypterus polypus polyrhizous polyrhythmical polysaccharose polysalicylide polysarcia polysarcous polyschematic polyschematist polyscope polyscopic polysemant polysemantic polysemous polysemy polysensuous polysensuousness polysepalous polyseptate polysided polysiphonic polysomatic polysomia polysomitic polysomonography polysomous polysomy polyspast polyspermal polyspermatous polyspermia polyspermic polyspermous polyspondylic polyspondylous polyspondyly polysporangium polyspore polysporic polysporous polystachyous polystaurion polystemonous polystichoid polystichous polystichum polystomatidae polystome polystomea polystomella polystomidae polystomium polystylar polystyle polystylous polysulphides polysulphuration polysyllabic polysyllabically polysyllabicity polysyllable polysyllogism polysyllogistic polysymmetrical polysyndeton polysynthesis polysynthesism polysynthetic polysynthetically polysyntheticism polysynthetism polysynthetize polytechnic polytechnics polytechnist polyterpene polythalamia polythalamic polythalamous polythecial polytheism polytheist polytheistic polytheistical polytheize polythelia polythely polythiazide polytitanic polytokous polytoky polytomous polytomy polytonal polytonalism polytone polytonic polytony polytope polytopic polytopical polytrichaceae polytrichia polytrichous polytrichum polytrochal polytrochous polytrope polytropic polytungstate polytungstic polytypic polytypy polyunsaturated polyuresis polyurethane polyuria polyvalence polyvalent polyvinyl polyvinylidene polyvirulent polyzoa polyzoarial polyzoarium polyzoary polyzoic polyzoism polyzonal polyzooid polyzoon polzenite pomace pomacentridae pomacentroid pomaceous pomade pomander pomane pomarine pomarium pomato pomatomid pomatomidae pomatum pomatumed pombe pombo pome pomegranate pomegranates pomelo pomeranian pomeridian pomerium pomewater pomey pomfret pomiculturist pomiform pomme pommee pommel pommeled pomo pomologically pomologist pomology pomona pomp pompa pompano pompeian pompelmous pompholix pomphus pompilid pompilidae pompiloid pompilus pompion pompist pompless pompoleon pompom pompon pomposity pompous pompously pomps pompster pompton pon ponas ponca ponce ponceau poncelet poncho ponchoed ponchos pond pondage ponder ponderability ponderable ponderance ponderancy ponderary ponderate ponderation ponderative pondered pondering ponderling ponderomotive ponderosapine ponderosity ponderous ponderously ponderousness ponders pondfish pondful pondgrass pondman pondo pondok pondokkie ponds pondus pondwort pone ponent poneramoeba poneridae poneroid pong pongee pongo pongos poni poniard poniarded ponies poninsula ponja pons pont pontac pontacq pontal pontederia pontederiaceae pontederiaceous pontes pontiac pontianak pontic ponticello ponticular ponticulus pontifex pontiff pontiffs pontific pontifical pontificality pontifically pontificate pontification pontifices pontificial pontificially pontificious pontificum pontify pontile pontine pontist pontlevis ponto pontocaspian pontocerebellar ponton pontonier pontonniers pontoon pontooneer pontooner pontooning pontoons pontvolant pony ponytail poo pooa pooch pooder poodle poodledom poodleish poodles poodleship pooh poohed pook pooka pookoo pool poole pooled pooler pooli poolroom poolrooms poolroot pools poolside pooly poon poonac poonga poonghie poop pooped poophyte poophytic poops poor poore poorer poorest poorhouse poorling poorly poorlyish poormaster poorness poorweed poorwill poot pooty pop popadam popal popcorn popdock pope popean popedom popeholy popehood popeler popeless popeline popely popery popes popeship popess popeye popeyed popglove popgun popgunner popgunnery popguns popian popinac popinjay popinjays popish popishly popishness poplar poplared poplars poplin poplins popliteal poplolly popocracy popocrat popolare popolari popoloco popomastic popone popovets poppa poppability poppable poppean popped poppel popper poppers poppet poppethead poppets poppied poppies popping popply poppy poppycockish poppylike poppywort pops popt populace populaire popular popularis popularism popularity popularization popularize popularized popularizer popularizing popularly popularness populate populated population populationist populationistic populationless populations populator populi populicide populin populism populist populous populously populousness populusque poral porbeagle porcate porcated porcelain porcelainization porcelainize porcelainlike porcelaneous porcelanic porcelanite porcelanous porcellana porcellanid porcellanize porch porched porches porching porchless porcine porcion porcula porcupine pore poreal pored porelike porencephalia porencephalic porencephalitis porencephalon porencephalous porencephalus porencephaly porer pores porger porgy porifera poriferal poriferan poriform porimania poriness poring porism porismatic porismatical porismatically poristic poristical porite porites poritoid pork porker porkery porket porkfish porkless porkling porkmaking porkman porkpie porkwood porky pornerastic pornocracy pornocrat pornographically pornographist pornography porocephalus porodine porogam porogamic porogamous porokeratosis porokoto poroma poroporo poroscope poroscopy porose poroseness porosimeter porosis porosity porotic porous porousness porpentine porphine porphyraceae porphyraceous porphyrean porphyrian porphyrianist porphyrin porphyrine porphyrio porphyrion porphyrite porphyritic porphyrogene porphyrogenitic porphyrogenitism porphyrogeniture porphyroid porphyrous porphyry porpita porpoise porpoises porporate porr porraceous porrect porrectae porrection porrenger porret porridge porridgelike porridgy porrigeus porriginous porrigo porringer porry port port-au-prince porta portable portableness portably portage portaged portages portail portal portaled portalled portalless portals portamento portance portans portass portat portatile portative portcrayon portcullis porte ported porteligature portend portended portending portendment portension portent portentosity portentous portentously portentousness portents porter porterage porteranthus porteress porterhouse porterlike porters portership portes portfire portfolio portfolios portglaive portglave portgrave portheus porthole porthors porthouse portia portico porticoed porticoes porticos portidins portier portiere portiered portieres portifory portify portio portiomollis portion portionable portional portionally portioned portioning portionless portions portitor portland portless portlet portlily portliness portly portman portmanmote portmanteau portmanteaus portmanteaux portmantologism portment portoise portolan portrait portraitist portraitlike portraits portraiture portray portrayable portrayal portrayed portrayer portraying portrayment portrays portreeve portreeveship portress portresses ports portsman portsmouth portuary portugais portugal portugalism portuguaises portuguese portugueza portuguezas portulaca portulacaceae portulacaceous portulacaria portulan portunalia portunian portunidae portunity portunus porty porulose porulous porus porwigle pory porzana pos posable posada posca posci pose posed poseidonian posement poser poses posession poseur posey posh posibly posies posing posingly posit posite position positioner positions positis positival positive positively positiveness positives positivism positivists positivize positron positum posner posnet posole posological posology poss posse posseman possemen possess possessable possessed possessedly possessedness possesses possessine possessing possession possessional possessionalism possessionalist possessionary possessionate possessioned possessioner possessionist possessions possessival possessive possessively possessiveness possessives possessor possessoress possessoriness possessors possessorship possessory posset possibilist possibilities possibility possibillty possible possibleness possibly possidentem possum possumwood post postabdomen postabdominal postable postabortal postabortion postadjunct postage postal postallantoic postally postalveolar postanal postantennal postappendicular postarthritic postarticular postarytenoid postaspirate postaspirated postasthmatic postauricular postaxiad postaxially postbox postboy postbrachium postbranchial postbreakfast postbronchial postbuccal postbulbar postbursal postcalcaneal postcalcarine postcanonical postcard postcardiac postcards postcarotid postcart postcartilaginous postcatarrhal postcava postcenal postcentral postcephalic postcerebellar postcerebral postchaise postcibal postclassicism postclavicular postclimax postclitellian postclival postcoital postcolon postcomitial postcommissure postcommunicant postcommunion postcondylar postconfinement postconsonantal postcontact postconvalescent postconvulsive postcordial postcornu postcosmic postcostal postcoxal postcrural postdate postdates postdetermined postdiagnostic postdiaphragmatic postdiastolic postdicrotic postdigestive postdiluvian postdiphtheric postdiphtheritic postdisapproved postdisseizin postdisseizor postdoctoral posted posteen postelementary postembryonal postemporal postencephalitic postencephalon postenteral postepileptic poster posterbasal posterial posterior posteriori posterioristic posterioristically posteriority posteriorly posteriormost posteriors posteriorums posterish posterishness posterist posterity posterize postern posterns posterobasal posterodorsally posteroinferior posterointernal posteromedial posteromedian posteromesial posteroparietal posterosuperior posterotemporal posteroventral posters posteruptive postesophageal posteternity postethmoid postexilian postexilic postexistence postexistency postexistent postface postfebrile postfemoral postfix postfixal postfixed postfixial postflexion postform postfrontal postfurcal postgastric postglenoid postglenoidal postgonorrheic postgracile postgrippal posthaste posthemiplegic posthemorrhagic posthepatic posthetomist posthetomy posthippocampal posthouse posthumeral posthumous posthumously posthyoid posthypnotic posthypophyseal posthypophysis posthysterical postic postically posticous posticteric posticum posticus postil postilion postilions postimpressionist postimpressionistic postinfective postinfluenzal posting postingly postintestinal postischial postjacent postlachrymal postlaryngeal postlegitimation postlenticular postliminary postliminiary postliminious postliminium postliminy postloitic postloral postlude postludium postmamillary postmammary postman postmandibular postmarital postmark postmarriage postmaster postmasterlike postmasters postmastership postmaturity postmedial postmedian postmediastinal postmediastinum postmedullary postmen postmeningeal postmenopausal postmenstrual postmental postmeridian postmeridional postmesenteric postmillenarian postmillenarianism postmillennial postmillennialism postmillennialist postmillennian postmistress postmortal postmortem postmortuary postmultiply postmuscular postmutative postmycotic postmyxedematous postnarial postnaris postnasal postneuralgic postneuritic postneurotic postnodular postnotum postnuptial postnuptially postobituary postoffice postomental postoperative postoptic postoral postorbital postorder postordination postorgastic postosseous postotic postpalatal postpalatine postpalpebral postpaludal postparalytic postparotid postparotitic postparoxysmal postpartum postpathological postpericardiotomy postpharyngeal postphlogistic postphragma postphrenic postphthisic postplace postplegic postpneumonic postpoliomyelitis postponable postpone postponed postponement postponer postpones postponing postpontile postpose postposited postpositional postpositively postprandial postprandially postprocess postprophesy postpubic postpubis postpuerperal postpulmonary postpupillary postpycnotic postpyloric postpyretic postrachitic postramus postrectal postremogeniture postrenal postresurrection postresurrectional postretinal postrhinal postrider postrorse postrostral posts postsaccular postsacral postscalenus postscapula postscapular postscenium postscorbutic postscribe postscript postscriptum postsigmoid postsign postspasmodic postsphenoid postsphenoidal postsphygmic postspinous postsplenial postsplenic poststernal poststertorous postsurgical postsynaptic postsynsacral postsyphilitic postsystolic posttabetic posttarsal posttetanic postthalamic postthoracic posttibial posttonic posttoxic posttracheal posttrapezoid posttraumatic posttubercular posttussive posttympanic postulancy postulant postulants postulantship postulate postulated postulates postulating postulnar postumbilical postumbonal postural posture posturer postures posturing posturist posturize postuterine postvaccinal postvaricellar postvelar postvenereal postvenous postverta postvesical postvide postvocalic postwar postward postwise postwoman postyard postzygapophysis posuit posy pot potability potable potableness potage potagerie potagery potamic potamobiidae potamogalidae potamogeton potamogetonaceae potamologist potamology potamometer potamonidae potamophilous potamoplankton potash potashery potass potassa potassamide potassic potassium potation potato potatoes potator potatory potawatami potbank potbellied potboil potboiler potboy potboydom potch potcher potcherman potecary potence potency potens potent potentacy potentate potentates potential potentialities potentiality potentialization potentialize potentially potentialness potentiate potentilla potentiometer potentize potently poter poterium potest potestal potestas potestate potgirl potgun pothead pothecary potheen pother potherment pothole potholes pothook pothookery pothos pothouse pothousey pothunting poticary potichomania potichomanist potifer potiguara potion potions potlatch potlatched potlid potluck potmaker potman potomania potometer potoroinae potoroo potorous potpie potpourri potrack potrait pots potsherd potsherds potshooter potstick pott pottage pottah potted potter pottered pottering potters pottery potting pottle potto potwaller potwalling potware potwhisky pouce poucey pouch pouched pouches pouchful pouchless pouchlike pouchy poudre poudrette pouf poughkeepsie poulard poulardize poule poulp poulpe poulps poult poulterer poultice poultices poulticewise poulticing poultry poultrydom poultryist poultryman pounamu pounce pounced pounces pouncet pouncing pound poundage poundcake pounded pounder pounding poundkeeper poundless poundlike poundman poundmeal pounds poundstone poundworth pour poured pourer poureth pourie pouring pouringly pourparley pourpoint pourpose pourrais pourrait pourree pours pourtray pourtraying pouser poussetted pout pouted pouter poutful pouting poutingly poutre pouts pouty pouvez pover poverish poverty povertyweed povidone pow powder powderable powdered powderer powderiness powdering powderization powderize powderlike powderman powders powdery powdike powdry powell power powerboat powerful powerfullest powerfully powerfulness powerhouse powerless powerlessly powerlessness powermonger powers powertrain powitch powor powsowdy powwow powwower pox poy poyou pozzolana pozzuolana pozzuolanic ppd ppm ppma pr practic practicability practicable practicae practical practicality practicalization practicalize practicalizer practically practice practiced practicedness practicer practices practician practicianism practicing practicum practise practised practises practising practitional practitioner practitioners practitionery prad pradhana praeabdomen praeanal praeatrioporal praeceptis praecipe praecipue praecoces praecordia praecornu praecox praecuneus praedial praedialist praediality praedicatorum praeesophageal praefect praefecti praefectura praefectus praefervid praefloration praehallux praelabrum praelector praelectorship praelectress praemolar praemunire praenestine praenestines praeneural praenomen praeoral praepositor praepostor praepostorial praepuce praesens praesepe praesertim praeses praesian praesphenoid praesternal praestomium praesulum praesystolic praetaxation praeterea praetor praetore praetorial praetorian praetorianism praetors praetorship praezygapophysis pragmatic pragmatical pragmaticalness pragmatism pragmatist pragmatists pragmatize pragmatizer prahu prahus prairie prairiecraft prairied prairiedom prairielike prairies praisable praisableness praise praised praiseful praisefulness praiseless praiseproof praiser praises praiseth praiseworthy praising praisingly praisworthily praisworthiness prajapati prakritic prakritize praktische praline pralltriller pram pramnian prana prance pranced pranceful prancer prances prancing prancingly prancy prandial prandially prank pranked prankful prankfulness prankingly prankish prankishly prankishness pranks pranksome prankster pranky praojecti praseodymia praseodymium praseolite prasinous prasophagous prasophagy prastha pratal prate prateful pratement pratensian prater pratfall pratiloma pratincola pratincoline prating pratingly pratique pratiques pratiyasamutpada pratt prattle prattled prattler prattling prattlingly prau pravity prawn prawns praxeanist praxis pray praya prayed prayer prayerful prayerfully prayerless prayerlessly prayerlessness prayermaker prayermaking prayers prayerwise prayeth prayful praying prays prazepam praziquantal prbolem pre preabsorb preabsorbent preabundance preabundantly preaccept preaccess preaccommodate preaccommodating preaccommodatingly preaccommodation preaccomplish preaccomplishment preaccord preaccordance preaccount preaccounting preaccredit preaccumulate preaccumulation preaccuse preaccustom preach preachable preached preacher preacherdom preacherize preacherless preachers preachership preaches preachieved preachification preachify preachily preachiness preaching preachingly preachings preachman preachment preachy preacid preacidity preacidly preacidness preacknowledgment preacquit preacquittal preact preactive preactively preactivity preacute preacuteness preadamic preadamite preadamitic preadamitical preadamitism preadapt preadaptable preaddition preadditional preadequately preadherence preadherent preadjectival preadjective preadjourn preadjournment preadjunct preadjust preadjustable preadministration preadministrator preadmire preadmonish preadolescent preadoration preadorn preadult preadulthood preadvancement preadventure preadvertent preadvertise preadvertisement preadvise preadviser preadvisory preadvocate preaffect preaffirm preaffirmation preaffirmative preafflict preafternoon preaggravate preaggravation preaggression preaggressive preagree preagreement preagricultural preagriculture preak prealcohol prealcoholic prealkalic preallable preallably preallegation preallege prealliance preallied preallot preallow preallowably preallowance preallude prealphabet prealphabetical prealtar prealteration preamalgamation preambassadorial preambition preamble preambled preambling preambular preambulation preanal preanesthetic preanimism preannex preannounce preannouncer preantepenultimate preanterior preanticipate preantiseptic preaortic preapplication preapprise preapproval preaptitude prearm prearrange prearranged prearrangement prearrestment prearticulate preartistic preascertain preascertainment preascitic preassigned preassume preassure preassured preattachment preattune preaver preavowal preaxial preaxially prebachelor prebacillary prebake prebalance preballot preballoting prebankruptcy prebaptismal prebaptize prebarbaric prebarbarous prebargain prebasilar prebelief prebelieving prebellum prebend prebendal prebendary prebendaryship prebends prebenediction prebeneficiary prebeset prebestow prebestowal prebetrothal prebid prebidding preblessing preblockade preboast preboding preboil preborn preborrowing preboyhood prebrachial prebrachium prebreathe prebridal prebroadcasting prebromidic prebronchial prebronze prebrute prebuccal prebudgetary prebullying preburlesque precalculable precalculate precalculation precampaign precamur precancellation precancerous precandidacy precandidature precanning precant precantation precanvass precapillary precapitalist precapitalistic precaptivity precapture precarcinomatous precardiac precaria precarious precariously precariousness precarnival precartilage precartilaginous precary precative precatively precaudal precausation precaution precautional precautionary precautions precautious precautiousness precaval precedable precede preceded precedence precedency precedent precedentary precedented precedential precedentless precedents preceder precedes preceding precelebrant precelebration precensure precentor precentors precentral precentrix precept preceptive preceptively preceptor preceptoral preceptorial preceptorially preceptors preceptory precepts preceramic precerebellar precerebroid preceremonial preceremony precertification precertify preces precess precession prechampioned prechampionship precharge prechart precheck precher precherish prechildhood prechill prechloric prechloroform prechoice prechoose prechoroid precilen precinct precinction precinctive precincts preciosity precious preciousness precipice precipiced precipices precipitability precipitable precipitancy precipitant precipitantly precipitantness precipitate precipitated precipitately precipitates precipitating precipitation precipitative precipitator precipitinogen precipitinogenic precipitous precipitously precipitouslyon precis precise precisely preciseness precisianist precision precisioner precisionist precisionize precisive precitation precite precited precivilization preclaim preclaimant preclaimer preclassic preclassical preclassification preclassified preclassify precleaner preclerical precloacal preclosure preclothe precludable preclude precluded precludes preclusion preclusive precocial precocious precociously precociousness precocity precogitation precognitive precognize precoincidence precoincident precoincidently precollapse precollectable precollection precollector precollusion precolor precolorable precoloration precoloring precombatant precombination precombine precombustion precommand precomment precommissural precommissure precommit precommune precommunion precompare precompel precompensate precompile precompiler precompleteness precompletion precompliant precomplicate precomplication precomposition precompound precompoundly precomprehension precompress preconceal preconcealment preconcede preconceivable preconceive preconceived preconcentrate preconcentration preconcept preconception preconceptional preconceptions preconceptual preconcern preconcernment preconcert preconcerted preconcertedly preconcertion preconcessive preconclude preconcurrence precondemn precondensation precondition preconditioned preconduction preconductor precondylar precondyloid preconfer preconference preconfess preconfession preconfide preconfiguration preconfigure preconfinedly preconfirm preconflict preconform preconfusedly preconfusion precongenial precongestion precongestive precongratulate precongratulation precongressional preconizance preconization preconize preconizer preconjecture preconnection preconquer preconquest preconquestual preconsciously preconsciousness preconsecrate preconsecration preconsent preconsider preconsideration preconsign preconsoidate preconsolation preconsolidated preconsonantal preconspire preconstruction preconsultation preconsultor preconsume preconsumer preconsumption precontact precontained precontemn precontemplate precontemplation precontemporary precontent precontention precontest precontract precontractive precontractual precontribution precontributive precontrivance precontrive precontrol precontroversy preconversation preconveyal preconveyance preconvict preconvince precooker precooler precooling precordia precordially precordium precornu precorrect precorrection precorrectly precorrectness precorridor precorrupt precorruption precorruptive precorruptly precoruptness precosmic precostal precounsel precourse precover precovering precox precreate precreation precreative precreditor precritical precriticism precriticize precrucial precrural precrystalline precultivation preculturally preculture precuneal precuneus precure precurrent precurricular precurriculum precursal precurse precursive precursor precursors precurtain precyclone precyclonic precyst precystic predable predacean predaceous predaceousness predacious predacity predamage predamn predamnation predark predarkness predata predate predation predatism predative predatorily predatory predaylight predaytime predazzite predealer predealing predeathly predebate predebater predebit predebtor predecay predecease predeceased predeceaser predeceiver predeception predecession predecessor predecessors predecessorship predecide predecision predecisive predeclare predecline predecree prededicate prededuct predefault predefeat predefence predefense predefiance predeficiency predeficient predefinite predefinition predefrayal predefy predegree predeication predelegate predelegation predeliberately predeliberation predelineate predelinquency predelinquent predelinquently predella predelude predelusion predemand predemocracy predemocratic predemonstrate predemonstrative predenial predental predentata predentate predependable predependence predependent predepletion predeposit predepository predepreciation predepression predeprivation predeprive prederive predescent predescribe predescription predesert predesertion predeserve predeserving predesign predesignate predesignation predesignatory predesirous predesolate predesolation predespair predesperate predespise predespondency predespondent predestinable predestinarian predestinarianism predestinate predestinately predestination predestinationist predestined predestines predestitute predestroy predestruction predetach predetachment predetect predetention predeterminability predeterminable predeterminately predetermination predeterminative predetermine predetermined predeterminer predeterministic predetrimental predevelop predevote predevotion predevour prediagnosis prediagnostic predial predicableness predicably predicament predicamental predicamentally predicant predicate predicated predicating predicational predicative predicatively predicator predicatory predicked predicrotic predict predictability predictable predictate predictation predicted predicteth predicting prediction predictional predictions predictively predictiveness predictory predicts predietary predifferent predifficulty predigest predikant predilect predilected predilection predilections prediligent prediligently prediluvian prediminish prediminishment prediminution predinner prediphtheritic prediploma prediplomacy predirect predirection predirector predisability predisable predisadvantageous predisadvantageously predisagree predisagreeable predisagreement predisappointment predisaster predisastrous prediscern prediscernment prediscipline predisclose predisclosure prediscontent prediscontented prediscontentment prediscontinuance prediscontinue prediscount prediscountable prediscourse prediscover prediscovery prediscreet prediscretion prediscriminate prediscrimination prediscriminator prediscuss prediscussion predisgrace predisgust predislike predismiss predismissal predismissory predisordered predisorderly predispatcher predisperse predispersion predisplacement predisplay predisposable predispose predisposed predisposedly predisposing predisposition predispositions predisputant predisputation predispute predisrupt predisruption predissatisfaction predissolve predistinction predistinguish predistress predistrict predistrust predistrustful predisturb prediversion predivide predivider predivinable predivinity predivision predivorce predivorcement prednisolone prednisone predocumentary predominance predominancy predominant predominantly predominate predominated predominately predominates predominating predominatingly predomination predominator predonate predonation predonor predoom predoubt predoubtful predraft predrainage predramatic predrawer predriller predrive predriver predry preduplicate preduplication predynastic preeclampsia preeminence preeminent preeminently preemptor preen preened preener preening preexistent preeze prefab prefabrication prefabricator preface prefaceable prefaced prefacer prefaces prefacist prefactory prefamiliar prefamiliarity prefamous prefashion prefator prefatorially prefatorily prefatory prefavorite prefearfully prefect prefectly prefectorial prefectorially prefectorian prefects prefectual prefectural prefecture prefecundatory prefederal prefelic prefer preferability preferable preferableness preferably preferee preference preferences preferent preferential preferentialism preferentially prefering preferment prefermentation preferred preferredly preferrer preferring prefers prefertile prefertility prefertilize prefestival prefeudalic prefiction prefigurate prefigurative prefiguratively prefigure prefigured prefigurement prefiguring prefigurings prefiller prefinal prefinance prefinancial prefine prefix prefixable prefixal prefixally prefixed prefixes prefixing prefixion prefixture preflagellate preflattery preflavoring preflection preflexion preflight preflood prefoliation preforbidden preforgive preforgotten preform preformant preformation preformationary preformationism preformative preformism preformist preformulate preformulation prefortunately prefortune prefoundation prefracture prefragrance prefragrant prefrankness prefraternally prefraud prefreshman prefriendly prefriendship prefright prefulfill prefulfillment prefulgence prefulgent prefunction prefuneral prefungoidal pregalvanize preganglionic pregathering pregeminum pregenerate pregenerosity pregenerously pregenital pregirlhood preglacial pregladden pregladness preglenoid preglenoidal preglobulin pregnability pregnable pregnance pregnancy pregnant pregnantly pregnantness pregolden pregolfing pregracile pregracious pregrade pregraduation pregranitic pregratification pregreet pregrowth preguarantor preguard preguess preguide preguilt preguiltiness pregust pregustant pregustation pregustator prehallux prehalter prehandicap prehandle prehaps preharden preharmonious preharmony preharsh preharshness preharvest prehatred prehaunt prehaustorium prehazard prehazardous preheal prehearing preheat preheated preheater preheating prehend prehendit prehensible prehensile prehensility prehensive prehensiveness prehensor prehensorial prehepatic prehesitancy prehesitate prehexameral prehistorian prehistoric prehistorical prehistorique prehistory prehistotic prehnite preholding preholiday prehorizon prehostile prehostility prehuman prehumiliate prehumor prehydration prehypophysis preidea preidentify preilluminate preillustration preimage preimaginary preimagination preimagine preimbue preimitation preimpair preimpairment preimperial preimport preimportance preimportant preimportantly preimpose preimposition preimpression preimpressive preimprove preinaugurate preincorporate preincorporation preindebted preindemnity preindependence preindicant preindicate preinduce preinduction preinductive preindulge preindulgence preindulgent preindustrial preindustry preinference preinflection preinflict preinfluence preinform preinformation preinhabit preinhabitant preinhabitation preinhere preinherit preinheritance preinitial preinitiate preinitiation preinjurious preinjury preinscribe preinscription preinsert preinsinuate preinsinuating preinsinuatingly preinsinuation preinspect preinspection preinspire preinstall preinstallation preinstill preinstillation preinstruct preinstruction preinstructional preinstructive preinsula preinsular preinsulate preinsult preinsurance preinsure preintelligence preintelligently preintend preintention preintercede preintercession preinterchange preintercourse preinterest preinterfere preinterference preinterpret preinterpretative preintone preinvention preinvest preinvestigate preinvitation preinvite preinvocation preinvolve preinvolvement preiotization preiotize preirrigational preissuance preissue prejacent prejudge prejudgement prejudger prejudging prejudgment prejudicative prejudicator prejudice prejudiced prejudicedly prejudices prejudicial prejudicially prejudicious prejudiciously prejunior prejurisdiction prejustify prejuvenile prekindle preknow preknowledge prelabel prelabial prelabrum prelachrymal prelacrimal prelacteal prelacy prelapsarian prelate prelatehood prelates prelateship prelatess prelatical prelatically prelaticalness prelation prelatish prelatism prelatist prelatry prelature prelaunch prelaunching prelawful prelawfully prelawfulness prelect prelections prelectorship prelecture prelegacy prelegate preliability preliable prelibation preliberality preliberally preliberate prelicense prelim preliminaire preliminaries preliminarily preliminary prelimit prelimitate prelimitation prelinpinpin preliteral preliteralness preliterary preliterate preliterature prelithic prelocalization prelogic preloreal prelude preludes preludial preludings preludious preludiously preludium preludize prelumbar prelusive prelusively prelusory preluxurious premachine premadness premaintenance premaking premalignant premandibular premanhood premanifest premanifestation premankind premanufacture premanufacturer premanufacturing premarital premarriage premarry premastery prematch premate prematrimonial prematuration premature prematurely prematurity premaxilla premaxillary premeasurement premechanical premedia premedial premedian premedic premedicate premedieval premedievalism premeditate premeditated premeditatedly premeditatedness premeditatingly premeditation premeds premegalithic prememorandum premenopausal premenstrual premention premeridian premerit premetallic premethodical premial premiant premidsummer premier premieral premiere premieres premilitary premillenarian premillennialize premillennially premillennian premious premisal premise premises premising premisory premisrepresent premisses premium premiums premix premixer premixture premodern premolar premold premolder premonetary premonishment premonition premonitory premonopolize premonopoly premonstrant premonstratensian premoral premorality premorally premorbid premorbidly premortal premortification premortify premortuary premotion premourn premove premovement premover premuddle premultiplier premultiply premundane premunicipal premuster premutiny premycotic premyelocyte premythical prenais prenanthes prenares prenarial prenaris prenasal prenatal prenatalist prenatally prenational prenative prenatural prender prendre prenebular prenecessitate preneglect prenegligent prenegotiate prenegotiation preneolithic prenephritic preneuralgic prenez prenodal prenomens prenominal prenominate prenominical prenotation prenotice prenotification prenotify prent prenuncial prenuptial prenursery preobedience preobedient preobjective preobligation preoblige preobservance preobservation preobservational preobstruct preobstruction preobtain preobtrude preobtrusion preobviate preobviously preobviousness preoccasioned preocclusion preoccultation preoccupant preoccupation preoccupations preoccupative preoccupied preoccupiedly preoccupiedness preoccupier preoccupy preoccur preoceanic preodorous preoffend preoffense preoffensively preoffensiveness preoffer preofficial preominate preomission preomit preopen preopening preoperate preoperation preoperative preoperator preopercle preopercular preoperculum preopinion preoppress preoppression preoptic preoption preoral preorally preordain preordination preorganization preorganize preoriginal preornamental preoutfit preoutline preoverthrow prepaid prepalatal prepalatine prepaleolithic prepanic preparable preparation preparationist preparations preparative preparator preparatory prepardon prepare prepared preparedly preparedness preparedst preparement preparental prepares prepareth preparietal preparing preparingly preparings preparliamentary preparoccipital preparoxysmal prepartake preparticipation prepartition prepatellar prepatriotic prepave prepay prepayable prepayment prepeduncle prepenetration prepenial prepensely preperceive preperception preperceptive preperitoneal prepersuasion prepersuasive preperusal preperuse prepetition prephthisical prepigmental prepink prepious prepituitary preplace preplacement preplacental preplant prepledge preplot prepoetical prepoison prepolice prepolish prepolitical prepollency preponder preponderance preponderancy preponderant preponderantly preponderate preponderating preponderatingly preponderation preponderous preponderously prepontile prepontine preportray preportrayal prepose preposition prepositionally prepositions prepositive prepositor prepositorial prepossess prepossessed prepossessing prepossessingly prepossessingness prepossession prepossessionary prepossessions prepossessor preposterous preposterously preposterousness prepostorship prepotence prepotent prepotential prepractical prepractice preprandial prepreference prepreparation preprice preprimary preprimitive preprint preprofessional preprogram preprogramme preprohibition prepromise prepromote prepromotion preprophetic preprove preprovide preprovision preprovocation preprovoke preprudent preprudently prepsychological prepsychology prepuberty prepubescent prepubic prepubis prepuce prepunctual prepunish prepupa prepupal prepurchase prepurpose preputial prequalify prequestion prequote preramus prerational prereadiness preready prerealization prerealize prerebellion prereceipt prereceive prereceiver prerecital prereckon prereckoning prerecognition prerecognize prereconcile prereconcilement prereconciliation preredeem prereduction prerefer prerefine prerefinement prereformation prereformatory prerefusal prerefuse preregister preregistration preregulate prereject prerelate prerelation prerelationship prereluctation preremit preremittance preremorse preremote preremuneration prerent prerental prereport prerepresent prerepresentation prereption prerepublican prerequest prerequirement prerequisite prerequisites prerequisition preresolve preresort prerespectability prerespectable prerespiration preresponsibility preresponsible prerestrict prerestriction prereturn prereveal prerevelation prereversal prereverse prereview prerevise prerevision prerevolutionary prerheumatic prerighteously prerighteousness prerogative prerogatived prerogatively prerogatives prerogativity preromantic preromanticism preroute preroutine preroyally prerupt preruption pres presacral presacrifice presacrificial presage presaged presageful presagefully presager presages presaging presagingly presanctified presartorial presatisfaction presatisfy presavage presavagery presay presbyacusia presbycousis presbycusis presbyope presbyophrenia presbyophrenic presbyopia presbyopic presbyopy presbyte presbyter presbyteral presbyterate presbyterially presbyterianism presbyters presbytery presbytia presbytic presbytis presbytism prescapularis prescholastic prescience presciently prescind prescindent prescission prescored prescribe prescribed prescriber prescribes prescribing prescriptibility prescription prescriptionist prescriptions prescriptive prescrive prescutal prescutum presebt presecular presee preselect presell preseminary presence presenceless presences presenile presenility presensation presension present presentability presentable presentableness presentarions presentation presentational presentationism presentations presentative presented presentee presentence presenter presentes presential presentiality presentially presentient presentiment presentiments presenting presentist presentive presentively presentiveness presently presentment presentments presentness presentor presents preseparate preseparation preseparator preservable preserval preservation preservations preservative preservatives preservatize preserve preserved preserver preserveress preservers preserves preserveth preserving preses presession presettle presettlement preseveres preshape preshelter preship preshipment preshortage preshorten preside presided presidence presidencia presidency president presidente presidentess presidential presidentially presidents presidentship presides presidially presidiary presiding presidium presift presign presignal presignificancy presignificant presignification presignificative presignificator presignify presimian presink presmooth presocialism presocialist presolar presolicit presolution presolve presophomore presound prespecialize prespecific prespecification prespecify prespeculation presphenoidal prespinal prespiracular presplendor presplenomegalic prespoil prespontaneous prespread presprinkle prespur presque press pressant pressboard pressdom pressed pressel presser pressers presses presseth pressful pressible pressing pressingly pressingness pressings pression pressman pressmark pressor presspack pressroom pressural pressure pressured pressureless pressures pressurized pressurizer presswork prest prestabilism prestability prestable prestamp prestandard prestandardization prestandardize prestant prestatistical presteel presterilized presternal presternum prestidigital prestidigitate prestidigitation prestidigitator prestidigitatorial prestige prestigiate prestigiation prestigiator prestigious prestigiously prestigiousness prestimulate prestimulation prestissimo presto prestock prestomial preston prestorage prestore prestrain prestrengthen prestretch prestricken prestruggle prestubborn prestudiously prestudiousness presubdue presubiculum presubmission presubmit presubordination presubscriber presubscription presubsist presubsistence presubsistent presubstantial presubstitute presubstitution presuccess presuccessful presuffer presuffering presufficiency presufficient presuffrage presuggest presuggestion presuitability presumable presumably presume presumed presumedly presumer presumes presuming presumption presumptions presumptious presumptive presumptively presumptuous presumptuously presuperficiality presuperfluity presuperfluous presuperfluously presuperintendence presuperintendency presupervise presupervisor presupplementary presupplicate presupport presupposal presuppose presupposed presupposes presupposing presupposition presuppositionless presuppress presuppression presuppurative presupremacy presurgical presurmise presurprisal presurprise presurrender presurround presurvey presusceptibility presusceptible presuspect presuspend presuspicion presuspiciously presuspiciousness presutural preswallow presylvian presymphony presymphysial presymptom presymptomatic presynapsis presynaptic presystole pretabulation pretan pretangible pretangibly pretardily pretardiness pretariff pretaste preteach pretechnical pretechnically pretelegraph pretelephone pretelephonic pretell pretemperate pretemporal pretence pretences pretend pretendant pretended pretendedly pretender pretenderism pretenders pretendership pretending pretendingly pretendingness pretends pretendu pretense pretenseless pretenses pretension pretensions pretensive pretensively pretensiveness pretention pretentious pretentiousness pretera preterchristian preterconventional preterdeterminedly preterdiplomatic preterdiplomatically preterequine preteressential pretergress preterhuman preterient preterist preterit preterite preteriteness preteritive preteritness preterlabent preterlethal preterminal pretermission pretermit pretermitter preternatural preternaturalism preternaturalist preternaturality preternaturally preternaturalness preternormal preternuptial preterpluperfect preterpolitical preterrational preterregular preterritorial preterroyal preterscriptural preterseasonable pretervection pretest pretestify pretext pretexted pretexts pretextuous pretheological prethoracic prethoughtful prethoughtfully prethrill pretimely pretincture pretious pretire pretoken pretone pretorial pretorship pretorsional pretorture pretrace pretransact pretransaction pretranscription pretranslate pretranslation pretransmission pretransportation pretreat pretreatment pretres pretry prettier prettiest prettify prettikin prettily prettiness pretty prettyface prettyish prettyism pretuberculous pretympanic pretyphoid pretypify pretypographical pretyrannical pretyranny pretzel pretzels preultimate preultimately preumbonal preunderstand preundertake preunion preunite preussischen preutilizable preutilization preutilize prevacate prevacation prevaccinate prevail prevailance prevailed prevailer prevailing prevailingly prevailment prevails prevalence prevalency prevalent prevalently prevalescence prevalescent prevalid prevalidity prevaling prevaluation prevariation prevaricate prevaricated prevarication prevaricatory prevascular prevegetation prevelar prevenance prevenancy prevene prevenience prevenient preveniently prevent preventable preventative prevented preventeth preventing preventingly prevention preventionism preventionist preventive preventiveness preventorium prevents preverb preverbal preverification preverify prevernal preversion prevertebral prevesical preveto previde previdence preview previgilance previous previously previousness previse previsibility previsibly prevision previsioned previsions previsit previsitor previsor prevocal prevocalic prevocally prevocational prevogue prevoid prevoidance prevolunteer prevomer prevote prevoyance prevoyant prevue prewar prewaricate prewarrant prewash preweigh prewelcome prewhip prewilling prewillingly prewillingness prewireless prewitness prewonder prewonderment preworship preworthily preworthy prewound prewrap prey preyed preyer preyful preying preyingly preyouthful preys prezonal prezone prezygapophysial prezygomatic priacanthidae priacanthus priam priapic priapism priapulid priapuloid priapuloidea priapus priapusian price priceable priceably priced priceite priceless pricelessness pricem prices prich pricing prick prickant pricked pricker pricketh pricking prickingly prickle prickleback prickled pricklefish prickling pricklouse prickly pricklyback prickmadam prickmedainty prickproof pricks prickseam prickshot prickwood pride prided prideful pridefulness prideless prides prideweed pridian priding pridingly pridy pried prier pries priest priestal priestcap priestcraft priestdom priestess priestesses priesthood priestianity priestish priestism priestless priestlet priestley priestlike priestliness priestly priests priestship priestshire prieth prig prigdom prigged prigger priggish priggishly priggishness priggism prighood prigs priis prillion prilocaine prim prima primacy primaeval primal primality primaren primarian primaried primaries primarily primariness primary primatal primate primates primatial primatical primaveral prime primed primegilt primely primeness primer primero primerole primers primest primeval primevalism primevally primeverose primevous primianist primicerius primidone primigenial primigenian primigenous primigravida priming primipara primiparity primiparous primipilar primitiae primitial primitias primitive primitivist primitivity primitus primly primness primo primogenial primogenital primogenitary primogenitive primogenitor primogeniture primogenitureship primogenous primoprime primoprimitive primordality primordia primordial primordialism primordially primordiate primordium primoribus primosity primosque primp primrose primroses primrosetide primrosetime primsie primula primulaceae primulaceous primulales primulaverin primulaveroside primulic primulinus primum primus primwort primy prince princeage princecraft princedom princehood princeite princeless princelike princeliness princeling princelings princely princeps princes princeship princess princesse princesses princessly princeton princewood princified principal principalities principality principally principalness principals principate principessa principia principiant principias principiate principium principle principled principles principulus princox prine pringle pringling prink prinked prinker prinkle prinky print printability printable printableness printed printer printers printery printing printless printmake printout prints printscript printshop printworks priodont priodontes prion prionidae prioninae prionine prionodesmacean prionodesmatic prionodon prionodont prionopinae prionopine prionops prionus prior prioracy prioral priorate priore prioress prioresses priori priories prioristic priorities priority priorly priors priorship priory pris prisable prisal prisca priscan priscian priscillian priscillianist prise prised prises prisint prism prismal prismatic prismatical prismatically prismed prismoidal prisms prisometer prison prisonable prisondom prisoned prisoner prisoners prisoning prisonlike prisonment prisonous prisons prissiness prissy pristine pristipomidae pristodus pritchardia pritchel prithee prius privacies privacity privacy privant private privateer privateering privateers privateersman privately privateness privates privation privations privative privatively privativeness prived privet privets privies privilege privileged privileges privilegiados priviliged privily priviness privity privy prizable prize prizeable prized prizefight prizefights prizeholder prizeman prizery prizes prizetaker prizewinner prizewinning prizeworthy prizing prn pro proa proabsolutism proabstinence proacademic proacceptance proach proacquisition proacquittal proaction proaddition proadjournment proadoption proaggressionist proagitation proagreement proagule proairesis proairplane proal proalcoholism proallotment proamateur proambient proamendment proamnion proamusement proanaphora proanaphoral proangiosperm proangiospermic proanimistic proannexationist proantarctic proanthropos proapostolic proappointment proapportionment proappreciation proappropriation proapproval proarbitration proarbitrationist proarchery proaristocratic proarmy proarthri proassessment proauction proaulion proauthor proautomobile proavis proaward probabilily probabiliorism probabiliorist probabilism probabilities probability probabilize probable probableness probablv probably probachelor proballoon probando probanishment probant probaseball probate probathing probation probational probationary probationer probationerhood probationism probationist probationship probative probatively probator probatory probe probeable probed probenecid probes probing probings probity problem problematic problematical problematically problematist problematize problemdom problemes problemist problemize problems problemwere problemwise problockade probonding proboscidal proboscidate proboscidea proboscideous proboscides proboscidial proboscidian proboscidiferous proboscidiform probosciformed probosciger proboscis proboscislike probouleutic proboulevard probowling proboycott probrick probroadcasting probudget probudgeting probuilding probusiness probuying procacious procaciously procacity procaine procambial procan procanal procancellation procapitalism procapitalist procarbazine procardia procarnival procarp procarpium procarrier procatalepsis procatarctic procatarxis procavia procaviidae procedendo proceding procedure procedures proceeb proceed proceeded proceeder proceeding proceedings proceeds proceleusmatic procellarid procellariidae procellariiformes procellas procello procellose procensorship procensure procentralization procephalic procercoid procereal procerebral procerebrum proceremonial proceremonialism proceremonialist proceres procerite proceritic procerity procerus proces process processes processing procession processional processionally processionary processioner processioning processionist processionize processions processionwise processive processor processual processus procharity prochaska prochein prochoos prochorion prochromosome prochronic prochronism prochronize prochurch prochurchian procidentia procivic procivilian proclaim proclaimed proclaimer proclaiming proclaimingly proclaims proclamation proclamations proclamatory proclassic proclassical proclergy proclericalism procline proclisis proclitic proclive proclivities proclivitous proclivity procnemial procoelia procoelous procollegiate procombination procomedy procommercial procommission procommittee procommunism procommutation procompulsion proconcentration proconcession proconciliation procondemnation proconfederationist proconference proconfession proconnesian proconscription proconscriptive proconservationist proconsolidation proconstitutional proconstitutionalism proconsul proconsular proconsulary proconsulate proconsulship proconventional procoracoid procoracoidal procorporation procosmopolitan procotton procourt procrastinate procrastinated procrastinating procrastination procrastinative procrastinator procreant procreated procreation procreative procreativeness procreator procreatory procreatress procreatrix procris procritic procrustean procrusteanize procrypsis procryptic proctalgia proctalgy proctatresy proctectomy procter procteurynter procto proctocele proctoclysis proctocolitis proctocolonoscopy proctocystoplasty proctocystotomy proctodaeal proctodaeum proctodynia proctoelytroplastic proctologist proctology proctoparalysis proctoplastic proctoplegia proctoptoma proctor proctorage proctoral proctorial proctorially proctorization proctorize proctorrhagia proctorrhaphy proctorrhea proctors proctoscope proctoscopic proctosigmoiditis proctospasm proctostomy proctotomy proctotresia proctotrypid proctotrypidae proctotrypoid proctotrypoidea proctovalvotomy proculian procumbent procurable procural procuranda procurate procuration procurative procurator procurators procuratory procuratrix procure procured procurement procurer procures procuress procureur procuring procurvation procurved procyoniform procyoniformia procyoninae proczarist prod prodatary prodded prodder prodding prodecoration prodefault prodefiance prodelay prodelision prodemocratic prodenia prodentine prodeportation prodespotism prodialogue prodigal prodigalism prodigality prodigally prodigies prodigiosity prodigious prodigiously prodigiousness prodigus prodigy prodisarmament prodisplay prodissoconch prodissolution prodistribution prodition prodivision prodivorce prodramatic prodroma prodromal prodromatic prodrome prodromus producal produce produceable produceableness produced producer producers producership produces producibility producible producing product productible productid productidae productile production productions productior productive productively productiveness productivity productoid productory productress products productus proecclesiastical proeconomy proegumenal proelectric proelectrical proelectrification proeliis proem proembryonic proemial proemployee proenforcement proenzym proepimeron proepiscopist proequality proethical proethnic proethnically proetid proetidae proevolutionist proexamination proexecutive proexemption proexpert proexposure prof profaculty profanable profanableness profanably profanation profanatory profane profaned profanely profanement profaneness profanes profaning profanity profection profectional profederation profeminism proferment profert profess professable professed professedly professes professeth professing profession professional professionalism professionality professionalization professionally professionals professionless professions professive professively professor professorate professordom professoress professorial professoriate professorling professors professorship professorships professory profest proffer proffered profferer proffering proffers proficience proficiency proficient proficientness proficuous proficuously profile profiled profiler profiles profit profitability profitable profitableness profitably profited profiteering profiteth profiting profitless profitproof profits proflated proflavine profligacies profligacy profligate profligateness profligates profluence profluent profluvious profonde proforeign profound profounder profoundest profoundly profoundness profugate profulgent profundities profundity profuse profusely profuseness profusion profusive profusively profusiveness profytablest profyte profytes prog progambling progamete proganosaur proganosauria progenerate progenital progenitiveness progenitor progenitors progenitorship progenitress progenitrix progeny progeotropic progeotropism progeria progermination progestational progesterone progesterones progestin progestins progger proglottic proglottid prognathic prognathism prognathous prognathy progne prognose prognoses prognosis prognostic prognosticable prognostically prognosticate prognosticated prognostication prognostications prognosticative prognosticator progovernment program programist programma programmable programmar programmatist programme programmer programmes programming programs progrede progredient progres progress progressed progresser progresses progressing progression progressionally progressionary progressionism progressionist progressism progressist progressive progressively progressiveness progressivism progressivist progressivity progressor proguardian progymnasium progymnosperm progymnospermic progymnospermous progypsy prohaste prohemium prohibit prohibited prohibiting prohibition prohibitionism prohibitionist prohibitions prohibitive prohibitively prohibitor prohibitorily prohibitorum prohibitory prohibits prohostility prohuman prohumanistic prohydrotropic prohydrotropism proidealistic proimmunity proinclusion proincrease proindemnity proinjunction proinnovationist prointervention projacient project projected projectedly projectile projectiles projecting projectingly projection projectional projectionist projections projective projectively projector projectors projectress projectrix projects projecture projicience projicient projiciently projick projudicial prokaryote proke prokeimenon prokindergarten proklausis prokofieff prolabium prolactin prolan prolapse prolapsus prolarva prolarval prolately prolateness prolation prolative proleague proleaguer proleg prolegislative prolegomena prolegomenary prolegomenous proleniency prolepsis proleptic proleptically proleptics proletairism proletarian proletarianism proletarianization proletarianness proletariat proletariate proletarization proletarize proletcult proleucocyte proleukocyte prolicidal prolicide proliferate proliferates proliferating proliferation proliferously prolific prolificacy prolificalness prolificate prolification prolificity prolificly prolificness prolify proligerous proline proliquor proliterary proliturgist prolix prolixity prolixly prolocutor prolocutorship prologist prologize prologizer prologos prologue prologuelike prologuer prologuist prologuize prolong prolongableness prolongably prolongate prolongation prolongations prolonged prolonger prolongeth prolonging prolongment prolongs prolusion prolusionize prolusory prom promachinery promachos promagisterial promagistracy promagistrate promajority promammalia promammalian promarriage promaximum promazine promenade promenaded promenader promenaderess promenaders promenades promenading promercantile promercy promerger promeristem promerit promeritor promesso promethea promethean promethium promic promilitarist prominence prominences prominency prominent prominently promisable promiscua promiscuity promiscuous promiscuously promiscuousness promise promised promisee promiseful promisemonger promiser promises promiseth promising promisingly promisingness promissive promissor promissorily promissory promitosis promittor promnesia promodernist promodernistic promonarchic promonarchicalness promonarchist promonopoly promontoried promontories promontory promoral promorph promorphologically promorphologist promorphology promosed promotable promote promoted promotement promoter promoters promotes promoteth promoting promotion promotional promotions promotive promotiveness promotor promotorial promovable promovent prompt promptbook prompted prompter prompters promptest prompting promptings promptitude promptive promptly promptness promptress prompts promptuary prompture promulgate promulgated promulgates promulgating promulgation promulgators promulge promus promuscidate promycelial promythic pronaos pronational pronationalist pronationalistic pronative pronatoflexor pronator pronaval pronavy prone pronegotiation pronegro pronegroism pronely proneness pronephron pronephros prong pronged pronger pronging pronglike prongs pronic pronograde pronominal pronominalize pronominally pronomination pronoun pronounal pronounce pronounceable pronounced pronouncedly pronouncement pronouncements pronouncer pronounces pronounceth pronouncing pronouns pronuba pronubial pronuclear pronumber pronunciable pronuncial pronunciation pronunciative pronunciator pronunciatory proo prooemiac prooemion prooemium proof proofer proofful proofing proofless prooflessly proofness proofread proofreader proofreading proofroom proofs proofy prop propadiene propaedeutical propaedeutics propagable propagand propaganda propagandism propagandist propagandists propagandize propagate propagated propagates propagation propagational propagative propagator propagatory propagatress propago propagulum propale propalinal propane propanedicarboxylic propanol propantheline propapist proparasceve propargyl propargylic proparian proparoxytone propatagial propatagian propatagium propatriotic propatriotism propatronage prope propel propellable propellant propellants propelled propeller propellers propelling propels propend propendent propenoic propensely propenseness propension propensities propensity propenyl propenylic proper properantem properer properest properispomenon properitoneal properly properness propertied properties property propertyless propertyship propessimism propessimist prophane prophase prophasis prophecies prophecy prophecymonger prophesiable prophesied prophesier prophesies prophesy prophesying prophet prophetess prophetic prophetical propheticality prophetically propheticalness propheticism propheticly prophetism prophetize prophetless prophetlike prophetry prophets prophototropic prophototropism prophylactic prophylactical prophylactically prophylaxy prophyll propination propine propinoic propinqua propinquity propinquous propiolaldehyde propionate propionibacterieae propionic propionitril propionitrile propitiate propitiated propitiating propitiatingly propitiation propitiative propitiator propitiatorily propitiatory propitious propitiously propitiousness proplasm proplasma proplastic propless propleural proplex propliopithecus propodeal propodeon propodial propodiale propodite propoditic propodium propolitical propolization propolize proponent proponents proponer propons propontic propooling propopery proportion proportionable proportionably proportional proportionalism proportionality proportionally proportionap proportionate proportionately proportionateness proportioned proportioner proportioning proportions propos proposable proposal proposals proposant propose proposed proposer proposes proposin proposing proposition propositionally propositions propositus propound propounded propounder propounding propoxy propoxyphene proppage propped propper propping propraetor propraetorial propraetorian propranolol proprecedent propria propriam proprietariat proprietaries proprietarily proprietary propriete proprieties proprietor proprietorial proprietorially proprietors proprietorship proprietory proprietress proprietrix propriety proprio proprioceptor propriospinal proprium proprivilege proproctor proprovincial proprovost props propter propterygial propterygium proptosis propublication propublicity propugnacled propugnaculum propugnation propugnator propugner propulsation propulsatory propulsion propulsions propulsor propulsory propunishment propupa propus propygidium propyl propylacetic propylamine propylation propylic propylidene propylite propylitic propylon propylthiouracil propyne proracing proratable prorate proration prorealism proreality prorean prorebate prorecall proreciprocation proreconciliation prorector proredemption proreduction proregent proreptilia proreptilian proresearch proresignation prorestoration prorestriction prorevisionist prorevolutionary prorevolutionist proritual proritualistic prorogation prorogator prorogue prorogued proromance proromanticism proroyal prorrhesis prorsad prorsal proruption pros prosabbatical prosaic prosaical prosaically prosaicism prosaism prosar prosarthri prosateur proscapular proscenium proschool proscientific proscolecine proscolex proscribe proscribed proscriber proscribes proscribing proscript proscription proscriptional proscriptionist proscriptions proscriptive proscriptively proscriptiveness proscutellum proscynemata prose prosecrecy prosecretin prosect prosection prosectorial prosectorium prosectorship prosecutable prosecute prosecuted prosecutes prosecuting prosecution prosecutions prosecutor prosecutrix proselenic proselike proselyte proselyter proselytes proselytise proselytism proselytistic proselytizer proselytizing proseman proseminar proseminate prosemination prosencephalic prosenchyma prosenchymatous proseneschal prosequendi proser proserpine prosethmoid proseuche prosiest prosification prosifier prosify prosilient prosiliently prosilverite prosily prosimiae prosimian prosiness prosing prosingly prosings prosiphonal prosish prosist proslambanomenos proslave proslaver proslavery proslaveryism prosneusis prosobranch prosobranchia prosode prosodemic prosodetic prosodia prosodiac prosodial prosodially prosodical prosodist prosody prosogaster prosogyrate prosogyrous prosoma prosomatic prosonomasia prosopalgia prosopalgic prosopantritis prosopectasia prosophist prosopic prosopis prosopite prosopium prosoplasia prosopoplegia prosopoplegic prosopopoeia prosopopoeial prosoposchisis prosopospasm prosopyl prosopyle prospect prospected prospecting prospection prospective prospectively prospectiveness prospectless prospector prospects prospectui prospectus prospeculation prosper prosperation prospered prospering prosperity prosperous prosperously prosperousness prospers prospicience prosporangium pross prossy prostaglandin prostaglandins prostatauxe prostate prostatectomy prostatic prostatism prostatitis prostatocystitis prostatodynia prostatolith prostatomyomectomy prostatorrhea prostatorrhoea prostatotomy prostatovesical prostatovesiculectomy prostemmate prostemmatic prosternal prosternate prosternum prostheca prosthenic prostheses prosthetics prosthion prosthionic prosthodontist prostitute prostituted prostitutely prostitutes prostitution prostomiate prostomium prostrate prostrated prostrates prostrating prostration prostrations prostrative prostrike prostylos prosubstantive prosubstitution prosupervision prosurgical prosurrender prosy prosyllogism prosyndicalism protactic protagon protagonism protagonist protagorean protagoreanism protajay protal protalbumose protamine protamines protandric protandrism protandrous protandrously protandry protanomal protanopia protanopic protargentum protargin protargol protarsal protarsus protasis protatic protatically protax protaxation protaxis prote protea protead protean proteanly proteanwise protechnical protect protected protecteth protecting protectingly protection protectional protectionate protectionism protectionist protectionists protectionize protections protectionship protective protectiveness protectograph protector protectoral protectorat protectorate protectorates protectores protectorial protectorian protectorless protectors protectorship protectory protectress protects protege protegee protegees proteges protegulum proteid proteida proteidae proteide proteidogenous proteids protein proteinaceous proteinic proteinochromogen proteinous proteins proteinuria proteles protelytropteran protelytropteron protelytropterous protemperance protempirical protemporaneous protend protended protensity protensive protensively proteogenous proteolysis proteopexis proteopexy proteosauridae proteosomal proteosome protephemeroid protephemeroidea proterandrous proterandrousness proteroglyph proteroglyphous proterogyny proterothesis proterotype proterozoic protest protestable protestant protestantish protestantishly protestantism protestantize protestantlike protestantly protestants protestation protestations protestator protested protester protesting protestingly protestive protestor protests protetrarch proteus protevangel protevangelium protext prothalamia prothalamion prothallia prothallial prothallic prothalline prothallium prothalloid protheatrical prothesis prothetic prothetical prothonotariat prothonotaries prothonotary prothonotaryship prothoracic prothrift prothrombin prothrombogen prothusis prothyl prothysteron protide protist protistan protistological protistologist protistology protiston protium proto protoactinium protoapostate protoarchitect protoascales protoascomycetes protobacco protobasidii protobasidiomycetes protobasidium protobishop protoblast protoblastic protobranchia protobranchiata protobranchiate protocalcium protocanonical protocaris protocaseose protocatechualdehyde protocatechuic protoceras protoceratops protocercal protochemist protochemistry protochloride protochlorophyll protochromium protocneme protococcaceous protococcus protocol protocolar protocolary protocoleoptera protocoleopteran protocoleopterous protocolist protocolization protocolize protocols protoconch protoconid protoconule protocopper protocorm protodeacon protoderm protodonata protodonatan protodonate protodont protodonta protodramatic protoelastose protoepiphyte protoforaminifer protoforester protogaster protogenal protogenesis protogenic protogenist protogeometric protogine protoglobulose protogonous protogynous protogyny protohematoblast protohemiptera protohemipteran protohemipteron protohemipterous protoheresiarch protohippus protohistorian protohistory protohomo protohydra protohymenoptera protohymenopteran protohymenopteron protoleucocyte protoleukocyte protoliturgic protolog protoma protomagister protomagnate protomagnesium protomala protomammalian protomartyr protomastigida protome protomerite protometal protometaphrast protominobacter protomonadina protomonostelic protomorph protomyosinose proton protone protonegroid protonemal protonematal protonematoid protoneme protonemertini protonephridial protonephridium protonephros protonic protonickel protonitrate protonotaries protonotarii protonymph protonymphal protoolasm protopapas protopathic protopathy protopatrician protopattern protopepsia protoperlaria protophloem protophyll protophyta protophyte protophytic protopin protopine protoplasm protoplasmal protoplasmic protoplast protoplasts protopod protopodial protopodite protopresbyter protopresbytery protoprism protoprotestant protopteran protopteridae protopteridophyte protopterus protopyramid protore protorebel protoreligious protoreptilian protorosauria protorosauridae protorthoptera protorthopteran protorthopteron protorthopterous protosalt protosaurian protoscientific protosebastos protoselachii protosilicate protosilicon protosinner protosiphonaceous protosocial protosolution protospasm protosphargis protostega protostegidae protostele protostome protostrontium protosulphate protosulphide protosyntonose prototheca prototheme protothere prototheria prototitanium prototracheata prototraitor prototroch prototrophic prototypal prototype prototypes prototypical protovertebral protovestiarius protovestiary protovillain protovum protoxide protoxylem protozoa protozoacidal protozoal protozoan protozoiasis protozoic protozoological protracheata protracheate protract protracted protractedness protractile protractility protracting protraction protractive protractor protrade protraditional protragedy protragical protragie protransfer protranslation protransubstantiation protreasurer protremata protreptical protriaene protriptyline protrudable protrude protruded protrudent protrudes protruding protrusible protrusile protrusion protrusions protrusive protrusively protuberance protuberances protuberancy protuberant protuberantial protuberantness protuberous protura protutor protutory protyl protyle protylopus protype proud prouder proudest proudhearted proudish proudishly proudly proudness prouniformity prounion prounionist proust prouunciation provably provaccinist provascular prove provect provection proved provedly provedor proven provenance provencal provence provencial provender provenience provenient provenly proventricular proventriculus prover proverb proverbial proverbialism proverbialize proverbially proverbic proverbiologist proverbiology proverblike proverbs proves proveth provicar providance provide provided providence providences provident providential providentialism providentially provider providers provides providing providore providoring providrd province provinces provinciae provincial provinciales provincialis provincialism provincialisms provincialist provinciality provincialization provincialize provincially provincials provincias provinciate provinculum provine proving provision provisional provisionality provisionally provisionalness provisionary provisioned provisioner provisioneress provisioning provisionless provisionment provisions proviso provisor provisorship provisory provisos provivisectionist provocant provocation provocational provocations provocative provocatively provocator provocatory provokable provoke provoked provokee provoker provokes provoketh provoking provokingly provolunteering provost provostess provostorial provostry provosts provostship prow prowar prowarden prowaterpower prowed prowersite prowess prowessed prowl prowled prowler prowlers prowling prowlingly prowlings prowls prows proxenetism proxenus proxim proximad proximal proximate proximately proximateness proximation proximity proximo proximobuccal proximolingual proxy prozac prozone prozoning prozygapophysis prozymite prp prude prudelike prudely prudence prudent prudential prudentialism prudentialist prudentially prudentissimus prudently prudery prudes prudhoe prudish prudishly prudishness prudy prue pruh pruinate pruinescence pruinose pruinous prulaurasin prume prunable prunableness prunably prunaceae prunase prune pruned prunella prunelle prunellidae prunello pruner prunes prunetol pruniferous pruning prunitrin prunt prunus prurience pruriency prurient pruriently pruriginous prurigo pruriousness pruritic prusiano prussian prussic prussification prussify prut pry pryer prying pryingly pryingness pryproof pryse prytaneum prytanis prytany psalis psalm psalmic psalmist psalmister psalmistry psalmless psalmodial psalmodic psalmodical psalmodies psalmodize psalmody psalmographer psalmography psalms psalmy psalter psalterial psalterian psalterion psalterist psalterium psalters psaltery psaltress psammite psammitic psammocharid psammocharidae psammogenous psammolithic psammology psammophile psammophilous psammophis psammophytic psammosarcoma psammotherapy psammous psaronius pschent psedera pselaphidae psellismus psephitic psetta pseudaconitine pseudacusis pseudalveolar pseudambulacral pseudambulacrum pseudamoeboid pseudamphora pseudandry pseudangina pseudankylosis pseudaposporous pseudapospory pseudapostle pseudarachnidan pseudarthrosis pseudatoll pseudaxine pseudaxis pseudelephant pseudelminth pseudembryo pseudembryonic pseudencephalus pseudepigraph pseudepigraphic pseudepigraphical pseudepigraphous pseudepigraphy pseudepiploic pseudepiploon pseudepiscopacy pseudepiscopy pseudepisematic pseudhemal pseudimago pseudisodomum pseudo pseudoacademic pseudoacademical pseudoaccidental pseudoacid pseudoaconitine pseudoadiabatic pseudoaesthetic pseudoaffectionate pseudoalkaloid pseudoalum pseudoalveolar pseudoamateurish pseudoamatory pseudoanaphylactic pseudoanatomic pseudoanatomical pseudoancestral pseudoanemia pseudoanemic pseudoangelic pseudoanthropoid pseudoanthropology pseudoapoplectic pseudoapoplexy pseudoappendicitis pseudoaquatic pseudoarchaic pseudoarchaism pseudoarchaist pseudoarthrosis pseudoartistic pseudoasymmetrical pseudoataxia pseudobacterium pseudobasidium pseudobenevolent pseudoblepsia pseudoblepsis pseudobrachial pseudobrachium pseudobranchia pseudobranchial pseudobranchiate pseudobulb pseudobulbil pseudobulbous pseudobutylene pseudocandid pseudocapitulum pseudocarcinoid pseudocarpous pseudocartilaginous pseudocele pseudocelian pseudocelic pseudocentric pseudocentrum pseudoceratites pseudoceratitic pseudocercaria pseudochemical pseudochina pseudochromosome pseudochrysalis pseudochrysolite pseudochylous pseudocirrhosis pseudoclassical pseudoclassicism pseudoclerical pseudococcus pseudocolumella pseudocolumellar pseudocommisural pseudoconcha pseudoconglomerate pseudoconglomeration pseudocorneous pseudocortex pseudocosta pseudocotyledon pseudocotyledonal pseudocritical pseudocroup pseudocubic pseudocultivated pseudocultural pseudocumene pseudocumyl pseudocyclosis pseudocyesis pseudocyst pseudodeltidium pseudodemocratic pseudoderm pseudodermic pseudodiagnosis pseudodiphtheria pseudodiphtheritic pseudodipterally pseudodipteros pseudodox pseudodoxal pseudodoxy pseudodramatic pseudodysentery pseudoedema pseudoelectoral pseudoembryo pseudoembryonic pseudoencephalitic pseudoenthusiastic pseudoephedrine pseudoepiscopal pseudoequalitarian pseudoerotic pseudoeroticism pseudoerysipelas pseudoerysipelatous pseudoerythrin pseudoethical pseudofamous pseudofarcy pseudofeminine pseudofever pseudofeverish pseudofilarian pseudofinal pseudofluctuation pseudofluorescence pseudoform pseudofossil pseudogalena pseudoganglion pseudogeneric pseudogenerous pseudogenteel pseudogeometry pseudogeusia pseudogeustia pseudoglanders pseudoglioma pseudoglobulin pseudoglottis pseudogout pseudograph pseudographer pseudographia pseudographize pseudograsserie pseudogyne pseudogynous pseudogyny pseudogypsy pseudohallucinatory pseudohemal pseudohermaphrodite pseudohermaphroditic pseudoheroic pseudohistoric pseudoholoptic pseudohuman pseudohyoscyamine pseudohypertrophic pseudoimpartial pseudoinfluenza pseudoinsane pseudoinsoluble pseudoisatin pseudoism pseudoisomer pseudoisomeric pseudoisotropy pseudojervine pseudolabial pseudolabium pseudolamellibranchia pseudolamellibranchiata pseudolamellibranchiate pseudolarix pseudolateral pseudolegal pseudolegendary pseudoleucite pseudoleucocyte pseudoleukemia pseudoliberal pseudolichen pseudolinguistic pseudoliterary pseudologist pseudologue pseudology pseudolunule pseudomalachite pseudomancy pseudomania pseudomaniac pseudomedical pseudomelanosis pseudomembrane pseudomembranous pseudomeningitis pseudomer pseudomeric pseudomerism pseudomery pseudometallic pseudometameric pseudometamerism pseudomica pseudomilitaristic pseudomilitary pseudoministerial pseudomitotic pseudomodest pseudomonoclinic pseudomonocotyledonous pseudomonocyclic pseudomonotropy pseudomoral pseudomorphia pseudomorphic pseudomorphine pseudomorphism pseudomorphose pseudomorphosis pseudomorphs pseudomorula pseudomorular pseudomultilocular pseudomultiseptate pseudomythical pseudonarcotic pseudonational pseudonavicellar pseudoneuropter pseudonitrole pseudonychium pseudonym pseudonymal pseudonyme pseudonymous pseudonymously pseudonymousness pseudonyms pseudonymuncule pseudopapaverine pseudoparalysis pseudoparaplegia pseudoparasitic pseudoparasitism pseudoparenchyma pseudoparenchymatous pseudoparenchyme pseudoparesis pseudopediform pseudopelletierine pseudopercular pseudoperculate pseudoperculum pseudoperianth pseudoperidium pseudopermanent pseudoperoxide pseudophellandrene pseudophenanthroline pseudophenocryst pseudophilanthropic pseudophilosophical pseudophoenix pseudopionnotes pseudopious pseudoplasm pseudoplasma pseudoplasmodium pseudopneumonia pseudopod pseudopodal pseudopodia pseudopodial pseudopodiospore pseudopoetic pseudopoetical pseudopolitic pseudopore pseudoporphyritic pseudopregnancy pseudopregnant pseudoprimitive pseudoprincely pseudoproboscis pseudoprofessorial pseudoprophetic pseudoprophetical pseudoprosperous pseudopsia pseudopsychological pseudoptics pseudoptosis pseudopurpurin pseudoquinol pseudoracemic pseudoracemism pseudoreformed pseudoregal pseudoreligious pseudoreminiscence pseudorganic pseudorheumatic pseudoromantic pseudorunic pseudosacred pseudosacrilegious pseudosalt pseudosatirical pseudoscarus pseudoscholarly pseudoscientific pseudoscinine pseudoscope pseudoscopically pseudoscopy pseudoscorpion pseudoscorpionida pseudoscutum pseudosematic pseudoseptate pseudosessile pseudosiphonal pseudoskink pseudosmia pseudosocial pseudosocialistic pseudosolution pseudosophical pseudosophist pseudosophy pseudospectral pseudospermic pseudospermium pseudosphere pseudospherical pseudospiracle pseudospiritual pseudosporangium pseudospore pseudosquamate pseudostalactitical pseudostalagmite pseudostalagmitical pseudostereoscope pseudostereoscopic pseudostigma pseudostigmatic pseudostoma pseudostomatous pseudostratum pseudosuchia pseudosuchian pseudosyllogism pseudosymmetric pseudosymmetrical pseudosymmetry pseudosymptomatic pseudotabes pseudotachylite pseudotetrameral pseudothiouric pseudotribal pseudotrimeral pseudotsuga pseudotubercular pseudotuberculous pseudoval pseudovary pseudovelar pseudovelum pseudoviaduct pseudoviperine pseudoviscosity pseudowhorl pseudoxanthine pseudoyohimbine pseudozoea pseudozoogloeal psha pshaw psi psidium psilanthropic psilanthropist psilanthropy psiloceran psiloceras psiloceratan psiloceratidae psiloi psilology psilomelane psilomelanic psilophytales psilophyton psilosis psilosopher psilosophy psilotic psithyrus psittaceously psittaci psittacidae psittaciformes psittacinae psittacine psittacinite psittacism psittacomorphae psittacomorphic psittacosis psittacus psoas psoatic psocine psoitis psomophagist psoralea psoralen psoralens psoriasiform psoriasis psoriatic psoriatiform psoric psoroid psorophthalmia psorophthalmic psoroptes psorospermial psorospermic psorospermosis psorous pssimistical pst psych psychagogic psychagogos psychagogue psychalgia psychanalysis psychanalysist psychasthenia psychasthenic psychean psycheometry psychesthesia psychiasis psychiater psychiatria psychiatric psychiatrically psychiatrist psychic psychical psychicism psychicist psychics psychid psychidae psychist psycho psychoactive psychoanalyse psychoanalysis psychoanalyst psychoanalytical psychoanalytically psychoanalyzer psychoautomatic psychobiological psychobiology psychocatharsis psychoclinic psychoclinical psychoclinicist psychoda psychodispositional psychodrama psychodynamic psychoeducational psychoepilepsy psychogalvanic psychogalvanometer psychogenetic psychogenetical psychogenetically psychogenetics psychognostic psychognosy psychogonical psychogony psychogram psychograph psychographer psychographist psychography psychoid psychokinesis psychokinetic psycholepsy psycholeptic psychologer psychologia psychologic psychological psychologically psychologics psychologism psychologist psychologists psychologize psychology psychomancy psychomantic psychometer psychometric psychometrical psychometrically psychometrics psychometrize psychometry psychomoral psychomorphism psychomotility psychomotor psychoneural psychoneurological psychoneurosis psychoneurotic psychonomic psychonomy psychony psychoorganic psychopannychian psychopath psychopathic psychopathologic psychopathological psychopathologist psychopathy psychopetal psychophobia psychophysic psychophysical psychophysics psychophysiologist psychophysiology psychopomp psychopompos psychorealism psychorealist psychorealistic psychoreflex psychorhythmia psychorhythmic psychorhythmical psychorhythmically psychorrhagic psychosarcous psychosensorial psychosexually psychosocial psychosomatic psychosomatics psychosome psychosophy psychostatic psychostatical psychostatically psychostatics psychosurgery psychotechnical psychotechnician psychotechnics psychotechnological psychotechnology psychotheism psychotherapeutics psychotherapist psychotherapy psychotic psychotria psychotrine psychotropic psychovital psychozoic psychroesthesia psychrograph psychrometer psychrometric psychrometrical psychrometry psychrophile psychrophilic psychrophore psychrophyte psychurgy psycoanalyze psylla psyllid psyllidae pta ptarmic ptarmical ptarmigan ptca ptelea ptenoglossa pteranodont pteranodontidae pteraspid pteraspidae ptereal pterergate pteridium pteridography pteridoid pteridological pteridology pteridophilist pteridophilistic pteridophytic pteridophytous pteridospermae pteridospermaphyta pteridospermaphytic pteridospermous pterion pteris pterobranchiate pterocarpus pterocarya pterocaulon pteroceras pterocles pterocletes pteroclidae pteroclomorphic pterodactyl pterodactylian pterodactylic pterodactylid pterodactyloid pterodactylous pterodactyls pterodactylus pterographic pterographical pterography pteroid pteroma pteromalid pteromalidae pteromys pteropaedes pteropegal pteropegous pterophorid pterophoridae pterophorus pterophryne pteropine pteropod pteropodal pteropodial pteropodidae pteropodous pteropsida pterosaur pterosauri pterosaurian pterospora pterostemon pterostemonaceae pterostigmal pterostigmatical pterotheca pterotic pterygial pterygiophore pterygode pterygodum pterygogenea pterygoid pterygoidal pterygoidean pterygopalatine pterygopharyngeal pterygopharyngean pterygophore pterygopodium pterygoquadrate pterygosphenoid pterygospinous pterygostaphyline pterygota pterygote pterygotous pterygotrabecular pterylographic pterylographical pterylography pthere ptilichthyidae ptiliidae ptilimnium ptilinal ptilonorhynchidae ptilonorhynchinae ptilopaedes ptilopaedic ptilosis ptinid ptinidae ptinus ptochocracy ptochology ptolemaian ptolemaist ptolemean ptomaine ptomaines ptomatropine ptotic ptsd ptt ptyalectasis ptyalin ptyalism ptyalize ptyalolith ptyalolithiasis ptyalorrhea ptychopterygial ptychosperma ptysmagogue pu pua pualities puan pub pubal pubble pubblica puberal puberes pubertal puberty puberulent pubescence pubescency pubescent pubic pubigerous pubilshed pubis public publican publicans publicanus publication publications publichearted publicheartedness publicism publicist publicists publicity publicize publicized publick publicly publicness publico publicos publicus publieations publikely publilian publish publishable published publisher publisheress publishers publishership publishes publishing publishings publishment pubococcygeal puboischiac puboischiatic puboprostatic puborectalis pubotibial pubourethral pubovesical pubs puc puccini puccinia pucciniaceae puccoon puce pucelage pucellas pucelle puchero puck pucka pucker puckered puckerel puckering puckers puckery puckfist puckish puckishness puckling puckneedle puckrel pud puddee pudden puddens pudder pudding puddingberry puddinghead puddingheaded puddinghouse puddings puddingstone puddingwife puddingy puddle puddled puddlelike puddles puddling puddock puddy pudenda pudendal pudendous pudeur pudgily pudgy pudiano pudibund pudic pudicitia pudicity pudsey pudu pueblito pueblo puebloan puebloize pueblos puelchean puer pueraria puerer puerile puerilism puerilities puerility puerpera puerperal puerperalism puerperant puerperium puerperous puerpery puerto puesto puff puffback puffball puffbird puffed puffer puffers puffery puffily puffinet puffing puffingly puffings puffs puffwig puffy pug pugarees pugged pugger puggle puggy pugh pugil pugilant pugilism pugilist pugilistic pugilistical pugilistically pugilists pugman pugnacious pugnaciously pugnaciousness pugnacity puinavi puinavian puinavis puir puissant puissantness puisse puist puja pujunan puka pukatea puke puker pukishness pukka pukras puku puky pul pulahan pulahanism pulasan pulaski pulaskite pulchritude pulchritudinous pule puler pulex pulghere puli pulian pulicat pulicid pulicidae pulicide pulicine pulicoid puling pulingly pulka pull pulldevil pulldown pulldrive pulled pullen puller pullery pullet pulleth pulley pulleys pulling pullings pullman pullmanize pullorum pullout pullover pulls pullulant pullulate pullulation pullus pulmo pulmobranchia pulmobranchial pulmobranchiate pulmocardiac pulmocutaneous pulmogastric pulmometer pulmonar pulmonaria pulmonarian pulmonary pulmonata pulmonated pulmone pulmonectomy pulmonem pulmones pulmonibus pulmonifera pulmoniferous pulmonitis pulmotor pulmotracheal pulmotrachearia pulmotracheate pulp pulpalgia pulpboard pulpectomy pulper pulpifier pulpify pulpiness pulping pulpit pulpital pulpitarian pulpitful pulpitic pulpitical pulpitis pulpitish pulpitism pulpitize pulpitolatry pulpitry pulpits pulpless pulplike pulpotomy pulpous pulpstone pulpy pulsatance pulsate pulsatile pulsatility pulsatilla pulsating pulsation pulsational pulsations pulsative pulsatively pulsator pulsatory pulse pulsed pulseless pulselessness pulselike pulses pulsidge pulsific pulsimeter pulsing pulsive pulsojet pulsometer pulton pulu pulverable pulvereous pulverin pulverised pulverizable pulverizate pulverization pulverizator pulverize pulverized pulverizing pulverulence pulverulently pulvic pulvil pulvillar pulvilliform pulvinar pulvinarian pulvinate pulvinated pulvinately pulviniform pulvino pulvinule pulvinus pulviplume pulwar puma pumicate pumice pumiced pumiceous pumicer pumiciform pummel pummeler pummelled pummeller pummelling pummice pump pumpable pumpage pumped pumpellyite pumper pumpernickel pumping pumpkin pumpkinification pumpkinify pumpkinish pumpkinity pumpkins pumplike pumpman pumps pumpwright pun puna punaise punalua punaluan punatoo punch punchable punchboard punched puncheon puncher punches punchinello punching punchless punchproof punchy punct punctal punctate punctated puncticular puncticulate puncticulose punctiform punctilio punctiliomonger punctiliosity punctilious punctiliously punctiliousness punctist punctographic punctual punctuality punctually punctuate punctuated punctuating punctuation punctuationist punctuist punctulate punctulated punctulation punctule punctum puncturation puncture punctured punctureless punctureproof puncturer punctures puncturing puncu pundit punditic punditically pundonor puneca pung punga pungapung pungency pungent pungently punger pungey pungi pungled punic punica punicaceous punicial punicin punicine punily puniness punish punishability punishable punishableness punished punisher punishes punisheth punishing punishment punishmentproof punishments punit punitional punitionally punitive punitiveness punitory punjabi punk punkah punkahs punketto punless punlet punnable punnet punnic punning puno punproof puns punster punstress punt puntabout puntel punter puntist punto puntout puntsman punty puny punyism pup pupa pupae pupahood pupal pupate pupation pupelo pupidae pupil pupilage pupilate pupildom pupillarity pupillary pupilless pupillidae pupillometer pupilloscope pupilloscopy pupils pupilship pupipara pupiparous pupivora pupoid puppet puppetdom puppeteer puppetish puppetism puppetize puppetlike puppetly puppetry puppets puppies puppily puppy puppydom puppyfish puppyfoot puppyhood puppyish puppyism puppylike pups pupulo pupuluca pupunha pur purana puranic puraque purasati purbeckian purblind purblindly purblindness purchasable purchase purchased purchaser purchasers purchases purchasing purdah purdue purdy pure pureblood pured puree purely pureness purer purest purfle purfled purfler purfling purfly purga purgation purgative purgatively purgatorial purgatory purge purgeable purged purger purges purging purification purificative purificatory purified purifier purifiers purifies purify purifying purin purina puriore purism purissimi purist puritan puritandom puritaness puritanic puritanical puritanically puritanicalness puritanism puritanizer puritanlike puritanly puritano purities purity purkinje purkinjean purl purled purler purlhouse purlicue purlieu purlieuman purlieus purling purlins purlman purloin purloined purloiner purloining purls purolymph puromucous puroose purpart purple purplefaced purplelip purples purplescent purplewood purplewort purplish purply purport purported purporting purports purpose purposed purposedly purposeful purposefully purposeless purposelessly purposelessness purposelike purposely purposer purposes purposing purposive purposively purposiveness purposivism purposivistic purpuraceous purpure purpureal purpurean purpureous purpurescent purpuriferous purpurigenous purpurin purpurine purpurite purpurize purpurogallin purpurogenous purpuroid purpuroxanthin purr purred purree purrel purrer purring purringly purrone purry purse pursed purseless purselike purser pursers purses purshia pursily pursiness pursing purslane purslet pursley pursuable pursual pursuance pursuant pursue pursued pursuer pursuers pursues pursuing pursuit pursuitmeter pursuits pursuivant pursy purtenance purty puruha purulently puruloid purushartha purvey purveyable purveyal purveyance purveyor purveyoress purveyors purview purvoe purwannah pus puschkinia pusey puseyism puseyistical push pushball pushed pushes pushful pushfully pushing pushingness pushout pushovers pushpin pushtu pushwainling pushy pusillanimity pusillanimous pusillanimously pusillanimousness puss pusscat pusslike pusson pussy pussycat pussyfoot pussyfooted pussyfooter pussyfooting pussyfootism pustular pustulated pustulation pustule pustuled pustulelike pustules pustuliform pustulose pustulous put putage putamen putaminous putanism putation putative putatively putcher putelee puthery putidly putidness putlog putois putorius putredinous putrefacient putrefactible putrefaction putrefactive putrefiable putrefied putrefy putrefying putrescence putrescency putrescibility putrescible putricide putrid putridly putridness putrifacted putriform putrilage putrilaginous puts putschism putschist putt puttee putter putterer putteringly puttest puttier putting puttock putty puttylike puttyroot puttywork puture puxy puya puyallup puzzle puzzleation puzzled puzzledly puzzledness puzzledom puzzlehead puzzleheadedly puzzleheadedness puzzleman puzzlement puzzlepate puzzlepated puzzlepatedness puzzler puzzles puzzling puzzlingly pvc pvd pvevailed pya pyarthrosis pyche pycnanthemum pycnid pycnidial pycnidiospore pycnite pycnium pycnoconidium pycnodontidae pycnodus pycnogonidium pycnogonoid pycnometer pycnometochia pycnometochic pycnomorphic pycnomorphous pycnonotidae pycnonotine pycnonotus pycnosis pycnosporic pycnostyle pycnotic pyelectasis pyelic pyelitis pyelocystitis pyelogram pyelographic pyelography pyelometry pyelonephritis pyelonephrosis pyeloplasty pyeloscopy pyeloureterogram pyemia pygal pygalgia pygarg pygidid pygididae pygidium pygmaean pygmies pygmy pygmyism pygmyship pygobranchia pygobranchiata pygobranchiate pygofer pygopagus pygopod pygopodes pygopodidae pygopodine pygopodous pygostyle pygostyled pygostylous pyhrric pyic pyin pyjama pyjamaed pyjamas pyke pyknatom pyknic pyknotic pylades pylagore pylagori pylangial pylangium pylar pyle pylephlebitic pylephlebitis pylle pylon pyloralgia pyloric pyloristenosis pyloritis pylorocleisis pylorodilator pylorogastrectomy pyloroschesis pyloroscirrhus pyloroscopy pylorospasm pylorostenosis pylorus pyobacillosis pyoctanin pyocyanase pyocyanic pyodermatitis pyodermia pyodermic pyogenesis pyogenetic pyogenic pyogenous pyolabyrinthitis pyolymph pyometritis pyonephritis pyonephrosis pyonephrotic pyongyang pyopericarditis pyoperitoneum pyoperitonitis pyophylactic pyopneumocholecystitis pyopneumocyst pyopneumopericardium pyopneumoperitoneum pyopneumoperitonitis pyopneumothorax pyopoiesis pyoptysis pyorrhea pyosalpingitis pyosalpinx pyosepticemia pyospermia pyotherapy pyoureter pyovesiculosis pyr pyracanth pyraceae pyracene pyral pyralid pyralidan pyralidid pyralididae pyralidiform pyralidoidea pyralis pyraloid pyramid pyramidaire pyramidal pyramidale pyramidalis pyramidalism pyramidalist pyramidally pyramidate pyramidellidae pyramider pyramidic pyramidical pyramidically pyramidion pyramidist pyramidize pyramidlike pyramidoattenuate pyramidoidal pyramidologist pyramidoprismatic pyramids pyramidwise pyramoidal pyranometer pyranyl pyrargyrite pyrazole pyrazolone pyrazolyl pyre pyrectic pyrena pyrenaica pyrene pyrenean pyrenematous pyrenic pyrenocarp pyrenocarpic pyrenocarpous pyrenochaeta pyrenodean pyrenoid pyrenoids pyrenolichen pyrenomycetales pyrenomycete pyrenomycetineae pyrenomycetous pyrenopeziza pyres pyrethrum pyreticosis pyretogenetic pyretogenous pyretolysis pyrewinkes pyrex pyrexial pyrexic pyrgocephaly pyrgom pyrheliometer pyrheliometric pyrheliophor pyridine pyridines pyridinium pyridone pyridyl pyriform pyrilamine pyrimethamine pyrimidin pyrimidine pyrimidyl pyritaceous pyrite pyrites pyrithione pyritical pyritiferous pyritization pyritohedral pyritohedron pyritoid pyritology pyritous pyro pyroacetic pyroantimonate pyroantimonic pyroarsenate pyroarsenic pyroarsenious pyrobelonite pyrobituminous pyroborate pyroboric pyrocatechin pyrocatechinol pyrocatechol pyrocellulose pyrochemical pyrochemically pyrochromic pyrocinchonic pyroclastic pyrocomenic pyrocondensation pyroconductivity pyrocotton pyrocrystalline pyrocystis pyrodine pyroelectricity pyrogallate pyrogallol pyrogen pyrogenation pyrogenetic pyrogenetically pyrogenic pyroglutamic pyrognostic pyrographic pyrography pyroheliometer pyroid pyrola pyrolaceae pyrolater pyrolatry pyroligneous pyrolignic pyrolignite pyrolignous pyrollogical pyrology pyrolyse pyrolytic pyrolyze pyromagnetic pyromania pyromaniac pyromaniacal pyrometamorphic pyrometer pyrometric pyrometry pyromorphite pyromorphous pyromucate pyromucic pyromucyl pyrone pyronomics pyrope pyrophilous pyrophone pyrophoric pyrophorous pyrophosphate pyrophosphoric pyrophotography pyrophysalite pyropuncture pyropus pyroracemate pyroscope pyrosoma pyrosome pyrosomidae pyrosomoid pyrosphere pyrostereotype pyrostilpnite pyrosulphate pyrosulphite pyrosulphuric pyrosulphuryl pyrotartrate pyrotechnic pyrotechnical pyrotechnically pyrotechnics pyrotechnist pyroterebic pyrotheology pyrotherium pyrotritaric pyrotritartric pyrouric pyrovanadate pyrovanadic pyroxene pyroxenic pyroxenite pyroxenites pyroxmangite pyroxylene pyroxylic pyroxylin pyrrhic pyrrhichian pyrrhicist pyrrhocoridae pyrrhonian pyrrhonic pyrrhonism pyrrhonistic pyrrhotism pyrrhotist pyrrhotite pyrrhous pyrrhuloxia pyrrodiazole pyrrol pyrrole pyrrolic pyrrolidyl pyrroline pyrrols pyrrolylene pyrrophyllin pyrroporphyrin pyrrotriazole pyrroyl pyrrylene pyrula pyrularia pyruline pyruloid pyrus pyruvic pyruvyl pythagoras pythagorean pythagoreanism pythagoreanize pythagoreanly pythagorical pythagorically pythagorist pythagorize pythagorizer pythiacystis pythiambic pythios pythioue pythium pythogenesis pythogenetic pythogenous python pythoness pythonical pythonid pythonine pythonism pythonissa pythonist pythonomorph pythonomorpha pythonomorphic pythons pyuria pyvuril pyxidate pyxidium pyxie pyxis q q's qaem qasida qasidas qeialities qere qeri qhra qintar qoph qua quab quachil quack quacked quackery quacking quackishly quackishness quacks quacksalver quad quadam quadded quaddle quader quadi quadra quadrable quadraceps quadragenarian quadragenarious quadragesima quadragesimal quadragintesimal quadrangle quadrangles quadrangular quadrangularly quadrangulate quadrant quadrantid quadrantile quadrantlike quadrantly quadrate quadrated quadrateness quadratic quadratically quadratics quadratifera quadratojugal quadratomandibular quadratum quadrature quadratus quadrauricular quadrennia quadrennial quadrennially quadrennium quadriad quadrialate quadriannulate quadriarticulate quadriarticulated quadric quadricapsular quadricapsulate quadricarinate quadricellular quadricentennial quadriceps quadrichord quadriciliate quadricinium quadricipital quadricone quadricorn quadricornous quadricotyledonous quadricrescentoid quadricuspid quadricuspidal quadricuspidate quadricycle quadricycler quadridentated quadriderivative quadriennial quadriennium quadrienniumutile quadrifarious quadrifariously quadrifid quadrifilar quadrifocal quadrifoil quadrifoliate quadrifoliolate quadrifolious quadrifolium quadrifrons quadrifrontal quadrifurcated quadriga quadrigabled quadrigamist quadrigate quadrigatus quadrigeminate quadrigeminum quadrigenarious quadrihybrid quadrijugal quadrijugous quadrilateral quadrilateralness quadrilaterals quadrilingual quadriliteral quadrille quadrilled quadrilles quadrillion quadrilobate quadrilocular quadriloculate quadrilogue quadrilogy quadrimembral quadrimetallic quadrimolecular quadrioxalate quadriparous quadripartite quadripartitely quadripartition quadripennate quadriphosphate quadriphyllous quadriplanar quadriplicate quadriplicated quadripolar quadripole quadriporticus quadriquadric quadrireme quadrisect quadriseptate quadriserial quadrisetose quadrispiral quadristearate quadrisulcate quadrisulcated quadrisyllabic quadrisyllabical quadrisyllable quadrisyllabous quadriternate quadrituberculate quadrivalency quadrivalent quadrivalve quadrivial quadrivious quadrivium quadroon quadrual quadrula quadrum quadrumana quadrumane quadruped quadrupedal quadrupedate quadrupedation quadrupedous quadrupeds quadruplane quadruplator quadruple quadrupleness quadruplex quadruplicate quadruplicature quadruply quadrupole quae quaeators quaedam quaelibet quaesitum quaestor quaestorian quaestors quaestorship quaestuary quaff quaffed quaffs quag quagginess quaggy quagmire quagmires quagmiry quahog quail quailberry quailed quailery quailing quails quaily quaint quaintance quainter quaintest quaintish quaintly quaintness quaitso quake quaked quaker quakeric quakerish quakerishly quakerism quakerization quakerlet quakerly quakership quakery quakes quaketail quakiness quaking quakingly quakings quaky quale qualifiable qualification qualifications qualificative qualificatory qualified qualifier qualifies qualify qualifying qualitative qualitatively qualitied qualities quality qualityless qualityship qualityt qualm qualminess qualmishness qualmproof qualms qualmy quam quamasia quamoclit quan quand quandary quando quandong quandry quandy quantical quantico quantifiable quantification quantifier quantimeter quantiries quantise quantitate quantitative quantitatively quantitied quantities quantitive quantitively quantity quantivalent quantization quantometer quantulum quantum quantus quaquaversal quaquaversally quar quarante quarantine quarantiner quardeel quare quarenden quarender quarest quark quarle quarred quarrel quarreled quarreler quarreling quarrelingly quarrelled quarreller quarrelling quarrels quarrelsome quarrelsomely quarrelsomeness quarried quarrier quarries quarry quarrying quarryman quarrymen quarrystone quart quartane quartation quarter quarterage quarterback quarterbacks quarterdeck quarterdeckish quartered quarterer quarterfinalist quartering quarterings quarterization quarterland quarterly quarterman quartermaster quartermastership quartern quarternion quarterpace quarters quartersawed quarterspace quarterstaff quarterstetch quartet quartette quartettes quartetto quartful quartic quartier quartiparous quarto quartodeciman quartodecimanism quartole quarts quartum quartz quartzic quartziferous quartzite quartzless quartzose quartzy quas quash quashed quashee quashing quasi quasiaesthetic quasicontinuous quasijudicial quasiorder quasiperiodic quasistationary quassin quatch quatercentenary quaternal quaternarius quaternary quaternate quaternitarian quaternity quatrain quatrains quatral quatrefoliated quatrin quatrino quatrocentism quatsino quattie quattrini quatuor quauk quave quaver quavered quavering quaveringly quaverous quavers quaverymavery quaw quawk quay quayage quaylike quayman quays quayside qubba que queach queachy queak quean queanish queans queasily queasiness queasom queasy quebracho quebradilla quedful queechy queek queen queencake queencraft queencup queendom queened queenfish queenhood queening queenless queenlet queenlier queenlike queenly queenroot queens queenship queensware queenweed queenwood queer queerer queerest queerishness queerlike queerly queerness queersome queery queest queesting queeve quegh queintise quel quelch quelea quell quelled queller quelling quelque quelquefois quelques quem quemado queme quemeful quemefully quemely quence quences quench quenchable quenchableness quenched quenches quencheth quenching quenchless quenchlessly quenchlessness quenelle quent quented quentin quently quer queramos quercetagetin quercetic quercetin querciflorae quercimeritrin quercin quercinic quercitannic quercite quercitol quercivorous quercus querela querendy queried querier queries queriman querimoniously querimoniousness querimony querist quern quernal quernstone querulent querulential querulist querulity querulosity querulous querulously querulousness query querying queryingly queryist quesitive quest quester questeur questful question questionable questionably questionary questioned questionee questioner questioneth questioning questioningly questionings questionist questionless questionlessly questionnaire questionnaires questions questionwise questman questo questor questorship quests quetenite quetzal queue quezon qui quia quiangan quiapo quib quibble quibbleproof quibbler quibbles quibbling quibblingly quiblet quibusdam quiche quick quickborn quicke quicken quickenance quickenbeam quickened quickener quickening quickens quicker quickest quickfoot quickhatch quickhearted quickie quicklime quickly quickness quickreturning quicksand quicksands quicksandy quickset quicksighted quicksilver quicksilverishness quicksilvery quickstep quickwork quid quiddit quidditative quidditatively quiddity quiddle quidem quidnunc quiesce quiescence quiescent quiescently quiet quieted quietened quietener quieter quietest quieting quietism quietist quietistic quietlike quietly quietness quiets quietsome quietude quiffing quiina quil quila quilkin quill quillai quillaic quillaja quilled quilleted quillfish quilling quills quillwort quilly quilt quilted quilter quilting quilts quin quina quinacrine quinaldine quinaldinic quinaldinium quinaldyl quinalizarin quinamidine quinanisole quinarius quinate quinault quinazoline quince quincentenary quincentennial quincewort quinch quincubital quincubitalism quincuncially quincunx quincunxes quindecagon quindecangle quindecasyllabic quindecemvir quindecennial quindecim quindecima quindecylic quindene quinethazone quinetum quingentenary quinible quinic quinidia quinina quinine quininiazation quininic quininism quininize quiniretin quinisext quinisextine quinism quinitol quinizarin quinize quink quinn quinnat quinnet quinoa quinocarbonium quinogen quinoid quinoidal quinoidation quinol quinoline quinolines quinolinyl quinologist quinology quinolyl quinometry quinonediimine quinonic quinonization quinonize quinonoid quinonyl quinotannic quinova quinovatannic quinovic quinquagenarian quinquagesima quinquarticular quinquatria quinquatrus quinque quinquecapsular quinquecostate quinquedentate quinquefarious quinquefoliolate quinquegrade quinquelateral quinquelobated quinquenary quinquenerved quinquennalia quinquennia quinquenniad quinquennial quinquennialist quinquennially quinquepedalian quinquepetaloid quinqueradial quinqueradiate quinquereme quinquesection quinqueserial quinqueseriate quinquetuberculate quinquevalence quinquevalency quinquevalent quinqueverbial quinquevirate quinquiliteral quinquina quinquino quinse quinsied quinsywort quint quintadena quintain quintan quintant quintary quintato quinte quintelement quintennial quinternion quinteron quinteroon quintessence quintessential quintessentially quintet quintette quintic quintilis quintillion quintillions quintillionth quintin quintiped quintius quinto quintole quintroon quintuple quintupled quintuplet quintuplicate quintuplication quintuplinerved quintus quinuclidine quinyl quinze quip quipper quippish quippishness quippy quips quipsome quipster quipu quira quire quirewise quirinal quirinca quirites quirkiness quirky quirl quirquincho quis quisby quisition quisling quisqualis quisque quisqueite quisquiliary quisquous quisutsch quit quitclaim quite quiteno quito quits quittable quittance quitted quitter quittez quitting quittor quitu quiver quivered quiverful quivering quiveringly quiverish quivers quivery quixote quixotic quixotical quixotize quiz quizzability quizzable quizzacious quizzed quizzee quizzer quizzers quizzes quizzical quizzically quizzicalness quizzification quizzify quizzing quizzingly quizzish quizzity quizzy qung quo quod quodam quoddies quoddity quodlibetal quodlibetarian quodlibetary quodlibetic quodlibeticae quohog quoilers quoiter quondam quondamship quoniam quonset quoratean quorum quot quota quotable quotableness quotably quotas quotation quotational quotationally quotationist quotations quote quoted quotennial quoter quotes quoth quotha quothed quotidian quotidianly quotidianness quotient quotiety quoting quotingly quotity qurti qusidas ra raab raash rab raband rabanna rabat rabatine rabbanist rabbanite rabbet rabbeting rabbi rabbinate rabbinic rabbinica rabbinical rabbinically rabbinistical rabbinite rabbinize rabbins rabbinship rabbis rabbit rabbithearted rabbiting rabbitmouth rabbitproof rabbits rabbitskin rabbitweed rabbitwise rabble rabblelike rabblement rabbleproof rabblesome rabboni rabic rabid rabidity rabidness rabies rabietic rabific rabigenic rabin rabinet rabirubia rabitic rabulistic rabulous raccolto raccoon raccoonberry race raceabout racebrood racecourse raced racegoer racegoing racehorse racehorses racelike racemate racemation racemed racemes racemic racemiferous racemiform racemization racemize racemocarbonic racemomethylate racemosely racemous racemously racemule racemulose racer racers races racetrack raceway rach rache rachel rachial rachialgia rachialgic rachianalgesia rachianectes rachianesthesia rachicentesis rachides rachidial rachiform rachiglossa rachiglossate rachigraph rachilla rachiocentesis rachiococainize rachiodynia rachiometer rachiomyelitis rachioparalysis rachiotome rachiotomy rachischisis rachitic rachitism rachitogenic rachitomous rachitomy rachmaninoff rachycentridae racial racialism racialist raciality racialization racially raciness racing racism racist rack rackabones rackan racked racket racketed racketeer racketeering racketing rackets rackett rackettail rackety racking rackle rackless rackproof rackrentable racks rackway rackwork racoon racovian racquetball racquets racy rad radar radarscope raddle raddleman raddlings rade radets radiability radiable radial radiale radialia radiality radialization radialize radially radiance radiancy radiant radiantly radiata radiate radiated radiately radiateness radiates radiatiform radiating radiation radiational radiations radiatopatent radiatoporose radiatoporous radiator radiators radiatory radical radicalism radicality radicalization radicalize radically radicalness radicals radicate radicated radicating radication radicel radices radicicola radicicolous radiciform radicivorous radicle radicula radicular radicule radiculectomy radiculitis radiculose radiectomy radii radiis radio radioacoustics radioactinium radioactivate radioactive radioactively radioactivity radioallergosorbent radioanaphylaxis radioastronomy radioautograph radioautographic radioautography radiobicipital radiobroadcaster radiobroadcasting radiobserver radiocarbon radiocarpal radiocast radiocaster radiochemical radiocinematograph radiodetector radiodiagnosis radiodigital radiodontia radiodontic radiofrequency radiogenic radiogoniometric radiogoniometry radiograph radiographer radiographic radiographical radiographically radiography radioiodine radioisotopes radiolaria radiolarian radiolarians radiolead radiolites radiolitic radiolocate radiolocator radiologic radiological radiologist radiologists radiology radiolucency radiolucent radioluminescence radioluminescent radioman radiomedial radiometallography radiometer radiometric radiometrically radiometry radiomicrometer radiomuscular radionecrosis radioneuritis radionics radiopacity radiopalmar radiopaque radiopelvimetry radiophare radiophone radiophonic radiophony radiophosphorus radiophotograph radiopraxis radioscope radioscopic radioscopical radioscopy radiosensitive radiosensitivity radiosonde radiosonic radiosterilize radiosurgery radiosurgical radiosymmetrical radiotechnology radiotelegram radiotelegraph radiotelegraphic radiotelephone radiotelephonic radiotelephony radioteria radiothallium radiotherapeutic radiotherapeutics radiotherapeutist radiotherapist radiotherapy radiothermy radiothorium radiotransparency radiotransparent radiotron radiotropic radiotropism radish radishes radishlike radium radiumization radiumize radiumlike radiumproof radius radknight radman radome radon radsimir radula radulate raduliferous raduliform rae rael rafael rafe raff raffee raffermir rafferty raffery raffia raffinase raffinate raffing raffinose raffish raffishly raffishness raffle raffled raffler rafflesia rafflesiaceae rafflesiaceous raft raftage rafted rafter rafters raftlike rafts raftsman raftsmen rafty rag ragabash ragabrash ragamuffin ragamuffinism ragamuffinly ragamuffins rage raged rageful ragefully rageproof rager rages ragesome ragfish ragged raggedest raggedly raggedness raggee ragger raggery raggily ragging raggle raggy raging ragingly ragings raglan raglanite raglin ragman ragout ragpicker ragpickers rags ragseller ragshag ragstone ragtime ragweed ragwort rah raham rahanwin rahdar rahdaree raid raided raider raiders raiding raidproof raids raiiform rail railbed railed railer railhead railing railingly railings raillery railless raillike railly railman railroad railroadana railroader railroadiana railroading railroads railroadship rails railvay railway railwaydom railways raimannia raiment raimentless rain rainbanks rainbird rainbow rainbowed rainbowlike rainbows rainbowy rainburst raincoat raindrop raindrops rained raineth rainfall rainfowl rainful rainier rainiest rainily raininess raining rainless rainlessness rainproof rainproofer rains rainspout rainstorm rainstorms rainwash rainwear rainworm rainy raioid rais raise raised raiser raisers raises raiseth raisin raising raisins raison raisonne raisonnee raisons raj raja rajah rajahs rajaship rajasthani rajbansi rajidae rakan rake rakeage raked rakehell rakehellish raker rakery rakes rakesteel rakestele rakh raki raking rakish rakishly rakishness rakit rakshasa raku rale rallentando ralliance rallidae rallied rallier rallies ralline ralls rallus rally rallying ralph ralstonite ram rama ramaism ramaite ramal raman ramanas ramarama ramberge ramble rambled rambler ramblers rambles rambling ramblings rambo rambong rambooze rambunctious ramdohrite rame ramean ramed ramekin rament ramentaceous ramental ramentiferous rameous ramequin rames rameseum ramessid ramesside ramet ramfeezled ramgunshoch ramhead ramhood rami ramicorn ramie ramification ramifications ramified ramiform ramify ramifying ramigerous ramillie ramillied ramiparous ramisection ramisectomy ramism ramist ramistical ramlike ramline rammack ramme rammed rammers ramming rammish rammishly ramnes ramo ramoosii ramose ramosely ramosity ramosopalmate ramososubdivided ramous ramp rampaciously rampage rampageously rampageousness rampager rampaging rampagious rampancy rampant rampantly rampart ramparts ramped ramphastidae ramphastides ramphastos rampike ramping rampion rampire rampired rampires rampler ramplor ramrace ramrod ramroddy ramrods rams ramsch ramsey ramshackle ramshackled ramshackleness ramshackly ramson ramstam ramtil ramular ramule ramuliferous ramulose ramulous ramulus ramus ramuscule ramusi ran ranal ranales ranarian ranarium ranatra rance rancellor rancer rancescent ranch ranche ranched rancher rancheria ranchero ranches ranching ranchless rancho rancid rancidification rancidify rancidly rancor rancorous rancorproof rancour randal randall randallite randannite randem rander randia randir randite randle randolph random randomish randomize randomness randy rane ranella rang rangatira range ranged rangeland rangeless rangeman ranger rangership ranges rangework rangifer rangiferine ranginess ranging rangling rangoon rangy rani ranid ranidae ranier raniform ranime ranina raninae ranine raninian ranitidine ranivorous rank ranked ranker rankin rankine ranking rankish rankle rankled rankles rankling ranklingly rankly rankness ranks ranksman rannel rannigal ranny ranquel ransack ransacked ransacking ransackle ransel ransom ransomable ransomed ransomer ransomfree ransoming ransomless rant rantan rantankerous ranted ranter ranterism ranting rantingly rantipole rantock ranty ranula ranular ranunculaceous ranunculales ranunculi ranunculus rap rapaces rapacious rapaciously rapacity rapakivi rapanea rapateaceae rape raped rapeful raper rapes rapeseed raphael raphaelesque raphaelic raphaelism raphaelitism raphania raphany raphe raphidiferous raphidiid raphidiidae raphidodea raphidoidea raphiolepis raphis rapic rapid rapidity rapidly rapids rapier rapiered rapiers rapillo rapine raping rapinic rapist raploch rappe rapped rappel rappelleras rapping rappist rappite rapport rapprochement raps rapscallionism rapscallionly rapscallionry rapt raptatory raptor raptores raptorial raptorious raptril rapture raptured raptures rapturist rapturize rapturous rapturously rapturousness rare rarebit rarefaction rarefactional rarefactive rarefiable rarefication rarefied rarefier rarefies rarefy rarely rareness rarer rareripe rares rarest rarify rarish raritan rarities rarity ras rasa rasalas rasalhague rasamala rasant rascacio rascal rascaldom rascaless rascalism rascalities rascality rascalize rascallike rascally rascalry rascals rasceta rase rased rasen rasenna raser rases rasgado rash rasher rashers rashes rashest rashing rashly rashness rashti rasion raskill rasores rasorial rasp raspatory raspberry rasped rasping raspingly raspings rasps raspy rasse rassle rast rastaban raster rastik rastle rastus rat rata ratability ratable ratableness ratafee ratafia ratal ratanhia rataplan ratbite ratcatcher ratcatching ratchel ratchelly ratcher ratchet ratcheted ratching ratchment rate rateably rated ratel ratement ratepayer ratepaying rater rates ratfish rath rathe rathed rathely ratheness rather ratherest ratherish ratherly rathite rathole raticidal raticide ratification ratifications ratified ratify ratifying ratine rating ratings ratio ratiocinant ratiocinate ratiocination ratiocinator ratiometer ration rational rationale rationalis rationalism rationalist rationalistic rationalistical rationalistically rationalisticism rationalists rationality rationalizable rationalization rationalize rationalizing rationally rationalness rationate ratione rationed rationem rationless rationnelle rations ratios ratitae ratitous rative ratlike ratline ratlines ratooner ratproof rats ratsbane ratskeller rattachement rattage rattail rattan ratten rattener ratter ratting rattle rattlebag rattlebones rattlebox rattlebrain rattlebush rattled rattleheaded rattlemouse rattlenut rattlepated rattlepod rattleproof rattler rattleran rattlers rattlertree rattles rattleskull rattleskulled rattlesnake rattlesnakes rattlesome rattleth rattletrap rattleweed rattling rattlings ratton rattoner rattrap rattus ratty raucid raucidity raucous raucously raucousness raugrave raukle raul rauli raunchy raupo rauque raurici ravage ravaged ravagement ravager ravages ravaging rave raved ravehook raveinelike ravel ravelin ravelled raveller ravelling ravelment raven ravenala ravendom ravener ravening ravenlike ravenous ravenously ravenry ravens ravensara ravenstone ravenwise raver raves ravi ravinate ravine ravined ravinement ravines raviney raving ravingly ravings ravioli ravish ravished ravishedly ravisher ravishers ravishing ravishingly ravishment ravison ravissait ravissant ravissants raw rawboned rawbones rawhead rawhide rawhider rawish rawishness rawness rax ray raya rayage rayed rayful rayless raylessness raylet rayly rayon rayonnance rayonnant rays rayther raze razed razee razer razor razorable razorback razoredge razorless razormaker razormaking razorman razors razorstrop razoumofskya razz razzia razzle razzly rbd rda rdi re reaal reabandon reabolish reabolition reabridge reabsence reabsent reabsorb reabsorbed reabsorbs reabuse reacceptance reaccession reacclimatize reaccomplish reaccord reaccost reaccount reaccredit reaccumulation reaccusation reaccuse reaccustom reacetylation reach reachable reached reacher reaches reacheth reachievement reaching reachless reacht reachy reacidification reacknowledgment reacquaint react reactance reacted reacting reaction reactional reactionally reactionaries reactionariness reactionarism reactionarist reactionary reactionaryism reactionism reactionist reactions reactivate reactive reactiveness reactology reacts reactualization reactualize reactuate read readability readable readableness readably readapt readaptability readaptable readaptive readaptiveness readdition readdress reader readerdom readers readership readest readhesion readier readiest readily readiness reading readings readjourn readjudicate readjust readjusted readjusting readjustment readmeasurement readminister readmiration readmire readmit readmittance readmitted readopt readoption readorn readout reads readvance readvancement readvertency readvertise readvertisement readvise ready reaeration reaffect reaffiliate reaffiliation reaffirm reaffirmance reaffirmation reaffirmed reafflict reafford reafforest reagan reagency reagent reagents reaggravate reaggravation reaggregate reaggregation reaggressive reagin reagitate reagree reagreement real realarm reales realest realgar realienate realienation realign realignment realisable realisation realise realised realises realising realism realisms realist realistic realistically realisticize realities reality realive realizability realizable realizableness realizably realization realize realized realizes realizing realizingly reallegation reallege reallegorize realliance reallocate reallocation reallotment reallusion really reallzed realm realmless realms reals realter realties realtor ream reamalgamate reamalgamation reambitious reamend reamendment reamerer reaminess reams reanalysis reanalyze reanchor reanimate reanimated reanimates reanimation reanneal reannex reannexation reannotate reannouncement reannoy reanoint reanswer reanvil reanxiety reap reapdole reapearance reaped reaper reapers reaping reapology reapparel reappeal reappear reappearance reappeared reappearing reappears reappease reapplaud reapplause reappliance reapplicant reapplication reapplier reapply reappoint reappointed reappointing reappointment reapportion reapportionment reappraisal reappraise reappraisement reappreciate reappreciation reapprehend reapprehension reapproach reapprobation reappropriation reapproval reaps rear rearbitrate rearbitration reared rearer rearguard reargue rearing rearisal rearise rearling rearm rearmament rearmost rearousal rearouse rearrange rearrangeable rearranged rearrangement rearranger rearranging rearrest rearrival rearrive rears rearward rearwards reascend reascendancy reascendant reascended reascendency reascendent reascensional reascent reascertain reascertainment reasiness reason reasonability reasonable reasonableness reasonably reasoned reasonedly reasoner reasoners reasoneth reasoning reasoningly reasonings reasonless reasonlessly reasonlessness reasonproof reasons reaspire reassault reassemble reassembled reassembling reassembly reassent reassert reasserted reasserting reassertor reasserts reassignation reassignment reassimilate reassimilation reassociate reassociation reassort reassortment reassume reassuming reassumption reassurance reassurances reassure reassured reassurement reassurer reassures reassuring reassuringly reastonish reasty reattach reattachment reattack reattain reattainment reattend reattendance reattentive reattest reattribute reattribution reauthenticate reauthentication reauthorization reaving reavoid reavoidance reavouch reavow reawait reawake reawaken reawakened reawakening reawakenment reaward reaware reb rebab rebake rebalance reballast reban rebanish rebanishment rebankrupt rebaptism rebaptismal rebaptization rebaptize rebaptizer rebarbarize rebarbative rebargain rebase rebasis rebatable rebate rebateable rebatement rebater rebates rebathe rebato rebawl rebeamer rebear rebeat rebeautify rebecca rebeccaites rebecome rebed rebeg rebeggar rebeginner rebeginning rebekah rebel rebelieve rebelled rebellest rebelling rebellion rebellions rebellious rebelliously rebelliousness rebellow rebellowing rebellows rebelong rebelove rebels rebemire rebend rebenediction rebenefit rebeset rebetray rebewail rebias rebid rebill rebillet rebind rebinding rebirth rebite reblame reblend rebless reblock rebloom reblossom reblue rebluff reboantic reboard reboil reboise rebold rebolted rebone rebook rebore reborn reborrow rebottle reboulia rebound reboundable rebounded rebounder rebounding reboundingness rebounds rebourbonize rebox rebraid rebrandish rebreathe rebreathing rebreed rebrew rebribe rebrick rebridge rebring rebroach rebronze rebrush rebrutalize rebubble rebuckle rebud rebudget rebuff rebuffable rebuffed rebuffet rebuffproof rebuffs rebuild rebuilding rebuilt rebukable rebuke rebukeable rebuked rebukeful rebukefully rebukefulness rebukeproof rebuker rebukes rebuking rebukingly rebulk rebunker rebuoy reburden reburgeon reburial reburnish rebury rebus rebush rebut rebute rebuttable rebuttal rebutted rebutter rebutting rebutton rebuttoned rebuy recadency recage recal recalcination recalcitrance recalcitrant recalcitrants recalcitrate recalcitration recalculate recalculation recalescent recalibrate recalibration recalk recall recallable recalled recalling recallment recalls recancel recancellation recandescence recandidacy recant recantation recantations recanted recanting recantingly recanvas recap recapacitate recapitalization recapitalize recapitulate recapitulated recapitulates recapitulating recapitulation recapitulationist recapitulations recapitulatory recappable recapper recaptivate recaptivation recaptor recapture recaptured recaptures recapturing recarbon recarbonation recarbonization recarbonize recarbonizer recarburize recarburizer recarnify recarpet recarriage recart recarve recase recash recasket recast recaster recatch recaulescence recausticize recce recco recede receded recedence recedent receder recedes receding receipt receiptable receipted receiptless receiptor receipts receivable receivables receival receive received receivedst receiver receivers receivership receives receivest receiving recelebrate recement recementation recension recensions recensure recent recentioris recently recentness recentralize recentre recep recept receptacle receptacles receptaculite receptaculites receptaculitidae receptaculitoid receptaculum receptant receptibility reception receptionist receptions receptitious receptive receptiveness receptivity receptor receptorial receptual receptually recertificate recertify recess recessed recesses recession recessionary recessive recessively recessiveness recessor recessus rechabite rechabitism rechafe rechain rechal rechallenge rechamber rechange rechant rechar recharge recharter rechasten recheat rechecked rechecking recherche recherchy rechew rechisel rechoose rechristen rechristened rechristening recht rechuck rechurn rechurned recidive recidivism recidivist recidivistic recidivous recieve recieves recife recipe recipes recipiangle recipiency recipiend recipiendary recipient recipients recipiomotor reciprocal reciprocalize reciprocally reciprocalness reciprocals reciprocate reciprocated reciprocates reciprocating reciprocation reciprocative reciprocator reciprocitarian reciprocity recircle recirculation recise recision recission recissory recitable recital recitals recitation recitationist recitations recitative recitatively recitativical recite recited recitement reciter reciters recites reciting recivilize reck reckcned recking reckla reckless recklessly recklessness reckling recklinghausen reckon reckonable reckoned reckoner reckoners reckoning reckonings reckons recks reclaim reclaimable reclaimableness reclaimant reclaimed reclaiming reclaimless reclaimment reclamation reclang reclasp reclass reclassification reclean recleaner recleanse reclear reclearance reclimb reclinable reclinate reclinated reclination recline reclined recliner reclines reclining reclose reclosed reclosing reclothe reclothing recluse reclusely reclusery recluses reclusive recoach recoagulation recoast recoat recoated recoating recock recoct recoction recodification recodify recoenizable recogitation recogniged recognisable recognisant recognise recognised recognises recognising recognition recognitions recognitor recognizable recognizably recognizant recognize recognized recognizee recognizer recognizes recognizing recognizingly recognizor recohabitation recoil recoiled recoiler recoiling recoilment recoils recoin recoinage recollation recollect recollectable recollected recollectible recollecting recollection recollections recollectively recollectiveness recollet recolonization recolor recoloring recomb recombed recombination recombine recombining recomember recommence recommenced recommencement recommences recommencing recommend recommendable recommendableness recommendably recommendation recommendations recommendatory recommended recommendee recommender recommending recommends recommission recommitment recommittal recommitted recommunicate recommunion recompact recomparison recompass recompence recompensate recompensation recompense recompensed recompenses recompetition recompetitor recompilation recompile recompilement recomplain recompletion recomplicate recomply recompose recomposed recomposer recompound recomprehend recompress recompression recomputation recompute reconceal reconcealment reconceive reconcentrate reconcentration reconcert reconcilable reconcilableness reconcile reconciled reconcileless reconcilement reconcilements reconciler reconciles reconciliability reconciliable reconciliation reconciliative reconciliatory reconciling reconcilingly reconclude reconclusion reconcoct reconcrete reconcur recondemn recondensation recondense recondite reconditely reconditioning recondole reconduct reconduction reconfess reconfide reconfine reconfinement reconfirm reconfiscation reconfound reconfuse reconfusion recongelation recongest recongestion recongratulate recongratulation reconjunction reconnaissance reconnaissances reconnect reconnecting reconnection reconnoissance reconnoiter reconnoiterer reconnoiteringly reconnoitre reconnoitred reconnoitrer reconnoitring reconnoitringly reconquer reconquered reconqueror reconquest reconsecrate reconsecration reconsent reconsider reconsideration reconsidered reconsidering reconsign reconsole reconsolidation reconstituent reconstitute reconstituted reconstituting reconstruct reconstructed reconstructing reconstruction reconstructional reconstructionary reconstructionist reconstructions reconstructive reconstructs reconstrue reconsult recontact recontemplate recontend recontest recontinuance recontract recontre recontribution recontrivance recontrive recontrol reconvalescence reconvene reconvening reconvention reconverge reconversion reconvert reconverted reconvertible reconvey reconvict reconviction reconvoke recook recool recooper recopied recopy record recordable recordant recordation recordatively recordatory recorded recorder recorders recording recordings recordist recordless records recork recorked recorporification recorrect recorrupt recosnise recostume recounsel recount recountable recountal recounted recounter recounting recounts recoupable recouper recouple recourse recourses recover recoverable recoverance recovered recoveree recovering recoverless recoveror recovers recovery recramp recrank recreancy recreant recreantness recrease recreate recreates recreating recreation recreational recreationist recreations recreatively recreativeness recreator recreatory recredit recrement recremental recrementitial recrementitious recrescence recretion recriminate recriminations recriminator recriminatory recroon recross recrossed recrowd recrown recrucify recrudency recrudesce recrudescence recrudescences recrudescency recrudescent recruit recruitable recruitage recruited recruitee recruiter recruithood recruiting recruitment recruits recruity recrystallize recrystallized recrystallizes recta rectal rectally rectangle rectangled rectangles rectangular rectangularly rectangulometer rectaogular recte rectectomy recti rectifiable rectification rectifications rectificator rectificatory rectified rectifier rectifies rectify rectifying rectigrade rectigraph rectilineally rectilinear rectilinearism rectilinearity rectilinearness rectilineation rectinerved rection rectipetality rectirostral rectischiac rectiserial rectitis rectitude rectitudinous rectius recto rectoabdominal rectocele rectoclysis rectococcygeal rectococcygeus rectocolitic rectocystotomy rectogenital rectopexy rectoplasty rector rectoral rectorate rectoress rectories rectorrhaphy rectorship rectory rectoscope rectoscopy rectostenosis rectostomy rectotome rectotomy rectovaginal rectovesical rectricial rectum rectums rectus recubate recueil recueiller recultivate recultivation recumbence recumbency recumbent recuperance recuperandis recuperate recuperated recuperating recuperation recuperative recuperativeness recuperator recuperatory recur recure recureful recureless recurred recurrence recurrences recurrent recurrently recurring recurringly recurs recursive recurtain recurvant recurvate recurve recurved recurvirostral recurvirostridae recurvopatent recurvoternate recurvous recusance recusancy recusant recusation recusative recusator recuse recussion recycle red redact redaction redactional redactor redactorial redamage redamnation redan redans redare redargue redargution redarken redarkening redart redaub redawn redbelly redberry redbreast redbreasts redbrush redbuck redbud redcap redcoat redcoats redd redden reddendo reddendum reddened reddening reddens redder reddest redding reddingite reddish reddition redditus reddle reddlebags reddleman reddlemen reddsman rede redebate redebit redeceive redecide redecision redeck redeclaration redeclare redecline redecorate redecoration redecrease redecussate rededicate rededication rededicatory rededuct rededuction redeed redeem redeemable redeemableness redeemed redeemer redeemeress redeemers redeemership redeeming redeemless redeems redefault redefeat redefecate redefer redefinition redeflect redefy redeify redelay redelegation redeliberate redeliberation redeliver redelivery redemandable redemise redemolish redemonstration redemptine redemption redemptional redemptionist redemptionless redemptive redemptively redemptor redemptorial redemptorist redemptory redemptrice redens redeny redeploy redepreciate redepreciation rederivation redescend redescended redescending redescent redescribe redescription redesign redesignate redesignation redesire redesman redespise redetect redetermination redeveloper redevelopment redevote redevotion redeye redfin redfinch redfoot redhead redheaded redheadedly redheadedness redheads redhearted redhibition redhibitory redhoop redia redictate redifferentiate redig redigest redigestion rediminish redingote redintegration redintegrative redip redipped redipper redirected redirects redisburse redisbursement rediscipline rediscount rediscourage rediscover rediscovered rediscoverer rediscovering rediscovery rediscussion redisembark redish redismiss redispel redisplay redispose redisposition redispute redissection redisseisin redisseisor redisseizin redisseizor redissoluble redissolution redissolvable redissolved redissolving redistend redistillation redistilled redistiller redistinguish redistrainer redistribute redistributer redistribution redistributive redistributor redistrict redisturb redive redivert redivertible redivide redivision redivive redivivous redivivus redivorcement redivulge redivulgence redleaved redleg redly redmond redmouth redneck redness redo redock redocket redoing redolence redolency redolent redolently redouble redoubled redoublement redoubler redoubles redoubling redoubt redoubtable redoubtableness redoubtably redoubted redoubts redound redounded redowa redox redpoll redraft redrape redraw redream redredge redredging redress redressed redressible redressing redressive redressless redressor redrew redrill redry reds redshank redshirt redskin redskins redstart redstone redstreak redtab redtail redthroat reduce reduceable reduceableness reduced reducement reducent reducer reduces reducibility reducible reducibly reducina reducing reduct reductase reduction reductional reductionism reductionistic reductively reductor reductorial redunca redundance redundancies redundancy redundant redundantly reduplicated reduplication reduplicative reduplicatory reduviidae redux redwing redwinged redwithe redwood redwoods reechoed reechy reed reedbeds reedbird reedbuck reeded reeden reediness reeding reedish reedition reedlike reedling reedplot reeds reedwork reedy reef reefable reefed reefer reefing reefs reefy reek reeked reeking reekingly reeks reeky reel reelect reelected reelection reeled reeling reelingly reelroad reels reely reem reeming reenacted reenforcement reentered reentering reeper rees reeshle reesk reesle reestablishment reester reestle reesty reet reetle reevaluate reevaluating reeved reeveland reeves reeveship reeving reexaminations reexposure ref reface refaced refait refall refascinate refascination refashioned refashioner refashionment refasten refathered refect refection refectionary refectioner refectorarian refectorial refectorian refectories refectory refederate refeed refel refence refer referable refered referee refereeing referees reference references referenda referendary referendum referent referentes referential referentially referment referral referrals referred referrer referribleness referring refers refertilization refertilize refight refigure refill refillable refilled refilling refills refilter refinable refind refine refined refinedly refinedness refinement refinements refineries refinery refines refinger refining refiningly refire refired refit refitment refitted refixation refixed refixture reflagellate reflash reflate reflation reflationism reflect reflectance reflected reflectent reflecter reflectibility reflectible reflecting reflectingly reflection reflectional reflectionist reflections reflectious reflective reflectively reflectiveness reflectivity reflectometer reflectometry reflector reflectors reflects reflex reflexes reflexibility reflexible reflexion reflexions reflexiveness reflexly reflexological reflexologist refloatation reflood refloor reflorescence reflourish reflourishment reflow reflower refluctuation refluence refluency refluent reflush reflux refluxed refocillation refocus refold refolded refolding refoment refont refool reforbid reford reforest reforestation reforge reforger reforget reform reformability reformable reformableness reformado reformandum reformati reformation reformational reformationist reformative reformatively reformatness reformatories reformatory reformed reformedly reformedst reformer reformeress reformers reforming reformingly reformism reformistic reformproof reforms reformulate reformulated reformulation refortification refortified reforward refought refound refoundation refounded refounder refract refracted refractedness refractility refracting refraction refractionist refractions refractive refractively refractiveness refractivity refractometer refractometry refractor refractorily refractory refracture refragability refragable refrain refrained refrainer refraineth refraining refrainment refrains reframe refrangent refrangibility refrangible refrenation refresh refreshant refreshed refreshen refresher refreshes refreshful refreshing refreshingly refreshment refreshments refreshynge refrigerant refrigerate refrigerated refrigerating refrigeration refrigerator refrigerators refrigeratory refrighten refringence refringent refront refrustrate reft refuel refueling refuge refugee refugeeism refugees refugeeship refuges refugies refulge refulgence refulgent refunction refund refunded refundment refurbished refurbishing refurbishment refurl refurnish refurnished refurnishing refusal refusals refuse refused refuser refuses refusing refusive refutability refutable refutal refutation refute refuted refuter refutes refuting reg regain regainable regained regainer regaining regains regal regale regalecidae regalecus regaled regaler regalest regalia regalian regaling regalis regalism regality regalize regally regalvanization regalvanize regard regardable regardance regardancy regarded regarder regardeth regardful regardfully regardfulness regarding regardless regardlessness regards regarnish regarrison regather regathered regatta regauge rege regelate regelation regencies regency regeneracy regenerant regenerate regenerated regenerateness regenerates regenerating regeneration regenerative regeneratively regenerator regenerators regeneratory regeneratress regeneratrix regenesis regensburg regent regental regentess regents regentship reges reget regga reggie regia regibus regicidal regicide regicides regidor regift regifuge regild regilded regilding regime regimen regimenal regiment regimental regimentaled regimentalled regimentally regimentals regimentary regimentation regiments regiminal regina reginal reginald regio region regional regionalism regionalistic regionalize regionally regionary regioned regiones regions regiorum regis register registered registerer registering registers registership registrability registrable registral registrar registrary registration registrational registrationist registrator registrer registry regius reglair reglan reglar regle reglement reglementary reglementation reglementist reglet reglorified reglove reglow reglue regna regnal regnant regne regnerable regolith regorge regovern regradation regrade regraduate regraduation regraft regrant regrasp regrass regrate regrater regratify regrating regratingly regrator regrators regrede regreen regreet regress regression regressionist regressive regressively regressiveness regressivity regressor regret regretful regretfully regretfulness regretless regrets regrettable regrettableness regrettably regretted regrettedest regretting regrind regrinder regrinding regrip regroup regroupment regrow regrowth regst reguarantee reguard reguardant regula regulable regulal regular regulares regularest regularia regularise regularity regularization regularize regularizing regularly regularness regulars regulatable regulate regulated regulates regulating regulation regulationist regulations regulative regulatively regulator regulators regulatorship regulatory regulatress regulatris regulis regulus regum regur regurge regurgitant regurgitate regurgitation reh rehab rehabilitate rehabilitated rehabilitates rehabilitation rehabilitative rehair rehale rehallow rehammer rehandler rehang rehappen reharden reharmonize reharness reharvest rehash rehaul rehazard reheal reheap rehear rehearsal rehearsals rehearse rehearsed rehearser rehearses rehearsing reheated reheater rehected rehedge reheel reheighten rehoboam rehobothan rehoist rehollow rehonour rehood rehook rehouse rehumanize rehumble rehumiliate rehung rehybridize rehydration rehypothecation rehypothecator rei reich reichsgulden reichslander reichspfennig reichstaler reidentify reieved reify reign reigned reigning reignore reigns reik reillume reillumination reillumine reillustrate reilly reimagination reimagine reimbarkation reimbody reimbursable reimbursed reimbursement reimburser reimbursing reimbushment reimmerge reimmerse reimmersion reimmigrant reimmigration reimpact reimpatriate reimpatriation reimpel reimplant reimplantation reimportation reimportune reimpose reimposed reimposure reimpregnate reimpress reimpression reimprint reimprove reimprovement reimpulse rein reina reinado reinaugurate reinbiblischen reincapable reincarnadine reincarnation reincarnationism reincarnationist reincarnations reincense reincidence reincidency reinclination reincline reinclude reinclusion reincrease reincrudate reincrudation reinculcate reindebted reindebtedness reindeer reindicated reindication reindict reindifferent reindorse reindue reindulge reined reinfect reinfected reinfecting reinfer reinfest reinflame reinflation reinflict reinfliction reinfluence reinforce reinforced reinforcement reinforcements reinforcer reinforces reinforcing reinform reinfuse reinfusion reingratiate reinhabitation reinhold reining reinische reinishe reinitiate reinitiation reinject reinjure reinless reinoculate reinquire reins reinsane reinsertion reinspection reinsphere reinspiration reinspire reinspirit reinstalment reinstate reinstated reinstatement reinstation reinstator reinstauration reinstil reinstitute reinstitution reinstruct reinstruction reinsult reinsurance reinsure reintegrate reintegration reintend reinter reintercede reinterchange reinterest reinterfere reinterment reinterpret reinterruption reintervention reinthrone reintimate reintimation reintitule reintrench reintroduce reintroduced reintroduction reintrude reintuition reintuitive reinvent reinvention reinventor reinversion reinvert reinvest reinvestigate reinvestigation reinvesting reinvestiture reinvigorate reinvigorated reinvitation reinvite reinvoice reinvolve reinwardtia reipublicae reirrigate reirrigation reis reisolation reissuable reissue reissued reissuer reist reit reitbok reitemize reiter reiterance reiterant reiterate reiterated reiteratedness reiterating reiteration reiterations reiterative reiteratively rejang reject rejectable rejectableness rejectamenta rejected rejecter rejecting rejectingly rejection rejectment rejector rejects rejerk rejoice rejoiced rejoiceful rejoicement rejoicer rejoices rejoiceth rejoicing rejoicingly rejoicings rejoin rejoinder rejoinders rejoined rejoining rejunction rejustification rejustify rejuvenant rejuvenate rejuvenated rejuvenating rejuvenation rejuvenator rejuvenesce rejuvenescence rejuvenescent rejuvenize reki rekick rekill rekindle rekindled rekindler rekindling reking reknit reknow rel relace relacher relacquer relade reladen relaid relament relamp relap relapse relapsed relapser relapses relapsing relast relata relatability relatable relatched relate related relater relates relatifs relating relatinization relation relational relationally relationism relationist relationless relations relationship relationships relatival relative relatively relatives relativism relativist relativity relativization relatum relaunch relax relaxable relaxation relaxations relaxatory relaxed relaxedness relaxer relaxes relaxing relay relayed relayman relays relbun relead releap relearn releasable release released releasee releaser releases releasing releasor releef relefe relegate relegated relegation relend relent relented relenting relentingly relentless relentlessly relentlessness relentment relessee relessor reletter relettering relevance relevancies relevancy relevant relevantly relevation relevator relevy reliability reliable reliableness reliably reliance reliant reliantly reliberate relic relicary relicense relick reliclike relicmonger relics relicted reliction relied relief reliefs relier relies relievable relieve relieved relievedly reliever relieves relieving relievo religation relight relightable relighted relighten relightener relighting religion religionary religionate religioner religionis religionism religionistic religionists religionless religions religiose religiosity religious religiouses religiously religiousness relimit relimitation reline relink relinquish relinquished relinquisher relinquishes relinquishing relinquishment reliquaire reliquarum reliquary reliquefy reliquiae reliquian reliquidate reliquidation relish relishable relished relisher relishes relishing relishingly relishsome relist relisten relit relitigate relive relived reliving rellyanism reload reloaded reloading reloan relocable relocation relocator relock relocked relodge relook relove relower relucent reluct reluctance reluctances reluctancy reluctant reluctantly reluctate reluctation reluctivity relume relumed relumine rely relying rem remade remagnetization remagnify remain remainder remainderman remainders remaindership remained remainedin remainest remaineth remaining remains remaintenance remake remaking reman remanage remanagement remanation remancipate remancipation remand remanded remanding remandment remanence remanency remanent remanet remanipulation remantle remanufacture remap remark remarkability remarkable remarkableness remarkably remarked remarking remarks remarquable remarriage remarried remarry remarrying remarshal remask remass remasticate remastication rematch rematerialize rembrandtish rembrandtism remeant remede remediable remediableness remedial remedially remedied remedies remediis remediless remedilessness remeditation remedy remedying remeet remelt remember rememberability rememberable rememberably rememberd remembered rememberer rememberest remembereth remembering remembers remembrance remembrancer remembrances rememorize remenace remend rementioning remerge remi remica remication remicle remigate remigation remiges remigial remigrant remigrate remigration remilitarize remill remimbered remind remindal reminded reminder reminders remindful reminding remindingly reminds remineralization remingle remington reminiscence reminiscenceful reminiscencer reminiscences reminiscent reminiscential reminiscentially reminiscently reminiscer remint remiped remise remisrepresent remiss remissful remissibility remissible remissibleness remission remissions remissiveness remissly remissness remissory remisunderstand remit remitment remittal remittance remittancer remittances remitted remittee remittence remittency remittent remitter remitting remittitur remix remixture remnant remnantal remnants remobilization remobilize remoboth remodel remodeled remodeler remodeling remodelled remodeller remodelling remodelment remodels remodification remodify remolade remold remollient remonetize remonstrance remonstrances remonstrant remonstrate remonstrated remonstrating remonstratingly remonstration remonstrative remonstratively remonstratory remontant remop remora remord remords remorse remorseful remorsefully remorsefulness remorseless remorselessly remorselessness remorseproof remote remotely remoteness remotenesses remoter remotest remotive remould remount remounted remounting removability removable removableness removably removal removals remove removed removedly removedness removement remover removers removes removing remparts remplit remultiplication remultiply remunerability remunerable remunerably remunerate remunerated remuneration remunerative remuneratively remunerativeness remunerator remurmur remuster remutation remutinied rena renably renail renaissance renaissancist renaissant renal renamed renascence renascent renascible renascibleness renature renavigation rencontre rencounter renculus rend render renderable rendered renderer rendering renderings renders renderset rendezvous rendezvoused rendible rending rendings rendition rendlewood rendre rendrock rends rendu rendus rendzina rene reneague renealmia renecessitate renegade renegado renegation renege renegotiable renegotiate renegotiations renegue renerve renes renet renew renewability renewable renewal renewed renewedly renewing renewment renews renicardiac renidify reniform renilla renin reniportal renish renitency renitent renk renky renne rennet rennin reno renocutaneous renography renointestinal renoir renopulmonary renotation renotice renotification renotify renounce renounceable renounced renouncement renouncer renounces renouncing renovate renovated renovater renovating renovatingly renovation renovations renovative renovators renovatory renovize renown renowned renownedly renownedness renowner renownful renownless rensselaer rensselaerite rent rentability rentable rental rentaler rented rentee renter renting rentless rentrant rentrayeuse rentre rents renuer renumeration renunciable renunciant renunciate renunciation renunciations renunciative renunciator renunciatory renunculus renverse renvoi renvoy reobjectivization reobjectivize reobligation reoblige reobservation reobserve reobtain reobtainment reoccasion reoccupied reoccupy reoccur reoccurrence reoffense reoffer reoil reomission reoorts reopen reopened reopening reoperate reoperation reoppose reopposition reoppress reoppression reorchestrate reordain reorder reordination reorganization reorganize reorganized reorganizer reorganizes reorganizing reorientation reornament reoutline reoutput reovercharge reoverflow reovertake reoverwork reown reoxidation reoxidize reoxygenize rep repace repacification repacify repack repackage repacked repacker repaganization repaganizer repage repaid repaint repainted repair repairableness repaired repairer repairing repairman repairs repale repandly repandodentate repandolobate repandous repaper reparability reparable reparably reparagraph reparate reparation reparations reparative reparatory reparentheses repark repartee repartition repartitionable repas repass repassage repassed repassing repast repasts repasture repatch repate repatency repatent repatriate repatriated repatronize repattern repave repavement repawn repay repayable repayal repayed repayeth repaying repayment repays repeal repealable repealed repealing repealless repeals repeat repeatability repeatable repeatal repeated repeatedly repeater repeating repeats repel repellance repellant repelled repellency repellent repellently repelling repellingly repellingness repels repenetrate repension repent repentable repentance repentant repentantly repented repenter repentest repenti repenting repents repeople repeopled repercept reperception repercolation repercussion repercussive repercussively repercussiveness repercutient reperform reperformance reperfume reperible repermission repermit repersonalization repersonalize repertoire repertoires repertorial repertorily repertory reperusal reperuse reperused repetend repetition repetitions repetitious repetitiously repetitiousness repetitive repetitively repetitiveness repetitory repetticoat repew rephael rephase rephonate rephosphorization rephosphorize rephotograph rephrase repiaced repic repick repiece repigmentation repile repiling repine repineful repinement repines repining repique repitch repkie replace replaceability replaceable replaced replacement replacer replacers replaces replacing replait replan replane replant replantable replanted replanter replaster replay repleader repleat repledge repledger replenish replenished replenishing replenishingly replete repleteness repletion repletively repletory replevin replevisable replevisor replevy repliant replica replicas replicate replicated replicatile replicative replicatory replied replies replight replod replot replotment replotter replow replumed replunder reply replying replyingly repoint repolish repolishing repolon repolymerization repolymerize reponder repone repope repopulate repopulation report reportable reportage reported reporter reporteress reporterism reporters reportership reporting reportingly reportorial reportorially reports repose reposed reposedness reposeful reposefulness reposes reposing repositary reposition repositions repositor repositories repository repossess repossessed repost reposted repostpone repound repour repowder repp repractice repreach reprecipitate reprecipitation repredict reprefer reprehend reprehendable reprehendatory reprehender reprehensibility reprehensible reprehensibly reprehensive reprehensively reprehensory reprend reprepare reprerentative represent representability representable representant representation representational representationalism representationalist representationary representationist representations representative representatively representativeness representatives representativity represented representer representing represents repress repressed repressible repressibly repressing repression repressionary repressionist repressive repressively repressiveness repressment repressor repressory reprice reprieval reprieve repriever reprimand reprimanded reprimanding reprime reprimed reprimer reprint reprinted reprinter reprinting reprints reprisal reprisalist reprisals reprise repristinate repristination reprivatize reproach reproachableness reproachably reproached reproacher reproaches reproacheth reproachful reproachfully reproachfulness reproaching reproachingly reproachless reproachlessness reprobacy reprobance reprobate reprobated reprobateness reprobater reprobates reprobating reprobation reprobationary reprobationer reprobative reprobator reprobatory reproceed reprocess reprocurable reprocure reproduce reproduced reproducer reproducers reproduces reproducibility reproducible reproducing reproduction reproductionist reproductions reproductive reproductively reproductivity reproductory reprofane reprofess reprohibit reprohibited repromulgate repromulgation reproof reproofs repropagate repropitiate repropitiation reproportion reproposal repropose reprosecute reprosecution reprosper reprotect reprotection reprovable reprovableness reprovably reproval reprove reproved reprover reprovers reproves reproveth reproving reprovingly reprovision reprovocation reprune reps reptans reptant reptatorial reptile reptiledom reptilelike reptiles reptilia reptilian reptiliary reptilious reptiliousness reptilism reptilivorous reptiloid repubblicana republic republicaines republican republicanism republicanize republicans republication republics republique republish republished republisher republishing repuddle repudiate repudiated repudiates repudiating repudiation repudiationist repudiator repudiatory repuff repugnance repugnancy repugnant repugnantly repugnantness repugnate repugnatorial repugner repuired repullulative repulse repulsed repulseless repulser repulses repulsing repulsion repulsions repulsive repulsively repulsiveness repulsory repulverize repunishment repured repurge repurification repurify repurple repurpose repursue reputability reputable reputably reputation reputations reputatively repute reputed reputedly reputeless reqaired requalification requalify requench request requested requester requesting requestion requests requiem requienia requiescence requin requirable require required requirement requirements requirer requires requiring requisite requisitely requisites requisition requisitioned requisitionist requisitions requisitor requisitorial requisitory requit requitable requital requitative requite requited requiteful requitement requiter requiteth requiting requiz requotation rerack reracker reradiation rerail reraise rerank rerarded rerate reread rereader rereading reredos reree rereel rereeve rerefief reregister reregistration reregulation rerent reresupper rerig rering rerise rerival rerivet rerobe rerolled reroof reroot reroute rerouting rerow reroyalize rerub rerum rerun res resaca resack resaddling resalable resalt resalutation resalute resample resanctify resatisfaction resatisfy resaw resawer resawyer resay resazurin rescan reschedule rescind rescindable rescinder rescinds rescission rescissory rescore rescramble rescribe rescription rescriptive rescriptively rescrub rescuable rescue rescued rescueless rescuer rescuers rescues rescuing reseal research researched researcher researchers researches researchful researching researchist reseated reseating resecrete resecretion resect resectional resections reseda resedaceae resedaceous resee reseed reseeing resegment resegmentation reseise reseize reseizer reselect reselection reself resell resemblable resemblance resemblances resemblant resemble resembled resembler resembles resemblest resembleth resembling resemblingly resene resensation resensitization resensitize resent resented resentence resenter resentful resentfully resentfulness resentience resenting resentingly resentless resentment resentments resents resequent resequester resequestration reserene reserpine reservable reserval reservation reservationist reservations reserve reserved reservedly reservedness reservee reserveful reserver reservery reserves reservice reserving reservoir reservoirs reservor reset resettable resetter resetting resettle resettled resettling resever resh reshaped reshaping reshare resharpen reshave reshearer reshelve reshine reshingle reshipment reshipper reshoe reshoulder reshouldered reshouldering reshovel reshrine reshuffle reshuffled reshun reshunt reshut reshuttle resiccate reside resided residence residencer residences residency resident residenter residential residentially residentiaryship residents resides residing residua residual residuary residuation residue residuent residues residuous residuum resigh resign resignal resignatary resignation resignationism resigned resignedly resignee resigner resignful resigning resignment resigns resilement resilience resiliency resilient resilifer resilition resilium resilver resin resinate resinbush resined resinfiable resing resinic resiniferous resinifluous resiniform resinify resinize resink resinlike resinoelectric resinoextractive resinogenous resinol resinolic resinophore resinosis resinous resinously resinousness resinovitreous resins resiny resipiscence resipiscent resist resistability resistable resistance resistances resistant resistantly resisted resister resisteth resistibility resistible resistibly resisting resistive resistively resistiveness resistless resistlessly resistlessness resistor resists resize resk resketch reslash reslate reslay reslide reslot resmelt resmile resnub resoap resoect resoften resoil resojourn resolder resole resolemnize resolemnized resolicit resolidification resolidify resolubility resolubleness resolute resolutely resolution resolutioner resolutions resolutory resolvability resolvable resolvableness resolvancy resolve resolved resolvedly resolvedness resolvent resolves resolvible resolving resonance resonancy resonant resonantly resonating resonator resoothe resorb resorbed resorbence resorbent resorcin resorcine resorcinism resorcinolphthalein resorcinum resorption resorptive resort resorted resorting resorts resorufin resound resounded resounder resounding resoundingly resounds resource resourceful resourcefully resourcefulness resourceless resources resoutive resp respade respan respangle resparkle respeak respect respectability respectable respectableness respectably respectant respected respecter respectful respectfully respectfulness respecting respective respectively respectiveness respectlessly respectlessness respects respectueux respell respersive respin respirability respirable respirableness respiration respirations respirative respirator respiratored respirators respiratory respirit respirometer respite respites resplend resplendence resplendency resplendent resplendently resplice resplit respoc respoke respond responde responded respondency respondent respondentia respondents responder responding respondio responds responsa responsal response responseless responser responses responsibilities responsibility responsible responsibleness responsiblities responsion responsive responsively responsiveness responsivity responsorial responsory respread respring resquare ressaidar ressala ressaut ressemblance ressemnblail ressume rest restack restai restain restainable restake restandardize restant restarted restate restated restatement restaur restaurant restaurants restaurate restaurateur restbalk reste resteal rested resteep restem rester resterait resters restes resteth restful restfuler restfully restfulness restiaceae restiaceous restiad restif restiff restiffen restifle restiform restigmatize restimulate restimulation resting restingly restio restionaceae restionaceous restipulate restipulatory restir restitch restitute restitution restitutionism restitutionist restitutive restitutory restive restively restiveness restless restlessly restlessness restock restopper restorable restorableness restoral restoration restorationer restorationism restorationist restorations restorative restoratives restorator restoratory restore restored restorer restorers restores restoring restow restraified restraighten restrain restrainability restrained restrainedly restrainedness restraining restrainingly restrains restraint restraintful restraints restrap restratification restrengthen restrict restricted restrictedness restricting restriction restrictionist restrictions restrictive restricts restring restringe restringency restringent restringing restrip restrung rests restudy restuff resty restyle resubject resubjugate resublime resubmerge resubmission resubscribe resubstitute resubstitution resucceed resuck resudation resue resuffer resufferance resuggestion resuit resuits result resultance resultancy resultant resultantly resultative resulted resulting resultive resultlessly resultlessness results resume resumed resumer resumes resuming resummon resummons resumption resumptive resun resuperheat resupervise resupinate resupination resupply resupport resupposition resuppress resuppression resurface resurge resurgence resurgency resurgent resurgit resurprise resurrect resurrected resurrectible resurrection resurrectionary resurrectioner resurrectioning resurrectionism resurrective resurrector resurrender resuscitable resuscitate resuscitated resuscitating resuscitation resuscitative resuspend resuspension reswage resward reswarm resweat reswell reswill reswim resyllabification resynthesis resynthesize ret retack retackle retag retail retailed retailer retailers retailing retailment retailor retain retainability retainable retainal retained retainer retainers retaineth retaining retains retaken retaking retaliate retaliated retaliating retaliation retaliationist retaliative retaliator retaliatory retan retanner retard retardance retardant retardate retardation retardative retarded retarder retarding retardingly retardive retardment retards retare retariff retaste retation retattle retched retching retecious retelegraph retelephone retell retelling retem retemptation retenant retene retent retention retentionist retentive retentively retentiveness retentivity retentor retepora retepore retest retested retesting retexture rethank rethatch retheness rethicken rethink rethrash rethread rethreaten rethresh rethrill rethrow rethrust rethunder retial retiariae retiarian retiarius retiary reticella reticello reticence reticency reticent reticently reticket reticle reticula reticular reticularia reticularly reticulated reticulately reticulation reticulatogranulate reticulatoramose reticulatus reticule reticuled reticules reticulocytosis reticuloramose reticulose reticulovenose reticulum retie retied retient retiform retile retimber retime retin retina retinacular retinaculate retinal retinalite retinasphaltum retincture retinispora retinite retinize retinker retinochorioid retinochorioidal retinochorioiditis retinoic retinoid retinopapilitis retinopathy retinophore retinoscopic retinoscopically retinoscopist retinoscopy retinospora retinue retinule retip retiracy retirade retiral retire retired retiredness retiree retirement retirements retirer retires retiring retiringly retiringness retold retoleration retonation retook retool retooth retoother retort retorted retorter retorting retortive retorts retoss retotal retouch retouched retoucher retoumer retourable retrace retraceable retraced retracement retraces retracing retrack retract retractability retractable retractation retracted retractibility retractible retractile retracting retraction retractive retractively retractor retractors retracts retrad retrahent retral retrally retranquilize retranscribe retranscription retransfer retransfigure retransform retransfuse retransit retranslate retransmissive retransmit retransmute retransplant retransplanted retransport retransportation retraverse retread retreat retreatal retreated retreating retreatingness retreatment retreats retrench retrenchable retrenched retrencher retrenching retrenchment retrenchments retribute retribution retributions retributive retributory retricked retrievability retrievable retrievableness retrieval retrieve retrieved retrieveless retrievement retriever retrieves retrieving retrim retrimmer retrimming retrip retroact retroaction retroactively retroactivity retroalveolar retrobronchial retrobuccal retrobulbar retrocaecal retrocardiac retrocecal retrocede retroceded retrocedence retrocedent retrocervical retrocession retrocessional retrocessionist retrocessive retrochoir retroclusion retrocognition retrocolic retroconsciousness retrocopulant retrocopulation retrocostal retrocouple retrocoupler retrocurved retrodate retrodeviation retroduction retroesophageal retrofit retrofitting retroflection retroflex retroflexed retroflexion retroflux retroform retrofract retrofracted retrofrontal retrogastric retrograde retrogradely retrogradient retrograding retrogress retrogression retrogressionist retrogressive retrogressively retrohepatic retroinfection retroiridian retrojugular retrolabyrinthine retrolaryngeal retrolocation retromammary retromammillary retromastoid retromaxillary retromigration retromingent retromingently retromorphosed retromorphosis retronasal retroperitoneal retroperitoneally retropharyngeal retropharyngitis retroplacental retroplexed retroposition retropubic retropulmonary retropulsion retropulsive retrorectal retrorse retrorsely retroserrulate retrospect retrospection retrospections retrospective retrospectively retrospectivity retrostalsis retrosusception retrotarsal retrotemporal retrotransfer retrotransference retrousse retrovaccinate retrovaccination retrovaccine retroversion retrovert retrovirus retroviruses retroxiphoid retrue retrusible retrusion retry rett rette retted rettory retube retuck retumble retune returban returf returfer return returnability returnable returned returneth returning returnless returnlessly returns retwine retype retzian reub reuchlinism reuel reundercut reundergo reundulation reune reunification reunify reunion reunionist reunions reunite reunited reuniting reunition reunitive reuplift reurge reurging reuse reuters reutilization reutilize reutter reutterance rev revacate revaccinate revaccination revalenta revalescence revalescent revalidate revalidation revalorization revaluation revamp revamper revampment revaporization revaporize revarnish revary reve reveal revealability revealable revealableness revealed revealer revealers revealeth revealing revealingness revealment revealments reveals revegetate revegetation revehent reveil reveille revel revelant revelation revelational revelationer revelationize revelations revelative revelato revelator revelatory reveled reveler revelers reveling revelled reveller revellers revelling revellings revelly revelment revelries revelrout revelry revels revend revender revendicate revendication reveneer revenge revenged revengeful revengefully revengeless revengement revenger revengeth revenging revengingly revent reventilate reventure revenual revenue revenued revenuer revenues rever revera reverable reverb reverberant reverberate reverberated reverberating reverberation reverberations reverberator reverberatory reverbrate reverdure revere revered reverence reverenced reverencer reverences reverencing reverend reverendly reverends reverent reverential reverentiality reverentially reverentialness reverently reverentness reverer revereratory reverie reveries reverification revering reverist revers reversability reversal reverse reversed reversedly reverseless reverser reverses reverseways reversewise reversi reversibility reversible reversibleness reversibly reversification reversing reversion reversionable reversional reversionally reversionary reversionist reversions reverso revert revertal reverted revertibility reverting revertively reverts revery revest revestiary revestry revet revete revetement revetment revetments revetted revibrate revibration revictorious revictual revictualled revictualment revie review reviewability reviewable reviewage reviewal reviewed reviewer revieweress reviewers reviewing reviewish reviews revigorate revile reviled revilement reviles reviling revilingly revilings revindicate revindication reviolate reviolation revirescence revirescent revisal revise revised revisee reviser revisership revisible revising revision revisional revisionary revisionism revisit revisited revisiting revisits revisor revisory revisualization revitalization revitalize revitalizer revitalizes revivability revivable revival revivalism revivalist revivalistic revivalize revivals revivatory revive revived reviver revives revivification revivified revivifier revivifying reviving reviviscence reviviscency reviviscent revivor revocability revocable revocably revocation revocative revoice revokable revoke revoked revoker revolant revolatilize revolt revolte revolted revolter revolters revolting revoltingly revoltress revolts revoluble revolubly revolucions revolunteer revolute revolution revolutionally revolutionaries revolutionarily revolutionary revolutioneering revolutioner revolutionise revolutionism revolutionist revolutionists revolutionize revolutionized revolutionizement revolutionizer revolutionnaire revolutions revolvable revolvably revolve revolved revolvency revolver revolveration revolvers revolves revolving revomit revote revue revues revuist revulsed revulsion revulsionary revulsions revulsive revulsively revving rewade rewager rewaken rewallow reward rewardable rewardableness rewardably rewarded rewardedly rewardeth rewardful rewardfulness rewarding rewardingly rewardless rewardproof rewards rewarmed rewash rewater rewaybill rewayle rewed reweigh reweight rewelcome reweld rewend rewhelp rewhirl rewiden rewin rewind rewirable rewish rewithdraw rewithdrawal rewood reword rework reworked rewove rewoven rewrap rewrite rewriter rewriting rewritten rewrote rexen reye reyes reyield reykjavik reynold reynolds reyoke reyouth rezbanyite rh rhabditis rhabdocarpum rhabdocoela rhabdocoelan rhabdocoelida rhabdocoelous rhabdolith rhabdom rhabdomal rhabdomancer rhabdomancy rhabdomantist rhabdomonas rhabdomyoma rhabdomyosarcoma rhabdopleura rhabdopod rhabdos rhabdosome rhabdosphere rhabdus rhadamanthus rhaetian rhagadiform rhagiocrin rhagite rhagon rhagonate rhamnaceae rhamnaceous rhamnales rhamninase rhamninose rhamnite rhamnitol rhamnohexose rhamnonic rhamnoside rhamnus rhamphorhynchus rhamphosuchus rhamphotheca rhapidophyllum rhapis rhaponticin rhapsode rhapsodic rhapsodically rhapsodies rhapsodism rhapsodist rhapsodistic rhapsodists rhapsodizing rhapsodomancy rhapsody rhaptopetalaceae rhason rhasophore rhatany rhatischen rhe rhea rheadine rheae rhebosis rheeboc rheebok rhegmatypy rhegnopteri rheidae rheiformes rhein rheinic rhematic rheme rhemish rhemist rhenish rhenium rheobase rheocrat rheologist rheometer rheometric rheometry rheophile rheophore rheophoric rheoscope rheoscopic rheostatic rheotactic rheotan rheotaxis rheotome rheotrope rheotropic rhesus rhetiennes rhetor rhetoric rhetorical rhetorically rhetoricals rhetorician rhetorize rheum rheumatalgia rheumatic rheumatical rheumatically rheumaticky rheumatics rheumatism rheumatiz rheumatoidal rheumed rheumic rheuminess rheumy rhexia rhexis rhigolene rhigosis rhigotic rhina rhinalgia rhinanthaceae rhinanthus rhine rhineland rhinencephalic rhinencephalon rhinencephalous rhinenchysis rhineodon rhineodontidae rhinestone rhineurynter rhinidae rhinion rhinitis rhino rhinobatus rhinobyon rhinocaul rhinocerial rhinocerian rhinoceroid rhinoceros rhinocerotic rhinocerotidae rhinocerotiform rhinochiloplasty rhinoderma rhinodynia rhinolalia rhinolaryngoscope rhinolite rhinolithic rhinologist rhinology rhinolophid rhinolophine rhinopharyngeal rhinopharyngitis rhinophidae rhinophore rhinophyma rhinoplasty rhinopolypus rhinopteridae rhinoscleroma rhinoscope rhinoscopic rhinoscopy rhinosporidium rhinotheca rhinothecal rhinovirus rhinoviruses rhinthonic rhinthonica rhipidistia rhipidistian rhipidium rhipidoglossa rhipidoglossate rhipidoptera rhipidopterous rhipiphorid rhipiphoridae rhipiptera rhipipterous rhiptoglossa rhis rhizanthous rhizautoicous rhizina rhizinaceae rhizine rhizinous rhizocarp rhizocarpeae rhizocarpian rhizocarpous rhizocaul rhizocaulus rhizocephala rhizocephalan rhizoctonia rhizodermis rhizodus rhizoflagellata rhizogen rhizogenetic rhizogenic rhizogenous rhizoidal rhizoids rhizoma rhizomatous rhizome rhizomorph rhizomorphoid rhizomorphous rhizophilous rhizophora rhizophoraceae rhizophoraceous rhizophorous rhizophyte rhizoplast rhizopoda rhizopodal rhizopodan rhizopodist rhizopodous rhizopogon rhizopus rhizosphere rhizostomae rhizostomata rhizostomatous rhizostome rhizostomous rhizota rhizotaxis rhizotaxy rhizote rhizotomi rhizotomy rho rhoda rhodamine rhodanic rhodanine rhodanthe rhode rhodeose rhodes rhodesian rhodeswood rhodian rhodinal rhoding rhodinol rhodite rhodizite rhodizonic rhodobacteriaceae rhodochrosite rhodocyte rhododendron rhododendrons rhodomelaceae rhodomelaceous rhodomontade rhodonite rhodophyceae rhodophyceous rhodophyll rhodophyllidaceae rhodopsin rhodora rhodorhiza rhodosperm rhodospermeae rhodospermin rhodospirillum rhodothece rhodotypos rhodymenia rhodymeniaceous rhoeadales rhoecus rhoeo rhoia rhomb rhombencephalon rhombenporphyr rhombi rhombic rhombiform rhomboclase rhomboganoid rhomboganoidei rhombogenous rhombohedra rhombohedral rhombohedric rhombohedrons rhomboid rhomboidally rhomboideus rhomboidly rhomboquadratic rhombos rhombovate rhombus rhonchial rhopalism rhopalium rhopalocerous rhopalura rhotacism rhotacismus rhotacistic rhotacize rhubarb rhumatis rhumatoid rhumb rhumba rhumbatron rhus rhyacolite rhyme rhymed rhymeless rhymemaker rhymemaking rhymeproof rhymer rhymery rhymes rhymewise rhymic rhyming rhymist rhymy rhynchobdellae rhynchobdellida rhynchocephali rhynchocephalia rhynchocephalian rhynchocephalic rhynchocephalous rhynchocoela rhynchocoelous rhynchonella rhynchonelloid rhynchophora rhynchophoran rhynchophore rhynchopinae rhynchops rhynchosia rhynchote rhynchotous rhynconellid rhyncostomi rhynia rhynocheti rhyobasalt rhyodacite rhyolite rhyolitic rhyotaxitic rhyparographer rhyparographic rhyparographist rhyparography rhypography rhyptic rhyptical rhysimeter rhythm rhythmal rhythmic rhythmical rhythmicality rhythmically rhythmicity rhythmicize rhythmist rhythmization rhythmless rhythmometer rhythmopoeia rhythmproof rhythms rhytidodon rhytidome rhytidosis rhytina rhyton ria riait rial riancy riant riantly riata rib ribald ribaldish ribaldly ribaldrous ribaldry riband ribandist ribandlike ribands ribat ribaudequin ribavirin ribband ribbandry ribbed ribber ribbidge ribbin ribbing ribbon ribbonback ribboned ribbonism ribbonlike ribbonman ribbonry ribbons ribbonweed ribbony ribe ribes rible ribless riblet riblike riboflavin ribonic ribonribette ribonuclease ribonucleic ribosome ribroast ribroaster ribs ribskin ribston ribwork ric rica ricardian ricardianism ricciaceous ricciales rice ricebird ricefields riceland ricer rich richard richardia richardson richardsonia richdom richen richer riches richesse richesses richest richling richly richmond richness richt richter richtig richweed ricin ricine ricinelaidic ricinelaidinic ricinic ricinine ricininic ricinium ricinoleic ricinolein ricinolic ricinulei rick rickardite ricker ricketiness rickettsiae rickettsial rickettsiales rickety rickle rickmatic ricks ricksha rickshaw rickstaddle rickstand rickstick ricky rickyard rico ricochet ricochetted ricolettaite ricotta ricrac rictal rid ridable ridableness ridably ridaura riddam riddance ridden ridder ridding riddle riddled riddlemeree riddler riddles riddling riddlingly ride rideable riden rident rider ridered rideress riderless riders rides ridest rideth ridge ridgeband ridgeboard ridgebone ridged ridgel ridgelike ridgeling ridgepiece ridgeplate ridgepole ridger ridgerope ridges ridgeway ridgewise ridgil ridging ridgway ridgy ridibund ridicule ridiculed ridiculer ridicules ridiculing ridiculize ridiculosity ridiculous ridiculously ridiculousness riding rids rie riebeckite ried riem riemannian riemannite riempie rien rier riesling rifampin rife rifely rifeness riff riffi riffles riffling riffraff rifian rifies rifle riflebird rifled rifledom rifleman riflemanship riflemen riflery rifles rifling rift rifting rifts riftvalley rifty rig rigadoons rigamajig rigamarole rigation rigbane rigel rigelian rigescence riggald rigged rigger riggers rigging riggish riggite riggs right rightabout righted righten righteous righteously righteousness righteousnesses righter rightest rightful rightfully rightfulness righthearted righting rightist rightle rightless rightlessness rightly rightmost rightness righto rights rightwardly rightwards righty rigid rigida rigidified rigidist rigidity rigidly rigidness rigidulous rigling rigmaree rigmarole rigmarolery rigmarolic rigmarolish rigmarolishly rignum rigol rigolette rigor rigorism rigorist rigoristic rigorous rigorously rigorousness rigors rigour rigours rigs rigsby rigsmaal rigsmal riguardanti rigwiddie rigwiddy rikari rikisha riksha rilawa rilay riled riley rill rillet rillette rills rilly rim rimanendo rimbase rime rimee rimeless rimer rimester rimfire rimiform rimland rimmaker rimmaking rimmed rimmer rimose rimous rimpi rims rimula rimulose rimy rinaldo rinch rincon rind rinded rinderpest rindless rinds rindy rinehart ring ringbird ringbolt ringcraft ringdove ringe ringed ringent ringer ringers ringeye ringgiver ringgiving ringgoer ringhals ringhead ringiness ringing ringingly ringite ringle ringleader ringleaderless ringleaders ringleadership ringless ringlet ringleted ringlets ringlety ringlike ringman ringmaster ringneck rings ringsail ringside ringsider ringster ringtaw ringtime ringtoss ringwise ringworm ringy rink rinka rinker rinneite rinner rinsable rinse rinsed rinser rinsing rinthereout rintherout rio riordan riosity riot rioted rioter rioters rioting riotingly riotous riotously riotousness riotproof riotry riots rious rip ripa ripal riparian riparii riparious ripcord ripe ripely ripen ripened ripener ripeness ripening ripens riper ripest ripicolous ripidolite ripienist ripieno ripier ripley ripoff ripost ripped rippet rippier ripping rippingest rippingly rippit ripple rippled rippler ripples rippling ripplingly ripplings rippon riprap riprapping rips ripsack ripsaw ripsnort ripsnorter ripsnorting riptide ripup ris risberm riscontro rise risen riser rises riseth rishi risibility risible risibleness risibles risibly rising risings risk risk/benefit riskan risked risker riskfulness riskiness risking riskish riskproof risks risky risorial risorius risper risque risquee rissel risser rissoid rissoidae rist ristori ritardando ritating ritchie rite ritelessness rites ritibus ritodrine ritornel ritornello ritorno ritournelles ritschlian ritschlianism ritter ritu ritual ritualibus ritualism ritualist ritualistic ritualistically ritually rituals ritz ritzy riva rivage rival rivalable rivaled rivaless rivalize rivalled rivalless rivalling rivalries rivalry rivals rive rivell riven river riverain riverbank riverbed riverboat riverfront riverhead riverine riverish riverlet riverling riverly riverman rivers riverscape riverside riversider riverwards riverwash riverweed riverwise rivery rivet riveted riveting rivetless rivetlike rivets rivetted riviera rivieres rivina riving rivingly rivinian rivose rivularia rivulariaceae rivulation rivulet rivulets rixatrix rixy riz riziform rizzar rizzomed rllstricts rls rna ro roach roachback roaches road roadability roadbed roadblock roadbook roadcraft roaded roadfellow roadhead roadhouse roadite roadless roadlessness roadmakina roadmaking roadmaster roadrunner roads roadside roadsider roadsman roadstead roadsteads roadster roadstone roadtrack roadway roadways roadweed roadwise roadworthiness roadworthy roam roamed roamer roamest roaming roamingly roams roan roans roar roared roarer roarin roaring roaringly roarings roars roast roastable roasted roaster roasting roastingly roasts rob robalito roband robbed robber robberies robberproof robbers robbery robbin robbing robbins robe robed robeless rober roberd roberdsman roberta roberts robes robigalia robigus robin robing robinia robinin robins robinson roble roborant roborate roboration roborative roborean roboreous robot robotesque robotic robotism robotistic robotry robs robur roburite robust robuster robustest robustful robustfulness robustic robusticity robustiously robustiousness robustity robustly robustness roc rocaille rocambole roccella roccellaceae roccellic roccelline rocco roccoco roche rochelime rochelle roches rochester rochet rocheted rochs rocity rock rockably rockaby rockabye rockaway rockbird rockborn rockbound rockbrush rockcist rocked rockefeller rockelay rocker rockeries rockery rocket rocketed rocketeer rocketer rocketing rocketlike rocketor rockets rockety rockfish rockfoil rockford rockhair rockhearted rockies rockiness rocking rockingly rockish rockland rockless rocklet rockling rockman rockrose rocks rocksalt rocktree rockville rockward rockwards rockweed rockwood rockwork rocky rococo rocouyenne rocs rocta rod rodado rodd roddin rode rodent rodentia rodential rodentially rodentian rodenticidal rodenticide rodents rodeo roderic roderick rodge rodgers rodham rodinal rodinesque roding rodingite rodknight rodless rodlet rodmaker rodman rodolphus rodomantade rodomontade rodomontadist rodriguez rods rodsman roe roeblingite roebuck roebucks roed roentgenism roentgenization roentgenize roentgenogram roentgenograph roentgenographic roentgenological roentgenologically roentgenometer roentgenometry roentgenoscope roentgenoscopic roentgenoscopy roentgenotherapy roentgentherapy roestone rog rogan rogation rogationtide roger rogersite rogue roguedom rogueling roguery rogues rogueship roguing roguish roguishly roguishness rohan rohun rohuna roi roid roiled roiling roily roist roisterer roistering roisteringly roisterly roisterous roisterously roka rokeage rokee roker roland rolandic role roleo roles rolf roll rollable rollback rolled rollejee roller rollerer rollermaking rollers rollerskater rollerskating rolley rolleyway rolleywayman rolliche rollick rollicker rollicking rollickingly rollickingness rollicksome rollicksomeness rollicky rolling rollingly rollinia rollix rollock rolls roloway romaean romagnole romaic romaika romain romaine romaines romaji romal roman romance romancealist romancean romanceish romanceishness romanceless romancelet romancelike romancemonger romanceproof romancer romancers romances romancical romancing romandom romane romanes romanesque romania romanian romanic romanische romanischen romanish romanism romanite romanity romanium romanization romanize romanizer romanly romano romansch romantic romantical romantically romanticalness romanticism romanticist romanticistic romanticity romanticly romanticness romantist romanza romaunt rombos rombowline rome romero romeshot romeward romic romipetal romische romischen romish romishly rommack romneya romp romped romper rompers romping rompings rompish rompishly rompishness romps romulian ron ronald roncador roncet rond rondacher rondawel ronde rondel rondelet rondeletia rondelier rondelle rondellier rondes rondle rondo rondoletto ronds rondure rone rong ronga ronov ronquil ronsardian ronsardist ronsardize ronsdorfer ronsdorfian ronyon rood roods roodscreen roodstone roof roofed roofers roofing roofless rooflet roofman roofs rooftop rooftree roofward roofwise roofy rooibek rooibok rook rooker rookeried rookery rookie rooklet rooklike rooks rooky rool room roomage roomed roomer roomette roomful roomie roominess rooming roomkeeper roomless roommate rooms roomward roomy roon roorback roosa roosevelt rooseveltian roost roosted rooster roosterfish roosterhood roosterless roosters roostership roosting roosts root rootage rooted rootedly rooter rooteth rootfastness roothold rootiness rooting rootle rootless rootlessly rootlet rootlike rootling roots rootstalk rootwalt rootwise rootworm rooty roove rope ropeable roped ropedance ropedancer ropelaying ropelike ropemaker ropemaking ropeman roper roperipe ropery ropes ropesmith ropewalk ropewalker ropework ropiness roping ropish ropishness ropp ropy roque roquelaure roquer roquette roratorio rorer rori roric roridula rorifluent rorippa rorschach rorty rorulent rory rosa rosabel rosabella rosacea rosaceae rosacean rosal rosalia rosalie rosalind rosaline rosamond rosanilin rosaniline rosarian rosario rosarium rosaruby rosary rosated roschach roscid roscoe rose roseal roseate roseately rosebay rosebud rosebuds rosebush rosebushes rosed rosee rosefish rosehead rosehill roseine rosel roseless roselike roselite rosella rosellate rosellinia rosemary rosemont rosen rosenberg rosenman rosenthal roseolar roseoliform roseous rosery roses rosetime rosette rosetted rosettes rosetum rosety rosewater rosewise rosewood rosicrucian rosicrucianism rosied rosier rosieresite rosilla rosily rosin rosinate rosinduline rosiness rosinweed rosmarine rosmarinus rosminian rosminianism rosoli rosolic rosolio rosolite rosorial ross rossite rosslyn rostel rostellar rostellaria rostellate rostelliform rostellum roster rostra rostral rostrally rostri rostriferous rostriform rostroantennary rostrobranchial rostrocarinate rostrocaudal rostroid rostrular rostrum rosular rosulate roswell rosy rot rota rotacism rotal rotala rotalia rotaliiform rotaman rotanev rotang rotarian rotarianism rotarianize rotary rotatable rotate rotated rotates rotating rotation rotational rotations rotative rotatively rotatives rotativism rotatoplane rotator rotatorian rotatory rotc rotch rote rotella rotenone rotge rotgut roth rother rothermuck rotifer rotifera rotiferal rotiferan rotiferous rotiform rotisserie rotograph rotor rotorcraft rototill rotproof rottan rotted rotten rottenish rottenly rottenness rottenstone rotters rotteth rotting rottle rottock rotula rotulad rotular rotulet rotulian rotuliform rotulus rotund rotunda rotundate rotundifolious rotundify rotundities rotundity rotundness roub rouble roubles roucou roud roue rouge rougeau rougeberry rouged rougelike rougemontite rougeot rough roughage roughcast roughcaster roughdraft roughdraw roughdress roughdry roughen roughened roughening rougher roughest roughet roughhearted roughheartedness roughhew roughhewer roughhewn roughhouse roughhouser roughhousing roughhousy roughie roughing roughish roughishly roughishness roughleg roughly roughneck roughness roughometer roughride roughrider roughroot roughs roughscuff roughsetter roughshod roughslant roughstring roughtail roughwork roughy rougissent rouille roulade roulades rouleau rouleaux roulette roulotte rouman roun rouncy round roundabout roundaboutly roundabouts rounded roundedly roundelay roundeleer roundels rounder roundest roundeth roundfish roundhead roundheaded roundheadedness roundhouse rounding roundish roundly roundmouthed roundness roundnose roundridge rounds roundseam roundsman roundsmen roundtable roundtree roundup roundwise roundwood roundworm roup roupet roupily roupit roupy rouse roused rousedness rousement rouser rouses rousing rousingly rousseau rousseauism rousseauist rousseauite roussellian roussillon roust roustabout roustabouts rouster rousting rout route routed router routes routh routhercock routhie routhiness routhy routiers routinary routine routinely routines routing routinish routinism routinist routinization routivarite routous rouvillite rove roved rover rovers roves rovetto roving rovingly rovingness row rowable rowan rowanberry rowboats rowdies rowdily rowdiness rowdy rowdydow rowdydowdy rowdyish rowdyishly rowdyishness rowdyproof rowed rowel rowelhead rowelled rowels rowen rowena rower rowers rowet rowing rowland rowleian rowley rowleyan rowlock rowport rows rowty rox roxana roxburgh roxburghiaceae roxy roy royal royale royalet royalism royalist royalists royally royalties royalty royena royet royetous roysterers roystonea royt rozum rozums rpm rsv rsvp rua ruach ruanda ruat rub rubasse rubato rubbed rubben rubber rubbered rubberer rubbering rubberless rubberneck rubbernecker rubbernose rubbers rubberstone rubberwise rubbery rubbing rubbings rubbingstone rubbish rubbishing rubbishry rubbishy rubble rubbler rubbly rubdown rube rubedinous rubedity rubefaction rubelet rubella rubelle rubellite rubellosis ruben rubeola rubeolar ruberythric ruberythrinic rubescence rubescent rubia rubiales rubican rubicelle rubiconed rubicund rubicundity rubidine rubidium rubied rubies rubific rubification rubify rubiginous rubineous rubious ruble rubles rublis rubor rubric rubrica rubricality rubrically rubricated rubrication rubricator rubrician rubricist rubricity rubricize rubricose rubrification rubrify rubrisher rubrospinal rubs rubstone ruby rubylike rubytail rucervine rucervus ruchbah rucio ruck rucked ruckle ruckling rucksack ruckus rucky ructation ruction rud rudas rudbeckia rudd rudder rudderhead rudderhole rudderless rudderlike rudderpost rudders rudderstock ruddied ruddier ruddily ruddiness ruddle ruddock ruddy ruddyish rude rudely rudeness rudenture ruder ruderal rudesby rudesheimer rudest rudge rudiment rudimental rudimentarily rudimentariness rudimentary rudimentation rudiments rudish rudista rudistae rudmasday rudolf rudolph rudy rudyard rue rued rueful ruefully ruefulness rueing ruelike ruelle ruellia ruer rues ruesomeness ruewort rufen ruff ruffable ruffen ruffer ruffian ruffiandom ruffianhood ruffianish ruffianism ruffianlike ruffianly ruffiano ruffians ruffin ruffle ruffled rufflement ruffler ruffles rufflike ruffliness ruffling ruffs ruficaudate ruficoccin ruficornate rufofulvous rufotestaceous rufous rufter rufulous rug rugae rugbeian rugby rugged ruggedly ruggedness rugging ruggle rugheaded ruglike rugmaker rugosa rugose rugosely rugosity rugous rugs ruhrst ruin ruinate ruination ruinatious ruinator ruined ruiner ruing ruiniform ruining ruinous ruinously ruinousness ruinproof ruins rukbat rukh rulable rule ruled ruledom ruleless ruler rulers rulership rules ruleth ruling rulings rull ruller rum rumal ruman rumania rumanian rumble rumbled rumblegarie rumblegumption rumblement rumbler rumbling rumblingly rumblings rumbly rumbo rumbooze rumbowling rumbumptious rumbustical rumchunder rumelian rumen rumenocentesis rumenotomy rumex rumford rumgumptious ruminal ruminant ruminantia ruminantly ruminants ruminate ruminated ruminating ruminatingly rumination ruminations ruminative ruminator rumkin rumless rumly rummage rummaged rummager rummages rummaging rummagy rummer rummers rummest rummies rummiest rummily rumminess rummish rumor rumored rumorer rumorous rumorproof rumors rumour rumoured rumourmonger rumours rump rumpadder rumpade rumpled rumpless rumpling rumply rumpscuttle rumpus rumpussed rumrunner rumrunning rumswizzle run runabout runagate runagates runaround runaway runaways runback runboard runby runcinate rundale rundi rundle rundlet rundown rune runed runeless runelike runer runes runesmith runestaff runeword runfish rung runghead rungs runholder runic runically runing runkeeper runkly runless runman runnable runned runnels runner runners runnet runneth runnin running runningly runoff runout runover runrig runs runted runtee runtiness runtishly runtishness runty runway runways ruota rupee rupees rupert rupestral rupestrine rupia rupiah rupial rupicapra rupicaprinae rupicaprine rupicola rupicolous rupie rupitic rupted ruptile ruptuary rupturable rupture ruptured ruptures rupturing rural rurality ruralization rurally ruridecanal ruris ruritania ruritanian ruru rus ruscus ruse rush rushbush rushed rushen rusher rushes rushiness rushing rushingness rushings rushland rushlight rushlighted rushlights rushlike rushlit rushmore rushy rusin rusk ruskin rusks rusky rusma rusot ruspone russel russelia russell russellite russene russet russeting russetish russety russia russian russianist russianization russification russificator russifier russify russism russniak russolatry russomaniac russomaniacal russophile russophilist russophobe russophobia russophobiac russophobist russula rust rustable rusted rustful rustic rusticalness rusticate rusticating rustication rusticial rusticism rusticities rusticity rusticize rusticness rustics rustily rustiness rusting rustle rustled rustler rustles rustless rustling rustlingly rustlings rustly rustproof rustred rusts rusty rustyback rut ruta rutabaga rutaceous rutaecarpine rutch rutelian rutgers ruth ruthenate ruthene ruthenian ruthenium ruther rutherford rutherfordine ruthful ruthfully ruthfulness ruthless ruthlessly ruthlessness rutic rutilant rutilated rutile rutilous rutin rutiodon rutland rutledge ruts rutted ruttiness ruttishly ruttishness rutuli rutyl rutylene ruvid rux rvulsant ryal ryania rybat rych ryche rydberg ryder rye ryefield ryen rymandra rynchospora rynd rynt ryot ryotwar ryotwari rypeck rytidosis s s's saa saan saarbrucken sab saba sabadine sabadinine sabaeism sabaigrass sabaism sabaist sabal sabalaceae sabalo sabaoth sabathikos sabazian sabazianism sabbat sabbatarian sabbatary sabbatean sabbath sabbathaic sabbathaist sabbathbreaker sabbathism sabbathkeeper sabbathkeeping sabbathless sabbathlike sabbathly sabbaths sabbatia sabbatian sabbatical sabbatically sabbaticalness sabbatine sabbatism sabbaton sabdariffa sabe sabeca sabella sabellan sabellaria sabellarian sabellian sabellianism sabellid sabellidae sabelloid saber saberbill saberleg saberproof saberwing sabhaginikam sabian sabianism sabik sabina sabine sabinian sabino sable sabora sabot sabotage saboted saboteur sabotine sabre sabres sabrina sabring sabuja sabuline sabulose sabulosity sabulum saburra saburral sabzi sac sacae sacalait sacaline sacaton saccade saccammina saccate saccated saccha saccharamide saccharase saccharephidrosis saccharic saccharide sacchariferous saccharimetric saccharinate saccharinated saccharine saccharineish saccharinity saccharobacillus saccharobiose saccharobutyric saccharoceptive saccharoceptor saccharocolloid saccharogalactorrhea saccharogenic saccharoid saccharolactonic saccharolytic saccharometabolic saccharometabolism saccharometer saccharometric saccharometry saccharomucilaginous saccharomycetaceae saccharomycete saccharomycetic saccharon saccharone saccharonic saccharophylly saccharorrhea saccharoscope saccharostarchy saccharosuria saccharotriose saccharous saccharulmic saccharulmin saccharum sacciform saccobranchiata saccobranchiate saccobranchus saccomyian saccomyid saccomyina saccomyine saccomyoid saccomyoidea saccopharyngidae saccopharynx saccorhiza sacculate sacculated sacculation sacculi sacculina sacculoutricular sacculus saccus sacellum sacerdos sacerdotage sacerdotal sacerdotalism sacerdotalize sacerdotally sacerdotical sacerdotism sachamaker sachant sachem sachemdom sachemic sachemship sachet sacheverell sachs sack sackage sackamaker sackbag sackcloth sackcoat sackdoudle sacked sackful sacking sackless sacklike sackmaker sackmaking sackman sacks sacktime sackville saclike saco sacope sacque sacra sacrad sacral sacrales sacralgia sacram sacrament sacramental sacramentalism sacramentalist sacramentality sacramentally sacramentalness sacramentarian sacramentarianism sacramentary sacramented sacramenter sacramentism sacramentize sacramento sacraments sacramentum sacraria sacrarial sacrarium sacrectomy sacred sacreder sacredest sacredly sacredness sacrementa sacri sacrificable sacrificant sacrificati sacrification sacrificator sacrificatory sacrifice sacrificed sacrificer sacrifices sacrificeth sacrificial sacrificially sacrificing sacrificio sacrilege sacrileges sacrilegious sacrilegiously sacrilumbalis sacring sacris sacrist sacristan sacristy sacro sacrocaudal sacrococcygeal sacrococcygean sacrococcygeus sacrocostal sacrocotyloidean sacrocoxitis sacrodorsal sacrodynia sacrofemoral sacroinguinal sacroischiac sacrolumbal sacrolumbalis sacrolumbar sacropectineal sacroposterior sacrorum sacrosanct sacrosanctity sacrosciatic sacrosecular sacrospinal sacrospinalis sacrotomy sacrovertebral sacrum sacs sad sadachbia sadalsuud sadden saddened saddening saddens sadder saddest saddik saddle saddlebag saddlecloth saddled saddlefast saddleleaf saddleless saddlenose saddler saddlers saddlery saddles saddlesick saddlesoreness saddlestead saddling sadducean sadduceeism sadduceeist sadducism sadducize sadh sadhe sadhearted sadik sadiron sadism sadist sadistic sadite sadly sadness sadok sadomasochism sadomasochist sadovnick sadr sae saeculares saeculum saeima saepe saernaite saeter saeume safari safavi safawid safe safeblower safeblowing safecracking safeguard safeguarded safeguarder safeguarding safeguards safehold safekeeper safelier safelight safely safen safener safeness safer safes safest safety saffarian saffarid saffian safflorite safflow safflower saffron saffroned saffrontree safine safranine safranophile safrole saft sag saga sagacious sagaciously sagaciousness sagacities sagacity sagai sagaie sagamore sagas sagathy sage sagebrush sagebush sagely sagene sageness sagenite sageretia sagerose sages sageship sagged sagging saggon saggy sagina saginate sagination saginaw saging sagitta sagittal sagittally sagittarius sagittate sagittid sagittiferous sagittiform sagless sago sagoin sagra sags saguaro saguerus sagum sagvandite sagy sah sahadeva saharan saharic sahib sahidic saho sahoukar sahukar sai saib saic said saidi saidst saift saiga sail sailable sailage sailboat sailboats sailcloth sailed sailer sailers sailfish sailflying sailing sailingly sailless sailmaker sailmakers sailmaking sailor sailoring sailorish sailorizing sailorless sailorly sailormen sailorproof sailors sailplane sails sailship saimiri saimy sain sainfoin saint sainte sainted saintess sainthood saintlike saintlily saintliness saintling saintly saintologist saintology saintpaulia saints saintship saip saiph sair sairly sairve saisie sait saite saith saitic saiva saivism saj sajou sak sakai sakalava sake sakeber sakeen sakel sakelarides sakell sakellaridis sakeret sakes sakha saki sakieh sakiyanam sakkara saktism sakulya sakyamuni sal sala salaam salaamed salaaming salaams salability salable salableness salably salaceta salaciously salacity salacot salad salade salads salagrama salal salamandarin salamander salamanders salamandra salamandridae salamandriform salamandrina salamandrine salambao salaminian salampore salangane salangid salangidae salar salariat salaried salaries salary salaryless salay salbutamol sale saleable salegoer salep saleratus salerno saleroom sales salesclerk salesgirls salesian saleslady salesman salesmanship salesmen salesperson salesroom saleswoman saleswomen salework saleyard salfern salian salic salicaceae salicaceous salicales salicariaceae salicin salicorn salicyiic salicyl salicylal salicylamide salicylase salicylates salicylic salicylism salicylize salicylous salience salient salientia salientian saliently saliferous salifiable salification salify saligot salilanidhane salimeter salimetry salina salinan saline salinella salinelle salineness salines saliniferous salinity salinometer salinoterreous salisburia salisbury salish salishan salited saliva salivan salivant salivary salivate salivatione salivator salivatory salivous salix salle salled sallee salleeman sallet sallets sallied sallier sallies sallow sallowish sallowness sallows sally sallying sallyport salma salmagundi salmiac salmine salmis salmo salmon salmonberry salmonella salmonellosis salmonet salmonidae salmoniform salmonoid salmonoidei salmonsite salmwood salome salometer salomon salomonia salon salons saloon saloonkeep saloonkeeper saloonkeepers saloons saloop salp salpacean salpian salpicon salpiform salpiglossis salpingectomy salpingemphraxis salpinges salpingian salpingion salpingitic salpingitis salpingocyesis salpingomalleus salpingonasal salpingopalatal salpingopalatine salpingopexy salpingopharyngeal salpingopharyngeus salpingopterygoid salpingorrhaphy salpingostenochoria salpingotomy salpoid salsalate salsify salsilla salsola salsolaceae salsolaceous salsuginous salt saltant saltarella saltarello saltary saltation saltativeness saltator saltatoria saltatorial saltatorious saltatory saltbush saltcat saltcatch saltcellar salted saltee salten salter saltern saltery salthouse saltierra saltigradae saltigrade saltimbanco saltimbank saltimbankery salting saltishly saltishness saltlessness saltly saltmaker saltmaking saltman saltmouth saltness saltorel saltpans saltpeter saltpetre saltpetrous saltpond salts saltshaker saltspoonful saltsprinkler saltwater saltwife saltwort salty salubrify salubrious salubriousness salubrity salung salut saluta salutariness salutary salutation salutationless salutations salutatious salutatorian salutatorily salutatory salute saluted salutes salutiferous salutiferously saluting salutory salva salvable salvableness salvably salvador salvadoraceae salvadoran salvage salvageable salvaged salvagee salvageproof salvarsan salvation salvationism salvationist salve salved salveline salver salverform salves salvia salvianin salvifical salvifically salviniaceae salviniaceous salviol salvo salvy salzburg samadera samadh samadhi samaj saman samandura samani samanid samantha samara samaria samariform samaritan samaritaness samarium samarkand samaroid samarra samba sambal sambaqui sambar sambara sambathe sambo sambuk sambuke samburu same samee samekh samelike sameliness samely samen sameness samgarnebo samhain samhita samiel samiresite samite samlet sammel sammier samnite samoa samoan samogitian samogonka samoite samolus samosatenian samothere samothracian samovar samovars samp sampaloc sampan samphire sampi sample sampled sampleman sampler samplery samples sampling sampsaean sampson samsien samskara samson samsoness samsonistic samsonite samuelson samurai san sanability sanable sanableness sanai sanative sanatorium sanatory sanballat sanbenito sanborn sancho sanct sancta sanctanimity sancti sanctifiable sanctifiableness sanctifiably sanctificate sanctification sanctified sanctifiedly sanctifier sanctifies sanctify sanctifyingly sanctilogy sanctiloquent sanctimonial sanctimonious sanctimoniously sanctimoniousness sanctimony sanction sanctionable sanctionary sanctionative sanctioned sanctioner sanctioning sanctionist sanctionless sanctionment sanctions sanctis sanctities sanctitude sanctity sanctology sanctorum sanctuaire sanctuaried sanctuaries sanctuary sanctum sanctus sancy sancyite sand sandak sandal sandaled sandaliform sandaling sandalled sandals sandalstrings sandalwise sandalwood sandalwort sandan sandarac sandaracin sandastros sandawe sandbag sandbagged sandbank sandbanks sandbars sandbin sandblasting sandbox sandboy sandbur sandburg sandclub sandculture sanded sandemanism sander sanderling sanders sanderson sandfish sandflower sandglass sandhill sandhills sandia sandiferous sandiness sanding sandiver sandix sandless sandlike sandling sandman sandnatter sandnecker sandpaper sandpaperer sandpeaks sandpeep sandpiper sandproof sandra sands sandspit sandstay sandstone sandstones sandstorm sandusky sandust sandweld sandwich sandwiched sandwiches sandwood sandy sane sanely saneness saner sanest sanetch sanford sanforized sang sanga sangamon sangar sangaree sangerbund sangerfest sangfroid sangha sangir sanglant sangley sangreeroot sangrel sangsue sanguicolous sanguifacient sanguiferous sanguifier sanguimotor sanguimotory sanguinaceous sanguinaria sanguinarily sanguinarine sanguinariness sanguinary sanguine sanguinea sanguineless sanguinely sanguinem sanguineness sanguineophlegmatic sanguineousness sanguineovascular sanguinicolous sanguiniferous sanguinification sanguinis sanguinity sanguinocholeric sanguinolency sanguinolent sanguinopoietic sanguis sanguisorba sanguisorbaceae sanguisuge sanguisugent sanguivorous sanhedrim sanhedrist sanicle sanicula sanidine sanidinites sanies sanify sanitarily sanitarist sanitarium sanitariums sanitary sanitate sanitation sanitize sanity sanjak sanjakbeg sanjakship sanjit sank sankhya sannaite sannoisian sannup sannyasi sanopurulent sans sansar sansculottes sansei sansevieria sanshach sansi sanskrit sanskritic sanskritist sant santa santalaceae santalaceous santali santalic santalol santalum santalwood santapee santayana santee santene santiago santo santon santonica santonin santoninic santorinite santos sanukite sanvitalia sanyakoan sao saoshyant sap sapajou sapan sapanwood sapbush sapek sapful sapharensian saphead saphenal saphenous saphenus saphie sapidity sapidless sapidness sapiency sapiens sapient sapienter sapiential sapientize sapin sapinda sapindaceae sapindales sapindaship sapium sapiutan sapless sapling saplings sapo sapodilla sapogenin saponaceous saponacity saponaria saponarin saponi saponification saponifier saponify saponite sapophoric sapor sapore saporific saporosity saporous sapota sapotaceae sapote sapotilha sapotilla sappanwood sappare sappe sapped sapper sappers sapphire sapphireberry sapphires sapphirine sapphist sappiness sapping sappy sapremia sapremic saprocoll saprogenic saprogenous saprolegnia saprolegniaceae saprolegniales saprolegnious saprolitic sapropel sapropelic sapropelite saprophagous saprophilous saprophyte saprophytic saprophytically saprostomous saps sapsago sapskull sapsuck sapucaia sapucainha sapwood sapwort sar sara saraad sarabaite saraband saracenian saracenic saracenism sarada saraf sarah sarai sarakolet saran saranwrap sarasota saratogan saravan sarawakese sarawakite sarawan sarbacane sarbican sarcasm sarcasmproof sarcasms sarcastic sarcastical sarcastically sarcasticalness sarcasticness sarch sarcilis sarcitis sarcle sarcler sarcoadenoma sarcoblast sarcocarcinoma sarcocarp sarcocele sarcococca sarcocolla sarcocollin sarcocystidea sarcocystidean sarcocystidian sarcocystis sarcode sarcoderm sarcodes sarcodic sarcodina sarcodous sarcoenchondroma sarcogyps sarcoid sarcolactic sarcolemma sarcolemmic sarcoline sarcolite sarcologic sarcolyte sarcolytic sarcoma sarcomatosis sarcomatous sarcomere sarcophaga sarcophagal sarcophagic sarcophagidae sarcophagine sarcophagize sarcophagous sarcophagus sarcophagy sarcophile sarcophilous sarcoplasm sarcoplasma sarcoplasmatic sarcoplasmic sarcoplast sarcopsylla sarcopsyllidae sarcoptes sarcoptid sarcoptidae sarcorhamphus sarcosepsis sarcosepta sarcosine sarcosoma sarcosperm sarcosporida sarcosporidian sarcosporidiosis sarcostosis sarcostyle sarcotheca sarcotherapeutics sarcotherapy sarcotic sarcous sarcura sard sardachate sardanapalus sardian sardine sardines sardinian sardius sardoin sardonic sardonically sardonicism sardonyx sare sargasso sargassum sargent sargonic sargonide sargus sari sarif sarily sarinda sarip sark sarkar sarking sarkinite sarkit sarlak sarmatian sarmatic sarmatier sarment sarmentaceous sarmentiferous sarmentose sarmentum sarna sarod saron saronic saronide saros sarothamnus sarothra sarothrum sarpler sarpo sarracenia sarraceniaceae sarraceniaceous sarracenial sarraceniales sarraf sarrusophone sarrusophonist sarsa sarsaparilla sarsar sarse sarsen sarsparilla sart sartage sartin sartish sartor sartoriad sartorial sartorian sartorite sartorius saruk sarus sarvarthasiddha sarve sarwan sary sarzan sasa sasan sase sash sashay sashed sashery sashes sashless sasin sasine saskatoon sassaby sassafac sassafrack sassafras sassanian sassanide sassenach sassolite sassy sassywood sastean sat satan satanael satanas satang satanic satanical satanism satanist satanology satanophany satanophobia satanship satara satchel satcheled satchels sate sated sateen sateless satellite satellited satellites satellitesimal satellitian satellitious satellitium satelloid sates satest satiable satiableness satiate satiated satieno satient satiety satin satinbush satine satined satinflower satinite satinity satinize satinleaf satinlike satinpod satins satinwood satiny satire satires satiric satirical satirically satiricalness satirise satirist satirizable satirize satirized satirizer satirizes satirizing satisdation satisdiction satisfaction satisfactionist satisfactions satisfactorily satisfactoriness satisfactorious satisfactory satisfi satisfiable satisfice satisfied satisfies satisfieth satisfy satisfying satisfyingly satisfyingness satrae satrap satrapal satrapess satrapical satraps satrapy satron sattva saturability saturable saturant saturate saturated saturater saturation saturator saturday sature saturn saturnal saturnalia saturnalian saturnian saturnicentric saturniid saturniidae saturnine saturninely saturnineness saturninity saturnism saturnize saturnus satyagrahi satyashodak satyr satyresque satyress satyriasis satyric satyridae satyrion satyrism satyrlike satyrs sauce saucedish sauceline sauceman saucepan sauceplate saucer saucerful saucerleaf saucerless saucers sauces sauciest saucily sauciness saucy saud sauger saugh saughen saulie saulted saum saumon saumur sauna saunders saunderswood saunter sauntered saunterer sauntering saunteringly saunters saur saura saurauia saurians sauriasis sauriosis saurischia saurischian saurodont saurognathous saurophagous sauropoda sauropodous sauropsid sauropsida sauropsidan sauropsidian sauropterygia saurornithes saurornithic saururae saururan saururous saury sausage sausagelike sausages sausinger saussurite saussuritic saussuritize saut sauterelle sauterne sauternes sauteur sauty sauvages sauvagesia sauve sauvetage sauvons savable savacu savage savagedom savagely savageness savagerous savagery savages savagess savagize savais savanilla savanna savannah savannahs savannas savans savant savants savara save saved savedst savee saveloy savers savery saves savest saveth savez saving savingly savingness savings saviorship saviour saviours savitar savitri savonarolist savonnerie savor savored savorily savoriness savoring savoringly savorless savors savorsome savory savour savoured savoureth savouring savours savoury savoyard savoying savun saw sawai sawali sawan sawarra sawbelly sawbill sawbird sawbones sawbuck sawbwa sawder sawdust sawdustish sawdustlike sawdusty sawed sawer sawest sawfish sawfly sawhandled sawing sawmaker sawmaking sawman sawmill sawmiller sawmills sawmon sawmont sawn sawney saws sawsetter sawt sawway sawworker sawwort sawyer saxatile saxboard saxicavous saxicola saxicoline saxicolous saxifraga saxifragaceous saxifragant saxifrage saxifragous saxigenous saxish saxon saxondom saxonian saxonical saxonically saxonism saxonist saxonite saxonization saxony saxophone saxotromba saxpence saxten saxtie saxtuba say saya sayability sayable sayer sayest sayeth sayette sayid saying sayings says sbaikian sbe sblood sbodikins sc scab scabbard scabbardless scabbards scabbed scabbery scabbiness scabbler scabbling scabby scabellum scabicide scabid scabiei scabies scabietic scabinus scabiosity scabish scabland scabrescent scabridulous scabriusculose scabriusculous scabrosely scabrous scabrously scabrousness scabs scabwort scacchic scacchite scaddle scads scaean scaff scaffery scaffie scaffle scaffold scaffoldage scaffolder scaffolding scaffoldings scaglia scagliola scagliolist scairt scaith scala scalableness scalably scalar scalare scalaria scalariform scalariidae scalarwise scalation scalawag scalawaggery scalawaggy scald scaldberry scalded scalder scaldfish scaldic scalding scalds scaldweed scaldy scale scaleback scalebark scaled scalefish scaleful scalelet scaleman scalena scalepan scaleproof scaler scales scalesman scalewise scalework scalewort scaliness scaling scall scalled scallom scallop scalloped scalloper scalloping scallops scallopwise scalma scaloni scalopus scalp scalped scalpeen scalpel scalpellic scalpellus scalpels scalper scalping scalpless scalpriform scalprum scaly scalytail scam scamandrius scamble scambling scamell scamler scamles scammish scammony scammonyroot scamp scampavia scamper scampered scamperer scampering scamperings scampers scampingly scampishness scamps scampsman scan scandal scandale scandalize scandalized scandalizing scandalmonger scandalmongering scandalmongery scandalous scandalously scandalousness scandals scandaroon scandent scandian scandinavia scandinavian scandium scandix scania scanic scanision scanmag scannable scanned scanner scanning scans scansion scansores scansorial scansorious scant scantier scanties scantily scantiness scantle scantling scantly scanty scap scape scapegoat scapegoatism scapegoats scapegrace scapel scapeless scapethrift scapha scaphander scaphandridae scaphiopodidae scaphism scaphites scaphitidae scaphitoid scaphocephalism scaphocephalous scaphocephalus scaphocerite scaphoceritic scaphognathite scaphognathitic scaphopod scapiform scapigerous scapoid scapolite scapple scapula scapulae scapulalgia scapular scapulare scapulary scapulated scapulectomy scapulimancy scapuloaxillary scapuloclavicular scapulocoracoid scapulohumeral scapulopexy scapulothoracic scapulovertebral scapus scar scarab scarabaean scarabaei scarabaeidae scarabaeiform scarabaeoid scarabs scarce scarcely scarcement scarcer scarcity scare scarebabe scarecrow scarecrowish scarecrows scarecrowy scared scareful scarehead scaremonger scarer scares scarf scarfed scarfer scarflike scarfs scarfwise scarfy scarica scarid scaridae scarification scarifications scarificator scarified scarify scaring scariose scarious scarlatina scarlatinal scarlatti scarless scarlet scarletberry scarletseed scarlety scarp scarped scarping scarpment scarproof scarred scarrer scarring scarry scars scarus scarved scarves scase scat scatch scathe scathed scatheful scatheless scathelessly scather scathing scathingly scathless scaticook scatland scatologia scatologic scatology scatomancy scatophagid scatophagidae scatophagoid scatophagous scatophagy scatoscopy scatter scatteration scatteraway scatterbrain scatterbrains scattered scatteredness scatterer scattereth scattergun scattering scatteringly scattermeal scatters scatty scaturient scaum scaup scaurie scaut scavage scavel scavenage scavenge scavenger scavengerism scavengers scavengership scavengery scavenging scawd scawl scconds sce sceat scelerat scelidosauroid scelidosaurus scelidotherium sceliphron sceloncus sceloporus scelotyrbe scena scenario scenarioization scenarioize scenarization scenary scend scended scene scenecraft scenedesmus sceneful sceneman scenery scenes sceneshifter scenic scenical scenically scenist scenite scenographic scenographical scenographically scenography scenopinidae scent scented scenter scenting scentlessness scentproof scents scentwood scepsis scepter scepterdom sceptered scepterless sceptic sceptical sceptically scepticism sceptics sceptral sceptre sceptred sceptres sceptropherous sceptrosophy sceptry sceuophorion sceuophylax schaefferia schafer schairerite schal schalmei schalmey schalstein schantz schanz schapbachite schappe schapped scharlachberger schatchen schaumberg scheat schediasm schediastic schedius schedular schedulate schedule scheduled schedules scheduling schedulize scheelite scheffel schefferite schelling schellingianism schemata schematic schematically schematise schematism schematize schematizer schematogram schematograph schematomancy schematonics scheme schemed schemeful schemeless schemer schemers schemes scheming schemingly schemings schemy schene scheneca schenectady schepen schering scherm scherzando scherzo schesis scheuchzeria schiedam schiffli schiller schillerfels schilling schimmel schindler schindylesis schindyletic schipperke schisandra schisandraceae schism schisma schismatic schismatically schismatism schismatize schismic schismless schisms schist schistaceus schistes schistic schistocelia schistocerca schistocoelia schistocormia schistocytosis schistoglossia schistoid schistomelia schistomelus schistoprosopia schistoprosopus schistorrhachis schistoscope schistose schistosity schistosoma schistosomia schistosomiasis schistothorax schistous schists schizaea schizaeaceous schizanthus schizaxon schizocarp schizocarpous schizochroal schizocoele schizocyte schizodinic schizogamy schizogenetic schizogenetically schizogenic schizognathae schizogonic schizogony schizogregarine schizogregarinida schizoid schizoidism schizolaenaceous schizolysigenous schizomycetes schizomycetous schizomycosis schizonemertea schizonemertean schizonemertine schizonotus schizopetalon schizophasia schizophrene schizophreniac schizophrenic schizophrenics schizophyllum schizopod schizopoda schizopodal schizopodous schizorhinal schizospore schizostelic schizostely schizothyme schizothymia schizothymic schizotrypanum schiztic schlatter schleichera schlemihl schlesinger schlessheim schlichtes schlieren schlieric schlitz schlooping schloss schmalz schmelze schmidt schnabel schnabelkanne schnapper schnapps schneider schneiderian schnorchel schnorkel scho schochat schoenberg schoenobatic schoenobatist schoenocaulon schoenus schofield schola scholaptitude scholar scholarch scholarchs scholardom scholared scholarism scholarless scholarlike scholarliness scholarly scholars scholarship scholarships scholasm scholastic scholastica scholastical scholastically scholasticism scholasticly scholastics scholastique scholastischen scholia scholiast scholiastic schomburgkia schon schone schonfelsite schonlein school schoolable schoolbookish schoolbooks schoolboy schoolboydom schoolboyish schoolboyishly schoolboyishness schoolboyism schoolboys schoolbutter schoolchild schoolchildren schoolcraft schooldame schooldays schooled schoolery schoolfellow schoolfellows schoolfellowship schoolful schoolgirl schoolgirlhood schoolgirlish schoolgirlishly schoolgirls schoolhouse schoolhouses schooling schoolingly schoolish schoolkeeper schoolkeeping schoolless schoollike schoolmaam schoolmaamish schoolman schoolmarm schoolmaster schoolmasterhood schoolmastering schoolmasterish schoolmasterishly schoolmasterly schoolmasters schoolmastership schoolmastery schoolmates schoolmistress schoolmistressy schoolpeople schoolroom schools schoolteacher schoolteacherly schoolteachery schooltime schoolward schoolwork schoolyard schoon schooner schooners schopenhauereanism schopenhauerian schorenbergite schorl schorlaceous schorlomite schorlous schottische schottish schottky schrebera schreiner schriesheimite schroeder schroedinger schrotterite schrund schubert schuh schuller schultz schulz schungite schuss schust schuster schute schwa schwab schwabacher schwalbea schwarz schwarzian schweitzer schweizer schweizerischen schweizerkase schwendenerian schwenkfelder schwenkfeldian sci sciadopitys sciaenid sciaenoid sciamachy scian sciapod sciapodous sciatheric sciatherical sciatica sciatical sciatically scibile science scienced sciences scient sciential scientician scientific scientifical scientifically scientificalness scientificogeographical scientificohistorical scientificophilosophical scientificopoetic scientificoreligious scientifique scientifiques scientism scientist scientistically scientists scientize scientolism scilicet scillipicrin scillitan scillitin scimitar scimitarpod scincid scincidae scinciform scincoid scincoidian scincomorpha scind scintigraphy scintilla scintillant scintillate scintillated scintillating scintillatingly scintillation scintillations scintillator scintillescent scintillize scintilloscope scintillose scintillously scintle scintling sciograph sciographic sciolism sciolous sciomachiology sciomachy sciomantic scion scions sciophilous sciophyte scioptic sciopticon scioptric sciot scioterique sciotheism sciotheric scious sciously scirenga scirpus scirrhogastria scirrhoid scirrhoma scirrhosis scirrhous scirrhus scirrosity scirtopod scirtopoda scissible scission scissiparity scissor scissorbill scissorbird scissorium scissorlike scissorlikeness scissors scissorsmith scissorstail scissortail scissura scissurella scissurellid sciurid sciurine sciuromorpha sciuromorphic sciuropterus scizzors sclaff sclate sclater sclav sclavonian scler sclera scleranth scleranthaceae scleranthus scleratogenous sclere sclerectomy scleredema sclereid sclerencephalia sclerenchyma sclerenchymatous sclerenchyme sclererythrin scleretinite scleria sclerify sclerite scleritic scleritis sclerized sclerobase sclerobasic scleroblast sclerocauly sclerochoroiditis scleroconjunctival scleroconjunctivitis sclerocornea sclerocorneal sclerodactylia sclerodactyly scleroderm scleroderma sclerodermaceae sclerodermata sclerodermatous sclerodermi sclerodermic sclerodermitis sclerogen sclerogenoid sclerogenous scleroid scleroiritis sclerokeratitis sclerokeratoiritis scleroma scleromata scleromeninx scleromere sclerometer scleronychia scleropages scleroparei sclerophthalmia sclerophyll sclerophyllous sclerophylly scleroprotein scleroscope sclerose scleroseptum scleroskeleton sclerospora sclerotal sclerote sclerotherapy sclerotial sclerotic sclerotica sclerotical scleroticectomy scleroticochoroiditis scleroticonyxis scleroticotomy sclerotinial sclerotiniose sclerotioid sclerotitic sclerotome sclerotomy sclerous scleroxanthin sclerozone scliff sclim scm scoad scob scobicular scobiform scobs scoff scoffed scoffer scoffing scoffingly scoffingstock scofflaw scoffs scog scoggan scoggin scogginism scogginist scold scoldable scolded scolding scoldings scolds scolecid scolecida scoleciform scolecite scolecoid scolecospore scolia scolices scoliid scoliidae scoliograptic scoliometer scoliorachitic scoliotic scoliotone scolite scolog scolopaceous scolopacidae scolopax scolopendra scolopendrellidae scolopendrelloid scolopendrid scolopendriform scolopendrine scolopendroid scolopophore scolytidae scolytus scomber scombresocidae scombresox scombrid scombridae scombriformes scombroid scombroidea scombroidean scomparve sconce sconcer sconces sconcheon scones scoon scoop scooped scooper scoopful scooping scoopingly scoops scoot scooter scopa scoparin scoparius scopate scope scopelid scopelidae scopeliform scopelism scopeloid scopelus scopes scopet scopic scopidae scopiferous scopiform scoping scopiped scopola scopoline scopperil scops scoptically scoptophobia scopularia scopularian scopulate scopuliferous scopuliform scopuliped scopulipedes scopulite scopulousness scoranze scorbute scorbutic scorbutical scorbutically scorbutize scorch scorched scorcher scorches scorching scorchingly scorchings scorchproof score scoreboard scorecard scored scorekeeper scoreless scorer scores scoria scoriaceous scoriae scorification scorifier scoriform scorify scoring scorn scorned scorner scorners scornful scornfully scornfulness scorning scorningly scorns scorny scorodite scorpaena scorpaenoid scorpene scorper scorpididae scorpiid scorpio scorpioid scorpioidal scorpioidea scorpion scorpiones scorpionid scorpionis scorpions scorpionweed scorpiurus scorpius scortation scot scotale scotch scotchify scotchiness scotchness scotchwoman scotchy scote scoter scoterythrous scotia scotic scotino scotistical scotize scotodinia scotogram scotograph scotography scotoma scotomata scotomatic scotomatical scotomia scotomy scotophobia scotoscope scotosis scots scotsman scott scotticism scotticize scottification scottishly scottishness scottsdale scotty scouk scoundrel scoundreldom scoundrelish scoundrelism scoundrelly scoundrels scoundrelship scoup scour scourage scoured scourer scourge scourged scourger scourges scourgest scourging scourgingly scourgings scouriness scouring scourings scours scourway scourweed scoury scout scoutcraft scoutdom scouted scouter scouth scouther scouthood scouting scoutingly scoutish scoutmaster scouts scoutwatch scove scovillite scow scowder scowl scowled scowler scowlful scowling scowlingly scowls scowman scows scrab scrabble scrabbled scrabbler scrabe scrae scrag scraggedly scragger scragging scraggled scraggling scraggly scraggy scrags scraily scram scramasax scramble scrambled scramblement scrambles scrambling scrambly scrampum scran scranch scrank scranky scrannel scranning scranny scranton scrap scrapable scrapbook scrape scrapeage scraped scrapepenny scraper scrapes scraping scrapingly scrapings scrapler scrapman scrapmonger scrappage scrapped scrapper scrappet scrappiness scrapping scrappingly scrapple scrappler scrappy scraps scrapworks scrapy scratch scratchable scratchback scratchboard scratchbrush scratchcarding scratchcat scratched scratcher scratches scratchification scratchiness scratching scratchings scratchy scrattle scrauch scrawk scrawl scrawled scrawliness scrawling scrawls scrawly scrawm scrawnily scrawniness scrawny scray scraze screaking screaky scream screamed screamer screaming screamproof screams screamy scree screech screechbird screeched screeches screechily screechiness screeching screechy screed screek screeman screen screenage screendom screened screening screenings screenless screenman screenplay screens screensman screenwise screenwork screenwriter screeny screes screeve screich screver screw screwable screwage screwball screwbean screwdrive screwdriver screwed screwer screwhead screwiness screwing screwish screwman screwmatics screws screwship screwstem screwstock screwwise screwworm screwy scribable scribacious scribal scribatious scribatiousness scribblage scribblative scribblatory scribble scribbled scribbleism scribblement scribbler scribbles scribbling scribblingly scribblings scribe scribed scribendi scriber scribere scribes scribeship scribing scribism scribners scribophilous scriever scriggle scrigni scrim scrime scrimer scrimmage scrimmager scrimp scrimped scrimpiness scrimping scrimpingly scrimply scrimpness scrimshank scrimshanker scrimshaw scrin scrinch scrine scringe scriniary scrip scrippage scripps scripsit script scripta scripted scription scriptitious scriptitiously scriptitory scriptive scriptor scriptores scriptorial scriptorium scriptorum scriptory scriptural scripturalism scripturalist scripturalize scripturarian scripture scriptureless scriptures scripturiency scripturism scripturist scriptwriter scripula scripulum scritch scrivaille scrive scrivello scriven scrivener scrivenership scrivening scrivenly scriver scrob scrobicula scrobicular scrobiculate scrobiculated scrobiculus scrobis scrod scrodgill scroff scrofula scrofularoot scrofulide scrofulism scrofulitic scrofuloderm scrofuloderma scrofulorachitic scrofulosis scrofulous scrofulously scrog scroggy scrolar scroll scrolled scrollhead scrolls scrollwork scronach scroop scrophularia scrophulariaceae scrota scrotal scrotitis scrotocele scrotofemoral scrotum scrouch scrouge scrouger scrounge scrounging scrout scrow scrub scrubbable scrubbed scrubber scrubbily scrubbiness scrubbing scrubbird scrubbly scrubby scrubgrass scrubland scrubs scrubwoman scrubwood scruf scruff scruffle scruffman scrum scrump scrumple scrumption scrumptious scrumptiously scrunch scrunching scruple scrupled scruples scruplesome scruplesomeness scrupling scrupula scrupular scrupulist scrupulosity scrupulous scrupulously scrupulousness scrupulum scrupulus scrutable scrutate scrutator scrutatory scrutetur scrutinant scrutineer scrutinies scrutinise scrutinised scrutinising scrutinization scrutinize scrutinized scrutinizes scrutinizing scrutinous scrutiny scruto scrutoire scry scuba scud scuddaler scuddawn scudded scudder scuddick scudding scuddingly scuddle scudi scudler scudo scuds scuff scuffed scuffle scuffled scuffler scuffling scufflingly scufflings scuffy scuft scufter scug sculch sculduddery scull sculled scullery scullerymaid scullful scullion scullionish scullionship sculpt sculptile sculptitory sculptograph sculptor sculptorid sculptors sculptress sculptural sculpturation sculpture sculptured sculpturer sculptures sculpturesque sculpturesquely sculpturing sculsh scultori scum scumber scumbling scumboard scumfish scummed scumming scummy scumproof scuncheon scunder scunner scup scuppaug scupper scuppernong scuppers scuppet scuppler scurdy scurf scurfer scurfily scurfiness scurflike scurr scurried scurrier scurrilist scurrility scurrilous scurry scurrying scurvied scurviness scurvish scurvy scusation scuse scut scutal scutate scutated scutatiform scutch scutcheon scutcheonless scutcheonwise scutcher scutching scutella scutellae scutellar scutellarin scutellation scutelleridae scutelliform scutellum scutibranchia scutibranchiate scutifer scutiferous scutiform scutiger scutigera scutigeral scutigeridae scutiped scutter scuttle scuttlebutt scuttled scuttleful scuttleman scuttler scuttles scuttling scuttock scutty scutula scutulate scutulated scutulum scutum scybala scybalous scyelite scylla scyllaea scyllarian scyllaridae scyllarus scyllas scyllidae scylliidae scyllioid scylliorhinidae scylliorhinoid scyllite scyllitol scyllium scypha scyphate scyphi scyphiferous scyphiphorous scyphistomae scyphistomoid scyphoi scyphomancy scyphomedusae scyphomedusoid scyphophore scyphophori scyphopolyp scyphostoma scyphozoan scyphula scyphulus scyphus scyt scytale scyth scythe scythelike scytheman scythes scythesmith scythestone scythework scythia scythian scythic scytitis scytoblastema scytodepsic scytonemataceae scytopetalaceae scytopetalaceous scytopetalum sd sdeath sdrucciola se sea seabeach seabed seabee seabirds seaboard seaborderer seacannie seacoast seaconny seacrafty seacunny seadrome seafardinger seafare seafarers seafaring seaflood seaflower seafolk seafood seaforthia seafront seaghan seagirt seagoer seagram seagreen seagulls seah seahorses seahound seak seal sealable sealant sealch sealed sealer sealers sealery sealet sealette sealflower sealike sealine sealing sealings sealless seallike seals sealskin seam seaman seamanly seamanship seamas seambiter seamed seamen seamer seaming seamless seamlessly seamlet seamlike seamost seampstering seamrend seamrog seams seamstress seamstresses seamus seamy sean seance seances seapiece seaplane seaport seaports seaquake sear searce searcer search searchable searchableness searched searcher searcherlike searchers searchership searches searchest searcheth searching searchingly searchingness searchlight searchlights searchment searcloth seared searing searlesite searness sears seas seasan seascape seascapes seascapist seascout seascouting seashine seashore seasick seaside season seasonable seasonableness seasonably seasonal seasonally seasonalness seasoned seasoner seasoning seasoninglike seasonless seasons seastroke seat seatang seated seating seatless seatrain seatron seats seatsman seave seavy seawall seaward seawards seaware seaway seaweed seaweeds seaweedy seawife seawoman seaworthiness seaworthy seax sebacate sebaceous sebacic sebait sebastian sebastianite sebastichthys sebastodes sebate sebiferous sebific sebilla sebiparous sebkha seborrhagia seborrhea seborrheal sebright sebundy sec secability secable secale secaline secalose secamone secancy secant secateur secede seceded seceder seceders seceding secern secernent secernment secesh secesher secession secessional secessionalist secessiondom secessionism sech sechium sechuana seciale seck seckel seclude secluded secludedness secluding secluse seclusion seclusionist seclusive seclusiveness secobarbital secodont secohmmeter secoli second secondar secondarily secondariness secondary seconde seconded secondhand secondhanded secondhandedly secondhandedness seconding secondly secondness secondo seconds secos secpar secque secre secrecy secresy secret secreta secretage secretarial secretarian secretariat secretaries secretary secretaryship secrete secreted secretes secretest secretin secreting secretion secretionary secretions secretitious secretive secretiveness secretly secretmonger secretness secretomotor secretor secretory secrets secretum sect sectarian sectarianism sectarianize sectaries sectarism sectarist sectary secte sectile sectility section sectional sectionalist sectionalization sectionally sectionaries sectionary sectionist sections sectioplanography sectism sectist sectiuncle sective sector sectoral sectored sectorial sectroid sects sectwise secular secularism secularist secularists secularity secularization secularize secularized secularizer secularly secularness secund secunda secundate secundation secundiflorous secundigravida secundine secundipara secundiparity secundiparous secundly secundo secundogeniture secundoprimary secundum secundus securable securance secure secured securely securement secureness securer secures securifer securifera securiform securigera securing securitan securities security sed sedan sedang sedate sedately sedateness sedating sedation sedative sedatives sedent sedentarily sedentariness sedentary sedentation sederunt sedge sedged sedges sedgy sedigitate sedigitated sedile sedilia sediment sedimentarily sedimentary sedimentation sedimentous sediments sedimetrical sedisti sedition seditionem seditionist seditious seditiously sedjadeh seduce seduceable seduced seducee seducement seducer seducers seduces seducible seducing seducingly seducive seduction seductionist seductions seductive seductively seductiveness sedulity sedulous sedulously seduto see seeableness seebeck seecatch seech seed seedcake seedeat seeded seeder seeders seedful seedgall seediness seeding seedkin seedless seedlet seedlike seedling seedlings seedness seedpod seeds seedsman seedtime seedy seege seeing seeingness seek seeker seekers seekest seeketh seeking seeks seel seelful seeling seely seem seemably seemcd seemed seemest seemeth seeming seemingly seemingness seemings seemlier seemlihead seemlily seemly seems seen seep seepage seeped seeps seepweed seer seerband seercraft seeress seerhand seerhood seerlike seerpaw seers seership seersucker sees seesaw seesawiness seesee seest seeth seethe seethed seethes seething seethingly seetulputty sefekhet seff seggar seggard segged seggrom seginus segment segmental segmentally segmentary segmentate segmentation segmented segments sego segolate segovia segreant segregable segregant segregate segregated segregateness segregation segregative segregator segundo sehr sei seiche seid seidel seidlitz seigneur seigneurage seigneurial seigneury seignioral seignioralty seigniorial seigniorship seigniory seignorage seignorial seignors seignory seilenoi seilenos sein seine seiner seines seirospore seirosporic seise seised seismal seismetic seismically seismicity seismism seismochronograph seismogram seismographer seismographical seismologic seismological seismologically seismologist seismology seismometer seismometric seismometrical seismometry seismomicrophone seismoscope seismoscopic seismotectonic seismotherapy seismotic seit seity seiurus seiyuhonto seizable seize seized seizer seizes seizing seizor seizure seizures sejant sejoin sejoined sejour sejours sejugate sejugous sejunct sejunctively sekane sekani seker sekhwan sel selachian selachoid selachostome selachostomi selachostomous selaginaceae selaginella selaginellaceae selagite selah selamin selamlik selbornian seldom seldomcy seldomer seldomest seldseen sele select selected selectedly selectest selecting selection selections selective selectiveness selectivity selectman selectmen selectness selector selectric selects selegiline selenate selene selenian seleniate selenic selenicereus selenide seleniferous selenigenous selenipedium selenite selenitic selenitiferous selenium seleniuret selenocentric selenodont selenograph selenographer selenographically selenographist selenography selenolatry selenological selenologist selenology selenosis selenotropic selenotropism selensilver seleucidae seleucidan seleucidean seleucidian seleucidic self selfadjoint selfassuredness selfdom selfhood selfish selfishly selfishness selfism selfist selfless selflessly selflessness selfly selfness selfpreservatory selfridge selfsame selfsameness selfwards seligmannite selihoth selina selion selite seljuk selkirk sell sella sellable sellably sellate selle sellenders seller sellers sellie selliform selling sellout sells selly selon selskab selsoviet selsyn selter seltzogene selung selva selvage selvaged selvagee selvedge selves selwyn semaeostomae semanteme semantic semantical semantically semantics semantological semantron semaphoric semarum semasiologically semasiologist semasiology semateme sematic sematographic sematography sematology semblable semblance semblances semble sembled sembling seme semecarpus semeed semeia semeiological semeiologist semeion semeiotical semeiotics semelfactive semen semence semester semestral semestrial semi semiaccomplishment semiacid semiacidified semiacquaintance semiadherent semiadnate semiaffectionate semiagricultural semiahmoo semialbinism semialcoholic semialien semiallegiance semialpine semialuminous semiamplexicaul semiamplitude semianarchist semianatomical semiangle semiangular semianimal semianimate semiannual semiannually semianthracite semiantique semiaperiodic semiaperture semiappressed semiaquatic semiarborescent semiarc semiarch semiaridity semiasphaltic semiatheist semiattached semiautomatic semiautomatically semiautonomous semiaxis semibachelor semibalked semiball semiballoon semibarbarian semibarbarianism semibarbaric semibarbarism semibarbarous semibarren semibase semibasement semibastion semibay semibeam semibleached semiblunt semibody semiboiled semibolshevist semibourgeois semibreve semiburrowing semicalcareous semicalcined semicallipygian semicanal semicanalis semicantilever semicarbazide semicarbazone semicarbonize semicardinal semicartilaginous semicastrate semicastration semicatholicism semicaudate semicelestial semicell semicellulose semicentenarian semicentenary semicentennial semicentury semichannel semichaotic semichemical semicheviot semichevron semichiffon semichivalrous semichorus semichrome semicircle semicircled semicircular semicircularity semicircularly semicircumference semicircumferentor semicircumvolution semicitizen semiclassic semiclassical semicleric semiclerical semiclimber semiclimbing semiclose semiclosure semicoagulated semicollar semicollegiate semicolloquial semicolon semicolons semicolumnar semicoma semicomatose semicombined semicombust semicomic semicomical semicompact semicompacted semicomplicated semiconceal semiconducting semiconductor semicone semiconfident semiconfinement semiconfluent semiconformist semiconic semiconical semiconnate semiconnection semiconscious semiconsciously semiconsciousness semiconservative semiconsonantal semiconspicuous semicontinent semicontinuum semiconvergence semiconvergent semiconversion semiconvert semicordate semicordated semicoronate semicostal semicotton semicotyle semicounterarch semicountry semicrepe semicrescentic semicretin semicriminal semicrome semicrustaceous semicup semicupola semicured semicurl semicursive semicurvilinear semicylindric semicylindrical semicynical semidark semidarkness semidead semideaf semidecay semidecussation semideification semideistical semidelight semidelirious semideltaic semidenatured semidependent semideponent semidesert semidestructive semidetached semidetachment semideveloped semidiagrammatic semidiapason semidiapente semidiaphaneity semidiaphanous semidiatessaron semidifference semidigested semidigitigrade semidigression semidilapidation semidine semidirect semidisabled semidisk semiditone semidiurnal semidivided semidocumentary semidodecagon semidole semidomed semidomestic semidomesticated semidomestication semidomical semidormant semidouble semidramatic semidress semidressy semidry semidrying semiductile semiduplex semiduration semieducated semieffigy semiegg semiegret semiellipse semiellipsis semiellipsoidal semielliptic semielliptical semienclosed semiengaged semiequitant semieremitical semiessay semiexecutive semiexpanded semiexposed semiextinct semiextinction semifable semifabulous semifailure semifamine semifascia semifasciated semifatalistic semiferal semifeudal semifeudalism semifib semifiction semifictional semifigure semifine semifinish semifinished semifiscal semifitting semifixed semiflashproof semiflint semifloating semifloret semifloscule semiflosculous semifluctuant semifluctuating semifluid semifluidic semifluidity semifoaming semiforbidding semiformal semiformed semifossilized semifrantic semifriable semifuddle semifunctional semifused semifusion semigala semigenuflection semigirder semiglaze semiglazed semiglobe semiglobose semiglobular semiglobularly semiglutin semigod semigovernmental semigrainy semigranitic semigroove semihastate semiherbaceous semiheterocercal semihexagon semihiant semihiatus semihibernation semihigh semihobo semihonor semihoral semihorny semihostile semihuman semihumanitarian semihumanized semihumbug semihumorous semihumorously semihyaline semihydrobenzoinic semihyperbola semijealousy semijudicial semijuridical semilanceolate semilatent semilatus semileafless semilegendary semilegislative semilens semilente semiliberal semilichen semiligneous semilimber semilined semiliquid semilocular semilogical semilong semilooper semiloyalty semilunary semilunate semilunation semiluxation semimachine semimagical semimagnetic semimajor semimalignant semimanufacture semimarine semimarking semimathematical semimedicinal semimembranosus semimenstrual semimercerized semimicrochemical semimild semimilitary semimill semimineral semiminor semimonastic semimonitor semimonopoly semimonster semimucous semimute semimystical semimythical seminal seminality seminaphthalidine seminaphthylamine seminar seminarcosis seminarial seminarian seminarianism seminaries seminarist seminaristic seminarists seminarize seminars seminary seminasal seminatant seminate seminationalization seminative seminebulous seminervous seminiferal seminific seminifical seminist seminium seminivorous seminocturnal seminole seminoma seminomata seminonconformist seminonflammable seminonsensical seminormal seminovelty seminude seminule seminuliferous seminvariant seminvariantive semioblivious semioccasional semiocclusive semioctagonal semiofficially semiography semionotidae semionotus semiopacity semiopacous semiopalescent semiopened semiorbicularis semiorbiculate semiordinate semiorganized semioriental semioscillation semiotic semiotician semioval semiovaloid semiovate semiovoidal semioxidated semioxidized semioxygenized semipagan semipalmated semipanic semipapal semipapist semiparalysis semiparameter semiparasitic semipaste semipastoral semipasty semipause semipectinate semipectoral semiped semipedal semipellucid semipellucidity semipenniform semiperfect semiperimetry semiperiphery semipermanent semipermeability semiperoid semiperspicuous semipertinent semipetrified semiphase semiphilologist semiphilosophic semiphilosophical semiphonotypy semiphosphorescent semipinacolic semiplume semipolar semipolitical semipolitician semipoor semipopish semipopular semiporcelain semiporous semiporphyritic semiportable semipostal semipractical semiprecious semipreservation semiprivacy semiprivate semipro semiprofane semiprofessional semiprofessionalized semipronation semipronominal semiproselyte semiprosthetic semiprostrate semipublic semipupa semipurulent semipyramidical semipyritic semiquadrangle semiquadrantly semiquadrate semiquantitative semiquartile semiquietism semiquietist semiquinquefid semiquintile semiquote semiradiate semiramis semiramize semirattlesnake semiraw semirebellion semirecondite semirecumbent semirefined semiregular semirelief semireligious semireniform semirepublican semiresinous semireticulate semiretirement semiretractile semireverberatory semirevolute semirevolution semiriddle semiring semirotary semirotating semirotatory semirotund semirotunda semiroyal semirural semis semisacred semisagittate semisaint semisaline semisaprophyte semisarcodic semisavage semisavagedom semisavagery semischolastic semiseafaring semisecondary semisecrecy semisection semisedentary semisentient semisentimental semiseparated semiseparatist semiseptate semiserf semiservile semisevere semiseverely semiseverity semisextile semishady semisheer semishirker semishrubby semisightseeing semisimious semisimple semisingle semisixth semiskilled semislave semismelting semismile semisocial semisocinian semisoft semisolemn semisolemnly semisolute semisomnambulistic semisomnous semisopor semispan semispeculation semisphere semispheroidal semispinalis semispontaneousness semisporting semisquare semistagnation semistaminate semistarvation semistarved semistate semisteel semistiff semistock semistratified semistuporous semisubterranean semisuccess semisuccessful semisupinated semisupine semisuspension semisymmetric semitact semitae semitailored semital semitangent semitaur semitechnical semitendinosus semitendinous semiterete semiterrestrial semitertian semitesseral semitessular semitheological semitic semiticism semitime semitische semitischen semitism semitist semitization semitize semitonally semitone semitonic semitontine semitorpid semitour semitrailer semitransept semitranslucent semitransparency semitransparent semitransverse semitreasonable semitropic semitropical semitropics semituberous semitubular semiuncial semiupright semiurban semiurn semivalvate semivault semivector semivegetable semivertebral semiverticillate semivibration semiviscid semivital semivitrification semivitrified semivolatile semivulcanized semiwaking semiwarfare semiweekly semiwild semiyearly semmet semmit semnae semnones semnopithecinae semnopithecus semola semolella semolina semological semology semostomae semostomeous semostomous semper semperannual sempergreen semperjuvenescent sempervirent sempervivum sempiternal sempiternally sempiternity sempiternous sempstress sempstrywork semsem semuncia semuncial sen senaah senaite senarius senate senates senator senatorial senatorially senatorian senators senatrix sence senci sencing sencion send sendable sendal sendee sender sendeth sending sends senecan senectude senectuous senega senegalese senegin senesce senescence seneschal seneschally seneschalsy seneschalty sengreen senicide senijextee senile senilis senilism senior seniority seniors senitive senna sennegrass sennet sennit sennite senonian senor senora senorita sensa sensable sensal sensate sensation sensational sensationalism sensationalistic sensationalize sensationally sensationary sensationish sensationism sensationist sensations sensative sensatorial sensatory sense sensed senseless senselessly senselessness senses sensibilia sensibilisin sensibilities sensibilitous sensibility sensibilium sensibilization sensible sensibleness sensiblest sensibly sensical sensiferous sensific sensificatory sensifics sensify sensigenous sensilia sensilla sensillum sensing sension sensism sensist sensistic sensitive sensitively sensitiveness sensitives sensitization sensitize sensitized sensitizes sensitometric sensitometry sensitory sensitve sensize senso sensomobility sensoneural sensoparalysis sensor sensoria sensorial sensoriglandular sensorimotor sensorimuscular sensorineural sensorium sensory sensual sensualism sensualist sensualistic sensualite sensualities sensuality sensualization sensualize sensually sensualness sensuism sensuist sensum sensuous sensuously sensuousness sensus sensyne sent sented sentence sentenced sentencer sentences sentencing sentential sententiarian sententiarist sententiarum sententiary sententious sententiously sententiousness senters sentest sentient sentiently sentiment sentimental sentimentalising sentimentalism sentimentalist sentimentalists sentimentality sentimentalization sentimentalize sentimentalizer sentimentalizes sentimentally sentimenter sentimentless sentiments sentinel sentinellike sentinelling sentinels sentinelship sentisection sentition sentries sentry senusi senusian senusism senza seornfully seoul sepad sepal sepaled sepalled sepals separability separable separableness separably separate separated separatedly separately separateness separates separatical separating separation separationism separationist separations separatist separatistic separatists separative separatively separativeness separator separators separatory separatress seperate seperation sepharad sephardi sepharvites sephen sephiric sephirothic sepia sepiaceous sepialike sepian sepiarian sepiary sepic sepicolous sepiment sepioidea sepiola sepiolidae sepiolite sepiost sepiostaire sepium sepoy sepoys seps sepsidae sepsis sept septa septal septan septangle septangled septangular septangularness septate septated septation septatoarticulate septavalent septave septcentenary septectomy septem september septemberism septemberist septembrist septembrize septemdecenary septemfid septemfluous septemfoliate septemia septempartite septemplicate septemvious septemvir septemvirate septemviri septenar septenary septenate septenirionale septennary septennial septenniality septennium septenous septentrio septentrion septentrional septentrionale septentrionality septentrionate septentrionic septerium septet septi septibranchia septic septical septicemia septicidal septicidally septicization septicolored septicopyemia septicopyemic septifarious septiferous septifluous septifolious septiform septifragal septifragally septilateral septillion septillionth septimal septimanal septimetritis septimole septinsular septipartite septisyllable septivalent septocosta septocylindrium septodiarrhea septoic septole septomaxillary septonasal septotomy septs septuagenarian septuagenarianism septuagenary septuagesima septulate septulum septum septuncial septuor septuple septuplet sepuchral sepulcher sepulchers sepulchral sepulchralize sepulchre sepulchres sepulchrous sepultural sepulture sepultus sequa sequacious sequaciously sequaciousness sequani sequel sequela sequelae sequence sequencer sequences sequency sequent sequentes sequential sequentially sequently sequest sequester sequestered sequestrable sequestral sequestrate sequestrated sequestration sequestratrices sequestrectomy sequin sequins sequoiasis ser sera serab serabend seragli seraglio seraglios serail seral seralbumin seralbuminous serang serape serapea seraph seraphic seraphically seraphicalness seraphicness seraphim seraphims seraphine seraphism seraphlike serapias serasker seraskerate seraskierat serau seraw serb serbian serbonian serbophile serbophobe sercial serdab sere sereh serena serenade serenaded serenades serenata serenate serendib serendibite serendipitous serendipity serendite serene serenely sereneness serener serenest serenify serenissime serenissimi serenissimo serenissimus serenities serenity serenize serer seres sereward serez serf serfage serfdom serfishly serfishness serfs serfship serge sergeancy sergeant sergeantcy sergeantess sergeants sergeantship sergeanty sergedesoy serger serging sergius serial serialist seriality serialization serially serian seriary seriate seriately seriatim seriation seric sericate sericea sericeous sericicultural sericin sericipary sericite sericocarpus sericterium serictery sericultural sericulture seriema series serif serific seriform serigraph serigrapher serigraphy serimeter serin serine serinette seringa seringal serio seriocomedy seriocomic seriocomical seriola seriolidae serioline serioludicrous serioridiculous seriosity serious seriously seriousness seripositor seris serjeant serjeanties serment sermo sermocinatrix sermon sermonesque sermonettino sermonically sermonics sermonish sermonist sermonizer sermonizing sermonoid sermonolatry sermonology sermons sermonwise sermuncle sernamby sero seroalbuminuria seroanaphylaxis serocolitis serocystic serodermitis seroenzyme serofibrinous serofibrous serofluid serogelatinous serohemorrhagic serohepatitis seroimmunity serolactescent serolemma serolipase serological serologically serologist seromembranous seromucous seromuscular seron seronegativity serophthisis serophysiology seropositive seroprognosis seroprophylaxis seropurulent seroreaction serosanguineous serositis serosynovitis serotherapeutic serotherapeutics serotherapist serotherapy serotinal serotine serotinous serotonin serotoxin serous serovaccine serow serpari serpedinous serpent serpentarii serpentarium serpentary serpentcleide serpenteau serpentess serpentian serpenticidal serpentiform serpentina serpentine serpentined serpentinely serpentinian serpentinic serpentining serpentiningly serpentinization serpentinize serpentinoid serpentinous serpentis serpentivorous serpentize serpently serpentry serpents serphid serphoid serphoidea serpierite serpiginous serpiginously serpigo serpivolant serpolet serpulae serpulan serpulidae serpulidan serpuline serpulite serpulitic serpuloid serra serradella serran serrana serranid serranidae serrano serranoid serrasalmo serrate serrated serratiform serratile serration serrations serratirostral serratocrenate serratodenticulate serratoglandulous serratospinose serratus serre serricornia serridentines serried serriedly serriedness serriform serriped serrirostrate serrulate serrulated sert serta sertularian sertularioid sertule sertulum sertum serue serum serumal serut serva servage servait serval servaline servanis servant servantcy servantess servantless servantlike servantry servants servantship servation serve served servente servers serves serveth servetian service serviceability serviceable serviceableness serviceably serviceberry servicelessness serviceman servicemen services servidor serviette servile servilely servileness servilities servility servilize serving servings servir servite serviteur servitor servitorial servitors servitress servitrix servitude serviture servomechanism servulate servus serwamby ses sesame sesamoid sesamoidal sesamoiditis sesamum sesban sesbania sescuple seseli seshat sesiidae sesma sesqui sesquialteral sesquialterous sesquicarbonate sesquicentennial sesquiduplicate sesquihydrate sesquihydrated sesquinona sesquinonal sesquioctava sesquioctaval sesquioxide sesquipedalian sesquipedalianism sesquipedality sesquiplicate sesquiquadrate sesquiquarta sesquiquartal sesquiquinta sesquiquintile sesquiseptimal sesquisilicate sesquisquare sesquisulphide sesquisulphuret sesquiterpene sesquitertia sesquitertial sesquitertian sesquitertianal sess sessed sessile session sessionary sessions sesterce sestertium sestet sestiad sestine sestole sesuto sesuvium set seta setae setal setarious setback setbolt seth sethead sethian sethic sethite setibo setier setifera setiferous setiform setigerous setirostral setline setlled setness setophaga setophaginae setous setout setover sets sett settable settee settees setter settergrass setters settest setteth setting settings settle settled settledly settlement settlements settler settlerdom settlers settles settling settlings setts settsman setula setule setulous setup setwall setwork seu seuer seuerall seugh seule seureall sevastopol seven sevenbark sevene sevener sevenfold sevennight sevenpence sevenpenny sevens sevenscore seventeen seventeenfold seventeenth seventeenthly seventh seventhly sevenths seventies seventieth seventy seventyth sever severable several severalfold severality severally severalth severalty severance severation severe severed severedly severely severer severest severian severing severish severities severity severization severize severn severs severy seville sew sewable sewage sewan sewed sewen sewer sewerage sewered sewerless sewerlike sewerman sewermen sewers sewery sewing sewless sewn sews sex sexadecimal sexagenarian sexagesima sexagesimal sexagesimally sexagesimals sexangle sexangled sexangularly sexannulate sexdigital sexdigitated sexdigitism sexed sexennial sexennially sexern sexes sexfarious sexfoil sexhood sexifid sexillion sexiped sexipolar sexisyllabic sexisyllable sexitubercular sexivalence sexless sexlessly sexlessness sexlike sexlocular sexly sexologist sexology sexpartite sext sextactic sextain sextan sextant sextantal sextar sextarii sextarius sextennial sextern sextet sextic sextidecimus sextile sextillion sextipara sextipartite sextipartition sextipolar sexto sextolet sexton sextoness sextons sextonship sextry sextubercular sextula sextuple sextuplet sextuplex sextuplicate sextuply sexual sexualism sexualist sexualite sexuality sexually sexualy sexuous sexupara sexuparous sexy sey seyal seybertite seymour sez sforzando sga sgraffiato sgraffito sha shaatnez shab shabash shabbath shabbier shabbiest shabbify shabbily shabbiness shabble shabby shabbyish shabrack shabunder shabuoth shachle shack shackanite shackatory shackbolt shackee shackland shackle shackled shackler shackles shacklewise shackling shackly shacks shacky shad shadberry shadbird shadder shaddock shade shaded shadeful shadeless shadelessness shades shadflower shadier shadiest shadine shadiness shading shadings shadkan shadoof shadow shadowbox shadowboxing shadowed shadower shadowgram shadowgraph shadowgraphic shadowgraphist shadowgraphy shadowily shadowiness shadowing shadowishly shadowist shadowland shadowless shadowlessness shadowlike shadowly shadows shadowy shadrach shady shaffer shaffle shafiite shaft shaftal shafted shafter shafting shaftless shaftlike shaftman shafts shaftsman shag shaganappi shagged shaggily shagginess shagging shaggy shagia shaglet shaglike shagrag shagreen shagreened shagtail shah shahaptian shahi shahin shahzada shaigia shaikh shaikiyeh shaiva shaka shakable shake shakedown shakefork shaken shakeproof shaker shakeress shakerism shakerlike shakers shakes shakescene shakespeare shakespearean shakespeareana shakespeareanly shakespearian shakespearize shakespearolater shakespearolatry shaketh shakily shakiness shaking shakingest shakings shakos shaksheer shakta shakti shaktism shaky shakyamuni shalako shale shalelike shaleman shales shall shallal shallon shalloon shallop shallops shallot shallow shallowbrained shallower shallowest shallowhearted shallowish shallowist shallowly shallowness shallowpated shallows shallowy shallu shalom shalt shalwar shaly sham shama shamably shamal shamaness shamanic shamanism shamanist shamanistic shamanize shamateur shamayim shamba shambala shamble shambled shambles shambling shamblingly shambu shame shameable shamed shamedst shamefaced shamefacedly shamefacedness shamefast shamefastly shamefastness shameful shamefully shamefuly shameless shamelessly shamelessness shameproof shamer shames shameth shameworthy shamianah shaming shammed shammer shammick shamming shammish shammock shammocky shampoo shampooing shampoos shamrock shamroot shams shamsheer shamus shan shan't shanachie shandean shandrydan shandy shandyism shangalla shangan shanghai shanghaied shank shanked shanker shankpiece shanks shanksman shannon shanny shanties shantung shanty shantylike shantyman shantytown shap shapable shape shaped shapeful shapeless shapelessly shapeliness shapely shapen shaper shapers shapes shapeshifter shapesmith shaping shapometer shaps shaptan sharable shard shards shardy share shareable sharecrop sharecropper shared shareholder shareholders shareholdership shareman shareown sharepenny sharer sharers shares sharesman sharia sharing sharira shark sharkful sharklet sharklike sharks sharky sharn sharny sharp sharpe sharpen sharpened sharpener sharpening sharpens sharper sharpest sharpish sharply sharpness sharps sharpsaw sharpshin sharpshod sharpshooter sharpshooters sharpshooting sharptail sharpware sharpy sharra sharry shasta shastaite shaster shastra shastraik shastri shastrik shat shatan shatter shatterbrain shattered shatterer shatterheaded shattering shatteringly shatterment shatterpated shatterproof shatters shattery shattuck shattuckite shatzki shauchle shaugh shaula shauwe shave shaveable shaved shaven shavery shaves shavester shavetail shaveweed shavian shaviana shaving shavings shaw shawanese shawano shawl shawled shawling shawlless shawls shawlwise shawm shawny shawwal shawy shaysite she she'd shea sheading sheaf sheafage sheafed sheafripe sheafs sheafy sheal sheap shear shearbill sheard sheared shearer shearers sheareth sheargrass shearhog shearing shearless shearling shears shearsman sheartail shearwater shearwaters sheat sheatfish sheath sheathbill sheathe sheathed sheather sheathing sheathless sheaths sheathy sheave sheaved sheaveless sheaveman sheaves shebeen shebeener shechemites shed shedded shedder sheddeth shedding sheder shedir shedman sheds shedwise shee sheely sheen sheened sheenful sheening sheeny sheep sheepberry sheepbine sheepbiter sheepbiting sheepcrook sheepfacedness sheepfold sheepfoot sheepgate sheepheaded sheephearted sheepherder sheepherding sheephook sheepify sheepish sheepishly sheepishness sheepkeeping sheepless sheeplet sheepling sheepmaster sheepnose sheepnut sheeppen sheepshead sheepsheadism sheepshearer sheepshed sheepskin sheepstealer sheepstealing sheepwalk sheer sheered sheerest sheering sheet sheetage sheeted sheetflood sheetful sheeting sheetings sheetless sheetlet sheetlike sheetling sheets sheetwise sheetwork sheetwriting shehitah sheik sheikdom sheikh sheikhlike sheiklike sheiks sheila shekel shekels shekinah shela shelby sheld shelder sheldfowl shelduck shelf shelfback shelffellow shelfful shelflist shelfmate shelfpiece shelfroom shelfy shell shellac shellacked shellacker shellacking shellapple shellback shellblowing shellbound shellburst shellcracker shelleater shelled shelley shelleyan shelleyana shellfish shellfishery shellflower shelliness shelling shellman shellmonger shells shellshake shellum shellwork shellworker shelly shellycoat shelta shelter sheltered shelterer sheltering shelteringly shelterless shelterlessness shelters sheltery shelton sheltron shelve shelved shelver shelves shelving shelvingly shelvingness shelvings shelvy shelyak shemayya sheminith shemite shemitic shemitish shemu shenandoah shend sheng shenshai sheoaks shepe shepeherdes shepherd shepherddom shepherded shepherdess shepherdia shepherdism shepherdize shepherdlike shepherdly shepherdry shepherds sheppard sheppey sher sherardia sherardize sherardizer sheratan sherbet sherbetlee sherds shere sheriat sheridan sherif sherifa sherifate sheriff sheriffalty sheriffdom sheriffess sheriffry sheriffs sheriffship sheriffwick sherifi sherifian sherifs sheriyat sherlock sherman sherpa sherramoor sherrill sherry sherwin sherwood shes shesha shet sheth shetland shetlandic sheugh sheva shevel sheveled shew shewa shewbread shewed shewedst shewest sheweth shewing shewn shews shibah shibar shibboleth shibbolethic shice shicer shide shied shiel shield shieldable shieldboard shielddrake shielded shielder shieldflower shielding shieldless shieldlessness shieldmaker shields shies shiest shift shiftable shifted shiftily shiftiness shifting shiftingly shiftless shiftlessly shiftlessness shifts shifty shigella shigellosis shiggaion shigram shiism shiitic shik shikar shikara shikargah shikimi shikimic shikimotoxin shikken shikra shilf shilfa shilh shilha shill shillaber shillhouse shilling shillingless shillings shilloo shilluh shilluk shiloh shilpit shim shimmer shimmered shimmeriness shimmering shimmy shimose shimper shin shina shinaniging shinarump shinbone shinbones shindig shindle shindy shine shined shiner shiners shines shineth shingle shingled shingles shinglewise shingly shinier shiniest shinily shininess shining shiningly shiningness shinleaf shinnecock shinner shinning shinny shinplaster shins shintiyan shintoism shintoistic shintoize shinwari shinwood shiny shioowner ship shipboard shipbound shipbroken shipbroker shipbuilder shipbuilding shipcraft shipentine shipful shipkeeper shiplap shipless shiplet shipley shipload shiploads shipmaster shipmasters shipmate shipmates shipmatish shipmen shipment shipments shipowner shipowners shipowning shippable shipped shipper shippers shipping shippo shippon shippy ships shipshape shipshapely shipsmith shipward shipwards shipway shipwork shipworm shipwrack shipwreck shipwrecked shipwrecks shipwrecky shipwright shipwrightry shipwrights shipyard shipyards shirakashi shiraz shire shirehouse shireman shires shirk shirked shirker shirking shirks shirky shirl shirlcock shirley shirpit shirring shirt shirtband shirted shirtfront shirting shirtings shirtless shirtlessness shirtmake shirtmaking shirtman shirts shirtwaist shirtwaisted shirtwaists shirty shirvan shish shisham shit shitepoke shittah shittim shittimwood shiv shivaism shivaist shivaistic shivaite shivaree shive shiver shivered shivereens shiverer shivering shiveringly shiverproof shivers shiversome shiverweed shivery shivey shivoo shivy shivzoku shkupetar shlu sho shoa shoad shoader shoal shoaled shoaler shoalest shoaliness shoaling shoalness shoals shoalwise shoaly shock shockability shockable shocked shockedness shocker shockheaded shocking shockingly shockingness shockley shocklike shockproof shocks shod shoddiness shoddy shoddydom shoddyism shoddywards shoe shoebill shoebindery shoebird shoeblack shoeboy shoebrush shoed shoeflower shoeing shoeless shoemaker shoemaking shoeman shoer shoes shoeshine shoeshop shoestring shoestrings shoewoman shoggle shoggly shogi shogun shoguns shohet shoji shojo shokier sholde sholl shollt shona shone shoneen shoo shood shooed shoofa shooi shooing shook shooldarry shooler shoon shoopiltie shoor shoot shootboard shootee shooter shooteth shooting shootman shoots shop shopblinds shopboard shopbook shopbreaking shope shopfolk shopful shopgirl shopgirlish shopkeep shopkeeper shopkeeperess shopkeeperism shopkeepers shopkeepery shopkeeping shopland shoplet shoplift shoplike shopmaid shopman shopmate shopmen shopocracy shopocrat shoppe shopped shopper shopping shoppish shoppy shops shopster shopwalker shopwear shopwindow shopwoman shopwork shopworker shoq shoran shore shorea shorebird shorebush shored shoregoing shoreland shoreless shoreline shoreman shores shoresman shoreward shorewards shoreweed shoreyer shoring shorling shorn short shortage shortbread shortcake shortchange shortchanger shortclothes shortcoat shortcomer shortcoming shortcomings shortcut shorted shorten shortened shortener shortening shortenings shortens shorter shortest shorthand shorthandedness shorthead shortish shortlived shortly shortness shortschat shortsighted shortsightedly shortsightedness shortstop shortwaisted shortzy shose shoshonean shoshonite shot shotbush shotgun shotless shotlike shotmaker shotman shotproof shots shotstar shott shotted shotty shotweld shou should shoulder shouldered shoulderer shoulderette shouldering shoulders shouldest shouldn shouldn't shouldna shouldst shoupeltin shout shouted shouting shoutingly shoutings shouts shove shoved shovel shovelard shovelbill shoveled shoveler shovelfish shovelful shovelfuls shovelhead shoveling shovelled shovelling shovelmaker shovelnose shovels shovelweed shover shoves shoveth shoving show showable showance showboard showboat showcase showcases showdown showed showedst shower showered showerful showering showerlike showerproof showers showery showeth showily showiness showing showish showless showman showmanry showmanship showmen shown showpiece showplace showr showroom shows showworthy showy shoya shrab shraddha shradh shraf shrag shrank shrap shrapnel shravey shreadhead shreads shred shredcock shredded shredder shredding shreddy shredless shredlike shreds shree shreeve shrend shrew shrewd shrewdest shrewdish shrewdly shrewdness shrewdom shrewdy shrewish shrewishly shrewishness shrewmouse shrewstruck shriek shrieked shrieker shriekily shriekiness shrieking shriekingly shriekings shriekproof shrieks shrieky shrieval shrievalty shrieve shrift shrill shrilled shriller shrillest shrilling shrillness shrilly shrimper shrimpfish shrimpi shrimping shrimpish shrimpishness shrimplike shrimps shrimpy shrinal shrine shrineless shrinelet shriner shrines shrink shrinkage shrinkageproof shrinkages shrinker shrinking shrinkingly shrinkproof shrinks shrinky shrite shrive shrivel shriveled shriveling shrivelled shrivelling shrivels shriven shriver shriving shroff shrog shropshire shroud shrouded shrouding shroudlike shrouds shroudy shrovetide shrub shrubbed shrubberies shrubbery shrubbiness shrubbish shrubby shrubland shrublet shrubs shrubwood shruff shrug shrugged shrugging shrugs shrunk shrunken shtop shtreimel shu shubunkin shuck shucker shucking shuckins shuckpen shucks shudder shuddered shudderful shudderiness shuddering shudderingly shudderings shudders shuddersome shuddery shuffle shuffleboard shufflecap shuffled shufflewing shuffling shufflingly shug shuhali shuk shukulumbwe shul shulamite shuld shulde shulman shun shunned shunner shunning shunpike shuns shunt shunted shunter shunting shunts shure shush shusher shut shutdowns shutoff shuts shuttance shutten shutter shutterbug shuttered shutters shutting shuttinr shuttle shuttlecock shuttlecocks shuttled shuttleheaded shuttlelike shuttles shvah shy shyer shyest shying shylike shyly shyness sia sial sialaden sialadenitis sialadenoncus sialagogic sialagoguic sialemesis sialia sialid sialidae sialidan sialo sialoangitis sialoid sialolith sialolithiasis sialoliths sialorrhea sialosemeiology sialosis sialostenosis sialosyrinx siam siamang siamese sian sib sibbaldus sibbed sibbens sibber sibboleth siberia siberian siberic siberite sibilance sibilancy sibilant sibilants sibilate sibilatingly sibilator sibility sibilus siblings sibrede sibship sibyl sibylism sibylline sibyllist sic sicambri sicana sicani sicarian sicarius sicca siccaneous siccant siccation siccative siccity sich sicilian siciliana sicilianism sicilica sicilicum sicily sicinnian sick sicken sickened sickener sickening sickeningly sickens sicker sickerness sickhearted sickish sickishly sickishness sickle sicklebill sicklemia sicklemic sickler sickles sickless sickleweed sicklied sickliest sicklily sickly sickness sicknessproof sickroom sicsac sicula sicular siculi sicyonian sicyonic sida sidalcea sidder siddha siddhartha siddhi siddur side sidearm sideband sideboard sideboards sidebone sidebones sideburns sidecar sidecarist sided sidedness sideflash sidehead sidehill sidekick sidekicker sidelang sideless sidelight sideline sidelined sidelings sidelingwise sidelong sideman sidepiece sider sideral sidereal siderealize sidereally siderean siderin siderite sideritic sideritis siderognost siderographical siderographist siderolite sideromancy sideromelane sideronatrite sideroscope siderose siderosis siderostat siderous sideroxylon sidership siderurgical sides sideshow sideslip sidesplitting sidesplittingly sidespring sidestep sidestepping sidestroke sidesway sidetrack sidetracked sidewalk sidewalks sidewall sideward sidewards sideway sideways sidewinder sidewindows sidewipe sidewiper sidewise sidi siding sidings sidle sidled sidling sidlingly sidney sidrach sids sidth sidy sie siecle siecles siege siegecraft siegel siegenite sieger sieges siegework siegfried sieglinda siegmund siemens siempre siena sienese sienna sier siering sierozem sierra sierran sierras sies siesta siestaland sieur sieva sieve sieveful sievelike siever sievings sievy sif sifac sifaka sifatite siffilate siffle sifflement sift siftage sifted sifters sifteth sifting siftings sifts sig siganidae siganus sigatoka sigaultian sigger sigh sighed sigher sighest sighful sighfully sighing sighingly sighingness sighings sighless sighs sight sighted sightedness sighten sightening sightful sightfulness sighthole sighting sightless sightlier sightliest sightliness sightly sightproof sights sightseeing sightseer sightseers sightworthiness sightworthy sigilative sigillariaceous sigillarian sigillarid sigillarioid sigillarist sigillary sigillate sigillographer sigillographical sigla siglarian siglos sigma sigmaspire sigmatic sigmation sigmatism sigmodont sigmodontes sigmoid sigmoidal sigmoidally sigmoidectomy sigmoiditis sigmoidopexy sigmoidoproctostomy sigmoidorectostomy sigmoidoscope sigmund sign signa signable signal signaled signalee signaler signalese signaletic signaletics signaling signalise signalised signalism signalize signalized signalled signalling signally signalman signalment signals signary signatary signate signation signator signatory signature signatures signaturist signboard signboards signe signed signer signers signet signifer significance significancy significant significantly significate signification significations significatist significatively significativeness significator significatory significatrix significavit significian signified signifier signifies signifieth signify signifying signing signior signis signman signo signora signorina signorino signpost signs signum signwriter sigrid sikar sikerness siket sikh sikhara sikhra sikinnis sikkimese sikorsky siksika silage silane silas silber silbergroschen sile silen silenales silence silenced silencer silences silencing silency silene silenic silent silential silentiary silentious silentish silently silentness silenus silesia silesian siletz silexite silhouette silhouetted silhouettes silhouettist silica silicam silicane silicate silicates silication silicea silicean siliceofelspathic siliceofluoric siliceous silicic silicide siliciferous silicified silicifluoric silicifluoride silicify siliciophite silicious siliciuretted silicle silico silicoaluminate silicoarsenide silicocalcareous silicoethane silicoflagellata silicoflagellatae silicofluoride silicohydrocarbon silicoidea silicomanganese silicomethane silicon silicone siliconize silicopropane silicosis silicospongiae silicotalcose silicotic silicotungstic silicular siliculose siliculosus siliculous silicyl silipan siliquaceous siliquae siliquaria siliquariidae silique siliquiferous siliquiform siliquous silk silked silken silker silkflower silkgrower silkiness silklike silkman silkness silks silksman silkweed silkwood silkworks silkworm silkworms silky sill sillabub sillaginidae sillago sillandar siller sillery silliest sillikin sillily silliness sillinesses sillock sillographer sillographist sillometer sillon sills silly sillyish silo silos silpha silphid silphidae silphium silt siltage siltation silted siltlike silty silures silurian siluric silurid siluridae siluridan siluroid siluroidei silurus silva silvan silvanity silvanus silvarumque silvendy silver silverberry silverboom silvered silverer silverfish silverhead silverily silveriness silvering silverite silverizer silverleaf silverlike silverling silverly silverman silvern silverpoint silverrod silvers silverside silversides silverskin silversmith silversmithing silverspot silvertip silvertop silvervine silverware silverwing silverwork silverworker silvery silvia silvics silvicultural silviculturally silviculture silviculturist silvius sily silybum silyl sim sima simaba simal simar simarouba simaroubaceae simball simbil simblot simblum sime simeon simeonism simeonite simethicone simetite simia simian simianity simiesque simiidae similar similarities similarity similarly similative simile similes similimum similitude similitudes similitudinize simility similize similor simious simla simlin simling simmer simmered simmering simmeringly simmon simmons simnelwise simoleon simoniac simoniacal simoniacally simonian simonianism simonious simonist simons simonson simony simool simoom simoon simous simp simpatico simpaties simpered simperer simpering simpers simple simplectic simplehearted simpleheartedly simpleheartedness simplement simpleminded simpleness simpler simples simplest simpleton simpletonian simpletonianism simpletonic simpletonish simpletonism simpletons simplex simplexity simplicial simplicident simplicidentate simplicity simplicize simplification simplificative simplificator simplified simplifiedly simplifier simplifies simplify simplifying simplism simplist simplistic simply simsim simul simulacra simulacre simulacrize simulant simulate simulated simulates simulating simulation simulative simulator simulatory simulcast simuler simuliidae simulioid simulium simultaneity simultaneous simultaneously simus sin sina sinae sinaean sinaic sinaitic sinal sinalbin sinamay sinamine sinapate sinapic sinapine sinapinic sinapis sinapize sinapoline sinarchist sinarquist sinarquista sincaline since sincere sincerely sincereness sincerest sincerity sinciput sinclair sind sindle sindoc sindon sindry sine sinecural sinecure sinecures sinecureship sinecurist sinensis sines sinetifik sinew sinewiness sinewless sinewous sinews sinewy sinfonia sinfonie sinful sinfully sinfulness sing singability singable singally singapore singarip singe singed singeing singeingly singer singers singeth singfo singh singhalese singillatim singing singingly single singlebar singled singleexception singlehanded singlehandedly singlehandedness singlehearted singleheartedness singleminded singleness singler singles singlestick singlesticker singlet singleton singletree singling singlings singly singpho sings singsing singsong singsongy singstress singular singularism singularist singularite singularities singularity singularization singularize singularly singult singultous singultus sinhalese sinian sinic sinicism sinicization sinicize sinico sinification sinigrinase sinigroside sinisian sinism sinister sinisterly sinisterwise sinistrad sinistral sinistrality sinistrally sinistration sinistrin sinistro sinistrocular sinistrodextral sinistrogyration sinistrogyric sinistromanual sinistrorsally sinistrously sinistruous sinite sinitic sink sinkable sinkage sinker sinkerless sinkfield sinkhole sinking sinkiuse sinklike sinks sinkstone sinky sinless sinlessly sinlessness sinlike sinnable sinnableness sinned sinner sinneress sinners sinneth sinning sinningia sinningly sino sinoatrial sinoauricular sinodo sinogram sinoidal sinolog sinologist sinologue sinology sinomenine sinonism sinophilism sinopic sinople sinrle sins sinse sinsiga sinsring sinsyne sint sinuately sinuation sinuatocontorted sinuatodentate sinuatodentated sinuatopinnatifid sinuatoserrated sinuatrial sinuauricular sinuitis sinuose sinuosely sinuosities sinuosity sinuous sinuously sinuousness sinupallia sinupallial sinupallialia sinupalliate sinus sinuses sinusitis sinuslike sinusoidal sinusoidally sinuventricular sinward siol sion sional sionally sionate sions siouan sip sipaller sipe siper siphoid siphon siphonaceous siphonal siphonales siphonaptera siphonapterous siphonaria siphonariid siphonata siphonate siphoneae siphonet siphonia siphonial siphonic siphonifera siphoniferous siphoniform siphonless siphonlike siphonobranchiata siphonobranchiate siphonocladiales siphonogam siphonogama siphonogamous siphonoglyph siphonoglyphe siphonognathid siphonognathidae siphonognathous siphonognathus siphonophore siphonophorous siphonoplax siphonopore siphonorhine siphonostelic siphonostoma siphonostome siphonostomous siphons siphonula siphorhinal siphuncle siphuncled siphunculated sipibo sipid siping sipling sipped sipper sippet sipping sippingly sips sipunculacea sipunculacean sipunculid sipunculida sipunculoid sipunculoidea sipylite sir sirdar sirdars sirdarship sire sired siredon sireless siren sirenia sirenic sirenically sirening sirenize sirenlike sirenoidea sirenoidei sirens sireny sires sirgang sirian sirianian siriasis siricid siricidae siricoidea siriometer sirione sirius sirkeer sirki sirloin sirmian sirmuellera sirname siroc sirocco siroccoishly sirpea sirple sirpoon sirrah sirree sirship siruaballi sirup siruper sis sisal sise siserara siserskite sisham sisi siskin sisseton sissiness sissoo sissy sissyism sist sister sisterhood sisterin sisterize sisterless sisterlike sisterliness sisterly sistern sisters sistibly sistine sistle sistrurus sisymbrium sisyphean sisyphian sisyphism sisyphist sisyphus sisyrinchium sit sita sitao sitar sitatunga site sites sitfast sith sithe sithence sithic sitient siting sitiomania sition sitis sitka sitkan sitology sitophilus sitophobia sitophobic sitosterin sits sitta sitten sitter sitters sittest sitteth sittinae sitting sittings sittringy sittyated situ situal situate situated situation situations situla situlae situs sitz sium siurounding siusi siva sivaism sivaist sivaistic sivaite sivan sivathere sivatheriidae sivatheriinae sivatherioid sivatherium sive siver sivvens siwash six sixe sixer sixes sixfold sixgun sixhaend sixhynde sixpence sixpences sixpenny sixpennyworth sixpense sixscore sixsome sixte sixteen sixteener sixteenfold sixteenmo sixteenth sixteenthly sixth sixthet sixths sixties sixtieth sixtus sixty sixtyfold sixtypenny sizable sizableness sizably sizal sizar sizarship size sized sizeman sizes siziness sizing sizz sizzing sizzle sizzled sizzling sizzlingly sjambok sjogren sk skaddle skaff skag skaillie skair skaitbird skalawag skaldship skance skanda skandhas skantelinge skase skasely skat skate skateable skateboard skated skater skaters skates skatikas skatiku skating skatist skatosine skatoxyl skeanockle skedaddle skedaddler skedge skedgewith skedlock skeel skeely skeer skeered skeesicks skeezix skeg skeif skeigh skein skeins skeipp skel skelderdrake skeldrake skeletal skeletogeny skeletomuscular skeleton skeletoned skeletonian skeletonic skeletonization skeletonizer skeletonless skeletons skelf skelgoose skell skellat skellington skellum skelly skelp skelper skelpin skelping skelter skeltonian skeltonic skeltonics skemmel sken skene skeo skeough skep skeppist skeppund skeptic skeptical skeptically skepticalness skepticism skepticize sker skere skerret skerrick sketch sketchbook sketched sketchee sketcher sketches sketchily sketchiness sketching sketchingly sketchist sketchlike sketchpad sketchy skete sketiotai skeuomorphic skew skewback skewbacked skewbald skewer skewered skewerwood skewings skewl skewness skewwhiff skewy skey skeyting ski skiagraph skiagrapher skiagraphic skiagraphical skiagraphically skiameter skiametry skiascopy skibby skibslast skid skidded skidder skidi skids skiepper skier skies skiff skiffling skiffs skift skiing skijore skijorer skil skildfel skilfish skilful skilfull skilfully skill skillagalee skilled skillenton skillentons skillessness skillet skillful skillfully skilligalee skilling skillion skills skilly skilpot skim skimback skimmed skimmer skimmerton skimmia skimming skimmingly skimmington skimmity skimpily skimping skimpingly skimpy skims skin skinbound skindive skinflint skinflinty skinful skink skinker skinking skinless skinlike skinne skinned skinner skinnies skinniness skinning skinny skins skintight skiograph skip skipbrain skipetar skipjack skipman skippable skipped skippel skipper skippered skippership skippery skippet skippeth skipping skippingly skipple skippund skippy skips skiptail skirlcock skirling skirmish skirmished skirmishers skirmishes skirmishing skirp skirreh skirret skirt skirtboard skirted skirting skirtingly skirtless skirts skirty skirwhit skirwort skit skite skiter skither skittagetan skittish skittishly skittle skittled skittler skittles skitty skittyboot skiv skive skiver skiverwood skiving skivvies skivvy sklent skleropelite skoal skodaic skoinolon skokiaan skokomish skomerite skoo skopein skopets skoptsy skraeling skraigh skrimshander skrupul skua skulduggery skulk skulker skulking skulkingly skulks skull skullbanker skullcap skullduggery skulled skullfish skullforms skullful skulls skully skulp skun skunk skunkbill skunkbush skunkery skunkhead skunkish skunklet skunks skunktop skunky skupshtina skurrying skuse skutterudite sky skyar skybal skyblue skycap skycraft skye skyer skyey skyful skyjack skylark skylarker skylarking skylarks skyless skylight skylights skylike skyline skylines skylook skyman skyphoi skyphos skyplast skyre skyrgaliard skyrocket skyrockety skysail skyscape skyscraping skyward skywards skywave skyway skywriting sla slab slabbing slabby slabman slabness slabs slabstone slack slacked slacken slackened slackener slackening slackens slacker slackerism slacking slackingly slackly slackness slacks slad slade slae slag slaggability slaggable slagger slagging slagless slagman slagten slain slaister slait slake slakeable slaked slakes slaking slaky slalom slam slammakin slammed slammerkin slamming slammock slammocking slammocky slamp slampant slams slander slandered slanderer slanderers slanderful slanderfully slandering slanderingly slanderous slanderously slanderproof slanders slang slanged slangily slangish slangishly slangkop slangs slanguage slangy slank slant slanted slantindicular slantindicularly slanting slantingly slantly slants slantways slantwise slap slapdash slape slaphappy slapjack slapped slapping slaps slapstick slapsticky slare slart slarth slash slashed slasher slashers slashes slashing slashingly slat slate slated slatemaker slatemaking slaters slates slateworks slateyard slath slather slathers slatify slatiness slatish slats slatted slatter slattern slatternish slatternliness slatternly slatternness slattery slatting slaty slaughter slaughtered slaughterhouse slaughterhouses slaughtering slaughteringly slaughterman slaughterously slaughters slaughteryard slaum slavdom slave slaveborn slaved slavehold slaveholder slaveholders slaveholding slavehunters slaveland slaveless slavelet slavelike slaveling slaveman slavemaster slavemasters slaveowner slavepen slaver slavered slaverer slavering slavers slavery slaves slavewomen slavi slavian slavic slavicism slavicize slavification slavify slavikite slaving slavische slavish slavishly slavishness slavism slavist slavistic slavization slavize slavocracy slavocratic slavonian slavonic slavonically slavonicize slavonish slavonization slavonize slavophilism slaw slay slayer slayest slayeth slaying slays slazily sle sleathy sleave sleaved sleaziness sleazy sleb sleck sled sledded sledder sledding sledful sledge sledgehammer sledgeless sledges sledging sleds slee sleech sleek sleeken sleeker sleekly sleekness sleep sleep/wake sleeper sleepered sleepers sleepest sleepful sleepfulness sleepiest sleepify sleepily sleepiness sleeping sleepingly sleepless sleeplessly sleeplessness sleeplike sleepproof sleepry sleeps sleepwaker sleepwaking sleepwalk sleepwalker sleepward sleepwear sleepwort sleepy sleepyhead sleer sleet sleetiness sleeting sleetproof sleets sleety sleeve sleeved sleeveful sleeveless sleevelessness sleevelet sleevelike sleever sleeves sleigh sleighing sleighs sleight sleightful slendang slender slenderer slenderest slenderly slenderness slent slepez slept slete sleuth sleuthdog sleuthed sleuthhound sleuthing slew slewed slewer slewest slews sley sleyer slice sliceable sliced slices slich slicht slicing slick slicked slicken slickens slickenside slicker slickery slicking slickness slid slidable slidableness slidably slidage slidden slidders slide slideably slided slideman slideproof slides sliding slidingly slidingness slidometer slifter slight slighted slighter slightest slightily slightiness slighting slightingly slightish slightly slightness slights slily slim slime slimer slimier slimily sliminess slimly slimmer slimness slimpsy slimsy slimy sling slingball slinge slinger slingers slinging slings slingshot slingsman slingstone slink slinkily slinkiness slinking slinks slinkskin slinkweed slinky slip slipback slipboard slipcase slipcoach slipcoat slipe slipgibbet sliphorn sliphouse slipless slipman slipover slippage slipped slipper slippered slipperflower slipperier slipperily slipperiness slipperlike slippers slipperweed slipperwort slippery slippeth slippiness slipping slipproof sliprails slips slipsgod slipshod slipshoddiness slipshodness slipsloppism slipstep slipstream slipt sliptopped slipup slipway slish slit slite slither slithered slithering slithers slithery slithy slitless slitlike slits slitshell slittering slitting slitwise sliver sliverer sliverlike sliverproof slivers slives sliving slivovitz sloane sloanea slob slobber slobbered slobberer slobbering slobbery slobby slock slocken slodder slodge slodger sloe sloeberry sloetree slog slogan slogger slogging slogwood sloka sloke slommock slon slonk sloomy sloop sloopman sloops sloosh slop slopdash slope sloped slopely slopeness sloper slopes slopeways slopewise sloping slopingly slopingness slopmaker slopmaking slopped sloppery sloppily sloppiness slopping sloppy slops slopseller slopselling slopshop slopy slosh slosher sloshily sloshiness sloshing slot sloted sloth slothful slothfulness slothound slotted slotter slottery slotting slotwise slouch slouched sloucher slouchily slouchiness slouching slouchingly slouchy slough sloughed sloughiness sloughing sloughs sloughy sloush slovak slovakish sloven slovene slovened slovenish slovenliness slovenly slovintzi slow slowdown slowed slower slowest slowhearted slowheartedness slowhound slowing slowly slowmouthed slowness slowpoke slowrie slowworm sloyd slub slubber slubberdegullion slubberer slubbering slubberingly slubberly slubbery slubbing slubby sludder sluddery sludge sludged sludger slue slued sluer slug slugabed slugfest sluggard sluggarding sluggardliness sluggardly sluggardness sluggardry sluggards slugged slugger slugging sluggingly sluggish sluggishly sluggishness sluggy slugout slugs slugwood sluice sluiced sluicelike sluicer sluices sluiceway sluicing sluit slum slumber slumbered slumberer slumberers slumberful slumbering slumberless slumberous slumberously slumberproof slumbers slumbersome slumbery slumbrous slumdom slumgum slumland slumming slummy slump slumped slumproof slumpwork slumpy slums slung slungbody slunge slunk slunken slur slurbow slurred slurring slurry slush slusher slushily slushy slut slutch slutchy sluther sluthered sluthood slutter sluttery sluttishly sluttishness slutty sly slyboots slyly slyness slype sma smachrie smack smacked smackee smackful smacking smackingly smacks smaher smala smalcaldic small smallage smallclothes smallen smaller smallest smalley smallhearted smallholder smallish smallmouth smallmouthed smallness smallpox smalls smallsword smalltime smally smalm smalter smaltine smalts smaragdine smaragdite smaragdus smarmy smart smarted smarten smartened smarter smartest smarties smarting smartingly smartly smartness smartweed smarty smash smashable smashboard smashed smasher smashery smashes smashing smashingly smashment smatch smatter smatterer smattering smatteringly smatterings smaze smear smearcase smeared smearer smeariness smearing smears smeary smectic smectis smectymnuan smectymnuus smeddum smee smeek smeeky smeer smell smellable smellage smelled smellest smelleth smellfungi smelling smells smellsome smelly smelt smelter smelterman smeltery smelting smeltman smelts smeth smethe smeuse smew smich smicker smicket smiddum smidge smidgen smifligation smiggins smilacaceae smilacaceous smilaceae smilaceous smilax smile smileable smiled smileful smilefulness smileless smilelessness smilemaker smilemaking smileproof smiler smiles smilest smilet smiling smilingly smilingness smilodon smily smintheus sminthian sminthurid smirch smirched smircher smirches smirchless smiris smirk smirked smirker smirking smirkings smirkle smirkly smirky smirtle smit smitch smite smiter smites smiteth smith smithcraft smithery smithfield smithianism smithite smiths smithsonian smithsonite smithwork smithy smithydander smiting smitten smitting smock smocked smocker smockface smockfrock smockfrocked smockless smocks smog smoggy smokables smoke smokeable smokebox smoked smokefarthings smokehouse smokeless smokelessly smokelessness smokelike smoker smokers smokes smokescreen smokestack smokestacks smokestone smoketh smokewood smokily smokiness smoking smokish smoky smolder smoldered smoldering smolderingness smolt smoodge smoodger smoorich smoot smooth smoothable smoothback smoothbored smoothed smoothen smoother smoothest smoothify smoothing smoothingly smoothings smoothish smoothly smoothmouthed smoothness smoothpate smooths smorgasbord smote smotest smother smotherable smothered smotherer smotheriness smothering smotheringly smotherings smouch smouched smoucher smoulder smouldered smouldering smoulders smous smouser smucker smudge smudged smudgedly smudger smudgy smug smuggish smuggishly smuggishness smuggle smuggled smuggler smugglers smugglery smuggling smugism smugly smugness smuisty smur smurr smurry smuse smush smut smutchy smutproof smuts smutted smuttily smuttiness smutty smyrna smyrnaite smyrnean smyrniot smyrniote smyth smythe smytrie snabble snack snacking snackled snacks snaff snaffle snaffles snafu snag snagbush snagged snagging snaggletooth snaggy snagrel snags snail snaileater snailery snailfish snailflower snailish snailishly snails snaily snaith snake snakeberry snakebird snakebite snakefish snakeflower snakehead snakeholing snakelet snakelike snakeling snakeology snakepiece snakeproof snaker snakeroot snakes snakeship snakeskin snakestone snakewood snaking snakish snaky snap snapback snapbag snapdragon snapdragons snaper snaphance snaphead snapholder snapjack snapless snapped snapper snappeth snappiest snappily snappiness snapping snappingly snappish snappishly snappishness snappy snaps snapsack snapshot snapshots snapt snapweed snapwood snapy snare snared snarer snares snaring snarl snarled snarler snarling snarls snarly snatch snatchable snatched snatches snatching snatchingly snatchproof snavel snavvle snazzy snd snead sneak sneaked sneaker sneakers sneaking sneakingly sneakingness sneakishly sneaks sneaksby sneaky sneath sneathe sneb sneck sneckdraw sneckdrawing sneckdrawn snecket sneer sneered sneerful sneering sneeringly sneers sneery sneesh sneeshing sneest sneesty sneeze sneezed sneezeless sneezer sneezes sneezeweed sneezewood sneezing sneezy snell snelly snerp snew snib snibble snibbled snibbler snibel snicher snick snickdraw snickdrawing snicker snickered snickering snickeringly snickersnee snicket snickey snickle snide snied sniff sniffed sniffer sniffily sniffiness sniffing sniffingly sniffle sniffled sniffler sniffles sniffling sniffs snifter snifty snig snigger sniggerer sniggering sniggers sniggle snip snipe snipebill sniped snipefish snipelike sniper sniperscope snipey snipocracy snipped snipper snipperty snippet snippety snippiness snipping snippy snipsnapsnorum snirl snirt snithe snithy snivel sniveled sniveling snivelled snivelling snively snob snobber snobbery snobbing snobbish snobbishly snobdom snobocrat snobography snobologist snobs snobscat snocher snock snocker snod snodly snoek snoeking snog snoga snohomish snoke snood snooded snooding snook snooker snookered snoop snooped snooperscope snooping snoopy snoose snoot snootily snootiness snooty snoove snooze snoozer snooziness snoozle snoozy snop snoqualmie snoquamish snore snored snoreless snorer snorers snores snoring snoringly snork snorkel snorker snort snorted snorter snorting snortingly snortle snorts snorty snot snotter snottily snotty snout snouted snouter snoutish snoutless snoutlike snouts snouty snow snowball snowballs snowbell snowberg snowberry snowbird snowblink snowbound snowcap snowcapped snowclad snowcrystals snowdonian snowdrift snowdrifts snowdrop snowdrops snowed snower snowfall snowfields snowflakes snowflower snowfowl snowhouse snowiest snowily snowiness snowing snowish snowl snowland snowlike snowline snowman snowmen snowmobile snowplow snowproof snows snowscape snowshoe snowshoed snowshoeing snowshoer snowshoes snowslide snowslip snowstorm snowstorms snowworm snowy snozzle snub snubbable snubbed snubbee snubbeth snubbing snubbingly snubbings snubbishly snubbishness snubby snubproof snubs snudge snuff snuffbox snuffcolored snuffed snuffer snuffers snuffing snuffingly snuffle snuffled snuffler snuffles snuffling snufflingly snuffman snuffs snuffy snug snugged snugger snuggery snuggest snuggish snuggle snuggled snuggling snuggly snugify snugly snugness snup snupper snur snurl snurp snurt snyder snying so soak soakage soakaway soaked soaker soaking soakingly soakman soaks soaky soam soap soapberry soapbox soapboxer soapbubbly soapbush soaped soaper soapery soapfish soapiness soaplees soaplike soapmaker soapmaking soapmonger soaprock soaproot soaps soapstone soapsud soapsuddy soapsuds soapsudsy soapwood soapwort soapy soar soarability soarable soared soarer soaring soaringly soars soary sob sobbed sobbing sobbingly sobbings sobby sober sobered soberer soberest sobering soberingly soberize soberlike soberly soberness soberside sobful soboles sobralia sobralite sobranje sobre sobrevest sobriety sobriquet sobriquetical sobs socager soccer soccerist soccerite socht socia sociability sociable sociably social sociales socialism socialisme socialist socialistic socialists socialities sociality socialize socializer socializing socially sociation societally societarian societarianism societary societe societies societified societist societology society societyish societyless socii socinian socinianism socinianistic sociobiological sociocentric sociocrat sociocratic sociocultural sociodramatic socioeducational sociogenesis sociogeny sociography sociolatry sociolegal sociological sociologism sociologists sociologize sociologizer sociologizing sociology sociometric sociometry socionomic socionomics socionomy sociophagous sociopolitical socioreligious socios socius sock sockdolager socked socket socketed socketless sockets sockeye sockmaker socks socky socle socman soco socotrine socratean socrates socraticism socratism socratist socratize sod soda sodaclase sodaless sodalist sodality sodamide sodamides sodas sodawater sodbuster sodded sodden soddened soddenly soddenness soddite soddy sodic sodio sodioaluminic sodiocitrate sodioplatinic sodiosalicylate sodiotartrate sodium sodiun sodless sodoku sodom sodomite sodomitically sodomitish sodomy sods sodwork sody soe soecial soecific soekoe soever sofa sofane sofar sofas soffit sofia sofronia soft softball softbrained soften softened softener softeners softening softens softer softest softhead softheaded softheartedly softhorn softish softlier softling softly softness softspoken softwood softy soga sogdian sogdianese sogdianian soget soggarth soggendalite soggily sogginess sogging soggy soh sohn soignee soil soilage soiled soiling soilless soilproof soils soilure soily soins soir soiree soirees soires soit soja sojer sojourn sojourned sojourner sojourners sojourney sojourning sojournment soke sokeman sokemanry soken sokoki sokotri sol sola solace solaced solaceful solaceproof solacer solaces solacing solacious solaciously solaciousness solan solanaceous solanal solander solaneine solaneous solanine solanum solar solarised solarism solarist solaristic solaristically solarization solarize solarized solarometer solatia solatium solche sold soldado soldan soldanella soldanrie solde solder soldered solderer soldering solderless soldier soldierbird soldierbush soldiered soldierfish soldierhearted soldiering soldierlike soldierly soldierproof soldiers soldiership soldierwise soldierwood soldiery soldo sole solea soleas solecistic solecistical solecistically solecize soled soleidae soleiform soleil soleless solely solemn solemnest solemnify solemnities solemnitude solemnity solemnization solemnize solemnly solemnness solen solenaceous solenette solenial solenidae solenite solenitis solenium solenoconcha solenocyte solenodon solenodont solenodontidae solenogaster solenogastres solenoglyph solenoid solenoidal solenoidally solenopsis solenostele solenostelic solenostomid solenostomidae solenostomoid solenostomous solenostomus solentine solera solerent soles soleus solfataric soli soliative solicit solicitation solicitationism solicitations solicited soliciter soliciting solicitor solicitors solicitorship solicitous solicitously solicitousness solicitress solicits solicitude solicitudes solicitus solid solidarily solidarism solidarist solidaristic solidarity solidarize solidary solidate solider solides solidest solidfication solidi solidifiability solidifiable solidifiableness solidification solidified solidifier solidifies solidiform solidify solidifying solidish solidism solidist solidistic solidity solidly solids solidum solidungula solidus solifidian solifidianism solifluctional soliform solifugae solifugid soliloquacious soliloquies soliloquise soliloquium soliloquize soliloquized soliloquizer soliloquizing soliloquy solilunar solim solio soliped solipedal solipedous solipsism solipsist solipsistic solis solitaire solitaria solitarian solitarily solitariness solitary soliterraneous solitude solitudes solitudinarian solitudinous solivagant solivagous sollar sollen solliciter sollte solmization solo solodization solodize soloecophanes soloist solomonian solomonical solomonitic solonchak solonetz solonetzic solonetzicity solonic solonist solos soloth solotink solpugid solpugida solpugidea solstice solsticion solstitial solstitially solubilities solubility solubilization soluble solubleness solubly solum solute solutes solution solutioner solutionist solutions solutize solutizer solvability solvable solvate solvation solve solved solvement solvent solvently solventproof solvents solver solvers solves solving solvolytic solyma solymaean soma somacule somal somali somaplasm somaschian somasthenia somata somatasthenia somateria somatic somatically somaticosplanchnic somaticovisceral somatics somatism somatiu somatization somatocystic somatogenetic somatogenic somatognosis somatognostic somatologic somatological somatology somatomic somatophytic somatoplasm somatopleural somatopleure somatopleuric somatopsychic somatosplanchnic somatotonia somatotonic somatotropic somatotropically somatotype somatotyper somatotypy somatous somber somberish somberly sombre sombreness sombrerite sombrero sombreroed sombreros sombrous sombrousness some somebody somebody'll someday somedeal somegate somehow someone somepains somepart someplace somer somers somersault somersaults somerset somersetian somerville somesthesia somesthesis somesthetic something somethingness somethings somethun sometime sometimes sometimesdid someting someuhat someway someways somewhat somewhatly somewhatness somewhen somewhence somewhere somewheres somewhile somewhither somewhy sominex somites sommat sommelier sommerfeld sommes sommit somnambulance somnambulancy somnambulant somnambulate somnambulation somnambulator somnambule somnambulency somnambulic somnambulically somnambulism somnambulist somnambulistic somnambulists somnambulous somniferously somnifuge somniloquence somniloquent somniloquism somniloquous somniosus somnipathist somnipathy somnivolency somnivolent somnolence somnolent somnolently somnolescent somnolism somnolize somnorific somnus sompin sompne sompner son sonable sonance sonancy sonant sonantic sonantized sonar sonata sonatas sonatina sonchus sond sondation sondeli sonderbund sondergotter sondes sondylomorum soneri song songbag songbird songbirds songbook songbooks songcraft songe songful songfully songfulness songhai songland songle songless songlessly songlessness songlet songlike songman songo songoi songs songster songsters songstress songwright sonhood sonia sonic soniferous sonification soniou sonk sonless sonlikeness sonly sonne sonneratia sonneratiaceae sonneratiaceous sonnet sonnetary sonneteer sonneteeress sonneteers sonnetist sonnets sonnetwise sonnikins sonny sonobuoy sonogram sonoma sonometer sonora sonoran sonorant sonorescence sonorescent sonoric sonoriferous sonoriferously sonorific sonority sonorosity sonorous sonorously sonorousness sons sonship sonsy sont sontag sony soo sooke sool sooloos soon sooner soonest soonly soopl soopler soorah soorawn soord soot sooter sooterkin sooth soothe soothed soother soothes soothing soothingly soothingness soothings soothly soothsay soothsayer soothsayers soothsayership soothsaying sootily sootiness sooty sootylike sop soph sopheric sopherim sophia sophic sophical sophically sophism sophisms sophist sophister sophistic sophistical sophistically sophisticalness sophisticant sophisticate sophisticated sophistication sophisticator sophisticism sophistries sophistry sophists sophoclean sophocles sophomore sophomoric sophomorical sophronia sophronize sophy sopite soporiferous soporiferously soporiferousness soporific soporna soporose sopped sopper soppiness sopping soppy sopra soprani sopranist soprano sops sorabian sorage sorb sorbaria sorbate sorbefacient sorbent sorbian sorbic sorbile sorbin sorbinose sorbish sorbite sorbitic sorbitize sorbitol sorbonic sorbonical sorbonist sorbose sorbus sorcerer sorceress sorceresses sorcerous sorcerously sorcery sorchin sorda sordariaceae sordello sordes sordid sordidity sordidly sordidness sordine sordino sordor sore soredia soredial sorediate sorediferous sorediform soredium soree sorefalcon sorefoot sorehawk sorehead soreheaded soreheadedness sorehearted sorely sorema soreness sorer sores sorest sorex sorgho sorghum sorgo sorgueuers sori soricid soricidae soricident soricine soricoid sorites soritical sorn sornare sorner sorning soroban soroptimist sororal sororate sororially sororibus sororicide sororities sororize sorosis sorosphere sorosporella sorption sorra sorrel sorrier sorriest sorrily sorriness sorrow sorrowed sorrower sorrowest sorrowful sorrowfull sorrowfully sorrowfulness sorrowing sorrowingly sorrowless sorrowproof sorrows sorrowy sorry sorryhearted sorryish sort sortably sortal sortant sorted sorter sortes sortie sorties sortilege sortileger sortilegic sortiment sorting sortly sorts sorty sorus sorva sory soshed soso sosoish soss sossle sot soter soteres soteriologic soteriological soteriology sothiac sothiacal sothic sothis sotho sotie sotik sotnia sots sottage sotter sotting sottish sottishly sottishness sotto sou sou'wester souari soubise soubrette soucar souchy souffert souffle souffleed souffrante sough soughing sought soughtest souhegan soul soulcake souled souletin souleve soulful soulfully soulfulness soulical soulish soulless soullessly soullessness soullike soulmass souls soulsaving soulsearing souly soum soumansite sound soundboard sounded sounder sounders soundest soundeth soundful soundheaded soundheadedness soundhearted soundheartednes sounding soundingly soundingness soundings soundless soundlessly soundlessness soundly soundness soundproof sounds soup soupbone soupcon souper soupir soupirs souple soupless soups soupspoon soupy sour sourbelly sourberry sourbread sourbush sourcake source sourcebook sourceful sources sourdough soured souredness souren sourer souring sourish sourishly sourishness sourjack sourling sourly sourness sours soursop sourwood soury sous sousa sousaphone sousaphonist souse soused souser sousing souter souterrain south southbound southcottian southdown southeast southeastern southeasternmost southeastward southeastwardly southeastwards southerland southerliness southerly southermost southern southerners southernism southernize southernly southernmost southernness southernwood southey southing southland southlander southmost southness southpaw southron southronie southward southwardly southwards southwest southwester southwesterly southwestern southwesterner southwestwardly souvenir souvenirs souvent souverain sov sovereign sovereigness sovereigns sovereignties sovereignty soviet sovietism sovietize sovkhose sovkhoz sovran sovranty sow sowable sowan sowans sowar sowarry sowback sowbacked sowbane sowbelly sowbread sowd sowe sowed sowel sowen sowens sower sowers soweth sowfoot sowing sowins sowl sowle sowlike sowlth sown sowne sows sowse sowt soxhlet soy soybean soyez soziale sozolic sozzly spa space spaceband spacecraft spaced spaceful spaceless spaceman spacer spaces spacing spaciosity spacious spaciously spaciousness spack spackle spad spade spaded spadefish spadefoot spadeful spadelike spademan spades spadesman spadger spadiceous spadices spadiciflorous spadiciform spadille spading spadix spadone spadrone spadroon spae spaebook spaeman spaewife spaewoman spaework spaghetti spagnuoli spagyric spagyrically spagyrist spahi spaid spaik spain spairge spake spakest spalacidae spalder spalding spale spall spallation spalleggiato spaller spalling spalpeen spalt span spandle spandrils spandy spane spanemia spanemy spang spanged spanghew spanging spangle spangled spangles spanglet spangly spaniardize spaniardo spaniel spaniolize spanish spanishize spanishly spank spanked spanker spankers spankily spanking spankingly spanless spann spanned spannel spanner spannerman spanning spanopnoea spans spantoon spar sparadrap sparagrass sparagus sparassodont sparaxis sparch spare spared sparedst spareless sparely sparer sparerib spareribs spares sparest spareth sparganiaceae sparganium sparganosis sparganum sparger sparhawk sparid sparing sparingly spark sparkback sparked sparker sparkiness sparking sparkingly sparkishly sparkle sparkled sparkles sparkless sparklet sparklike sparkling sparklingly sparklingness sparklings sparkman sparkplug sparkproof sparks sparlike sparling sparm sparmannia sparnacian sparpiece sparred sparring sparrow sparrowbill sparrowcide sparrowdom sparrowgrass sparrowish sparrowless sparrows sparrowtail sparrowtongue sparrowy sparry spars sparse sparsely sparsile sparsity spartacan spartacide spartacism spartan spartanburg spartanhood spartanic spartanically spartanischen spartanism spartanize spartanly sparteine sparth spartium spartle sparus spary spasm spasmatic spasmic spasmodic spasmodically spasmodicalness spasmodism spasmolytic spasmophilia spasmotin spasmotoxin spasmous spasms spastic spasticity spat spatalamancy spatangida spatangina spatangus spatchcock spatchcocked spatha spathaceous spathed spatheful spathic spathiflorae spathilae spathilla spathose spathyema spatial spatialization spatialize spatially spatiate spatiation spatilomancy spatiotemporal spatlum spats spatted spatter spatterdashed spattered spattering spatterproof spatters spattle spattlehoe spatula spatulate spatulation spatule spatulose spaulding spavied spaviet spavin spavindy spavined spawn spawner spawning spayad spayed spaying speak speakable speakableness speakably speake speakeasy speaker speakeress speakers speakership speakest speaketh speaking speakingly speakingness speakless speaklessly speaks spean spear speared spearer spearfish spearflower spearhead spearing spearman spearmen spearmint spearproof spears spearsman spearwood spec specchie spece special specialised specialism specialist specialistic specialists specialities speciality specialization specialize specialized specializer specializes specially specialness specials specialties specialty speciation specie speciell species speciestaler specific specifical specifically specificalness specificate specification specifications specificative specificity specificize specifics specified specifier specifies specify specifying specillum specimen specimenize specimens speciology speciosa speciosity specious speciously speciousness speck specked speckilating speckilation speckle specklebelly specklebreast speckled speckledbill speckledness speckless specklessly specklessness speckly speckproof specks specky specs spect spectable spectacle spectacled spectaclelike spectaclemaking spectacles spectacula spectacular spectacularism spectacularity spectacularly spectata spectator spectatordom spectatorial spectators spectatorship spectatress spectatrix spected specter specterlike specters spectin spectinomycin spector spectra spectral spectralism spectrality spectrally spectralness spectre spectred spectrelike spectres spectrobolometer spectrobolometric spectrochemical spectrocolorimetry spectroelectric spectrogram spectrographic spectrographically spectrography spectroheliogram spectroheliograph spectroheliographic spectrologically spectrology spectrometry spectromicroscope spectrophobia spectrophone spectrophonic spectrophotoelectric spectrophotometer spectrophotometric spectrophotometry spectropolariscope spectropyrheliometer spectropyrometer spectroradiometer spectroradiometric spectroradiometry spectroscope spectroscopic spectroscopically spectroscopy spectrotelescope spectrum spectry spects specular specularly speculate speculated speculates speculating speculation speculations speculatist speculative speculator speculators speculatory speculatrices speculatrix speculist speculum sped spedizione speech speecher speeches speechfulness speechification speechifier speechify speechifying speechless speechlessly speechlessness speechmaker speechmaking speechment speed speedaway speedboat speedboating speedboatman speeded speeder speedfully speedier speediest speedily speeding speedingly speedless speedly speedometer speeds speedster speedup speedy speel speelken speelless speer speering speerity speiskobalt speke spekilater spelaean speleologist spelk spell spellbind spellbinding spellbound spelldown spelled spellful spelling spellingly spellings spellmonger spells spellword spelt spelter speltz speluncar spelunk spelunker spelunking spen spence spencer spencerian spencerianism spencerite spend spendable spender spenders spendful spendible spending spendings spendless spends spendthrift spendthrifts spenerism spense spenserian spent speos sperable speramtozoon speranza spergularia sperity sperket sperling sperm sperma spermaceti spermacetilike spermaduct spermalist spermaphyta spermaphyte spermaphytic spermarium spermary spermashion spermatangium spermatheca spermatia spermatic spermatically spermatiferous spermatin spermatiogenous spermatiophore spermatism spermatist spermatitis spermatium spermatize spermatoblast spermatocele spermatocyst spermatocystic spermatocystitis spermatocytal spermatocyte spermatogeny spermatogonial spermatogonium spermatophoral spermatophore spermatophorous spermatophyta spermatoplasm spermatoplast spermatospore spermatova spermatovum spermatoxin spermatozoa spermatozoal spermatozoic spermatozoid spermatozoon spermaturia spermicides spermiducal spermiduct spermigerous spermine spermiogenesis spermism spermist spermoblast spermocarp spermoderm spermogenesis spermogenous spermogone spermogoniferous spermological spermologist spermology spermolysis spermophile spermophiline spermophore spermophorium spermophyta spermophyte spermophytic spermotheca spermotoxin spermous speronara speronaro sperrit sperrits sperry sperrylite spersed spessartite spetch spettacolo spettatore speuchan spew spewed spewing spews spex spf sphacel sphacelariaceae sphacelariaceous sphacelate sphacelated sphacelia sphaceloderma sphaceloma sphacelous sphacelus sphaeralcea sphaeraphides sphaerella sphaeriaceae sphaeriaceous sphaeriales sphaeridia sphaeridial sphaeridium sphaeriidae sphaerioidaceae sphaeristerium sphaerium sphaerobolaceae sphaerobolus sphaerocarpaceae sphaerocarpales sphaerocarpus sphaerocephala sphaerococcaceae sphaerococcaceous sphaerococcus sphaerolite sphaerolitic sphaeromidae sphaerophorus sphaeropsidaceae sphaerosiderite sphaerosome sphaerospore sphaerostilbe sphaerotheca sphaerotilus sphagion sphagnaceae sphagnaceous sphagnicolous sphagnologist sphagnology sphagnous sphagnum sphakiot sphalerite sphecid sphecidae spheges sphegid sphegidae sphegoidea sphendone sphene sphenethmoid sphenethmoidal sphenion sphenisci spheniscidae spheniscine spheniscomorph spheniscomorphae sphenobasilar sphenobasilic sphenocephalia sphenocephalic sphenocephalous sphenocephaly sphenodont sphenodontidae sphenoethmoid sphenofrontal sphenogram sphenographist sphenography sphenoid sphenoiditis sphenolith sphenomalar sphenomandibular sphenopalatine sphenoparietal sphenopetrosal sphenophorus sphenophyllaceae sphenophyllaceous sphenophyllales sphenophyllum sphenosquamosal sphenotemporal sphenotic sphenotripsy sphenovomerine sphenozygomatic spherable spheral spherality spheraster sphere sphereless spheres spheric spherical sphericality sphericalness sphericity sphericocylindrical sphericotetrahedral spherics spheroconic spherocrystal spherocytosis spherograph spheroid spheroidal spheroidic spheroidism spheroidity spheromere spherometer spheroquartic spherular spherulitic spherulitize sphex sphexide sphincter sphincteral sphincterate sphincterectomy sphincteric sphincteroscope sphincteroscopy sphincterotomy sphindid sphindidae sphindus sphingid sphingidae sphingiform sphingometer sphingomyelin sphingurinae sphinx sphinxianness sphoeroides sphragide sphragistic sphragistics sphygmia sphygmic sphygmographic sphygmography sphygmology sphygmomanometric sphygmomanometry sphygmometric sphygmophone sphygmophonic sphygmoscope sphygmus sphyrapicus sphyrnidae spical spicant spicaria spicate spicated spiccato spice spiceable spiceberry spicebush spiced spicehouse spiceland spiceless spicelike spicer spices spicewood spicier spiciferous spicigerous spicilege spick spickle spicknel spicose spicosity spicous spicousness spicular spiculate spiculated spiculation spicule spiculiform spiculose spiculous spiculum spicy spider spidered spiderish spiderless spiderlike spiderling spiderly spiders spiderweb spiderwork spiderwort spidery spied spiegeleisen spiel spielen spieler spielers spier spies spiffed spiffily spiffing spiffy spiflicated spiflication spig spigelia spight spignet spigot spik spike spikebill spiked spikefish spikehorn spikelet spikelets spikelike spikenard spiker spikes spiketail spikeweed spikewise spikily spiking spiky spile spiled spiler spiles spiling spilite spilitic spill spillage spilled spilling spillproof spills spillway spilogale spiloma spilosite spilt spilus spin spina spinacene spinaceous spinach spinachlike spinacia spinae spinage spinal spinales spinder spindle spindleage spindled spindleful spindlehead spindlelegs spindles spindleshanks spindletail spindleworm spindliness spindling spindly spindrift spine spinebone spined spineless spinelessness spinelet spinels spines spinescence spinescent spinet spinetail spinibulbar spinicarpous spinicerebellar spiniferous spinifex spiniform spinigerous spinigrade spininess spinipetal spinitis spink spinnable spinnaker spinner spinnerular spinnery spinney spinning spinningly spinocarpous spinocerebellar spinoff spinogalvanization spinoglenoid spinoneural spinoperipheral spinor spinose spinosely spinoseness spinosissimus spinosodenticulate spinosotubercular spinosotuberculate spinosus spinosympathetic spinotectal spinothalamic spinous spinousness spinozism spinozist spinozistic spins spinster spinsterhood spinsterish spinsterishly spinsterism spinsterly spinsterous spinsters spinstress spinthariscope spinthariscopic spintherism spinulation spinule spinulescent spinuliform spinulosa spinulose spinulosodentate spinulosodenticulate spinulosogranulate spinulososerrate spinulous spiny spionid spionidae spioniformia spira spiracle spiracula spiracular spiraculum spiraea spiraeaceae spiral spirale spiraliform spiralis spiralism spiralization spirally spiraloid spirals spiralwise spiran spirant spiranthy spirantic spirants spirated spire spirea spired spiregrass spireless spirelet spirepole spires spireward spirewise spiricle spirifer spirifera spiriferacea spiriferid spiriferidae spiriferous spirignathous spirilla spirillaceae spirillaceous spirillar spirillolysis spiring spirit spiritally spiritdom spirited spiritedly spirithood spiriting spiritize spiritleaf spiritless spiritlessness spiritlike spiritmonger spirits spiritsome spiritual spiritualised spiritualism spiritualist spiritualistic spirituality spiritualization spiritualize spiritualized spiritualizer spiritualizes spiritualizing spiritually spiritualness spiritualship spirituelle spirituosity spirituous spirituously spiritus spiritweed spirivalve spirket spirketing spiro spirobranchia spirobranchiate spirochaetaceae spirochaetal spirochaete spirochetemia spirochetes spirochetic spirocheticide spirogram spirograph spirographin spirogyra spiroid spiroloculine spirometric spirometrical spirometry spironema spironolactone spirophyton spiroscope spirosoma spirt spirted spirts spirtual spirula spirulate spiry spise spissated spit spital spitball spitballer spitchcock spite spiteful spitefully spitefulness spiteproof spites spitfire spitful spithamai spitpoison spits spitscocked spitstick spitted spitten spitter spitting spittle spittoon spittoons spitty spitz spitzenburg spitzkop spiv spivery spizella spizzerinctum splachnaceous splachnoid splacknuck splairge splanchnapophysial splanchnapophysis splanchnectopia splanchnemphraxis splanchnesthesia splanchnic splanchnoderm splanchnodiastasis splanchnodynia splanchnographer splanchnographical splanchnography splanchnolith splanchnological splanchnologist splanchnology splanchnomegalia splanchnomegaly splanchnopathy splanchnopleuric splanchnoptosia splanchnoptosis splanchnosclerosis splanchnoscopy splanchnoskeletal splanchnosomatic splanchnotomical splanchnotomy splash splashboard splashed splashes splashiness splashing splashingly splashproof splashy splat splatch splatcher splatchy splathering splatter splattered splatterer splatterfaced splattering splatterwork splay splayed splayer splayfoot splayfooted splaymouthed spleen spleenful spleenfully spleenish spleenishness spleenless spleeny spleetnew splenalgia splenatrophy splenauxe splendacious splendaciousness splendent splendently splender splendid splendidly splendidness splendiferous splendiferously splendiferousness splendor splendorous splendorproof splendors splendour splendourproof splendours splenectasis splenectomist splenectomize splenectomy splenectopia splenelcosis splenemia splenemphraxis spleneolus splenepatitis splenic splenical splenicterus spleniform splenitis splenitive splenium splenius splenocele splenocleisis splenocolic splenocyte splenodiagnosis splenodynia splenoid splenology splenolymph splenolymphatic splenolysin splenolysis splenoma splenomalacia splenomedullary splenomegalia splenomegaly splenomyelogenous splenoncus splenonephric splenopancreatic splenopathy splenopexia splenopexis splenopexy splenophrenic splenoptosia splenoptosis splenorrhagia splenorrhaphy splenotoxin splenulus splet spleuchan spliceable spliced splicer splinder splineway splint splintage splinted splinter splintered splintering splinterless splinternew splinterproof splinters splintery splinting splints splinty split splitmouth splitnew splits splitsaw splitten splitter splitters splitting splitworm splosh splotch splotched splotches splotchily splotchiness splotchy splurge splurgily spluther splutter spluttered splutterer spluttering spoach spode spodium spodogenic spodogenous spodomancy spodomantic spodumene spoffish spoffy spogel spoil spoilable spoilation spoiled spoiler spoilers spoilfive spoiling spoilless spoilment spoils spoilsman spoilsmonger spoilsport spoilt spokan spokane spoke spokeless spoken spokes spokeshave spokesman spokesmen spokesperson spokester spokeswoman spokewise spole spolia spoliary spoliate spoliated spoliation spoliator spolium spondaic spondaical spondaize spondean spondee spondiac spondiaceae spondulics spondylalgia spondylarthritis spondylarthrocace spondylic spondylid spondylidae spondylioid spondylium spondylizema spondylocace spondylocladium spondylodiagnosis spondylodidymia spondylodymus spondyloid spondylolisthesis spondylolisthetic spondylopathy spondyloschisis spondylosyndesis spondylotherapeutics spondylotherapist spondylotherapy spondylotomy spondylous spondylus spong sponge spongecake sponged spongeful spongeless spongelike spongeous spongeproof sponger sponges spongewood spongicolous spongiculture spongilline spongily spongin sponginblastic sponginess sponging spongioplasmic spongiose spongiosity spongiousness spongiozoa spongiozoon spongoblast spongoblastic spongology spongophore spongy sponsalia sponsibility sponsing sponsion sponsional sponsor sponsored sponsorial sponsors sponsorship sponspeck sponsus spontaneity spontaneou spontaneous spontaneously spontaneousness spontoon spoof spoofer spook spookdom spookery spookily spookish spookism spookist spookological spookology spooky spool spooler spoolful spoollike spoolwood spoon spoonbill spoondrift spooned spoonerism spooneyly spooneyness spooneys spoonflower spoonful spoonfulls spoonfuls spoonily spooniness spooning spoonism spoonless spoonlike spoonmaker spoonmaking spoons spoonsful spoonwood spoonyism spoor spoorer spoot sporabola sporades sporadial sporadic sporadically sporadicalness sporadicity sporadism sporadosiderite sporal sporange sporanges sporangia sporangial sporangiform sporangioid sporangiole sporangiolum sporangiophore sporangiospore sporangite sporangites sporangium sporation spore sporeforming sporeling spores sporicide sporidesm sporidia sporidiolum sporidium sporiferous sporification sporiparity sporiparous sporoblast sporobolus sporochnus sporocystic sporocyte sporodochia sporodochium sporoduct sporogenesis sporogenic sporogenous sporogeny sporogonial sporogonic sporogonium sporogony sporologist sporomycosis sporont sporophore sporophyll sporophyllary sporophyte sporophytes sporophytic sporosac sporostegium sporotrichotic sporous sporozoa sporozoic sporozoon sport sportance sported sporter sportful sportfully sportiness sporting sportingly sportive sportively sportiveness sportless sportly sports sportsman sportsmanlike sportsmanliness sportsmanship sportsmedicine sportsmen sportsome sportswear sportswrite sportswriter sportswriting sportula sportulae sporty sporular sporulate sporule sporuliferous sporuloid sposh sposhy sposo spot spotless spotlessly spotlessness spotlight spots spottable spotted spottedness spotting spottle spotty spousage spousal spousally spouse spousehood spouseless spouses spousy spout spouted spouter spoutiness spouting spoutless spoutlike spouts spouty sprachle sprack sprackish sprackle sprackly sprad spraddle sprag spragger sprague spraich sprain sprained spraining sprains spraints sprang sprangle sprank sprat sprats sprauchle sprawl sprawled sprawler sprawling sprawlingly sprawls spray sprayed sprayey sprayful sprayfully spraying spraylike sprayproof sprays spread spreaded spreadeth spreadhead spreading spreadingly spreadover spreads spready spreaghery spreath sprechend spree spreeuw spreng sprent spret sprew sprewl sprier spriest sprig sprigged sprigger spriggy sprightful sprightfulness sprightliness sprightly sprighty sprigs sprine spring springald springboards springbok springbuck springe springed springer springerle springes springfinger springfish springful springhaas springhalt springhead springhouse springily springiness springing springingly springless springlet springlike springly springmaking springs springtail springtide springtime springtrap springwood springworm springwort springy sprink sprinkle sprinkled sprinkleproof sprinkler sprinklered sprinkles sprinkling sprinklings sprinkly sprint sprinted sprinter sprinting sprints sprite sprites spritsail sprittail sproat sprocket sprogue sproil sprong sprose sprottle sprout sproutage sprouted sproutful sprouting sproutland sprouts spruce spruced sprucely spruceness spruces sprucification sprucify sprucing sprue sprug sprung sprunny sprunt spruntly spry spryly spryness spud spudder spudding spuds spuffle spuilyie spuke spume spumescence spumescent spumification spumiform spumoni spumose spun spung spunk spunkily spunkless spunky spur spurflower spurgall spurge spurgewort spuriae spuriosity spurious spuriousness spurius spurlet spurling spurmaker spurmoney spurn spurned spurner spurning spurns spurproof spurred spurrer spurrial spurring spurrite spurs spurt spurted spurter spurting spurtive spurtively spurtle spurts sput sputative sputnik sputter sputtered sputterer sputtering sputtery sputum sputumary sputumose spy spyboat spydom spyglass spying spyism spyproof spyship spytower squab squabash squabasher squabbed squabbish squabble squabbles squabbling squabblingly squabbly squabby squabs squad squadrate squadrism squadron squadrone squadroned squadrons squads squail squailer squalene squalid squalidae squalidity squalidness squaliform squall squalled squallery squallid squalling squallish squalls squally squalm squalodont squaloidei squalor squalors squalus squam squama squamae squamariaceae squamata squamate squamated squamatine squamation squamatogranulous squamatotuberculate squame squamella squamellate squamelliform squamiform squamify squamipennes squamipinnes squamocellular squamoid squamomastoid squamoparietal squamopetrosal squamosal squamose squamosely squamosodentated squamosoimbricated squamosoradiate squamosotemporal squamosozygomatic squamosphenoid squamosphenoidal squamous squamously squamousness squamscot squamulae squamulate squamule squamuliform squander squandered squanderer squandering squanderings squandermaniac squarable square squareage squared squaredly squareface squareflipper squarely squaremouth squareness squarer squares squarest squarewise squaring squarish squarishly squarrose squarrosely squarrous squarson squarsonry squash squashberry squashed squasher squashes squashily squashing squashy squat squatarole squatina squatinidae squatinoid squatinoidei squatly squatness squats squattage squatted squatter squatterarchy squatterdom squatterproof squatters squattily squattiness squatting squattish squattocracy squattocratic squatwise squaw squawberry squawbush squawdom squawfish squawflower squawk squawked squawkie squawking squawkingly squawks squawky squawmish squawroot squaws squawtits squawweed squaxon squeak squeaked squeaker squeakery squeakily squeakiness squeaking squeakings squeaklet squeakproof squeaks squeaky squeakyish squeal squealed squealer squealing squeals squeam squeamish squeamishness squeamous squeamy squeege squeegee squeezability squeezable squeeze squeezed squeezeman squeezer squeezes squeezing squelch squelched squelchily squelchiness squelching squelchingly squelchingness squelette squench squencher squeteague squib squibbish squiblet squibling squid squiddle squidge squidgereen squidgy squiffed squiffy squiggle squilgee squilgeer squill squillagee squillery squillid squillidae squilloid squilloidea squills squimmidge squin squinch squinny squinsy squint squinted squinter squinting squintingly squintness squints squinty squirage squiralty squire squirearchal squirearchical squirearchy squiredom squireen squireless squireling squirely squireocracy squires squireship squiress squirm squirmed squirminess squirming squirmingly squirmings squirms squirmy squirr squirrel squirreled squirrelfish squirrelian squirreline squirreling squirrelish squirrelled squirrellike squirrelproof squirrels squirreltail squirt squirted squirter squirtiness squirting squirtingly squirtish squirts squish squishy squit squitch squitchineal squitchy squitter squushy squyer sr srails sramana sri srteamed sruti ss sss sst ssu st st. staatsrat stab stabbed stabbing stabbingly stabbings stabboard stabile stabilitate stability stabilization stabilizator stabilized stabilizer stabilizers stabilizes stabilizing stabit stable stableboy stabled stableful stablekeeper stablelike stableman stablemen stableness stabler stables stablestand stableward stablewards stabling stablish stablished stably staboy stabs stabulate stabulation stabwort staccato stachydrin stachydrine stachyose stachys stachytarpheta stachyuraceous stachyurus stack stackage stacked stackencloud stacker stackfreed stackful stackgarth stackhousia stackhousiaceae stackhousiaceous stacking stackman stacks stackstand stackyard stacte stactometer stacy stadda staddles staddling stade stadholderate stadholdership stadhouse stadia stadic stadimeter stadion stadium stafette staff staffed staffelite staffing staffless stafford staffs stag stagbush stage stageable stagecoach stagecoaching stagecraft staged stagedom stageland stagelike stager stagers stagery stages stagestruck stagewise stageworthy stagewright staggard staggarth stagger staggerbush staggered staggerer staggering staggeringly staggerings staggers staggerwort staggery staggie staghead staghound staghounds staghunter staghunting stagiary stagily staginess staging stagiritic staglike stagmometer stagnance stagnancy stagnant stagnantly stagnantness stagnate stagnated stagnating stagnation stagnatory stagnature stags stagskin stagworm stagy stahl stahlhelmist stahlian stahlism staid staidly staidness stain stainability stainable stainableness stainably stained stainer stainers stainful stainierite staining stainless stainlessly stainlessness stainproof stains stair stairbeak stairbuilder staircase staircases stairhead stairless stairlike stairs stairway stairways stairwell stairwise stairy staith staithman staiver stake staked stakehead stakeholder stakes stakhanovism stakhanovite stalactic stalactical stalactiform stalactite stalactited stalactites stalactitic stalactitical stalactitically stalactitiform stalactitious stalag stalagma stalagmitic stalagmitical stalagmometer stale stalemate staleness stales stalin stalinism stalk stalkable stalked stalker stalkily stalkiness stalking stalkingly stalkless stalklet stalko stalks stalky stall stallboard stallenger stallership stalling stallion stallions stallment stalls stalwart stalwarth stalwartism stalwartize stalwartly stalwartness stalworth stambha stambouline stamen stamens stamin stamina staminate stamineal stamineous staminiferous staminigerous staminode staminodium staminody stammel stammer stammered stammerer stammering stammeringly stammeringness stammerings stammers stammerwort stamnos stamp stampage stamped stampede stampeded stampeder stampeding stampedingly stampery stamphead stampian stamping stample stampman stamps stampsman stampt stampweed stan stance stances stanch stancheled stancher stanchion stanchless stand standage standard standardbred standardizable standardize standardized standardizer standards standardwise standby stander standers standerwort standest standeth standfast standi standing stando standoff standoffish standoffishness standout standpat standpatism standpipe standpoint standpoints standpost stands standstill stane stanechat stanford stang stangeria stanhope stanhopea stanine stank stankie stanley stannane stannary stannator stannel stannery stannic stannide stanniferous stannite stannous stannum stannyl stanozolol stanton stanza stanzaed stanzaical stanzas stanze stap stapedectomy stapedial stapediform stapediovestibular stapedius stapelia staph staphisagria staphyle staphylea staphyleaceous staphyledema staphyline staphylinic staphylinidae staphylinideous staphylinoidea staphylinus staphylion staphylitis staphylococcal staphylococcic staphylodermatitis staphylodialysis staphyloedema staphylohemia staphylolysin staphylomatic staphylomycosis staphyloncus staphyloplastic staphyloplasty staphyloptosis staphyloraphic staphylorrhaphic staphylorrhaphy staphylosis staphylotome staphylotoxin staple stapled stapler staples stapleton stapling stapped star starblind starboard starch starchboard starched starchedly starchflower starchier starchily starchiness starchless starchlike starchly starchmaking starchman starchroot starchwort starchy starcraft stardom stardust stare stared starers stares starets starfish starfruit stargardt stargart stargazer stargazing staring staringly stark starken starkey starkly starkness starless starlessness starlet starlight starlike starling starlings starlit starlite starlitten starmonger starn staroobriadtsi starost starosty starr starred starrily starriness starring starringly starry stars starshake starshine starship starshoot starshot starstone starstroke start started starter startful startfulness starting startingly startings startle startled startles startling startlingly startlingness startlish startor starts startup starty starvation starve starveacre starved starvedly starveling starves starving starward starwise starworm starwort stashie stasidion stasimetric stasimon stasimorphy stasiphobia stassfurtite stat statable statal statant state statecraft stated statedly stateful statehood statehouse statehouses stateless statelich statelier stateliest statelily stateliness stately statement statements statemonger statequake stater stateroom staterooms states statesider statesman statesmanese statesmanlike statesmanly statesmanship statesmen statesmonger stateswoman statewide stathmos static statical statically statice staticproof statics stating station stational stationarily stationariness stationarity stationary stationed stationers stationery stationing stationmaster stations statiscope statist statistic statistical statistically statistician statisticians statisticize statistics statistology stative stato statoblast statolatry statolithic statometer statsrickets statu statuarist statuary statue statuecraft statued statueless statuelike statues statuesque statuesquely statuesqueness statuette statuettes stature statured statures status statutable statutably statute statutes statutorily statutory stauffer stauk staumer staunch staunchable staunchest staunchly staunchness staunton staup stauracin stauraxonia staurion staurolatry staurolite staurology stauromedusae stauropegion stauroscope stauroscopic stauroscopically staurotheca staurotide stauter stave staveable staved staveless staver stavers staverwort staves stavesacre stavewise stavewood staving stavrite staw staxis stay stayable stayed stayer stayeth staying staylace staylaces staylessness staymaker staymaking staynil stays staysail stayship stchi stds stead steadfast steadfastly steadfastness steadied steadier steadies steadiest steadily steadiness steading steadings steadman steady steadying steadyingly steak steaks steal stealable stealer stealers stealing stealingly steals stealth stealthful stealthfully stealthily stealthiness stealthless stealthlike stealthwise stealthy stealy steam steamboat steamboating steamboatman steamboatmen steamboats steamcar steamed steamer steamerful steamerless steamerload steamers steamily steaminess steaming steamless steamlike steampipe steamproof steamroll steams steamship steamships steamtight steamy stean steaning steapsin stearate stearic steariform stearine stearns stearolactone stearone stearoptene stearrhea stearyl steatin steatite steatitic steatocele steatogenous steatolysis steatolytic steatomatous steatopygia steatopygous steatornis steatorrhea stech stechados steckling steddle steddy stedfast stedfastly stedman steed steedless steeds steek steekkan steekkannen steel steele steeled steeler steelhead steeling steellike steelmaking steelproof steels steelware steelwork steelworker steelworks steely steemulating steenboc steenbock steenbok steenie steenth steep steepdown steeped steepen steepening steeper steepest steepgrass steeping steepish steeple steeplebush steeplechase steeplechasing steepled steepleless steeplelike steeples steeply steepness steeps steepweed steepwort steepy steer steerability steerable steerage steered steerer steering steerling steerman steermanship steers steersman steersmen steerswoman steeve steever steeving stefan steganogram steganographical steganographist steganophthalmata steganophthalmate steganophthalmatous steganophthalmia steganopod steganopodes steganopodous stegnosis stegocephalia stegocephalian stegocephalous stegodontine stegomus stegomyia stegosaurian stegosauroid stegosaurus steigh stein steinberg steinberger steinbock steinbok steiner steinerian steinful steinkirk steironema stela stelae stelar stele steles stell stella stellar stellaria stellary stellate stellated stellature stelleridean stellerine stelliform stelling stellionate stelliscript stellite stellular stem stemhead stemless stemlike stemmatous stemmed stemmery stemming stemmy stemona stemonaceae stemple stems stemson stemwards stemware sten stenar stench stenches stenchful stenching stenchion stencil stenciled stencilled stencilmaker stencilmaking stend steng stenobathic stenobragmatic stenocardia stenocardiac stenocarpus stenocephalous stenocephaly stenochrome stenochromy stenocoriasis stenog stenogastric stenogastry stenoglossa stenograph stenographer stenographers stenographic stenographical stenographically stenographist stenography stenohaline stenometer stenopelmatidae stenophile stenophyllous stenorhyncous stenosed stenosis stenosphere stenotaphrum stenotelegraphy stenothermal stenothorax stenotypic stenotypist stenotypy stent stenterer stentorian stentorianly stentorine stentorious stentoriousness stentoronic stentrel step stepaunt stepbairn stepbrother stepbrotherhood stepdam stepdames stepdaughter stepfather stepgrandchild stepgrandfather stepgrandson stephana stephane stephanial stephanic stephanie stephanite stephanoceros stephanokontae stephanome stephanos stephanotis stephen stephens stephenson stepladder stepless steplike stepminnie stepmother stepmotherhood stepmotherly stepnephew stepniece steppe stepped stepper steppes stepping steppingstone steprelationship steps stepsire stepsister stepson stept stepway stepwise stercobilin stercolin stercophagic stercoral stercoranism stercoremia stercorol sterculia sterculiaceous sterculiad stere sterelminthic sterelminthous stereobate stereochemic stereochemical stereochemically stereochemistry stereochromatic stereochromatically stereochrome stereochromically stereochromy stereocomparagraph stereoelectric stereofluoroscopic stereogoniometer stereograph stereographer stereographic stereographical stereography stereoisomer stereoisomeric stereoisomerical stereoisomeride stereoisomerism stereomatrix stereome stereomer stereomeric stereomerical stereometer stereometric stereometry stereomonoscope stereoneural stereophantascope stereophonic stereophony stereophotograph stereophotographic stereophotomicrograph stereopicture stereoplanigraph stereoplanula stereoplasm stereoplasma stereoplasmic stereoptician stereopticon stereoradiograph stereornithes stereornithic stereoroentgenogram stereoroentgenography stereoscope stereoscopic stereoscopism stereoscopist stereoscopy stereospondyli stereostatic stereostatics stereotactically stereotaxis stereotelemeter stereotelescope stereotomic stereotomist stereotropic stereotropism stereotype stereotyped stereotyper stereotypery stereotypes stereotypic stereotyping stereotypist stereotypographer stereotypy stereum sterhydraulic steric sterically steride sterigmatic sterile sterileness sterilisable sterility sterilizability sterilizable sterilization sterilize sterilized sterilizer sterilizes sterilizing sterin sterk sterlet sterling sterlingness stern sterna sternad sternal sternberg sterneber sternebra sternebrae sterner sternest sternforemost sterninae sternite sternitic sternly sternman sternness sterno sternoclavicular sternoclidomastoid sternocoracoid sternocostal sternofacial sternofacialis sternohumeral sternomastoid sternonuchal sternopericardial sternothere sternotherus sternotribe sternovertebral sternoxiphoid sternpost sterns sternson sternum sternutation sternutative sternutator sternutatory sternward sternway sternways sternworks stero sterocleidomastoideus sterrinck stert stertor stertorious stertoriously stertoriousness stertorous stertorously stertorousness sterve stesichorean stesses stet stetch stethograph stethokyrtograph stethometer stethometric stethometry stethoparalysis stethophone stethoscope stethoscopic stethoscopical stethoscopist stetson steuben stevedorage stevedore stevedoring stevens stevenson stevensonian stevensoniana stew steward stewardess stewardry stewards stewardship stewart stewartia stewartry stewed stewing stewpan stewpans stewpond stews stey sthenia sthenic sthenochire stib stibblerig stibial stibialism stibic stibiconite stibine stibious stibium stibonium stich sticharia sticharion stichic stichically stichidium stichometric stichometrical stichometry stichomythic stick stickability stickadore stickage sticked sticker stickers sticketh stickful stickily stickiness sticking stickit stickle stickleaf stickleback sticklers stickless sticklike stickling sticks stickseed sticksmanship sticktail sticktight stickup sticky sticta stictaceae stictidaceae stictiform stictis stid stidder stiddy sties stife stiff stiffen stiffened stiffener stiffening stiffens stiffer stiffest stiffhearted stifflike stiffly stiffnecked stiffness stifftail stifle stifled stifler stifles stifling stiflingly stigma stigmai stigmaria stigmarioid stigmasterol stigmata stigmatal stigmatic stigmatically stigmatiferous stigmatiform stigmatised stigmatism stigmatize stigmatized stigmatizer stigmatizes stigmatoid stigme stigmeology stigmonose stigonomancy stikine stilbella stilbene stilbestrol stilboestrol stile stileman stiles stiletto stilettos stiling still stillatitious stillatory stillbirth stilled stiller stillest stillhouse stilliform stilling stillish stillness stills stillstand stilly stilophora stilophoraceae stilt stiltbird stilted stilter stiltify stiltiness stiltish stiltlike stilton stilts stilty stime stimpart stimpert stimulability stimulable stimulancy stimulant stimulants stimulate stimulated stimulates stimulating stimulation stimulative stimulator stimulators stimulatory stimuli stimulogenous stimulus stimy stinately stinct sting stingaree stingareeing stingbull stingers stingeth stingfish stingily stinginess stinging stingingly stingless stingo stingproof stingray stings stingy stink stinkard stinkberry stinkbird stinkbush stinkdamp stinker stinking stinks stinkweed stinkwood stint stinted stintedly stintedness stinter stinting stints stinty stion stipe stiped stipellate stipend stipendiary stipendium stipendless stipends stipened stipes stipiform stipitiform stipiture stipiturus stipple stippled stippler stipply stipulable stipulaceous stipulae stipular stipulary stipulate stipulated stipulating stipulation stipulations stipulator stipulatory stipule stipules stipuliferous stir stire stirk stirless stirlessly stirlessness stirling stirpe stirpiculture stirpiculturist stirra stirrage stirred stirrer stirreth stirring stirrings stirrup stirrups stirs stitch stitchbird stitchdown stitched stitcher stitchery stitches stitching stitchlike stitchwort stite stith stithy stive stiver stizolobium stoa stoat stoater stob stocah stochastic stochastical stock stockade stockannet stockbreeding stockbridge stockbroker stockbrokers stockbroking stockcar stockdove stocked stocker stockfather stockfish stockholder stockholders stockholding stockholm stockily stockiness stockinet stocking stockinged stockinger stockingless stockings stockish stockishly stockishness stockjobber stockjobbery stockjobbing stockjudging stockkeeper stockkeeping stockless stocklike stockmaker stockmaking stockman stockmen stockpile stockpot stockproof stockrider stockriding stockroom stocks stocktaking stockun stockwhip stockwhips stockwork stocky stockyard stockyards stodge stodger stodgery stodgily stodgy stoechas stof stoff stoga stogie stogy stohwassers stoic stoical stoically stoicalness stoicharion stoichiological stoichiology stoichiometrical stoicism stokavci stokavski stoke stoked stokehold stokehole stoker stokerless stokers stokes stokesia stokesite stoking stolae stole stoled stolelike stolen stolenly stolenness stolenwise stolest stolid stolidity stolidly stolist stollen stolonate stoloniferous stoloniferously stolonlike stolzite stoma stomacace stomach stomachable stomachache stomacher stomachful stomachfulness stomachically stomachicness stomachless stomachs stomachy stomapod stomapoda stomata stomatal stomate stomatic stomatitis stomatocace stomatoda stomatodaeal stomatodaeum stomatode stomatodeum stomatodynia stomatogastric stomatograph stomatolalia stomatologic stomatological stomatologist stomatology stomatomalacia stomatomy stomatonecrosis stomatopathy stomatoplasty stomatopod stomatopoda stomatorrhagia stomatoscopy stomatotyphus stomodaea stomodaeal stomoxys stomp stomper stonable stond stone stoneable stonebird stonebiter stoneboat stonebow stonebrash stonechat stonecraft stonecrop stoned stonedamp stonefish stonegale stonegall stonehatch stonehead stonehearted stonehenge stonelayer stoneless stonelessness stonelike stoneman stonemarten stonemason stonemasonry stonen stoner stoneroot stones stoneseed stoneshot stonesmatch stonesmich stonesmitch stonewall stonewaller stonewally stoneware stoneweed stonewise stonewood stonework stoneworker stoneworks stonewort stoneyard stonied stoniest stonify stonily stoniness stoning stonish stonishment stony stonyhearted stonyheartedness stood stooded stooden stoof stooge stook stooker stool stoolball stoolie stools stoon stoop stooped stooper stooping stoopingly stoops stoot stoothing stop stopa stopback stopband stopblock stopcock stope stoper stopgap stophound stoping stopless stoplessness stoplight stopover stoppability stoppable stoppably stoppage stoppages stopped stopper stoppered stopperless stoppers stoppeth stopping stoppit stopple stopples stops stopt stopwatch stopwater stopwork storage storageholder store storebox stored storehouse storehouseman storehouses storekeeper storekeepers storekeeping storeman storemaster storer storeroom storerooms stores storeship storesman storewide storey storeys storge storial storiate storiation storica storici storie storied stories storiette storify storing storiological storiologist storiology stork storken storkish storklike storkling storks storkwise storm stormable stormberg stormbird stormbolt stormcock stormed stormer stormfully stormfulness stormiest stormily storminess storming stormingly stormless stormlessness stormlike storms stormwise stormy stornoway storting story storyboard storybook storybooks storyless storymaker storymonger storyteller storytelling storywise stosh stosston stot stoties stotterel stoun stound stoundmeal stoup stoupful stour stouring stourness stoury stoush stout stouter stoutest stouth stoutheartedness stoutish stoutly stoutness stoutwood stouty stovaine stove stovebrush stoveful stovehouse stoveless stovemaker stovemaking stoveman stoven stovepipe stover stoves stovewood stoving stow stowable stowage stowaway stowbord stowbordman stowce stowed stower stowing stownlins stows stoy stra strabism strabismal strabismally strabismic strabismometer strabismometry strabismus strabometer strabometry strackling stract strad stradametrical straddle straddleback straddlebug straddled straddleways straddlewise straddling straddlingly stradine stradiot stradivarius stradl stradld strafe strafer straffordian strag straggle straggled straggler stragglers straggliest straggling stragglingly straggly stragular stragulum straight straightabout straightaway straightedge straighten straightened straightener straightening straightens straighter straightest straightforward straightforwardly straightforwardness straightforwards straightish straightly straightness straighttail straightway straightways straightwise straik strain strainableness strainably strained strainer strainerman strainers straining strainless strainlessly strainproof strains strainslip strait straiten straitened straitlaced straitlier straitly straitness straits straitsman straitwork strake straked stram stramineous strammer stramp strand strandage stranded strander strandless strands strandward strang strange strangeling strangely strangeness stranger strangerdom strangerhood strangerlike strangers strangership strangerwise strangest strangle strangleable strangled stranglehold strangler stranglers strangles strangletare strangleweed strangling stranglingly strangulable strangulated strangulation strangulative stranner strap straphang straphead strapless straplike strapped strappen strapper strapping strapple straps strapwork strapwort strass strata stratagem stratagematic stratagematical stratagematist stratagemical stratagems stratal stratameter strategems strategetic strategi strategia strategic strategical strategically strategics strategies strategist strategists strategos strategus strategy stratford stratfordian strati straticulate straticulation stratification stratified stratify stratigraphic stratigraphical stratigraphique stratigraphist stratigraphy stratiomyiidae stratlin stratocracy stratocrat stratocratic stratocumulus stratographic stratographically stratonic stratonical stratopedarch stratoplane stratose stratospheric stratotrainer stratous stratum stratus strauchten stravage strave straw strawberries strawberry strawboard strawbreadth strawe strawer strawflower strawfork strawless strawlike strawman strawmote straws strawstack strawwalker strawwork strawworm strawy stray strayed strayeth straying strays stre streahte streak streaked streakedness streaker streakily streakiness streaking streaklike streaks streakwise streaky stream streamborne streamed streamer streamers streamhead streaminess streaming streamingly streamless streamlet streamlets streamlike streamlined streamliner streamling streams streamside streamway streamy streches streck streckly stree streel streeler streen street streetage streetcar streetcars streetful streetlamps streetlet streets streetwalk streetwalking streetward streetway streetwise streightened streightens streite streke strelitz strelitzi stremma streng strenghtens strenghthens strengite strength strengthen strengthened strengthener strengtheners strengtheneth strengthening strengtheningly strengthens strengthful strengthfulness strengthless strengthlessly strengthlessness strengths strengthy strenk strent strenuous strenuously strenuousness strep strepent strepera streperous strepitant strepitantly strepitous strepor strepsipteral strepsipterous strepsis strepsitene streptaster streptocarpus streptococcal streptococci streptococcus streptolysin streptomyces streptomycin streptoneura streptosepticemia streptothricin streptothrix streptozocin stress stressed stresser stressfully stressing stressless stressors stret stretch stretchable stretched stretcher stretchers stretches stretcheth stretchiness stretching stretchproof stretman strette stretti stretto strew strewed strewer strewing strewment strewn strews strey streyne stria striae strial striariaceae striata striate striated striations striatum striature striche strick stricken strickenly stricker strickle strickler strickless strict stricter strictest striction strictish strictly strictness stricture strictures strid stridden striddle stride strided strideleg stridelegs stridence stridency strident strider strides strideways stridhan stridhana striding stridlins stridor stridulant stridulate stridulation stridulator stridulatory stridulously stridulousness strife strifemaker strifemaking strifemonger strifeproof striga strigal strigate striges striggle strigidae strigiformes strigil strigilate strigilator strigiles strigillose strigilous strigine strigose strigovite strigulaceae strigulose strike strikeboat strikebound strikebreak strikebreaker strikebreakers strikebreaking strikeless strikeout striker strikers strikes striketh striking strikingly strind string stringcourse stringed stringencies stringency stringene stringent stringently stringer stringhalt stringhaltedness stringiness stringing stringless stringlike stringmaker stringmaking stringman strings stringsman stringth stringways stringy stringybark strinkle striolate striolet strip stripe striped stripes striping striplet stripling striplings stripped stripper stripping strippit strippler strips stript striptease strit strive strived striven striver strives striveth striving strivingly strivings strix stroam strobe strobic strobilaceous strobilae strobilate strobilation strobili strobiliform strobiline strobilization strobiloid strobilomyces strobilus stroboscope stroboscopic stroboscopical stroboscopy strockle stroddle strode stroganoff stroil stroke stroked stroker strokes stroking stroky stroll strolld strolled stroller strollers strolling strolls strom stromatic stromatiform stromatology stromatopora stromatoporidae stromatoporoid stromberg strombidae strombite strombolian strombuliferous strombuliform strombus strome stromming strone strong strongbark strongbrained stronger strongest strongheadedly strongheadedness stronghearted stronghold strongholds strongish stronglike strongly strongness strongroom strongylate strongyle strongylid strongylidae strongylidosis strongyloides strongylon strontia strontian strontianiferous strontianite strontium strooger strook strooken stroot strop strophaic strophanthus stropharia strophas strophe strophes strophical strophically strophiolate strophiolated strophiole strophoid strophomena strophosis strophotaxis stropper stroppings strornary stroth strounge strouthiocamel strouthocamelian strove strow strown stroy stroygood strub struck structural structuralism structuralist structuration structure structureless structurely structures structurist struggle struggled struggler strugglers struggles struggling strugglingly struldbrug struldbruggian struldbruggism strum struma strumae strumaticness strumectomy strumella strumiferous strumiprivic strumiprivous strumitis strummer strummers strumming strumose strumosus strumpell strumpet strumpetlike strumstrum strumulose strung strunt strut struthian struthiform struthio struthioid struthiomimus struthionidae struthioniform struthioniformes struthiopteris struthious struthonine struting struts strutted strutter strutting struttingly struvite strychnia strychnic strychnine strychninic strychninism strychninization strychninize strychnos strymon stuart stub stubachite stubb stubbed stubbedness stubber stubbiness stubbing stubble stubbled stubbles stubbleward stubbly stubborn stubborner stubbornest stubbornly stubbornness stubboy stubby stubchen stuber stuboy stubrunner stubs stucco stuccoed stuccoer stuccoworker stuccoyer stuck stuckling stucturelessness stud studded studder studdie studding studdingsails studdle studebaker student studentesses studenthood studentless studentry students studentship studentships studerite studfish studflower studhorse studiable studied studiedly studiedness studier studies studio studios studious studiously studite studium studs study studying studyol stue stuff stuffed stuffender stuffily stuffiness stuffing stuffs stuffy stuiver stull stultification stultified stultify stultifying stultiloquently stultiloquious stultloquent stum stumble stumblebum stumbled stumbler stumbles stumbling stumblingblock stumblingblocks stumblingly stumbly stumer stummer stummicks stummy stump stumpage stumped stumper stumpily stumpin stumping stumpless stumplike stumpling stumps stumpwise stumpy stun stundism stundist stung stunk stunkard stunned stunner stunning stunningly stunpoll stunsail stunsle stunt stunted stuntedness stunts stunty stupa stupe stupefacient stupefaction stupefactive stupefactiveness stupefied stupefiedness stupefier stupefies stupefy stupefying stupend stupendly stupendous stupendously stupendousness stupid stupider stupidest stupidhead stupidish stupidities stupidity stupidly stupidness stupids stupified stupor stuporose stuporous stupose stuprate stupteria stupulose sturdied sturdier sturdiest sturdily sturdiness sturdy sturge sturgeon sturine sturiones sturionine sturm sturmian sturnella sturniform sturninae sturnine sturnoid sturnus sturtan sturtin sturtion sturtite stut stutter stuttered stutterer stuttering stutteringly stutters stuttgart stuyvesant sty styca styceric stycerin stycerinol stychomythia styful styfziekte stygian stylar stylaster stylasteridae stylate style stylebook styled styledom stylelessness styles stylewort styli stylidiaceae stylidiaceous stylidium styliform styling stylish stylisher stylishly stylishness stylist stylistic stylistically stylitic stylitism stylization stylize stylizer stylo styloauricularis stylobate stylochus styloglossus stylogonidium stylographic stylographically stylography stylohyal stylohyoid stylohyoidean stylohyoideus styloid stylolite stylomandibular stylomastoid stylomaxillary stylommatophorous stylomyloid stylonurus stylopharyngeus stylopized stylopod stylopodium stylosanthes stylospore stylosporous stylotypite stylus stymie stymphalid stymphalides styphnate styphnic stypsis stypticness styracaceous styracin styrax styrene styrian styrofoam styrogallol styrol styrolene styrone styryl styrylic styward styx styxian sua suable suably suade sualocin suam suanitian suant suantly suasion suasively suasiveness suasory suavastika suave suavely suaveolent suavest suavify suaviloquence suavity sub subabbot subabdominal subability subabsolute subaccount subacetate subacid subacidness subacidulous subacrid subacromial subact subacuminate subadditive subadjacent subadjutor subadministration subadministrator subaduncate subaerate subaeration subaerial subaerially subaetheric subaffluent subagency subagent subah subahdar subahdary subahship subaid subalary subalate subalkaline suballiance subalmoner subalpine subaltern subalternant subalternate subalternating subalternation subalternity subalterns subanal subangled subangulated subantarctic subantichrist subantique subanun subapical subapparent subapprobation subaquean subaqueous subarachnoid subarachnoidal subarboraceous subarboreal subarch subarcuation subarea subareolar subareolet subarian subarmor subarrhation subartesian subarytenoid subascending subassemblage subassembly subassociation subastragalar subatom subattenuate subattenuated subattorney subaudible subaudition subauditionist subauditor subaural subaverage subaxillar subaxillary subbailie subbailiff subbailiwick subballast subband subbasal subbasement subbass subbeau subbias subbifid subbookkeeper subbourdon subbrachycephalic subbrachycephaly subbrachyskelic subbranch subbranched subbranchial subbreed subbrigadier subbromid subbronchial subbureau subcaecal subcalcareous subcalcarine subcaliber subcallosal subcampanulate subcancellate subcandid subcantor subcapsular subcaption subcarbureted subcarburetted subcardinal subcarinate subcase subcash subcashier subcasino subcast subcaste subcategory subcaudal subcaulescent subcelestial subcellar subchairman subchamberer subchancel subchanter subchapter subchaser subchela subchelate subchief subchordal subchorioid subchorioidal subchorionic subchoroid subcircuit subcision subcity subclamatores subclan subclass subclassify subclavate subclavia subclavian subclavicular subclavioaxillary subclaviojugular subclavius subclimate subclinical subclover subcollateral subcollector subcollegiate subcommander subcommendation subcommended subcommissary subcommissaryship subcommissioner subcommittee subcompensation subconcession subconformable subconical subconjunctively subconnect subconnivent subconscious subconsciously subconsciousness subconsideration subconstable subconstellation subconsul subcontained subcontest subcontiguous subcontinent subcontinued subcontinuous subcontract subcontracted subcontractor subcontraoctave subcontrarily subcontrol subconvolute subcool subcoracoid subcordate subcortex subcortical subcosta subcostal subcostalis subcranial subcreek subcrenate subcrepitant subcrepitation subcrescentic subcrest subcriminal subcrossing subcrureal subcrureus subcrust subcrustaceous subcrystalline subcuboidal subcultural subculture subcurate subcurator subcutaneous subcutaneously subcutaneousness subcutis subcyaneous subcyanide subcylindric subcylindrical subdatary subdeacon subdeaconess subdeacons subdeanery subdebutante subdecanal subdecimal subdecuple subdefinition subdelegate subdelegation subdeltoid subdeltoidal subdemonstrate subdenomination subdentate subdentated subdented subdenticulate subdeposit subdepot subdepressed subdeputy subderivative subdermal subdeterminant subdevil subdiaconate subdial subdiapente subdiaphragmatic subdichotomize subdichotomous subdichotomously subdichotomy subdie subdilated subdistich subdistichous subdistinguish subdistinguished subdita subdititious subdititiously subdivecious subdiversify subdivide subdivided subdivider subdividing subdividingly subdivine subdivisible subdivision subdivisional subdivisions subdivisive subdoctor subdolent subdolichocephaly subdolous subdolousness subdominant subdorsally subdouble subdrain subdrainage subdruid subduable subduableness subduably subduct subduction subdue subdued subduedness subduement subduer subdues subduing subduingly subduplicate subdural subecho subectodermal subedit subeditor subeffective subelection subelectron subelement subelliptic subelongate subencephalon subencephaltic subendorse subendothelial subendymal subengineer subentire subentry subepiglottic subepoch subequal subequality subequatorial subequilateral subequivalve suberane suberate suberiferous suberification suberiform suberin suberinization suberinize suberites suberitidae suberization suberone suberous subescheator subessential subetheric subexecutor subexternal subface subfactor subfactory subfalcate subfalcial subfamily subfascial subfastigiate subfebrile subfestive subfeu subfeudation subfeudatory subfibrous subfief subfigure subfix subflavor subflexuose subfloor subflora subflush subfocal subfoliar subforeman subform subformation subfoundation subfraction subframe subfrontal subfulgent subfumigation subfumose subfunctional subgalea subgape subgenera subgeneric subgenerical subgenerically subgenital subgenus subgeometric subgit subglabrous subglacial subglacially subglenoid subglobosely subglobular subglobulose subglossal subglossitis subglottic subgod subgrade subgranular subgrin subgroup subgular subgwely subgyre subhalid subhalide subhall subharmonic subhastation subhatchery subhead subheading subheadwaiter subhealth subhedral subhemispherical subherd subhero subhexagonal subhirsute subhorizontal subhouse subhumid subhyaloid subhymenial subhymenium subhyoidean subhypothesis subhysteria subicle subicteric subicular subiculum subidea subideal subiectivity subigitoque subimago subimbricate subincandescent subincise subincision subincomplete subindicate subindicative subindividual subinduce subinduced subinfer subinfeudate subinfeudation subinfeudatory subinflammation subinflammatory subingression subinguinal subinoculate subinsert subinspector subintelligitur subintent subintercessor subinternal subintestinal subintroduction subintroductory subinvoluted subinvolution subiodide subirrigate subirrigation subitane subitaneous subitem subito subiya subjacent subjacently subjack subject subjectable subjected subjectedly subjectibility subjectible subjectification subjecting subjection subjectional subjectist subjective subjectively subjectiveness subjectivist subjectivity subjectivoidealistic subjectlike subjectness subjects subjectship subjee subjicible subjoin subjoinder subjoined subjoint subjugal subjugate subjugated subjugation subjugator subjunct subjunctive subjunior subking sublabial sublacustrine sublanate sublanceolate sublapsary sublaryngeal sublate sublation subleader sublecturer sublegislation sublegislature sublenticular sublessor sublet sublethal sublettable subletter sublevaminous sublevate sublevation sublevel sublibrarian sublicense sublieutenancy sublieutenant sublighted sublimable sublimableness sublimate sublimated sublimation sublimational sublimationist sublimator sublime sublimed sublimely sublimer sublimes subliminal subliminally subliming sublimish sublimities sublimity sublimize sublineation sublingua sublinguae sublingual sublinguals sublinguate sublittoral sublong subloreal sublunar sublunary sublustrous subluxation submaid submakroskelic subman submania submanic submanor submarginal submarginally submarginate submargined submarine submariner submarines submarinism submarshal submaster submaxilla submaxillary submeaning submedial submedian submediant submediation submember submembranous submeningeal submental submerge submerged submergement submergence submergibility submergible submerging submersibility submersible submersion submetallic submetering submicron submicroscopic submiliary subminimal subminister submissible submission submissions submissive submissively submissiveness submissly submissness submit submiting submits submittance submitted submittedto submitter submitting submittingly submonition submontagne submontane submontanely submontaneous submortgage submotive submountain submucosa submucosal submucous submucronate submultiple submuriate submuscular submytilacea subnascent subnatural subnect subnervian subnitrate subnitrated subniveal subnivean subnote subnotochordal subnubilar subnucleus subnude subnumber subobscure subobtuse suboccipital subocean suboceanic suboctave suboctile suboctuple subocular suboesophageal suboffice subofficer subopaque subopercle subopercular subopposite suboptic suboptimal suboptimum suboral suborbicular suborbiculate suborbiculated suborbital suborbitar suborder subordinal subordinate subordinated subordinately subordinates subordinating subordinatingly subordination subordinationist subordinative suborganic suborn subornation suborning suboscines subovated suboverseer subovoid suboxidation subpagoda subpallial subpalmate subpanel subparagraph subpart subpartition subpartitioned subpartitionment subparty subpass subpassage subpastor subpattern subpectoral subpeduncular subpellucid subpeltate subpeltated subpentangular subpericardial subperiosteally subperitoneally subpermanently subperpendicular subpetiolar subpharyngeal subphosphate subphratry subphrenic subpial subpilose subpimp subplacenta subplant subpleural subplinth subplot subpoena subpolygonal subpool subpopulation subporphyritic subpostmaster subpostmastership subpostscript subpotency subpotent subpreceptor subpreceptorial subpredication subprefect subprefectorial subprefecture subpress subprimary subprior subprioress subproblem subproctor subprofessoriate subprofitable subprovince subprovincial subpubic subpulmonary subpulverizer subpunctuation subpurchaser subpurlin subputation subpyramidal subpyriform subquadrangular subquality subquestion subquinquefid subquintuple subradial subradiate subradical subradius subradular subrailway subrameal subramose subramous subreader subreason subrectangular subreference subregion subregional subreguli subregulus subrelation subreniform subrepand subrepent subreport subreption subreputable subresin subretinal subrhombic subrhomboid subrhomboidal subrident subridently subrision subrisive subrogate subrostral subruler subsacral subsale subsalicylate subsalt subsample subsartorial subsatirical subsaturated subsaturation subscapular subscapularis subscapulary subschedule subscheme subschool subscleral subscribe subscribed subscriber subscribers subscribership subscribes subscribing subscript subscription subscriptionist subscriptions subscriptive subscripture subscriver subsea subsecive subsecretarial subsecretary subsect subsecurity subsecute subsecutive subsegment subsemifusa subsemitone subsensation subsensible subsensuous subseptuple subsequenctly subsequency subsequent subsequential subsequentially subsequently subsequentness subseries subserosa subserous subserve subserved subserves subserviate subservience subserviency subservient subserviently subservientness subserving subsessile subset subseunentlv subsextuple subshaft subsheriff subshrub subshrubby subside subsided subsidence subsides subsidiarie subsidiarily subsidiariness subsidiary subsidies subsiding subsidist subsidizable subsidize subsidized subsidizer subsidizing subsidy subsill subsimilation subsimple subsist subsisted subsistence subsistency subsistent subsistential subsisting subsists subsizarship subsneer subsocial subsoil subsolid subsonic subsorter subspecialist subspecialize subspecialty subspecies subsphenoidal subsphere subspherically subspinous subspiral subspontaneous subsquadron substage substalagmitic substance substanceless substances substanch substandard substandardize substanlia substant substantia substantial substantialia substantialism substantialist substantiality substantially substantialness substantiam substantiate substantiated substantiates substantiating substantiative substantiator substantious substantival substantivally substantive substantively substantiveness substantives substantivity substantize substernal substitutable substitute substituted substituter substitutes substituting substitutingly substitution substitutional substitutionally substitutions substitutive substitutively substock substoreroom substract substratal substrate substrati substrative substrator substratose substratosphere substratospheric substratum substriate substruct substruction substructional substructure substructures substylar subsulfide subsulphate subsulphid subsulphide subsultive subsultorily subsultorious subsultory subsultus subsumable subsumed subsumes subsuming subsumption subsumptive subsurety subsyndicate subsynod subsynodical subsystem subtack subtacksman subtangent subtarget subtartarean subtectal subtegminal subtegulaneous subtemperate subtenancy subtend subtended subtends subtense subtepid subterbrutish subterconscious subtercutaneous subterfluent subterfluous subterfuge subterfuges subterhuman subternatural subterpose subterposition subterraiiean subterrane subterranean subterraneous subterraneously subterranity subterraqueous subterrene subterrestrial subterritorial subterritory subtersensual subtersensuous subtersuperlative subtertian subtext subthalamus subthoracic subtil subtile subtilely subtilem subtileness subtili subtilin subtilism subtilist subtilitate subtilize subtilized subtill subtillage subtilly subtilties subtilty subtitle subtitular subtle subtleness subtler subtlest subtleties subtlety subtly subtone subtonic subtorrid subtotem subtract subtracted subtracter subtracting subtraction subtractive subtrahend subtranslucent subtransverse subtrapezoidal subtreasurer subtreasury subtrench subtriangular subtriangulate subtribal subtribe subtribual subtrifid subtrihedral subtriplicate subtriplicated subtriquetrous subtrist subtrochanteric subtropic subtropical subtropics subtrousers subtrude subtruncate subtrunk subtunic subturbary subturriculate subtwined subtype subtypical subulate subulated subulicorn subumbellate subumbonal subumbral subumbrella subumbrellar subuncinate subunequal subungual subunguial subungulata subungulate subunit subuniverse suburb suburban suburbandom suburbanhood suburbanism suburbanite suburbanity suburbanization suburbanize suburbans suburbia suburbican suburbicarian suburbs subvaginal subvaluation subvarietal subvariety subvendee subvene subvention subventionary subventioned subventive subventral subventricose subvermiform subverse subversion subversive subversivism subvert subvertebral subverted subverter subvertical subvesicular subvestment subvicar subvirate subvisible subvitalized subvitreous subvocal subvola subwarden subwater subway subwealthy subweight subworkman subzonal subzygomatic succedanea succedaneous succedaneum succedent succeed succeedable succeeded succeeder succeeding succeedingly succeeds succenadeum succent succenturiate succes success successes successful successfull successfully successfulness succession successionist successionless successive successively successivity successless successlessly successlessness successor successoral successors succi succin succinamate succinamide succinanil succinate succinct succinctly succinctness succinctorium succinctory succinic succiniferous succinimide succinite succinosulphuric succinous succinyl succisa succise succivorous succor succorable succored succorer succorful succoring succorless succorrhea succors succory succotash succour succoured succoureth succourful succouring succours succuba succubae succube succubous succubus succulence succulency succulent succulentness succulous succumb succumbed succumbence succumbency succumbent succumber succumbing succumbs succursal succussation succussatory succussion succussive such suche suchlike suchness suchos suchpious suchwise sucinum sucivilized suck suckable suckabob suckage sucked sucken suckener sucker suckerel suckerfish suckerlike suckers suckfish suckhole sucking suckle suckled suckless suckling sucks suckumstance suclat sucralfate sucramine sucrate sucre sucroacid suction suctioning suctions suctoria suctorial suctorian suctorious sucupira sucuri sudadero sudamen sudamina sudaminal sudan sudanese sudani sudanian sudanic sudarium sudary sudate sudation sudatorium sudatory sudburian sudburite sudd sudden suddenlly suddenly suddenness suddenty sudder suddle sudge sudic sudoral sudoresis sudoriferous sudoriferousness sudorific sudorous suds sudsman sue suecism sued suede suer sues suet suetty suety sueve suevic suey suez suff suffect suffection suffectus suffer sufferable sufferableness sufferance suffered sufferer sufferers sufferest suffereth suffering sufferings suffers suffetes suffice sufficed sufficent sufficer suffices sufficiency sufficient sufficiently sufficing sufficingness suffiction suffixation suffixment sufflaminate sufflamination suffocate suffocated suffocates suffocating suffocation suffocative suffolk suffragan suffraganal suffraganate suffragancy suffragatory suffrage suffrages suffragette suffragettism suffragial suffragio suffragism suffragistic suffragistically suffrago suffrutescent suffrutex suffruticose suffruticous suffruticulose suffumigation suffusable suffuse suffused suffusedly suffusion suffusive sufi sufiices sufiism sufiistic sufism sufistic sugan sugar sugarbird sugarbush sugared sugarer sugariness sugarless sugarlike sugarloaf sugarplum sugars sugarsweet sugarworks sugary sugent sugescent suggesred suggest suggestable suggested suggestedness suggestibility suggestible suggestibleness suggestibly suggesting suggestingly suggestion suggestionism suggestionist suggestionize suggestions suggestive suggestively suggestiveness suggestment suggests suggestum suggillation sugh sugi suguaro sui suicidal suicidalism suicidally suicidalwise suicide suicides suicidical suidae suiform suilline suimate suina suine suing suingly suint suiogoth suiogothic suiones suis suist suit suitability suitable suitableness suitably suitcase suite suited suites suithold suiting suitor suitoress suitors suitorship suits suity suivra suji sukey sukitibhatinaim sukkenye sul sulaba sulbasutra sulcal sulcalization sulcalize sulcar sulcate sulcation sulcatoareolate sulcatocostate sulciform sulcomarginal sulcular sulculate sulcus suld sulea sulfa sulfacetamide sulfacid sulfadiazine sulfadoxine sulfaguanidine sulfamate sulfamerazin sulfamerazine sulfamethazine sulfamethoxazole sulfamide sulfamidic sulfamine sulfaminic sulfamyl sulfanilamide sulfanilic sulfanilylguanidine sulfantimonide sulfapyrazine sulfaquinoxaline sulfarsenide sulfarsphenamine sulfasalazine sulfasuxidine sulfate sulfatic sulfatize sulfato sulfhydric sulfhydryl sulfide sulfindigotic sulfindylic sulfinpyrazone sulfionide sulfisoxazole sulfites sulfoamide sulfobenzide sulfobismuthite sulfoborite sulfocarbamide sulfocarbolate sulfocarbolic sulfochloride sulfocyan sulfocyanide sulfogermanate sulfohalite sulfohydrate sulfoindigotate sulfomethylic sulfonamide sulfonamides sulfonate sulfonation sulfonator sulfone sulfonephthalein sulfonethylmethane sulfonic sulfonium sulfonmethane sulfonyl sulfonylurea sulfonylureas sulfophthalein sulfopurpuric sulforicinate sulforicinic sulforicinoleate sulforicinoleic sulfosalicylic sulfosilicide sulfotelluride sulfourea sulfovinate sulfowolframic sulfoxide sulfoxism sulfoxylate sulfoxylic sulfurage sulfuran sulfurate sulfurator sulfureously sulfureousness sulfuretted sulfuric sulfurization sulfurosyl sulfury sulfuryl sulidae sulides sulindac suliote sulk sulka sulked sulker sulkeys sulkily sulkiness sulking sulks sulky sull sulla sullage sulle sullen sullenly sullenness sullied sully sullying sulnosed sulpha sulphaldehyde sulphamate sulphamic sulphamidate sulphamide sulphaminic sulphamino sulphammonium sulphamyl sulphanilate sulphanilic sulphantimonial sulphantimonide sulphantimonious sulphantimonite sulpharsenate sulpharseniate sulpharsenic sulpharsenious sulpharsenite sulpharseniuret sulpharsphenamine sulphate sulphated sulphates sulphating sulphation sulphatize sulphato sulphatoacetic sulphazide sulphbismuthite sulphethylate sulphethylic sulphidation sulphide sulphides sulphidic sulphimide sulphinate sulphine sulphinic sulphinyl sulphitation sulphite sulphites sulphmethemoglobin sulpho sulphoacetic sulphoamid sulphoamide sulphoantimonic sulphoantimonite sulphoarsenic sulphoarsenious sulphobenzide sulphobenzoate sulphobenzoic sulphobismuthite sulphoborite sulphocarbamic sulphocarbanilide sulphocarbolate sulphocarbonate sulphocarbonic sulphochloride sulphocyan sulphocyanate sulphocyanide sulphocyanogen sulphodichloramine sulphofication sulphofy sulphogallic sulphogel sulphogermanate sulphohalite sulphohydrate sulphoichthyolate sulphoichthyolic sulpholipin sulphonal sulphonalism sulphonamic sulphonamide sulphonamido sulphonamine sulphonaphthoic sulphonate sulphonated sulphonating sulphonation sulphoncyanine sulphone sulphonephthalein sulphonethylmethane sulphonic sulphonmethane sulphonyl sulphoparaldehyde sulphophosphate sulphophosphite sulphophosphoric sulphophosphorous sulphophthalic sulphoproteid sulphopupuric sulphopurpurate sulphoricinate sulphoricinic sulphoricinoleic sulphoselenide sulphostannite sulphostannous sulphotannic sulphotelluride sulphothionyl sulphotoluic sulphotungstate sulphourea sulphovinate sulphoxism sulphoxylate sulphur sulphurage sulphuran sulphurated sulphuration sulphurea sulphurean sulphureity sulphureosaline sulphureous sulphureously sulphuret sulphureted sulphuretted sulphuric sulphurid sulphurity sulphurization sulphurize sulphurless sulphurosyl sulphurous sulphurproof sulphurweed sulphurwort sulphury sulphuryl sulphydrate sulphydric sulphydryl sulpician sultam sultan sultana sultanaship sultanate sultanates sultane sultanesque sultanian sultanic sultanin sultanize sultanlike sultanry sultans sultriness sultry sulu suluan sulung sulvasutra sum sumach sumachs sumak sumass sumatra sumatran sumbul sumbulic sumen sumeria sumerian sumerischen sumerology sumless sumlessness summa summable summage summar summaries summarily summariness summarise summarises summarist summarization summarize summarized summarizer summarizes summary summat summate summation summative summats summed summer summerbird summercastle summered summerer summerhouse summeriness summering summerings summerish summerite summerize summerlay summerless summerlike summerliness summerling summerly summerproof summers summerset summertide summertime summertree summerward summery summing summist summit summital summitless summitry summits summity summon summonable summoned summoner summoning summoningly summons summorum summula summulist summum summut sumner sumo sump sumpage sumper sumph sumpit sumpitan sumpitans sumple sumpman sumpon sumpter sumption sumptuary sumptuous sumptuously sumptuousness sums sun sunbaked sunbath sunbathe sunbathing sunbeam sunbeamed sunbeams sunbeamy sunberry sunblink sunbonnet sunbonnets sunbow sunbox sunbreak sunburn sunburned sunburnedness sunburns sunburnt sunburntness sunburst sunbursts suncherchor suncup sundae sundanese sundanesian sunday sundayfied sundayism sundayness sundayproof sundek sunder sunderable sunderance sundered sunderer sundering sunderings sunderment sunders sundial sundik sundog sundown sundowner sundowners sundowning sundra sundri sundried sundries sundrily sundriness sundrops sundry sundryman sunfall sunfish sunfisher sunfishery sunflower sunflowers sung sunglade sunglass sunglo sunk sunken sunket sunkland sunlamp sunlamps sunless sunlessly sunlet sunlight sunlighted sunlights sunlike sunlit sunn sunna sunned sunni sunnier sunniest sunnily sunniness sunning sunnism sunnite sunny sunnyhearted sunnyheartedness sunrays sunrise sunrises sunrising sunroom suns sunscreen sunset sunsets sunsetting sunsetty sunshade sunshine sunshineless sunshining sunshiny sunspot sunspottedness sunsquall sunsteeped sunstreak sunstricken sunstroke sunt suntan suntanning sunup sunwards sunway sunweed sunwise sunwracked suo suoi suomi suoply suoport suos sup supa supari supe supellex super superabhor superability superable superableness superably superabominable superabomination superabound superabstract superabsurd superabundance superabundancy superabundant superaccessory superaccumulate superaccumulation superaccurate superacetate superachievement superacid superacquisition superacromial superactive superadd superadded superaddition superadditional superadjacent superadministration superadmiration superadorn superadornment superaerial superaesthetical superagency superaggravation superagrarian superalbal superalkaline superalkalinity superallowance superaltern superambitious superambulacral superanal superanimal superannuate superannuated superannuation superannuitant superannuity superapology superarbiter superarbitrary superarctic superarduous superarrogant superarseniate superartificial superartificially superaspiration superassociate superassume superastonishment superattachment superattraction superattractive superauditor superaural superavit superaward superaxillary superb superbelief superbeloved superbenefit superbenign superbias superbious superbity superblessed superblunder superbly superbold superborrow superbrain superbrave superbrute superbuild superbungalow superbusy supercabinet supercalender supercallosal supercanine supercanonical supercanonization supercanopy supercaption supercarbonate supercarbonization supercarbonize supercarbureted supercargo supercargoship supercatholic supercausal supercaution superceding supercentral supercentrifuge supercerebellar supercerebral superceremonious supercharge supercharged supercharger superchemical superchivalrous superciliary superciliosity supercilious superciliously superciliousness supercilium supercivil supercivilization superclassified supercloth supercoincidence supercolumnar supercolumniation supercombing supercommendation supercommentary supercommentator supercompetition supercomplete supercomprehension supercompression superconception superconductive superconductivity superconfident superconfirmation superconformable superconformity superconfusion supercongestion superconscious superconsciousness superconsecrated superconsequency superconservative superconstitutional supercontest supercontrol supercool supercrescence supercrescent supercrime supercritic supercritical supercrowned supercrust supercurious supercynical superdainty superdebt superdeclamatory superdejection superdelicate superdemocratic superdemonic superdemonstration superdensity superdeposit superdevilish superdiabolical superdiabolically superdicrotic superdifficult superdiplomacy superdirection superdividend superdivision superdoctor superdonation superdose superdramatist superdreadnought superduplication superdural superdying supereconomy superedification superedify supereffective supereffluence supereffluently superelastic superelated superelegance superelementary superelevated superelevation supereligible supereloquent supereminency supereminent supereminently superemphasis superemphasize superendorsement superendow superenforcement superengrave superepic superepoch superequivalent supererogant supererogantly supererogate supererogation supererogative supererogator supererogatory superespecial superessential superessentially superestablish superestablishment supereternity superethical superethmoidal superevident superexalt superexaminer superexcellence superexcellent superexcellently superexceptional superexcitation superexcited superexcitement superexcrescence superexertion superexistent superexpand superexpansion superexpenditure superexplicit superexpressive superexquisiteness superextend superextension superextol superextreme superfamily superfarm superfat superfatted superfecundation superfecundity superfervent superfetate superfeudation superfibrination superficial superficialism superficialist superficiality superficialize superficially superficialness superficiary superficies superfidel superfinance superfinely superfinical superfinish superfissure superfit superfleet superflexion superfluent superfluid superfluities superfluity superfluous superfluously superflux superfoliaceous superfoliation superfolly superformation superfortunate superfriendly superfructified superfulfill superfulfillment superfunction superfunctional superfuse superfusible supergaiety supergene supergeneric supergenual supergiant superglottal supergoddess supergoodness supergovern supergovernment supergraduate supergrant supergratification supergratify supergravitate supergravitation superguarantee supergun superhandsome superhearty superheat superheated superheater superheresy superhero superheroic superhet superheterodyne superhistoric superhistorical superhive superhuman superhumanity superhumanize superhumanly superhumeral superhypocrite superideal superignorant superillustrate superillustration superimpend superimpending superimply superimportant superimposable superimpose superimposed superimposition superimpregnated superimpregnation superimproved superincentive superinclusive superincomprehensible superincrease superincumbence superincumbency superincumbent superindiction superindifference superindignant superindividual superindividualism superindividualist superinduce superinduced superindulgent superindustrious superindustry superinenarrable superinfection superinfeudation superinfinite superinfinitely superinfluence superingenuity superinitiative superinjustice superinscription superinsist superinsistence superinsistent superinstitute superintellectual superintend superintended superintendence superintendency superintendent superintendents superintendentship superintender superintending superintends superintense superintolerable superinundation superior superiora superioress superioris superiorities superiority superiorly superiorness superiors superiorship superjacent superjudicial superjurisdiction superjustification superknowledge superlabial superlaborious superlapsarian superlaryngeal superlation superlative superlatively superlenient superlie superlogical superlucky superlunatical superluxurious supermagnificently supermalate superman supermanhood supermanifest supermanism supermanly supermarginal supermarine supermarket supermarvelous supermasculine supermaterial supermathematical supermaxilla supermaxillary supermechanical supermediocre supermen supermentality supermetropolitan supermoral supermorose supermuscan supernaculum supernal supernalize supernally supernatant supernation supernational supernatural supernaturaldom supernaturalism supernaturalist supernaturalize supernaturally supernaturalness supernecessity supernormal supernormally supernotable supernumeraries supernumerary supernumeraryship supernumerous supernutrition superoanterior superobedient superobject superobjection superobjectionable superobligation superobstinate superoccipital superodorsal superoexternal superoffensive superofficious superofficiousness superofrontal superolateral superoposterior superopposition superoptimal superoratorical superorbital superordain superorder superordinary superordinate superorganic superorganism superorganization superorganize superornament superornamental superosculate superoxalate superoxide superoxygenate superparamount superparasite superparasitic superparasitism superpatient superpatriotic superpatriotism superperfect superpetrosal superphlogisticate superphosphate superphysical superplausible superplease superplus superpolitic superponderancy superpopulation superpose superposed superposes superposition superpositions superpositive superpraise superprecarious superprelatical superprinting superprobability superproduction superproportion superprosperous superpublicity superpure superpurgation superquadrupetal superqualify superradical superrational superreaction superrealist superrefine superrefined superrefinement superreformation superregal superregeneration superregenerative superrenal superrespectable superrestriction superreward superrheumatized superroyal supers supersacerdotal supersacred supersafe supersagacious supersaint supersaliency supersalient supersalt supersanction supersanity supersarcastic supersatisfaction supersaturate supersaturation superscandal superscientific superscribed superscript superscription supersecret supersecretion supersecular supersecure supersedable supersede supersedeas superseded supersedence superseder supersedes superseding superselect supersemination supersensible supersensibly supersensitive supersensitiveness supersensitization supersensory supersensual supersensualist supersensualistic supersensually supersentimental superseptal superseptuaginarian superseraphical superservice superserviceable superserviceableness superserviceably supersession supersessive supersevere supershipment supersignificant supersimplicity supersimplify supersincerity supersingular supersistent supersize supersmart supersolemn supersolemnly supersolicit supersolicitation supersonic supersovereignty superspecialize superspecies supersphenoid supersphenoidal superspinous superspiritual supersquamosal superstage superstamp superstandard superstate superstatesman superstimulate superstition superstitionist superstitions superstitious superstitiousness superstoical superstrain superstrata superstratum superstrenuous superstrict superstruction superstructory superstructural superstructure superstuff superstylish supersubstantial supersubstantiate supersubtilized supersubtle supersufficiency supersufficient supersulcus supersulphate supersulphureted supersulphurize supersunt supersuperabundance supersuperabundantly supersuperb supersuperior supersupreme supersurprise supersuspicious supersweet supersympathy supersyndicate supertare supertax supertaxation supertemporal supertemptation superterranean superterraneous superterrestrial superthankful superthorough superthyroidism supertoleration supertonic supertotal supertower supertragical supertrain supertramp supertranscendent supertranscendently supertreason supertrivial supertuchun supertunic supertutelary superunfit superunity superuniversal supervene supervened supervenes supervenience supervenient supervenosity supervestment supervexation supervigilant supervigorous supervirility supervise supervised supervises supervising supervision supervisions supervisive supervisor supervisorial supervisorship supervisory supervisual supervital supervive supervolition supervolute superwealthy superwoman superworldly superzealous supination supinator supine supinely supineness supolies supoort suport supped suppedaneum supper suppered supperless suppers suppertime supperwards supphes supping supplace supplant supplantation supplanted supplanter supplanting supplants supple supplely supplement supplementaires supplemental supplementally supplementary supplementation supplemented supplementing supplements suppleness supples supplet suppletion suppletively suppletorily suppletory suppliable supplial suppliance suppliant suppliantly suppliantness suppliants supplicancy supplicant supplicantly supplicants supplicate supplicated supplicating supplicatingly supplication supplicationer supplications supplicator supplicatory supplice supplied supplier supplies suppling suppllad supplu supply supplying support supportability supportable supportableness supportably supported supporter supporters supportful supporting supportive supportless supportlessly supportress supports supposable supposableness supposably supposal suppose supposed supposedly supposes supposin supposing supposition suppositionally suppositionary suppositions suppositious supposititious supposititiously supposititiousness suppositively suppositories suppositum suppported suppress suppressant suppressants suppressed suppressedly suppresses suppressible suppressing suppression suppressionist suppressions suppressive suppressively supprise suppurant suppuration suppurative supra suprabasidorsal suprabranchial suprabuccal supracaecal supracargo supracaudal suprachorioid suprachorioidal suprachoroidal suprachoroidea supraciliary supraclavicular supraclusion supracommissure supraconduction supraconductor supracondyloid supraconsciousness supracoralline supracostal supracoxal supracranial supracretaceous supradecompound supradental supradorsal suprafeminine suprafine suprafoliar supraglacial supraglottic supragovernmental suprahistorical suprahuman suprahyoid suprailiac supraintellectual suprajural supralapsarian supralapsarianism supralateral supraliminal supralinear supralocal supralocally supralunar supralunary supramarginal supramarine supramastoid supramaxillary suprameatal supramedial supramental supramolecular supramoral supramortal supramundane supranasal supranational supranatural supranaturalism supranaturalist supranaturalistic supranature supranormal supranuclear supraoccipital supraocclusion supraoesophageal supraoptimal supraorbital supraorbitar supraordinary supraordination suprapedal supraposition supraprotest suprapubic suprapygal suprarational suprarationalism suprarenal suprarenalectomize suprarenalectomy suprarenalin suprarenals suprarenine suprascapular suprascapulary suprascript suprasegmental suprasensible suprasensitive suprasensual suprasensuous supraseptal suprasoriferous suprasphanoidal supraspinate supraspinatus supraspinous suprasquamosal suprastandard suprastapedial suprastate suprasternal suprasubtle supratemporal supraterraneous supraterrestrial suprathoracic supratonsillar supratrochlear supratropical supratympanic supraventricular supremacist supremacy suprematism supreme supremely supremeness sur sura suraddition surah suralimentation suranal surat surbased surbed surcease surcharge surcharged surcingle surcoat surcrue surculi surculigerous surculose surculous surculus surd surdation surdeline surdent surdimutism surdomute sure sured surefire surefooted surely sureness surer surest surete sureties surette surety suretyship surexcitation surf surface surfacedly surfaceless surfaceman surfacer surfaces surfaceward surfacing surfactant surfacy surfbird surfboard surfboarding surfboat surfboatman surfeit surfeited surfeiter surfeiting surfer surff surficial surfle surflike surfmanship surfrappe surfs surfuse surfusion surfy surge surged surgeless surgeon surgeon/pathologist surgeoncy surgeonfish surgeonless surgeons surgeonship surgeproof surgerize surgery surges surgical surgically surging surgit surgy suriana surianaceae suricata suriga surinam surinamine surjection surjective surlily surliness surly surma surmaster surmisable surmise surmised surmisedly surmises surmising surmount surmountable surmountableness surmounted surmounting surmullet surname surnamed surnames surnay surnominal surpass surpassable surpassed surpasser surpasses surpassing surpassingly surpassingness surpeopled surplice surpliced surplicewise surplician surplus surplusage surpreciation surprint surprise surprised surpriseproof surpriser surprises surprising surprisingly surprize surprized surprizes surquidry surquidy surra surreal surrealistic surrealistically surrebound surrebut surrebuttal surrebutter surrection surrejoin surrejoinder surrender surrendered surrenderee surrenderer surrendering surreptitious surreptitiously surreptitiousness surreverence surreverently surrey surrogacy surrogateship surrogation surrosion surrotmded surround surrounded surroundedly surrounder surrounding surroundings surrounds sursaturation sursolid sursumvergence surtax surtout surtouts surturbrand surveillance surveillant survey surveyage surveyance surveyed surveying surveyor surveyors surveyorship surveys survivable survival survivalist survivals survivance survivancy survive survived surviver survives surviving survivor survivoress survivors sus susan susanna susanne susannite suscept susceptance susceptibilities susceptibility susceptible susceptibleness susception susceptive susceptor suscitate suscitation sushi susi susian susianian susie suslababo susotoxin suspect suspectable suspected suspectedness suspecter suspecteth suspecting suspector suspects suspend suspended suspender suspenderless suspenders suspendibility suspending suspends suspensa suspensation suspense suspenseful suspensely suspensibility suspensible suspension suspensive suspensively suspensiveness suspensor suspensorial suspensory suspicion suspicionable suspicional suspicionful suspicions suspicious suspiciously suspiciousness suspiration suspiratious suspire suspirious susquehanna sussex sussexite sussexman sussitia sussultatory sussultorial sustain sustained sustainer sustaining sustainingly sustainment sustains sustanedly sustenance sustenanceless sustentacula sustentacular sustentation sustentator sustention sustentor susu susuhunan susuidae susurr susurrant susurrate susurration susurringly susurrus sut sutaio suterbery suther sutherland suthin sutile sutler sutlerage sutleress sutlers sutlership sutlery suto sutorial sutorious suttapitaka suttee sutteeism sutten suttin sutton sutu suturally suture sutures suturing suum suwarro suwe suzanne suzerain suzerainty suzuki suzy svan svanish svantovit svarabhakti svarabhaktic svarloka svelte svenska sviatonosite svieto swa swab swabbed swabbing swabble swabby swabian swabs swack swacken swacking swaddle swaddlebill swaddled swaddler swaddling swaddy swadeshi swadeshism swag swagbellied swagbelly swage swager swagger swaggered swaggerer swaggering swaggie swagman swagmen swags swah swahilese swahili swahilian swahilize swaimous swain swainish swains swainship swaird swale swales swaling swaller swallered swallet swallo swallow swallowable swallowed swallower swalloweth swallowing swallowlike swallowling swallowpipe swallows swallowtail swallowwort swam swami swamp swampable swampberry swamped swamper swamping swampishness swampland swamps swampside swampweed swampwood swampy swan swandown swanflower swang swanherd swanhood swanimote swank swanker swankily swanking swanky swanmark swanmarker swanner swans swansdown swanskin swanson swantevit swanweed swanwort swap swape swapped swapping swaraj swarbie sward swardy sware swarf swarm swarmed swarmer swarming swarms swarmy swarry swart swartback swarth swarthmore swarthness swarthout swarthy swartness swartrutting swarty swartzbois swartzia swarve swash swashbuckle swashbuckler swashbucklerdom swashbucklery swashed swasher swashing swashwork swastika swastikaed swat swatch swatcher swatchway swatest swath swathe swatheable swathed swather swathes swathing swathings swati swatow swatter swattle sway swayable swayback swaybacked swayed swayer swayest swayful swaying swayingly swayless sways sweal swear swearer swearers sweareth swearing swears swearword sweat sweatband sweated sweater sweaters sweatful sweath sweating sweatless sweatproof sweats sweatshirt sweatshop sweaty swede sweden swedenborgian swedenborgism swedes swedge swedish sweeney sweeny sweep sweepable sweepback sweeper sweeperess sweepers sweepforward sweeping sweepingly sweepingness sweepings sweeps sweepstake sweepwashings sweepy sweet sweetberry sweetbread sweetbriers sweetbriery sweeten sweetened sweetener sweeteners sweetening sweeter sweetest sweetful sweetheart sweethearted sweetheartedness sweethearts sweeting sweetish sweetishness sweetleaf sweetlike sweetling sweetly sweetmeat sweetmeats sweetness sweetnesses sweetpea sweets sweetshop sweetsmelling sweetsop sweetstuff sweetwater sweetweed sweetwort swelchie swell swellage swelldom swelled sweller swelling swellings swellish swellishness swellness swells swelltoad swelly swelp swelt swelter sweltering swelteringly swenson swept sweptthe swerd swered swering swerve swerved swerveless swerver swerves swervily swerving swervings swietenia swift swifter swiftest swiftfoot swiftlet swiftlike swiftly swiftness swifty swig swigger swigging swiggle swill swillbowl swilled swilling swilltub swim swimmer swimmers swimmeth swimmily swimming swimmingly swimmist swimmy swims swinburnian swindle swindled swindledom swindler swindlers swindles swindling swine swinebread swinehead swineherd swineherdship swinehood swinehull swinelike swinely swinepipe swinery swinesty swiney swing swingable swingback swingdevil swinge swingeing swingels swinger swinging swingingly swingism swinglebar swingletail swingletree swings swingstock swingtree swingy swining swinish swinishly swinishness swinked swinney swipe swiper swipes swiping swiple swipy swirl swirled swirling swirlingly swirls swirly swish swished swisher swishing swishingly swissing switch switchback switchbacker switchblade switchboard switched switchel switcher switches switchgear switching switchkeeper switchman switchy switchyard swith swithe swithin switzeress swivel swiveled swiveleye swiveleyed swiveling swivelled swivellike swivelling swizzle swizzler swob swollen swollenly swollenness swoln swonken swoon swooned swooning swooningly swoons swoony swoop swooped swooper swooping swoops swop sword swordbill swordcraft sworders swordfight swordfish swordfisherman swordfishery swordfishing swordick swording swordless swordlet swordlike swordmaking swordman swordmanship swordplayer swordproof swords swordsman swordsmanship swordsmen swordster swordstick swordswoman swordtail swordweed swore sworn swosh swot swu swum swung swungen swure sybarism sybarist sybarital sybaritan sybarite sybaritical sybaritism sybotic sybotism sycamore sycamores syce sychnocarpous sycoma sycomancy sycomore sycomores syconaria syconarian syconate syconid syconidae syconoid syconus sycophancy sycophant sycophantical sycophantically sycophantish sycophantishly sycophantry sycosis sydneian sydney sydneyite sye syenites syenitic syenodiorite syenogabbro sykenesses sykes sylid syllab syllabarium syllabary syllabatim syllabe syllabi syllabic syllabical syllabicate syllabication syllabicness syllabify syllabism syllable syllabled syllables sylleptic sylleptically syllidae syllidian sylloge syllogism syllogisms syllogist syllogistic syllogistical syllogization syllogize syllogizer sylow sylph sylphish sylphize sylphlike sylphon sylphy sylva sylvae sylvage sylvan sylvania sylvanite sylvanity sylvanry sylvans sylvate sylvatic sylvester sylvestral sylvestrene sylvestrian sylvia sylvian sylvic sylvicolidae sylvicoline sylviculture sylviidae sylviinae sylviine sylvine symbasical symbasically symbiogenesis symbiogenetically symbiont symbiontic symbionticism symbiosis symbiot symbiote symbiotic symbiotically symbiotics symbiotism symbiotrophic symblepharon symbol symbolaeography symbolater symbolatry symbolic symbolical symbolically symbolicalness symbolicly symbolics symbolise symbolism symbolisque symbolistic symbolistical symbolistically symbolization symbolize symbolized symbolizer symbolizes symbolizing symbolofideism symbologist symbolography symbololatry symbolology symbolry symbols symbouleutic symbranchiate symbranchoid symbranchous symmedian symmelia symmelus symmetalism symmetral symmetrical symmetricality symmetrically symmetricalness symmetrist symmetrization symmetrize symmetry symmorphic symoathy sympathectomize sympathectomy sympathetectomy sympathetic sympathetical sympathetically sympatheticness sympatheticotonic sympathetoblast sympathicoblast sympathicotripsy sympathies sympathise sympathised sympathiser sympathising sympathism sympathize sympathized sympathizers sympathizes sympathizing sympatholysis sympatholytic sympathy sympatric sympatry sympetalae symphenomena symphile symphilic symphilism symphilous symphily symphonetic symphonic symphonically symphonies symphonion symphonious symphoniously symphony symphoricarpos symphoricarpous symphronistic symphyantherous symphylan symphynote symphyogenesis symphyostemonous symphyseal symphyseotomy symphysic symphysion symphysis symphysodactylia symphytically symphytize symphytum sympiesometer symplasm symplectic symplegades symplesite symplocaceae symplocaceous symplocarpus symploce symplocos sympodia sympodial sympodially sympodium sympolity symposia symposiac symposiacal symposial symposiastic symposion symptom symptomatic symptomatical symptomatically symptomatize symptomatological symptomatologically symptomical symptomize symptomless symptoms symtomology symtoms syn synacme synacmic synactic synadelphite synagogical synagogism synagogist synagogue synagogues synalgia synallactic synallagmatic synange synangia synangial synangic synangium synantherological synantherologist synantherology synantherous synanthic synanthy synapses synapsis synaptai synaptase synaptera synapterous synaptical synaptically synapticula synapticulae synapticular synapticulate synapticulum synaptychus synarchical synarchism synarmogoid synarquism synartesis synartete synartetic synarthrodia synarthrodial synarthrodially synarthrosis synascidian synastry synaxar synaxarist synaxarium synaxary synaxis syncarp syncarpia syncarpium syncarpous syncarpy syncategorematic syncategorematical syncategorematically syncategoreme syncephalic syncephalus syncerebrum synch synchondoses synchondrosial synchondrosially synchoresis synchromesh synchrone synchronically synchronise synchronism synchronistic synchronizable synchronization synchronize synchronizes synchronological synchronology synchronous synchronously synchronousness synchroscope synchrotron synchytriaceae synchytrium syncladous synclinal synclinore synclinorian synclinorium syncliticism synclitism syncoelom syncopate syncopated syncopation syncope syncopism syncopist syncotyledonous syncranterian syncrasy syncretical syncreticism syncretion syncretism syncretist syncretistic syncretize syncrypta syncryptic syncytial syncytioma syncytiomata syncytium syndactyl syndactylic syndactylism syndactylous syndactyly syndectomy synderesis syndesis syndesmectopia syndesmitis syndesmology syndesmoma syndesmoplasty syndesmotomy syndetic syndetical syndetically syndic syndical syndicalism syndicalist syndicalistic syndicalize syndicate syndicated syndicateer syndicates syndication syndicator syndicship syndoc syndromic syndyasmian syndyoceras synecdochic synecdochical synecdochically synecdochism synechia synechiological synechiology synechological synechotomy synechthran synechthry synecology synecphonesis synecticity synedria synedrian synedrion synedrium synedrous syneidesis synema synemmenon synenergistic synenergistical synenergistically synentognath synentognathi syneresis synergastic synergetic synergic synergically synergid synergidae synergidal synergism synergist synergistic synergistical synergistically synergize synergy synesthetic synethnic syngamic syngeneic syngenesia syngenesian syngenesious syngenetic syngenism syngenite syngnatha syngnathi syngnathid syngnathoid syngnathus synizesis synkaryon synkatathesis synkinesis synkinetic synochoid synochus synocreate synod synodal synodalian synodalist synodally synodic synodical synodically synodite synodontid synods synodsman synodus synoecete synoeciosis synoecious synoeciously synoeciousness synoecism synoecy synomosy synonym synonymic synonymical synonymity synonymize synonymous synonymously synonyms synonymy synophthalmus synopsis synopsize synoptic synoptical synoptically synoptics synoptist synoptistic synorchidism synorchism synosteology synostosis synostotic synostotical synovectomy synovia synovial synovially synoviparous synovitic synovitis synovium synrhabdosome synsacrum synsepalous synspermous syntactic syntactical syntactically syntan syntax syntaxis syntechnic syntectic syntelome syntenosis synteresis syntexis syntheme syntheses synthesis synthesise synthesism synthesist synthesization synthesize synthesized synthesizer synthete synthetic synthetical synthetically syntheticism synthetics synthetising synthetize synthetizer synthronos synthronus syntomia syntonic syntonically syntonin syntonization syntonize syntonizer syntonous syntripsis syntrophic syntropical syntropy syntype syntypic syntypicism synura synusia syodicon syphilidologist syphiliphobia syphilis syphilitic syphilization syphilize syphiloderm syphilodermatous syphilogenesis syphilography syphiloid syphilologist syphilology syphiloma syphilomatous syphilophobia syphilophobic syphilopsychosis syphilosis syphon syracusan syracuse syren syria syriacism syriacist syrian syrianism syrianize syriasm syringa syringas syringe syringed syringing syringitis syringomyelia syringomyelic syringotome syrinx syriologist syrma syrmian syrnium syrophoenician syrphian syrt syrtic syrup syruped syruper syruplike syrups syrupy syssarcosis sysselman syssitia syssition systaltic systasis system systemata systematic systematical systematicality systematically systematician systematicness systematics systematise systematism systematist systematization systematize systematized systematizing systematology systeme systemed systemic systemically systemist systemizable systemization systemize systemizer systemless systemproof systems systemwide systole systolic syxe syzygetic syzygetically syzygial syzygium syzygy szekler szilard szlachta szopelka t taa tab tabacosis tabacum tabanid tabanidae tabaniform tabanuco tabanus tabard tabaret tabasco tabashir tabaxir tabbarea tabby tabebuia tabefaction tabella tabellariaceae taberdar taberna tabernacle tabernacles tabernaemontana tabescence tabescent tabet tabetic tabetless tabic tabid tabidly tabidness tabifical tabinet tabira tabitha tablature table tableau tableaux tablecloth tablecloths tableclothwise tableclothy tabled tablefellowship tableful tableland tablelands tableless tablelike tablemaid tablemaker tablemaking tablemate tabler tables tablespoon tablespoonful tablet tabletary tabletop tablets tableware tablewise tabling tabloid tabloids tabog taboo tabooed taboot taboparalysis taboparesis taboparetic tabophobia tabor taboret taborin taborite tabour tabouret tabret tabrets tabs tabu tabula tabulable tabulae tabular tabulare tabularium tabularize tabularly tabulary tabulas tabulate tabulated tabulates tabulating tabulation tabulations tabulator tac tacahout tacamahac tacca taccaceae taccaceous taccada tach tachardiinae tache tacheless tacheography tacheometer tacheometric taches tacheture tachhydrite tachibana tachinid tachiol tachistoscope tachistoscopic tachogram tachograph tachometry tachy tachycardia tachycardiac tachygen tachygenesis tachygenetic tachygenic tachyglossidae tachyglossus tachygraph tachygraphical tachygraphist tachygraphometer tachygraphometry tachygraphy tachylite tachymeter tachymetric tachymetry tachyphagia tachyphasia tachyphemia tachyphrenia tachyscope tachysystole tachytomy tachytype tacit tacitean tacitly taciturn taciturnity taciturnly tacitus tack tacked tacket tackety tackey tackiness tacking tackle tackled tackler tackless tackproof tacks tacksman tacky taclocus tacnode taco tacoma taconic taconite tact tactable tactful tactfully tactic tactical tactically tactician tactics tactile tactilist tactility tactilogical tactinvariant taction tactite tactless tactlessly tactlessness tactometer tactor tactosol tactual tactuality tactually tactus tacuacine tad tade tadjik tadpole tadpoledom tadpolelike tadpoles taedium tael taen taenia taeniacide taeniae taeniafuge taenial taenian taeniasis taeniata taeniate taenicide taeniform taenifuge taeniobranchia taeniobranchiate taeniodes taeniodontia taenioglossa taenioglossate taenioid taeniosome taeniosomi taenite taetsia taffarel tafferel taffeta taffety taffrail taffy taffylike taffymaker taffymaking taffywise tafia tafinagh taft tag tagala tagalize tagalog tagasaste tagassuidae tagatose tagbanua tagboard tagetol tagetone tagged tagging taggle taggy taghlik tagilite taglet tagliacotian tagliacozzian tagrag tags tagsore tagua taguan tagus taha taheen tahin tahitian tahltan tahr tahsil tahua tai taiaha taich taiffe taiga taigle taiglesome taihoa taikhana tail tailage tailback tailboard tailcoat tailed tailender tailer tailet tailfirst tailflower tailforemost tailgate tailge tailhead tailing tailings taille tailless taillessly taillessness taillie tailor tailorage tailorcraft tailordom tailored tailoress tailorhood tailoring tailorism tailorization tailorize tailorman tailors tailorship tailorwise tailory tailpipe tails tailsman tailspin tailstock tailwind tailwise tailzee tailzie taimen tain tained taining tainly taint tainted tainting taintlessly taintlessness taintment taintor taintproof taints tainture taintworm tainui taipi tairge tairger tairn taistrel taistril tait taiver taivers taiwan taiwanhemp taj tak takably takamaka take takedownable takee takeful taken takeoff takeout takeover taker takes takest taketh takhaar takhtadjy takilman takin taking takingly takitumu takosis takt takun takyr tal talahib talaing talaje talak talalgia talamancan talanton talao talapoin talar talari talaria talaric talayot talbot talbotype talc talcer talcher talcky talclike talcochlorite talcoid talcose talcous talcum tale talebearer talebearers talecarrier talecarrying taled taleful talegallinae talegallus talemonger talent talented talentless talents talepyet tales talesman taletelling tali taliacotian taliage taliera talionic taliped talipedic talipomanus talipot talis talisay talishi talisman talismanic talismanically talismans talitha talitol talk talkability talkathon talkative talkativeness talked talkee talker talkers talkest talketh talkfest talkful talking talks talkworthy talky tall tallage tallageability tallagio tallahassee tallboy tallee taller tallero talles tallest tallet talliage talliar tallied tallier tallies tallis tallit tallith tallote tallow tallowberry tallower tallowiness tallowing tallowish tallowmaker tallowman tallowroot tallowweed tallowwood tallowy tallwood tally tallyho tallyman tallymanship tallywag tallywoman talmouse talmud talmudic talmudical talmudism talmudistic talmudistical talmudization talmudize talocalcanean talocrural talofibular talon talonavicular taloned talonic talons taloscaphoid talose talotibial talpatate talpetate talpicide talpid talpidae talpiform talpify talpoid taltushtuntude taluche taluhet taluka talus taluto talwar talwood tam tamability tamable tamably tamachek tamale tamales tamanac tamandu tamandua tamanoas tamanoir tamanu tamara tamarao tamaricaceous tamarin tamarind tamarindus tamarisk tamarisks tamarix tamas tamashek tamaulipecan tambo tamboo tambor tambouki tambour tamboura tamboured tambourer tambourin tambourine tambourines tambourist tambreet tamburello tame tamed tamehearted tamein tameless tamelessness tamely tameness tamer tamerlanism tames tamest tamias tamil tamilic taming tamis tamise tamlung tammanial tammany tammanyite tammie tammock tamonea tamoxifen tampala tampan tampang tamper tampered tamperer tampering tamperproof tampin tamping tampion tampioned tampon tamponade tamponage tampoon tamulian tamulic tamus tan tana tanacetone tanacetum tanacetyl tanach tanager tanagra tanagraean tanagridae tanagrine tanagroid tanaidacea tanaist tanaka tanala tananarive tanbur tancel tanchelmian tanchoir tandem tandemist tandemize tandemwise tandle tandors tandour tanekaha tang tanga tangaloa tangantangan tangaridae tangaroa tangaroan tangat tanged tangeite tangelo tangence tangency tangent tangental tangentally tangential tangentiality tangentially tangently tanger tangerine tangfish tangham tanghan tanghin tanghinia tanghinin tangi tangibile tangibility tangible tangibleness tangibly tangilin tangka tanglad tangle tangleberry tangled tanglefish tangler tangleroot tangles tanglesome tanglewrack tangling tanglingly tangly tango tangram tangs tangue tangut tangy tanh tanha tanhouse tania tanica tanier tanistic tanistry tanistship tanite tanjong tank tanka tankage tankah tankard tanked tanker tankerabogus tankette tankful tankmaker tankmaking tankman tankodrome tanks tankwise tannage tannaic tannaim tannaitic tannalbin tannase tannate tanned tanner tanneries tanners tannery tannide tanniferous tannin tanning tanninlike tannocaffeic tannogallate tannoid tannometer tannyl tano tanoan tanquen tanrec tanstuff tansy tant tanta tantacles tantafflin tantalate tantalian tantalic tantaliferous tantalise tantalising tantalize tantalized tantalizer tantalizing tantalizingly tantalizingness tantalofluoride tantalum tantalus tantam tantamount tantara tante tanti tantivy tantle tantony tantric tantrik tantrism tantrist tantrum tantrums tantum tanwood tanworks tanya tanyoan tanystomata tanystome tanzania tanzeb tanzib tanzine tanzy tao taonurus taotai taoyin tap tapa tapachula tapacolo tapaculo tapacura tapadera tapadero tapalo tapas tapasvi tape tapeats taped tapeinocephalic tapeinocephalism tapeinocephaly tapelike tapeline tapemaker tapemaking tapen taper tapered taperer tapering taperingly tapermaking taperness tapers taperwise tapes tapestried tapestries tapestring tapestry tapestrylike tapet tapetal tapete tapetless tapetum tapework tapeworm tapeworms taphole taphouse taphrinaceae tapinceophalism tapinocephalic tapinocephaly tapioca tapir tapiridae tapiridian tapirine tapiro tapiroid tapirus tapism tapist taplash taplet tapleyism tapmost tapnet tapoa tapoun tappa tappable tappableness tappaul tapped tappen tappietoorie tapping tappings tappoon taprobane taproot taprooted taps tapsterlike tapsterly tapu tapul tapuya tapuyo taqua tar tara tarabooka taraf tarag tarage tarahumari tarairi tarakihi taraktogenos taramellite taramembe taranchi tarand tarandean tarandian tarantara tarantism tarantist tarantula tarantulary tarantulas tarantulated tarantulid tarantulism tarantulite tarapatch tarapin tarascan tarasco tarassis tarata taratah taratantarize taraxacerin taraxacin taraxacum tarazed tarbadillo tarbet tarboard tarboggin tarboosh tarboy tarbrush tarbush tarbuttite tard tarda tardenoisian tardigrade tardily tardiness tardive tardle tardy tare tarefa tarefitch tarentala tarente tarentola tares tarfa tarflower targeman targer target targeted targeteer targetlike targets targum targumical targumist targumistic targumize tarheel tari tarie tariff tariffism tariffist tariffize tariri taririnic tarkalani tarkeean tarkhan tarlatan tarlike tarltonize tarmac tarman tarmined tarn tarnal tarnally tarnation tarnish tarnishable tarnished tarnishes tarnishment tarnlike tarns tarnside taro taroc tarok taropatch tarot tarp tarpaper tarpaulin tarpaulinmaker tarpaulins tarpeia tarpeian tarpot tarpum tarquin tarrack tarradiddle tarradiddler tarragon tarragona tarras tarrass tarred tarrer tarri tarriance tarrible tarried tarrier tarries tarriest tarrieth tarrified tarrify tarriness tarring tarrock tarrow tarry tarrying tarryingly tarryingness tarryings tarsadenitis tarsal tarsalgia tarsals tarse tarsectopia tarsi tarsia tarsiidae tarsioid tarsipedidae tarsipedinae tarsochiloplasty tarsoclasis tarsome tarsometatarsal tarsometatarsus tarsonemid tarsonemidae tarsonemus tarsophyma tarsoplasty tarsoptosis tarsorrhaphy tarsotarsal tarsotibal tarsotomy tarsus tart tartan tartane tartans tartar tartarated tartarean tartaret tartarian tartaric tartarin tartarism tartarize tartarized tartarology tartarproof tartarum tartarus tartary tartish tartishly tartle tartlet tartly tartness tartramate tartramide tartrate tartrated tartratoferric tartrazine tartronate tartronic tartronyl tartronylurea tartrous tartryl tarts tartufe tartufian tartufish tartufishly tartufism tarve tarvia tarweed tarwood tarworks tary taryard taryba tarzan tasajo tasco taseometer tash tasheriff tashie tashkent tashlik tashnagist tashreef tasian tasimeter tasimetric tasimetry task tasked tasker taskest taskit taskless tasklike taskmaster taskmastership taskmistress tasks tasksetting taskwork taslet tasmania tasmanian tasmanite tass tassago tassah tassal tassard tasse tassel tasseler tasselet tasselled tassellus tasselmaker tasselmaking tassels tassely tasset tassets tassie tassoo tastableness tastably taste tasteable tasted tasteful tastefully tastefulness tastekin tasteless taster tastes tasteth tastic tastily tastiness tasting tastingly tasty tatar tataric tatarize tatbeb tatchy tater taters tath tatian tatianist tatie taties tatinek tatou tatsanottine tatsman tatta tatter tatterdemalionry tatterdemalions tattered tatteredly tatters tattery tattied tatting tattle tattlement tattletale tattlingly tattoo tattooed tattooer tattooing tattooings tattooist tattooment tattoos tattva tatu tatukira tatusiidae tau taube taudis taught tauli taum taun taungthu taunt taunted taunter taunting tauntingly tauntingness tauntress taunts taupe taupo taupou taur tauri tauric tauricornous tauridors tauriform taurini taurite taurobolium tauroboly taurocephalous taurocholate taurocholic taurocolla taurodont tauroesque taurokathapsia tauromachian tauromachy taurophile taurophobe tauropolos taurotragus taurus tausend taut tautaug tauted tautegory tauten tautit tautochronism tautog tautological tautologically tautologicalness tautologism tautologize tautologizer tautologous tautologously tautology tautomer tautomeral tautomeric tautomerism tautomerizable tautomerization tautomerize tautomery tautometer tautometric tautometrical tautomorphous tautonymic tautonymy tautoousian tautoousious tautophonical tautophony tautopodic tautopody tautosyllabic tautotype tautourea tautousian tautozonal tautozonality tav tavast tave tavell taver tavern taverna taverner tavernize tavernless tavernlike tavernly tavernous tavernry taverns tavers tavert taves tavghi tavistockite tavola tavolatite tawa tawdrily tawdriness tawdry tawer tawery tawite tawkee tawkin tawney tawnily tawniness tawnle tawny tawpie taws tawse tawtie tax taxability taxable taxably taxaceae taxaceous taxameter taxaspidean taxation taxatively taxeater taxeating taxed taxeme taxeopoda taxeopodous taxeopody taxer taxers taxes taxgatherer taxgathering taxi taxiable taxiarch taxiauto taxicab taxicabs taxidea taxidermal taxidermic taxidermize taxidermy taxied taximan taximeter taximetered taxine taxing taxinomic taxinomist taxinomy taxite taxitic taxiway taxless taxlessness taxman taxodium taxodont taxon taxonomer taxonomic taxonomical taxonomically taxonomist taxpayer taxpayers taxpaying taxus taxwax taxy tay tayassu tayer tayir taylor taylorism taylorite tayra tayrona taysaam tazia tb tbkmm tch tchai tchast tcheirek tcherkess tchervonets tchervonetz tchetchentsish tchetnitsi tchick tchu tchwi tck td tdd tdi tdraccount tea teabell teaberry teaboard teabox teaboy teach teachability teachable teachableness teachably teache teached teacher teacherage teacherdom teacheress teacherhood teacherless teacherlike teacherly teachers teachership teachery teaches teacheth teachina teaching teachings teachless teachy teacup teacups tead teadish teaer teaey teagardeny teagle teagueland teaguelander teaish teak teakettle teakettles teakwood teal tealeafy tealery tealess teallite team teamaker teamaking teaman teamed teamer teamland teamless teammates teams teamsman teamster teamsters tean teapot teapotful teapots teapoy tear tearage tearaght tearcat teardrop tearer tearful tearfully tearfulness tearing tearjerk tearless tearlessly tearlessness tearlet tearoom tearpit tearproof tears teart tearthroat tearthumb teary teas teasableness tease teaseableness teaseably teased teasehole teaseler teaseller teasellike teaselwort teasement teasiness teasing teasingly teasler teaspoon teaspoonful teaspoons teasy teated teatfish teathe teatime teatise teatlike teatling teatman teatro teats teaty teave teaware teaze teazed teazer teazing tebbet tebet tebeth tebu tec teca tecali tech teched techne technic technica technical technicalities technicality technically technicalness technician technicians technicism technicological technicology technicon technics technion technique techniques technism technochemical technocracy technocrat technocratic technographer technographic technographical technographically technography technolithic technologic technological technologically technologist technology technonomic technonomy technopsychology techy teck tecla tecnal tecnoctonia tecnology tecomin tecon tecpanec tectibranch tectibranchian tectibranchiate tectiform tectocephalic tectological tectology tectona tectonic tectonics tectorial tectorium tectosphere tectospondyli tectrices tectricial tectum tecum tecuna teda tedder teddy tedescan tedious tediously tediousness tediousome tedisome tedium tee teedle teeing teem teemed teemer teemfulness teeming teemingly teemingness teemless teems teen teenage teenaged teenager teenagers teensy teenth teenty teeny teepee teerer teest teeswater teetaller teetan teeter teeterboard teeterer teetering teetertail teeth teethache teethe teethed teethful teethily teething teethlike teethridge teeting teetotaler teetotalism teetotalist teetotaller teetotallers teetotum teetotumism teetotums teetotumwise teety teflon teg tegmental tegmentum tegmine tegretol tegua tegucigalpa teguexin teguima tegula tegular tegulated tegument tegumental tegumentary tegumentum tegurium tehom tehsil tehsildar tehuantepecan tehueco tehuelche tehuelet teian teicher teiglech teiidae teind teindable teinland teioid teip teiresias teixos teju tekiah tekintsi tekke teknonymous teknonymy tektite tektronix tekya tel telacoustic telamon telang telangiectasia telangiectasis telangiectasy telangiectatic telar telarian telary telautogram telautographic telautographist telautography telautomatic telchines telchinic teleanemograph teleangiectasia telebarometer telecast telechirograph telecinematography telecode telecommunication telecommunications teleconference telecryptograph telectroscope teledendrion teledendron teledu teledyne telefunken telega telegenic telegn telegnosis telegnostic telegonic telegonous telegony telegram telegrammatic telegrams telegraoh telegraph telegraphed telegrapheme telegrapher telegraphese telegraphic telegraphically telegraphing telegraphist telegraphone telegraphophone telegraphs telegraphy telehydrobarometer telei teleia teleiosis telekinesis telekinetic telelectric telelectrograph telelectroscope telemanometer telembi telemechanic telemechanics telemetacarpal telemeteorograph telemeteorographic telemeter telemetric telemetrical telemetrist telemetrograph telemetrographic telemetrography telemetry telemotor telencephal telencephalic teleneurite teleneuron telenget telengiscope telenomus teleocephalous teleoceras teleodesmacea teleodesmaceous teleodont teleological teleologically teleologist teleometer teleophobia teleophyte teleosaur teleosauridae teleosaurus teleost teleostei teleosteous teleostomate teleostome teleostomi teleostomous teleotemporal teleozoic teleozoon telepathic telepathically telepathist telepathize telepathy telepheme telephone telephoned telephoner telephones telephonic telephonical telephonically telephonist telephonograph telephony telephote telephoto telephotographic telepicture teleplasmic teleplastic telepost teleprocessing teleprompter teleradiophone telergically telescope telescoper telescopes telescopic telescopical telescopically telescopiform telescopium telescopy telescriptor teleseism teleseismic teleseismology teleseme telesia telesmeter telesomatic telestereography telesterion telesthesia telestial telestic telestich teletactile teletape teletherapy telethermogram telethermograph telethermometer teletranscription teletype teletyper teletypesetter teletypesetting teletypewrite teletypewriter teletyping teleutoform teleutosorus teleview televiewer televise television televisionary televisor televisual televox telewriter telex telfairia telfer telferage telford telfordize telharmonium telharmony teli telial telical telically telinga teliosorus teliosporic teliostage telium tell tella tellable tellach telled tellee teller tellers tellest telleth telligent tellima tellin tellina tellinacea tellinacean tellinaceous telling tellingly tellinidae tellinoid tells tellsome tellt telltale telltruth tellurate telluret tellureted tellurethyl telluretted telluric telluride telluriferous tellurion tellurism tellurist tellurium tellurize tellurous telmatological telmatology teloblast telocentric telodendrion telodendron telodynamic telogen telolecithal telomic telomitic telonism telopea telophase telophragma teloptic telosynapsis telosynaptic telosynaptist teloteropathic teloteropathically teloteropathy telotremata telotrocha telotrophic telotype telpher telpherway telson telsonic telugu telurgy tema temacha teman temazepam temblor tembu temene temenos temerarious temerariously temerity temerous temerousness temin temiskaming temlple temne temnospondyli temoerature temp tempe tempean temper tempera temperability temperably temperality temperament temperamental temperamentalist temperamentally temperamented temperaments temperance temperate temperately temperative temperature temperatures tempered temperedly temperedness tempering temperings temperish temperless temperly tempers tempery tempest tempestical tempestive tempestively tempestivity tempests tempestuous tempestuously tempestuousness tempesty tempi templar templardom templarism templarlike templarlikeness templary template templater temple templed templeless templelike templement temples templet templeton templetonia templize tempo tempora temporal temporale temporalis temporalism temporalist temporality temporalize temporally temporalness temporalty temporaneous temporaneously temporarily temporary tempore temporibus temporise temporised temporization temporize temporizing temporizingly temporoalar temporoauricular temporocerebellar temporofacial temporofrontal temporohyoid temporomalar temporomandibular temporomastoid temporopontine temporosphenoid temporosphenoidal temporozygomatic tempre temprely temps tempt temptability temptable temptableness temptation temptational temptationless temptations temptatory tempted tempter tempters tempteth tempting temptingly temptress tempts temptuously tempyo tems temse temser temule temulence temulency temulent temulentive ten tenability tenable tenableness tenably tenace tenacious tenaciously tenacity tenaculum tenai tenaille tenait tenaktak tenancies tenancy tenant tenantableness tenanted tenanter tenantism tenantless tenantry tenants tenantship tenced tench tenchweed tencteri tend tendance tendant tended tendence tendencies tendency tendent tendential tendentious tender tenderable tenderably tendered tenderee tenderer tenderest tenderfeet tenderfoot tenderful tenderheart tenderhearted tenderheartedly tenderheartedness tendering tenderizer tenderling tenderloin tenderly tenderness tendernesses tenders tendersome tendinal tending tendingly tendinitis tendinous tendinousness tendo tendomucoid tendon tendons tendosynovitis tendotome tendotomy tendre tendresse tendril tendriled tendriliferous tendrillar tendrils tends tenebra tenebrae tenebrificate tenebrionidae tenebrious tenebriously tenebrous tenebrously tenebrousness tenectomy tenement tenemental tenementary tenementer tenements tenendas tenendum tenentes tener teneral teneriffe tenesmic tenesmus tenet tenets tenfold teng tengere tengerite tenggerese tengu teniacidal teniacide tenible tenino tenio tenline tenmantale tennantite tenner tennessean tennessee tenney tennis tennisdom tennyson tennysonian tenochtitlan tenodesis tenodynia tenography tenology tenomyoplasty tenomyotomy tenon tenonectomy tenoned tenoner tenonitis tenonostosis tenontagra tenontitis tenontodynia tenontomyoplasty tenontophyma tenontoplasty tenontothecitis tenontotomy tenophony tenophyte tenor tenorite tenorless tenoroon tenorrhaphy tenors tenositis tenostosis tenosuture tenotome tenotomize tenotomy tenour tenovaginitis tenpence tenpenny tenpin tenpins tens tense tensed tenseless tenselessness tensely tenseness tenses tensibility tensible tensibleness tensify tensile tensilely tensileness tensility tensimeter tensing tension tensionless tensity tensive tensor tent tentability tentable tentacle tentaclelike tentacles tentacular tentaculate tentaculated tentaculite tentaculitidae tentaculocyst tentaculoid tentaculum tentage tentamen tentation tentative tentatively tentativeness tented tenterer tenterhook tenterhooks tentful tenth tenthmeter tenthredinid tenthredinidae tenthredinoid tenthredinoidea tenths tentigo tentillum tention tentlet tentlike tentmate tentorial tentorium tents tenture tentwise tentwort tenty tenuate tenue tenues tenuia tenuicostate tenuiflorous tenuifolious tenuior tenuious tenuiroster tenuirostral tenuirostres tenuis tenuously tenure tenures tenurially teopan tepache tepal tepecano tepee tepefaction tepefy tepehuane tepetate tephillin tephrite tephritic tephroite tephromyelitic tephrosia tephrosis tepid tepidarium tepidity tepidly tepidness teponaztli tequistlatecan ter tera teramorphous terap teraphim teras teratism teratogenesis teratogenetic teratoid teratological teratologist teratology teratomatous teratosis terbacker terbia terbic terbium terbutaline tercelet tercentenarian tercentenarize tercer terceron tercet terchloride tercia tercine tercio terconazole terdiurnal terebate terebellid terebellidae terebellum terebene terebenic terebic terebilic terebinth terebinthaceae terebinthial terebinthian terebinthic terebinthina terebinthinate terebinthine terebinthinous terebinthus terebral terebrant terebrate terebration terebratular terebratulid terebratulidae terebratulite terebratuloid terebridae tered terek terence terephthalate terephthalic teres teresa teresian teresina terete teretial teretiscapular teretiscapularis terfenadine terfere tergal tergant tergedder tergeminate tergeminous tergite tergiversate tergiversation tergiversator tergiversatory tergiverse tergum terial terical tering terious teriyaki terlinguaite terly term terma termagant termagantish termagantism termage termatic termed termer termes termin terminability terminable terminably terminal terminalia terminaliaceae terminalization terminalized terminals terminant terminate terminated terminates terminating termination terminational terminations terminative terminatively terming termini terminine terminism terminist terminize termino terminological terminologist terminology terminus termital termitarium termite termites termitid termitidae termitophilous termless termlessly termlessness termolecular termon termor terms termtime tern terna ternar ternariant ternary ternate ternately ternatisect ternatopinnate terne ternery ternion ternize ternstroemia teros teroxide terp terpadiene terpane terpene terpeneless terphenyl terpine terpinene terpineol terpinol terpodion terpsichore terpsichoreal terpsichoreally terpsichorean terra terrace terraced terracelike terraceous terracer terraces terracette terracewards terracewise terracework terraciform terracing terrae terraefilian terrage terrain terral terramara terrane terranean terraneous terrapene terrapin terraqueous terraqueousness terrarium terras terrazzo terre terrella terremotive terrene terrenely terreneness terreplein terrestrial terrestrialize terrestrially terrestrialness terret terreted terreur terrible terribleness terribly terricole terricoline terricolous terrier terrierlike terriers terrific terrifical terrifically terrification terrificness terrified terrifies terrify terrifying terrifyingly terrine terrirory territelae territelarian territoires territorial territoriality territorialization territorialize territorially territorian territoried territories territory terron terror terrore terrorem terrorful terrorific terrorism terrorist terroristic terroristical terrorization terrorize terrorized terrorizer terrorizing terrorless terrorproof terrors terrorsome terrupting ters terse tersely terseness tersion tersulphate tersulphide tersulphuret tert tertenant tertia tertial tertiarian tertiary tertium tertius terton tertullianism terutero tervalence tervalent tervariant tervee terzetto terzina terzo tes tesack tesarovitch teschenite tess tessarace tessaradecad tessaraglot tessaraphthong tessarescaedecahedron tessel tesselated tessella tessellate tessellated tessellation tessera tesseradecade tesseraic tesseral tesserants tesserated tesseratomy tesses tessular test testa testacea testacean testaceography testacy testament testamental testamentalness testamentarily testamentary testamentate testamentation testamento testaments testamentum testar testata testator testatorship testatory testatrices testatrix testbed teste tested testee tester testes testibrachial testibrachium testicardinate testicardine testicles testicular testiculate testiere testificate testification testificator testificatory testified testifier testifies testify testifying testigo testily testimonial testimonialist testimonialize testimonializer testimonials testimonies testimony testiness testing testingly testis teston testone testor testosterone tests testudinata testudineal testudinidae testudinous testudo testy tesuque tetanically tetanigenous tetanilla tetanism tetanization tetanize tetanolysin tetanomotor tetanotoxin tetany tetarconid tetartemorion tetartocone tetartohedral tetartohedrally tetartohedrism tetartohedron tetartoid tetartosymmetry tetch tetches tetchy tete tetel tetering teterrimous teth tethelin tether tetherball tethered tethering tethery tethydan teton tetons tetra tetraamylose tetrabasic tetrabasicity tetrabelodon tetrabelodont tetrabiblos tetraborate tetraboric tetrabranchia tetrabromide tetrabromo tetracaine tetracarboxylate tetracarpellary tetraceratous tetracerous tetracerus tetrachical tetrachlorid tetrachloro tetrachord tetrachordon tetrachromatic tetrachromic tetrachronous tetracid tetracoccous tetracolic tetracolon tetracoral tetract tetractinellida tetractinellidan tetractinelline tetractinose tetracyclic tetracyclines tetrad tetradactyl tetradactylous tetradactyly tetradarchy tetradecane tetradecapod tetradecapodan tetradecapodous tetradesmus tetradiapason tetradic tetradite tetradrachma tetradrachmal tetradrachmon tetradynamia tetradynamian tetradynamious tetradynamous tetraedrum tetraethyl tetraethylsilane tetrafolious tetragamy tetragenous tetraglot tetragonal tetragonally tetragonalness tetragonia tetragoniaceae tetragonidium tetragonous tetragonus tetragram tetragrammatic tetragrammatonic tetragyn tetragynia tetragynian tetrahedra tetrahedral tetrahedrally tetrahedric tetrahedrite tetrahedroid tetrahedron tetrahexahedral tetrahexahedron tetrahydrated tetrahydric tetrahydride tetrahydro tetrahydropyrimidine tetraiodide tetraiodo tetrakaidecahedron tetraketone tetrakisazo tetrakishexahedron tetralemma tetralin tetralogue tetralophodont tetramastigote tetrameral tetrameric tetramerism tetramerous tetrameter tetramethyl tetramethylammonium tetramethylene tetramin tetramine tetrammine tetramorph tetramorphic tetramorphism tetramorphous tetrander tetrandrian tetrane tetranitrate tetranitro tetranuclear tetranychus tetrao tetraodon tetraodont tetraodontidae tetraonidae tetraoninae tetrapartite tetrapetalous tetraphalangeate tetrapharmacal tetraphenol tetraphyllous tetraplegia tetraploid tetraploidic tetraploidy tetraplous tetrapneumona tetrapneumonous tetrapod tetrapoda tetrapodic tetrapody tetrapous tetrapteron tetraptote tetrapturus tetraptych tetrapylon tetrapyramid tetrapyrenous tetraquetrous tetrarch tetrarchate tetrarchy tetrasaccharide tetrasalicylide tetraselenodont tetrasepalous tetraskelion tetrasome tetrasomic tetrasomy tetraspermal tetraspermatous tetraspermous tetrasporangia tetrasporangiate tetrasporangium tetraspore tetraspores tetrasporic tetrasporiferous tetrasporous tetrasrores tetraster tetrastich tetrastichal tetrastichic tetrastichous tetrastoon tetrastyle tetrastylic tetrastylos tetrasubstituted tetrasubstitution tetrasulphide tetrasymmetry tetratheite tetrathionates tetrathionic tetratomic tetratone tetravalence tetravalent tetraxial tetraxonid tetraxonida tetrazine tetrazolium tetrazolyl tetrazone tetrazotize tetrevangelium tetric tetrical tetricity tetrigid tetrigidae tetriodide tetrix tetrobol tetrobolon tetrodon tetrodont tetrodontidae tetrodotoxin tetrole tetrolic tetronic tetrose tetroxalate tetroxide tetrylene tetter tetterish tetterous tettery tettigoniid tettigoniidae tettix teucri teucrian teufit teuk teutolatry teuton teutonia teutonist teutonity teutonization teutonize teutonophobia teutophil teutophile teutophilism teutophobe teutophobism teviss tew tewel tewer tewit tewly tewsome tex texaco texas texcocan texes texguino text textarian textbook textbooks textes textiferous textile textiles textrine textron texts textual textualism textuality textually textuary textural texture textureless textures tez tezcatzoncatl tezcucan tha thacke thackerayan thackerayana thackerayesque thackless thae thag thags thai thais thakur thakurate thalamencephalic thalami thalamiflorae thalamifloral thalamium thalamocoele thalamocortical thalamocrural thalamolenticular thalamomammillary thalamopeduncular thalamophora thalamotegmental thalamus thalarctos thalassa thalassal thalassarctos thalassemia thalassemias thalassian thalassinid thalassinidea thalassinidian thalassinoid thalassiophyte thalassiophytous thalasso thalassochelys thalassographer thalassographic thalassographical thalassography thalassometer thalassophilous thalassophobia thalassotherapy thalattology thalenite thalesia thalesian thalia thaliard thalictrum thalidomide thalle thalli thallic thalliferous thalline thallious thallium thallochlore thallodal thallogen thallogenic thalloid thallome thallophyta thallophyte thallophytic thallose thallous thallus thalluses thalposis thalpotic thalthan thameng thamesis thamnidium thamnophiline thamnophilus thamuria thamus thamyras than thana thanadar thanan thanatism thanatist thanatobiologic thanatographer thanatography thanatoid thanatologist thanatology thanatometer thanatophobe thanatophobia thanatophobiac thanatophoby thanatopsis thanatos thanatotic thane thanehood thaneland thanes thank thanked thankee thanker thankful thankfully thankfulness thanking thankless thanklessly thanks thanksgiver thanksgiving thankworthily thankworthiness thanky thankyer thapes thar tharf tharfcake thargelion tharm thasian thaspium thass that that'll thatch thatched thatcher thatchers thatches thatching thatchless thatchwork thatchy thatlarge thatn thatness thatof thats thaught thaumantian thaumantias thaumasite thaumatogeny thaumatography thaumatolatry thaumatology thaumatrope thaumatropical thaumaturge thaumaturgic thaumaturgics thaumaturgism thaumaturgy thaumoscopic thave thaw thawed thawer thawing thawn thaws thawy thay thayer thc the thea theaceae theahrn theandric theanthropic theanthropical theanthropism theanthropology theanthropophagy theanthropos thearchic theasum theat theater theatergoer theatergoing theaterless theaters theaterwards theaterwise theatine theatral theatre theatred theatres theatric theatricable theatrical theatricalism theatricality theatricalization theatricalize theatricalness theatricals theatrician theatricism theatricize theatrics theatrocracy theatrograph theatromania theatromaniac theatron theatrophobia theatrophone theatropolis theatry theave theb thebaic thebaine thebais thebaism theban thebanischen thebes theca thecasporal thecasporous thecate thecium thecla theclan thecodont thecoidea thecophora thecosomata thee theee theek theeker theelin theelol theemim theer theet theetsee theeward theezan thefamily theft theftdom thefts theftuous theftuously thegidder thegither thegn thegnland thegnly thegnship thegnworthy thegrasleiten thei theia theiform theileria theine theinism theinscription their theirn theirs theirselves theirsens theism theist theistic theistically thekeeping thelalgia thelemite thelephoraceae theless theligonaceae theligonaceous thelitis thelium thelma thelodus theloncus thelorrhagia thelphusa thelr thelyblast thelyotoky thelyphonidae thelyplasty thelytocia thelytoky thelytonic them thema thematic thematist theme themeless themelet themer themes themis themistian themseemed themsel themselves then thenabouts thenae thenal thenardite thence thenceafter thenceforth thenceforward thenceforwards thencefrom thenceward thenness theoanthropomorphism theoastrological theobald theobroma theobromic theocentricism theochristic theocollectivism theocollectivist theocracy theocrasia theocrasical theocrasy theocrat theocratic theocratically theocritan theocritean theodicaea theodicy theodolite theodore theodoric theodosia theodotian theogamy theogeological theognostic theogonal theogonic theogonism theogonist theogony theohuman theoktony theolatry theolepsy theoleptic theologal theologaster theologate theologeion theologer theologi theologiae theologiam theologian theologians theological theologically theologician theologicoethical theologicohistorical theologicomilitary theologicomoral theologiconatural theologics theologie theologism theologist theologium theologization theologizer theologoumena theologoumenon theologus theology theomachia theomachist theomachy theomancy theomania theomaniac theomantic theomastix theomicrist theomorphism theomythologer theomythology theonomy theopantism theopaschist theopaschitally theopaschite theopaschitic theopathetic theophagous theophagy theophanic theophanous theophilanthrope theophilanthropy theophile theophilist theophilosophic theophilus theophobia theophrastaceous theophrastan theophrastean theopneust theopneustia theopneustic theopneusty theopolitician theopolitics theopolity theopsychism theorbist theorbo theorem theorematic theorematical theorematically theorematist theorems theoretic theoretical theoretically theoretician theoreticopractical theoretics theoria theoriai theoricae theorical theorician theoricians theoricon theorie theories theorique theorise theorism theorist theorists theorization theorize theorized theorizer theorizers theorizing theory theoryless theosoph theosopheme theosophical theosophically theosophism theosophist theosophistic theosophists theosophize theosophy theotechnist theoteleology theotherapy theotokos theow theowdom theowman thep thepresent ther theracys theralite therapeutic therapeutical therapeutically therapeutics therapeutist therapeutists theraphosid therapists therapsid therapy there there'll thereabode thereabout thereabouts thereabove thereacross thereafter thereafterward thereagainst thereamong thereamongst thereanent thereanents thereat therebeside therebesides therebetween thereby thereckly therefor therefore therefrom therehence therein thereinafter thereinbefore thereinto therence thereof thereology thereon thereout thereover thereright theres therese therethrough theretill thereto theretofore thereunder thereuntil thereunto thereup thereupon thereva therevid therewith therewithal therewithall therewithin theria theriac theriaca theriacal therial therianthropic therianthropism theriatrics theridiid theridiidae theriodic theriodont theriodonta theriodontia theriomaniac theriomorph theriomorphic theriomorphosis theriomorphous theriotrophical theriozoic therm thermae thermal thermality thermally thermanalgesia thermanesthesia thermantic thermantidote thermatologist thermatology thermesthesia thermesthesiometer thermetograph thermic thermically thermidorian thermion thermionic thermionically thermit thermite thermoactinomycoses thermoammeter thermoanesthesia thermobarograph thermobattery thermocautery thermochemistry thermochrosy thermocline thermocurrent thermoduric thermodynamic thermodynamical thermodynamically thermodynamician thermodynamicist thermodynamics thermoelectric thermoelectrical thermoelectrometer thermoelectromotive thermoelement thermoexcitory thermogenerator thermogenesis thermogenic thermogenous thermogeographical thermogram thermohyperesthesia thermolabile thermolability thermological thermology thermoluminescent thermolytic thermolyze thermomagnetism thermometamorphic thermometamorphism thermometer thermometerize thermometers thermometre thermometres thermometric thermometrical thermometrically thermomotor thermomultiplier thermonastic thermonasty thermoneurosis thermoneutrality thermonuclear thermopair thermoperiodic thermoperiodicity thermoperiodism thermophilic thermophilous thermophobous thermophore thermopile thermoplasticity thermoplegia thermopolymerization thermopolypnea thermopolypneic thermoradiotherapy thermoreduction thermoregulation thermoregulator thermoresistance thermoresistant thermos thermoscopically thermostability thermostat thermostatic thermostatically thermostimulation thermosynthesis thermosystaltism thermotank thermotaxic thermotaxis thermotensile thermotension thermotherapeutics thermotherapy thermotic thermotical thermotically thermotropism thermotropy thermotype thermotypic thermotypy thermovoltaic therof theroid therolatry therological therology theromora theromorpha theromorphia theromorphic theromorphism theromorphological theromorphology theromorphous theron thesauros thesaurus these theses theseum theseus thesial thesicle thesis thesium thesmophoria thesmophorian thesmophoric thesmothetae thesmothete thesmothetes thesn thesocyte thespesia thespian thespians thessalian thessalonian thestreen theta thetch thetic thetical thetics thetine theurgic theurgically theurgy thevetin thewed thewhole thews thewy they they'll they're theyare theyll theyr theyre thiabendazole thiacetic thiacide thiamides thiamin thianthrene thiasi thiasite thiasoi thiasos thiasus thiazide thiazides thiazole thiazoline thick thickbrained thicken thickened thickener thickening thickens thicker thickest thicket thickets thickety thickhead thickheaded thickheadedly thickish thickleaf thicklips thickly thickness thicknesses thicks thickset thickskull thickskulled thickwit thief thiefcraft thiefland thiefmaker thiefmaking thiefwise thielavia thienyl thievable thieve thieveless thieves thieving thievingly thievings thievish thievishly thievishness thigh thighbone thighed thighs thight thightness thigmonegative thigmotactic thigmotaxis thigmotropic thigmotropism thik thill thiller thilly thim thimber thimble thimbleflower thimbleful thimblemaker thimblemaking thimbleman thimblerig thimblerigger thimbleriggery thimblesful thimbleweed thimbu thimerosal thin thinbrained thine thing thingamabob thingamajig thinginess thingish thinglet thinglikeness thingliness thingly thingman things thingumajig thingumbob thingy thining think thinkableness thinkably thinker thinkers thinkest thinketh thinkful thinkin thinking thinkingly thinkings thinkng thinks thinlier thinly thinned thinner thinners thinness thinnest thinning thinnish thinocoridae thinocorus thinolite thins thio thioacetal thioantimonate thioantimoniate thioantimonite thioarseniate thioarsenic thioarsenious thioarsenite thiobacillus thiobacteriales thiobismuthite thiocarbamic thiocarbanilide thiocarbimide thiocarbonate thiocarbonic thiocarbonyl thiocresol thiocyanate thiocyanation thiocyanic thiocyanide thiocyanogen thiodiazole thiofuran thiofurane thiofurfurane thioglucose thiogycolic thiohydrate thiohydrolysis thioketone thiolacetic thiolactic thiolic thionamic thionaphthene thionation thioneine thionic thionine thionitrite thionium thionthiolic thionurate thionyl thionylamine thiopental thiophen thiophene thiophenic thiophenol thiophosphoric thiophosphoryl thiopyran thioresorcinol thioridazine thiospira thiostannic thiostannite thiostannous thiosulphate thiosulphates thiothixene thiotungstate thiouracil thiourea thioureas thiourethane thiozone thiozonide thipdar thipdars third thirdborough thirdings thirdling thirdly thirdness thirds thirdsman thirl thirling thirst thirsted thirster thirstful thirstier thirstiness thirsting thirstingly thirstings thirstland thirstle thirsts thirsty thirt thirteen thirteenfold thirteenth thirteenthly thirties thirtieth thirtover thirty this thishow thislike thisn thissen thistle thistlebird thistled thistledown thistlelike thistleproof thistlery thistles thistlish thistly thither thithering thitherward thitsiol thiuram thivel thixle thixolabile thixotropic thixotropy thlingchadinne thlinget thlipsis thlu thn tho thob thocht thodox thof thoftfellow thoke thokish thole tholeiite tholi tholos thomas thomasa thomasine thomisidae thomism thomist thomistic thomistical thomomys thomsonian thomsonianism thomsonite thon thonder thondracians thone thong thonged thongman thongs thongy thoo thoom thor thoracales thoracentesis thoracic thoracica thoracicae thoracical thoracici thoracicoabdominal thoracicoacromial thoracicohumeral thoracicolumbar thoracics thoracoabdominal thoracoceloschisis thoracocentesis thoracocyrtosis thoracodidymus thoracodorsal thoracodynia thoracogastroschisis thoracograph thoracolumbar thoracolysis thoracomelus thoracometer thoracometry thoracomyodynia thoracoplasty thoracoscopy thoracostenosis thoracostomy thoracostraca thoracostracous thoracotomy thoral thorascope thorax thore thoria thorina thorite thorium thorn thornback thornbill thornbush thornbushes thornhead thornily thorniness thornless thornlessness thornlet thornlike thornproof thorns thornstone thorntail thornton thorny thoro thorocopagous thoron thorough thoroughbred thoroughbredness thoroughfare thoroughfarer thoroughfares thoroughfaresome thoroughfoot thoroughgoing thoroughgrowth thoroughly thoroughness thoroughpaced thoroughpin thoroughsped thoroughstem thoroughstitch thoroughstitched thoroughwax thoroughwort thorp thorpe thorps thort thorter thos those thou though thought thoughted thoughten thoughtest thoughtful thoughtfully thoughtfulness thoughtkin thoughtless thoughtlessly thoughtlessness thoughts thousand thousandfold thousandfoldly thousands thousandth thousandweight thouse thow thowt thoygh thr thrack thraep thraldom thrall thrallborn thralldom thralled thralls thram thrammle thrangity thranitic thrash thrashed thrasher thrasherman thrashing thrasonically thraver thrawcrook thrax thre thread threadbare threadbareness threadbarity threaded threader threaders threadfin threadfish threadfoot threadiness threading threadle threadlet threadlike threadmaker threads threadway thready threap threaper threat threaten threatenable threatened threatener threateneth threatening threateningly threatens threatful threatfully threatless threatning threats three threefold threefolded threefoldly threefoldness threelegged threeness threepence threepenny threepennyworth threes threescore threesome threne threnetic threnode threnodial threnodian threnodical threnodies threnodist threnody threonin threonine threpsology threptic thresh threshe threshed threshel thresher thresherman threshers threshing threshings threshold thresholds threskiornithidae threskiornithinae threw thribble thrice thricecock thridacium thridde thrift thriftbox thriftily thriftiness thriftless thriftlessly thriftlessness thrifty thrill thrilled thriller thrillfully thrilling thrillingly thrillproof thrills thrillsome thrilly thrimble thrimp thrinax thring thrinter thrioboly thripel thrips thrive thrived thriveless thriven thriver thrives thriveth thriving thrivingly thrivingness thro throat throat/swallowing throatal throatband throatily throatiness throating throatlash throatlet throatroot throats throatstrap throatwort throaty throb throbbed throbber throbbing throbbingly throbbings throbs throck throe throes thrombase thrombin thrombocyst thrombocyte thrombocytes thrombocytopenia thrombogen thrombogenic thrombolymphangitis thrombopenia thrombophlebitis thrombose thrombosis thrombostasis thrombus thronal throne throned thronedom throneless thronelet thronelike thrones throng thronged thronging throngingly throngs thronize throo thropple throstle throstlelike throstles throttle throttled throttler throttling throttlingly throu throucht through throughbear throughbred throughcome throughganging throughgoing throughgrow throughknow throughly throughout throughput throughway throve throw throwaway throwback throwed thrower throwing thrown throwoff throwout throws throwwort thruble thrum thrummers thrumming thrummy thrumwort thrush thrushel thrushes thrushlike thrust thruster thrusteth thrustful thrusting thrustings thrusts thrutch thrutchings thruthvang thruv thrymsa thryonomys thryue ths tht thuban thud thudded thudding thuddingly thuds thug thuggee thuggeeism thuggery thuggess thuggish thugs thuidium thujene thujone thujopsis thujyl thule thulir thulium thumb thumbed thumber thumbing thumbkin thumble thumbless thumblike thumbmark thumbnail thumbpiece thumbprint thumbs thumbscrew thumbstall thumbstring thumbtack thump thumped thumper thumping thumpings thumps thun thunar thunbergia thunbergilene thunder thunderation thunderball thunderbearer thunderbearing thunderbolt thunderbolts thunderburst thunderclap thundercloud thundercrash thundered thunderer thunderfish thunderflower thunderful thundergust thunderhead thunderheaded thundering thunderingly thunderous thunderously thunderousness thunderpeal thunderplump thunders thundersmite thundersquall thunderstick thunderstone thunderstorm thunderstorms thunderstrike thunderstroke thunderstruck thunderwood thunderwort thundery thundrous thundrously thunge thunnidae thurberia thurible thuribuler thuribulum thurifer thurificate thurify thuringian thurio thurl thurm thurmus thurniaceae thurrock thursday thurse thurst thurt thus thusgate thusiast thusiasterion thusly thusness thuswise thutter thuyopsis thwack thwacker thwackingly thwackstave thwaite thwart thwarted thwartedly thwarteous thwarter thwarting thwartings thwartly thwartman thwartness thwarts thwartsaw thwartship thwartways thwite thwittle thy thyestean thyine thylacine thylacitis thylacoleo thylacynus thymallidae thymate thyme thymectomize thymectomy thymegol thymelaeaceous thymelaeales thymelcosis thymele thymelical thymelici thymetic thymin thymocyte thymogenic thymol thymolphthalein thymolsulphonephthalein thymoma thymonucleic thymoprivic thymoprivous thymopsyche thymoquinone thymotactic thymotic thymus thymy thynnid thyraden thyratron thyreoadenitis thyreoantitoxin thyreoarytenoid thyreoarytenoideus thyreocolloid thyreocoridae thyreoepiglottic thyreogenous thyreoglobulin thyreohyal thyreoideal thyreoidean thyreoidectomy thyreoiditis thyreoitis thyreosis thyreotoxicosis thyridial thyridium thyrisiferous thyroadenitis thyroantitoxin thyroarytenoid thyroarytenoideus thyrocardiac thyrocele thyrocolloid thyrocricoid thyroglobulin thyroglossal thyrohyal thyrohyoid thyroid thyroideal thyroidean thyroidless thyroiodin thyrolingual thyroparathyroidectomize thyroparathyroidectomy thyroprivia thyroprivic thyroprotein thyrostraca thyrostracan thyrotherapy thyrotoxic thyrotoxicosis thyrotropic thyrotropin thyroxine thyrsiform thyrsoid thyrsoidal thyrsus thysanocarpus thysanopter thysanoptera thysanopteran thysanopteron thysanopterous thysanoura thysanourous thysanurian thysanuriform thyself thysen ti tiahuanacan tially tiang tiao tiara tiaralike tiaras tiarella tib tibbie tibbu tiberine tiberius tibetan tibey tibi tibia tibiad tibiae tibial tibiale tibialis tibicinist tibiocalcanean tibiofibula tibiometatarsal tibionavicular tibiopopliteal tibiotarsal tibiotarsus tibouchina tibourbou tibri tiburon tiburtine tic tical tice ticed ticement tich tichodroma tichorrhine tick tickbird ticked ticket ticketed ticketer ticketing ticketmonger tickets tickie ticking tickle ticklebrain tickled ticklely tickleness tickles tickless tickleweed tickling ticklish ticklishly ticklishness tickly tickproof ticks tickseed tickseeded ticktack ticktacker ticktacktoe tickweed ticky ticul ticularly ticuna ticunan tid tidal tidally tidbit tiddle tiddley tiddling tiddlywinking tide tided tideful tideland tideless tidelessness tidely tidemaker tidemaking tiderace tides tidesurveyor tidewaiter tidewaitership tideward tidewater tidied tidies tidiest tidily tidiness tiding tidings tidley tidological tidology tidy tidying tidytips tie tieback tied tiefsten tien tieng tientsin tiepin tier tierce tierced tiered tierer tierlike tiers tiersman ties tiewig tiewigged tiff tiffany tiffanyite tiffie tiffin tiffish tiffy tifinagh tift tig tige tigellate tigellus tiger tigereye tigerflower tigerfoot tigerish tigerishly tigerishness tigerkin tigerlike tigerling tigernut tigers tigerskin tigerwood tigery tigger tight tighten tightened tightener tightening tighter tightest tightfisted tightish tightly tightness tightrope tights tightwire tiglaldehyde tiglic tignon tignum tigre tigrean tigress tigresslike tigrina tigris tigrolysis tigtag tigua tike tiki tikka tikker tiklin tikolosh tikor til tilaite tilaka tilasite tilbury tile tiled tilelike tilemaker tiler tileroot tilery tiles tileseed tilestone tileways tilework tilewright tileyard tilia tiliaceae tiliaceous tilikum tiling till tillaea tillaeastrum tillage tillamook tillandsia tilled tillein tiller tillering tillerless tillers tilleth tilletiaceae tilley tilling tillodont tillodontia tillodontidae tillotter tills tilly tilmus tilsit tilt tiltboard tilted tilter tilteth tilth tilting tiltlike tiltmaking tilts tiltup tilty tiltyard tilyer timable timacy timaeus timalia timaliidae timaliinae timaliine timaline timarau timawa timazite timbale timbals timbe timber timbered timberer timberhead timbering timberland timberless timberlike timberline timberman timbern timbers timbersome timbertuned timbery timberyards timbira timbo timbre timbrel timbrels timbrology timbromania timbromaniac timbrophilic timbrophilism timbrophilist timbuktu time timeable timed timefulness timekeep timekeeper timekeepers timekeepership timeless timelessly timelessness timelia timeliine timelily timeliness timeling timely timeous timeously timeout timepiece timer timers times timeserver timeservingness timeshare timet timetable timetables timeworn timex timid timidity timidly timidness timing timish timist timocracy timocratic timocratical timolol timon timoneer timonian timonist timonize timor timorese timorous timorously timote timothean timpted timucua timuquan timuquanan tin tina tinampipi tinchel tinctoria tinctorial tinctorious tinctumutation tincture tinctured tind tindal tindalo tinder tinderbox tindered tinderish tinderous tindery tine tinea tineal tined tinegrass tineidae tineina tineine tineman tineoidea tines tinety tinful ting tinge tinged tinger tingerem tinges tingeth tinggian tingibility tingible tingidae tinging tingis tingitid tingitidae tinglass tingle tingled tingles tingletangle tingling tinglingly tinglings tinglish tingly tingtang tinguaitic tinguy tinhorn tinhorns tinhouse tinia tinier tiniest tiniforni tining tink tinker tinkerdom tinkerer tinkering tinkerlike tinkerly tinkers tinkershue tinkerwise tinkle tinkled tinkler tinklerman tinkles tinkling tinklingly tinklings tinkly tinlike tinne tinned tinnet tinnily tinning tinnitus tinny tinoceras tinosa tinplate tins tinsel tinseled tinselled tinsellike tinselling tinselly tinselmaker tinselmaking tinselwork tinsman tinsmith tinsmithing tinsmiths tinsmithy tinstone tinstuff tint tinta tintage tintamarre tinted tinter tintie tintiness tinting tintingly tintinnabula tintinnabulant tintinnabular tintinnabulary tintinnabulate tintinnabulation tintinnabulism tintinnabulist tintinnabulous tintinnabulum tintist tintless tintometer tintometric tintometry tints tinty tintype tinuing tinwald tinware tinwoman tinwork tiny tioga tion tional tionally tioned tioner tioning tionless tionontates tions tious tip tipburn tipcart tipcat tipe tipful tiphia tiphiidae tipiti tiple tipless tiplet tipman tipmost tipoff tiponi tipped tipper tipperary tippet tipping tipple tippleman tippler tippling tipproof tippy tips tipsifier tipsify tipsily tipstaff tipster tipstock tipsy tiptail tipteerer tiptilt tiptoe tiptoed tiptoeing tiptoeingly tiptoes tiptop tiptopness tiptoppish tiptoppishness tipula tipularia tipulid tipulidae tipuloidea tipup tir tirade tiraient tirais tirait tiralee tirana tirane tire tired tiredly tiredness tiredom tireless tirelessly tirelessness tiremaid tiremaker tireman tireroom tires tiresmith tiresome tiresomely tiresomeness tirewomen tirhutia tiriba tiring tiringly tirl tirma tirocinium tirolese tironian tirret tirribi tirrivee tirrwirr tirurai tirve tirwit tisane tisar tishly tisiphone tiss tissual tissue tissues tissuey tisswood tit titan titanate titanaugite titanesque titaness titania titanian titanic titanical titanically titanichthyidae titanichthys titaniferous titanifluoride titanism titanite titanitic titanium titanocolumbate titanofluoride titanolater titanomachy titanomagnetite titanoniobate titanosaur titanosaurus titanosilicate titanothere titanotherium titantic titanyl titar titbit titbitty titer titerarius titeration titfish tithable tithe tithebook titheless tithemonger tithepayer tither titheright tithes tithing tithonic tithonicity tithonographic tithymalopsis tithymalus titi titian titianesque titien tities titilate titillability titillant titillate titillates titillating titillatingly titillation titillative titillator titillatory tition titivate titivation titlark title titleboard titled titledom titleholder titleless titleproof titles titleship titlike titlist titmal titmarsh titmice titmouse titoism titoist titoki titrable titratable titration titre titrimetric titrimetry titter tittered titterer tittering titters tittery tittie tittle tittlebat tittler tittup tittuppy tittymouse titubancy titubant titubate titular titularity titularly titulary titulation titule titulus titurel tive tiwaz tiza tizeur tizzy tjanting tjosite tlaco tlakluit tlascalan tle tleasure tleports tly tmesis tmj tn tne to toa toad toadback toadeat toadeater toadery toadess toadfish toadflax toadflower toadier toadies toadish toadlet toadlike toadlikeness toadlings toads toadship toadstone toadstool toadstools toadwise toady toadyish toadyship toalmeria toast toastable toasted toaster toasting toastmaster toastmistress toasts toat toatoa toba tobacco tobaccoey tobaccofied tobaccoite tobaccoless tobaccolike tobaccoman tobacconalian tobacconize tobaccophil tobaccoroot tobaccowood tobacker tobago tobiah tobias tobikhar tobira toboggan tobogganer tobogganing tobramycin tobyman tocainide tocalote toccata tocharese tocharian tocharish tocher tocherless toco tocobaga tocodynamometer tocogenetic tocokinin tocological tocologist tocology tocome tocometer tocororo tocsin tocsins tocusso toda today todder toddick toddle toddled toddlekins toddler toddling toddy toddyman todea todidae todus tody toe toeboard toecap toecapped toed toefl toehold toeing toelike toellite toenail toenails toes toetoe toff toffing toffish toffy tofieldia toft tofter toftman tofts tofu tog toga togaed togate togated togawise together togetherhood togetheriness togetherness toggel toggery togging toggle togless togo togs togue togyther toheroa toho tohubohu tohunga toi toil toiled toiler toilers toilet toileting toiletry toilets toilette toiletted toilettes toiletware toilful toilfully toiling toilingly toilless toillessness toils toilsome toime toits tokamak tokay toke tokelau token tokenism tokenless tokens tokimentoes tokology tokopat tokyo tola tolable tolamine tolan tolane tolazamide tolbutamide told toldo toldos tole toled toledan toledo toledoan tolerability tolerable tolerableness tolerablish tolerably tolerance tolerances tolerancy tolerant tolerantism tolerantly tolerate tolerated tolerates toleration tolerationism tolerative tolerator tolerism tolfraedic tolguacha tolidine tolinase toll tollbooth tolled toller tollery tollgatherer tolliker tolling tollis tollkeeper tollmaster tollpenny tolls tolltaker tolly tolowa tolpatchery tolsey tolstoy tolstoyan tolstoyism tolstoyist toltec toltecan tolu tolualdehyde toluate toluene toluic toluide toluidine toluido tolunitrile toluol toluquinaldine tolusafranine toluylene toluylenediamine tolyl tolylenediamine tolypeutes tom toma tomahawk tomain toman tomans tomatillo tomato tomatoes tomb tombac tombal tombe tombed tombic tombless tomblet tombola tombolo tomboy tomboyful tomboyish tomboyishly tomboyishness tombs tombstone tombstones tomcat tomcod tome tomed tomeful tomelet toment tomentous tomentulose tomes tomfool tomfoolery tomfoolish tomfoolishness tomial tomin tomish tomistoma tomium tomjohn tommer tommy tommybag tommycod tommyrot tomnoup tomograph tomography tomopteridae tomopteris tomorn tomorrow tomorrower tomorrowing tomorrowness tomorrows tomosis tompion tomtate tomtit tomtitmouse tomtits ton tonal tonalamatl tonalite tonalitive tonality tonallo tonally tonation tondekarthorn tondo tonducting tone toned toneless tonelessly tonelessness toneme toneproof toner tones tonetic tonetician tonetics toney tonga tonger tongrian tongs tongue tongued tonguedoughty tonguefence tongueful tonguelet tonguelike tongueproof tonguer tongues tonguesman tonguesore tonguester tonguetip tonguing tonic tonically tonicize tonicobalsamic tonicoclonic tonicostimulant tonics toniest tonify tonight tonikan toning tonish tonishness tonitruant tonitruone tonitruous tonkin tonkinese tonlet tonna tonnage tonneau tonneaued tonnishly tonnishness tonoclonic tonogram tonograph tonology tonometer tonometric tonometry tonophant tonoplast tonoscope tonotactic tonous tons tonsbergite tonsil tonsilectomy tonsilitic tonsillary tonsillectome tonsillectomic tonsillectomy tonsillith tonsillitic tonsillitis tonsillolith tonsillotome tonsilomycosis tonsils tonsor tonsorial tonsurate tonsure tonsured tontine tontiner tonto tonus tony tonyhoop too tooby toodleloodle toof took tooken tookest tool toolbook toolbox toolholding tooling toolless toolmake toolmaker toolmaking toolman toolmark toolmarking toolplate toolroom tools toolsetter toolshed toolslide toolstock toolstone toomly toon toonwood toop toorie toot tooted tooth toothache toothaches toothaching toothbill toothbrush toothbrushy toothchiseled toothcomb toothcup toothdrawer toothed toother toothful toothill toothless toothlessly toothlessness toothlet toothlike toothpick toothpicks toothplate toothsome toothstick toothwash toothwork toothy tooting tootle tootlish tootsies tootsy toozle top toparch toparchia toparchical toparchy topass topatopa topaz topazine topazite topazolite topazy topcast topchrome topcoat tope topee topeewallah topeka topeng topepo toper toperdom topers topes topesthesia topfull topgallant toph tophaike tophet tophetic tophetize tophi tophus tophyperidrosis topi topia topiarian topiarist topiarius topiary topic topical topically topics topinambou topinish topknot topknotted toplike toplofty topmaker topman topmost topnotch topnotcher topo topocentric topochemical topognosia topografiche topograph topographer topographers topographic topographica topographical topographically topographics topographische topographist topographize topography topolatry topologic topological topology toponarcosis toponymic toponymical toponymist toponymy topophobia topophone topotactic topotaxis topotype topotypic topotypical topped topper toppermost topping toppingly toppingness toppings topple toppled toppler topples toppling topply toppy tops topsail topsails topside topsides topsl topsoil topstone topswarm topsy toptail toque tor tora torah toraja toral torbanite torbanitic torbernite torc torcel torch torchbearer torchbearers torchbearing torcher torches torchlight torchlike torchman torchwood torchwort torcular tore torero toreumatography toreutic toreutics torfaceous torfel torgoch torgot toriest torified torii torilis torinese toriness torma torment tormentation tormentative tormented tormentedly tormentilla tormenting tormentingly tormentive tormentor tormentors tormentress tormentry torments tormodont torn tornade tornadic tornado tornadoesque tornadoproof tornal tornaria tornarian tornese torney tornillo tornote tornus toro toroidal torolillo toromona toronto torontonian tororokombu torosaurus torosity torotoro torous torpedineer torpedinidae torpedo torpedoed torpedoes torpedoist torpedolike torpedoplane torpent torpescence torpescent torpid torpidity torpidly torpidness torpify torpille torpitude torpor torporific torquated torque torqued torques torr torrance torrefication torrent torrentful torrentfulness torrential torrentially torrentine torrentlike torrents torrentwise torricellian torrid torridly torridness torrubia tors torsade torsades torse torsel torsibility torsigraph torsile torsiogram torsiograph torsiometer torsion torsional torsionally torsioning torsive torsk torso torsometer torsos tort torta torte torticollis torticone tortile tortility tortilla tortille tortiller tortoise tortoiselike tortoises tortoiseshell tortoni tortricine tortricoid tortricoidea tortrix torts tortulaceae tortulaceous tortulous tortuose tortuosity tortuous tortuously tortuousness torture tortured torturedly torturer tortures torturing torturingly torturously toru torulaceous torulaform torulose torulosis torulus torus torve torvid torvous toryess toryfication toryfy toryhillite toryism toryship toryweed tosaphist tosaphoth toscanite tosephta tosephtas tosh tosher toshery toshly toshy toskish toss tossed tosses tossicated tossing tossings tossment tosspot tossup tost tosticate toston tosy tot tota total totaled totalitarian totalitarianism totality totalization totalizer totalled totalling totally totalness totals totanine totanus totaquina totara totchka tote toted totem totemic totemically totemistic totemization totemy toter tother totidem totipalmatae totipalmation totipotency totipotent totipotential totitive totius toto totonac totonaco totora totoro totquot tots totter tottered tottering totteringly totters tottery totting tottle totty tottyhead totuava totum toty tou toucanet toucanid touch touchableness touchback touchbell touchbox touchdown touched touchedness toucher touches toucheth touchhole touchily touchiness touching touchingly touchous touchpan touchpiece touchstone touchwood touchy toug tough toughen toughened toughener tougher toughest toughhearted toughish toughly toughness tought toujours toumnah tounatea toup toupee tour toured tourette touring tourist touristdom touristic touristry tourists touristship touristy tourize tourmaline tourmalinic tourmaliniferous tourmalinization tourmalite tourn tournament tournamental tournaments tournant tournay tournee tournefortian tourney tourneys tourniquet tournoyant tournure tours tourte tous tousche touse touser tousle tousled tously tousy tout toute touted touter touts touzled touzling tovar tovaria tovariaceae tovarish tow towai towan toward towardly towardness towards towboat towd towdn towed towel toweled towelette towelled towelling towelry towels tower towered towering towerlet towerlike towerman towerproof towers towerwise towerwort towery towght towhead towheaded towing towkay towlike towline towmast town towned townee townet townfolk townhood townhouse townify towniness townish townishly townishness townist townland townless townlet townlike townling townly townman towns townsboy townscape townsendite townsfolk township townships townshyppe townside townsite townsman townsmen townspeople townward townwards townwear towny towrope tows towser towsled towsy towy tox toxa toxalbumic toxalbumin toxamin toxaphene toxcatl toxemia toxic toxicaemia toxically toxicant toxicemia toxicoderma toxicodermatitis toxicodermatosis toxicodermitis toxicogenic toxicognath toxicohaemia toxicoid toxicological toxicologically toxicologist toxicology toxicopathy toxicophagous toxicophidia toxicophobia toxicosis toxicotraumatic toxidermic toxidermitis toxifera toxiferous toxigenic toxiinfection toxiinfectious toxin toxinfection toxinfectious toxinosis toxiphobia toxiphobiac toxiphoric toxity toxodon toxodontia toxoglossa toxoglossate toxoid toxon toxone toxonosis toxophilism toxophilite toxophilitic toxophilitism toxophilous toxophily toxophorous toxoplasmosis toxostoma toxotae toxotes toxotidae toy toydom toyed toyer toyeth toyful toyfulness toying toyish toyishness toyland toyless toylike toymaking toyman toyon toyota toys toyshop toysome toywoman tozee tozer tra trabacolo trabal trabascolo trabeae trabeatae trabeated trabecula trabeculae trabecular trabecularism trabeculated trabeculation trabecule trabuch trabucho trace traceable traceably traced tracer traceried traceries tracery traces trachea tracheal trachealgia trachean trachearian tracheary tracheata tracheate tracheation tracheid tracheidal tracheitis trachelagra trachelate trachelectomopexia trachelectomy trachelismus trachelium trachelobregmatic trachelocyllosis trachelology trachelomastoid trachelopexia tracheloscapular trachelospermum trachenchyma tracheobronchitis tracheocele tracheoesophageal tracheofissure tracheolar tracheolaryngeal tracheolaryngotomy tracheole tracheopathia tracheopathy tracheophonae tracheophone tracheophonesis tracheophony tracheoplasty tracheopyosis tracheoschisis tracheoscopic tracheoscopist tracheostenosis tracheostomy tracheotomist tracheotomize tracheotomy trachinidae trachinus trachitis trachodon trachodont trachodontid trachodontidae trachoma trachomas trachomatis trachomatous trachomedusae trachyandesite trachycarpous trachycarpus trachymedusae trachymedusan trachyphonia trachyphonous trachypteridae trachypteroid trachypterus trachyspermous trachyte trachytes trachytic tracing tracingly tracings track trackage trackbarrow tracked tracker trackers trackhound tracking tracklayer trackless tracklessly tracklessness trackman trackmanship tracks trackshifter trackwalker trackway trackwork tract tractability tractable tractarianism tractate tractator tractatule tractellate tractellum tractility traction tractioneering tractite tractive tractor tractoration tractorist tractorization tractorize tractory tractrix tracts tracy tradable tradal trade tradecraft traded tradeful tradeless trademark trademarked trademaster tradendarumque tradeoff trader traders tradership trades tradescantia tradesman tradesmanlike tradesmanship tradesmen tradespeople tradesperson tradeswoman trading tradingpost tradite tradition traditional traditionalist traditionalistic traditionality traditionally traditionarily traditionary traditionate traditionately traditioned traditionist traditionmonger traditions traditive traditor traditorship traduce traducement traducer traducian traducianism traducianist traducing traducingly traducteurs traduction traductionist traductions trady trae traffic trafficability trafficable trafficableness trafficked trafficker traffickers trafficking trafficless traffics trafficway trafflicker trag tragacanth tragal tragasol tragedian tragedianess tragedians tragedical tragedienne tragedies tragedist tragedization tragedize tragedy tragelaph tragelaphine tragelaphus tragi tragic tragica tragical tragicality tragically tragicanth tragicaster tragicly tragicness tragicofarcical tragicoheroicomic tragicolored tragicomedy tragicomic tragicomical tragicomically tragicoromantic tragicose tragoediam tragulidae traguline traguloid traguloidea tragus trah traheen trahison trail trailblaze trailed trailer trailers trailhead trailiness trailing trailingest trailingly trailmaker trailmaking trailman trails traily train trainage trainagraph trainband trainbolt trained trainee trainer trainful training trainless trainload trainloads trainmaster trainmen trains trainsick trainster traintime trainy traipse traipsed traipsing trait traite traited traites traiting traitless traitor traitorize traitorlike traitorling traitorous traitorously traitorousness traitors traits traject trajectile trajection trajectory trajet tralatician tralaticiary tralatition tralatitious tralatitiously tralira tram trama tramcar tramcars trame tramless tramline tramman trammel trammeling trammelingly trammelled trammellingly trammels trammer tramming trammon tramontane tramp trampage trampdom tramped tramper trampers trampess tramping trampishly trample trampled trampler tramples tramplike trampling tramplings trampolin trampoline trampoose trampot tramps tramroad trams tramway tramwayman tramways trance tranced trancedly trancelike tranchefer trancoidal tranka tranker trankum tranquil tranquility tranquilization tranquilize tranquilizer tranquilizing tranquilizingly tranquillement tranquillise tranquillised tranquillities tranquillity tranquillization tranquillize tranquillized tranquillizer tranquillizing tranquilly trans transaccidentation transact transacted transacting transaction transactional transactionally transactions transalpine transalpinely transamination transanimate transanimation transapical transappalachian transaquatic transatlantic transatlantically transatlantican transatlanticism transaudient transbaikal transbay transboreal transcalency transcalent transcalescent transcaucasian transcend transcended transcendence transcendency transcendent transcendental transcendentalism transcendentalist transcendentalistic transcendentalists transcendentalize transcendentally transcendently transcendentness transcendible transcending transcendingness transcends transcension transcipt transcolor transcoloration transcondyloid transconscious transcontinental transcorporate transcorporeal transcortical transcribble transcribbler transcribe transcribed transcriber transcribing transcript transcription transcriptional transcriptionally transcriptitious transcriptive transcriptively transcurrent transcurrently transcurvation transcutaneous transdermic transdesert transdialect transdiaphragmatic transducer transduction transect transection transempirical transenna transept transeptal transeptally transepts transequatorial transeunt transexperiential transfer transferability transferable transferableness transferably transferal transference transferography transferor transferral transferred transferrer transferribility transferring transferror transfers transfigurate transfiguration transfigure transfigured transfigurement transfigures transfiguring transfinite transfix transfixation transfixed transfixes transfixing transfixion transfixture transfluent transfluvial transflux transforation transform transformation transformations transformator transformed transformer transforming transformism transformistic transforms transfrontier transfuge transfugitive transfusable transfused transfuser transfusible transfusion transfusionist transfusions transfusive transgredient transgress transgressed transgresses transgresseth transgressing transgressingly transgressings transgression transgressional transgressions transgressive transgressively transgressor transgressors transhipment transhipped transhumanate transhumanation transhumance transhumanize transhumant transience transiency transient transientness transigence transigent transiliac transiliency transilient transillumination transimpression transincorporation transindividual transinsular transire transischiac transisthmian transistor transit transitable transite transiter transition transitional transitionary transitionist transitions transitive transitiveness transitivism transitivity transitman transitorily transitoriness transitory transits transitus transjordanian translade translatableness translate translated translater translates translating translation translational translations translative translator translatorese translators translatorship translatory translay transleithan translinguate transliterate transliterated transliterating transliteration transliterator translocate translocation translocatory translucence translucency translucent translucently translucid translunary transmaterial transmedial transmedian transmental transmentation transmeridional transmethylation transmigrant transmigration transmigrationism transmigrationist transmigratively transmigrator transmigratory transmissibility transmissible transmission transmissional transmissionist transmissions transmissive transmissively transmissiveness transmissivity transmit transmits transmittable transmittal transmittancy transmittant transmitted transmitter transmitter/ transmittible transmitting transmittit transmogrifier transmold transmontane transmorphism transmundane transmural transmuscle transmutable transmutableness transmutably transmutation transmute transmuted transmuter transmutes transmuting transnatation transnational transnature transnihilation transnormal transoceanic transocular transom transomed transpacific transpadane transpanamic transparcncy transparence transparencies transparency transparent transparentize transparently transparentness transparietal transparish transpeciation transpeer transpenetrable transpeninsular transpersonal transphysical transpicuity transpierced transpirability transpirable transpiration transpirative transpiratory transpire transpired transpiring transpirometer transplace transplant transplantar transplantation transplanted transplantee transplanting transplants transpleural transpond transponible transpontine transport transportability transportance transportation transportational transportationist transportative transported transportedly transportedness transporter transporting transportingly transportive transportment transporto transports transposability transposable transposableness transposal transpose transposed transposer transposing transposition transpositional transpositions transpositive transpository transpour transprocess transprose transproser transpulmonary transpyloric transradiable transreal transrectal transrectification transrhenane transsegmental transsensual transseptal transsepulchral transshape transshift transship transshipment transshipped transshipping transstellar transsubjective transtemporal transteverine transthalamic transthoracic transubstantial transubstantially transubstantiate transubstantiated transubstantiationalist transubstantiationite transubstantiatively transubstantiatory transudation transudatory transude transuded transumpt transumption transuranian transuranium transurethral transuterine transvaal transvaaler transvaalian transvaluate transvaluation transvalue transvasate transvasation transvase transvection transverbate transversae transversal transversale transversalis transversality transversan transversary transversaux transverse transversely transverseness transverser transversion transversive transversocubital transversomedial transversum transvert transverter transvestism transvestite transvestitism transvolation transwritten transylvania trant tranter tranters tranylcypromine trap trapa trapaceous trapdoor trapes trapezate trapeze trapezial trapezian trapeziform trapezing trapezium trapezius trapezohedron trapezoid trapezoidal trapezoidiform trapfall traphole trapiferous traplight traplike trapmaker trappean trapped trapper trapperlike trappers trappiness trapping trappings trappist trappose trappous trappy traps trapse trapseing trapshooter trapshooting trapunto trash trashery trashify trashily trashiness trashing trashless trashy trass trastevere trasteverine trated trating traulism traumasthenia traumatic traumaticin traumaticine traumatise traumatology traumatopnea traumatosis traumatotactic trautvetteria travail travaileth travailing travailled travailler travailleur travails travale travally travated travaux trave travel travelability traveldom traveled traveler travelers traveling travellable travelled traveller travellers travelling travells travelogue travels travers traversable traversal traversary traverse traversed traverses traversewise traversework traversing traversion travertine travestie travesties travesty travis travois travoy trawl trawlboat trawler trawlerman trawling trawllng trawlnet tray trayful traypse trays trcated tre treacher treacherous treacherously treacherousness treachery treacle treaclelike treaclewort treacliness treacly tread treadboard treading treadle treadled treadmill treads treadwheel treason treasonable treasonably treasonful treasonish treasonist treasonous treasonously treasons treasurable treasure treasured treasureless treasurer treasurers treasurership treasures treasuress treasuries treasuring treasurous treasury treasuryship treat treatable treatableness treatably treated treatee treater treaties treating treatise treatiser treatises treatment treatments treator treats treaty treatyist treatyless trebellian treble trebled trebleness trebles trebling trebly trecentist treckly treckschuyt treculia tred treddle tredecile tredille tree treebeard treebine treed treefish treeful treehair treehopper treeify treeiness treeless treelessness treelet treeling treemaker treemaking treeman treen trees treescape treeship treespeeler treetop treetops treeward treewards treey trefle trefoil trefoiled trefoils trefoilwise trehalose treillage trek trekker trellis trellised trellises trellislike trelliswork tremandra tremandraceae tremar trematoda trematode trematodea trematodes tremble trembled tremblement trembler trembles trembleth trembling tremblingly tremblingness tremblings tremblor trembly tremellaceae tremellaceous tremellales tremelliform tremelline tremellineous tremelloid tremendous tremendously tremendousness tremens tremetol tremie tremolant tremolist tremolite tremolitic tremolo tremor tremorlessly tremors tremour tremulant tremulate tremulation tremulo tremulous tremulously tremulousness trenail trench trenchancy trenchant trenchboard trenched trencher trencherless trencherlike trenchermaker trenchermaking trencherman trenchermen trenchers trencherside trencherwise trencherwoman trenches trenchlet trenchlike trenchmaster trenchmore trenchward trenchwise trenchwork trend trending trendings trendle trends trendy trent trental trente trentepohlia trentepohliaceae trentepohliaceous trentine trenton trepan trepanation trepang trepanningly trephination trephiner trephocyte trepidant trepidation trepidatory trepidity trepidly trepidness treponema treponemicide trepostomata trepostomatous tres tresor trespass trespassage trespassed trespasser trespassers trespasses trespassing trespassory tress tressed tressels tresses tressful tressilate tressilation tressless tresslike tresson tressour tressure tressured tressy trest trestle trestles trestlewise trestling tret treuen trevelyan trevet trew trews trewsman tri tria triac triacetamide triacetate triacetonamine triachenium triacontaeterid triacontane triaconter triact triactinal triactine triad triadenum triadical triadically triadism triadist triads triaene triaenose triagonal triakisicosahedral triakisoctahedron triakistetrahedron trial trialate trialism trialist triality trials triamcinolone triamid triamide triaminolone triammonium triamterene triamylose triandria triangle triangled triangles trianglewise trianglework triangula triangular triangulately triangulation triangulator triangulopyramidal triangulotriangular triangulum triannulate trianon trianthous triapsidal triarchate triarchy triarctic triareal triarii triarthrus trias triassic triaster triathlon triatic triatoma triatomic triatomicity triaxon triaxonian triazane triazine triazo triazole tribade tribadism tribady tribal tribally tribarred tribase tribasic tribasicity tribasilar tribberlations tribe tribeless tribelet tribes tribesman tribesmanship tribesmen tribespeople tribeswoman triblet triboelectric triboelectricity tribofluorescence tribofluorescent triboluminescence tribometer tribonema tribonemaceae tribophosphorescence tribophosphorescent triborough tribrac tribrachial tribrachic tribracteate tribracteolate tribromacetic tribromide tribromoethanol tribromophenol tribromphenate tribromphenol tribular tribulation tribulations tribuloid tribulus tribunal tribunals tribunate tribunaux tribune tribunes tribuneship tribuni tribunitial tribunitive tributa tributable tributaries tributarily tributariness tributary tribute tributes tributist tributyrin tricae tricalcium tricapsular tricar tricarballylic tricarbimide tricarboxylic tricarinate tricarinated tricarpellary tricarpellate tricarpous trice tricellular tricenary tricennial tricentenarian tricentenary tricentennial tricentral tricephal tricephalic tricephalous triceps triceratops triceria tricerion tricerium trichauxis trichechine trichechodont trichevron trichi trichia trichina trichinae trichinella trichiniferous trichinization trichinize trichinoid trichinopoly trichinoscope trichinoscopy trichinosed trichinosis trichinotic trichinous trichite trichitic trichiurid trichiuridae trichiuroid trichloracetaldehyde trichloracetic trichloride trichlormethane trichlormethiazide trichloroacetic trichloroethane trichloroethylene trichloromethyl trichobezoar trichobranchia trichobranchiate trichocarpous trichocephaliasis trichocephalus trichoclasis trichocyst trichode trichoderma trichodesmium trichodontidae trichoepithelioma trichogen trichogenous trichoglossidae trichoglossine trichogramma trichogrammatidae trichogyne trichogynial trichogynic trichoid trichological trichologist trichology trichomanes trichomaphyte trichomatose trichomatosis trichomatous trichomic trichomonad trichomonadidae trichomonal trichomoniasis trichonosus trichopathic trichophyllous trichophyte trichophyton trichophytosis trichoplax trichopter trichoptera trichopteran trichopteron trichopterous trichopterygid trichorrhexic trichorrhexis trichos trichosanthes trichoschisis trichosporange trichosporangial trichosporum trichostasis trichostrongyle trichostrongylid trichothallic trichotillomania trichotomic trichotomism trichotomist trichotomous trichotomously trichromat trichromate trichromatic trichrome trichromic trichronous trichuris trichy tricinium tricircular trick tricked tricker trickery trickful trickiness tricking trickish trickishly trickishness trickle trickled trickles tricklet tricklike trickling tricklingly trickment trickproof tricks tricksical tricksily tricksiness tricksome trickster trickstering trickstress tricksy tricktrack tricky triclad tricladida triclinate triclinia triclinial tricliniary triclinic triclinium triclofos tricoccous tricolette tricolic tricolon tricolor tricolored tricolour tricoloured tricolumnar tricompound triconch triconodont triconodonta triconodontid triconodontoid triconsonantal tricophorous tricorn tricornute tricorporal tricorporate tricostate tricosylic tricotyledonous tricresol tricrotic tricrotism tricrotous tricrural trict tricurvate tricuspal tricuspid tricuspidated tricussate tricycle tricyclene tricyclic tricyclics tricyrtis tridacna tridacne tridacnidae tridaily triddler tridecane tridecene tridecoic tridecyl tridecylic trident tridentate tridentine tridepside tridiametral tridiapason tridimensional tridimensionality tridimensioned tridiurnal tridominium tridrachm triduum tridynamous tried triedly trielaidin triene triennial trienniality triennially triens trier trierarchal trierarchy trierucin tries trieteric trieterics trieth triethanolamine triethylamine triethylstibine trifacial trifarious triffled trifilar trifistulary triflagellate trifle trifled trifler trifles trifling triflingness trifloral triflorate triflorous trifluoride trifluouride triflupromazine trifocal trifoil trifold trifoliated trifoliolate trifoliosis trifolium trifoly triforium triform triformed triformin triformity triformous trifuran trifurcation trig trigamist trigamous trigamy trigeminal trigeminous trigeneric trigesimal trigger triggered triggering triggerless triggers trigintal trigintennial triglandular triglid triglidae triglochid triglot trigly triglyceride triglyceryl triglyph triglyphal triglyphed triglyphic trigness trigon trigonally trigonella trigonelline trigoneutic trigonia trigoniaceae trigoniacean trigoniaceous trigonid trigoniidae trigonite trigonitis trigonocephalous trigonocephalus trigonodont trigonometer trigonometric trigonometrical trigonometry trigonon trigonous trigonum trigram trigrammatic trigrammatism trigrammic trigraph triguttulate trigyn trigynia trigynian trigynous trihedral trihedron trihemimeral trihemimeris trihemiobol trihemiobolion trihemitetartemorion trihexyphenidyl trihoral trihourly trihydrated trihydric trihydride trihydroxy triiodothyronine trijugous triker trikerion triketo trikir trilabiate trilamellar trilaminar trilarcenous trilaterality trilateralness trilaurin trilemma trilinear trilineate trilingual trilinguar trilinolate trilinoleate trilisa trilite triliteral triliteralism triliterality triliteralness trilith trilithic trilithons trill trilled trillet trillibub trilliin trilling trillion trillionaire trillionize trillionth trillium trillo trilobate trilobated trilobed trilobita trilobite trilobitic trilocular trilogic trilogical trilogies trilogist trilogy trilophodont trim trimacer trimacular trimaient trimargarate trimastigate trime trimellitic trimensual trimeprazine trimer trimera trimercuric trimeric trimeride trimerite trimerization trimerous trimesic trimesinic trimesitic trimesitinic trimester trimestral trimestrial trimesyl trimetalism trimetallic trimeter trimethobenzamide trimethoprim trimethyl trimethylacetyl trimethylamine trimethylene trimethylstibine trimetric trimetrogon trimipramine trimly trimmed trimming trimmings trimness trimodal trimodality trimolecular trimonthly trimoric trimorph trimorphic trimorphous trimotor trimotored trims trimstone trimtram trimyristin trinacrian trinal trinality trinalize trinary trindle trine trinely trinervate trinerve trineural tringine tringle trinidad trinidadian trinidado trinil trinitarian trinitarianism trinitration trinitrin trinitro trinitrocarbolic trinitrocellulose trinitroglycerin trinitromethane trinitroxylene trinitroxylol trinity trinityhood trink trinkerman trinket trinketed trinketer trinketry trinkets trinkle trinklet trinkums trinoctial trinoda trinodal trinode trinomial trinomialist trinomially trinovant trinovantes trintle trinucleate trinucleus trio triobol trioctile triocular triode triodion triodon triodontoid triodontoidea triodontoidei triodontophorus trioecia trioeciously trioecism triolcous trioleate triolefin trioleic triolein triolet trionychidae trionychoid trionychoidean trionym trionymal trionyx trioperculate triopidae triorchis triorchism triorthogonal trios triose trious triovulate trioxide trioxymethylene triozonide trip tripal tripaleolate tripalmitin tripara triparted tripartedly tripartible tripartite tripartitely tripartition tripaschal tripe tripedal tripel tripelennamine tripelike tripeman tripemonger tripennate tripenny tripeptide tripersonal tripersonalist tripersonality tripersonally tripeshop tripestone tripetaloid tripewife triphammer triphane triphase triphaser triphasia triphasic triphenyl triphenylamine triphenylcarbinol triphenylmethane triphenylmethyl triphenylphosphine triphibian triphibious triphony triphyletic triphylite tripinnate tripinnatifid tripitaka triplasic triple tripled triplegia tripleness triplet tripletree triplets triplett triplewise triplexity triplication triplicative triplicature triplice triplicist triplicity triplicostate tripliform tripling triplite triplocaulescent triplocaulous triploidic triploidy triplopia triply tripod tripodal tripodial tripodical tripods tripody tripointed tripolar tripoli tripoline tripolitan tripolite tripos tripotassium tripped tripper trippet tripping trippingly trippingness trippist tripple trippler triprolidine trips tripsill tripsis tripsome triptane tripterous triptote triptych triptyque tripudiary tripudiate tripudiation tripudist tripudium tripy tripyrenous triquetra triquetral triquetric triquetrous triquetrum triquinate triradial triradiate triradiately triradiation triratna triregnum trireme triremes trirhombohedral trirhomboidal triricinolein trisaccharide trisaccharose trisagion trisazo trisceptral trisect trisected trisecting trisectrix triseme trisensory trisepalous triseptate triserial triserially trisetose trisetum trisilicane trisilicic trisinuate trisinuated triskele triskelion trismegist trismegistic trisoctahedral trisoctahedron trisodium trisome trisomic trisotropis trispast trispermous trisplanchnic trisporic trisporous trist tristam tristania tristate triste tristearin tristesse tristetrahedron tristeza tristichaceae tristigmatic tristiloquy tristram tristylous trisubstituted trisubstitution trisul trisula trisulcate trisulcated trisulphate trisulphide trisulphone trisulphonic trisylabic trisyllabical trisyllabically trisyllabism trisyllable tritangent tritangential tritanopic trite triteleia tritely tritemorion tritencephalon triteness triternately triterpene tritheism tritheist tritheistic tritheistical trithing trithiocarbonate trithionic trithrinax tritical triticality triticalness triticeous triticeum triticoid tritish tritium tritocerebrum tritocone tritoma tritomite triton tritonal tritone tritoness tritonia tritonic tritonoid tritonous tritonymph tritonymphal tritopine tritor tritorium tritriacontane trittichan tritubercular trituberculata triturable trituration triturature triturium triturus tritylodon triumfetta triumohal triumph triumphal triumphance triumphant triumphantly triumphator triumphed triumpheth triumphing triumphs triumvir triumviral triumvirate triumviri triumvirship triungulin triunion triunitarian triunity triurid triuridales trivalency trivalent trivalve trivalvular trivant trivantly trivariant triverbial trivet trivetwise trivial trivialism trivialist trivialities triviality trivialness trivirgate trivium trivoltine triweekly trixie trixy trizoic trizomal trizone trizonia troad troat troblesome trocar trocars trochaic trochal trochalopoda trochalopodous trochanter trochanteric trochanterion trochantin trochate troche trocheameter trochelminth trochi trochiform trochila trochili trochilics trochilidine trochilidist trochiline trochilopodous trochiscus trochite trochius trochlea trochleariform trochleary trochleate trochleiform trochocephalia trochocephalus trochodendraceae trochodendraceous trochodendron trochoid trochoidally trochometer trochophore trochosphaera trochosphaerida trochosphere trochospherical trochozoa trochozoic trochozoon trock troco troctolite trod trodden troegerite troezenian troft trog troggin troglodytal troglodyte troglodytes troglodytic troglodytidae troglodytinae troglodytish troglodytism trogon trogonidae trogoniformes trogonoid trogs trogue troiades troilite troisieme troker troleandomycin troll trolldom trolleite troller trolley trolleybus trolleyer trolleyman trolleys trollflower trolling trollius trollman trollol trollop trollopean trollopeanism trollops trollopy trolly tromba trombidium trombone trombonist tromometer tromometric tromometrical tromometry tromp tromped trompil trompillo tromple trompled tron trona tronador tronage tronchi trone troner troo troonk troop trooped trooper trooperess troopers troopfowl trooping troops troopship troostitic troot trop tropaeolaceae tropaeolaceous tropaeolin tropaeolins tropaeolum tropal troparia troparion tropary tropate trope tropeic troper tropes tropesis trophaea trophal trophallactic trophallaxis trophectoderm trophedema trophema trophesial trophesy trophi trophic trophical trophically trophicity trophied trophies trophis trophobiont trophobiosis trophoblast trophoblastic trophodisc trophodynamic trophogenic trophology trophonema trophoneurosis trophoneurotic trophonucleus trophopathy trophophore trophophorous trophoplasm trophoplasmatic trophoplasmic trophoplast trophosome trophosperm trophotherapy trophotropism trophy trophyless tropic tropical tropicalia tropicality tropicalize tropically tropicopolitan tropics tropidine tropidoleptus tropine tropischen tropismatic tropoi tropologic tropological tropologically tropology tropometer tropophilous tropophytic tropos tropospheric tropoyl troptometer tropyl trostera trot troth trothful trothless trothplight trotline trots trottait trotted trotter trotters trottie trotting trottles trottoir trotty troubador troubadour troubadourish troubadourism troubadourist troubadours trouble troubled troubledly troubledness troubledst troublemaker troublement troubles troubleshoot troublesome troublesomely troubleth troublin troubling troublingly troublous troublously troublousness troubly troufieaux trough troughlike troughs troughster troughway troughwise troughy trounce trounced trouncings troupe trouper troupes troupial trouser trousered trouserian trousers trousseau trousseaux trout troutbird trouter troutful troutiness troutless troutlike trouts trouty trouvaille trouve trouvere trouverez trove troveless trover trow trowed trowel trowelful trowelfuls troweth trowing trowman trowsers trowth troy troynovant truancy truandise truant truantcy truantism truantly truantry truantship trubu truce trucebreaker truceless trucemaker trucemaking truces trucial trucidation truck truckage trucked trucker truckful trucking truckle truckler trucklingly truckman truckmen trucks truckster truculence truculency truculent truculental truculently truculentness truddo truders trudge trudged trudgen trudger trudging true trueborn truehearted trueheartedly truelike truelove trueness truer truest truf truff truffled trufflelike truffles trufflesque trug truism truisms truistic truliest trullan trullization truly truman trumbash trumbull trummel trummet trump trumped trumpery trumpet trumpeted trumpeter trumpeters trumpeting trumpetings trumpetless trumpets trumpetweed trumpetwood trumpety trumph trumpie trumping trumplike trumps trun truncage truncated truncatella truncatellidae truncately truncation truncator truncatorotund trunch trunched truncheon truncheoned truncheons trunchman trundle trundled trundlehead trundler trundletail trundling trunk trunkback trunked trunkfish trunkful trunkfuls trunking trunkless trunkmaker trunknose trunks trunkway trunkwork trunnel trunnion trunnions truo trush truss trussed trussell trusser trusses trussing trussmaker trussmaking trusswork trust trustable trustableness trustably trusted trustee trustees trusten truster trustest trusteth trustful trustfulness trustiest trustification trustify trustihood trustily trustiness trusting trustingly trustingness trustless trustlessly trustlessness trustman trustmonger trusts trustwoman trustworthily trustworthiness trustworthy trusty truth truthable truthful truthfully truthfulness truthiness truthless truthlessly truthlessness truthlike truthlikeness truths truthsman truthteller truthtelling truttaceous truvat truxilline trw try tryed trygon tryhouse trying tryingly tryingness tryout tryp trypa trypaneid trypanocide trypanolytic trypanosoma trypanosomacidal trypanosomal trypanosomatic trypanosomatidae trypanosomatosis trypanosomatous trypanosomiasis tryparsamide trypeta trypetid trypetidae tryphena tryphosa trypograph trypsinize tryptic tryptogen tryptonize tryptophan tryptophane tryptophans trysail tryst trysting trytophan tryworks tsadik tsamba tsar tsardom tsareh tsarevich tsarevna tsaritsa tsarship tsatlee tscharik tscherkess tsessebe tsetse tshi tsiltaden tsine tsingtao tsingtauite tsoneca tsonecan tss tst tsuba tsubo tsuga tsumebite tsunami tsungtu tsutsutsi tte tthe tu tua tualati tually tuamotu tuan tuar tuareg tuarn tuart tuas tuatara tuatera tuath tub tuba tubage tubaphone tubar tubarum tubate tubatoxin tubatulabal tubbal tubbeck tubbie tubbiness tubboe tubby tube tubeflower tubeform tubeful tubehearted tubeless tubelet tubelike tubemaker tubemaking tubeman tuber tuberaceous tubercle tubercled tubercles tubercula tubercular tubercularia tuberculariaceous tubercularization tubercularly tubercularness tuberculate tuberculatedly tuberculately tuberculation tuberculatogibbous tuberculatonodose tuberculatoradiate tuberculatospinous tubercule tuberculed tuberculid tuberculide tuberculiferous tuberculiform tuberculin tuberculinic tuberculinization tuberculinize tuberculization tuberculize tuberculocidin tuberculoma tuberculomania tuberculomata tuberculoprotein tuberculose tuberculosed tuberculosis tuberculotherapist tuberculotoxin tuberculous tuberculousness tuberiferous tuberiform tuberin tuberization tuberless tuberoid tuberose tuberoses tuberosity tuberous tuberousness tubes tubesmith tubework tubeworks tubful tubicinate tubicola tubicolous tubicorn tubicornous tubifer tubiferous tubifex tubificidae tubiflorales tubiflorous tubiform tubig tubik tubilingual tubinares tubingen tubiparous tubiporid tubiporidae tubiporous tubless tublet tublike tubmaking tubman tubocurarine tubolabellate tuboligamentous tuborrhea tubotympanal tubs tubular tubulariae tubularidan tubulariidae tubularly tubulate tubulated tubulation tubulator tubulature tubule tubules tubulet tubulibranch tubulibranchian tubulibranchiata tubulidentate tubulifera tubuliferan tubuliferous tubulifloral tubuliflorous tubuliform tubulipora tubulipore tubuliporid tubuliporidae tubuliporoid tubulodermoid tubuloracemose tubulose tubulously tubulousness tubulure tubulus tucana tucanae tucandera tucano tuchit tuchunate tuchunism tuchunize tuck tuckahoe tucked tucker tuckered tuckermanity tucking tucks tuckshop tucky tucuma tucuna tude tudel tudes tudesque tudoresque tue tueiron tufa tuff tuffaceous tuffing tuft tuftaffeta tufted tufter tufthunting tuftily tufting tuftlet tufts tufty tug tugboat tugboatman tugendbund tugged tugger tuggery tugging tuggingly tughra tugless tuglike tugman tugrik tugs tugui tui tuik tuille tuillette tuilyie tuis tuism tuition tuitional tuitionary tuitive tuk tukra tukulor tula tulalip tulane tulare tulasi tulbaghia tulchan tulchin tule tulip tulipa tulipflower tulipiferous tulipist tuliplike tulipomaniac tulips tulipy tulit tulkepaia tulle tullian tulode tulostoma tulsa tulsi tulu tulwar tum tumasha tumatakuru tumatukuru tumbak tumbester tumble tumbled tumbledown tumbledung tumbler tumblerful tumblerlike tumblers tumblerwise tumbles tumbleweed tumblification tumbling tumblingly tumblings tumbly tumboa tumbrel tumbril tumbrils tumed tumefy tumescence tumescent tumid tumidity tumidly tummals tummel tummer tummock tummy tumor tumored tumorous tumors tumour tumours tump tumtum tumulary tumulate tumulation tumuli tumulose tumulosity tumult tumultous tumults tumultuarily tumultuariness tumultuary tumultuate tumultuation tumultuous tumultuously tumulus tumupasa tun tuna tunable tunably tunbellied tunbelly tunca tund tundish tundra tundras tundun tune tuneably tunebo tuned tuneful tunefulness tuneless tunelessly tunelessness tunemaker tunemaking tuner tunes tunester tunful tung tunga tungan tungsten tungstenite tungstite tungstosilicic tungusic tunic tunica tunican tunicary tunicata tunicate tunicated tunicked tunicle tunicless tunics tuniness tuning tunish tunisian tunk tunker tunlike tunmoot tunnel tunneled tunneling tunnelist tunnelite tunnelled tunnellike tunnelling tunnelly tunnelmaker tunnelman tunnels tunnelway tunner tunnery tunnit tunny tuny tup tupaia tupaiidae tupakihi tupanship tupara tupek tupelo tupi tupik tupinamba tupinaqui tuple tuppence tuppentime tupperian tupperish tupperize tups tuque tuquoque tur turacin turanian turanianism turanism turanose turb turba turban turbaned turbanesque turbanette turbanless turbanlike turbans turbantop turbants turbanwise turbeh turbellarian turbellariform turbescency turbid turbidimeter turbidimetric turbidimetry turbidity turbidly turbidness turbinaceous turbinage turbinal turbinated turbination turbinatoglobose turbinatostipitate turbine turbinectomy turbined turbinelike turbinella turbinelloid turbiner turbines turbinidae turbinoid turbinotome turbit turbith turbitteen turbo turboalternator turboblower turbocharge turbocompressor turbodynamo turbofan turbogenerator turbomachine turbot turboventilator turbulence turbulency turbulent turbulently turbulentness turcica turcism turcize turcoman turcophilism turcopole turcopolier turd turdidae turdinae turdoid turdus ture tureen tureenful tureens tures turf turfdom turfed turfen turfiness turfless turfman turfs turfy turgent turgesce turgescency turgescible turgid turgidity turgidly turgidness turgite turgoid turgor turgy turi turibulum turicata turin turing turjite turk turkdom turkery turkess turkey turkeyback turkeyberry turkeybush turkeydom turkeyfoot turkeyism turkeylike turkeys turki turkic turkicize turkification turkify turkish turkishly turkishness turkism turkize turkle turklike turkmen turkmenian turkologist turkology turkoman turkomania turkomanize turkophil turkophile turkophilia turkophilism turkophobe turks turlock turlupin turmeric turmit turmoil turmoiler turmoils turn turnable turnabout turnagain turnaround turnaway turnback turnbuckle turncoat turncoatism turncock turndown turned turner turnera turneraceae turneresque turnerian turnerite turnest turneth turnhall turnhalle turnices turnicidae turnicine turnicomorphic turning turnings turnip turniplike turnips turnipweed turnipy turnix turnkey turnkeys turnoff turnout turnover turnpike turnpin turnplate turnplow turnrow turns turnskin turnsole turnspit turnstile turnt turntable turntail turnup turnwrist turonian turpantineweed turpentine turpentineweed turpentinic turpeth turpethin turpid turpidly turpitude turps turque turquoise turquoiseberry turquoiselike turquoises turr turres turret turreted turrethead turretlike turrets turrible turrical turricle turricula turriculae turricular turriculate turriferous turriform turrigerous turrilite turrilites turriliticone turrilitidae turris turritella turritellid turritelloid tursenoi tursio turtan turtle turtleback turtlebloom turtledove turtlehead turtles turtlet turtling tururi turus turves turveydrop turveydropdom turvy turwar tuscaloosa tuscan tuscanlike tuscany tuscarora tusculan tush tushed tushepaw tusher tushery tushes tusk tuskar tusked tuskegee tusker tuskish tuskless tusklike tusks tusky tussah tusser tussicular tussilago tussis tussive tussle tussock tussocks tussocky tut tutania tute tutee tutela tutelage tutelar tutelary tutelo tuth tutin tutiorism tutman tutor tutorage tutorer tutoress tutorial tutorially tutorials tutoriate tutoring tutorism tutorization tutorly tutors tutorship tutory tutress tutrice tutrix tuts tutsan tutti tuttiman tuttle tutto tutty tutu tututni tutworker tuwi tuxedo tuyere tuza tuzla tv tva tvme twa twaddle twaddledom twaddleize twaddlement twaddler twaddlingly twaddly twaddy twae twafauld twain twains twal twalpennyworth twalt twana twang twanged twanger twanging twangy twank twanker twanking twankingly twankle twanky twant twarly twas twasome twat twatterlight twattler twattling twazzy tweag tweak tweaked tweaker tweaky twee tweed tweeded tweedle tweedledee tweedledum tweeds tweedy tweel tween tweenlight tweeny tweesh tweet tweeter tweeze tweezer tweezers tweezes tweezing twelfhynde twelfth twelfthly twelfthtide twelve twelvefold twelvehyndeman twelvemo twelvemonth twelvepenny twelves twelvescore twenties twentieth twentiethly twenty twentymo twere twerp twi twibil twibilled twice twicer twicet twiching twiddle twiddler twiddling twifold twig twigged twiggen twigger twigging twiggy twigless twigs twigsome twigwithy twilight twilighted twilighty twilit twill twilled twilling twilly twilt twin twinable twinberry twinborn twindle twine twineable twined twineless twinemaker twinemaking twiner twines twinge twinges twining twiningly twinism twink twinkle twinkled twinkledum twinkleproof twinkler twinklers twinkles twinkless twinkling twinklingly twinly twinned twinner twinness twinning twins twinship twinter twiny twire twirl twirled twirler twirling twirls twirly twirrrr twiscar twist twistable twisted twistedly twistened twister twisterer twistiest twistily twistiness twisting twistingly twistings twistiwise twistless twists twisty twit twitch twitched twitchel twitcheling twitches twitchet twitchfire twitchily twitching twitchings twitchy twite twits twitted twitten twitter twitterboned twittered twitterer twittering twitterly twitters twittery twitting twittingly twixt twixtbrain twizzened twizzle two twodecker twofold twofoldness twoling twoness twopence twopenny twos twoscore twosome twould twyblade twyhynde twyse twyste tx tybamate tyburn tychism tychite tychonic tychoparthenogenesis tychopotamic tycoon tyddyn tye tyg tying tyke tyken tyking tyleberry tylerism tylerite tylerize tylion tyll tyllage tyloma tylopoda tylosaurus tylose tylosis tylostoma tylostomaceae tylostylar tylostyle tylostylus tylosurus tylotate tylotic tylotoxea tylotus tylus tymbalon tyme tymes tymp tympan tympana tympanal tympanichordal tympaniform tympaning tympanism tympanist tympanites tympanitic tympanitis tympanocervical tympanomalleal tympanomandibular tympanomaxillary tympanon tympanoperiotic tympanosquamosal tympanostomy tympanotemporal tympanum tynd tyndall tyndallization tyndallize tyndallmeter tynwald typarchical type typecast typed typees typeface typer types typescript typeset typewrite typewriter typewriters typewriting typewritten typhaceous typhemia typhia typhic typhinia typhization typhlatonia typhlatony typhlectasis typhlectomy typhloalbuminuria typhlolithiasis typhlology typhlomegaly typhlomolge typhlopexia typhlopexy typhlophile typhlopid typhloptosis typhlosis typhlosolar typhlosole typhlostenosis typhlotomy typhobacillosis typhoean typhoemia typhogenic typhoid typhoidin typhoidlike typholysin typhomalaria typhomalarial typhonia typhonian typhoon typhoonish typhopneumonia typhose typhosis typhous typhus typica typical typicality typically typicon typification typified typifies typify typifying typing typist typists typobar typocosmy typographer typographia typographic typographical typographically typographist typography typolithographic typolithography typologic typological typologically typology typomania typometry typonymal typonymic typonymous typophile typorama typoscript typotelegraph typotelegraphy typotheria typotheriidae typothetae typp typtological typtologist typtology typy tyramine tyranness tyranni tyrannial tyrannic tyrannical tyrannicalness tyrannicide tyrannicly tyrannidae tyrannies tyrannism tyrannize tyrannized tyrannizes tyrannizing tyrannoid tyrannosaur tyrannosaurus tyrannous tyrannously tyrannousness tyranny tyrant tyrantlike tyrants tyrantship tyre tyres tyrian tyriasis tyro tyroglyphid tyroglyphidae tyroglyphus tyrolean tyrolese tyrology tyroma tyromatous tyronic tyronism tyrosin tyrosinase tyrosinases tyrosine tyrosinuria tyrotoxicon tyrotoxine tyrr tyrrhene tyrrheni tyrrhenian tyrsenoi tyrtaean tyson tysonite tyt tyto tytonidae tzapotec tzareh tzendal tzolkin tzontle tzotzil tzutuhil u u.s u.s.a uaccountable ual ually uaraycu uaupe uayeb ubbenite ubbonite uber uberant uberlingen uberous uberousness uberty ubi ubication ubiety ubiquarian ubique ubiquit ubiquitarian ubiquitariness ubiquitary ubiquitist ubiquitous ubiquitously ubiquity ubussu uca ucal ucayale uchean uckia ucla udal udaler udalman udasi udder uddered udderful udderlike udders udell udi udic udish udolphoish udometer udometric udometry udomograph uds udx ueueteotl ufo ug uganda ugandan uglier ugliest uglification uglify uglily ugliness uglinesses ugly ugrian ugric ugroid ugsome ugsomely uhlan uhllo uhtensang uhtsong uigur uiguric uily uinta uintaite uintathere uintatherium uintjie uios uirina uisite uitotan uji uk ukase ukaz uke ukiyoye ukraine ukrainer ukrainian ukulele ula ulan ulatrophia ulcer ulcerable ulcerate ulcerated ulceration ulcered ulceromembranous ulcerous ulcerously ulcerousness ulcers ulcery ule ulema ulemorrhagia ulerythema uletic ulidia ulidian uliginose uliginous ulitis ull ulla ullage ullaged ullagone uller ulling ullman ullmannite ulluco ulmaceae ulmaceous ulmaria ulmic ulmo ulmost ulmous ulmus ulna ulnad ulnae ulnar ulnare ulnaria ulnaris ulnocarpal ulnoradial uloborid uloboridae ulocarcinoma ulonata uloncus ulophocinae ulorrhea ulothrix ulotrichaceae ulotrichaceous ulotrichales ulotrichan ulotriches ulotrichi ulotrichous ulotrichy ulrichite ulster ulsterette ulsterian ulstering ulsters ulterior ulteriorly ultima ultimata ultimate ultimatelv ultimately ultimateness ultimation ultimatum ultimo ultimobranchial ultimogenitary ultimogeniture ultimum ultione ultori ultra ultrabasic ultrabelieving ultrabenevolent ultrabrachycephalic ultrabrachycephaly ultrabrilliant ultracentralizer ultrachurchism ultracivil ultracomplex ultraconfident ultraconscientious ultraconservative ultracredulous ultracrepidarianism ultracrepidate ultracritical ultradeclamatory ultrademocratic ultradespotic ultradignified ultradolichocephalic ultradolichocephaly ultraeligible ultraemphasis ultraenergetic ultraenforcement ultraenthusiasm ultraepiscopal ultraevangelical ultraexpeditious ultrafantastic ultrafastidious ultrafederalist ultrafidian ultrafidianism ultrafilterability ultrafilterable ultrafiltrate ultraformal ultragallant ultragenteel ultragrave ultraheroic ultrahonorable ultrahuman ultraimperialism ultraindifferent ultrainsistent ultraintimate ultrainvolved ultraism ultraist ultralaborious ultralegality ultralenient ultraliberal ultraliberalism ultralogical ultraluxurious ultramarine ultramaternal ultramelancholy ultramicrochemistry ultramicrometer ultramicron ultramicroscopy ultraminute ultramoderate ultramodern ultramodernist ultramodernistic ultramontane ultramontanist ultramorose ultramulish ultranational ultranationalism ultranationalist ultranatural ultranegligent ultranice ultranonsensical ultraobscure ultraobstinate ultraofficious ultraoptimistic ultraorthodoxy ultrapapist ultraperfect ultrapersuasive ultraphotomicrograph ultraplanetary ultrapopish ultraproud ultraradical ultraradicalism ultrarapid ultrared ultrarefined ultrarefinement ultrareligious ultrarepublican ultrarevolutionist ultraritualism ultraromantic ultraroyalist ultras ultrasanguine ultraselect ultrasevere ultrashrewd ultrasimian ultrasolemn ultrasonics ultrasonography ultrasound ultraspecialization ultrastandardization ultrasubtle ultrasystematic ultratense ultratotal ultratrivial ultraugly ultrauncommon ultraurgent ultravicious ultraviolent ultravirus ultravisible ultrawealthy ultrawise ultrayoung ultrazodiacal ultroneous ultroneousness ululate ululation ululative ululatory ululu ulva ulvaceous ulvan ulyssean um umangite umatilla umaua umbeclad umbel umbellales umbellate umbellated umbellet umbellic umbellifer umbelliferae umbelliferous umbelliflorous umbelliform umbellularia umbellulate umbellule umbellulidae umbelluliferous umbels umber umbethink umbilectomy umbilic umbilical umbilicar umbilicate umbilicated umbilication umbilici umbilicus umbiliform umbolateral umbonal umbonate umbonated umbonation umbones umbonial umbonulate umbra umbracious umbraculate umbraculiferous umbraculiform umbraculum umbrae umbrage umbrageous umbrageously umbrageousness umbral umbrally umbratile umbrel umbrella umbrellaless umbrellalike umbrellas umbrette umbrian umbriel umbriferous umbriferously umbrine umbrose umbrous umbundu ume umemphasized umiak umiejetinosci umile umiri umlaut ump umpire umpires umpireship umpiress umpiring umpirism umpqua umpteen umpteenth umptekite umpty un una unabasedly unabashed unabashedly unabated unabatedly unabatingly unabbreviated unabettedness unabhorred unabidingly unability unabject unabjured unable unabolished unabraded unabridgable unabridged unabrupt unabsolute unabsorb unabsorbed unabsorbent unabsurd unabundant unacademic unacademical unaccelerated unaccent unaccented unacceptability unacceptable unacceptableness unaccepted unaccessibility unaccessible unaccessibleness unaccessibly unaccessional unaccidental unaccidentally unacclimation unacclimatization unacclimatized unaccommodable unaccommodated unaccommodatedness unaccommodating unaccommodatingly unaccompanable unaccompanied unaccompanying unaccomplishable unaccomplished unaccomplishedness unaccordable unaccordance unaccordant unaccorded unaccording unaccordingly unaccostable unaccountability unaccountable unaccountableness unaccountably unaccounted unaccoutred unaccredited unaccrued unaccumulable unaccumulate unaccumulated unaccumulation unaccuracy unaccurate unaccurately unaccurateness unaccusable unaccused unaccusing unaccustom unaccustomed unaccustomedly unaccustomedness unachievable unachieved unaching unacidulated unacknowledged unacknowledgment unacoustic unacquaintable unacquainted unacquaintedly unacquaintedness unacquirable unacquirableness unacquirably unacquit unacquittable unacquitted unacquittedness unactable unacted unactinic unaction unactively unactiveness unactorlike unactual unactuality unactually unacute unadaptability unadaptable unadaptableness unadapted unadaptedly unadd unaddable unadded unaddicted unadditional unaddress unadequate unadequately unadequateness unadherence unadherently unadhesive unadjacently unadjourned unadjournment unadjudged unadjust unadjustably unadjusted unadministered unadmiring unadmissible unadmission unadmittable unadmittedly unadmitting unadmonished unadopt unadoptable unadoptably unadopted unadoption unadoration unadored unadorn unadorned unadornedly unadornedness unadornment unadult unadulterate unadulterated unadulterately unadulterously unadvanced unadvancedly unadvancement unadvantaged unadventured unadventuring unadventurously unadverse unadversely unadverseness unadvertency unadvertised unadvertisement unadvertising unadvisability unadvisable unadvisableness unadvised unadvisedly unadvisedness unaerated unaesthetic unaesthetical unaffable unaffected unaffectedly unaffecting unaffectionate unaffectionately unaffectioned unaffiliation unaffirmation unafflicted unafflictedly unafflicting unaffliction unaffordable unafforded unaffranchised unaffrighted unaffrightedly unaffronted unafire unafloat unaflow unafraid unaggravating unaggressive unaggressively unaggressiveness unaghast unagile unagility unaging unagitated unagitatedly unagitatedness unagitation unagonize unagreeable unagreeableness unagreeably unagreeing unagreement unagricultural unaidable unaided unaidedly unaiding unaimed unaiming unaired unaisled unakhotana unakin unakite unalarmed unalarming unalaska unalcoholized unalertly unalertness unalgebraical unalienably unalienated unalignable unalist unallayably unallayed unalleged unallegorical unalleviably unalleviation unalliable unallied unalliedly unallotment unallowed unallowedly unalloyed unallurable unalluring unalmsed unalone unalphabeted unalphabetic unalterability unalterable unalterableness unalterably unalteration unaltered unaltering unamalgamable unamalgamated unamalgamating unamassed unamazed unambiguous unambiguously unambiguousness unambition unambitious unambitiously unambitiousness unamenability unamenable unamenably unamend unamendable unamended unamending unamendment unami unamiability unamiable unamiably unamicably unamiss unamo unamortization unamortized unamphibious unample unamplifiable unamplified unamply unamputated unamusable unamusably unamused unamusing unamusingly unamusive unanalogical unanalogous unanalogousness unanalysable unanalysed unanalytic unanalytical unanalyzable unanalyzed unanalyzing unanatomizable unancestored unanchor unanchylosed unancient unangelic unangelical unangrily unangry unangular unanimalized unanimate unanimated unanimatedness unanimately unanimist unanimistic unanimistically unanimities unanimity unanimous unanimously unannealed unannexedness unannihilable unannounced unannoyed unannoying unannullable unanointed unanswerability unanswerable unanswerableness unanswerably unanswered unanswering unantagonistic unantagonizable unantagonized unantagonizing unanticipated unanticipating unanticipatingly unanticipation unanticipative unantiquatedness unantique unantiquity unanxiety unanxiously unanxiousness unapart unapocryphal unapologetic unapologizing unapostolic unapostolical unapostolically unapostrophized unappareled unapparent unapparently unappealable unappealableness unappealably unappealing unappears unappeasable unappeasableness unappeased unappeasedly unappeasedness unappertaining unappetizing unapplauded unapplauding unapplausive unappliable unapplianced unapplicableness unapplied unapplying unappoint unappointableness unapportioned unapposite unappositely unappraised unappreciable unappreciableness unappreciated unappreciating unappreciation unappreciative unapprehendable unapprehendableness unapprehendably unapprehending unapprehensibleness unapprehension unapprehensive unapprehensiveness unapprenticed unapprisedly unapproachability unapproachable unapproachableness unapproached unappropriable unappropriate unappropriated unappropriately unappropriateness unapprovableness unapprovably unapprovingly unaproned unapropos unapt unaptitude unaptly unaptness unarbitrarily unarbitrariness unarbitrary unarbitrated unarch unarchdeacon unarchitectural unarduous unarguable unarguableness unarguably unargued unargumentative unargumentatively unarisen unarising unaristocratic unarithmetical unarithmetically unark unarm unarmed unarmedly unarmedness unarmorial unarmoured unaromatized unarousable unaroused unarraignable unarray unarrayed unarrestable unarrestably unarresting unarrival unarrived unarriving unarrogant unarrogating unartfulness unarticled unarticulate unarticulated unartificiality unartistical unartistically unartistlike unascendable unascendableness unascertainable unascertained unashamed unasinous unasked unasleep unasphalted unaspiring unaspiringly unaspiringness unassailable unassailableness unassailably unassailed unassassinated unassaulted unassayed unassaying unassembled unassenting unassessable unassessableness unassessed unassiduous unassignable unassignably unassimilable unassimilated unassimilative unassisted unassisting unassociated unassociative unassociativeness unassoiled unassorted unassuagable unassuaged unassuetude unassumable unassumed unassuming unassumingly unassumingness unassured unassuredly unassuredness unassuring unasterisk unastonished unastonishment unathirst unatonable unatoned unattach unattachable unattached unattackably unattacked unattainable unattainableness unattainably unattained unattaining unattainment unattainted unattaintedly unattempered unattemptable unattempted unattendant unattended unattentive unattested unattestedness unattractableness unattracted unattractive unattributed unattuned unaudible unaudibly unaudienced unaudited unaugmentable unauspicious unauspiciously unauspiciousness unaustere unauthentic unauthentical unauthentically unauthenticated unauthenticity unauthorish unauthoritative unauthoritatively unauthoritativeness unauthoritied unauthorizable unauthorize unauthorized unauthorizedness unautomatic unavailability unavailable unavailableness unavailably unavailed unavailing unavailingly unavengeable unavenging unaveraged unaverred unaverted unavertibleness unavertibly unavian unavoidable unavoidableness unavoidably unavoidal unavoided unavoiding unavouchable unavouchableness unavouchably unavowable unavowableness unavowed unawaited unawakable unawake unawaked unawakenedness unawaking unawardableness unawardably unawarded unaware unawared unawares unaway unawed unawfully unawned unazotized unbacked unbaffled unbaffling unbagged unbailable unbailableness unbailed unbain unbaked unbalance unbalanceable unbalanced unbalancement unbale unbalked unballast unballasted unballoted unbandage unbank unbankable unbankableness unbanked unbaptize unbaptized unbar unbarb unbarbarize unbarbed unbarbered unbare unbargained unbarking unbarrable unbarred unbarrel unbarren unbarrenness unbarricade unbarricaded unbarricadoed unbarring unbase unbashful unbashfully unbashfulness unbasket unbastardized unbaste unbasted unbastilled unbastinadoed unbated unbatted unbatterable unbattered unbattling unbay unbe unbeaded unbear unbearable unbearably unbeard unbearded unbearing unbeast unbeatable unbeatableness unbeatably unbeaten unbeaued unbeauteous unbeauteously unbeauteousness unbeautiful unbeautifully unbeavered unbeclogged unbeclouded unbecoming unbecomingly unbecomingness unbed unbedabbled unbedaggled unbedashed unbedaubed unbedded unbedecked unbedewed unbedimmed unbedinned unbedizened unbedraggled unbefit unbefitting unbefittingly unbefittingness unbefriend unbefringed unbeget unbeggar unbegged unbegilt unbeginning unbeginningly unbeginningness unbegirded unbegirt unbegotten unbegottenness unbegreased unbegrudged unbeguile unbeguileful unbehaving unbeheaded unbeheld unbeholdenness unbeholding unbehoveful unbehoving unbeing unbeknownst unbelief unbelieffulness unbelievability unbelievable unbelievably unbelieve unbelieved unbeliever unbelievers unbelieving unbelievingly unbelievingness unbelligerent unbelonging unbeloved unbelt unbemourned unbench unbend unbended unbending unbendingness unbendsome unbeneficial unbenefitable unbenefiting unbenevolently unbenight unbenign unbenignity unbenignly unbent unbenumb unbenumbed unbequeathable unbequeathed unbereaved unberouged unberufen unbeseem unbeseeming unbeset unbesieged unbesmeared unbesmirched unbesmutted unbesought unbespeak unbespoke unbespoken unbesprinkled unbestarred unbestowed unbet unbeteared unbethink unbethought unbetide unbetoken unbetraying unbetrothed unbetterable unbettered unbeveled unbewailing unbewildered unbewitched unbewitching unbewrayed unbias unbiasable unbiased unbiasedly unbiasedness unbiassed unbibulous unbickering unbid unbidable unbidden unbigged unbigoted unbilled unbillet unbilleted unbind unbindable unbinding unbinds unbiographical unbirdlike unbirdlimed unbishoply unbit unbiting unbitt unbitten unbitter unblamable unblamed unblanched unblanketed unblasphemed unblazoned unbleached unbleaching unbled unblemished unblemishedness unblemishing unblenched unblenchingly unblendable unblent unblessed unblessedness unblest unblighted unblightedly unblightedness unblind unblinds unblinking unblinkingly unblissful unblistered unblithe unblock unblockaded unblocked unbloodily unbloodiness unbloom unbloomed unblooming unblossomed unblossoming unblotted unbloused unblown unblued unbluffed unblunder unblundered unblundering unblunted unblurred unblush unblushing unblushingly unboasted unboastful unboasting unboat unbodied unbodiliness unbodily unboding unbody unbodylike unbog unbohemianize unboiled unboisterous unbokel unbold unboldly unboldness unbolled unbolster unbolstered unbolt unbolted unbolting unbondableness unbone unboned unbonneted unbonny unbooked unbookish unboot unbooted unboraxed unbordered unbored unboring unborn unborrowed unborrowing unbosom unbotanical unbothered unbothering unbottle unbottom unbottomed unbought unbound unboundable unboundableness unboundably unbounded unboundedly unboundless unbounteous unbountiful unbountifully unbountifulness unbow unbowdlerized unbowed unbowel unboweled unbowing unbowingness unbowled unbowsome unbox unboy unboylike unbraced unbracedness unbracelet unbraceleted unbragged unbragging unbraid unbraided unbrailed unbrained unbran unbranched unbranded unbrandied unbrave unbraved unbravely unbraze unbreachable unbreached unbreakable unbreakableness unbreakably unbreaking unbreath unbreathable unbreathableness unbreathed unbred unbreech unbreeched unbreezy unbrent unbrewed unbribable unbribably unbribed unbrick unbridegroomlike unbridgeable unbridged unbridle unbridled unbridledly unbriefed unbriefly unbrilliant unbrimming unbrittle unbroached unbroad unbroadcasted unbroidered unbroiled unbroke unbroken unbrokenly unbronzed unbrooch unbrooded unbrookable unbrookably unbrothered unbrotherly unbrought unbruised unbrushed unbrutalised unbrutalized unbrute unbrutelike unbrutize unbuckled unbuckling unbud unbudgeable unbudgeableness unbudgeably unbudgeted unbuffed unbulky unbulled unbulletined unbumptious unbunched unbundle unbundled unbung unbungling unbuoyant unburden unburdened unburdensome unburdensomeness unburgessed unburiable unburied unburly unburnable unburnt unburstable unburstableness unbursted unburthen unbury unbush unbusied unbusily unbusiness unbusinesslike unbustling unbutchered unbuttered unbutton unbuttoned unbuttoning unbuttonment unbuttressed unbuxomly unbuxomness unca uncabined uncabled uncadenced uncage uncaged uncake uncalcareous uncalcified uncalculable uncalculated uncalculating uncalculatingly uncalendered uncalk uncalked uncalled uncallower uncalm uncalmed uncalmly uncambered uncamerated uncanceled uncancellable uncancelled uncandid uncandidly uncandidness uncandied uncandor uncaned uncanned uncanniest uncannily uncanniness uncanny uncanonical uncanonically uncanonize uncanonized uncantoned uncantonized uncanvassed uncapable uncapableness uncapacitate uncaparisoned uncapitalized uncapped uncapper uncapsized uncaptivating uncaptived uncapturable uncaptured uncarbonated uncarboned uncardinal uncardinally uncared uncareful uncarefulness uncaressed uncargoed uncaria uncaricatured uncaring uncarnate uncarnivorous uncaroled uncarpentered uncarpeted uncarriageable uncarried uncart uncarted uncartooned uncarved uncasked uncasketed uncassock uncast uncaste uncastigated uncastled uncastrated uncatalogued uncatchable uncate uncatechised uncatechized uncatechizedness uncategorized uncatholcity uncatholical uncatholicize uncatholicly uncaught uncausatively uncaused uncauterized uncautiously uncautiousness uncavalier uncavalierly unceasable unceased unceasing unceasingly unceasingness unceded unceiled uncelebrated uncelebrating uncelestial uncellar uncement uncemented uncementing uncensorable uncensored uncensoriously uncensoriousness uncensured uncensuring uncentrally uncentury uncereclothed unceremonious unceremoniously unceremoniousness uncertain uncertainly uncertainness uncertainties uncertainty uncertifiable uncertifiableness uncertificated uncertified uncertifying uncertitude uncessantly uncessantness uncettain unchafed unchain unchained unchair unchallengeableness unchallenged unchallenging unchambered unchamfered unchampioned unchange unchangeability unchangeable unchangeableness unchangeably unchanged unchangedness unchangeful unchanging unchangingly unchangingness unchanneled unchannelled unchanted unchapleted unchapter uncharacter uncharacteristic uncharacteristically uncharacterized unchargeable uncharging uncharily unchariness unchariot uncharitable uncharitableness uncharitably uncharity uncharm uncharmable uncharmed uncharming uncharnel uncharred uncharted unchartered unchary unchaste unchastely unchastened unchastisable unchastising unchastity unchatteled unchauffeured unchawed uncheat uncheated uncheckable unchecked uncheerable uncheered uncheerful uncheerfulness uncheerily uncheering uncheery unchemical unchemically uncherishing unchested unchewable unchewed unchid unchided unchild unchildish unchildishly unchildishness unchildlike unchiming unchipped unchivalrous unchivalrously unchivalrousness unchivalry unchloridized unchoicely unchoked uncholeric unchoosable unchopped unchoral unchorded unchrisom unchristen unchristened unchristian unchristianized unchristianlike unchristianly unchristianness unchronicled unchronological unchronologically unchurched unchurchlike unchurchly unchurn uncial uncials uncicatrized unciferous unciform uncinal uncinaria uncinariatic uncinata uncinate uncinated uncinatum uncini uncinula uncinus uncipher uncircular uncircularized uncirculated uncircumcised uncircumcisedness uncircumcision uncircumlocutory uncircumscript uncircumscriptible uncircumscription uncircumspectly uncircumstanced uncirostrate uncite uncited uncitizen uncitizenlike uncitizenly uncivil uncivilish uncivility uncivilizable uncivilization uncivilize uncivilized uncivilizedly uncivilizedness unclad unclaimed unclaiming unclamorous unclarifying unclashing unclasp unclasped unclasping unclassable unclassableness unclassably unclassed unclassical unclassically unclassifiable unclassifiableness unclassified unclassify unclawed unclay uncle unclean uncleaned uncleaness uncleanlily uncleanliness uncleanness uncleannesses uncleanse uncleansed uncleansedness unclear uncleared unclearing uncleavable uncleft unclehood unclemently unclementness unclench unclergy unclerically unclericalness unclerklike unclerkly uncles uncleship unclever uncleverly uncleverness unclew unclick uncliented unclify unclimbably unclimbed unclinch uncling unclinical unclip unclipper uncloakable uncloaked unclog unclogged uncloistered uncloistral unclose unclosed uncloseted unclothe unclothed unclothedly unclotted unclouded uncloudedly uncloudedness uncloyable uncloyed uncloying unclub unclubbable unclubby unclustered unclustering unclutch uncluttered unco uncoach uncoachable uncoacted uncoagulable uncoagulating uncoat uncoated uncoatedness uncoaxed uncoaxing uncocked uncockneyfy uncocted uncodded uncoddled uncodified uncoerced uncoffer uncoffin uncoffined uncoffle uncogent uncogged uncogitable uncognizant uncognoscible uncoguidism uncoherent uncoherently uncoif uncoil uncoiled uncoiling uncoin uncoking uncollapsible uncollar uncollared uncollated uncollectedly uncollectedness uncollectibly uncolleged uncolloquially uncolonial uncolonize uncolonized uncolorably uncolored uncoloured uncolouredly uncolt uncoly uncombatable uncombated uncombed uncombinableness uncombinably uncombined uncombining uncombiningness uncombustible uncome uncomely uncomfort uncomfortable uncomfortableness uncomfortably uncomforted uncomforting uncomfy uncomic uncommandedness uncommanderlike uncommemorated uncommendableness uncommendably uncommensurability uncommensurable uncommensurableness uncommensurate uncommented uncommenting uncommerciable uncommercial uncommercially uncommercialness uncommingled uncomminuted uncommiserating uncommitted uncommitting uncommixed uncommodious uncommodiously uncommon uncommonable uncommonly uncommonness uncommunicable uncommunicably uncommunicated uncommunicative uncommunicatively uncommunicativeness uncommutable uncommuted uncompact uncompacted uncompahgre uncompahgrite uncompaniable uncompanied uncompanionable uncompanioned uncomparable uncompass uncompassed uncompassion uncompassionated uncompassionately uncompassionateness uncompassionating uncompassioned uncompatibly uncompellable uncompelled uncompelling uncompensable uncompensated uncompetent uncompiled uncomplacent uncomplained uncomplaining uncomplainingly uncomplainingness uncomplaint uncomplaisantly uncomplemental uncompletable uncompleted uncompletely uncomplex uncompliableness uncompliance uncompliant uncomplicated uncomplimentary uncomplimented uncomplimenting uncomplying uncomposeable uncomposed uncompounded uncompoundedly uncompounding uncomprehended uncomprehending uncomprehendingly uncomprehendingness uncomprehensive uncomprehensively uncomprehensiveness uncompressed uncompressible uncomprised uncomprising uncompromised uncompromising uncompromisingly uncompulsive uncompulsory uncomputable uncomputed uncomraded unconcatenated unconcatenating unconcealableness unconcealed unconcealingly unconcealment unconceded unconceivable unconceived unconceiving unconcern unconcerned unconcernedly unconcernedness unconcerning unconcertable unconcertedness unconciliable unconciliated unconciliating unconcluded unconcluding unconcludingness unconclusive unconclusively unconclusiveness unconcocted unconcordant unconcrete unconcreted unconcurrent unconcurring uncondemnable uncondemned uncondensable uncondensableness uncondensed uncondensing uncondescending uncondition unconditional unconditionality unconditionally unconditionalness unconditioned unconditionedness uncondoled unconducing unconducive unconduciveness unconducted unconductive unconductiveness unconfederated unconfess unconfessed unconfessing unconfided unconfidence unconfidential unconfidentialness unconfine unconfined unconfinedness unconfinement unconfirmed unconfiscable unconfiscated unconflicting unconflictingly unconflictingness unconformability unconformable unconformableness unconformably unconformed unconformedly unconforming unconformist unconformity unconfound unconfounded unconfoundedly unconfusable unconfuted unconfuting uncongealable uncongenial uncongeniality uncongested unconglobated unconglomerated uncongratulate uncongratulated uncongregated uncongregational uncongressional uncongruous unconjectured unconjoined unconjugal unconjugated unconjunctive unconjured unconnected unconnectedly unconned unconnived unconniving unconquerable unconquerableness unconquerably unconquered unconscientiously unconscientiousness unconscionable unconscionableness unconscionably unconscious unconsciously unconsciousness unconsciousnesses unconsecrated unconsecration unconsecutive unconsent unconsentaneous unconsenting unconservable unconserved unconserving unconsiderable unconsiderate unconsiderately unconsiderateness unconsidered unconsideredness unconsideringly unconsignable unconsigned unconsistent unconsociable unconsolable unconsolably unconsolatory unconsoled unconsolidation unconsoling unconsonancy unconsonantly unconsonous unconspicuously unconspicuousness unconspiring unconspiringly unconspiringness unconstantly unconstantness unconstellated unconstipated unconstitutional unconstitutionalism unconstitutionality unconstitutionally unconstrainable unconstrained unconstrainedly unconstrainedness unconstraining unconstraint unconstruable unconstructed unconstructural unconstrued unconsular unconsultable unconsulting unconsumable unconsumed unconsuming unconsummate unconsumptive uncontainable uncontainableness uncontainably uncontained uncontaminable uncontaminate uncontaminated uncontemnedly uncontemporaneous uncontemporary uncontemptuous uncontended uncontent uncontentable uncontented uncontentedly uncontenting uncontentingness uncontentious uncontentiously uncontentiousness uncontestable uncontested uncontestedly uncontinental uncontinented uncontinently uncontinual uncontinued uncontinuous uncontorted uncontract uncontracted uncontractile uncontradictable uncontradictableness uncontradictably uncontradicted uncontradictedly uncontrastable uncontrasted uncontrasting uncontributed uncontributing uncontrite uncontrived uncontrollable uncontrollableness uncontrollably uncontrolled uncontrolledly uncontrolledness uncontroversial uncontroversially uncontrovertably uncontroverted uncontrovertedly uncontrovertibleness uncontrovertibly unconvenable unconvened unconvenience unconvenient unconveniently unconventional unconventionalism unconventionality unconventionalize unconventionally unconversable unconversableness unconversant unconversational unconversion unconverted unconvertible unconveyable unconveyed unconvicting unconvince unconvinced unconvincedly unconvincedness unconvincibility unconvincing unconvincingly unconvoyed uncookable uncooled uncoop uncoopered uncooping uncope uncopiable uncopied uncopyrighted uncoquettish uncoquettishly uncordial uncordiality uncored uncork uncorked uncorker uncorking uncorned uncorner uncoronated uncorporal uncorporeality uncorpulent uncorrect uncorrected uncorrectible uncorrectly uncorrectness uncorrelated uncorrespondent uncorresponding uncorrigible uncorrigibleness uncorrigibly uncorrugated uncorrupt uncorrupted uncorruptedness uncorruptibility uncorruptible uncorruptibleness uncorruptibly uncorrupting uncorruptly uncorseted uncosseted uncost uncostliness uncostly uncostumed uncottoned uncouch uncouched uncounselable uncounseled uncounsellable uncounselled uncountable uncountableness uncountably uncounted uncountenanced uncounteracted uncounterfeit uncounterfeited uncountermandable uncountervailed uncountrified uncouple uncoupled uncoupler uncoupling uncourageous uncourted uncourteous uncourteously uncourtierlike uncourting uncourtlike uncourtliness uncourtly uncouth uncouthly uncouthness uncovenant uncovenanted uncover uncoverable uncovered uncoveredly uncovering uncoverted uncoveted uncoy uncracked uncradled uncraftily uncraftiness uncram uncrammed uncramped uncrampedness uncrated uncravatted uncraven uncraving uncravingly uncream uncreased uncreatable uncreate uncreated uncreatedness uncreating uncreation uncreative uncreaturely uncredentialed uncredibility uncredible uncredibly uncreditable uncredited uncrediting uncredulous uncreeping uncrest uncrevassed uncrib uncrime uncriminal uncrinkle uncrinkled uncrinkling uncrippled uncrisp uncritical uncritically uncriticisable uncriticising uncriticizable uncriticized uncriticizingly uncrochety uncrooked uncrooking uncropped uncropt uncross uncrossableness uncrossed uncrossexaminable uncrossexamined uncrossly uncrown uncrowned uncrowning uncrucified uncrudded uncrude uncrumpled uncrumpling uncrushable uncrushed uncrusted uncrying uncrystaled uncrystalled uncrystalline uncrystallizability uncrystallizable uncrystallized unction unctioneer unctious unctiousness unctorium unctuosity unctuous unctuously unctuousness uncubbed uncubic uncudgelled uncuffed uncular unculled uncultivability uncultivable uncultivated uncultivation unculturable unculture uncultured uncumber uncumbered uncunning uncunningly uncurable uncurableness uncurably uncurb uncurbable uncurbed uncurbing uncurdling uncuriously uncurl uncurled uncurling uncurrent uncurrently uncurricularized uncurse uncursed uncursing uncurst uncurtailed uncurtain uncurtained uncushioned uncusped uncustomable uncustomarily uncustomary uncustomed uncut uncuticulate uncynical uncynically uncypress und undaggled undaily undaintiness undainty undallying undamageable undamming undamn undamped undancing undandiacal undandled undangered undangerous undared undaring undark undarken undarkened undarned undashed undatable undate undateable undated undaub undaubed undaughter undaughterliness undaunted undauntedly undauntedness undaunting undawned undawning undazed undazzle undazzled unde undead undeaf undealable undealt undean undear undebarred undebased undebatable undebated undebating undebauched undecagon undecane undecatoic undecayableness undecayed undecayedness undecaying undeceased undeceivable undeceivableness undeceivably undeceive undeceived undeceiving undecency undecennary undecennial undecently undeception undeceptious undeceptitious undeceptive undecide undecided undecidedly undecidedness undeciding undecimal undeciman undecipherability undecipherable undecipherably undeciphered undecision undecisively undecisiveness undeck undecked undeclaimed undeclared undeclinable undeclinably undeclined undeclining undecocted undecomposable undecomposed undecompounded undecorated undecorous undecorously undecorousness undecreased undecreasing undecree undecreed undecylenic undedicate undeducible undeemed undeemously undeep undefalcated undefaming undefatigable undefaulted undefeat undefeatable undefeated undefecated undefective undefendableness undefendably undefended undefensed undefensible undeferential undeferentially undefiant undeficient undefiled undefiledly undefiledness undefinable undefinableness undefinably undefined undefinedly undeflected undeflowered undeformedness undefrayed undeft undegeneracy undegenerate undegenerated undegenerating undegraded undeibtood undeification undeified undeify undeistical undejected undelated undelayable undelayed undelayedly undelaying undelayingly undelectable undelectably undeleted undeliberate undeliberated undeliberating undeliberative undeliberativeness undelible undelicious undelight undelighted undelightfully undelighting undelightsome undelimited undelineated undelivered undelivery undeludable undelude undeluding undeluged undelusive undelusively undelve undelylene undemagnetizable undemanded undemocratic undemocratize undemolishable undemonstrated undemonstrative undemonstratively undemonstrativeness undemure undemurring unden undeniable undeniably undenied undeniedly undenominated undenominational undenominationalize undenominationally undenounced undenuded undepartableness undepartably undeparted undeparting undependableness undependably undependent undepending undephlegmated undepicted undepleted undeplored undeposed undeposited undepraved undepravedness undeprecated undepressible undepressing undeprived undeputed under underabyss underaccident underaccommodated underact underacted underacting underactive underactivity underactor underadjustment underadmiral underadventurer underage underagent underair underalderman underargue underarms underback underbake underbalance underballast underbarber underbasal underbeak underbeam underbear underbearer underbearing underbeaten underbed underbelly underbid underbidder underbillow underbishop underbite underbitted underboated underbodice underbody underboil underboom underborn underbottom underbought underbound underbowed underbowser underbox underboy underbrace underbranch underbreath underbred underbreeding underbrew underbrigadier underbright underbrim underbrush underbubble underbuild underbuilding underbuoy underburn underburned underbursar underbury underbush underbutler undercalculate undercanopy undercapitaled undercaptain undercarder undercarriage undercarry undercast undercause underceiling undercellar undercellarer underchamberlain underchancellor underchanter underchap undercharged underchief underchin underchord undercircle undercitizen underclad underclass underclassmen underclearer underclerk underclerkship undercliff underclift undercloak undercloth underclothes underclothing underclub underclutch undercoachman undercoat undercoater undercoating undercollector undercolor undercolored undercoloring undercommander undercomment undercompounded underconcerned undercondition underconsciousness underconstable underconsumption undercook undercooked undercool undercorrect undercountenance undercourse undercourtier undercover undercrest undercrier undercroft undercrop undercry undercup undercurl undercurrent undercurrents undercut undercutter undercutting underdauber underdead underdebauchee underdeck underdepth underdevelop underdevelopment underdevil underdig underdip underdish underdistinction underdistributor underdive underdo underdoctor underdoer underdog underdoing underdone underdose underdot underdown underdrag underdrainage underdrainer underdraw underdrawers underdrift underdrive underdrudgery underdrumming underdry underdunged underearth undereat undereaten undereducated underemployment underenter underer underescheator underestimate underestimation underexercise underexpose underexposure underfaction underfactor underfalconer underfall underfeathering underfeature underfed underfeed underfeeder underfeeding underfeeling underfeet underfellow underfilling underfind underflannel underfleece underflood underfloor underfold underfong underfoot underfootman underfortify underframe underframework underfreight underfrequency underfurnisher underfurrow undergabble undergamekeeper undergardeners undergarment undergarments undergauge undergear undergeneral undergird undergirding undergirdle undergirth undergliding undergnaw undergo undergoe undergoer undergoes undergoing undergone undergore undergoverness undergovernment undergovernor undergown undergrad undergrade undergraduate undergraduates undergraining undergrieve undergroan underground undergrounder undergrove undergrow undergrowl undergrowth undergrub underguard underguardian undergunner underhabit underhand underhanded underhandedness underhang underhangman underhatch underheaven underhew underhill underhint underhistory underhive underhold underhonest underhorse underhorsed underhousemaid underhum underhung underided underisive underissue underivedness underjacket underjailer underjanitor underjaw underjawed underjobbing underjungle underkeel underking underlaborer underlaid underland underlap underlapper underlaundress underlay underlayer underlaying underleaf underlease underlegate underlessee underletter underlever underlie underlier underlies underlift underlight underliking underlimit underline underlineation underlined underlinement underlinen underling underlings underlining underlive underload underlodging underloft underly underlye underlying undermade undermaid undermaker underman undermanning undermarshal undermasted undermaster undermatch undermatched undermate undermath undermeal undermeaning undermediator undermiller undermimic underminable undermine undermined underminer undermines undermining underministry undermoated undermoney undermoral undermost undermotion undermount undermountain undermusic undern undernatural underneath underniceness undernote undernoted undernourished undernsong underntide underntime undernurse undernutrition underoccupied underofficer underofficial underogating underogatory underopinion underorganization underorseman underoxidize underpacking underpain underpan underpart underparticipation underpartner underpass underpay underpayment underpeep underpeer underpen underpeopled underpick underpier underpilaster underpile underpinner underpinning underpitched underplain underplan underplant underplate underplay underplot underplotter underpole underpopulate underpopulation underporch underporter underpose underpossessor underpot underpower underprefect underpresence underpresser underprice underpriest underprint underprior underprivileged underprize underproduce underproductive underproficient underprompt underprompter underproof underprop underproportion underproposition underpropped underpropper underpropping underprospect underpry underpuke underqualified underqueen underranger underrate underrated underrating underreach underread underreader underrealize underrealm underream underreamer underreceiver underreckon underregistration underrented underrenting underrepresent underrepresentation underrespected underriddle underriding underrigged underripe underripened underriver underroarer underroast underroll underroller underroof underroom underrooted underrower underrule underruler undersailed undersally undersatisfaction undersaturate undersawyer underscheme underscore underscores underscript underscrub underscrupulous underseam undersearch underseas undersecretaryship undersect undersee underseedman undersell underseller undersense undersequence underservant underserve underservice underset undersetter undersetting undersettler undersettling undershapen undersharp undersheathing undershepherd undersheriff undersheriffry undersheriffship undershield undershine undershire undershirt undershore undershorten undershot undershrieve undershrubby undershunter undershut underside undersight undersighted undersign undersignalman undersigned undersigner undersized undersleep undersleeve underslip underslope undersluice underslung undersneer undersociety undersole undersong undersorcerer undersound underspar undersparred underspin underspinner undersplice underspore undersprout underspurleather understage understain understairs understand understandability understandable understandably understander understandeth understanding understandingly understandings understands understate understatement understay understeer understem understep understeward understewardship understock understood understory understrain understrap understrapper understrapping understratum understream understress understride understrike understring understroke understudy understuff understuffing undersuck undersuggestion undersuit undersupply undersupport underswain undersward underswearer undersweep underswell undertakable undertake undertaken undertaker undertakerlike undertakerly undertakers undertakery undertakes undertaketh undertaking undertakings undertalk undertapster undertaxed underteacher underteamed underteller undertenter undertenure underterrestrial undertest underthane underthaw underthief underthings underthink underthirst underthought underthroating underthrob undertide undertided undertime undertimed undertitle undertone undertoned undertones undertook undertow undertrained undertread undertreasurer undertreat undertrick undertrodden undertruck undertrump undertub underturf underturn undertutor undertwig undertype underusher undervalue undervalued undervaluement undervalues undervaluing undervaluingly undervalve undervassal undervaulted undervaulting undervegetation underventilation undervest undervinedresser undervitalized undervocabularied undervoice undervoltage underwage underwaist underwaistcoat underwalk underwarden underwarp underwash underwatch underwatcher underwater underwave underway underwear underweft underweight underwent underwhistle underwind underwing underwings underwit underwitch underwitted underwood underwork underworker underworking underworkman underworld underwrap underwrite underwriters underwritten underwrought underyield undescendable undescended undescendible undescribably undescried undescrying undesert undeserted undeserting undeserved undeservedly undeservedness undeserver undeserving undeservingly undeservingness undesign undesignated undesigned undesignedly undesignedness undesigning undesigningly undesigningness undesirability undesirable undesirableness undesirables undesirably undesire undesired undesiredly undesiring undesirous undesirously undesisting undespaired undespairing undespairingly undespatched undespising undespondent undesponding undestined undestroyable undestroyed undestructible undestructively undetachable undetailed undetectable undetected undetectible undeteriorating undeterminate undetermination undetermined undetermining undeterred undeterring undetested undethroned undetracting undetractingly undetrimental undeveloped undeviated undeviating undeviatingly undevil undevious undeviously undevised undevoted undevotional undevoutness undewed undewy undextrous undextrously undiademed undiagnosable undiagnosed undialed undiametric undiamonded undiatonic undichotomous undictated undictionarial undid undidactic undies undieted undifferenced undifferential undifferentiated undifficult undiffracted undiffused undiffusible undig undigenous undigestable undigested undigestible undigestion undigged undighted undigitated undignified undignifiedly undignifiedness undignify undiked undilapidated undilatable undilated undilatory undiligent undiligently undiluted undilution undiluvial undim undimensioned undimidiate undiminishable undiminishableness undiminishably undiminished undiminishing undiminutive undimmed undimpled undine undined undinted undiocesed undiplomaed undiplomatic undirect undirected undirectional undirectly undirectness undisadvantageous undisagreeable undisappearing undisappointed undisappointing undisbanded undisbarred undiscardable undiscarded undiscerned undiscernedly undiscernible undiscernibleness undiscernibly undiscerning undischarged undisciplinable undisciplined undisciplinedness undisclosed undiscolored undiscomfitable undiscommoded undiscomposed undisconnected undiscontinued undiscording undiscounted undiscouraged undiscouraging undiscoursed undiscoverable undiscoverableness undiscovered undiscreetly undiscreetness undiscriminating undiscriminatingness undiscriminative undiscussable undiscussed undisdained undisdaining undiseased undisestablished undisfigured undisguise undisguised undisguisedly undisgusted undisheartened undished undisheveled undishonored undisinfected undisinheritable undisinherited undisintegrated undisinterested undisjoined undisjointed undislodgeable undislodged undismantled undismay undismayable undismayed undismayedly undismembered undismissed undismounted undisobedient undisobeyed undisobliging undisordered undisorderly undisorganized undisouted undisowning undisparaged undisparity undispassionate undispatchable undispatched undispellable undispelled undispensable undispensed undispensing undispersed undispersing undispirited undisplaced undisplayable undispleased undispose undisposed undisposedness undisprovable undisputable undisputableness undisputably undisputatious undisputed undisputedly undisputing undisquieted undisreputable undisrobed undisrupted undissected undissembledness undissembling undissenting undissimulated undissipated undissociated undissoluble undissolute undissolvable undissolved undissolving undissonant undissuadably undissuade undistanced undistasted undistempered undistinct undistinctive undistinctly undistinctness undistinguish undistinguishable undistinguishableness undistinguishably undistinguished undistinguishing undistinguishingly undistorted undistracted undistractedly undistractedness undistracting undistractingly undistrained undistraught undistress undistressed undistributed undistrustful undisturbable undisturbance undisturbed undisturbedly undisturbingly undiurnal undiverging undiverse undiversified undivertibly undivested undivestedly undividable undividableness undividably undivided undividedly undividedness undividing undivinable undivined undivinelike undivorceable undivorcing undivulged undivulging undizened undo undoable undock undoctor undoctrinal undocumentedness undodged undoffed undogmatic undogmatical undoing undolled undolorous undomed undomestic undomesticate undomesticated undomestication undomiciled undomineering undominical undon undonating undone undonkey undoped undormant undose undosed undotted undouble undoubled undoubtableness undoubtably undoubted undoubtedly undoubtedness undoubtful undoubtfulness undoubting undoubtingly undoubtingness undouched undoughty undovelike undowered undowned undrab undraftable undrag undragoned undragooned undrainable undrained undramatic undramatical undramatically undramatized undraped undraperied undraw undrawn undreaded undreading undreamed undreaming undreamlike undreamt undredged undreggy undrenched undress undressed undressing undrillable undrilled undrinkable undrinkableness undrinking undripping undrivableness undrooping undropped undropsical undrossy undrowned undrubbed undrugged undrunk undrunken undry undryable undrying undub undubbed undubitable undubitably unduchess undue unduke undular undularly undulatance undulate undulated undulately undulates undulatine undulating undulatingly undulation undulationist undulations undulative undulatory undull undulose undulous unduly undumped unduncelike undunged undupable unduped unduplicability unduplicable undurable undurableness undust undusted unduteous undutiable undutiful undutifully undutifulness undwarfed undwelt undwindling undy undyed undying une uneager uneagerly uneagerness uneagled uneared unearly unearned unearth unearthed unearthly unease uneasily uneasiness uneasy uneatable uneatableness uneating unebriate unechoed unechoing uneclectic uneconomical uneconomically uneconomicalness unecstatic unedge unedible unedibleness unedified unedifying uneditable unedited uneducably uneducated uneducatedness uneducative uneduced uneffaceably uneffaced uneffected uneffective uneffectless uneffectual uneffectually uneffectualness uneffectuated uneffeminate uneffervescent uneffigiated uneffusing unegoist unegoistically unejaculated unelaborate unelaborated unelaborately unelapsed unelastic unelasticity unelating unelderly unelectable unelected unelective unelectric unelectrified unelectrifying unelectronic uneleemosynary unelegant unelegantly unelemental unelementary unelicited unelided unelidible uneligibility uneligible uneligibly uneliminated unelongated uneloped uneloping uneloquent uneloquently unelucidating uneluded unelusive unemaciated unemacipable unemancipable unemancipated unemasculated unembalmed unembanked unembarrassed unembarrassedly unembarrassing unembased unembattled unembellished unembittered unembodiment unembossed unembowered unembraceable unembraced unembroidered unembryonic unemended uneminently unemitted unemolumentary unemotional unemotionalness unemotioned unempaneled unemphatic unemphatical unemphatically unempirical unemployability unemployable unemployableness unemployably unemployed unemployment unempoisoned unempowered unemptied unempty unemulative unemulous unemulsified unenabled unenameled unenamored unencamped unenchafed unenchanted unencircled unenclosed unencompassed unencored unencountered unencouraged unencroaching unencumbered unencumbering unencysted unendable unendangered unendeared unendeavored unended unending unendingly unendorsable unendorsed unendowed unendued unendurability unendurable unendured unenduringly unenergetic unenergized unenervated unenfeebled unenforceable unenforced unenforcedly unenforcedness unenforcibility unenfranchised unengage unengaged unengaging unengendered unenglish unengraved unenhanced unenjoined unenjoyed unenjoying unenjoyingly unenkindled unenlarged unenlightened unenlightening unenlisted unenlivening unennobled unenquired unenquiring unenraptured unenrichable unenrichableness unenriched unenriching unenrobed unenshrined unenslave unensnared unensouled unensured unentailed unentangle unentangleable unentanglement unentangler unenterable unentering unenterprise unenterprisingly unentertainable unentertained unentertaining unentertainingly unenthralled unenthralling unenthroned unenthusiastic unenthusiastically unenticing unentire unentitled unentombed unentomological unentrance unentranced unentrapped unentreated unentreating unentrenched unentwined unenveloped unenvenomed unenviable unenviably unenvied unenviedly unenviously unenvironed unenvying unenwoven unepauleted unephemeral unepicurean unepigrammatic unepilogued unepiscopal unepistolary unepithelial unequable unequableness unequably unequal unequalable unequaled unequality unequalized unequalled unequally unequalness unequals unequated unequatorial unequestrian unequiaxed unequilateral unequipped unequitableness unequivalent unequivalve unequivalved unequivocal unequivocally unequivocalness unerasable unerased unerect unermined unerrable unerrableness unerrancy unerrant unerring unerringly unerroneous unerroneously unerudite uneruptive unescaladed unescalloped unescapable unescapableness unescapably unescheated uneschewably uneschewed unesco unescorted unescutcheoned unesoteric unespied unespousable unespoused unessence unessential unessentially unessentialness unestablish unestablishment unesteemed unestimable unestimableness unestimably unetched uneternal uneternized unethereal unethic unethical unethically unethicalness unethnological unethylated unetymological unetymologizable uneucharistical uneugenic uneulogized uneuphemistical unevadable unevaded unevaluated unevangelic unevangelical unevaporated unevasive uneven unevenly unevenness uneventful uneventfully uneventfulness uneverted unevil unevinced uneviscerated unevitable unevitably unevokable unevoked unevolved unexacerbated unexact unexacted unexacting unexactingly unexactness unexaggerable unexaggerated unexalted unexamined unexamining unexampled unexampledness unexasperated unexasperating unexceedable unexceeded unexcelled unexcellent unexcelling unexceptable unexcepted unexcepting unexceptionability unexceptionable unexceptionableness unexceptionably unexceptional unexceptionally unexceptive unexcerpted unexcessive unexchangeable unexchangeableness unexchanged unexcised unexcitability unexcitable unexcited unexciting unexclaiming unexcludable unexcluding unexclusiveness unexcogitated unexcommunicated unexcoriated unexcorticated unexcrescent unexculpable unexculpated unexcusable unexcusableness unexcusably unexcused unexcusedly unexcusedness unexecutable unexecuting unexecutorial unexemplified unexempt unexempted unexemptible unexempting unexercisable unexercise unexercised unexerted unexhalable unexhausted unexhaustible unexhaustibleness unexhaustibly unexhaustion unexhaustive unexhibited unexhilarating unexhorted unexigent unexilable unexistent unexisting unexonerable unexonerated unexorable unexorbitant unexorcised unexotic unexpandable unexpanded unexpectable unexpectant unexpected unexpectedly unexpectedness unexpecting unexpectingly unexpectorated unexpedient unexpeditated unexpedited unexpendable unexpensive unexpensively unexperience unexperienced unexperiential unexpert unexpertly unexpertness unexpiable unexpiated unexpired unexpiring unexplainableness unexplainably unexplained unexplainedly unexplaining unexplanatory unexplicable unexplicableness unexplicably unexplicated unexplicit unexplicitly unexploded unexploitation unexploited unexplorable unexplorative unexplored unexplosive unexported unexposable unexposed unexpoundable unexpounded unexpressable unexpressableness unexpressed unexpressedly unexpressible unexpressibly unexpressive unexpressively unexpressiveness unexpressly unexpropriated unexpugnable unexpunged unexpurgated unexpurgatedly unextended unextendedly unextendedness unextensible unextenuable unextenuated unextenuating unexterminable unexternal unexterritoriality unextinct unextinctness unextinguishable unextinguishableness unextinguished unextirpated unextolled unextortable unextorted unextractable unextracted unextravagance unextravasated unextreme unextruded unexuberant unexultant uneye uneyeable uneyed unfabled unfabling unfabricated unfabulous unfacaded unface unfaceable unfaced unfaceted unfacile unfacilitated unfact unfactious unfactitious unfactorable unfading unfadingness unfagged unfailable unfailableness unfailably unfailing unfailingly unfain unfaint unfaintly unfair unfairly unfairminded unfairness unfairylike unfaith unfaithful unfaithfulness unfaked unfallacious unfallenness unfallibleness unfallibly unfalling unfallowed unfalse unfalsifiable unfalsified unfalsity unfaltering unfalteringly unfamed unfamiliar unfamiliarity unfamiliarized unfamiliarly unfanatical unfanciable unfancied unfancy unfanned unfarcical unfarewelled unfarming unfarrowed unfarsighted unfasciated unfascinate unfascinated unfascinating unfashion unfashionable unfashionably unfashioned unfast unfasten unfastened unfastener unfastening unfastidious unfastidiousness unfather unfathered unfatherlike unfatherliness unfatherly unfathomability unfathomable unfathomableness unfathomably unfathomed unfatigue unfatigueable unfatiguing unfattable unfatted unfatten unfattened unfaultfinding unfaulty unfavorable unfavorably unfavorite unfavourable unfavourably unfawning unfealty unfeared unfearful unfearfully unfearing unfearingly unfeary unfeasableness unfeasably unfeasibility unfeasibleness unfeasibly unfeather unfeatured unfed unfederal unfeed unfeedable unfeeling unfeelingly unfeignable unfeignableness unfeignably unfeigned unfeignedly unfeigningly unfeigningness unfele unfelicitated unfelicitating unfelicitousness unfellied unfellow unfellowed unfellowly unfellowshiped unfelon unfeloniously unfelt unfelted unfemale unfeminine unfemininely unfeminineness unfemininity unfeminist unfence unfenced unfeoffed unfermentably unfermented unfermenting unfernlike unferreted unferried unfertile unfertilized unfervent unfervid unfester unfestival unfestive unfestively unfestooned unfetched unfeted unfetter unfettered unfettled unfeudal unfeudalized unfevered unfeverish unfew unfibbed unfibered unfictitious unfidelity unfidgeting unfielded unfiendlike unfierce unfight unfigurative unfigured unfile unfilial unfilialness unfill unfillable unfilleted unfilling unfilm unfilmed unfiltered unfinancial unfined unfingered unfinical unfinish unfinishable unfinished unfinishedness unfinite unfireproof unfirmamented unfiscal unfishable unfishing unfishlike unfistulous unfit unfitly unfitness unfits unfittable unfitted unfittedness unfitten unfitting unfittingly unfittingness unfitty unfix unfixable unfixated unfixed unfixing unfixity unflagged unflagging unflaggingly unflaggingness unflagrant unflaming unflanged unflank unflapping unflashing unflated unflattened unflatterable unflattering unflatteringly unflaunted unflavored unflawed unflayed unflecked unfledge unfledged unfledgedness unfleece unfleeced unfleeing unflesh unfleshed unfleshliness unfleshy unfletched unflexed unflexible unflexibly unflickering unflinching unflinchingly unflinchingness unflippant unflirting unflitched unfloatable unflogged unflooded unfloor unflorid unflossy unflourished unflourishing unflouted unflower unflowered unflowery unfluent unfluked unflunked unflush unflustered unflutterable unfluttered unfluttering unfluvial unfluxile unfoaled unfoaming unfocused unfoggy unfoiled unfoisted unfold unfolded unfolder unfolding unfoldings unfoldment unfolds unfoldure unfoliaged unfoliated unfollowing unfond unfondled unfoodful unfooling unfoolish unfooted unfootsore unfoppish unforaged unforbearance unforbearing unforbidden unforbiddenness unforbidding unforceable unforced unforcedly unforcible unforcibleness unfordable unfordableness unforded unforeboded unforecasted unforegone unforeign unforeknowable unforeknown unforeordained unforesee unforeseeable unforeseeableness unforeseeably unforeseeing unforeseen unforeshortened unforestallable unforetellable unforethought unforetold unforewarned unforewarnedness unforfeit unforfeitable unforfeited unforgeability unforgeable unforged unforget unforgetable unforgetful unforgettable unforgettableness unforgettably unforgettingly unforgivable unforgivableness unforgiven unforgiveness unforgiver unforgiving unforgivingly unforgivingness unforgone unforgotten unfork unforked unforkedness unforlorn unform unformality unformalness unformative unformed unformulable unformularizable unformularize unformulated unformulistic unforsaking unforsook unforsworn unfortifiable unfortified unfortify unfortuitous unfortunate unfortunately unfortunates unforward unfossiliferous unfossilized unfostered unfoughten unfoulable unfound unfounded unfoundedly unfoundedness unfountained unfowllike unfoxy unfractured unfragrance unfragrant unfragrantly unframe unframed unfrank unfrankable unfranked unfrankly unfraternal unfraught unfrayed unfreckled unfree unfreed unfreedom unfreehold unfreely unfreezable unfreeze unfreezing unfreighted unfrequency unfrequent unfrequented unfrequently unfrequentness unfret unfretful unfretting unfriarlike unfrictioned unfried unfriend unfriended unfriendedness unfriending unfriendlily unfriendliness unfriendly unfriends unfriendship unfrighted unfrightenable unfrightened unfrightenedness unfrigid unfrill unfrilled unfringe unfringed unfrivolous unfrizzled unfrocked unfronted unfrost unfrosty unfrowardly unfrowning unfroze unfrozen unfructed unfructify unfructuously unfrugal unfrugally unfrugalness unfruitful unfruitfulness unfruity unfrustrable unfrustrably unfrustrated unfrutuosity unfuddled unfueled unfulfill unfulfillable unfulfilled unfulfilling unfulfillment unfull unfulled unfully unfulminated unfulsome unfumbled unfunctional unfundamental unfunded unfunniness unfunny unfurcate unfurious unfurl unfurlable unfurled unfurling unfurnish unfurnished unfurnishedness unfurnitured unfurred unfurrow unfurrowed unfusible unfusibleness unfusibly unfussed unfussing unfussy unfutile ungabled ungag ungaged ungagged ungain ungained ungainfully ungainfulness ungaining ungainliness ungainly ungainness ungainsaid ungainsayably ungainsaying ungainsome ungainsomely ungallant ungalling ungalvanized ungamboling ungamelike unganged ungarbed ungarbled ungarland ungarlanded ungarment ungarmented ungarnered ungarnish ungarnished ungaro ungartered ungashed ungassed ungastric ungathered ungaudy ungauged ungauntlet ungauntleted ungazing ungear ungelatinizable ungelatinized ungelt ungeminated ungenerable ungeneralized ungenerate ungenerated ungenerative ungeneric ungenerosity ungenerous ungenerously ungenerousness ungenial ungeniality ungenially ungenialness ungenirt ungenitured ungenius ungenteel ungenteelly ungenteelness ungentile ungentility ungentilize ungentle ungentled ungentleman ungentlemanize ungentlemanlike ungentlemanlikeness ungentlemanliness ungentlemanly ungentleness ungentlewomanlike ungently ungenuine ungenuineness ungeographically ungeological ungeometrical ungeometricalness ungerminated ungerontic ungesting ungettable unghostly ungiant ungiddy ungifted ungild ungill unginned ungird ungirded ungirdle ungirdled ungirt ungirth ungirthed ungive ungiveable ungiven ungiving ungka unglaciated unglad ungladly unglamorous unglamoured unglandular unglaze unglazed ungleaned unglee ungleeful unglimpsed unglistening unglittering unglobe unglobular ungloom ungloomed ungloomy unglorified unglorifying unglorious ungloriously ungloriousness unglory unglosed ungloss unglossaried unglossily unglossy ungloved unglowing unglozed unglue unglued unglutinate unglutted ungluttonous ungnarred ungoaded ungoatlike ungoddess ungodlike ungodlily ungodliness ungodly ungodmothered ungolden ungood ungoodly ungorged ungorgeous ungothic ungotten ungouty ungovernable ungovernableness ungoverned ungovernedness ungoverning ungown ungrace ungraceful ungracefully ungracefulness ungracious ungraciously ungraciousness ungradated ungraded ungradually ungraduated ungraduating ungrafted ungrainable ungrained ungrammared ungrammatic ungrammatical ungrammatically ungrammaticalness ungrammaticism ungrantable ungranted ungranulated ungraphic ungraphitized ungrapple ungrappler ungraspable ungrasped ungrasping ungrassed ungrassy ungrated ungrateful ungratifiable ungrating ungraveled ungravelly ungravely ungraven ungrayed ungrazed ungreased ungreat ungreatly ungreatness ungreeable ungreedy ungreenable ungreeted ungregarious ungrieve ungrieved ungrieving ungrindable ungrip ungripe ungrizzled ungroaning ungroined ungrooved ungross ungrotesque unground ungroundable ungroundably ungrounded ungroundedly ungroupable ungrouped ungrow ungrowing ungrown ungrubbed ungrudged ungrudging ungrudgingly ungruesome ungruff unguard unguardable unguarded unguardedly unguardedness ungueal unguent unguentaria unguentarium unguentary unguentiferous unguentous unguents unguentum ungues unguessable unguessableness unguessed unguessing unguibus unguical unguicorn unguicular unguiculata unguidable unguided unguidedly unguiferous unguiform unguiled unguilefully unguilefulness unguiltily unguiltiness unguilty unguirostral ungular ungulata ungulate ungulated ungulates unguligrade ungulp ungulum ungushing ungutted unguttural unguyed ungymnastic ungyve ungyved unhabit unhabitable unhabitableness unhabitual unhabitually unhaft unhafted unhaggled unhaggling unhailable unhailed unhaired unhairer unhairily unhairing unhairy unhaled unhallooed unhallow unhallowed unhallowedness unhaloed unhalsed unhaltered unhalting unhalved unhammered unhamper unhampered unhand unhandcuffed unhandiness unhandled unhandsome unhandsomely unhandsomeness unhandy unhang unhanged unhap unhappily unhappiness unhappy unharassed unharbor unhard unharden unhardenable unhardened unhardily unhardness unharked unharmable unharmed unharmfully unharming unharmonical unharmoniously unharmoniousness unharmonize unharmonized unharness unharnessed unharnessing unharped unharried unharvested unhasp unhasped unhaste unhasted unhastened unhastily unhastiness unhasting unhasty unhat unhatchability unhatchable unhatched unhatcheled unhate unhateful unhating unhatted unhauled unhaunted unhave unhawked unhayed unhazardousness unhazed unheaded unheader unheady unheal unhealable unhealed unhealing unhealth unhealthful unhealthfully unhealthfulness unhealthily unhealthiness unhealthsome unhealthsomeness unhealthy unheaped unhearable unheard unhearsed unheart unheatable unheated unheathen unheaved unheaven unheavenly unheavily unheaviness unheavy unhedge unhedged unheeded unheededly unheedful unheedfully unheedfulness unheeding unheedingly unheedy unheeled unheelpieced unhefted unheightened unheld unhele unheler unhelm unhelmed unhelmet unhelpableness unhelped unhelpfully unhelpfulness unhelping unhelved unheppen unheralded unheraldic unherd unherded unhereditary unheritable unhermetic unheroic unheroical unheroize unhesitant unhesitating unhesitatingly unhesitatingness unheuristic unhewable unhewn unhid unhidable unhidableness unhidably unhidden unhide unhieratic unhigh unhilarious unhinderable unhinderably unhindered unhinge unhinged unhinted unhipped unhired unhistoric unhistorical unhistorically unhistrionic unhit unhitch unhitched unhittable unhive unhived unhoard unhoarded unhoarding unhoaxed unhoed unhogged unholiday unholiness unhollow unhollowed unholpen unholy unhomelike unhomelikeness unhomeliness unhomely unhomish unhomologous unhonest unhonied unhonorable unhonored unhood unhooded unhoodwink unhoofed unhook unhooked unhooking unhooped unhooper unhooted unhoped unhopedness unhopeful unhopefully unhopefulness unhopingly unhopped unhorizoned unhorned unhorny unhose unhosed unhospitable unhospitableness unhospitably unhostile unhostilely unhostileness unhostility unhouselike unhousewifely unhugged unhull unhulled unhumanize unhumanized unhumanly unhumanness unhumble unhumbled unhumbledness unhumbleness unhumbugged unhumiliated unhumorous unhumorously unhung unhuntable unhurdled unhurled unhurried unhurriedly unhurriedness unhurrying unhurryingly unhurt unhurted unhurtful unhurtfulness unhurting unhusbandly unhushing unhusk unhustled unhutched unhydraulic unhydrolyzed unhygienic unhygienically unhygrometric unhymeneal unhymned unhyphenated unhypnotic unhypnotizable unhypnotize unhypocritical unhypothecated unhypothetical unhysterical uniambic uniangulate uniarticular uniarticulate uniat uniate uniauriculated unibasal unibracteate unibracteolate unicalcarate unicameralist unicamerate unicarinate unicell unicellate unicellular unicellularity unicentral unichord uniciliate unicism unicity uniclinal unicolor unicolored uniconstant unicorn unicorneal unicornic unicornlike unicornous unicostate unicotyledonous unicursal unicursality unicuspid unicycle unicyclist unid unidactyl unidactyle unidealism unidealistic unidealized unidentate unidentifiableness unidentifiably unidentified unidentifiedly unideographic unidextral unidextrality unidigitate unidimensional unidiomatic unidirectional unidle unidleness unie uniequivalent uniface unifaced unifacial unifactorial unifarious unifiable unific unification unificationist unificator unified unifiedly unifier uniflagellate unifloral uniflorate uniflorous uniflow uniflowered unifocal unifoliar unifoliate unifolium uniform uniformal uniformalize uniformally uniformation uniformed uniformist uniformitarian uniformitarianism uniformity uniformization uniformize uniformly uniformness uniforms unify unifying unigenesis unigenetic unigenistic unigenital unigeniture unigenous uniglobular unignitable unignited unignitible unignorant unignored unigravida unijugate unijugous unilabiated unilamellar unilaminate unilateral unilateralize unilinear unilingual uniliteral unillumed unilluminated unilluminating unillumined unillusioned unillusory unillustrated unilobal unilobar unilobate unilobular unilocular unilocularity uniloculate unimacular unimaged unimaginable unimaginableness unimaginably unimaginary unimaginative unimaginatively unimagine unimagined unimanual unimbanked unimbellished unimbezzled unimbibed unimbittered unimbodied unimboldened unimbordered unimbosomed unimbowed unimbroiled unimbrued unimbued unimitable unimitableness unimitably unimitating unimmanent unimmediate unimmersed unimmigrating unimmortal unimmortalize unimmortalized unimodal unimodality unimolecular unimolecularity unimpair unimpairable unimpaired unimpartial unimpassionate unimpassioned unimpeachability unimpeachable unimpeachably unimpeached unimped unimpeded unimpedible unimpedness unimpelled unimpenetrable unimperative unimperialistic unimperious unimpertinent unimplanted unimplied unimplored unimpoisoned unimportance unimportant unimportantly unimporting unimportunately unimportuned unimposed unimposedly unimpowered unimprecated unimpregnate unimpressed unimpressibility unimpressible unimpressibleness unimpressionable unimpressive unimpressively unimpressiveness unimprisonable unimpropriated unimprovableness unimproved unimprovedly unimprovedness unimproving unimprovised unimpugnable unimpugned unimpurpled unimputable unimputed unimucronate unimultiplex unimuscular uninaugurated unincarcerated unincarnate unincarnated unincensed uninchoative unincidental unincised unincisive unincited uninclinable uninclining uninclosed uninclosedness unincludable uninclusiveness uninconvenienced unincorporate unincorporated unincorporatedly unincorporatedness unincreasable unincreased unincreasing unincumbered unindebted unindebtedly unindebtedness unindemnified unindentable unindented unindicated unindictable unindifference unindifferency unindifferent unindifferently unindigent unindignant unindividual unindividualize unindividuated unindorsed uninductive unindulged unindulgent unindurated unindustrial unindustrious unindustriously unindwellable uninebriated uninebriating uninervate uninfallible uninfatuated uninfectable uninfectiousness uninfeft uninferred uninfested uninfiniteness uninfixed uninflamed uninflammability uninflammable uninflated uninflected uninflectedness uninflicted uninfluenceable uninfluenced uninfluencing uninfluencive uninfluential uninfluentiality uninformed uninfused uningenious uningeniously uningeniousness uningenuous uningenuously uningenuousness uningested uningrafted uninhabitable uninhabitableness uninhabitably uninhabited uninhabitedness uninheritability uninherited uninhibitive uninhumed uniniquitous uninitialed uninitiated uninitiatedness uninitiation uninjectable uninjected uninjurable uninjured uninjuring uninjuriously uninked uninn uninnate uninnocence uninnocent uninnocently uninnocuous uninnovating uninoculable uninodal uninominal uninquired uninquiring uninquisitive uninquisitively uninquisitiveness uninsane uninsatiable uninscribed uninsistent uninsolvent uninspirable uninspiring uninspirited uninstanced uninstated uninstigated uninstilled uninstituted uninstructed uninstructible uninstructing uninstructive uninstructively uninstructiveness uninstrumental uninsulate uninsulated uninsultable uninsulted uninsulting uninsurability uninsurable uninsured unintegrated unintellective unintellectual unintellectuality unintellectually unintelligence unintelligent unintelligently unintelligentsia unintelligible unintelligibleness unintelligibly unintended unintensive unintent unintentional unintentionally unintentionalness unintentness unintercepted uninterchangeable uninterdicted uninterested uninterestedly uninterestedness uninteresting uninterestingly uninterlaced uninterlarded uninterleave uninterleaved uninterlined uninterlinked uninterlocked unintermarrying unintermediate unintermingled unintermission unintermissive unintermitted unintermittedness unintermittent unintermittently unintermitting unintermittingly unintermittingness unintermixed uninternational uninterpleaded uninterpolated uninterposed uninterposing uninterred uninterrogable uninterrogated uninterrupted uninterruptedly uninterruptedness uninterruptible uninterruptibleness uninterrupting uninterruption unintersected uninterspersed unintervening uninterviewed uninthroned unintimate unintimated unintimidated unintombed unintoned unintoxicatedness unintoxicating unintrenchable unintrenched unintricate unintriguing unintroduced unintroducible unintruding unintrusive unintrusively unintrusted unintuitive uninucleate uninundated uninured uninurned uninvadable uninvaded uninveighing uninveigled uninvented uninventibleness uninventiveness uninverted uninvested uninvestigable uninvestigating uninvestigative uninvidiously uninvigorated uninvite uninvited uninvitedly uninviting uninvoiced uninvoked uninvolved uninweaved uninwoven uninwreathed unio uniocular unioid uniola union unioned unionic unionid unionidae unioniform unionist unionize unionoid unions unioval uniovular unipara uniparient uniparous unipartite unipeltate uniperiodic unipersonalist unipersonality unipetalous uniphase uniphaser uniphonous uniplanar uniplex uniplicate unipod unipolar uniporous unipotence unipotent uniprocessor uniquantic unique uniradial uniramose uniramous unirascible unireme unirenic uniridescent unironical uniroyal unirradiated unirrigated unirritable unirritatedly unirritating unisepalous uniseptate uniserer uniserially uniseriately uniserrate uniserrulate unisex unisexed unisexual unisexuality unisexually unisoil unisolable unisolate unisolated unisomeric unisometrical unisomorphic unison unisonally unisonance unisonant unisonous unisotropic unispinose unispiral unissuable unissued unistylist unit unitage unital unitalicized unitarianism unitarily unitariness unitarist unitary unite uniteability uniteable united unitedly unitemized uniter unites unities uniting unition unitism unitistic unitive unitiveness unitooth unitrivalent units units/ml unituberculate unitude unity uniunguiculate uniungulate univac univalency univalvate univalve univalvular univariant univariate universal universalia universalian universalism universalist universalistic universality universalization universalize universalizer universally universalness universanimous universe universeful universel universelle universes universitarian universitarianism universities universitize university universitylike universityship universology univied univocability univocacy univocal univocally univocity univoltine unjacketed unjaded unjagged unjailed unjam unjapanned unjarring unjaundiced unjaunty unjealoused unjellied unjesting unjesuited unjesuitical unjesuitically unjewel unjeweled unjilted unjocose unjocund unjogging unjoin unjoint unjointed unjostled unjovial unjovially unjoyful unjoyous unjudge unjudgelike unjudging unjudicable unjudicial unjudicious unjudiciousness unjuggled unjuiced unjuicy unjumbled unjust unjustice unjusticiable unjustifiable unjustifiably unjustified unjustifiedly unjustifiedness unjustify unjustled unjustly unjuvenile unkaiserlike unked unkeeled unkembed unkempt unkemptly unkemptness unkenned unkennedness unkennel unkenneled unkept unkerchiefed unket unkey unkeyed unkicked unkid unkill unkillable unkilned unkind unkindhearted unkindled unkindledness unkindlily unkindliness unkindling unkindly unkindness unkindred unking unkinged unkinger unkinglike unkingly unkinlike unkinship unkirk unkiss unknave unkneaded unknelled unknew unknight unknightlike unknit unknittable unknitting unknocking unknot unknotted unknotty unknow unknowability unknowable unknowing unknowingly unknowingness unknowledgeable unknown unknownly unknownst unkodaked unkoshered unlabeled unlabiate unlaborable unlaborious unlaboured unlace unlaced unlacquered unladen unlades unladled unladyfied unladylike unlaid unlamented unlampooned unlanced unlandmarked unlanguaged unlanguid unlanterned unlap unlapsing unlash unlashed unlasher unlasting unlatch unlatched unlathed unlathered unlatinized unlatticed unlaudable unlaudably unlauded unlaugh unlaughing unlaunched unlaundered unlaureled unlaved unlaving unlavish unlaw unlawed unlawful unlawfully unlawfulness unlawlike unlawly unlawyerlike unlead unleaderly unleaf unleafed unleagued unleaguer unleaky unlean unlearn unlearnability unlearned unlearnedly unlearnedness unlearning unlearnt unleased unleashed unleathered unleaved unleavened unlectured unled unleft unlegacied unlegal unlegalness unlegate unlegislative unleisuredness unleisurely unlenient unlensed unless unlessened unlet unlettable unletted unlettered unletteredly unletteredness unletterlike unlevel unleveled unlevelly unlevied unlevigated unlexicographical unliability unliable unlibeled unliberal unliberalized unliberated unlicensed unlicentiated unlicentious unlichened unlickable unlicked unlid unlie unliftable unlifted unlifting unligable unlighted unlightedly unlightedness unlightened unlikable unlikableness unlike unlikeableness unlikeably unliked unlikelihood unlikeliness unlikely unliken unlikeness unliking unlimb unlimber unlime unlimitable unlimitableness unlimited unlimitedly unlimitedness unlimned unlimp unline unlingering unlink unlionlike unliquefied unliquid unliquidated unliquidating unliquored unlisping unlist unlisted unlistening unlisty unlit unliteral unliterally unliteralness unliterary unliterate unlitten unlittered unliturgical unliturgize unlivableness unliveable unliveableness unliveably unliveried unliving unlizardlike unload unloaded unloader unloading unloaning unloathed unlobed unlocal unlocalizable unlocalize unlocatable unlocated unlock unlockable unlocked unlocker unlocking unlocks unlodge unlodged unlofty unlogged unlogic unlogical unlogically unlooked unloop unloosable unloose unloosed unloosen unloosened unloosening unlopped unlord unlorded unlordly unlost unlotted unlousy unlovable unlovableness unlove unloveableness unloved unlovelily unloveliness unlovely unloverlike unloverly unloving unlovingly unlovingness unlowly unloyally unlubricated unluck unluckful unluckily unluckiness unlucky unlucrative unludicrous unluffed unlumped unlured unlustiness unlusty unluted unluxated unluxurious unlycanthropize unlying unlyrical unlyrically unmacadamized unmacerated unmachinable unmackly unmadded unmaddened unmade unmagisterial unmagistratelike unmagnetic unmagnetical unmagnetized unmagnified unmagnify unmaidenlike unmaidenly unmail unmailableness unmailed unmaimable unmaimed unmaintainable unmaintained unmajestic unmake unmaker unmalevolent unmalignant unmalleability unmalleableness unmalled unmaltable unman unmanacled unmanageable unmanageably unmanaged unmancipated unmandated unmaneged unmanful unmanfully unmaniable unmanifested unmanipulatable unmanlily unmanly unmanned unmanner unmannered unmannerliness unmannerly unmanored unmans unmantle unmanufacturable unmanufactured unmanumissible unmanumitted unmanured unmappable unmapped unmarbled unmarching unmarginal unmarginated unmarine unmaritime unmarkable unmarked unmarketed unmarred unmarried unmarshaled unmartial unmartyr unmarvelous unmasculine unmask unmasked unmasker unmasking unmasquerade unmassacred unmassed unmaster unmasterable unmastered unmasterful unmasticable unmasticated unmatchableness unmatchably unmatched unmatchedness unmate unmated unmaterial unmaterialized unmateriate unmathematical unmating unmatriculated unmatrimonial unmatronlike unmatured unmaturely unmatureness unmaturing unmaturity unmauled unmeaning unmeaningness unmeant unmeasurable unmeasurableness unmeasurably unmeasured unmeasuredness unmeated unmechanic unmechanical unmechanistic unmechanize unmechanized unmedaled unmedalled unmeddle unmeddled unmeddlesome unmeddling unmeddlingly unmediaeval unmediated unmedicable unmedical unmedicated unmedicinable unmedicinal unmeditated unmeditative unmediumistic unmedullated unmeekly unmeekness unmeet unmeetable unmelancholy unmellowed unmelodious unmelodiousness unmelodized unmelodramatic unmeltable unmelted unmeltedness unmelting unmemoired unmemorable unmemorized unmenaced unmendable unmendableness unmendably unmended unmenial unmenseful unmenstruating unmensurable unmental unmentionability unmentionable unmentionables unmentionably unmercantile unmercenariness unmercerized unmerchantable unmerciful unmercifully unmercifulness unmerge unmerged unmeridional unmerited unmeritedly unmeritedness unmeriting unmeritorious unmeritoriousness unmerry unmesh unmesmeric unmesmerize unmet unmetaled unmetallic unmetallurgical unmetamorphosed unmeted unmeteorological unmethodical unmethodically unmethodicalness unmethylated unmeticulous unmetric unmetrical unmetrically unmetricalness unmettle unmew unmewed unmicaceous unmicrobic unmicroscopic unmighty unmigrating unmildewed unmilitarily unmilitariness unmilitary unmilked unmillinered unmilted unmind unminded unmindful unmindfully unmindfulness unminding unmineralized unmingle unmingleable unmingled unmingling unminimized unminister unministered unministerial unministerially unminted unminuted unmiracled unmiraculously unmired unmirthful unmirthfully unmirthfulness unmiry unmisanthropic unmiscarrying unmiscible unmisconceivable unmiserly unmisgivingly unmisguided unmisinterpretable unmisled unmissable unmissed unmissionary unmissionized unmistakable unmistakableness unmistakably unmistakeably unmistakingly unmistrusted unmistrusting unmisunderstandable unmisunderstanding unmiter unmitigable unmitigated unmitigatedly unmittened unmixableness unmixed unmixedly unmoaned unmoated unmobbed unmobilized unmocking unmockingly unmodeled unmodelled unmoderately unmoderateness unmoderating unmodern unmodernized unmodest unmodifiable unmodifiableness unmodified unmodifiedness unmodish unmodulated unmoiled unmoisten unmoldable unmoldered unmoldy unmolested unmolesting unmollifiable unmollifiably unmollified unmolten unmomentary unmomentous unmomentously unmonarch unmonarchical unmonastic unmonetary unmonitored unmonopolize unmonopolized unmonopolizing unmonotonous unmonumented unmoor unmoored unmooted unmopped unmoralist unmoralize unmoralized unmoralizing unmorally unmorbid unmordanted unmorphological unmortal unmortgage unmortgageable unmortgaged unmortified unmortifiedness unmortise unmossed unmothered unmotherly unmotionable unmotivatedly unmotorized unmottled unmounded unmount unmountable unmountainous unmounted unmounting unmourned unmournful unmourning unmouthable unmouthed unmouthpieced unmovability unmovableness unmovably unmoved unmoving unmovingly unmovingness unmown unmudded unmuddle unmuddled unmuddy unmuffled unmulcted unmulish unmullioned unmultiplied unmultipliedly unmultiply unmummied unmunched unmundane unmunificent unmunitioned unmurmured unmurmuring unmurmuringly unmuscled unmusical unmusically unmusicalness unmusicianly unmusked unmussed unmusted unmustered unmutation unmuted unmutinous unmuttered unmutual unmuzzle unmuzzling unmyelinated unmysterious unmystery unmysticize unna unnagging unnailed unnaked unnamable unnamableness unnamably unnameable unnameableness unnamed unnapkined unnapped unnarcotic unnarrated unnarrow unnation unnational unnationalized unnatural unnaturalist unnaturalistic unnaturality unnaturalizable unnaturalize unnaturalized unnaturally unnaturalness unnature unnautical unnavigability unnavigable unnavigableness unnavigated unnd unneaped unnearable unneared unnearly unnearness unneatness unnebulous unnecessarily unnecessary unnecessitated unnecessitating unnecessity unneedfulness unnefarious unneglected unnegotiableness unnegotiably unneighbored unneighborlike unneighborliness unneighborly unnephritic unner unnerve unnerved unnerving unnervous unnestle unnestled unneth unnethe unnethis unnetted unneutral unneutralized unnew unnewly unnibbed unnibbied unnice unniceness unniched unnickelled unnicknamed unnigh unnimbed unnimbly unnitrogenized unnobilitated unnobleness unnobly unnominated unnonsensical unnoosed unnorthern unnose unnosed unnotched unnoted unnoteworthy unnoticeable unnoticeableness unnoticeably unnoticed unnoticing unnotified unnoting unnourishable unnourished unnovercal unnucleated unnullified unnumberableness unnumberably unnumbered unnumberedness unnurtured unnutritious unnutritive unnuzzled unnymphlike uno unoared unobedience unobediently unobese unobeyed unobeying unobjectionable unobjectionableness unobjectionably unobjectional unobjective unobligatory unobliged unobliging unobligingly unobligingness unobliterable unoblivious unobnoxious unobscene unobscure unobscured unobsequiousness unobservant unobservantness unobserved unobservedly unobserving unobservingly unobsessed unobstinate unobstruct unobstructed unobstructedness unobstructive unobstruent unobtainable unobtainableness unobtained unobtruded unobtruding unobtrusive unobtrusively unobtrusiveness unobumbrated unobutrusively unobverted unobviated unoccasional unoccasioned unoccidental unoccluded unoccupancy unoccupation unoccupied unoccupiedness unoccurring unode unodious unoecumenic unoecumenical unoffended unoffendedly unoffender unoffending unoffendingly unoffensive unoffensiveness unoffered unofficed unofficered unofficerlike unofficial unofficialness unofficinal unofficious unofficiousness unoffset unoften unoiled unoiling unold unomened unomitted unomniscient unonerous unontological unopaque unoped unopen unopened unopening unopenly unoperably unoperated unoperatic unoperculate unopinionated unopportune unopportunely unopportuneness unopposable unopposed unopposedness unopposite unoppressed unoppressive unoppressively unoppressiveness unoppugned unopulence unopulent unoratorical unorbital unordain unordainable unordained unorder unorderable unordered unorderly unordinarily unordinary unordinate unordinately unordinateness unorganic unorganical unorganically unorganicalness unorganized unorganizedly unoriented unoriginality unoriginally unoriginalness unoriginated unoriginatedness unoriginately unoriginateness unorigination unoriginative unornamentally unornamentalness unornamented unornate unornithological unorthodox unorthodoxically unorthodoxly unorthodoxness unorthodoxy unorthographical unorthographically unoscillating unossified unostensible unostentatious unostentatiousness unoutgrown unoutlawed unoutspoken unoutworn unovercome unoverdone unoverdrawn unoverhauled unoverleaped unoverlooked unoverruled unoverthrown unoverwhelmed unowed unowing unown unowned unoxidable unoxidated unoxidizable unoxidized unoxygenated unpaced unpacifiable unpacific unpack unpacked unpacker unpacking unpadded unpadlocked unpaganize unpaged unpaginal unpaid unpainful unpaining unpaintability unpaintable unpaintableness unpainted unpaintedness unpaired unpalatability unpalatable unpalatableness unpale unpaled unpalisaded unpalisadoed unpalliable unpalliated unpalped unpalpitating unpalsied unpampered unpanegyrized unpanel unpaneled unpanged unpanniered unpantheistic unpanting unpaper unparaded unparadise unparadox unparagoned unparagonized unparagraphed unparallel unparallelable unparalleled unparalyzed unparasitical unparcel unparceled unparceling unparcelled unparcelling unparch unparched unparching unpardonable unpardonableness unpardonably unpardoned unpardonedness unpardoning unpardoningly unparented unparfit unpark unparking unparliamentary unparliamented unparriable unparroted unparrying unparsed unparsimonious unparsonic unparsonical unpartable unpartably unpartaken unpartaking unpartial unpartiality unpartially unpartialness unparticipated unparticipating unparticipative unparticular unparticularized unparticularizing unpartnered unpartook unpass unpassable unpassableness unpassably unpassed unpassing unpassionate unpassionately unpassive unpaste unpasted unpasting unpastor unpatched unpatentable unpatented unpaternal unpathetic unpathwayed unpatient unpatiently unpatientness unpatrician unpatriotically unpatriotism unpatrolled unpatronizable unpatronized unpatronizing unpaunched unpauperized unpausing unpaved unpavilioned unpaving unpawed unpayable unpayably unpaying unpayment unpeace unpeaceable unpeaceableness unpeaceful unpeacefully unpealed unpearled unpebbled unpeccable unpecked unpecuniarily unpedagogical unpedantic unpedestal unpeel unpeelableness unpeerable unpeered unpeg unpejorative unpelagic unpen unpenal unpenanced unpenciled unpencilled unpenetrated unpenetrating unpenitent unpenitently unpenitentness unpenned unpensionable unpensionableness unpensioned unpensioning unpent unpeople unpeopled unpeopling unperceived unperceiving unperceptive unperch unpercipient unpercussed unperfect unperfected unperfectedness unperfidious unperflated unperforate unperforated unperformable unperformance unperformed unperfumed unperilous unperiodic unperiodical unperiphrased unperishable unperishableness unperishably unperished unperishing unperjured unpermanent unpermanently unpermeated unpermissible unpermissive unpermitted unpermitting unperpendicular unperpetrated unperpetuated unperplexed unperplexing unpersecutive unpersevering unperseveringly unperseveringness unpersonable unpersonableness unpersonality unpersonified unperspicuous unperspirable unperspiring unpersuadable unpersuadableness unpersuadably unpersuaded unpersuadedness unpersuasion unpersuasive unpersuasively unpersuasiveness unpertaining unpertinent unperturbed unperturbedness unperuked unperused unpervaded unpervert unperverted unpessimistic unpestered unpestilential unpetal unpetrified unpetulant unpharasaic unphased unphenomenal unphilological unphilosophic unphilosophical unphilosophically unphilosophize unphilosophized unphilosophy unphlegmatic unphonetic unphonographed unphosphatized unphotographed unphrasable unphrasableness unphrased unphrenological unphysical unphysically unphysicianlike unphysiological unpickable unpicked unpickled unpicturability unpicturable unpictured unpicturesque unpicturesquely unpicturesqueness unpieced unpierceable unpierced unpiety unpigmented unpiled unpilgrimlike unpillared unpilled unpilloried unpiloted unpimpled unpin unpinched unpining unpinked unpinned unpinning unpiped unpiqued unpirated unpitched unpiteous unpiteously unpitiable unpitiably unpitied unpitiedly unpitiedness unpitiful unpitifulness unpitying unpityingness unplacable unplacably unplacated unplacid unplagiarized unplagued unplaid unplained unplainness unplait unplaited unplan unplaned unplanished unplank unplanked unplanned unplannedness unplantable unplanted unplashed unplastered unplat unplated unplatted unplausible unplausibleness unplayable unplayful unplaying unpleached unpleadable unpleaded unpleasable unpleasant unpleasanter unpleasantest unpleasantish unpleasantly unpleasantness unpleasantry unpleased unpleasing unpleasingly unpleasingness unpleasurable unpleasurably unpleated unplebeian unpledged unplenteous unplentiful unplentifulness unpliable unpliableness unpliancy unplied unplighted unplodding unplotted unplotting unplough unploughed unplowed unplug unplugged unplugging unplumb unplumbed unplume unplumed unplummeted unplummetted unplump unplunge unplutocratic unplutocratically unpocket unpocketed unpodded unpoetic unpoetical unpoetically unpoeticalness unpoeticized unpoetized unpointed unpoise unpoised unpoison unpoisonable unpoisoned unpoisonous unpolarizable unpoled unpolemical unpolemically unpolish unpolished unpolishedness unpolite unpolitely unpoliteness unpolitic unpolitical unpolitically unpollarded unpollutable unpolluted unpollutedly unpolluting unpolymerized unpompous unpondered unpontifical unpooled unpopular unpopularity unpopularize unpopulate unpopulous unpopulousness unportable unportended unportentous unportioned unportmanteaued unportrayable unportrayed unportuous unposed unpositive unpossessable unpossessedness unpossessing unpossibility unpossible unpossibly unposted unpostered unpostmarked unpostponable unpostulated unpouched unpoulticed unpoured unpower unpowerful unpowerfulness unpracticability unpracticable unpracticableness unpractical unpracticality unpracticed unpractised unpragmatical unpraisable unpraiseworthy unpray unprayable unprayed unprayerful unpraying unpreach unpreached unpreaching unprecautioned unpreceded unprecedented unprecedentedly unprecedentedness unprecedential unprecedently unprecious unprecipitate unprecipitated unprecise unprecisely unprecluded unprecludible unprecocious unpredacious unpredestinated unpredicable unpredicated unpredict unpredictable unpredicted unpredictedness unpredisposed unpredisposing unpreened unprefaced unpreferable unpreferred unprefined unprefixed unpregnant unprejudged unprejudicated unprejudice unprejudiced unprejudicedly unprejudicedness unprejudicial unprejudicially unprejudicialness unprelatic unprelatical unpreluded unpremeditate unpremeditated unpremeditatedly unpremeditatedness unpremeditately unpremonstrated unprenominated unprenticed unpreoccupied unpreordained unpreparation unprepare unprepared unpreparedly unpreparedness unpreparing unprepossessedly unprepossessing unprepossessingly unpreposterous unpresaged unpresageful unprescient unprescinded unpresentability unpresentable unpresentableness unpresented unpreserved unpresiding unpressed unpresumed unpresuming unpresumingness unpresumptuous unpresumptuously unpretending unpretendingly unpretendingness unpretentious unpretentiously unpreternatural unprettiness unpretty unprevailing unprevalent unprevaricating unpreventable unpreventableness unprevented unpreventible unpriceably unpricked unprickled unpriestlike unpriestly unpriggish unprim unprime unprimed unprimitive unprimmed unprince unprincelike unprinceliness unprincely unprincess unprincipal unprinciple unprincipled unprint unprinted unpriority unprismatic unprison unprisonable unprivate unprivileged unprizable unprobated unproclaimed unprocrastinated unprocreant unproctored unprocurable unprocurableness unprocure unprocured unproded unproduceable unproduceableness unproduceably unproducedness unproducible unproductive unproductiveness unprofanable unprofane unprofessed unprofessing unprofessional unprofessionalism unprofessionally unprofessorial unproffered unproficiency unproficient unproficiently unprofit unprofitable unprofitableness unprofitably unprofited unprofiteering unprofiting unprofound unprofusely unprofuseness unprogressed unprogressiveness unprohibited unprohibitive unprojected unprojecting unproliferous unprolix unprologued unpromise unpromising unpromisingly unpromisingness unpromoted unprompted unpromptly unpromulgated unpronounce unpronounceable unproofread unpropense unproper unproperly unproperness unpropertied unprophesied unprophetic unprophetical unprophetlike unpropiteous unpropitiable unpropitiatedness unpropitious unpropitiously unproportion unproportionable unproportionableness unproportionably unproportional unproportionality unproportionally unproportionate unproportionately unproportionateness unproportionedly unproportionedness unpropounded unpropped unprorogued unprosaic unproscribed unprosecuted unprosecuting unproselyte unproselyted unprosodic unprospected unprospective unprosperably unprosperity unprosperous unprosperously unprosperousness unprostrated unprotected unprotectedly unprotectedness unprotective unprotested unprotruded unprotrusive unproud unprovability unprovable unprove unprovedness unproven unproverbial unprovidable unprovided unprovidedly unprovidedness unprovidential unprovidently unprovincial unprovision unprovisioned unprovoked unprovokedly unprovoking unproximity unprudence unprudent unpruned unprying unpsychic unpsychological unpublic unpublicity unpublishable unpublishableness unpublishably unpublished unpuckered unpuddled unpuffing unpulverize unpulverized unpulvinate unpummeled unpummelled unpumped unpunctated unpunctual unpunctuality unpunctually unpunctuated unpunctuating unpunishable unpunishably unpunished unpunishedly unpunishedness unpunishing unpunishingly unpurchasable unpure unpurgeable unpurged unpurifiable unpurified unpurifying unpuritan unpurloined unpurpled unpurported unpurposed unpurposelike unpurposely unpurse unpursuable unpurveyed unpushed unputrefiable unputrefied unputrid unputtied unpuzzle unquadded unquaffed unquailed unquakerly unqualifiable unqualification unqualified unqualifying unqualifyingly unquantified unquantitative unquarantined unquarreled unquarreling unquarrelsome unquarried unquartered unquashed unquayed unqueened unqueening unqueenlike unqueenly unquellable unquelled unquenchable unquenchably unquested unquestionable unquestionableness unquestionably unquestioned unquestionedly unquestioning unquestioningly unquibbled unquibbling unquickened unquickly unquicksilvered unquiescence unquiescent unquiet unquieted unquieting unquietly unquietness unquietude unquilleted unquit unquittable unquivered unquivering unquizzable unquizzed unquote unrabbeted unrabbinical unraced unrack unracked unracking unradiated unradicalize unraffled unraftered unraided unrailroaded unrailwayed unrainy unrake unraked unraking unrambling unramified unramped unrancored unrank unranked unransacked unransomable unransomed unrapacious unraped unraptured unrarefied unrasped unrated unratified unrattled unravaged unravel unravelable unraveled unraveler unraveling unravellable unravelled unraveller unravelling unravels unraving unravished unravishing unravisht unrayed unreachable unreachably unreached unreactive unread unreadability unreadable unreadily unreadiness unready unreal unrealist unrealistic unreality unrealizable unrealize unrealized unreally unrealmed unrealness unreaped unreared unreasonability unreasonable unreasonableness unreasonably unreasoned unreasoning unreasoningly unreassuring unrebel unrebellious unrebuffable unrebuffably unrebukable unrebukably unrebuked unrebuttable unrecallable unrecalling unrecantable unrecanted unrecaptured unreceding unreceivable unreceiving unrecent unreceptant unreceptive unreceptivity unreciprocal unreciprocated unrecked unreckingness unreckon unreckonable unreckoned unreclaimable unreclaimably unreclaimed unreclaimedness unreclining unrecognised unrecognition unrecognizable unrecognizableness unrecognized unrecognizing unrecognizingly unrecoined unrecollected unrecommendable unrecompensed unreconcilable unreconcilableness unreconciled unrecondite unreconnoitered unreconstructed unrecordable unrecorded unrecording unrecountable unrecounted unrecoverableness unrecoverably unrecovered unrecruitable unrecruited unrectangular unrectifiably unrectified unrecumbent unrecuperated unrecurring unrecusant unred unredeemableness unredeemably unredeemed unredeemedly unredressed unreduced unreducible unreducibleness unreduct unreefed unreel unreelable unreeled unreeling unreeve unreeving unreferred unrefine unrefinedly unrefinedness unrefining unreflected unreflecting unreflectingly unreflectingness unreflective unreflectively unreformable unreformed unreforming unrefracted unrefracting unrefraining unrefreshing unrefreshingly unrefrigerated unrefulgent unrefunded unrefunding unrefusable unrefusably unrefused unrefusingly unrefutable unrefuted unrefuting unregainable unregained unregal unregaled unregality unregally unregard unregardable unregardant unregarded unregardedly unregardful unregeneracy unregenerate unregenerately unregenerateness unregeneration unregretful unregretfully unregretfulness unregrettable unregretting unregular unregulated unregulative unrehabilitated unreigning unreinstated unrejectable unrejoicing unrejuvenated unrelapsing unrelated unrelatedness unrelating unrelational unrelative unrelaxable unrelaxed unrelaxing unreleasable unreleased unrelegated unrelentance unrelented unrelenting unrelentingly unrelentingness unrelentor unreliability unreliable unreliably unreliance unrelieved unrelievedly unreligion unreligioned unreligious unreligiousness unrelinquishably unrelinquished unrelinquishing unrelishable unrelished unrelishing unreluctant unreluctantly unremarkable unremarked unremarried unremedied unremembered unremembering unremembrance unreminded unremissible unremitted unremittedly unremitting unremittingly unremonstrant unremonstrated unremonstrating unremote unremovable unremovableness unremoved unremunerating unremunerative unremuneratively unremunerativeness unrenderable unrendered unrenewable unrenewed unrenounceable unrenouncing unrenovated unrenownedly unrenownedness unrented unreorganized unrepaid unrepaired unreparted unrepealability unrepealable unrepealableness unrepealably unrepealed unrepeatable unrepeated unrepellable unrepellent unrepent unrepentable unrepentant unrepentantly unrepented unrepenting unrepentingly unrepentingness unrepined unrepining unrepiningly unrepiqued unreplaceable unreplaced unreplenished unrepleviable unreplevined unrepliably unreplied unreplying unreportedly unrepose unreposed unreposefulness unreprehended unrepresented unrepresentedness unrepressible unreprievably unreprieved unreprinted unreproachable unreproachableness unreproachably unreproached unreproachful unreproachfully unreproaching unreproachingly unreprovably unreproved unreprovedly unreproving unrepublican unrepudiable unrepudiated unrepugnant unrepulsable unrepulsing unrepulsive unrequalified unrequickened unrequired unrequisite unrequitable unrequited unrequitedly unrequitedness unrequitement unrequiting unrescinded unrescued unresemblant unresembling unresented unresentful unresenting unreserve unreserved unreservedly unreservedness unresigned unresistable unresistably unresistance unresistant unresistantly unresisted unresistedly unresistedness unresistible unresistibly unresisting unresistingly unresistingness unresolvable unresolved unresolving unresonant unresounding unresourceful unresourcefulness unrespect unrespectability unrespectable unrespected unrespectful unrespectfulness unrespectively unrespectiveness unrespirable unrespired unrespited unresponding unresponsible unresponsive unresponsively unresponsiveness unrest unrestful unrestfulness unresting unrestingly unrestingness unrestorable unrestored unrestrainable unrestrainably unrestrained unrestrainedly unrestraint unrestrictable unrestricted unrestrictedly unresumptive unretaliated unretaliating unretardable unretarded unreticent unretinued unretiring unretorted unretouched unretractable unretracted unretreating unretrenched unretrievable unretrievingly unreturnable unreturning unreturningly unrevealable unrevealed unrevealedness unrevealingly unrevelationize unrevenged unrevengeful unrevenging unrevengingly unrevenue unrevenued unreverberated unrevered unreverence unreverendly unreversable unreverted unrevertible unreverting unrevested unrevetted unreviewed unrevised unrevivable unrevocableness unrevocably unrevoked unrevolted unrevolting unrevolutionary unrevolved unrevolving unrewardable unrewarded unrewarding unreworded unrhyme unrhymed unrhythmical unribbed unrich unriched unricht unricked unridable unridably unridden unriddle unriddleable unriddled unriddler unriddling unride unridely unridered unrides unridged unridiculed unriffled unrifled unrifted unrig unrigged unrigging unright unrighted unrighteous unrighteously unrighteousness unrightful unrightfully unrightfulness unrightly unrightwise unrimmed unrimpled unrind unring unringable unringed unringing unrinsed unrioted unrioting unriotous unripe unripely unripened unripeness unripening unrippable unripped unrippled unripplingly unrisen unrising unriskable unrisked unrisky unritual unrivalable unrivalled unrived unriven unrivet unriveted unriveting unroaded unroadworthy unrobed unrobust unrocked unrococo unroiled unroll unrolled unrolling unrollment unromantic unromantical unromantically unromanticalness unroof unroofed unroofing unroofs unroomy unroosted unroosting unroot unrooted unrope unrostrated unrotated unrotted unrotten unrotund unrouged unround unrounding unroused unrouted unroved unroving unrowed unroyal unroyalist unroyalized unroyally unroyalness unrubbed unrubbish unrubified unrubrical unrubricated unruddered unrueful unruffable unruffle unruffled unruinable unruinated unrulable unrulableness unrule unruledly unruleful unruliest unrulily unruliness unruly unruminating unruminatingly unrumored unrumple unrural unrushed unrussian unrust unrustic unrusticated uns unsabbatical unsabled unsabred unsaccharic unsacerdotal unsacerdotally unsack unsacked unsacramentally unsacramentarian unsacred unsacredly unsacrificeable unsacrificeably unsacrificed unsacrificial unsad unsadden unsaddened unsaddle unsaddled unsaddling unsafe unsafeguarded unsafely unsagacious unsagging unsaid unsailed unsailorlike unsainted unsaintlike unsaintly unsalability unsalableness unsalably unsalaried unsaleable unsalivated unsallying unsalt unsaltable unsaltatory unsalted unsalubrious unsalutary unsaluted unsaluting unsalvability unsalvableness unsalvaged unsampled unsanctification unsanctified unsanctifiedly unsanctifiedness unsanctifying unsanctimonious unsanctimoniousness unsanction unsanctionable unsanctioned unsanctitude unsanctuaried unsane unsanguinary unsanguine unsanguinely unsanguineness unsanguineous unsanitariness unsanitary unsanitated unsanitation unsanity unsaponifiable unsarcastic unsardonic unsartorial unsash unsashed unsatanic unsated unsatedness unsatiability unsatiable unsatiableness unsatiably unsatiate unsatin unsatire unsatirical unsatirized unsatisfactorily unsatisfactoriness unsatisfactory unsatisfiable unsatisfiably unsatisfied unsatisfying unsaturated unsaturatedly unsaturatedness unsatyrlike unsauced unsavable unsaveable unsaved unsavored unsavoredness unsavoriness unsavory unsavoury unsay unsayability unsayable unscabbard unscabbarded unscalable unscaled unscalloped unscamped unscandalized unscanned unscanty unscarb unscared unscarfed unscarified unscarred unscathed unscathedness unscavengered unscenic unscent unscented unsceptered unsceptical unsceptre unsceptred unscheduled unscholar unscholarly unschooledly unschooledness unscientific unscintillating unscioned unscissored unscoffed unscoffing unscolded unscorched unscored unscoring unscorned unscornfulness unscotch unscotched unscottify unscoured unscourged unscowling unscrambling unscraped unscratched unscreenable unscreened unscrew unscrewable unscrewed unscrewing unscribal unscribed unscriptural unscripturalness unscrubbed unscrupled unscrupulous unscrupulousness unscrutable unscrutinized unscrutinizing unscrutinizingly unsculptural unsculptured unscutcheoned unseafaring unseal unsealable unsealed unseam unseamanship unseamed unseaming unsearchable unsearchableness unsearchably unsearched unsearcherlike unseared unseasonable unseasonableness unseasonably unseasoned unseat unseated unseaworthiness unseaworthy unseceding unsecluded unsecrecy unsecreted unsecreting unsecretive unsecretly unsecretness unsectarianism unsectarianize unsectional unsecularize unsecure unsecuredly unsecuredness unsecureness unsecurity unsedentary unseduced unseducible unseductive unsedulous unseeable unseeded unseeing unseeingly unseeking unseeming unseemingly unseemliness unseemly unseen unsegmented unsegregated unsegregatedness unseignorial unseized unseldom unselect unselected unselecting unselective unself unselfish unselfishly unselfishness unselfness unselling unsenescent unsensed unsensibility unsensible unsensibleness unsensitive unsensitize unsensitized unsensual unsensualize unsensually unsensuous unsensuousness unsent unsentimental unsentimentalist unsentimentality unsentineled unsentinelled unseparableness unseparably unseparate unseparated unsepulcher unsepulchral unsepulchre unsepulchred unsepultured unsequenced unsequestered unserenaded unserer unserflike unserried unserved unserviceable unservicelike unservile unsesquipedalian unset unsetting unsettle unsettleable unsettled unsettledness unsettlement unsettling unseverable unseverableness unsevere unsevered unseveredness unsew unsewn unsex unsexed unsexing unsexlike unsexual unshackle unshackled unshaded unshadow unshadowable unshadowed unshafted unshakeable unshakeably unshaken unshakenness unshaking unshakingness unshaled unshamableness unshamably unshameable unshameableness unshameably unshamed unshamefaced unshanked unshapable unshape unshaped unshapedness unshapeliness unshapely unshapenness unsharable unshared unsharedness unsharing unsharp unsharpen unsharpened unsharpening unsharping unshattered unshaveable unshaved unshavedly unshaven unshavenness unshawl unsheared unsheath unsheathe unsheathed unsheathes unsheathing unshed unsheet unsheeted unsheeting unshell unshelled unshelling unsheltered unsheltering unshelve unshepherded unshepherding unsheriff unshewed unshielded unshielding unshiftable unshifted unshiftiness unshifting unshimmering unshingled unshining unship unshiplike unshipment unshipped unshipping unshipshape unshipwrecked unshirking unshirted unshivered unshivering unshocked unshod unshodden unshoe unshoed unshoeing unshop unshored unshorn unshort unshortened unshot unshotted unshouted unshouting unshoved unshowable unshowed unshowmanlike unshown unshrew unshrewish unshrine unshrinement unshrink unshrinkability unshrinkable unshrinking unshrinkingly unshrived unshriveled unshriven unshrouded unshrugging unshrunken unshuffled unshunnable unshunned unshunted unshuttered unshyly unsibilant unsiccated unsickened unsickled unsickly unsiding unsiege unsighing unsight unsightable unsighted unsighting unsightliness unsightly unsigmatic unsignalized unsignalled unsigneted unsignificancy unsignificative unsignifying unsilenceable unsilenceably unsilenced unsilentious unsilicified unsilvered unsimilar unsimilarity unsimilarly unsimplicity unsimulated unsimultaneous unsin unsincere unsincerely unsincereness unsincerity unsinew unsinewed unsinewing unsinewy unsinfully unsinfulness unsingable unsinged unsinnable unsinning unsinningness unsiphon unsipped unsister unsistered unsisterly unsizable unsizableness unsizeable unsized unskaithd unskewed unskilful unskilfully unskilled unskilledly unskilledness unskillful unskillfully unskillfulness unskimmed unslack unslacked unslackening unslacking unslagged unslakable unslaked unslammed unslandered unslapped unslashed unslated unslaughtered unslave unslayable unsleaved unsleepably unsleeping unsleepingly unsleeve unsleeved unslender unslept unsliced unsliding unsling unslinging unslip unslipped unslippery unslipping unsloped unslopped unslot unslothful unslothfulness unsloughing unslow unsluice unslumbering unslung unsly unsmart unsmartly unsmartness unsmeared unsmelled unsmelling unsmelted unsmiling unsmilingly unsmilingness unsmirched unsmitten unsmokable unsmokeable unsmoked unsmokified unsmoky unsmooth unsmoothed unsmoothness unsmote unsmotherable unsmudged unsmutched unsmutted unsnaffled unsnagged unsnaky unsnap unsnapped unsnare unsnarl unsnatch unsnatched unsneck unsneering unsnib unsnobbish unsnow unsnubbable unsoaked unsoaped unsoberly unsoberness unsociable unsociableness unsociably unsocialism unsocialistic unsociality unsocializable unsocialized unsocially unsocialness unsociological unsocket unsoftened unsoftening unsoggy unsoil unsoiled unsolaced unsolar unsold unsolder unsoldered unsoldering unsoldier unsoldiered unsoldierlike unsoled unsolemn unsolemnized unsolicitated unsolicited unsolicitous unsolicitously unsolicitousness unsolid unsolidarity unsolidified unsolitary unsolvable unsolvableness unsolved unsomatic unsomber unsome unson unsonable unsonlike unsonsy unsoothed unsoothfast unsophisticate unsophisticated unsophisticatedly unsophisticatedness unsophistication unsophomoric unsordid unsore unsorrowed unsort unsortable unsorted unsorting unsotted unsought unsoulful unsoulfully unsoulish unsound unsoundableness unsounded unsounding unsoundly unsoundness unsour unsoured unsoused unsovereign unsowed unsown unspaced unspanked unspanned unspar unsparable unsparing unsparingly unsparingness unsparred unspatiality unspattered unspawned unspayed unspeak unspeakability unspeakable unspeakableness unspeakably unspeaking unspeared unspecialized unspecified unspecifiedly unspecious unspeckled unspectacled unspectacularly unspecterlike unspectrelike unspeculative unspeculatively unspeed unspell unspelt unspendable unspending unspent unspewed unsphere unsphering unspiced unspicy unspied unspike unspillable unspin unspinsterlike unspinsterlikeness unspiral unspired unspirit unspirited unspiritedly unspiritual unspirituality unspiritualize unspiritually unspiritualness unspissated unspitted unsplattered unspleened unspleenishly unsplendid unspliced unsplinted unsplintered unsplit unspoil unspoilableness unspoilably unspoiled unspoilt unspoken unspokenly unsponged unspongy unsponsored unspontaneous unspontaneously unsportsmanlike unsportsmanly unspot unspotlighted unspottable unspotted unspottedness unspoused unspouted unsprained unspread unsprightliness unspring unspringing unspringlike unsprinkled unsprinklered unsprouted unsproutful unsprung unspun unspurned unspying unsquandered unsquare unsquared unsquelched unsquinting unsquire unsquired unsquirelike unsquirted unsrer unstabbed unstability unstable unstabled unstablished unstably unstack unstacked unstacker unstaffed unstaged unstaggered unstaggering unstagnating unstagy unstain unstainable unstainableness unstained unstainedly unstainedness unstaled unstalked unstalled unstammering unstamped unstanch unstanchable unstandard unstanzaic unstar unstarch unstarched unstarlike unstarred unstarting unstartled unstatable unstate unstateable unstated unstately unstatesmanlike unstatic unstating unstationary unstationed unstatistic unstatistical unstatued unstatuesque unstatutably unstaunch unstaunchable unstaunched unstavable unstaveable unstaved unstayable unstayed unstayedness unstaying unsteadfast unsteadied unsteadily unsteadiness unsteady unsteadying unstealthy unsteaming unsteck unstecked unsteel unsteeled unsteep unsteeped unsteered unstemmable unstemmed unstentorian unstep unstercorated unsterile unstethoscoped unstewardlike unstewed unstick unstickingness unsticky unstiffen unstifled unstill unstilled unstimulated unsting unstinging unstinted unstintedly unstinting unstintingly unstipulated unstirred unstirring unstitch unstitching unstock unstocking unstoic unstoical unstoically unstoicize unstoken unstolen unstonable unstone unstoned unstoniness unstooping unstop unstopped unstopper unstore unstoried unstormed unstormy unstow unstrafed unstraight unstraightened unstrain unstrained unstraining unstrand unstrange unstrangered unstrangled unstrap unstrapped unstrategic unstrategically unstratified unstreaked unstrengthened unstrenuous unstressed unstressedness unstretched unstrewed unstrewn unstriated unstridulous unstrike unstring unstringed unstriped unstripped unstriven unstriving unstrong unstructural unstruggling unstrung unstubbed unstuccoed unstudded unstudied unstudious unstuff unstuffing unstultified unstung unstunted unstupefied unstupid unstuttered unstuttering unsty unstyled unstylish unstylishly unsubdivided unsubduable unsubduableness unsubduably unsubdued unsubduedness unsubject unsubjectable unsubjectlike unsubjugate unsubjugated unsublimable unsublimated unsublimed unsubmerged unsubmerging unsubmission unsubmissive unsubmissively unsubmissiveness unsubmitted unsubmitting unsubordinate unsubordinated unsuborned unsubpoenaed unsubscribing unsubservient unsubsidiary unsubsiding unsubstanced unsubstantial unsubstantialize unsubstantially unsubstantialness unsubstantiated unsubstantiation unsubstituted unsubtle unsubtleness unsubtlety unsubtly unsubventioned unsubventionized unsubversive unsubverted unsubvertive unsucceedable unsucceeding unsuccess unsuccessful unsuccessfully unsuccessive unsuccinct unsuccored unsucculent unsucked unsued unsufferable unsufferableness unsufferably unsuffered unsuffering unsufficed unsufficiency unsufficient unsufficiently unsufficing unsufficingness unsuffocative unsugary unsuggested unsuggestive unsuggestiveness unsuit unsuitability unsuitable unsuitableness unsuited unsulky unsullen unsulliable unsullied unsulliedness unsulphureous unsulphurized unsultry unsummarized unsummed unsummered unsummerlike unsummonable unsummoned unsumptuary unsun unsunburned unsundered unsung unsunk unsunken unsunned unsunny unsuperannuated unsupercilious unsuperficial unsuperfluous unsuperior unsuperlative unsupernatural unsupernaturalized unsuperscribed unsuperseded unsuperstitious unsupped unsupplantable unsupplanted unsupple unsuppliable unsupplicated unsupplied unsupportable unsupportableness unsupportably unsupported unsupportedly unsupportedness unsupposed unsuppressed unsuppressible unsuppressibly unsuppurated unsuppurative unsupreme unsure unsurfaced unsurfeited unsurfeiting unsurgical unsurmountable unsurmountableness unsurmountably unsurnamed unsurpassable unsurpassed unsurplice unsurprised unsurrendered unsurrendering unsurrounded unsurveyed unsurvived unsusceptibility unsusceptible unsuspectable unsuspectably unsuspected unsuspectedly unsuspectedness unsuspectful unsuspectfulness unsuspectible unsuspecting unsuspectingly unsuspectingness unsuspective unsuspicion unsuspicious unsuspiciously unsuspiciousness unsustained unsustaining unsutured unswabbed unswaddle unswaddled unswallowable unswallowed unswarming unswathable unswathed unswathing unswayable unswayed unswayedness unswaying unsweat unsweated unsweating unsweetened unsweetenedness unswell unswelling unsweltered unswept unswervable unswerved unswerving unswervingly unswilled unswing unswingled unswollen unswooning unswung unsyllabic unsyllabled unsymbolic unsymbolically unsymbolicalness unsymbolized unsymmetrical unsymmetrically unsymmetrized unsymmetry unsympathetic unsympathetically unsympathized unsympathizing unsympathizingly unsympathy unsymptomatic unsynchronized unsynchronous unsyncopated unsyndicated unsynonymous unsyntactical unsystematic unsystematical unsystematically unsystematizedly unsystematizing untabernacled untabulated untack untacking untackle untackled untactful untactfulness untagged untailed untailorlike untailorly untaint untaintable untainted untaintedly untaintedness untakable untakableness untakeableness untaken untaking untalented untalkative untalked untalking untall untamable untame untameable untamed untamely untampered untangibility untangible untangibleness untangibly untangle untangled untangling untanned untantalized untantalizing untap untapered untapering untapestried untappable untapped untar untarnishable untarnished untarried untarrying untartarized untasked untasseled untaste untasteable untasted untasteful untastefulness untasting untasty untattered untaught untautological untawdry untawed untax untaxable untaxed untaxing unteach unteachable unteachableness unteachably unteacherlike unteaching unteam unteamed unteaming unteasled untechnical untechnicalize untechnically untedded untedious unteem unteeming unteethed untell untellable untellably untelling untemperamental untemperateness untempered untempering untempested untempestuous untempled untemporal untemptable untemptably untempted untempting untemptingly untenability untenable untenableness untenacity untenant untenantable untenantableness untenanted untended untender untendered untenderly untenible untenibleness untenibly untense untent untented untenty unter unteritalischen unterminated unterraced unterrifiable unterrific unterrifying unterrorized untersucht untessellated untestamentary untested untestifying untethered untethering untewed untextual unthank unthanked unthankful unthankfully unthankfulness unthaw unthawing untheatric untheatrical untheatrically untheistic unthematic untheological untheologically untheologize untheorizable unthick unthicken unthickened unthievish unthinkability unthinkable unthinkableness unthinkably unthinker unthinking unthinkingly unthinkingness unthirsting unthirsty untholeably unthorny unthought unthoughted unthoughtful unthoughtfulness unthrall unthralled unthrashed unthreaded unthreading unthreatened unthreshed unthrift unthriftiness unthriftlike unthrifty unthrilled unthrilling unthriven unthriving unthrivingness unthrob unthrone unthroned unthronged unthrottled unthrowable unthrown unthrushlike unthundered unthwacked unthwarted untiaraed unticketed untickled untidal untidily untidiness untidy untidying untie untied untigerish untight until untile untilled untilling untilt untilted untilting untimbered untimed untimedness untimeliness untimely untimeous untin untinctured untine untinged untinkered untinned untinseled untinted untipped untippled untipt untirability untire untired untiring untiringly untissued untithability untithable untitled untittering untitular unto untoadying untoasted untoggle untoggler untoiled untoileted untold untolerable untolerableness untolerated untomb untombed untone untoned untonsured untooled untooth untoothed untoothsomeness untop untopographical untormented untorn untorpedoed untorrid untortuous untorture untotalled untottering untouch untouchable untouchableness untouchably untouched untouchedness untouristed untoward untowardly untowardness untown untownlike untrace untraceable untraceableness untraceably untraced untraceried untracked untractability untractable untractableness untractarian untractible untractibleness untradeable untraded untrading untraditional untrafficked untragic untragical untrailed untrain untrainable untrained untrainedly untraitored untrammed untrammeled untrammeledness untrammelled untramped untrampled untranquil untranquilized untranquillize untransacted untranscended untranscendental untransferable untransferred untransfigured untransformed untransforming untransfused untransitable untranslatable untranslatableness untranslated untransmigrated untransmissible untransmitted untransmuted untransparent untranspired untransportable untransported untransposed untrappable untrapped untrashed untraveled untraveling untravellable untravelled untraversable untraversed untravestied untreacherous untread untreadable untreading untreasure untreatableness untreatably untreated untrekked untrellised untremendous untremulous untrenched untrespassed untrespassing untress untressed untriable untribal untriced untrickable untried untrifling untrig untrigonometrical untrill untrimmed untrinitarian untripe untripped untrite untriturated untriumphable untriumphant untriumphed untrod untrodden untroddenness untrolled untrophied untrouble untroubled untroubledly untroubledness untroublesome untrounced untruck untruckled untruckling untrue untrueness untruly untrumped untrumpeted untrumping untrundled untrunked untrussed untrusser untrust untrusted untrustful untrusting untrustworthily untrustworthy untrusty untruth untruthful untruthfully untruthfulness untruths untrying untubbed untuck untuckered untucking untufted untugged untumid untunable untunableness untunably untune untuneably untuned untuneful untunefulness untuning untunneled untupped unturf unturfed unturgid unturn unturned unturning unturpentined unturreted untusked untutelar untutored untutoredly untutoredness untwilled untwinable untwine untwined untwining untwinkling untwinned untwirl untwirled untwirling untwisted untwister untwisting untwitched untying untypical untypically untyrannic untz unubiquitous unudder unulcerated unultra unumpired ununanimity ununderstandable ununderstanding unundertaken unundulatory unungun ununifiable ununiform ununiformed ununiformity ununiformly ununiformness ununitably ununited ununiversity unupbraiding unupbraidingly unupholstered unuprightness unupset unupsettable unurgent unurging unurn unusable unusableness unusably unuse unused unusedness unuseful unusefully unusefulness unushered unusual unusually unusualness unusuals unusualy unusurped unusurping unutilizable unutterability unutterable unutterableness unutterably unuttered unuxorious unvacant unvaccinated unvacillating unvain unvaleted unvaletudinary unvaliant unvalid unvalidated unvalidating unvalidity unvalidly unvalorous unvaluable unvaluableness unvalue unvalued unvamped unvanishing unvanquishable unvanquished unvantaged unvariableness unvariably unvariant unvaried unvariedly unvarnished unvarying unvaryingly unvascular unvatted unvaulted unvaulting unvaunted unvauntingly unvaying unveering unveil unveiled unveiledly unveiling unveined unvelvety unvendable unvendableness unvended unvendible unveneered unvenerable unvenerated unvenereal unvenial unvenom unvenomous unvented unventilated unventured unventurous unvenued unveracity unverbalized unverdured unveridical unverifiable unverifiableness unverified unverifiedness unveritable unverminous unvernicular unversatile unversed unversedly unvertical unvessel unvesseled unvetoed unvexed unviable unvicarious unvicariously unvicious unvictorious unvictualed unviewable unviewed unvigilant unvilified unvindicated unvindictive unvindictively unvinous unvintaged unviolable unviolated unviolenced unviolined unvirgin unvirginlike unvirile unvirtue unvirtuous unvirtuously unvirtuousness unvisibleness unvision unvisionary unvisited unvisor unvisualized unvital unvitalized unvitalness unvitiated unvitiatedly unvitrescibility unvitrescible unvitrifiable unvitrified unvitriolized unvituperated unvivified unvizard unvizarded unvocalized unvociferous unvoice unvoiced unvoicing unvoidable unvoided unvolatile unvolatilize unvolatilized unvolcanic unvolitioned unvoluminous unvoluntarily unvoluntariness unvoluntary unvolunteering unvoluptuous unvomited unvoracious unvoted unvoting unvowed unvoweled unvoyageable unvoyaging unvulcanized unvulgar unvulgarize unvulgarized unvulgarly unvulnerable unwadded unwadeable unwafted unwaggably unwagged unwailing unwainscoted unwaiting unwaked unwakeful unwakening unwalkable unwall unwalled unwallet unwan unwandered unwandering unwaning unwanted unwarbled unwarded unware unwarily unwariness unwarlike unwarm unwarmable unwarmed unwarned unwarnedly unwarp unwarpable unwarrantability unwarrantable unwarrantableness unwarrantably unwarranted unwarrantedness unwary unwashable unwashed unwassailing unwasted unwastingly unwatchable unwatchfully unwatchfulness unwatching unwater unwatered unwaterlike unwatermarked unwatery unwaved unwaverable unwavered unwavering unwaveringly unwayward unweakened unwealsomeness unweaned unweapon unweaponed unwearable unweariability unweariableness unweariably unwearied unweariedly unwearisomeness unweary unwearying unwearyingly unweatherly unweave unweaving unweb unwed unwedded unweddedly unweddedness unwedge unwedgeable unwedged unweeded unweelness unweened unweeting unweft unweighable unweighed unweighing unweight unweighted unweighty unwelcome unwelcomed unwelcomely unwelcomeness unweldable unwelded unwell unwellness unwelted unwept unwestern unwesternized unwet unwettable unwetted unwheedled unwhelmed unwhetted unwhig unwhiglike unwhining unwhip unwhipped unwhirled unwhisked unwhisperable unwhispered unwhistled unwhited unwholesome unwholesomely unwidened unwidowed unwield unwieldable unwieldily unwieldly unwieldy unwifed unwifely unwig unwigged unwild unwilily unwiliness unwilled unwillful unwillfully unwillfulness unwilling unwillingly unwillingness unwilted unwilting unwincingly unwind unwindable unwinding unwindowed unwindy unwinged unwinking unwinning unwinnowed unwinsome unwinter unwintry unwire unwisdom unwise unwisely unwiseness unwished unwishful unwishing unwist unwitch unwitched unwithdrawable unwithdrawn unwitherable unwithered unwithering unwitless unwitnessed unwitted unwittily unwitting unwittingly unwitty unwive unwoeful unwoful unwomanish unwomanize unwomanized unwomanlike unwomanliness unwomanly unwomb unwonder unwonderful unwondering unwonted unwontedly unwontedness unwooed unwordily unworkable unworkableness unworked unworkedness unworker unworking unworkmanlike unworkmanly unworld unworldliness unworldly unwormy unworn unworried unworriedly unworriedness unworshiping unworth unworthily unworthiness unworthy unwotting unwound unwoundable unwoundableness unwrangling unwrap unwrapped unwrapping unwrathful unwrathfully unwreathe unwreathed unwrecked unwrenched unwrestedly unwresting unwretched unwrinkle unwrinkleable unwrinkled unwrite unwriteable unwritten unwrongful unwrought unwrung unyeaned unyearned unyearning unyielded unyielding unyieldingly unyoke unyoked unyoking unyoung unzealously unzen unzephyrlike unzone uom up upaisle upaithric upalong upanishadic upapurana uparch uparching uparise uparm uparna upas upattic upavenue upbank upbear upbelch upbelt upbend upblacken upblast upblaze upblow upboil upboost upborne upboulevard upbound upbrace upbraid upbraided upbraider upbraideth upbraiding upbraidingly upbraidings upbraids upbreed upbreeze upbrighten upbring upbringing upbroken upbrook upbrought upbrow upbubble upbuild upbuilder upbuoy upburn upburst upbuy upcast upcaught upchamber upchannel upchimney upchoke upcity upclimbing upclose upcloser upcoast upcock upcoil upcolumn upcome upcoming upconjure upcountry upcourse upcover upcrane upcrawl upcrop upcrowd upcurled upcurrent upcurve upcurving upcushion upcut update updated updates updeck updive updo updraft updrag updraw updrink updry upeygan upfeed upfield upfill upfingered upflame upflare upflash upflee upflicker upfling upflood upflow upflower upflung upfold upfollow upframe upgale upgather upgathered upget upgird upgive upglean upgorge upgrave upgrow upgrown upgully upgush uphand uphang upharbor uphasp upheal upheap uphearted upheaval upheavalist upheave upheaved upheaves upheaving upheld uphelya uphill uphillward uphoard uphoist uphold upholden upholder upholders upholding upholds upholster upholstered upholsterer upholsteress upholstering upholstery upholsterydom upholstress uphurl upin upjerk upkeep upkindle upknit upla upladder uplaid uplake upland uplands uplead upleap upleaping uplick uplift upliftable uplifted upliftedly uplifter uplifting upliftingly upliftingness upliftings upliftitis upliftment uplifts uplight uplimber uplit uplock uplong uplooker uploop uplying upmaking upmix upmost upmount upmountain upmove upoer upon uppard uppent upper upperch upperclassman upperclassmen uppercut upperhandism uppermore uppermost uppers uppertendom uppile upping uppish uppishly uppity upplow uppon uppop uppour uppowoc upprick upprop uppush upquiver upraisal upraised upraiser upraises upraising uprear upreared uprend uprender uprest uprestore upridge upright uprighteous uprighteousness uprighting uprightly uprightness uprights uprip uprisal uprise uprisement uprisen upriser uprising uprisings uprist uprive uproar uproariness uproarious uproariously uproariousness uproars uproom uproot uprootal uprooted uprooter uprooting uprose uprouse uprush ups upsaddle upscale upscrew upscuddle upseal upseek upseize upsend upset upsets upsettable upsettal upsetter upsetting upsey upshaft upsheath upshoaled upshoot upshoots upshot upshoulder upshut upside upsides upsiloid upsilon upsilonism upsit upsitting upslant upslip upslope upslopes upsmite upsoak upsoareth upsolve upspear upspeed upspew upspin upspire upsplash upspout upspread upspring upspringing upsprings upsprinkle upspurt upstaff upstage upstair upstairs upstand upstander upstanding upstare upstart upstartism upstartle upstartness upstater upstay upsteal upsteam upstep upstick upstir upstream upstreamward upstreet upstretch upstrike upstruggle upsun upsup upsurge upswallow upswarm upsweep upswell upswing uptable uptake uptear uptemper uptend upthrow upthrust upthunder uptide uptill uptilt upton uptoss uptower uptown uptowner uptrace uptrack uptrail uptrain uptrend uptrill uptrunk uptuck upturned upturning uptwined uptwist upuos upupa upupidae upupoid upvalley upvomit upwall upward upwardly upwardness upwards upway upways upwell upwelling upwhelm upwhir upwhirl upwind upwith upwork upwound upwrap upwreathe upwrench upwring upwrought upyoke uqually ur ura urachal urachovesical uracil uraemic uraeus uragoga ural urali uralian uralic uralite uralitic uralitization uralitize uralium urally uramido uramil uramilic uramino uran uranalysis uranate urania uranicentric uraniferous uraniidae uranine uraninite uranion uraniscochasma uraniscoplasty uraniscorrhaphy uranism uranite uranitic uranium uranocircite uranographer uranographic uranographical uranographist uranolatry uranolite uranological uranology uranometria uranometrical uranophane uranophotography uranoplastic uranoplasty uranoplegia uranorrhaphia uranorrhaphy uranoschisis uranoschism uranoscope uranoscopia uranoscopic uranosphaerite uranospinite uranostaphyloplasty uranostaphylorrhaphy uranothorite uranotil uranus uranyl urari urartaean urartic urase urataemia uratic uratoma uratosis uraturia urazine urazole urbacity urbainite urban urbana urbane urbanely urbaneness urbanist urbanite urbanity urbanize urbe urbem urbian urbic urbicolae urbification urbify urbis urceiform urceolate urceolina urceolus urceus urchin urchinlike urchins urd urde urdee ure urea ureal urealyticum ureametry ureas urease urechitin urechitoxin uredema uredine uredineous uredinia uredinial urediniopsis urediniospore urediniosporic uredinium uredinoid uredinology uredinous uredo uredospore uredosporic uredosporous ureic ureide ureido urent ureometry ureosecretory uresis uretal ureter ureteral ureteralgia ureterectasia ureterectomy ureteric ureteritis ureterocele ureterocervical ureterocystanastomosis ureterocystoscope ureterodialysis ureterogenital ureterograph ureterography ureterointestinal ureterolith ureterolithiasis ureterolithotomy ureterolysis ureteronephrectomy ureterophlegma ureteroplasty ureteropyelitis ureteropyelogram ureteropyelography ureteropyelostomy ureteropyosis ureteroradiography ureterorectostomy ureterorrhagia ureterorrhaphy ureterosalpingostomy ureterosigmoidostomy ureterostenoma ureterostenosis ureterostoma ureterostomy ureterotomy ureterouteral ureterovaginal ureterovesical ureters urethane urethanes urethra urethragraph urethral urethralgia urethrascope urethratome urethratresia urethrectomy urethremphraxis urethreurynter urethrism urethritic urethroblennorrhea urethrobulbar urethrocystitis urethrogenital urethrogram urethrograph urethropenile urethroperineal urethrophyma urethroplastic urethroplasty urethrorectal urethrorrhagia urethrorrhea urethrorrhoea urethroscopic urethroscopical urethrospasm urethrostaxis urethrostenosis urethrostomy urethrotome urethrotomic urethrotomy urethrovaginal urethrovesical urethylan uretic urf urge urged urgence urgency urgent urgently urger urges urginea urging urgingly urgings urgonian urheen uria urial uric uricacidemia uricaemia uricemia uricemic uricolysis uricolytic uridrosis uriel urinaemia urinalist urinalysis urinant urinary urinate urinated urination urinative urinator urine uriniparous urinogenital urinogenous urinologist urinology urinomancy urinometric urinoscopic urinoscopist urinoscopy urinose urinosexual urinous urinousness uris urite urlar urled urling urn urna urnae urnal urnflower urnism urnlike urns uro uroacidimeter uroazotometer urobak urobenzoic urobilin urobilinemia urobilinuria urocerata urocerid uroceridae urochloralic urochordal urochordate urochrome urochromogen urocoptidae urocoptis urocyst urocystitis urodela urodele urodialysis urodynia urofuscohematin urogastric urogenital urogenous uroglaucin uroglena urogram urography urogravimeter urohematin urohyal urolagnia uroleucinic urolith urolithic urolithology urologic urological urology urolutein urolytic uromancy uromantia uromantist uromastix uromelanin uromelus uromere urometer uromyces uromycladium uronephrosis uronic uropeltidae urophanic urophein urophlyctis urophthisis uroplania uropod uropodal uropodous uropoetic uropoiesis uropsile uroptysis uropygi uropygium urorosein urorrhea urosaccharometry urosacral uroschesis uroscopist uroscopy urosepsis urosomatic urosome urosomite urosomitic urostea urostegal urostege urostegite urosteon urosternite urosthene urosthenic urostyle urotoxia urotoxic urotoxicity urotoxin urotoxy urox uroxanate uroxanic uroxin urradhus urrhodin urrhodinic ursal ursicidal ursicide ursid ursidae ursiform ursigram ursine urso ursodeoxycholic ursodiol urson ursone ursprungliche ursuline ursurped urtica urticaceae urticales urticant urticaria urticarial urticarious urticastrum urticate urticose uru urubu urucu urucuri uruguay uruguayan uruisg urukuena urus urushi urushic urushinic urushiol urushiye us usable usaf usage usager usages usar usaron usation usc usc&gs usda use used usedly usee useful usefullish usefully usefulness usehold useless uselessly uselessness usent user users uses useter useth usgs ushabtiu ushak usheen usher usherdom ushered usheress usherian ushering usherism usherless ushers ushership usia usin using usings usipetes usitate uskara uskok usnea usneaceous usneoid usninic uso usp uspanteca usps usque usselven ussingite ussr ust ustilaginaceae ustilagineous ustulation ustulina usual usualism usually usualness usucapion usucapionary usucapt usucaption usufruct usufructuary usurer usurerlike usurers usuress usuriously usurp usurpation usurpations usurpative usurpatively usurpatory usurped usurper usurping usurpment usurpor usurpress usury uswards utahite utai utas utch utchy utensil utensils uteralgia uterectomy uterine uteritis utero uteroabdominal uterocele uterocervical uterocystotomy uterofixation uterogram uterolith uteromania uterometer uteroovarian uteroparietal uteropelvic uteroperitoneal uteropexy uteroplacental uteroplasty uterosacral uterosclerosis uteroscope uterotomy uterotubal uterovaginal uteroventral uterovesical uterus utfangenethef utfangthef utfangthief uti utica utick utile utilitarian utilitarianism utilitarianist utilitarianize utilitarianly utilities utility utilizable utilization utilize utilized utilizes utilizing utinam utis utmost utmostness utopia utopian utopianism utopianist utopianize utopianizer utopism utopistic utraquism utraquist utraquistic utricul utriculariaceae utriculate utriculiferous utriculiform utriculitis utriculoplastic utriculoplasty utriculose utriculus utriusque utsuk utter utterability utterable utterance utterances utterancy uttered utterer utterest uttering utterless utterly uttermost utterness utters utu uturuncu uv uval uvalha uvanite uvate uvb uvea uveitic uvella uvic uvid uvitic uvitinic uvito uvrou uvular uvularly uvulitis uvuloptosis uvulotome uvulotomy uvver uxorial uxorially uxoricidal uxoricide uzarin uzbeg vaagmer vaalite vaalpens vacabond vacancies vacancy vacant vacantheartedness vacantly vacantness vacantry vacatable vacate vacated vacating vacation vacational vacationist vacationland vacations vacatur vaccary vaccenic vaccigenous vaccina vaccinable vaccinal vaccinate vaccinated vaccinating vaccination vaccinations vaccinator vaccinatory vaccine vaccinee vaccinella vaccines vacciniaceae vacciniaceous vaccinial vacciniform vacciniola vaccinist vaccinization vaccinogenous vaccinoid vaccinotherapy vache vachette vacillancy vacillant vacillate vacillated vacillating vacillatingly vacillation vacillations vacillator vacoa vacona vacoua vacouf vacua vacual vacuate vacuefy vacuist vacuity vacuo vacuolar vacuolary vacuole vacuoles vacuolization vacuometer vacuous vacuously vacuousness vacuum vacuuma vacuumize vade vaded vadimony vadit vadium vadose vaduz vady vae vag vagabond vagabondage vagabondager vagabondism vagabondismus vagabondize vagabondizer vagabondry vagabonds vagaries vagarious vagariously vagarisome vagarity vagary vagi vagiform vagina vaginalectomy vaginaless vaginalis vaginant vaginas vaginate vaginectomy vaginervose vaginicoline vaginiferous vaginismus vaginitis vaginocele vaginodynia vaginofixation vaginolabial vaginometer vaginomycosis vaginoperineal vaginoperitoneal vaginopexy vaginoplasty vaginosis vaginotome vaginotomy vaginovesical vaginula vaginule vagnera vagoaccessorius vagodepressor vagolysis vagotomize vagotropic vagrancy vagrant vagrantism vagrantize vagrantlike vagrantly vagrantness vagrants vagrate vagrom vague vaguefaisceau vaguely vagueness vaguer vaguest vagulous vagus vahine vaidic vail vailable vailed vaillant vailyzeand vain vainer vainest vainful vainglorious vaingloriously vaingloriousness vainglory vainly vainness vair vaire vairy vais vaishnava vaishnavism vaited vaivode vajrasana vakia vakils vakkaliga valaisienne valanche valde vale valedictorian valedictorily valedictory valee valence valencia valencian valenciennes valencies valentide valentine valentines valentinianism valentinite valeraldehyde valeramide valerate valeria valerian valerianaceae valerianaceous valerianales valerianella valerianic valerianoides valeric valerie valerin valerolactone valery valeryl vales valet valeta valetdom valethood valetism valets valetudinarian valetudinarianism valetudinariness valetudinarist valetudinarium valetudinary valeur valeyable valgoid valgus valhall valhalla vali valiance valiancy valiant valiantly valiantness valid validate validated validation validatory validification validity valine valise valiseful valiship valium valkyria valkyrian valkyrie vall vallancy vallar vallary vallate vallated vallation vallecular valleculate vallee vallevarite valley valleyful valleylike valleys valleyside valleyward valleywise vallicula vallidom valliscaulian vallisneria vallisneriaceous vallombrosan vallota vallum vally valois valonia valoniaceae valoniaceous valor valorem valorization valorize valorous valorousness valour valparaiso valproate valsa valsaceae valsalva valsalvan valsoid valuable valuableness valuables valuably valuate valuation valuational valuations value valued valueless valuelessness values valuing valure valvae valval valvata valve valveless valvelike valveman valves valviferous valviform valvula valvulae valvular valvulas valvulate valvule valvulitis valvulotome valvulotomy valylene vambraced vamfont vammazsa vamoose vamp vamped vamper vamphorn vamping vampire vampireproof vampires vampiric vampirish vamplate vampproof vampyrellidae vampyrum van vanadate vanadiferous vanadium vanadyl vanaprastha vance vancomycin vancourier vancouver vancouveria vandalic vandalish vandalism vandalistic vandalization vandalize vandalroot vandemonian vandemonianism vanderbilt vanderpoel vandyke vandyked vane vanelike vanellus vanes vanessa vanfoss vang vangee vanguard vanguardist vanguards vangueria vanilla vanillal vanillaldehyde vanillate vanille vanillery vanillic vanillin vanillinic vanillon vanillyl vanir vanish vanished vanisher vanishes vanishing vanist vanitarianism vanite vanities vanity vanman vannai vanner vannerman vannet vanquish vanquishable vanquished vanquisher vanquishes vanquishing vanquishment vans vant vantage vantageless vantbrace vantbrass vanum vanward vapid vapidly vapocauterization vapographic vapography vapor vaporability vaporable vaporarium vaporary vaporate vapored vaporer vaporescence vaporiferous vaporific vaporimeter vaporing vaporish vaporishness vaporium vaporization vaporize vaporizers vaporizes vaporless vaporlike vaporographic vaporoseness vaporosity vaporous vaporously vaporousness vapors vapour vapouring vapourish vapourous vapours vapoury vapulary vapulate vapulation vara varahan varan varanger varangian varanid varanoid varanus vardapet vardy vare varec vareheaded vareuse vargem vargt vargueno variabilis variability variable variableness variably variac variag varian variance variant variants variate variation variational variationist variations variatious variative variatively variator varical varicated varicella varicellar varicellate varicelliform varicelloid varicellous varices variciform varicoblepharon varicocele varicoid varicolored varicose varicosed varicoseness varicosity varicula varied variegated varier variery varies varietal varietally varieties varietism varietist variety variform variformed variformity variformly variocoupler variods variola variolate variolation variolic variolite variolitic varioloid variolovaccine variolovaccinia variometer variorum varios variotinted various variously variousness varisse varistor varix varlet varletess varletry varlets varletto varment varmint varnashrama varnish varnished varnisher varnishing varnishment varnishy varones varronia varsal varsity varsovian varsoviana varuna varus varve vary varying varyingly vas vasa vasal vascular vascularity vascularization vasculated vasculature vasculiform vasculitis vasculogenesis vasculolymphatic vasculomotor vasculose vasculum vase vasectomies vasectomize vasectomy vaseful vaselet vaselike vaseline vasemaker vasemaking vases vasework vashegyite vasicentric vasicine vasiferous vasiform vasoconstriction vasoconstrictive vasoconstrictor vasocorona vasodentinal vasodilatation vasodilatin vasodilating vasodilator vasoepididymostomy vasofactive vasoformative vasohypertonic vasoinhibitor vasoligature vasomotion vasomotor vasomotorial vasomotory vasoneurosis vasopuncture vasoreflex vasosection vasospasm vasostimulant vasostomy vasovagal vasquez vasquine vassal vassalage vassaless vassalic vassalism vassality vassalize vassalless vassalry vassals vassalship vassar vast vastate vastation vaster vastes vastest vasti vastidity vastily vastiness vastitude vastitudes vastity vastly vastness vasts vastus vasty vasu vasudeva vasundhara vat vated vatful vatic vatically vatican vaticanal vaticanical vaticanism vaticanist vaticanization vaticanize vaticide vaticinate vaticination vaticinatory vaticinatress vaticinatrix vatmaker vatman vats vatter vaucheriaceae vaucheriaceous vaudeville vaudevilles vaudism vaudois vaughn vault vaulted vaultedly vaulting vaultlike vaults vaulty vaunt vauntage vaunted vaunter vauntery vauntiness vaunting vauntmure vaunts vaunty vauquelinite vaut vauxhall vauxite vav vavasor vavasory vavassors vaward vbac vcry vdy ve veadar veal vealed vealer vealskin vealy vectigal vectigales vection vectis vectograph vectographic vector vectorial vectors vecture vecu veda vedaic vedalia vedana vedanta vedantic vedantist vedda vedete vedette vedic vedika vediovis vedism vedist veduis vedure vee veen veer veerable veered veering veers veery vega vegatables vegeculture vegetable vegetables vegetablewise vegetably vegetal vegetalcule vegetales vegetality vegetant vegetarian vegetarianism vegetate vegetating vegetation vegetationless vegetations vegetative vegetativeness vegetaux vegete vegeteness vegetivorous vegetoalkali vegetoalkaloid vegetobituminous vehemence vehemency vehement vehemently vehicle vehicles vehicular vehiculary vehiculate vehiculation vehiculatory vehmic veil veiled veiledness veiler veiling veilless veilmaker veilmaking veils vein veined veinery veininess veining veinless veinous veins veinstuff veinule veinwise veinwork veiny vejoces vejoz vel vela velal velamen velar velardenite velaric velarium velarize velary velasquez velate velated velation velatura velban velchanos veldcraft veldman veldschoen veldtschoen velella velellidous velic veliferous veliger velika vell vellala velled vellicate vellicative vellous vellozia velloziaceae vellum vellus velly velocimeter velocious velociously velocipedal velocipede velocipedean velocitate velocities velocitous velocity velours veloutine velum velure velutina velutinous velveret velvet velvetbreast velveted velveteen velveteened velvetiness velvetleaf velvetlike velvets velvetweed velvety vely ven vena venae venal venalis venality venalization venalize venally venant venantes venanzite venatic venatical venator venatorious vencola vend vendean vendee vender venders vendetta vendettist vendible vendibly vendicate vendidad vending venditation venditor vendor vendors vendue vened venedotian veneer veneered veneering veneers veneficious veneficous venenate venenation venene veneniferous venenific venenis venenosalivary venepuncture venerabilis venerable venerablest venerably veneracean veneral veneralia venerance venerant venerate venerated venerates venerating veneration venerative veneratively venerativeness venerator venereae venereal venerealness venereology venery venesection venesia venetes venetian venetianed venezolano venezuela venezuelan vengeable vengeance vengeant vengeful vengefully vengefulness vengeously venger veni venial veniality venialness venin venir venireman venison venisonivorous venisonlike venisuture venit venizelist venom venomed venomer venomization venomosalivary venomous venomously venomousness venomproof venomsome venomy venosa venosal venosam venosclerosis venose venosinal venosity venous venousness vent ventage ventail vented venthole ventiduct ventil ventilable ventilate ventilated ventilating ventilation ventilative ventilator ventilators venting ventless ventometer ventral ventralmost ventralward ventre ventricle ventricles ventricolumna ventricornu ventricornual ventricose ventricoseness ventricosity ventricular ventriculitic ventriculo ventriculography ventriculoscopy ventriculose ventriculus ventricumbent ventrifixation ventrilocution ventriloqual ventriloquism ventriloquisms ventriloquist ventriloquize ventriloquous ventrimesal ventrine ventripotency ventripotential ventripyramid ventroaxillary ventrocaudal ventrodorsad ventrodorsal ventrofixation ventrohysteropexy ventroinguinal ventrolaterally ventromesal ventromesial ventromyel ventroposterior ventroptosis ventroscopy ventrose ventrosity ventrosuspension ventrotomy vents venture ventured venturer ventures venturesome venturesomely venturesomeness venturia venturine venturing venturous venturousness venu venue venula venule venus venusian venutian venville veo vepse vepsish ver vera veracious veraciously veraciousness veracity verae veranda verandaed verandah verandahs verandas verapamil verascope veratral veratralbine veratrate veratric veratridine veratrine veratrinize veratroyl veratrum veratryl veratrylidene verb verbal verbalist verbality verbalize verbally verbarian verbasco verbascose verbascum verbate verbatim verbed verbenaceae verbenaceous verbenalike verbenalin verbenarius verbenone verberate verberation verberative verbesina verbiage verbicide verbiculture verbification verbigerate verbigeration verbile verbless verbolatry verbomania verbomaniac verbomotor verbose verboseness verbosity verbous verbs verchok verd verdant verdantness verde verdelho verderer verderership verdet verdi verdict verdicts verdigris verdigrisy verdin verditer verdun verdure verdured verdurous vere verecundity verecundness verek veretilliform veretillum verge verged vergence vergent vergentness verger vergeress vergerless vergers verges vergi verging vergleichende vergleichenden veri veridicality veridically veridicous verie veriest verifiability verifiable verifiableness verifiably verification verificative verified verifier verifies verify verifying verily verine verisimilar verisimilarly verisimilitude verisimilitudinous verisimility verism veritability veritable veritablement veritableness veritably verite verities veritist veritistic verity verjuice verkhoyansk verlag verlangen vermeil vermeologist vermeology vermes vermetus vermian vermicelli vermicidal vermicularly vermiculate vermiculated vermiculation vermicule vermiculite vermiculosity vermiculous vermiform vermiformia vermiformis vermiformity vermifuge vermifugous vermigrade vermilingues vermilinguia vermilion vermilionette vermilionize vermillion vermillioned vermin verminate vermination verminer verminicidal verminicide verminiferous verminosis verminously verminousness verminproof verminy vermiparous vermiparousness vermis vermivorous vermivorousness vermont vermonter vermorel vermouth vermouths verna vernacle vernacula vernacular vernacularism vernacularity vernacularization vernacularly vernaculate vernal vernalis vernality vernant verne vernicose vernier verniers vernile vernility vernin vernition vernon vernonia vernonieae vernonin vero verona veronal veronalism veronese veronica veronicellidae verpa verra verre verrel verriculate verricule verruca verrucano verrucaria verrucariaceae verrucarioid verrucated verruciferous verrucose verrucosis verrucosity verrucous verrue verruga vers versa versability versable versableness versailles versal versant versante versantur versate versatile versatileness versatility versation verse versecraft versed verseless versemaking versemanship versemonger verser verses verseward versewright vership versibus versicler versicles versicolorate versicolorous versicule versifiaster versification versificator versificatrix versified versifier versiform versify versiloquy versine version versional versioner versionist versionize versions versipel versor verst versus vert vertebra vertebrae vertebral vertebrally vertebraria vertebrata vertebrate vertebrates vertebration vertebrectomy vertebres vertebriform vertebroarterial vertebrochondral vertebrodymus vertebrofemoral vertebroiliac vertebromammary vertebrosacral vertebrosternal verted vertex vertibility vertible vertibleness vertical verticalism verticality vertically vertices verticillary verticillaster verticillated verticillately verticillation verticilliaceous verticillium verticillus verticity verticomental verticordious vertiginate vertigo vertilinear vertimeter vertumnus veruled vervain vervainlike verve vervel verveled vervelle vervenia vervet vervolgh very veryain verye verzeichnet verzeih ves vesania vesanic vesbite vescovo veselija vesica vesicae vesicant vesicate vesication vesicatory vesicle vesicles vesicocavernous vesicointestinal vesicoprostatic vesicorectal vesicospinal vesicotomy vesicovaginal vesiculae vesicular vesicularia vesicularly vesiculase vesiculata vesiculatae vesiculation vesiculectomy vesiculiferous vesiculiform vesiculigerous vesiculitis vesiculocavernous vesiculopustular vesiculosus vesiculotomy vesiculotubular vesiculotympanitic vesiculus vesicupapular veskit vespa vespacide vespal vesper vesperal vesperascentem vesperian vespers vespertide vespertilian vespertilio vespertiliones vespertilionid vespertilionidae vespertilioninae vespertilionine vespertillos vespertinal vespery vespidae vespiform vespine vespoid vespoidea vessel vesseled vesselful vessels vessignon vest vesta vestage vestal vestalia vestals vestalship vested vestee vester vestiarian vestiarium vestiary vestibula vestibular vestibulary vestibulate vestibule vestibuled vestibules vestibulospinal vestibulum vestige vestiges vestigial vestigially vestigian vestigiary vestiment vestimental vestimentary vesting vestini vestlet vestment vestmental vestmented vestments vestra vestral vestralization vestrify vestry vestryhood vestryish vestryism vestryman vestrymanly vests vesture vesuvian vesuvianite vesuviate vesuvite vesuvius veszelyite vet veta vetanda vetch vetches vetchling vetchy vetegable veteran veteraness veterans veteri veteribus veterinarian veterinarianism veterinary veteris veterum vetitive vetivenol vetiver veto vetoed vetoer vetoes vetoism vetoist vetoistic vets vettura vetu vetus vetust veuglaire veut veux vex vexable vexation vexations vexatious vexatiously vexatory vexed vexedly vexedness vexer vexes vexful vexil vexillar vexillarious vexillate vexillum vexing vexingly vexingness vext vhat vhen vhf vhich vi via viability viable viaduct viaducts viae viaggiatory viajaca viajero vial vialful vialmaking vials viand viander viands viatic viatica viatical viaticum viatometer viator viatorial viatorially vibes vibetoite vibex vibix vibracular vibracularium vibraculoid vibrancy vibrant vibrantly vibraphone vibrate vibrated vibrates vibratile vibrating vibratingly vibration vibrational vibrationless vibrations vibratiuncle vibratiunculation vibrato vibrator vibrators vibratory vibrio vibrioid vibrionic vibrissae vibrissal vibrometer vibromotive vibronic vibrophone vibroscopic vibrotherapeutics viburnin viburnum vicar vicarage vicarate vicaress vicarial vicariate vicariateship vicarious vicarly vicars vicarship vice vicecomes vicecomital vicegeral vicegerent viceless vicelike vicenary vicennial viceregal viceregally viceroy viceroyal viceroyalties viceroyalty viceroys viceroyship vices viceversally vich vichy vichyite vichyssoise vicia vicianin vicilin vicinage vicinal vicine vicinia vicinity vicious viciously viciousness vicissitous vicissitude vicissitudes vicissitudinary vicissitudinous vicissitudinousness vicksburg vicky vicoite vicomte victed victim victimhood victimizable victimization victimize victimized victimizer victimizing victims victless victor victorem victorfish victoria victoriae victorianism victorianize victorianly victorians victories victorine victorious victoriously victoriousness victorium victors victory victoryless victress victrix victual victualage victualer victualing victualless victualling victuals vicuna vidame vidarabine viddui vide videant videas videbar videndum videnskabernes videogenic vider vidette videttes vidian vidicon viding vidua viduate viduated viduity viduous vidya vie vied vieille vieillesse vieing viejo viele vielle vielles viene vienna viennese viens vient vientian vier vierde vierge vierling viertel viest viet vietminh vietnam vietnamese vieux view viewed viewer vieweth viewing viewless viewlessly viewly viewpoint viewpoints views viewster vif vifda viga vigentennial vigesimal vigesimation vigia vigil vigilance vigilancy vigilant vigilantness vigilation vigils viginti vigintiangular vigneron vignette vignetter vignettes vigonia vigor vigorless vigorous vigorously vigorousness vigour vigourous viguier viguiers vihara viharis vii viii viking vikingism vikinglike vil vila vilayet vilayets vile vilehearted vilela vilely vileness viler vilest vilicate vilification vilified vilifier vilifying vilifyingly vilii vilipend vilipender vilipenditory vility vill villa villadom villae village villageful villagehood villageless villagelet villagelike villageous villager villageress villagers villagery villages villaget villageward villagism villain villainage villaindom villainess villainist villainous villainously villainousness villainproof villains villainy villakin villanage villanette villanous villanova villany villar villas villate villatic ville villein villeinage villeiness villeins villenage villi villiaumite villiform villiplacentalia villitis villoid villose villous villus vim vimana vime vimes viminal vimineous vina vinaceous vinaconic vinage vinagron vinaigrette vinaigrier vinaigrous vinal vinalia vinasse vinced vincent vincentian vincetoxicum vincetoxin vincibleness vincibly vincristine vinculate vinculation vinculum vindelici vindemial vindemiation vindemiatory vindemiatrix vindex vindhyan vindicability vindicable vindicably vindicate vindicated vindicates vindicating vindication vindicatively vindicativeness vindicator vindicatorily vindicatorship vindicatory vindictive vindictively vindictiveness vine vinea vineatic vined vinegar vinegarette vinegarish vinegarist vinegarroon vinegarweed vinegerone vinegrower vineland vinelet vinelike viner vines vinestalk vinewise vineyard vineyarder vineyards vingerhoed vingolf vinhatico vini vinicultural viniculture viniculturist vinifera viniferous vinification vinificator vinland vino vinologist vinology vinomethylic vinose vinosity vinosulphureous vinous vinously vins vinson vint vinta vintage vintager vintages vintaging vintener vintlite vintner vintneress vintners vintnership vintnery vintress vintry viny vinyl vinylbenzene vinylene vinylic vinylidene viol viola violability violable violableness violably violacea violacean violaceous violal violanin violate violated violater violates violating violation violational violations violative violator violators violatory violature violence violences violent violently violentness violet violetish violetlike violets violette violetwise violety violin violina violine violinette violinist violinmaker violinmaking violins violmaking violon violoncellist violone viols vip viper vipera viperan viperess viperfish viperid viperidae viperinae viperine viperish viperoid viperoidea viperously viperousness vipers vipery vipresident vir vira viragin viraginity viraginous virago viragoish viragolike viragoship viral virales virelay viremia viremic virent vireo vireonine vireos virga virgal virgate virgated virgater virgil virgilia virgin virginal virginalist virginally virgineous virginia virginid virginitate virginitis virginity virginityship virginium virginly virgins virginship virgo virgular virgularian virgulariidae virgule viri viribus viricide viride viridene viridescence viridian viridigenous viridis virify virile virilely virileness virilescence virilify viriliously virilism virilist viripotent virl virole viroled virological viron viros virose virosis virous virtu virtual virtualism virtualist virtuality virtually virtue virtued virtuelessly virtuelessness virtues virtuless virtuose virtuosity virtuoso virtuosoship virtuous virtuouslike virtuously virtutum virucidal virulence virulency virulent virulented virulently virulentness virus viruscidal viruscide virusemic viruses vis visa visage visages visagraph visarga visaya visayan viscera visceralgia viscerally viscerate visceration visceripericardial visceroparietal visceropleural visceroptosis visceroptotic visceroskeletal viscerotomy viscerotonia viscerotonic viscerotrophic viscerous viscid viscidity viscidize viscidness viscidulous viscin viscoelastic viscoidal viscometrical viscometrically viscontal viscosity viscount viscountcy viscountess viscounts viscountship viscounty viscous viscously viscousness viscus viselike viseral vishnavite vishnu vishnuism vishnuite vishnuvite visibility visibilize visible visibly visie visigoth visigothic visile vision visional visionally visionarily visionary visioned visioner visionic visionings visionist visionize visionless visionlike visionmonger visions visit visita visitable visitant visitants visitation visitational visitations visitative visitator visitatorial visite visited visitee visiter visitest visiting visitings visitor visitoress visitorial visitors visitorship visitress visitrix visits visive vison visor visorless visorlike vista vistal vistamente vistas vistulian visual visualise visualist visuality visualize visualized visualizing visually visuokinesthetic visuometer visuopsychic vita vitaceae vitae vitaglass vital vitali vitalic vitalist vitalistic vitalistically vitality vitalization vitalizations vitalize vitalized vitalizer vitalizing vitally vitals vitam vitamer vitamin vitaminic vitaminize vitaminology vitamins vitapath vitaphone vitascope vitascopic vitasti vited vitellarian vitellary vitellicle vitelligenous vitelline vitellogene vitellogenous vitellose viterbite vitiate vitiated vitiation viticulturist viticulturists vitiliginous vitiligo vitiligoidea vitiosity vitis vito vitrage vitrailist vitre vitreal vitrean vitremyte vitreodentinal vitreodentine vitreoelectric vitreous vitreouslike vitreousness vitrescence vitrescent vitrescibility vitrescible vitric vitrifacture vitrifiability vitrifiable vitrification vitrified vitriform vitrina vitrine vitrinoid vitriol vitriolation vitriolic vitriolizable vitriolization vitriolize vitriolizer vitrite vitrobasalt vitrophyric vitrotype vitrous vitruvianism vitta vittate vittles vitty vitular vituline vituperate vituperation vituperative vituperatively vituperator vituperatory viuva viva vivace vivacious vivaciously vivaciousness vivacity vivaldi vivant vivary vive vively vivement vivency vivendi viver viverriform viverrinae viverrine vivers vives vivian vivicremation vivid vividialysis vividiffusion vividis vividly vividness vivific vivificate vivification vivificator vivified vivifying vivions viviparism viviparity viviparousness vivipary vivisect vivisected vivisecting vivisection vivisectionally vivisectionist vivisective vivisector vivisectors vivo vivum vivus vixen vixenish vixenishly vixenishness vixenlike viz vizard vizardless vizardlike vizardmonger vizier vizierate viziers viziership vizir vizircraft vizirs vk vladimir vlankers vlat vobis vocability vocable vocables vocably vocabularian vocabulary vocabulation vocabulist vocal vocales vocalic vocalion vocalism vocalist vocalists vocality vocalization vocalize vocalizer vocaller vocally vocalness vocant vocate vocation vocationalism vocationalize vocationally vocations vocative vocatively vocatives vocatur vocaveris voce vocem vochysiaceae voci vocicultural vociferant vociferate vociferated vociferating vociferation vociferations vociferative vociferator vociferize vociferous vociferously vocimotor vocular vocule vod vodka voe voetian vog vogel vogesite voglite vogue voguey voguish voice voiceband voicebox voiced voiceful voicefulness voiceless voicelessly voicer voices voicing void voidable voided voidee voider voiding voidless voidly voidness voids voila voile voir vois voit voiturette voivode voivodes voivodeship voix voke vol volage volans volant volante volantes volapuk volapuker volapukist volar volare volata volatile volatilely volatileness volatility volatilization volatilize volatilized volatilizer volatilizes volation volational volborthite volcae volcanalia volcanian volcanic volcanically volcanicity volcanism volcanist volcanite volcanity volcanize volcano volcanoes volcanoism volcanological volcanologize volcanology volcanus vole volens volently volery volet volhynite volitate volitation volitational volitiency volitient volition volitional volitionalist volitionality volitionally volitionary volitionate volitionless volitorial volk volkerwanderung volkswagen volley volleyball volleyed volleyer volleyingly volleys volost volplane volsci volsella volstead volsteadism volt voltage voltages voltagraphy voltaic voltaique voltairian voltairianize voltairish voltaite voltameter voltametric voltammeter voltaplast voltinism voltize voltmeter volts voltzite volubilate volubility voluble volubleness volubly volume volumed volumenometer volumes volumescope volumeter volumetric volumetrically volumetry volumette voluminal voluming voluminosity voluminous voluminously volumist volumnious volumometer voluntarily voluntariness voluntarist voluntaristic voluntarity voluntary voluntaryism voluntaryist voluntative volunteer volunteered volunteering volunteerism volunteerly volunteers volunteership volupshious volupt voluptary voluptas voluptuarian voluptuary voluptuate voluptuosity voluptuous voluptuously voluptuousness volutate volute voluted voluteered volutes volutidae volutiform volutin volution voluto volva volvate volvelle volvent volvitur volvo volvocaceae volvulus vom vomer vomerine vomeronasal vomica vomicine vomit vomited vomiting vomitingly vomitive vomitiveness vomito vomitory vomits vomiture vomiturition vomitwort von vondsira vonsenite vont voodoo voodooism voodooistic voor vor voracious voraciously voracity voraginous vorant vorhand vorkanonische vorked vorlooper vornehmsten vorondreo vorov vorpal vortex vorth vortical vorticella vorticellid vortices vorticial vorticity vorticose vorticularly vortiginous vorwerfen vos vosgian voss vostok vot votable votal votally votam votaress votaries votary votation vote voted voteless voter voters votes voting votish votiva votive votiveness votre votress votum vouch vouchable vouched voucher voucheress vouchers vouches vouchment vouchsafe vouchsafed vouchsafement vouchsafing vouge vought vould vous voussoir vow vowed vowel vowelish vowelist vowelization vowelize vowelless vowellessness vowels vowely vower vowing vowless vowmaker vowmaking vows vox voy voyage voyageable voyaged voyager voyagers voyages voyageur voyaging voyagings voyais voyance voyant voyeur voyez vpbs vrai vraic vraicker vraicking vrbaite vre vreeland vs vse vssels vt vthat vu vue vug vuggy vulcan vulcanalia vulcanian vulcanic vulcanicity vulcanischen vulcanise vulcanism vulcanist vulcanizate vulcanization vulcanological vulcanologist vulcanology vulgar vulgare vulgarian vulgaris vulgarise vulgarisms vulgarist vulgarity vulgarization vulgarize vulgarized vulgarizer vulgarlike vulgarly vulgarwise vulgentur vulgo vulgur vulgus vuln vulnerability vulnerable vulnerableness vulnerably vulnerary vulnerose vulnific vulnose vulpecula vulpecular vulpeculid vulpes vulpic vulpicidism vulpine vulpinism vulpinite vulsella vult vultur vulture vulturelike vultures vulturewise vulturidae vulturine vulturish vulturism vulturn vulva vulval vulvas vulvate vulviform vulvouterine vulvovaginal vum vying vyingly w w's wa waac waag waals waar waasi wab wabash wabber wabble wabbled wabblings wabbly wabby wabena wabs wac wacago wachaga wachuset wack wacken wacker wackiness wacky wad wadded waddent wadder waddied wadding waddle waddled waddling waddlingly waddy waddywood wade wadeable waded wader waders wades wadi wading wadingly wadis wadmal wadmeal wadna wads wadset wadsetter wadsworth wae waeg waesome waf wafd wafer waferer waferish wafermaker wafermaking wafers waferwoman waferwork waffle waffles waffly waft waftage wafted wafter wafting wafts wafture wag waganda wagaun wage waged wagedom wageless wagelessness wagenboom wagener wager wagered wagerer wagering wagers wages wagesman wagework wageworker wageworking wagga wagged wagger waggery waggin wagging waggins waggish waggishness waggle waggled waggling wagglingly waggly waggon waggoner waggoners waggonette waggonloads waggons waggumbura waggy waging waglike wagling wagner wagneresque wagneriana wagnerianism wagnerism wagogo wagoma wagon wagonable wagoner wagonette wagonettes wagonful wagonload wagonloads wagonmaker wagonmaking wagonman wagonry wagons wagonsmith wagonway wagonwright wags wagsome wagtail wagtails waguha wagwag wah wahabi wahabiism wahabit wahabitism wahahe wahlenbergia wahoo wahpekute wahpeton wahre wahrscheinlich wai waiata waicuri waicurian waif waifs waiguli waiilatpuan waik waikly waikness wail wailaki wailed wailer wailful wailing wailings wails wailuku wain wainbote wainer wainman wainrope wains wainscot wainscoted wainscoting wainwright waipiro wairch waird wairsh waise waist waistband waistbands waistcloth waistcoat waistcoated waistcoateer waistcoatless waistcoats waisted waisting waistline waists waiststring wait waite waited waitedst waitee waiter waiterage waiterdom waiterhood waitering waiters waitership waiteth waiting waitress waitresses waits waivatua waive waived waives waiving waiwai waiwode wajang waka wakamba wakan wake waked wakeel wakefield wakeful wakefully wakefulness wakeless waken wakened wakening wakens waker wakerobin wakes waketh waketime wakeup wakf wakhi wakif wakiki waking wakingly wakings wakiup wakken wakonda waky walach walachian walahee walchia walcott waldenses waldensian waldgrave waldgravine waldheimia waldmeister waldo waldron wale waled waler wales walewort waling walk walkable walkaway walked walker walkers walkest walketh walking walkist walkmill walkout walkrife walks walkside walksman walkyrie wall wallaba wallabies wallah wallaroo wallaroos wallbird wallboard wallcreeper walled wallee wallet walletful wallful wallhick walling wallis wallise wallless wallman wallon wallonian walloon walloped wallow wallowed wallower wallowing wallowishly wallowishness wallows wallpaper wallpapering walls wallsend wallsides wallwise wallwork wallwort wally walnut walnuts walpapi walpole walpurgis walpurgite walrus walt walter walters waltham waltonian waltz waltzed waltzes waltzing walycoat wamara wambais wamble wambler wambliness wambling wamblingly wambly wambuba wambugu wame wamefou wamel wammikin wammme wamp wampanoag wampee wample wampum wampus wamus wan wanapum wanchancy wand wander wandered wanderer wanderers wandereth wandering wanderingness wanderings wanderjahr wanderlust wanderluster wanderlustful wanderoo wanders wandery wandflower wandoo wandorobo wandring wands wandsman wandy wane waneatta waned waneless wanes waneth wang wanga wangala wangan wangara wangateur wanghee wangle wangler wangtooth wanhorn wanigan waning wankapin wankle wankliness wankly wanly wanner wanness wanny wanrufe wansonsy want wanta wantage wanted wanter wantest wanteth wantful wanthrift wanting wantingly wantingness wantlessness wanton wantoned wantoner wantonlike wantonly wantonness wantons wants wantways wantwit wanwordy wany wanyakyusa wanyamwezi wanyasa wanyoro wapacut wapato wapatoo wapisiana wapiti wapokomo wappenschaw wapping wappinger wappo war warabi waratah warble warbled warblelike warbler warblerlike warblers warbles warblet warbling warblingly warblings warbly warcraft ward wardable wardapet warded warden wardency wardenry wardens wardenship warder warders wardership wardeth warding wardite wardlike wardmote wardrobe wardrober wardrobes wardroom wards wardship wardsmaid wardswoman wardwoman ware waregga warehou warehouse warehouseage warehoused warehouseful warehouseman warehouses warehousing wareless waremaker wareman waren wareroom wares warfare warfarin warfaring warful wargear warhead warier wariest warily wariness waring waringin warison wark warkamoowee warl warless warlessly warlike warlikely warlikeness warlock warlord warly warm warmable warme warmed warmer warmest warmhearted warmheartedly warmheartedness warmhouse warming warmish warmly warmness warmongering warms warmtemperate warmth warmthless warmup warmus warn warned warnel warner warnest warneth warning warningly warnings warnish warnoth warns warnt warori warp warpable warpath warped warping warpings warplane warple warproof warps warpwise warragal warran warrandice warrant warrantable warranted warrantee warranties warranting warrantise warrantless warrantor warrants warranty warratau warrau warred warreming warren warrener warrenlike warri warring warrior warrioress warriorhood warriorism warriors warriorship warriorwise warrld warrok wars warsel warship warships warsler warst wart warted wartern wartime wartless wartlike wartproof warts wartweed wartwort warty wartyback warua warundi warve warwards warwhoop warwickite warwolf warworn wary was wasabi wasagara wasandawi wasat wasatch wasegua wasel wash washability washable washableness washbasket washboard washbowl washbowls washbrew washburn washcloths washdish washe washed washen washerman washers washerwife washerwoman washery washeryman washes washeth washhouse washin washiness washing washings washington washingtonian washita washland washman washo washoan washout washpot washproof washrag washroad washroom washrooms washshed washstand washtail washtub washway washwork washy wasir wasn wasn't wasnt wasoga wasp waspen wasphood wasphysical waspily waspishly waspishness wasplike waspnesting wasps waspy wassail wassailous wassailry wasserman wassie wast wastable wastage waste wastebasket wasteboard wasted wasteful wastefully wastefulness wastel wasteland wastelbread wasteless wastement wasteness wastepaper wasteproof waster wasterfully wasterfulness wastes wasteth wastethrift wastewater wasteword wasteyard wasting wastingly wastingness wastland wasty wasukuma waswahili wat watah watala watap watch watchcase watchdogs watched watcher watchers watches watchest watcheth watchful watchfully watchfulness watchglassful watchhouse watchin watching watchingly watchkeeper watchlessness watchmake watchmaker watchmaking watchman watchmanship watchmate watchmen watchout watchtower watchun watchwise watchwoman watchword watchwords watchwork water waterage waterbelly waterberg waterboard waterbok waterborne waterbosh waterchat watercolor watercolorist watercourse watercourses watercup waterdoe waterdrop watered waterfall waterfalls waterflood waterfowl waterfront waterhorse waterie waterily waterin wateriness watering wateringman waterish waterishly waterishness waterlander waterlandian waterleave waterless waterlessly waterlessness waterline waterlog waterlogged waterloggedness waterlogger waterlogging waterloo waterman watermanship watermark watermelon watermelons watermonger wateroaks waterparting waterphone waterpipe waterplants waterpot waterpower waterproof waterproofing waterproofness waterproofs waterquake waters watershed watershoot waterside watersider waterskin watersmeet waterspout waterspouts waterstead watertight watertightness waterward waterway waterways waterweed waterwise waterwoman waterwork waterworks watery wathstead watkins watson wattage wattape wattle wattlebird wattled wattles wattlework wattling wattman watts watusi wauch wauchle waucht wauf waugh waughy waukit waukrife waumle wauner waup waur waura wauted wauve wavably wave waved wavee waveform wavelength wavelengths waveless wavelessness wavelet wavelets wavellite wavement wavemeter wavenumber waveproof waver waverable wavered waverers wavering waveringly waveringness waverings waverous wavery waves waveson waveward wavey wavicle waviness waving wavy waw wawa wax waxberry waxbill waxbird waxbush waxchandlery waxed waxen waxer waxes waxeth waxflower waxhaw waxiness waxing waxingly waxlights waxlike waxmaker waxman waxwing waxwork waxworker waxy way wayaka wayang wayao wayback wayberry waybill waybook waybung wayes wayfarer wayfarers wayfaring wayfellow waygang waygate waygoing waygoose wayhouse waying waylaid waylay waylayer waylayers waylaying wayleave waymaker wayman waymark waymarks waymate wayne ways wayside waysider waysliding wayward waywarden waywardly waywardness waywode wayworn waywort wayzgoose wazir wbc wdz we we'd we'll we're we've wea weah weak weakbrained weaken weakened weakener weakening weakens weaker weakest weakfish weakhanded weakhearted weakheartedly weakheartedness weakish weakishly weakishness weakling weaklings weakly weakness weaknesses weaky weal weald wealden weals wealth wealthier wealthiest wealthily wealthless wealthmonger wealthy weam wean weanable weaned weanedness weanel weaning weapemeoc weapon weaponed weaponless weaponproof weaponry weapons weaponshaw weaponshowing weaponsmith weaponsmithy wear wearability wearer wearers weareth weariable wearied weariedly wearier wearies weariest wearieth weariful wearifully wearifulness wearily weariness wearing wearingly wearishness wearisome wearisomely wearisomeness wearproof wears weary wearying wearyingly weasand weasel weaseled weaseling weaselled weasels weaselship weaselskin weaselsnout weasened weason weather weatherbeaten weatherboard weatherboarding weatherboards weatherbreak weathercock weathercockish weathercockism weathercocks weathercocky weathered weatherfish weatherhead weathering weatherliness weathermaker weatherman weathermost weatherology weatherproof weatherproofing weathers weatherstrip weatherstripping weathertight weathervane weatherward weatherworn weathery weavable weave weaved weavement weaver weaverbird weaveress weavers weaves weaving weazen weazened weazeny weazon web webb webbed webby weber weberian webfoot webfooter webless weblike webmaking webs webster websterian websterite webworm weco wed wedana wedbed wedded weddedly wedder wedding weddinger weddings wede wedge wedgeable wedgebill wedged wedgelike wedger wedges wedgewise wedgewood wedgie wedging wedgwood wedlock wednesday wedset wee weeble weed weeda weedable weedage weeded weeder weedery weedful weedhook weeding weedingtime weedish weedless weedling weeds weedy week weekday weekdays weekes weeklies weekly weeks weekwam weel weelfard weelfaured ween weendigo weeness weening weenong weep weeped weepers weepest weepeth weeping weepingly weepings weeps weepy weesh weeshy weet weetbird weetless weevil weeviled weevillike weevilproof weevils weevily weewow weeze weft weftage wefts wefty wega wegenerian wehrlite wei weierstrass weierstrassian weigela weigh weighable weighage weighbar weighbauk weighbridge weighbridgeman weighed weigher weigheth weighhouse weighin weighing weighiog weighman weighment weighs weighshaft weight weightchaser weighted weightedly weightedness weightier weightiness weighting weightless weightlessly weightlessness weights weighty weinberg weinbergerite weinmannia weinstein weir weird weirder weirdest weirdless weirdlike weirdly weirdness weirdsome weiring weirs weisbachite weiselbergite weism weismannian weismannism weissite weitesten wejack weka weki welch welche welcome welcomed welcomeness welcomer welcomes welcoming welcomingly weld weldability welded welder welding weldment weldor welds welf welfare welk welkin welkinlike well wellat wellaway wellbeing wellborn wellbrushed wellcome welled weller welles wellesley welleth wellhead wellhole welling wellington wellknown wellmaker wellman wellnear wellnigh wells wellsian wellside wellspring wellsprings wellstead wellstrand wellwisher wellyard wels welsh welshism welshland welshlike welshman welshwoman welshy welsium welted welter weltered weltering welters welterweight welting welts welwitschia wen wench wenches wenching wenchlike wenchowese wend wende wended wendest wending wendish wends wene weniger wenlock wenlockian wenn wennebergite wennish wenny went wentest wenturs wenzel wept wer werde werden were werebear werefolk werefox werehyena weren weren't werena werent weretiger werewolf werewolfish werewolfism werewolves werf wergil wergild werlhof werner wernerian wernerism wernerite werowance werry wers wert wertherism wervel wery wese wesh weskit wesley wesleyan wesleyanism wessexman west westbound westchester weste wester westering westerly westermost western westerner westernism westernize westernly westernmost westfield westing westinghouse westland westlands westlandways westlichen westminster westmoreland westmost westness weston westphalian westralian westralianism westward westwardmost westwards westwood wet weta wetbird wetched wetchet wether wetherhog wethers wetherteg wetland wetly wetness wets wettability wetted wetter wetting wettish wevet wewenoc weyerhauser weyke wez wezen wezn wha whabby whack whacked whacker whacking whacky whafabout whah whale whaleback whalebacker whaleboat whalebone whaleboned whalebones whalehead whalelike whaleman whaler whalers whalery whales whaleship whaling whalm whaly wham whamble whame whammle whampee whample whan whand whang whangable whangam whangdoodle whangee whanghee whank whap whappet whapuka whapukee whapuku whar whare whareber whareer wharf wharfage wharff wharfhead wharfholder wharfland wharfless wharfman wharfmaster wharfrae wharry whart wharve wharves whase whasle what what'd what're whata whatabouts whatcha whatever whatkin whatley whatlike whatna whatnot whatreck whats whatso whatsoever whatsomdever whatsomever whatten whaup whaur whauve wheal whealy wheam wheat wheate wheatear wheateared wheaten wheatfields wheatgrower wheatland wheatless wheatlike wheatstalk wheaty whedder whee wheedle wheedled wheedlesome wheedling wheedlingly wheel wheelbarrow wheelbarrowful wheelbarrows wheelbase wheelbox wheelchair wheelchairs wheeldom wheeled wheeler wheelhorse wheelhouse wheeling wheelingly wheelless wheellike wheelmaking wheelrace wheels wheelsmith wheelspin wheelway wheelwork wheelwright wheelwrighting wheem wheep wheeple wheer wheesht wheeze wheezed wheezer wheezily wheeziness wheezing wheezingly wheezle wheezy wheft whekau wheki whelan whelher whelked whelker whelklike whelmed whelp whelpless whelps when whenabouts whenas whence whenceforth whenceforward whencesoeer whencesoever whencever wheneer whenever whenso whensoever whensomever where where'd where're whereabout whereabouts whereanent whereas whereat whereaway whereby whereer wherefore wherefores wherefrom wherein whereinsoever whereinto whereness whereof whereon whereout whereover wheres whereso wheresoever wherethrough wheretill whereto wheretoever whereunder whereuntil whereunto whereup whereupon wherever wherewith wherewithal wheriver wherret wherrit wherry wherryman whet whether whetrock whets whetted whetter whetting whew whewellite whewer whewt whey wheybeard wheyeyness wheyface wheyfaced wheyish wheylike wheyness whhen whiba which whiche whichever whichway whick whickered whickering whid whidder whiff whiffed whiffenpoof whiffer whiffet whiffler whiffling whifflingly whiffs whiffy whift whifts whig whiggamore whiggarchy whiggification whiggism whigmaleerie whigship whikerby while whiled whilere whiles whilie whilkut whill whillaloo whillilew whillywha whilom whils whilst whilter whim whimble whimbrel whimper whimpered whimperer whimpering whimperingly whimpers whims whimsey whimsic whimsical whimsically whimsied whimsies whimstone whimwham whin whinberry whinchacker whincheck whincow whindle whine whined whiner whines whinestone whiney whing whinger whininess whining whinnel whinnering whinneyed whinneys whinnied whinnies whinny whinnying whins whinstone whiny whinyard whip whipbird whipcord whipcordy whipcracker whipcraft whipgraft whipjack whiplash whiplike whipmaker whipmaking whipman whipmanship whippa whippable whippany whipparee whipped whipper whippersnapper whippertail whippet whippeter whippets whippiness whipping whippingly whippings whipple whippletree whippoorwill whippost whippowill whippun whips whipsaw whipsawed whipsawyer whipsocket whipstaff whipstall whipster whipstitch whipstock whipt whiptail whipwise whipworm whir whirh whirken whirl whirlbone whirlbrain whirled whirler whirlers whirley whirlgig whirlicane whirligig whirlimagig whirling whirlingly whirlings whirlmagee whirlpool whirlpools whirls whirlwig whirlwind whirlwinds whirlwindy whirly whirlybird whirlygigum whirpools whirr whirret whirring whirrs whirry whirtle whish whisk whisked whisker whiskerandoed whiskered whiskerer whiskerette whiskerless whiskers whiskery whiskey whiskied whiskified whisking whiskingly whisks whisky whisper whisperation whispered whisperer whisperhood whispering whisperingly whisperingness whisperings whisperless whisperous whisperously whisperproof whispers whispery whissle whisson whist whister whisterpoop whistle whistleable whistled whistlefish whistlelike whistler whistlerian whistles whistlewood whistlike whistling whistlingly whistlings whistly whistness whistonian whit whitaker whitcomb white whiteback whitebait whitebark whitebeard whitebelly whiteblaze whiteblow whitebottle whiteboy whiteboyism whitecap whitecapper whitechapel whitecoat whitecomb whitecup whited whiteface whitefieldian whitefieldite whitefish whitefisher whitefoot whitefootism whitehall whitehass whitehawse whitehead whiteheads whiteheart whitehorse whitelike whitely whiten whitened whiteness whitening whitenose whiteout whitepot whiter whiteroot whiterump whites whitesark whiteseam whiteshank whiteside whitesmith whitest whitestone whitetail whitethorn whitethorns whitetip whitetop whitevein whitewash whitewashed whitewasher whitewashes whiteweed whitewing whitewood whither whithersoever whitherward whiting whitish whitishness whitleather whitleyism whitling whitlock whitlow whitlowwort whitman whitmanesque whitmanism whitmanize whitmonday whitney whitneyite whitrack whits whitster whitsunday whitsuntide whittaker whitten whitter whittier whittington whittle whittled whittler whittling whittlings whittret whiz whizz whizzed whizzer whizzerman whizziness whizzing whizzingly whizzle who who'd who'll whoa whodunit whoever whole wholehearted wholeheartedly wholeheartedness wholeness wholes wholesale wholesalely wholesome wholesomely wholesomeness wholesomer wholewise wholly whom whomble whomever whomp whomso whomsoever whoo whoof whooing whoop whooped whoopee whooper whooping whoopingly whooplike whoops whop whopper whopping whorage whore whoredom whorehouse whorelike whoremaster whoremasterly whoremastery whoremongers whoreson whorish whorishly whorishness whorl whorled whorlflower whorls whorly whorlywort whort whortle whortleberries whortleberry whose whosen whosesoever whoso whosoever whosomever whosumdever whud whuff whulter whun whunstane whup whusky whussle whuther whutter whuttering whuz whuzzamatter why whyever whyfor whyo whys wi wichtisite wick wicked wickeder wickedest wickedish wickedly wickedness wickednesses wicken wicker wickerby wickerwork wicket wicketkeeper wicketkeeping wickets wicketwork wickless wicks wid widbin widder widders widdershins widdifow widdy wide widegab widehearted widely widemouthed widen widened widener wideness widening widens wider widespread widespreadly widest widewhere widework widgeon widget widish widout widow widowed widower widowered widowers widowership widowhood widowish widowlady widowlike widowly widowman widows widowy width widthless widthway widthways widthwise widu wiedersehen wield wielded wielder wielders wieldiness wielding wields wieldy wiener wienerwurst wienie wier wierangle wife wifeless wifelet wifelike wifeling wifelkin wifely wifeship wifeward wifiekie wig wigdom wigged wiggen wigger wiggery wigging wiggish wiggishness wiggled wiggling wiggy wight wightly wights wigless wigmaker wigmaking wigs wigtail wigwagger wigwam wigwams wiih wiikite wik wikstroemia wilbur wilcox wild wildbore wildcat wildcats wildcatter wildebeest wildechemes wilded wilder wildered wilderedly wildering wilderness wildernesses wildest wildfire wildfires wildflowers wildfowl wildish wildishly wildishness wildly wildness wilds wildwood wile wileful wiles wiley wilful wilfully wilfulness wilga wilgers wilhelmina wilhelmine wilily wiliness wilkeite wilkin wilkins will willa willable willard willawa willed willemite willer willest willet willey willeyer willful willfully william williamsburg williamson williamsoniaceae willie willier willies willing willinger willinghearted willinghood willingly willingness willis willmaker willmaking willna willness willock willoughby willow willowbiter willowed willowish willows willowworm willowy wills willugbaeya willyard willyer wilm wilma wilmette wilmington wilshire wilsome wilsomely wilsomeness wilson wilt wilted wilter wilting wilton wiltproof wily wimberry wimble wimbled wimbles wimbling wimbrel wime wimick wimp wimple wimpleless wimplelike win winberry wince winced winces wincey winch wincher winchester winchman wincing wincingly wind windable windage windbag windbaggery windball windbibber windbound windbreak windbroach windburn windclothes winddog winded windedly winder windermost winders windeth windfall windfallen windfalls windfanner windfish windflaw windgall windgalled windhole windhover windier windigo windily windiness winding windingly windings windjammer windjamming windlass windlasser windle windles windless windlessly windlestrae windlike windlin windling windmill windmills windock windore window windowful windowless windowlight windowlike windowmaker windowmaking windowman windowpane windowpanes windowpeeper windows windowshut windowsill windowsills windowward windowwards windowwise windowy windpipe windplayer windproof windrow windrower windrows winds windscreen windshock windsor windstorm windsucker windsurf windswept windward windwardly windwardmost windwardness windwards windwaywardly windy wine wineberry winebibber winebibbery winebibbing wineconner wined winedocks wineglass wineglassful winegrower winegrowing winehouse wineless winemaster winemay winepot winepress winer wines winesap wineshop wineshops winesop winetaster winetree winevat winfred winful wing wingback wingbeat wingcut winged wingedly wingedness wingfish winghanded winging wingless winglessness winglet winglike wingman wingmanship wingmen wingpiece wingpost wings wingseed wingstem wingtip wingy winish wink winked winkelman winker winkest winketh winking winkingly winkle winklehawk winklet winks winly winna winnable winnebago winnecowet winnel winnelstrae winner winners winneth winning winningly winningness winnings winninish winnipesaukee winnonish winnow winnowed winnower winnowing winnowingly winrow wins winsome winsomely winsomeness winston wint winter winteraceae winterage winteranaceae winterbloom winterdykes wintered winterer winterfeed wintergreen winterhain wintering winterish winterishness winterkill winterkilling winterless winterlike winterly winterproof winters wintertide wintertime wintertyme winterward winterwards winterweed wintery wintle wintrify wintrily wintriness wintrous wintry wintun winy winzeman wipe wiped wipes wiping wippen wips wir wirble wird wire wirebar wirebird wired wiredancer wiredancing wiredrawer wiredrawn wirehair wireless wirelessly wirelessness wirelike wiremaker wireman wiremen wiremonger wirephoto wirepull wirepuller wirepulling wires wiresmith wirespun wiretail wiretap wiretapper wireweed wireworking wireworks wirh wirily wiriness wiring wirling wirr wirra wirrasthru wiry wisconsinite wisdom wisdomful wisdomless wisdomproof wise wiseacre wiseacred wiseacredness wiseacredom wiseacreish wiseacres wisecrack wisecracker wisecrackery wiseheads wisehearted wiseheartedly wiseheimer wisely wiseman wisen wiseness wisenheimer wisent wiser wiserine wisest wiseweed wisewoman wish wisha wishable wishbone wished wishedly wisher wishes wisheth wishful wishing wishingly wishless wishly wisht wishtonwish wishy wisigothic wisited wisket wiskinky wisp wisplike wisps wisse wissel wissenschaftlich wissenschaftlichen wist wistened wisteria wistful wistfully wistfulness wistit wistiti wistless wistlessness wit wital witan witbooi witch witchcraft witched witchery witches witching witchingly witchlike witchmonger witchuck witchweed witchwife witchwoman witchwood witchy wite witeless witenagemot witepenny witess witful with withal withamite withdraught withdraw withdrawal withdraweth withdrawing withdrawingness withdrawment withdrawn withdrawnness withdraws withdrew wither witherband withered witheredly witherer withergloom withering witheringly witherite witherly withers withershins withertip witherwards witherweight withery withes withewood withheld withhold withholdable withholder withholding withholds withies within withinside withinsides withinward withinwards withn withness witholden without withoutdoors withouten withoutforth withoutside withoutward withoutwards withstand withstander withstanding withstandingness withstay withstood withvine withwhich withy withywind witless witlessly witlet witling witloof witness witnessable witnessed witnesser witnesses witnesseth witnessing witney witneyer witoto wits witship witt wittal witteboom witted wittering witticaster witticism witticisms wittier wittiest wittified wittily wittingly wittles wittol witty witumki witwall witzchoura wiver wivered wivern wives wiyat wiyot wiz wizard wizardism wizardlike wizardly wizardry wizards wizardship wizen wizened wizenedness wizze wizzen wizzening wlk wloka wo woad woadwaxen woald woan wob wobbegong wobble wobbled wobbler wobbling wobblingly wobbly wobster woburn wochua wod wodd wode wodgy woe woebegone woebegoneness woebegonish woeful woefully woefulness woehlerite woes woesome woevine woeworn woffler woful wofully wogiet wogulian woibe wok wokas woke woken wokowi wol wolcott wold wolde wolden woldlike wolds woldsman woldy wolf wolfberry wolfdom wolfe wolfen wolfer wolff wolfheads wolfhood wolfhound wolfish wolfishly wolfishness wolfkin wolflike wolfling wolframine wolframite wolfsbergite wolfskin wolfward wollastonite wollen wollomai wollongong wollop wollops wolof wolter wolveboon wolver wolverenes wolverine wolves wom woman womanfolk womanhearted womanhood womanish womanishly womanishness womanism womanist womanity womanization womanize womanizer womankind womanless womanlike womanliness womanly womanness womanpost womanways womb wombat wombats wombed womble wombs wombstone womby women womenfolk womenkind womenservants wommerala won wonder wonderberry wonderbright wondered wonderful wonderfully wonderfulness wondering wonderingly wonderings wonderland wonderment wondermongering wonders wondersmith wonderstrong wonderstruck wonderwell wonderwork wonderworthy wondrous wondrously wone wonegan wong wongsky woning wonner wonning wonnot wont wonted wontedly wonting woo wooant wood woodagate woodard woodbin woodbind woodbine woodbined woodbound woodburytype woodbush woodcarver woodchopper woodchoppers woodchuck woodchucks woodcock woodcockize woodcocks woodcraft woodcrafter woodcut woodcuts woodcutter woodcutters woodcutting wooded wooden woodenhead woodenheadedness woodenly woodenness woodenware woodeny woodhacker woodhouse woodhung woodine wooding woodkern woodknacker woodland woodlands woodlawn woodless woodlessness woodlet woodlike woodlocked woodlot woodly woodman woodmen woodmonger woodmote woodpeck woodpecker woodpeckers woodpile woodprint woodranger woodreeve woodrock woodrow woodrowel woodruff woods woodsere woodshed woodshop woodsia woodside woodskin woodsman woodspite woodsy woodwall woodward woodware woodwax woodwind woodwise woodwives woodwork woodworker woodwose woodwright woody wooed wooer woof woofed woofell woofer woofy wooing wooingly wool woold woolder woolding wooled woolen woolenet woolenization woolenize wooler woolert woolfell woolgather woolgatherer woolgrower woolgrowing woolhead wooliness woollen woollens woolliest woollike woolly woollyish woolman woolpack woolpress wools woolsack woolsey woolshearer woolshearing woolshears woolshed woolsorting woolsower woolstock woolulose woolwasher woolweed woolwork woolworker woolworth wooly woom woomerang woon woons woorali woorari woorde woos woosh wooster woozle woozy woppish wor worble word wordable wordage wordbook wordcraft wordcraftsman worded worden worder wordes wordily wordiness wording wordish wordishly wordishness wordle wordless wordlessly wordlike wordling wordlorist wordman wordmanship wordmonger wordmongering wordmongery wordplay words wordsmanship wordsmith wordspite wordster wordsworth wordsworthian wordy wore worin work workability workable workaday workaholic workbag workbags workbasket workbench workbook workbox workbrittle workday worked workee worker workers worketh workfellow workfolk workfolks workforce workgirl workhand workhorse workhouse workhoused working workingly workingman workingmen workings workless worklessness workloom workman workmanlike workmanlikeness workmanliness workmanship workmen workouts workpan workpeople workpiece workplace workroom workrooms works worksheet workshop workshops worksite worksome workspace workstation worktable workup workways workwise workwoman workwomanlike workwomanly workyard world worlded worldful worldless worldlet worldlike worldlily worldliness worldling worldlings worldly worldmaker worldmaking worldquake worlds worldward worldwards worldway worldwide worm wormeaten wormed wormhole wormholed wormhood wormian worming wormless wormling wormproof wormroot worms wormseed wormweed wormwood wormy worn worne wornness wornout worns worret worreting worriable worricow worried worriedly worriedness worrier worries worriest worrisome worrisomely worrisomeness worrit worriter worry worrying worryingly worse worsement worsen worsened worsens worser worserment worset worship worshipability worshipable worshiped worshiper worshipers worshipful worshipfully worshipfulness worshiping worshipingly worshipless worshipped worshipper worshippers worshipping worships worshipworthy worst worsted worsteds worsting worth worthe worthest worthful worthfulness worthi worthier worthies worthiest worthily worthiness worthington worthless worthlessly worthlessness worthship worthwhile worthy worts wos wosbird wot wotan wote wots wotted wottest wotteth woubit wouch wough would wouldbe wouldest wouldn wouldn't wouldna wouldnt wouldst wound woundable woundableness wounded woundedly wounding woundingly woundless wounds woundwort woundworth woundy wourari wove woven wow wownd wownded wows wowser wowserian wowt woy woyaway wpw wrack wracked wracker wrackful wraf wraggle wrainbolt wrainstaff wrainstave wraith wraithe wraiths wraitly wramp wrang wrangle wrangled wrangler wranglers wrangles wrangling wrannock wrap wraparound wrappage wrapped wrapper wrapperer wrappering wrappers wrapping wrappings wraprascal wraps wrapt wrapup wrasse wrastle wrath wrathful wrathfully wrathfulness wrathily wrathiness wraths wraw wrawl wrawler wraxle wreak wreaked wreaking wreakless wreat wreath wreathe wreathed wreathen wreather wreathes wreathing wreathingly wreathless wreathlet wreathlike wreaths wreathwise wreathwork wreathwort wreathy wreck wreckage wrecked wreckfish wrecking wreckless wrecks wrecky wren wrench wrenched wrencher wrenches wrenching wrenchingly wrenlike wrest wrestable wrested wresting wrestingly wrestle wrestled wrestler wrestlerlike wrestlers wrestles wrestling wretch wretched wretcheder wretchedest wretchedly wretchedness wretches wretchless wretchlessly wretchock wride wried wrier wriest wrig wriggle wriggled wriggler wriggles wrigglesome wriggling wrigglingly wriggly wrightine wrigley wring wringbolt wringing wringman wrings wrinkle wrinkleable wrinkled wrinkledy wrinkleful wrinkleless wrinkleproof wrinkles wrinklet wrinkling wrinkly wrirten wrist wristband wristbands wristbone wristed wristikin wristlet wristlets wrists wristwork writ writable write writee writer writeress writerling writers writes writeth writeup writh writhe writhed writhedly writhedness writhen writheneck writher writhes writhigs writhing writhings writhy writing writinger writings writmaking writs written writter wrive wrizzled wro wrocht wroken wrong wrongdoer wrongdoing wronged wrongful wrongfully wrongfulness wronghead wrongheaded wrongheadedly wrongheadedness wrongheartedly wrongheartedness wronging wrongish wronglessly wrongly wrongness wrongous wrongs wronskian wrossle wrote wroth wrothful wrothfully wrothiness wrothsome wrought wrox wrung wry wrybill wrying wryly wryneck wrytail wthe wud wudge wuf wugg wuhan wuk wukked wukkin wuld wulfenite wulk wull wullawins wullcat wulliwa wumble wumman wunderkind wundtian wunna wunner wup wur wurley wurmal wurmian wurset wurst wurtzilite wurzel wus wush wusp wuss wusser wust wut wuth wuther wuthered wuthering wuthless wuz wuzu wuzzer wuzzle wuzzy wv wy wyandot wyandotte wycliffian wycliffism wycliffist wyeth wyethia wyke wykehamical wykehamist wyle wylie wyliecoat wyll wymote wynd wyner wynn wynowe wynter wyomingite wype wyson wyth wyues wyve wyver x x's xanthamic xanthate xanthein xanthelasma xanthelasmoidea xanthene xanthian xanthic xanthidium xanthin xanthine xanthinuria xanthione xanthisma xanthium xanthiuria xanthocarpous xanthocephalus xanthochroia xanthochroic xanthochroid xanthochromia xanthochromic xanthocobaltic xanthocone xanthocreatinine xanthocyanopsia xanthocyanopsy xanthocyanopy xanthoderm xanthoderma xanthogen xanthogenamic xanthogenamide xanthogenate xanthogenic xantholeucophore xanthomata xanthomatous xanthomelanous xanthometer xanthomonas xanthomyeloma xanthone xanthophane xanthophore xanthophose xanthophyceae xanthophyll xanthophyllite xanthopicrin xanthopicrite xanthoproteic xanthoprotein xanthoproteinic xanthopsia xanthopterin xanthopurpurin xanthorhamnin xanthorrhoea xanthosiderite xanthosis xanthosoma xanthotic xanthous xanthoxalis xanthoxenite xanthoxylin xanthydrol xanthyl xarque xaverian xebec xema xenacanthini xenagogue xenarchi xenarthra xenarthral xenelasia xenelasy xenia xenial xenian xenicidae xenicus xenium xenobiosis xenocratic xenocryst xenodochium xenogamy xenogenetic xenogenic xenogenous xenogeny xenolith xenolithic xenomania xenomaniac xenomi xenomorphosis xenon xenoparasitism xenopeltid xenopeltidae xenophanean xenophobe xenophobia xenophobian xenophobic xenophobism xenophoby xenophontean xenophontian xenophora xenophthalmia xenopodid xenopodidae xenopodoid xenopsylla xenopteran xenopteri xenopus xenorhynchus xenos xenosaurid xenosauridae xenosauroid xenotech xenotime xenotine xenyl xenylamine xerafin xeransis xeranthemum xerarch xeric xeriff xerocline xerodermatous xerodermia xerodermic xerogel xerography xeroma xeromata xeromorphous xeromyrum xeronic xerophagia xerophagy xerophil xerophile xerophilous xerophily xerophobous xerophthalmos xerophthalmy xerophyte xerophytism xerosis xerostoma xerotes xerotherm xerothermic xerothermiques xerotic xerotocia xerotripsis xerxes xian xicak xicaque xiiie ximenia xina xinca xipe xiphias xiphihumeralis xiphiid xiphiplastra xiphiplastron xiphisterna xiphisternal xiphisternum xiphisura xiphisuran xiphiura xiphius xiphocostal xiphodontidae xiphodynia xiphoid xiphoidal xiphoidian xiphopagic xiphopagous xiphosterna xiphosuran xiphosure xiphosuridae xiphosurous xiphuous xiphydria xiphydriid xiphydriidae xiraxara xmas xmeninges xoana xoanon xosa xurel xvie xviii xxii xxiii xxv xxx xylan xylaria xylariaceae xylem xylene xylenyl xylia xylidine xylina xylinid xylite xylitol xylitone xylobalsamum xylocarp xylocarpous xylocopa xylocopid xylogen xyloglyphy xylograph xylographer xylographical xylographically xylography xyloid xylol xylology xyloma xylomancy xylometer xylon xylonite xylonitrile xylophaga xylophagan xylophagid xylophagous xylophagus xylophilous xylophone xylophonic xylophonist xylopyrography xyloquinone xylorcinol xylosma xylostroma xylostromata xylostromatoid xylotomy xylotrya xylotypographic xyloyl xylylene xylylic xyphoid xyridaceous xyris xyst xyster xysti xystos xystum xystus y y's ya yaba yabber yabby yacal yacca yachan yacht yachter yachting yachtmanship yachts yachtsman yachtsmanlike yachty yacross yadava yade yadi yaffingale yaffle yaghourt yagi yagnob yagourundi yagua yaguarundi yah yahgan yahoodom yahooism yahuna yahuskin yahwist yair yaird yajeine yajenine yajna yajnavalkya yak yakala yakalo yakamik yakan yakima yakin yakka yakona yakonan yakut yale yali yalla yallaer yallah yaller yallow yam yamacraw yamamadi yamanai yamassee yamato yamel yamen yamhill yamilke yamongst yamp yampa yams yamshik yamstchik yan yana yancopin yander yang yangtao yank yanked yankee yankeedom yankeefy yankeeism yankeeist yankeeize yanks yanktonai yanky yannigan yao yaoort yaourti yapa yaply yapman yapness yapok yapp yapped yapper yappiness yapping yappingly yappings yappish yappy yaqui yaquina yar yarak yaray yarb yarbs yard yardage yardarm yardbird yarder yardful yarding yardkeep yardman yards yardsman yardstick yardwand yare yareta yark yarke yarl yarly yarm yarmouth yarmulke yarn yarned yarnen yarning yarns yarpha yarr yarran yarth yarthen yaru yarura yaruran yarwhelp yarwhip yas yashiro yasna yat yataghan yataghans yate yates yati yatvyag yauapery yaud yauld yaupon yautia yavapai yaw yawed yawl yawn yawned yawner yawney yawnful yawnfully yawning yawningly yawnproof yawns yawnups yawny yawp yawping yawweed yawy yaxche yaya yazdegerdian yazoo yblinding ycame ycan ycurious ydepths ye yea yeah yeahs yean yeaned yeaning yeanling year yeara yearbird yearbook yeard yearday yearling yearly yearn yearned yearneth yearnful yearnfully yearnfulness yearning yearnings yearnling yearns yearock years yearth yeasaid yeasay yeast yeastiness yeasting yeastlike yeasty yeather yeats yede yee yeel yeelaman yegg yeggman yeguita yeld yeldrin yelk yell yelled yeller yelling yelloch yellow yellowammer yellowback yellowbelly yellowberry yellowbill yellowcup yellowed yellower yellowest yellowfin yellowhammer yellowhammers yellowhead yellowing yellowish yellowishness yellowknife yellowlegs yellowly yellowness yellowroot yellows yellowshins yellowthroat yellowtop yellowwort yells yelm yelmo yelp yelped yelper yelping yelps yelt yemen yemeni yemenite yen yender yengee yenisei yenite yenough yentnite yeo yeoman yeomanette yeomanlike yeomanly yeomanry yeomanwise yeomen yeorling yer yerava yeraver yerba yercum yerd yere yerk yerkes yern yers yerself yersilf yerth yes yese yeshibah yeshiva yeso yesso yest yester yesterday yestereven yesterevening yestermorn yestern yesternight yesternoon yesterweek yestreen yesty yet yeta yetapa yeth yether yetlin yeuk yeukieness yeux yeven yever yew yews yex yexalted yeya yez yezdi yezidi yfinger yflock ygapo ygather yglitter yhad yhead yhis yhole yid yiddish yiddisher yiddishism yiddishist yield yieldable yieldableness yielded yielden yielder yielders yielding yieldingly yieldingness yieldings yields yigh yikirgaulit yill yilt yin ying yinst yipping yirk yirm yirmilik yirn yirr yis yit yite yknitting ym ymanager ymca ymorning ymy yn ynaked ynatural yobi yocco yock yockel yodel yodeled yodeler yodeling yodelist yoder yodlers yodling yoe yof yoff yogh yoghurt yogi yogin yogism yogoite yogurt yogurts yohimbine yohimbinization yoick yoicks yojana yojuane yok yoke yokeable yokeableness yokeage yoked yokefellow yokel yokelism yokelry yokels yokemate yokes yokewise yoking yokohama yokuts yoky yolden yoldia yolk yolked yolkiness yolks yom yomer yon yoncopin yond yonda yonder yong yonkalla yonkers yonner yont yook yoop yor yore yoretime york yorker yorkish yorkshire yorkshireism yorkshireman yorktown yoruba yoruban yosemite yosotis yotacism yote you you'll youden youdendrift youdith youer young youngberry younge younger youngerly youngest younghearted youngish youngling younglings youngly youngness youngster youngsters youngun younker youp your yourn yours yoursel yourself yourselves youse youth youthen youthful youthfullest youthfullity youthfully youthfulness youthhead youthheid youthily youthlike youthlikeness youths youthsome youthwort youve youze yoven yover yow yowie yowl yowler yowlring yowt yoyo ypatient ypeople yperite yplace yponomeuta yponomeutid ypsilanti ypsiliform ypurinan yquem yr ysagacious yseaman yshall yshiny ystation yterrific ythe ytterbia ytterbic yttre yttrialite yttric yttrious yttrium yttrofluorite yttrogummite yuan yuapin yuca yucas yucatec yuchi yuck yuckel yucker yuckle yuechi yuft yuga yugada yugoslavia yugoslavian yugoslavic yuh yuit yukaghir yukian yukkel yulan yule yuletide yummy yun yunca yuncan yunge yunnanese yunselfish yup yuppie yuppies yuppy yurak yurt yurta yurts yurucare yurucarean yurucari yurujure yuruk yus yusdrum yust yuted yuther yutu yves yvette yvonne ywas yway yweird ywhispered ywis z z's za zabaglione zabaism zaberma zabeta zabism zabra zac zacatec zacateco zach zachun zad zadruga zaffer zafree zagged zagging zaglossus zain zaire zak zakkeu zalambdodont zalambdodonta zalophus zamang zamarra zamarro zambal zambezian zambo zamboorak zamenis zamia zamicrus zamindar zamindari zamorin zamouse zan zanclidae zanclodon zanclodontidae zander zanies zannichellia zannichelliaceae zant zantedeschia zanthorrhiza zanthoxylaceae zantiot zantiote zany zanyism zanyship zanze zanzibar zap zapara zaparo zaparoan zapas zaphara zaphrentidae zaphrentis zaphrentoid zapodidae zaporogian zaporogue zapota zapotec zapotecan zapoteco zaptiah zaptieh zaptoeca zaqqum zaque zar zarabanda zarathustrism zaratite zardushti zareba zarf zarnich zarzuela zat zati zattare zaurak zax zay zayat zayats zazen zea zeal zealander zealful zealless zeallessness zealot zealotism zealotist zealotry zealots zealous zealously zealproof zebra zebraic zebras zebrina zebrine zebrinny zebroid zebrula zebrule zebu zebulunite zeburro zecchini zecchino zechin zed zedoary zee zeed zeelander zeguha zehn zeidae zein zeism zeitgeist zeke zel zelanian zelatrix zelda zelkova zellerbach zeltinger zem zemeism zemi zemimdari zemindar zemni zemstroist zemstvo zenaga zenaida zenaidinae zenaidura zenana zend zendician zendikite zenelophon zenick zenith zenithal zenithwards zenobia zenocentric zenographic zenographical zenonic zenu zeoidei zeolite zeolitic zeolitization zeolitize zep zephyr zephyrean zephyrless zephyrous zephyrs zephyrus zephyry zeppelin zequin zerma zero zeroaxial zeroes zeroth zerumbet zest zestful zestfulness zesty zet zeta zetacism zetetic zeuctocoelomatic zeuctocoelomic zeuglodon zeuglodont zeuglodontia zeuglodontidae zeugma zeugmatic zeugobranchia zeunerite zeus zeuxian zeuzerian zeuzeridae zhmud ziara ziarat zibet zibethone zibetone zibetum zid ziega zieger zietrisikite ziffs zigging ziggurat zigzag zigzagged zigzagger zigzagging zigzaggy zigzags zigzagwise zihar zijne zikurat zillah zillion zilver zimarra zimb zimbalon zimbi zimme zimmerman zimmerwaldist zimmi zinc zincalo zincate zincic zincide zincification zincify zincize zincke zincky zinco zincograph zincographer zincographic zincographical zincous zinfandel zing zingaresca zingel zingerone zingiber zingiberaceae zingiberaceous zingiberene zingiberol zingiberone zink zinkenite zinnias zinsang zinyamunga zinzar zinziberaceae zion zionist zionite zionless zip zipa ziphian ziphiinae ziphioid ziphius zipper zipping zippy zips zirbanit zircite zircon zirconate zirconian zirconiferous zirconium zirconofluoride zirian zirianian zirkelite zither zitherist zixpence zizia zizz zmudz zo zoa zoacum zoanthacea zoanthacean zoantharia zoantharian zoanthidae zoanthidea zoanthodeme zoanthodemic zoanthoid zoanthropy zoanthus zoarces zoaria zoarial zoarite zoarium zobo zobtenite zocco zodiac zodiacal zodiophilous zoe zoea zoetrope zogan zoharist zoharite zoiatria zoic zoid zoidiophilous zoidogamous zoilean zoilism zoilist zoism zoist zoistic zoladex zolaesque zolaism zolaistic zolle zollernia zollinger zolotnik zomba zombi zombiism zomotherapeutic zomotherapy zona zonal zonality zonally zonary zonate zonation zone zoned zoneless zonelet zones zonesthesia zonic zoning zonite zonitidae zonitoides zonochlorite zonociliate zonoid zonolimnetic zonoplacental zonoplacentalia zonta zontian zonular zonuroid zonurus zoo zoobenthos zooblast zoocarp zoocecidium zoochemical zoochemistry zoochemy zoochlorella zoocoenocyte zoocultural zooculture zoocurrent zoocystic zoocytial zoodendria zoodendrium zoodynamic zoodynamics zooecia zooecial zooecium zooerythrin zoofulvin zoogamete zoogametes zoogamous zoogene zoogenic zoogeny zoogeographer zoogeographic zoogeographical zoogeographically zoogeological zoogeologist zoogeology zoogloea zoogonic zoogonidium zoogony zoograft zoografting zoographer zoographic zoographically zoographist zooidiophilous zoolater zoolatria zoolatrous zoolatry zoolite zoolithic zoolitic zoological zoologically zoologicoarchaeologist zoologicobotanical zoologist zoologists zoologize zoology zoom zoomagnetic zoomagnetism zoomancy zoomania zoomantic zoomantist zoomechanical zoomechanics zoometric zoometry zoomimic zoomorph zoomorphic zoomorphize zoomorphy zooms zoon zoonal zoonerythrin zoonic zoonist zoonite zoonomia zoonomic zoonomist zoonose zoonosis zoonosologist zoonosology zoonotic zoopantheon zooparasite zoopathologist zoopathology zoopathy zooperal zoopery zoophaga zoophagan zoophagous zoopharmacy zoophile zoophilic zoophilism zoophilist zoophilitic zoophilous zoophily zoophobous zoophoric zoophysical zoophysics zoophysiology zoophyta zoophytal zoophyte zoophytes zoophytic zoophytical zoophytish zoophytological zooplanktonic zooplasty zoopraxiscope zoopsia zoopsychology zooscopic zooscopy zoosis zoosmosis zoosperm zoospermatic zoospermia zoospermium zoosphere zoosporangia zoosporangial zoosporangium zoospore zoospores zoosporiferous zoosporocyst zoosporous zootaxy zootechnics zootechny zooter zoothecia zoothecial zootheism zootheist zootheistic zootherapy zootic zootoca zootomic zootomical zootomically zootomist zootomy zoototemism zootrophic zootype zooxanthella zooxanthin zoozoo zopilote zoraptera zorilla zorillinae zorillo zorn zoroastrian zoroastrianism zoroastrism zorrillo zorro zosma zosteraceae zosteropinae zosterops zostrix zouave zouaves zounds zoup zovirax zowie zubeneschamali zuccarino zucchini zudda zugtierlast zuisin zuleika zulhijjah zulinde zulkadah zulu zuludom zuluize zum zumatic zung zunyite zupanate zur zusammengetroffen zutugil zuurveldt zwailing zwanziger zwar zwei zweite zweyer zwieback zwinglian zwinglianism zwinglianist zwischen zwitterion zyga zygadenine zygadenus zygaenid zygantra zygapophyseal zygite zygnema zygnemaceae zygnemataceae zygnemataceous zygnematales zygobranchia zygobranchiata zygobranchiate zygocactus zygodactylic zygodactylism zygolabialis zygoma zygomatic zygomaticoauricular zygomaticoauricularis zygomaticofacial zygomaticofrontal zygomaticomaxillary zygomaticoorbital zygomaticosphenoid zygomaticotemporal zygomaxillare zygomaxillary zygomorphic zygomorphism zygomorphous zygomycete zygomycetes zygomycetous zygon zygophore zygophoric zygophyceae zygophyceous zygophyllaceae zygophyllum zygophyte zygopteran zygopterid zygopterides zygopteris zygopteron zygopterous zygosaccharomyces zygose zygosis zygosphenal zygosphene zygosphere zygosporange zygosporangium zygospore zygospores zygosporophore zygotactic zygotaxis zygote zygotoid zygotomere zygous zygozoospore zymase zyme zymic zymin zymite zymogen zymogenesis zymogenic zymogenous zymoid zymologic zymological zymologist zymology zymolyis zymomin zymophore zymophoric zymophosphate zymophyte zymoplastic zymoscope zymosimeter zymosis zymosterol zymosthenic zymotechnic zymotechnical zymotechnics zymotic zymotize zymotoxic zymurgy zyrenian zyryan zythia ================================================ FILE: tests/perlbench/doio.c ================================================ /* doio.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * "Far below them they saw the white waters pour into a foaming bowl, and * then swirl darkly about a deep oval basin in the rocks, until they found * their way out again through a narrow gate, and flowed away, fuming and * chattering, into calmer and more level reaches." */ /* This file contains functions that do the actual I/O on behalf of ops. * For example, pp_print() calls the do_print() function in this file for * each argument needing printing. */ #include "EXTERN.h" #define PERL_IN_DOIO_C #include "perl.h" #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) #ifndef HAS_SEM #include #endif #ifdef HAS_MSG #include #endif #ifdef HAS_SHM #include # ifndef HAS_SHMAT_PROTOTYPE extern Shmat_t shmat (int, char *, int); # endif #endif #endif #ifdef I_UTIME # if defined(_MSC_VER) || defined(__MINGW32__) # include # else # include # endif #endif #ifdef O_EXCL # define OPEN_EXCL O_EXCL #else # define OPEN_EXCL 0 #endif #define PERL_MODE_MAX 8 #define PERL_FLAGS_MAX 10 #include bool Perl_do_open(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp) { return do_openn(gv, name, len, as_raw, rawmode, rawperm, supplied_fp, (SV **) NULL, 0); } bool Perl_do_open9(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs, I32 num_svs) { return do_openn(gv, name, len, as_raw, rawmode, rawperm, supplied_fp, &svs, 1); } bool Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV **svp, I32 num_svs) { register IO *io = GvIOn(gv); PerlIO *saveifp = Nullfp; PerlIO *saveofp = Nullfp; int savefd = -1; char savetype = IoTYPE_CLOSED; int writing = 0; PerlIO *fp; int fd; int result; bool was_fdopen = FALSE; bool in_raw = 0, in_crlf = 0, out_raw = 0, out_crlf = 0; char *type = NULL; char mode[PERL_MODE_MAX]; /* stdio file mode ("r\0", "rb\0", "r+b\0" etc.) */ SV *namesv; Zero(mode,sizeof(mode),char); PL_forkprocess = 1; /* assume true if no fork */ /* Collect default raw/crlf info from the op */ if (PL_op && PL_op->op_type == OP_OPEN) { /* set up IO layers */ U8 flags = PL_op->op_private; in_raw = (flags & OPpOPEN_IN_RAW); in_crlf = (flags & OPpOPEN_IN_CRLF); out_raw = (flags & OPpOPEN_OUT_RAW); out_crlf = (flags & OPpOPEN_OUT_CRLF); } /* If currently open - close before we re-open */ if (IoIFP(io)) { fd = PerlIO_fileno(IoIFP(io)); if (IoTYPE(io) == IoTYPE_STD) { /* This is a clone of one of STD* handles */ result = 0; } else if (fd >= 0 && fd <= PL_maxsysfd) { /* This is one of the original STD* handles */ saveifp = IoIFP(io); saveofp = IoOFP(io); savetype = IoTYPE(io); savefd = fd; result = 0; } else if (IoTYPE(io) == IoTYPE_PIPE) result = PerlProc_pclose(IoIFP(io)); else if (IoIFP(io) != IoOFP(io)) { if (IoOFP(io)) { result = PerlIO_close(IoOFP(io)); PerlIO_close(IoIFP(io)); /* clear stdio, fd already closed */ } else result = PerlIO_close(IoIFP(io)); } else result = PerlIO_close(IoIFP(io)); if (result == EOF && fd > PL_maxsysfd) { /* Why is this not Perl_warn*() call ? */ PerlIO_printf(Perl_error_log, "Warning: unable to close filehandle %s properly.\n", GvENAME(gv)); } IoOFP(io) = IoIFP(io) = Nullfp; } if (as_raw) { /* sysopen style args, i.e. integer mode and permissions */ STRLEN ix = 0; int appendtrunc = 0 #ifdef O_APPEND /* Not fully portable. */ |O_APPEND #endif #ifdef O_TRUNC /* Not fully portable. */ |O_TRUNC #endif ; int modifyingmode = O_WRONLY|O_RDWR|O_CREAT|appendtrunc; int ismodifying; if (num_svs != 0) { Perl_croak(aTHX_ "panic: sysopen with multiple args"); } /* It's not always O_RDONLY 0 O_WRONLY 1 O_RDWR 2 It might be (in OS/390 and Mac OS Classic it is) O_WRONLY 1 O_RDONLY 2 O_RDWR 3 This means that simple & with O_RDWR would look like O_RDONLY is present. Therefore we have to be more careful. */ if ((ismodifying = (rawmode & modifyingmode))) { if ((ismodifying & O_WRONLY) == O_WRONLY || (ismodifying & O_RDWR) == O_RDWR || (ismodifying & (O_CREAT|appendtrunc))) TAINT_PROPER("sysopen"); } mode[ix++] = IoTYPE_NUMERIC; /* Marker to openn to use numeric "sysopen" */ #if defined(USE_64_BIT_RAWIO) && defined(O_LARGEFILE) rawmode |= O_LARGEFILE; /* Transparently largefiley. */ #endif IoTYPE(io) = PerlIO_intmode2str(rawmode, &mode[ix], &writing); namesv = sv_2mortal(newSVpvn(name,strlen(name))); num_svs = 1; svp = &namesv; type = Nullch; fp = PerlIO_openn(aTHX_ type, mode, -1, rawmode, rawperm, NULL, num_svs, svp); } else { /* Regular (non-sys) open */ char *oname = name; STRLEN olen = len; char *tend; int dodup = 0; PerlIO *that_fp = NULL; type = savepvn(name, len); tend = type+len; SAVEFREEPV(type); /* Lose leading and trailing white space */ /*SUPPRESS 530*/ for (; isSPACE(*type); type++) ; while (tend > type && isSPACE(tend[-1])) *--tend = '\0'; if (num_svs) { /* New style explicit name, type is just mode and layer info */ #ifdef USE_STDIO if (SvROK(*svp) && !strchr(name,'&')) { if (ckWARN(WARN_IO)) Perl_warner(aTHX_ packWARN(WARN_IO), "Can't open a reference"); SETERRNO(EINVAL, LIB_INVARG); goto say_false; } #endif /* USE_STDIO */ name = SvOK(*svp) ? savesvpv (*svp) : savepvn ("", 0); SAVEFREEPV(name); } else { name = type; len = tend-type; } IoTYPE(io) = *type; if ((*type == IoTYPE_RDWR) && /* scary */ (*(type+1) == IoTYPE_RDONLY || *(type+1) == IoTYPE_WRONLY) && ((!num_svs || (tend > type+1 && tend[-1] != IoTYPE_PIPE)))) { TAINT_PROPER("open"); mode[1] = *type++; writing = 1; } if (*type == IoTYPE_PIPE) { if (num_svs) { if (type[1] != IoTYPE_STD) { unknown_open_mode: Perl_croak(aTHX_ "Unknown open() mode '%.*s'", (int)olen, oname); } type++; } /*SUPPRESS 530*/ for (type++; isSPACE(*type); type++) ; if (!num_svs) { name = type; len = tend-type; } if (*name == '\0') { /* command is missing 19990114 */ if (ckWARN(WARN_PIPE)) Perl_warner(aTHX_ packWARN(WARN_PIPE), "Missing command in piped open"); errno = EPIPE; goto say_false; } if ((*name == '-' && name[1] == '\0') || num_svs) TAINT_ENV(); TAINT_PROPER("piped open"); if (!num_svs && name[len-1] == '|') { name[--len] = '\0' ; if (ckWARN(WARN_PIPE)) Perl_warner(aTHX_ packWARN(WARN_PIPE), "Can't open bidirectional pipe"); } mode[0] = 'w'; writing = 1; #ifdef HAS_STRLCAT if (out_raw) strlcat(mode, "b", PERL_MODE_MAX); else if (out_crlf) strlcat(mode, "t", PERL_MODE_MAX); #else if (out_raw) strcat(mode, "b"); else if (out_crlf) strcat(mode, "t"); #endif if (num_svs > 1) { fp = PerlProc_popen_list(mode, num_svs, svp); } else { fp = PerlProc_popen(name,mode); } if (num_svs) { if (*type) { if (PerlIO_apply_layers(aTHX_ fp, mode, type) != 0) { goto say_false; } } } } /* IoTYPE_PIPE */ else if (*type == IoTYPE_WRONLY) { TAINT_PROPER("open"); type++; if (*type == IoTYPE_WRONLY) { /* Two IoTYPE_WRONLYs in a row make for an IoTYPE_APPEND. */ mode[0] = IoTYPE(io) = IoTYPE_APPEND; type++; } else { mode[0] = 'w'; } writing = 1; #ifdef HAS_STRLCAT if (out_raw) strlcat(mode, "b", PERL_MODE_MAX); else if (out_crlf) strlcat(mode, "t", PERL_MODE_MAX); #else if (out_raw) strcat(mode, "b"); else if (out_crlf) strcat(mode, "t"); #endif if (*type == '&') { duplicity: dodup = PERLIO_DUP_FD; type++; if (*type == '=') { dodup = 0; type++; } if (!num_svs && !*type && supplied_fp) { /* "<+&" etc. is used by typemaps */ fp = supplied_fp; } else { if (num_svs > 1) { Perl_croak(aTHX_ "More than one argument to '%c&' open",IoTYPE(io)); } /*SUPPRESS 530*/ for (; isSPACE(*type); type++) ; if (num_svs && (SvIOK(*svp) || (SvPOK(*svp) && looks_like_number(*svp)))) { fd = SvUV(*svp); num_svs = 0; } else if (isDIGIT(*type)) { fd = atoi(type); } else { IO* thatio; if (num_svs) { thatio = sv_2io(*svp); } else { GV *thatgv; thatgv = gv_fetchpv(type,FALSE,SVt_PVIO); thatio = GvIO(thatgv); } if (!thatio) { #ifdef EINVAL SETERRNO(EINVAL,SS_IVCHAN); #endif goto say_false; } if ((that_fp = IoIFP(thatio))) { /* Flush stdio buffer before dup. --mjd * Unfortunately SEEK_CURing 0 seems to * be optimized away on most platforms; * only Solaris and Linux seem to flush * on that. --jhi */ #ifdef USE_SFIO /* sfio fails to clear error on next sfwrite, contrary to documentation. -- Nick Clark */ if (PerlIO_seek(that_fp, 0, SEEK_CUR) == -1) PerlIO_clearerr(that_fp); #endif /* On the other hand, do all platforms * take gracefully to flushing a read-only * filehandle? Perhaps we should do * fsetpos(src)+fgetpos(dst)? --nik */ PerlIO_flush(that_fp); fd = PerlIO_fileno(that_fp); /* When dup()ing STDIN, STDOUT or STDERR * explicitly set appropriate access mode */ if (that_fp == PerlIO_stdout() || that_fp == PerlIO_stderr()) IoTYPE(io) = IoTYPE_WRONLY; else if (that_fp == PerlIO_stdin()) IoTYPE(io) = IoTYPE_RDONLY; /* When dup()ing a socket, say result is * one as well */ else if (IoTYPE(thatio) == IoTYPE_SOCKET) IoTYPE(io) = IoTYPE_SOCKET; } else fd = -1; } if (!num_svs) type = Nullch; if (that_fp) { fp = PerlIO_fdupopen(aTHX_ that_fp, NULL, dodup); } else { if (dodup) fd = PerlLIO_dup(fd); else was_fdopen = TRUE; if (!(fp = PerlIO_openn(aTHX_ type,mode,fd,0,0,NULL,num_svs,svp))) { if (dodup) PerlLIO_close(fd); } } } } /* & */ else { /*SUPPRESS 530*/ for (; isSPACE(*type); type++) ; if (*type == IoTYPE_STD && (!type[1] || isSPACE(type[1]) || type[1] == ':')) { /*SUPPRESS 530*/ type++; fp = PerlIO_stdout(); IoTYPE(io) = IoTYPE_STD; if (num_svs > 1) { Perl_croak(aTHX_ "More than one argument to '>%c' open",IoTYPE_STD); } } else { if (!num_svs) { namesv = sv_2mortal(newSVpvn(type,strlen(type))); num_svs = 1; svp = &namesv; type = Nullch; } fp = PerlIO_openn(aTHX_ type,mode,-1,0,0,NULL,num_svs,svp); } } /* !& */ if (!fp && type && *type && *type != ':' && !isIDFIRST(*type)) goto unknown_open_mode; } /* IoTYPE_WRONLY */ else if (*type == IoTYPE_RDONLY) { /*SUPPRESS 530*/ for (type++; isSPACE(*type); type++) ; mode[0] = 'r'; #ifdef HAS_STRLCAT if (in_raw) strlcat(mode, "b", PERL_MODE_MAX); else if (in_crlf) strlcat(mode, "t", PERL_MODE_MAX); #else if (in_raw) strcat(mode, "b"); else if (in_crlf) strcat(mode, "t"); #endif if (*type == '&') { goto duplicity; } if (*type == IoTYPE_STD && (!type[1] || isSPACE(type[1]) || type[1] == ':')) { /*SUPPRESS 530*/ type++; fp = PerlIO_stdin(); IoTYPE(io) = IoTYPE_STD; if (num_svs > 1) { Perl_croak(aTHX_ "More than one argument to '<%c' open",IoTYPE_STD); } } else { if (!num_svs) { namesv = sv_2mortal(newSVpvn(type,strlen(type))); num_svs = 1; svp = &namesv; type = Nullch; } fp = PerlIO_openn(aTHX_ type,mode,-1,0,0,NULL,num_svs,svp); } if (!fp && type && *type && *type != ':' && !isIDFIRST(*type)) goto unknown_open_mode; } /* IoTYPE_RDONLY */ else if ((num_svs && /* '-|...' or '...|' */ type[0] == IoTYPE_STD && type[1] == IoTYPE_PIPE) || (!num_svs && tend > type+1 && tend[-1] == IoTYPE_PIPE)) { if (num_svs) { type += 2; /* skip over '-|' */ } else { *--tend = '\0'; while (tend > type && isSPACE(tend[-1])) *--tend = '\0'; /*SUPPRESS 530*/ for (; isSPACE(*type); type++) ; name = type; len = tend-type; } if (*name == '\0') { /* command is missing 19990114 */ if (ckWARN(WARN_PIPE)) Perl_warner(aTHX_ packWARN(WARN_PIPE), "Missing command in piped open"); errno = EPIPE; goto say_false; } if (!(*name == '-' && name[1] == '\0') || num_svs) TAINT_ENV(); TAINT_PROPER("piped open"); mode[0] = 'r'; #ifdef HAS_STRLCAT if (in_raw) strlcat(mode, "b", PERL_MODE_MAX); else if (in_crlf) strlcat(mode, "t", PERL_MODE_MAX); #else if (in_raw) strcat(mode, "b"); else if (in_crlf) strcat(mode, "t"); #endif if (num_svs > 1) { fp = PerlProc_popen_list(mode,num_svs,svp); } else { fp = PerlProc_popen(name,mode); } IoTYPE(io) = IoTYPE_PIPE; if (num_svs) { for (; isSPACE(*type); type++) ; if (*type) { if (PerlIO_apply_layers(aTHX_ fp, mode, type) != 0) { goto say_false; } } } } else { /* layer(Args) */ if (num_svs) goto unknown_open_mode; name = type; IoTYPE(io) = IoTYPE_RDONLY; /*SUPPRESS 530*/ for (; isSPACE(*name); name++) ; mode[0] = 'r'; #ifdef HAS_STRLCAT if (in_raw) strlcat(mode, "b", PERL_MODE_MAX); else if (in_crlf) strlcat(mode, "t", PERL_MODE_MAX); #else if (in_raw) strcat(mode, "b"); else if (in_crlf) strcat(mode, "t"); #endif if (*name == '-' && name[1] == '\0') { fp = PerlIO_stdin(); IoTYPE(io) = IoTYPE_STD; } else { if (!num_svs) { namesv = sv_2mortal(newSVpvn(type,strlen(type))); num_svs = 1; svp = &namesv; type = Nullch; } fp = PerlIO_openn(aTHX_ type,mode,-1,0,0,NULL,num_svs,svp); } } } if (!fp) { if (ckWARN(WARN_NEWLINE) && IoTYPE(io) == IoTYPE_RDONLY && strchr(name, '\n')) Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "open"); goto say_false; } if (ckWARN(WARN_IO)) { if ((IoTYPE(io) == IoTYPE_RDONLY) && (fp == PerlIO_stdout() || fp == PerlIO_stderr())) { Perl_warner(aTHX_ packWARN(WARN_IO), "Filehandle STD%s reopened as %s only for input", ((fp == PerlIO_stdout()) ? "OUT" : "ERR"), GvENAME(gv)); } else if ((IoTYPE(io) == IoTYPE_WRONLY) && fp == PerlIO_stdin()) { Perl_warner(aTHX_ packWARN(WARN_IO), "Filehandle STDIN reopened as %s only for output", GvENAME(gv)); } } fd = PerlIO_fileno(fp); /* If there is no fd (e.g. PerlIO::scalar) assume it isn't a * socket - this covers PerlIO::scalar - otherwise unless we "know" the * type probe for socket-ness. */ if (IoTYPE(io) && IoTYPE(io) != IoTYPE_PIPE && IoTYPE(io) != IoTYPE_STD && fd >= 0) { if (PerlLIO_fstat(fd,&PL_statbuf) < 0) { /* If PerlIO claims to have fd we had better be able to fstat() it. */ (void) PerlIO_close(fp); goto say_false; } #ifndef PERL_MICRO if (S_ISSOCK(PL_statbuf.st_mode)) IoTYPE(io) = IoTYPE_SOCKET; /* in case a socket was passed in to us */ #ifdef HAS_SOCKET else if ( #ifdef S_IFMT !(PL_statbuf.st_mode & S_IFMT) #else !PL_statbuf.st_mode #endif && IoTYPE(io) != IoTYPE_WRONLY /* Dups of STD* filehandles already have */ && IoTYPE(io) != IoTYPE_RDONLY /* type so they aren't marked as sockets */ ) { /* on OS's that return 0 on fstat()ed pipe */ char tmpbuf[256]; Sock_size_t buflen = sizeof tmpbuf; if (PerlSock_getsockname(fd, (struct sockaddr *)tmpbuf, &buflen) >= 0 || errno != ENOTSOCK) IoTYPE(io) = IoTYPE_SOCKET; /* some OS's return 0 on fstat()ed socket */ /* but some return 0 for streams too, sigh */ } #endif /* HAS_SOCKET */ #endif /* !PERL_MICRO */ } /* Eeek - FIXME !!! * If this is a standard handle we discard all the layer stuff * and just dup the fd into whatever was on the handle before ! */ if (saveifp) { /* must use old fp? */ /* If fd is less that PL_maxsysfd i.e. STDIN..STDERR then dup the new fileno down */ if (saveofp) { PerlIO_flush(saveofp); /* emulate PerlIO_close() */ if (saveofp != saveifp) { /* was a socket? */ PerlIO_close(saveofp); } } if (savefd != fd) { /* Still a small can-of-worms here if (say) PerlIO::scalar is assigned to (say) STDOUT - for now let dup2() fail and provide the error */ if (PerlLIO_dup2(fd, savefd) < 0) { (void)PerlIO_close(fp); goto say_false; } #ifdef VMS if (savefd != PerlIO_fileno(PerlIO_stdin())) { char newname[FILENAME_MAX+1]; if (PerlIO_getname(fp, newname)) { if (fd == PerlIO_fileno(PerlIO_stdout())) Perl_vmssetuserlnm(aTHX_ "SYS$OUTPUT", newname); if (fd == PerlIO_fileno(PerlIO_stderr())) Perl_vmssetuserlnm(aTHX_ "SYS$ERROR", newname); } } #endif #if !defined(WIN32) /* PL_fdpid isn't used on Windows, so avoid this useless work. * XXX Probably the same for a lot of other places. */ { Pid_t pid; SV *sv; LOCK_FDPID_MUTEX; sv = *av_fetch(PL_fdpid,fd,TRUE); (void)SvUPGRADE(sv, SVt_IV); pid = SvIVX(sv); SvIVX(sv) = 0; sv = *av_fetch(PL_fdpid,savefd,TRUE); (void)SvUPGRADE(sv, SVt_IV); SvIVX(sv) = pid; UNLOCK_FDPID_MUTEX; } #endif if (was_fdopen) { /* need to close fp without closing underlying fd */ int ofd = PerlIO_fileno(fp); int dupfd = PerlLIO_dup(ofd); #if defined(HAS_FCNTL) && defined(F_SETFD) /* Assume if we have F_SETFD we have F_GETFD */ int coe = fcntl(ofd,F_GETFD); #endif PerlIO_close(fp); PerlLIO_dup2(dupfd,ofd); #if defined(HAS_FCNTL) && defined(F_SETFD) /* The dup trick has lost close-on-exec on ofd */ fcntl(ofd,F_SETFD, coe); #endif PerlLIO_close(dupfd); } else PerlIO_close(fp); } fp = saveifp; PerlIO_clearerr(fp); fd = PerlIO_fileno(fp); } #if defined(HAS_FCNTL) && defined(F_SETFD) if (fd >= 0) { int save_errno = errno; fcntl(fd,F_SETFD,fd > PL_maxsysfd); /* can change errno */ errno = save_errno; } #endif IoIFP(io) = fp; IoFLAGS(io) &= ~IOf_NOLINE; if (writing) { if (IoTYPE(io) == IoTYPE_SOCKET || (IoTYPE(io) == IoTYPE_WRONLY && fd >= 0 && S_ISCHR(PL_statbuf.st_mode)) ) { char *s = mode; if (*s == IoTYPE_IMPLICIT || *s == IoTYPE_NUMERIC) s++; *s = 'w'; if (!(IoOFP(io) = PerlIO_openn(aTHX_ type,s,fd,0,0,NULL,0,svp))) { PerlIO_close(fp); IoIFP(io) = Nullfp; goto say_false; } } else IoOFP(io) = fp; } return TRUE; say_false: IoIFP(io) = saveifp; IoOFP(io) = saveofp; IoTYPE(io) = savetype; return FALSE; } PerlIO * Perl_nextargv(pTHX_ register GV *gv) { register SV *sv; #ifndef FLEXFILENAMES int filedev; int fileino; #endif Uid_t fileuid; Gid_t filegid; IO *io = GvIOp(gv); if (!PL_argvoutgv) PL_argvoutgv = gv_fetchpv("ARGVOUT",TRUE,SVt_PVIO); if (io && (IoFLAGS(io) & IOf_ARGV) && (IoFLAGS(io) & IOf_START)) { IoFLAGS(io) &= ~IOf_START; if (PL_inplace) { if (!PL_argvout_stack) PL_argvout_stack = newAV(); av_push(PL_argvout_stack, SvREFCNT_inc(PL_defoutgv)); } } if (PL_filemode & (S_ISUID|S_ISGID)) { PerlIO_flush(IoIFP(GvIOn(PL_argvoutgv))); /* chmod must follow last write */ #ifdef HAS_FCHMOD if (PL_lastfd != -1) (void)fchmod(PL_lastfd,PL_filemode); #else (void)PerlLIO_chmod(PL_oldname,PL_filemode); #endif } PL_lastfd = -1; PL_filemode = 0; if (!GvAV(gv)) return Nullfp; while (av_len(GvAV(gv)) >= 0) { STRLEN oldlen; sv = av_shift(GvAV(gv)); SAVEFREESV(sv); sv_setsv(GvSV(gv),sv); SvSETMAGIC(GvSV(gv)); PL_oldname = SvPVx(GvSV(gv), oldlen); if (do_open(gv,PL_oldname,oldlen,PL_inplace!=0,O_RDONLY,0,Nullfp)) { if (PL_inplace) { TAINT_PROPER("inplace open"); if (oldlen == 1 && *PL_oldname == '-') { setdefout(gv_fetchpv("STDOUT",TRUE,SVt_PVIO)); return IoIFP(GvIOp(gv)); } #ifndef FLEXFILENAMES filedev = PL_statbuf.st_dev; fileino = PL_statbuf.st_ino; #endif PL_filemode = PL_statbuf.st_mode; fileuid = PL_statbuf.st_uid; filegid = PL_statbuf.st_gid; if (!S_ISREG(PL_filemode)) { if (ckWARN_d(WARN_INPLACE)) Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't do inplace edit: %s is not a regular file", PL_oldname ); do_close(gv,FALSE); continue; } if (*PL_inplace) { char *star = strchr(PL_inplace, '*'); if (star) { char *begin = PL_inplace; sv_setpvn(sv, "", 0); do { sv_catpvn(sv, begin, star - begin); sv_catpvn(sv, PL_oldname, oldlen); begin = ++star; } while ((star = strchr(begin, '*'))); if (*begin) sv_catpv(sv,begin); } else { sv_catpv(sv,PL_inplace); } #ifndef FLEXFILENAMES if ((PerlLIO_stat(SvPVX(sv),&PL_statbuf) >= 0 && PL_statbuf.st_dev == filedev && PL_statbuf.st_ino == fileino) #ifdef DJGPP || ((_djstat_fail_bits & _STFAIL_TRUENAME)!=0) #endif ) { if (ckWARN_d(WARN_INPLACE)) Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't do inplace edit: %"SVf" would not be unique", sv); do_close(gv,FALSE); continue; } #endif #ifdef HAS_RENAME #if !defined(DOSISH) && !defined(__CYGWIN__) && !defined(EPOC) if (PerlLIO_rename(PL_oldname,SvPVX(sv)) < 0) { if (ckWARN_d(WARN_INPLACE)) Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't rename %s to %"SVf": %s, skipping file", PL_oldname, sv, Strerror(errno) ); do_close(gv,FALSE); continue; } #else do_close(gv,FALSE); (void)PerlLIO_unlink(SvPVX(sv)); (void)PerlLIO_rename(PL_oldname,SvPVX(sv)); do_open(gv,SvPVX(sv),SvCUR(sv),PL_inplace!=0,O_RDONLY,0,Nullfp); #endif /* DOSISH */ #else (void)UNLINK(SvPVX(sv)); if (link(PL_oldname,SvPVX(sv)) < 0) { if (ckWARN_d(WARN_INPLACE)) Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't rename %s to %"SVf": %s, skipping file", PL_oldname, sv, Strerror(errno) ); do_close(gv,FALSE); continue; } (void)UNLINK(PL_oldname); #endif } else { #if !defined(DOSISH) && !defined(AMIGAOS) # ifndef VMS /* Don't delete; use automatic file versioning */ if (UNLINK(PL_oldname) < 0) { if (ckWARN_d(WARN_INPLACE)) Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't remove %s: %s, skipping file", PL_oldname, Strerror(errno) ); do_close(gv,FALSE); continue; } # endif #else Perl_croak(aTHX_ "Can't do inplace edit without backup"); #endif } sv_setpvn(sv,">",!PL_inplace); sv_catpvn(sv,PL_oldname,oldlen); SETERRNO(0,0); /* in case sprintf set errno */ #ifdef VMS if (!do_open(PL_argvoutgv,SvPVX(sv),SvCUR(sv),PL_inplace!=0, O_WRONLY|O_CREAT|O_TRUNC,0,Nullfp)) #else if (!do_open(PL_argvoutgv,SvPVX(sv),SvCUR(sv),PL_inplace!=0, O_WRONLY|O_CREAT|OPEN_EXCL,0666,Nullfp)) #endif { if (ckWARN_d(WARN_INPLACE)) Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't do inplace edit on %s: %s", PL_oldname, Strerror(errno) ); do_close(gv,FALSE); continue; } setdefout(PL_argvoutgv); PL_lastfd = PerlIO_fileno(IoIFP(GvIOp(PL_argvoutgv))); (void)PerlLIO_fstat(PL_lastfd,&PL_statbuf); #ifdef HAS_FCHMOD (void)fchmod(PL_lastfd,PL_filemode); #else # if !(defined(WIN32) && defined(__BORLANDC__)) /* Borland runtime creates a readonly file! */ (void)PerlLIO_chmod(PL_oldname,PL_filemode); # endif #endif if (fileuid != PL_statbuf.st_uid || filegid != PL_statbuf.st_gid) { #ifdef HAS_FCHOWN (void)fchown(PL_lastfd,fileuid,filegid); #else #ifdef HAS_CHOWN (void)PerlLIO_chown(PL_oldname,fileuid,filegid); #endif #endif } } return IoIFP(GvIOp(gv)); } else { if (ckWARN_d(WARN_INPLACE)) { int eno = errno; if (PerlLIO_stat(PL_oldname, &PL_statbuf) >= 0 && !S_ISREG(PL_statbuf.st_mode)) { Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't do inplace edit: %s is not a regular file", PL_oldname); } else Perl_warner(aTHX_ packWARN(WARN_INPLACE), "Can't open %s: %s", PL_oldname, Strerror(eno)); } } } if (io && (IoFLAGS(io) & IOf_ARGV)) IoFLAGS(io) |= IOf_START; if (PL_inplace) { (void)do_close(PL_argvoutgv,FALSE); if (io && (IoFLAGS(io) & IOf_ARGV) && PL_argvout_stack && AvFILLp(PL_argvout_stack) >= 0) { GV *oldout = (GV*)av_pop(PL_argvout_stack); setdefout(oldout); SvREFCNT_dec(oldout); return Nullfp; } setdefout(gv_fetchpv("STDOUT",TRUE,SVt_PVIO)); } return Nullfp; } #ifdef HAS_PIPE void Perl_do_pipe(pTHX_ SV *sv, GV *rgv, GV *wgv) { register IO *rstio; register IO *wstio; int fd[2]; if (!rgv) goto badexit; if (!wgv) goto badexit; rstio = GvIOn(rgv); wstio = GvIOn(wgv); if (IoIFP(rstio)) do_close(rgv,FALSE); if (IoIFP(wstio)) do_close(wgv,FALSE); if (PerlProc_pipe(fd) < 0) goto badexit; IoIFP(rstio) = PerlIO_fdopen(fd[0], "r"PIPE_OPEN_MODE); IoOFP(wstio) = PerlIO_fdopen(fd[1], "w"PIPE_OPEN_MODE); IoOFP(rstio) = IoIFP(rstio); IoIFP(wstio) = IoOFP(wstio); IoTYPE(rstio) = IoTYPE_RDONLY; IoTYPE(wstio) = IoTYPE_WRONLY; if (!IoIFP(rstio) || !IoOFP(wstio)) { if (IoIFP(rstio)) PerlIO_close(IoIFP(rstio)); else PerlLIO_close(fd[0]); if (IoOFP(wstio)) PerlIO_close(IoOFP(wstio)); else PerlLIO_close(fd[1]); goto badexit; } sv_setsv(sv,&PL_sv_yes); return; badexit: sv_setsv(sv,&PL_sv_undef); return; } #endif /* explicit renamed to avoid C++ conflict -- kja */ bool Perl_do_close(pTHX_ GV *gv, bool not_implicit) { bool retval; IO *io; if (!gv) gv = PL_argvgv; if (!gv || SvTYPE(gv) != SVt_PVGV) { if (not_implicit) SETERRNO(EBADF,SS_IVCHAN); return FALSE; } io = GvIO(gv); if (!io) { /* never opened */ if (not_implicit) { if (ckWARN(WARN_UNOPENED)) /* no check for closed here */ report_evil_fh(gv, io, PL_op->op_type); SETERRNO(EBADF,SS_IVCHAN); } return FALSE; } retval = io_close(io, not_implicit); if (not_implicit) { IoLINES(io) = 0; IoPAGE(io) = 0; IoLINES_LEFT(io) = IoPAGE_LEN(io); } IoTYPE(io) = IoTYPE_CLOSED; return retval; } bool Perl_io_close(pTHX_ IO *io, bool not_implicit) { bool retval = FALSE; int status; if (IoIFP(io)) { if (IoTYPE(io) == IoTYPE_PIPE) { status = PerlProc_pclose(IoIFP(io)); if (not_implicit) { STATUS_NATIVE_SET(status); retval = (STATUS_POSIX == 0); } else { retval = (status != -1); } } else if (IoTYPE(io) == IoTYPE_STD) retval = TRUE; else { if (IoOFP(io) && IoOFP(io) != IoIFP(io)) { /* a socket */ bool prev_err = PerlIO_error(IoOFP(io)); retval = (PerlIO_close(IoOFP(io)) != EOF && !prev_err); PerlIO_close(IoIFP(io)); /* clear stdio, fd already closed */ } else { bool prev_err = PerlIO_error(IoIFP(io)); retval = (PerlIO_close(IoIFP(io)) != EOF && !prev_err); } } IoOFP(io) = IoIFP(io) = Nullfp; } else if (not_implicit) { SETERRNO(EBADF,SS_IVCHAN); } return retval; } bool Perl_do_eof(pTHX_ GV *gv) { register IO *io; int ch; io = GvIO(gv); if (!io) return TRUE; else if (ckWARN(WARN_IO) && (IoTYPE(io) == IoTYPE_WRONLY)) report_evil_fh(gv, io, OP_phoney_OUTPUT_ONLY); while (IoIFP(io)) { int saverrno; if (PerlIO_has_cntptr(IoIFP(io))) { /* (the code works without this) */ if (PerlIO_get_cnt(IoIFP(io)) > 0) /* cheat a little, since */ return FALSE; /* this is the most usual case */ } saverrno = errno; /* getc and ungetc can stomp on errno */ ch = PerlIO_getc(IoIFP(io)); if (ch != EOF) { (void)PerlIO_ungetc(IoIFP(io),ch); errno = saverrno; return FALSE; } errno = saverrno; if (PerlIO_has_cntptr(IoIFP(io)) && PerlIO_canset_cnt(IoIFP(io))) { if (PerlIO_get_cnt(IoIFP(io)) < -1) PerlIO_set_cnt(IoIFP(io),-1); } if (PL_op->op_flags & OPf_SPECIAL) { /* not necessarily a real EOF yet? */ if (gv != PL_argvgv || !nextargv(gv)) /* get another fp handy */ return TRUE; } else return TRUE; /* normal fp, definitely end of file */ } return TRUE; } Off_t Perl_do_tell(pTHX_ GV *gv) { register IO *io = 0; register PerlIO *fp; if (gv && (io = GvIO(gv)) && (fp = IoIFP(io))) { #ifdef ULTRIX_STDIO_BOTCH if (PerlIO_eof(fp)) (void)PerlIO_seek(fp, 0L, 2); /* ultrix 1.2 workaround */ #endif return PerlIO_tell(fp); } if (ckWARN2(WARN_UNOPENED,WARN_CLOSED)) report_evil_fh(gv, io, PL_op->op_type); SETERRNO(EBADF,RMS_IFI); return (Off_t)-1; } bool Perl_do_seek(pTHX_ GV *gv, Off_t pos, int whence) { register IO *io = 0; register PerlIO *fp; if (gv && (io = GvIO(gv)) && (fp = IoIFP(io))) { #ifdef ULTRIX_STDIO_BOTCH if (PerlIO_eof(fp)) (void)PerlIO_seek(fp, 0L, 2); /* ultrix 1.2 workaround */ #endif return PerlIO_seek(fp, pos, whence) >= 0; } if (ckWARN2(WARN_UNOPENED,WARN_CLOSED)) report_evil_fh(gv, io, PL_op->op_type); SETERRNO(EBADF,RMS_IFI); return FALSE; } Off_t Perl_do_sysseek(pTHX_ GV *gv, Off_t pos, int whence) { register IO *io = 0; register PerlIO *fp; if (gv && (io = GvIO(gv)) && (fp = IoIFP(io))) return PerlLIO_lseek(PerlIO_fileno(fp), pos, whence); if (ckWARN2(WARN_UNOPENED,WARN_CLOSED)) report_evil_fh(gv, io, PL_op->op_type); SETERRNO(EBADF,RMS_IFI); return (Off_t)-1; } int Perl_mode_from_discipline(pTHX_ SV *discp) { int mode = O_BINARY; if (discp) { STRLEN len; char *s = SvPV(discp,len); while (*s) { if (*s == ':') { switch (s[1]) { case 'r': if (s[2] == 'a' && s[3] == 'w' && (!s[4] || s[4] == ':' || isSPACE(s[4]))) { mode = O_BINARY; s += 4; len -= 4; break; } /* FALL THROUGH */ case 'c': if (s[2] == 'r' && s[3] == 'l' && s[4] == 'f' && (!s[5] || s[5] == ':' || isSPACE(s[5]))) { mode = O_TEXT; s += 5; len -= 5; break; } /* FALL THROUGH */ default: goto fail_discipline; } } else if (isSPACE(*s)) { ++s; --len; } else { char *end; fail_discipline: end = strchr(s+1, ':'); if (!end) end = s+len; #ifndef PERLIO_LAYERS Perl_croak(aTHX_ "IO layers (like '%.*s') unavailable", end-s, s); #else len -= end-s; s = end; #endif } } } return mode; } int Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode) { /* The old body of this is now in non-LAYER part of perlio.c * This is a stub for any XS code which might have been calling it. */ char *name = ":raw"; #ifdef PERLIO_USING_CRLF if (!(mode & O_BINARY)) name = ":crlf"; #endif return PerlIO_binmode(aTHX_ fp, iotype, mode, name); } #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) I32 my_chsize(fd, length) I32 fd; /* file descriptor */ Off_t length; /* length to set file to */ { #ifdef F_FREESP /* code courtesy of William Kucharski */ #define HAS_CHSIZE struct flock fl; Stat_t filebuf; if (PerlLIO_fstat(fd, &filebuf) < 0) return -1; if (filebuf.st_size < length) { /* extend file length */ if ((PerlLIO_lseek(fd, (length - 1), 0)) < 0) return -1; /* write a "0" byte */ if ((PerlLIO_write(fd, "", 1)) != 1) return -1; } else { /* truncate length */ fl.l_whence = 0; fl.l_len = 0; fl.l_start = length; fl.l_type = F_WRLCK; /* write lock on file space */ /* * This relies on the UNDOCUMENTED F_FREESP argument to * fcntl(2), which truncates the file so that it ends at the * position indicated by fl.l_start. * * Will minor miracles never cease? */ if (fcntl(fd, F_FREESP, &fl) < 0) return -1; } return 0; #else dTHX; DIE(aTHX_ "truncate not implemented"); #endif /* F_FREESP */ } #endif /* !HAS_TRUNCATE && !HAS_CHSIZE */ bool Perl_do_print(pTHX_ register SV *sv, PerlIO *fp) { register char *tmps; STRLEN len; /* assuming fp is checked earlier */ if (!sv) return TRUE; if (PL_ofmt) { if (SvGMAGICAL(sv)) mg_get(sv); if (SvIOK(sv) && SvIVX(sv) != 0) { PerlIO_printf(fp, PL_ofmt, (NV)SvIVX(sv)); return !PerlIO_error(fp); } if ( (SvNOK(sv) && SvNVX(sv) != 0.0) || (looks_like_number(sv) && sv_2nv(sv) != 0.0) ) { PerlIO_printf(fp, PL_ofmt, SvNVX(sv)); return !PerlIO_error(fp); } } switch (SvTYPE(sv)) { case SVt_NULL: if (ckWARN(WARN_UNINITIALIZED)) report_uninit(); return TRUE; case SVt_IV: if (SvIOK(sv)) { if (SvGMAGICAL(sv)) mg_get(sv); if (SvIsUV(sv)) PerlIO_printf(fp, "%"UVuf, (UV)SvUVX(sv)); else PerlIO_printf(fp, "%"IVdf, (IV)SvIVX(sv)); return !PerlIO_error(fp); } /* FALL THROUGH */ default: if (PerlIO_isutf8(fp)) { if (!SvUTF8(sv)) sv_utf8_upgrade_flags(sv = sv_mortalcopy(sv), SV_GMAGIC|SV_UTF8_NO_ENCODING); } else if (DO_UTF8(sv)) { if (!sv_utf8_downgrade((sv = sv_mortalcopy(sv)), TRUE) && ckWARN_d(WARN_UTF8)) { Perl_warner(aTHX_ packWARN(WARN_UTF8), "Wide character in print"); } } tmps = SvPV(sv, len); break; } /* To detect whether the process is about to overstep its * filesize limit we would need getrlimit(). We could then * also transparently raise the limit with setrlimit() -- * but only until the system hard limit/the filesystem limit, * at which we would get EPERM. Note that when using buffered * io the write failure can be delayed until the flush/close. --jhi */ if (len && (PerlIO_write(fp,tmps,len) == 0)) return FALSE; return !PerlIO_error(fp); } I32 Perl_my_stat(pTHX) { dSP; IO *io; GV* gv; if (PL_op->op_flags & OPf_REF) { EXTEND(SP,1); gv = cGVOP_gv; do_fstat: io = GvIO(gv); if (io && IoIFP(io)) { PL_statgv = gv; sv_setpv(PL_statname,""); PL_laststype = OP_STAT; return (PL_laststatval = PerlLIO_fstat(PerlIO_fileno(IoIFP(io)), &PL_statcache)); } else { if (gv == PL_defgv) return PL_laststatval; if (ckWARN2(WARN_UNOPENED,WARN_CLOSED)) report_evil_fh(gv, io, PL_op->op_type); PL_statgv = Nullgv; sv_setpv(PL_statname,""); return (PL_laststatval = -1); } } else { SV* sv = POPs; char *s; STRLEN len; PUTBACK; if (SvTYPE(sv) == SVt_PVGV) { gv = (GV*)sv; goto do_fstat; } else if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVGV) { gv = (GV*)SvRV(sv); goto do_fstat; } s = SvPV(sv, len); PL_statgv = Nullgv; sv_setpvn(PL_statname, s, len); s = SvPVX(PL_statname); /* s now NUL-terminated */ PL_laststype = OP_STAT; PL_laststatval = PerlLIO_stat(s, &PL_statcache); if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && strchr(s, '\n')) Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "stat"); return PL_laststatval; } } I32 Perl_my_lstat(pTHX) { dSP; SV *sv; STRLEN n_a; if (PL_op->op_flags & OPf_REF) { EXTEND(SP,1); if (cGVOP_gv == PL_defgv) { if (PL_laststype != OP_LSTAT) Perl_croak(aTHX_ "The stat preceding -l _ wasn't an lstat"); return PL_laststatval; } if (ckWARN(WARN_IO)) { Perl_warner(aTHX_ packWARN(WARN_IO), "Use of -l on filehandle %s", GvENAME(cGVOP_gv)); return (PL_laststatval = -1); } } PL_laststype = OP_LSTAT; PL_statgv = Nullgv; sv = POPs; PUTBACK; if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVGV && ckWARN(WARN_IO)) { Perl_warner(aTHX_ packWARN(WARN_IO), "Use of -l on filehandle %s", GvENAME((GV*) SvRV(sv))); return (PL_laststatval = -1); } sv_setpv(PL_statname,SvPV(sv, n_a)); PL_laststatval = PerlLIO_lstat(SvPV(sv, n_a),&PL_statcache); if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && strchr(SvPV(sv, n_a), '\n')) Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "lstat"); return PL_laststatval; } #ifndef OS2 bool Perl_do_aexec(pTHX_ SV *really, register SV **mark, register SV **sp) { return do_aexec5(really, mark, sp, 0, 0); } #endif bool Perl_do_aexec5(pTHX_ SV *really, register SV **mark, register SV **sp, int fd, int do_report) { #ifdef MACOS_TRADITIONAL Perl_croak(aTHX_ "exec? I'm not *that* kind of operating system"); #else register char **a; char *tmps = Nullch; STRLEN n_a; if (sp > mark) { New(401,PL_Argv, sp - mark + 1, char*); a = PL_Argv; while (++mark <= sp) { if (*mark) *a++ = SvPVx(*mark, n_a); else *a++ = ""; } *a = Nullch; if (really) tmps = SvPV(really, n_a); if ((!really && *PL_Argv[0] != '/') || (really && *tmps != '/')) /* will execvp use PATH? */ TAINT_ENV(); /* testing IFS here is overkill, probably */ PERL_FPU_PRE_EXEC if (really && *tmps) PerlProc_execvp(tmps,EXEC_ARGV_CAST(PL_Argv)); else PerlProc_execvp(PL_Argv[0],EXEC_ARGV_CAST(PL_Argv)); PERL_FPU_POST_EXEC if (ckWARN(WARN_EXEC)) Perl_warner(aTHX_ packWARN(WARN_EXEC), "Can't exec \"%s\": %s", (really ? tmps : PL_Argv[0]), Strerror(errno)); if (do_report) { int e = errno; PerlLIO_write(fd, (void*)&e, sizeof(int)); PerlLIO_close(fd); } } do_execfree(); #endif return FALSE; } void Perl_do_execfree(pTHX) { if (PL_Argv) { Safefree(PL_Argv); PL_Argv = Null(char **); } if (PL_Cmd) { Safefree(PL_Cmd); PL_Cmd = Nullch; } } #if !defined(OS2) && !defined(WIN32) && !defined(DJGPP) && !defined(EPOC) && !defined(MACOS_TRADITIONAL) bool Perl_do_exec(pTHX_ char *cmd) { return do_exec3(cmd,0,0); } bool Perl_do_exec3(pTHX_ char *cmd, int fd, int do_report) { register char **a; register char *s; while (*cmd && isSPACE(*cmd)) cmd++; /* save an extra exec if possible */ #ifdef CSH { char flags[PERL_FLAGS_MAX]; if (strnEQ(cmd,PL_cshname,PL_cshlen) && strnEQ(cmd+PL_cshlen," -c",3)) { #ifdef HAS_STRLCPY strlcpy(flags, "-c", PERL_FLAGS_MAX); #else strcpy(flags,"-c"); #endif s = cmd+PL_cshlen+3; if (*s == 'f') { s++; #ifdef HAS_STRLCPY strlcat(flags, "f", PERL_FLAGS_MAX); #else strcat(flags,"f"); #endif } if (*s == ' ') s++; if (*s++ == '\'') { char *ncmd = s; while (*s) s++; if (s[-1] == '\n') *--s = '\0'; if (s[-1] == '\'') { *--s = '\0'; PERL_FPU_PRE_EXEC PerlProc_execl(PL_cshname,"csh", flags, ncmd, (char*)0); PERL_FPU_POST_EXEC *s = '\''; return FALSE; } } } } #endif /* CSH */ /* see if there are shell metacharacters in it */ if (*cmd == '.' && isSPACE(cmd[1])) goto doshell; if (strnEQ(cmd,"exec",4) && isSPACE(cmd[4])) goto doshell; for (s = cmd; *s && isALNUM(*s); s++) ; /* catch VAR=val gizmo */ if (*s == '=') goto doshell; for (s = cmd; *s; s++) { if (*s != ' ' && !isALPHA(*s) && strchr("$&*(){}[]'\";\\|?<>~`\n",*s)) { if (*s == '\n' && !s[1]) { *s = '\0'; break; } /* handle the 2>&1 construct at the end */ if (*s == '>' && s[1] == '&' && s[2] == '1' && s > cmd + 1 && s[-1] == '2' && isSPACE(s[-2]) && (!s[3] || isSPACE(s[3]))) { char *t = s + 3; while (*t && isSPACE(*t)) ++t; if (!*t && (PerlLIO_dup2(1,2) != -1)) { s[-2] = '\0'; break; } } doshell: PERL_FPU_PRE_EXEC PerlProc_execl(PL_sh_path, "sh", "-c", cmd, (char*)0); PERL_FPU_POST_EXEC return FALSE; } } New(402,PL_Argv, (s - cmd) / 2 + 2, char*); PL_Cmd = savepvn(cmd, s-cmd); a = PL_Argv; for (s = PL_Cmd; *s;) { while (*s && isSPACE(*s)) s++; if (*s) *(a++) = s; while (*s && !isSPACE(*s)) s++; if (*s) *s++ = '\0'; } *a = Nullch; if (PL_Argv[0]) { PERL_FPU_PRE_EXEC PerlProc_execvp(PL_Argv[0],PL_Argv); PERL_FPU_POST_EXEC if (errno == ENOEXEC) { /* for system V NIH syndrome */ do_execfree(); goto doshell; } { int e = errno; if (ckWARN(WARN_EXEC)) Perl_warner(aTHX_ packWARN(WARN_EXEC), "Can't exec \"%s\": %s", PL_Argv[0], Strerror(errno)); if (do_report) { PerlLIO_write(fd, (void*)&e, sizeof(int)); PerlLIO_close(fd); } } } do_execfree(); return FALSE; } #endif /* OS2 || WIN32 */ I32 Perl_apply(pTHX_ I32 type, register SV **mark, register SV **sp) { register I32 val; register I32 val2; register I32 tot = 0; char *what; char *s; SV **oldmark = mark; STRLEN n_a; #define APPLY_TAINT_PROPER() \ STMT_START { \ if (PL_tainted) { TAINT_PROPER(what); } \ } STMT_END /* This is a first heuristic; it doesn't catch tainting magic. */ if (PL_tainting) { while (++mark <= sp) { if (SvTAINTED(*mark)) { TAINT; break; } } mark = oldmark; } switch (type) { case OP_CHMOD: what = "chmod"; APPLY_TAINT_PROPER(); if (++mark <= sp) { val = SvIVx(*mark); APPLY_TAINT_PROPER(); tot = sp - mark; while (++mark <= sp) { char *name = SvPVx(*mark, n_a); APPLY_TAINT_PROPER(); if (PerlLIO_chmod(name, val)) tot--; } } break; #ifdef HAS_CHOWN case OP_CHOWN: what = "chown"; APPLY_TAINT_PROPER(); if (sp - mark > 2) { val = SvIVx(*++mark); val2 = SvIVx(*++mark); APPLY_TAINT_PROPER(); tot = sp - mark; while (++mark <= sp) { char *name = SvPVx(*mark, n_a); APPLY_TAINT_PROPER(); if (PerlLIO_chown(name, val, val2)) tot--; } } break; #endif /* XXX Should we make lchown() directly available from perl? For now, we'll let Configure test for HAS_LCHOWN, but do nothing in the core. --AD 5/1998 */ #ifdef HAS_KILL case OP_KILL: what = "kill"; APPLY_TAINT_PROPER(); if (mark == sp) break; s = SvPVx(*++mark, n_a); if (isALPHA(*s)) { if (*s == 'S' && s[1] == 'I' && s[2] == 'G') s += 3; if ((val = whichsig(s)) < 0) Perl_croak(aTHX_ "Unrecognized signal name \"%s\"",s); } else val = SvIVx(*mark); APPLY_TAINT_PROPER(); tot = sp - mark; #ifdef VMS /* kill() doesn't do process groups (job trees?) under VMS */ if (val < 0) val = -val; if (val == SIGKILL) { # include /* Use native sys$delprc() to insure that target process is * deleted; supervisor-mode images don't pay attention to * CRTL's emulation of Unix-style signals and kill() */ while (++mark <= sp) { I32 proc = SvIVx(*mark); register unsigned long int __vmssts; APPLY_TAINT_PROPER(); if (!((__vmssts = sys$delprc(&proc,0)) & 1)) { tot--; switch (__vmssts) { case SS$_NONEXPR: case SS$_NOSUCHNODE: SETERRNO(ESRCH,__vmssts); break; case SS$_NOPRIV: SETERRNO(EPERM,__vmssts); break; default: SETERRNO(EVMSERR,__vmssts); } } } break; } #endif if (val < 0) { val = -val; while (++mark <= sp) { I32 proc = SvIVx(*mark); APPLY_TAINT_PROPER(); #ifdef HAS_KILLPG if (PerlProc_killpg(proc,val)) /* BSD */ #else if (PerlProc_kill(-proc,val)) /* SYSV */ #endif tot--; } } else { while (++mark <= sp) { I32 proc = SvIVx(*mark); APPLY_TAINT_PROPER(); if (PerlProc_kill(proc, val)) tot--; } } break; #endif case OP_UNLINK: what = "unlink"; APPLY_TAINT_PROPER(); tot = sp - mark; while (++mark <= sp) { s = SvPVx(*mark, n_a); APPLY_TAINT_PROPER(); if (PL_euid || PL_unsafe) { if (UNLINK(s)) tot--; } else { /* don't let root wipe out directories without -U */ if (PerlLIO_lstat(s,&PL_statbuf) < 0 || S_ISDIR(PL_statbuf.st_mode)) tot--; else { if (UNLINK(s)) tot--; } } } break; #ifdef HAS_UTIME case OP_UTIME: what = "utime"; APPLY_TAINT_PROPER(); if (sp - mark > 2) { #if defined(I_UTIME) || defined(VMS) struct utimbuf utbuf; #else struct { Time_t actime; Time_t modtime; } utbuf; #endif SV* accessed = *++mark; SV* modified = *++mark; void * utbufp = &utbuf; /* Be like C, and if both times are undefined, let the C * library figure out what to do. This usually means * "current time". */ if ( accessed == &PL_sv_undef && modified == &PL_sv_undef ) utbufp = NULL; else { Zero(&utbuf, sizeof utbuf, char); #ifdef BIG_TIME utbuf.actime = (Time_t)SvNVx(accessed); /* time accessed */ utbuf.modtime = (Time_t)SvNVx(modified); /* time modified */ #else utbuf.actime = (Time_t)SvIVx(accessed); /* time accessed */ utbuf.modtime = (Time_t)SvIVx(modified); /* time modified */ #endif } APPLY_TAINT_PROPER(); tot = sp - mark; while (++mark <= sp) { char *name = SvPVx(*mark, n_a); APPLY_TAINT_PROPER(); if (PerlLIO_utime(name, utbufp)) tot--; } } else tot = 0; break; #endif } return tot; #undef APPLY_TAINT_PROPER } /* Do the permissions allow some operation? Assumes statcache already set. */ #ifndef VMS /* VMS' cando is in vms.c */ bool Perl_cando(pTHX_ Mode_t mode, Uid_t effective, register Stat_t *statbufp) /* Note: we use `effective' both for uids and gids. * Here we are betting on Uid_t being equal or wider than Gid_t. */ { #ifdef DOSISH /* [Comments and code from Len Reed] * MS-DOS "user" is similar to UNIX's "superuser," but can't write * to write-protected files. The execute permission bit is set * by the Miscrosoft C library stat() function for the following: * .exe files * .com files * .bat files * directories * All files and directories are readable. * Directories and special files, e.g. "CON", cannot be * write-protected. * [Comment by Tom Dinger -- a directory can have the write-protect * bit set in the file system, but DOS permits changes to * the directory anyway. In addition, all bets are off * here for networked software, such as Novell and * Sun's PC-NFS.] */ /* Atari stat() does pretty much the same thing. we set x_bit_set_in_stat * too so it will actually look into the files for magic numbers */ return (mode & statbufp->st_mode) ? TRUE : FALSE; #else /* ! DOSISH */ if ((effective ? PL_euid : PL_uid) == 0) { /* root is special */ if (mode == S_IXUSR) { if (statbufp->st_mode & 0111 || S_ISDIR(statbufp->st_mode)) return TRUE; } else return TRUE; /* root reads and writes anything */ return FALSE; } if (statbufp->st_uid == (effective ? PL_euid : PL_uid) ) { if (statbufp->st_mode & mode) return TRUE; /* ok as "user" */ } else if (ingroup(statbufp->st_gid,effective)) { if (statbufp->st_mode & mode >> 3) return TRUE; /* ok as "group" */ } else if (statbufp->st_mode & mode >> 6) return TRUE; /* ok as "other" */ return FALSE; #endif /* ! DOSISH */ } #endif /* ! VMS */ bool Perl_ingroup(pTHX_ Gid_t testgid, Uid_t effective) { #ifdef MACOS_TRADITIONAL /* This is simply not correct for AppleShare, but fix it yerself. */ return TRUE; #else if (testgid == (effective ? PL_egid : PL_gid)) return TRUE; #ifdef HAS_GETGROUPS #ifndef NGROUPS #define NGROUPS 32 #endif { Groups_t gary[NGROUPS]; I32 anum; anum = getgroups(NGROUPS,gary); while (--anum >= 0) if (gary[anum] == testgid) return TRUE; } #endif return FALSE; #endif } #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) I32 Perl_do_ipcget(pTHX_ I32 optype, SV **mark, SV **sp) { key_t key; I32 n, flags; key = (key_t)SvNVx(*++mark); n = (optype == OP_MSGGET) ? 0 : SvIVx(*++mark); flags = SvIVx(*++mark); SETERRNO(0,0); switch (optype) { #ifdef HAS_MSG case OP_MSGGET: return msgget(key, flags); #endif #ifdef HAS_SEM case OP_SEMGET: return semget(key, n, flags); #endif #ifdef HAS_SHM case OP_SHMGET: return shmget(key, n, flags); #endif #if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM) default: Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); #endif } return -1; /* should never happen */ } I32 Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp) { SV *astr; char *a; I32 id, n, cmd, infosize, getinfo; I32 ret = -1; id = SvIVx(*++mark); n = (optype == OP_SEMCTL) ? SvIVx(*++mark) : 0; cmd = SvIVx(*++mark); astr = *++mark; infosize = 0; getinfo = (cmd == IPC_STAT); switch (optype) { #ifdef HAS_MSG case OP_MSGCTL: if (cmd == IPC_STAT || cmd == IPC_SET) infosize = sizeof(struct msqid_ds); break; #endif #ifdef HAS_SHM case OP_SHMCTL: if (cmd == IPC_STAT || cmd == IPC_SET) infosize = sizeof(struct shmid_ds); break; #endif #ifdef HAS_SEM case OP_SEMCTL: #ifdef Semctl if (cmd == IPC_STAT || cmd == IPC_SET) infosize = sizeof(struct semid_ds); else if (cmd == GETALL || cmd == SETALL) { struct semid_ds semds; union semun semun; #ifdef EXTRA_F_IN_SEMUN_BUF semun.buff = &semds; #else semun.buf = &semds; #endif getinfo = (cmd == GETALL); if (Semctl(id, 0, IPC_STAT, semun) == -1) return -1; infosize = semds.sem_nsems * sizeof(short); /* "short" is technically wrong but much more portable than guessing about u_?short(_t)? */ } #else Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); #endif break; #endif #if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM) default: Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); #endif } if (infosize) { STRLEN len; if (getinfo) { SvPV_force(astr, len); a = SvGROW(astr, infosize+1); } else { a = SvPV(astr, len); if (len != infosize) Perl_croak(aTHX_ "Bad arg length for %s, is %lu, should be %ld", PL_op_desc[optype], (unsigned long)len, (long)infosize); } } else { IV i = SvIV(astr); a = INT2PTR(char *,i); /* ouch */ } SETERRNO(0,0); switch (optype) { #ifdef HAS_MSG case OP_MSGCTL: ret = msgctl(id, cmd, (struct msqid_ds *)a); break; #endif #ifdef HAS_SEM case OP_SEMCTL: { #ifdef Semctl union semun unsemds; #ifdef EXTRA_F_IN_SEMUN_BUF unsemds.buff = (struct semid_ds *)a; #else unsemds.buf = (struct semid_ds *)a; #endif ret = Semctl(id, n, cmd, unsemds); #else Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); #endif } break; #endif #ifdef HAS_SHM case OP_SHMCTL: ret = shmctl(id, cmd, (struct shmid_ds *)a); break; #endif } if (getinfo && ret >= 0) { SvCUR_set(astr, infosize); *SvEND(astr) = '\0'; SvSETMAGIC(astr); } return ret; } I32 Perl_do_msgsnd(pTHX_ SV **mark, SV **sp) { #ifdef HAS_MSG SV *mstr; char *mbuf; I32 id, msize, flags; STRLEN len; id = SvIVx(*++mark); mstr = *++mark; flags = SvIVx(*++mark); mbuf = SvPV(mstr, len); if ((msize = len - sizeof(long)) < 0) Perl_croak(aTHX_ "Arg too short for msgsnd"); SETERRNO(0,0); return msgsnd(id, (struct msgbuf *)mbuf, msize, flags); #else Perl_croak(aTHX_ "msgsnd not implemented"); #endif } I32 Perl_do_msgrcv(pTHX_ SV **mark, SV **sp) { #ifdef HAS_MSG SV *mstr; char *mbuf; long mtype; I32 id, msize, flags, ret; STRLEN len; id = SvIVx(*++mark); mstr = *++mark; /* suppress warning when reading into undef var --jhi */ if (! SvOK(mstr)) sv_setpvn(mstr, "", 0); msize = SvIVx(*++mark); mtype = (long)SvIVx(*++mark); flags = SvIVx(*++mark); SvPV_force(mstr, len); mbuf = SvGROW(mstr, sizeof(long)+msize+1); SETERRNO(0,0); ret = msgrcv(id, (struct msgbuf *)mbuf, msize, mtype, flags); if (ret >= 0) { SvCUR_set(mstr, sizeof(long)+ret); *SvEND(mstr) = '\0'; #ifndef INCOMPLETE_TAINTS /* who knows who has been playing with this message? */ SvTAINTED_on(mstr); #endif } return ret; #else Perl_croak(aTHX_ "msgrcv not implemented"); #endif } I32 Perl_do_semop(pTHX_ SV **mark, SV **sp) { #ifdef HAS_SEM SV *opstr; char *opbuf; I32 id; STRLEN opsize; id = SvIVx(*++mark); opstr = *++mark; opbuf = SvPV(opstr, opsize); if (opsize < 3 * SHORTSIZE || (opsize % (3 * SHORTSIZE))) { SETERRNO(EINVAL,LIB_INVARG); return -1; } SETERRNO(0,0); /* We can't assume that sizeof(struct sembuf) == 3 * sizeof(short). */ { int nsops = opsize / (3 * sizeof (short)); int i = nsops; short *ops = (short *) opbuf; short *o = ops; struct sembuf *temps, *t; I32 result; New (0, temps, nsops, struct sembuf); t = temps; while (i--) { t->sem_num = *o++; t->sem_op = *o++; t->sem_flg = *o++; t++; } result = semop(id, temps, nsops); t = temps; o = ops; i = nsops; while (i--) { *o++ = t->sem_num; *o++ = t->sem_op; *o++ = t->sem_flg; t++; } Safefree(temps); return result; } #else Perl_croak(aTHX_ "semop not implemented"); #endif } I32 Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp) { #ifdef HAS_SHM SV *mstr; char *mbuf, *shm; I32 id, mpos, msize; STRLEN len; struct shmid_ds shmds; id = SvIVx(*++mark); mstr = *++mark; mpos = SvIVx(*++mark); msize = SvIVx(*++mark); SETERRNO(0,0); if (shmctl(id, IPC_STAT, &shmds) == -1) return -1; if (mpos < 0 || msize < 0 || mpos + msize > shmds.shm_segsz) { SETERRNO(EFAULT,SS_ACCVIO); /* can't do as caller requested */ return -1; } shm = (char *)shmat(id, (char*)NULL, (optype == OP_SHMREAD) ? SHM_RDONLY : 0); if (shm == (char *)-1) /* I hate System V IPC, I really do */ return -1; if (optype == OP_SHMREAD) { /* suppress warning when reading into undef var (tchrist 3/Mar/00) */ if (! SvOK(mstr)) sv_setpvn(mstr, "", 0); SvPV_force(mstr, len); mbuf = SvGROW(mstr, msize+1); Copy(shm + mpos, mbuf, msize, char); SvCUR_set(mstr, msize); *SvEND(mstr) = '\0'; SvSETMAGIC(mstr); #ifndef INCOMPLETE_TAINTS /* who knows who has been playing with this shared memory? */ SvTAINTED_on(mstr); #endif } else { I32 n; mbuf = SvPV(mstr, len); if ((n = len) > msize) n = msize; Copy(mbuf, shm + mpos, n, char); if (n < msize) memzero(shm + mpos + n, msize - n); } return shmdt(shm); #else Perl_croak(aTHX_ "shm I/O not implemented"); #endif } #endif /* SYSV IPC */ /* =head1 IO Functions =for apidoc start_glob Function called by C to spawn a glob (or do the glob inside perl on VMS). This code used to be inline, but now perl uses C this glob starter is only used by miniperl during the build process. Moving it away shrinks pp_hot.c; shrinking pp_hot.c helps speed perl up. =cut */ PerlIO * Perl_start_glob (pTHX_ SV *tmpglob, IO *io) { SV *tmpcmd = NEWSV(55, 0); PerlIO *fp; ENTER; SAVEFREESV(tmpcmd); #ifdef VMS /* expand the wildcards right here, rather than opening a pipe, */ /* since spawning off a process is a real performance hit */ { #include #include #include #include char rslt[NAM$C_MAXRSS+1+sizeof(unsigned short int)] = {'\0','\0'}; char vmsspec[NAM$C_MAXRSS+1]; char *rstr = rslt + sizeof(unsigned short int), *begin, *end, *cp; $DESCRIPTOR(dfltdsc,"SYS$DISK:[]*.*;"); PerlIO *tmpfp; STRLEN i; struct dsc$descriptor_s wilddsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0}; struct dsc$descriptor_vs rsdsc = {sizeof rslt, DSC$K_DTYPE_VT, DSC$K_CLASS_VS, rslt}; unsigned long int cxt = 0, sts = 0, ok = 1, hasdir = 0, hasver = 0, isunix = 0; /* We could find out if there's an explicit dev/dir or version by peeking into lib$find_file's internal context at ((struct NAM *)((struct FAB *)cxt)->fab$l_nam)->nam$l_fnb but that's unsupported, so I don't want to do it now and have it bite someone in the future. */ cp = SvPV(tmpglob,i); for (; i; i--) { if (cp[i] == ';') hasver = 1; if (cp[i] == '.') { if (sts) hasver = 1; else sts = 1; } if (cp[i] == '/') { hasdir = isunix = 1; break; } if (cp[i] == ']' || cp[i] == '>' || cp[i] == ':') { hasdir = 1; break; } } if ((tmpfp = PerlIO_tmpfile()) != NULL) { Stat_t st; if (!PerlLIO_stat(SvPVX(tmpglob),&st) && S_ISDIR(st.st_mode)) ok = ((wilddsc.dsc$a_pointer = tovmspath(SvPVX(tmpglob),vmsspec)) != NULL); else ok = ((wilddsc.dsc$a_pointer = tovmsspec(SvPVX(tmpglob),vmsspec)) != NULL); if (ok) wilddsc.dsc$w_length = (unsigned short int) strlen(wilddsc.dsc$a_pointer); for (cp=wilddsc.dsc$a_pointer; ok && cp && *cp; cp++) if (*cp == '?') *cp = '%'; /* VMS style single-char wildcard */ while (ok && ((sts = lib$find_file(&wilddsc,&rsdsc,&cxt, &dfltdsc,NULL,NULL,NULL))&1)) { /* with varying string, 1st word of buffer contains result length */ end = rstr + *((unsigned short int*)rslt); if (!hasver) while (*end != ';' && end > rstr) end--; *(end++) = '\n'; *end = '\0'; for (cp = rstr; *cp; cp++) *cp = _tolower(*cp); if (hasdir) { if (isunix) trim_unixpath(rstr,SvPVX(tmpglob),1); begin = rstr; } else { begin = end; while (*(--begin) != ']' && *begin != '>') ; ++begin; } ok = (PerlIO_puts(tmpfp,begin) != EOF); } if (cxt) (void)lib$find_file_end(&cxt); if (ok && sts != RMS$_NMF && sts != RMS$_DNF && sts != RMS_FNF) ok = 0; if (!ok) { if (!(sts & 1)) { SETERRNO((sts == RMS$_SYN ? EINVAL : EVMSERR),sts); } PerlIO_close(tmpfp); fp = NULL; } else { PerlIO_rewind(tmpfp); IoTYPE(io) = IoTYPE_RDONLY; IoIFP(io) = fp = tmpfp; IoFLAGS(io) &= ~IOf_UNTAINT; /* maybe redundant */ } } } #else /* !VMS */ #ifdef MACOS_TRADITIONAL sv_setpv(tmpcmd, "glob "); sv_catsv(tmpcmd, tmpglob); sv_catpv(tmpcmd, " |"); #else #ifdef DOSISH #ifdef OS2 sv_setpv(tmpcmd, "for a in "); sv_catsv(tmpcmd, tmpglob); sv_catpv(tmpcmd, "; do echo \"$a\\0\\c\"; done |"); #else #ifdef DJGPP sv_setpv(tmpcmd, "/dev/dosglob/"); /* File System Extension */ sv_catsv(tmpcmd, tmpglob); #else sv_setpv(tmpcmd, "perlglob "); sv_catsv(tmpcmd, tmpglob); sv_catpv(tmpcmd, " |"); #endif /* !DJGPP */ #endif /* !OS2 */ #else /* !DOSISH */ #if defined(CSH) sv_setpvn(tmpcmd, PL_cshname, PL_cshlen); sv_catpv(tmpcmd, " -cf 'set nonomatch; glob "); sv_catsv(tmpcmd, tmpglob); sv_catpv(tmpcmd, "' 2>/dev/null |"); #else sv_setpv(tmpcmd, "echo "); sv_catsv(tmpcmd, tmpglob); #if 'z' - 'a' == 25 sv_catpv(tmpcmd, "|tr -s ' \t\f\r' '\\012\\012\\012\\012'|"); #else sv_catpv(tmpcmd, "|tr -s ' \t\f\r' '\\n\\n\\n\\n'|"); #endif #endif /* !CSH */ #endif /* !DOSISH */ #endif /* MACOS_TRADITIONAL */ (void)do_open(PL_last_in_gv, SvPVX(tmpcmd), SvCUR(tmpcmd), FALSE, O_RDONLY, 0, Nullfp); fp = IoIFP(io); #endif /* !VMS */ LEAVE; return fp; } ================================================ FILE: tests/perlbench/doop.c ================================================ /* doop.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * "'So that was the job I felt I had to do when I started,' thought Sam." */ /* This file contains some common functions needed to carry out certain * ops. For example both pp_schomp() and pp_chomp() - scalar and array * chomp operations - call the function do_chomp() found in this file. */ #include "EXTERN.h" #define PERL_IN_DOOP_C #include "perl.h" #ifndef PERL_MICRO #include #endif STATIC I32 S_do_trans_simple(pTHX_ SV *sv) { U8 *s; U8 *d; U8 *send; U8 *dstart; I32 matches = 0; I32 grows = PL_op->op_private & OPpTRANS_GROWS; STRLEN len; short *tbl; I32 ch; tbl = (short*)cPVOP->op_pv; if (!tbl) Perl_croak(aTHX_ "panic: do_trans_simple line %d",__LINE__); s = (U8*)SvPV(sv, len); send = s + len; /* First, take care of non-UTF-8 input strings, because they're easy */ if (!SvUTF8(sv)) { while (s < send) { if ((ch = tbl[*s]) >= 0) { matches++; *s++ = (U8)ch; } else s++; } SvSETMAGIC(sv); return matches; } /* Allow for expansion: $_="a".chr(400); tr/a/\xFE/, FE needs encoding */ if (grows) New(0, d, len*2+1, U8); else d = s; dstart = d; while (s < send) { STRLEN ulen; UV c; /* Need to check this, otherwise 128..255 won't match */ c = utf8n_to_uvchr(s, send - s, &ulen, 0); if (c < 0x100 && (ch = tbl[c]) >= 0) { matches++; d = uvchr_to_utf8(d, ch); s += ulen; } else { /* No match -> copy */ Move(s, d, ulen, U8); d += ulen; s += ulen; } } if (grows) { sv_setpvn(sv, (char*)dstart, d - dstart); Safefree(dstart); } else { *d = '\0'; SvCUR_set(sv, d - dstart); } SvUTF8_on(sv); SvSETMAGIC(sv); return matches; } STATIC I32 S_do_trans_count(pTHX_ SV *sv) { U8 *s; U8 *send; I32 matches = 0; STRLEN len; short *tbl; I32 complement = PL_op->op_private & OPpTRANS_COMPLEMENT; tbl = (short*)cPVOP->op_pv; if (!tbl) Perl_croak(aTHX_ "panic: do_trans_count line %d",__LINE__); s = (U8*)SvPV(sv, len); send = s + len; if (!SvUTF8(sv)) while (s < send) { if (tbl[*s++] >= 0) matches++; } else while (s < send) { UV c; STRLEN ulen; c = utf8n_to_uvchr(s, send - s, &ulen, 0); if (c < 0x100) { if (tbl[c] >= 0) matches++; } else if (complement) matches++; s += ulen; } return matches; } STATIC I32 S_do_trans_complex(pTHX_ SV *sv) { U8 *s; U8 *send; U8 *d; U8 *dstart; I32 isutf8; I32 matches = 0; I32 grows = PL_op->op_private & OPpTRANS_GROWS; I32 complement = PL_op->op_private & OPpTRANS_COMPLEMENT; I32 del = PL_op->op_private & OPpTRANS_DELETE; STRLEN len, rlen = 0; short *tbl; I32 ch; tbl = (short*)cPVOP->op_pv; if (!tbl) Perl_croak(aTHX_ "panic: do_trans_complex line %d",__LINE__); s = (U8*)SvPV(sv, len); isutf8 = SvUTF8(sv); send = s + len; if (!isutf8) { dstart = d = s; if (PL_op->op_private & OPpTRANS_SQUASH) { U8* p = send; while (s < send) { if ((ch = tbl[*s]) >= 0) { *d = (U8)ch; matches++; if (p != d - 1 || *p != *d) p = d++; } else if (ch == -1) /* -1 is unmapped character */ *d++ = *s; else if (ch == -2) /* -2 is delete character */ matches++; s++; } } else { while (s < send) { if ((ch = tbl[*s]) >= 0) { matches++; *d++ = (U8)ch; } else if (ch == -1) /* -1 is unmapped character */ *d++ = *s; else if (ch == -2) /* -2 is delete character */ matches++; s++; } } *d = '\0'; SvCUR_set(sv, d - dstart); } else { /* isutf8 */ if (grows) New(0, d, len*2+1, U8); else d = s; dstart = d; if (complement && !del) rlen = tbl[0x100]; #ifdef MACOS_TRADITIONAL #define comp CoMP /* "comp" is a keyword in some compilers ... */ #endif if (PL_op->op_private & OPpTRANS_SQUASH) { UV pch = 0xfeedface; while (s < send) { STRLEN len; UV comp = utf8_to_uvchr(s, &len); if (comp > 0xff) { if (!complement) { Copy(s, d, len, U8); d += len; } else { matches++; if (!del) { ch = (rlen == 0) ? comp : (comp - 0x100 < rlen) ? tbl[comp+1] : tbl[0x100+rlen]; if ((UV)ch != pch) { d = uvchr_to_utf8(d, ch); pch = (UV)ch; } s += len; continue; } } } else if ((ch = tbl[comp]) >= 0) { matches++; if ((UV)ch != pch) { d = uvchr_to_utf8(d, ch); pch = (UV)ch; } s += len; continue; } else if (ch == -1) { /* -1 is unmapped character */ Copy(s, d, len, U8); d += len; } else if (ch == -2) /* -2 is delete character */ matches++; s += len; pch = 0xfeedface; } } else { while (s < send) { STRLEN len; UV comp = utf8_to_uvchr(s, &len); if (comp > 0xff) { if (!complement) { Move(s, d, len, U8); d += len; } else { matches++; if (!del) { if (comp - 0x100 < rlen) d = uvchr_to_utf8(d, tbl[comp+1]); else d = uvchr_to_utf8(d, tbl[0x100+rlen]); } } } else if ((ch = tbl[comp]) >= 0) { d = uvchr_to_utf8(d, ch); matches++; } else if (ch == -1) { /* -1 is unmapped character */ Copy(s, d, len, U8); d += len; } else if (ch == -2) /* -2 is delete character */ matches++; s += len; } } if (grows) { sv_setpvn(sv, (char*)dstart, d - dstart); Safefree(dstart); } else { *d = '\0'; SvCUR_set(sv, d - dstart); } SvUTF8_on(sv); } SvSETMAGIC(sv); return matches; } STATIC I32 S_do_trans_simple_utf8(pTHX_ SV *sv) { U8 *s; U8 *send; U8 *d; U8 *start; U8 *dstart, *dend; I32 matches = 0; I32 grows = PL_op->op_private & OPpTRANS_GROWS; STRLEN len; SV* rv = (SV*)cSVOP->op_sv; HV* hv = (HV*)SvRV(rv); SV** svp = hv_fetch(hv, "NONE", 4, FALSE); UV none = svp ? SvUV(*svp) : 0x7fffffff; UV extra = none + 1; UV final = 0; UV uv; I32 isutf8; U8 hibit = 0; s = (U8*)SvPV(sv, len); isutf8 = SvUTF8(sv); if (!isutf8) { U8 *t = s, *e = s + len; while (t < e) { U8 ch = *t++; if ((hibit = !NATIVE_IS_INVARIANT(ch))) break; } if (hibit) s = bytes_to_utf8(s, &len); } send = s + len; start = s; svp = hv_fetch(hv, "FINAL", 5, FALSE); if (svp) final = SvUV(*svp); if (grows) { /* d needs to be bigger than s, in case e.g. upgrading is required */ New(0, d, len * 3 + UTF8_MAXBYTES, U8); dend = d + len * 3; dstart = d; } else { dstart = d = s; dend = d + len; } while (s < send) { if ((uv = swash_fetch(rv, s, TRUE)) < none) { s += UTF8SKIP(s); matches++; d = uvuni_to_utf8(d, uv); } else if (uv == none) { int i = UTF8SKIP(s); Move(s, d, i, U8); d += i; s += i; } else if (uv == extra) { int i = UTF8SKIP(s); s += i; matches++; d = uvuni_to_utf8(d, final); } else s += UTF8SKIP(s); if (d > dend) { STRLEN clen = d - dstart; STRLEN nlen = dend - dstart + len + UTF8_MAXBYTES; if (!grows) Perl_croak(aTHX_ "panic: do_trans_simple_utf8 line %d",__LINE__); Renew(dstart, nlen + UTF8_MAXBYTES, U8); d = dstart + clen; dend = dstart + nlen; } } if (grows || hibit) { sv_setpvn(sv, (char*)dstart, d - dstart); Safefree(dstart); if (grows && hibit) Safefree(start); } else { *d = '\0'; SvCUR_set(sv, d - dstart); } SvSETMAGIC(sv); SvUTF8_on(sv); return matches; } STATIC I32 S_do_trans_count_utf8(pTHX_ SV *sv) { U8 *s; U8 *start = 0, *send; I32 matches = 0; STRLEN len; SV* rv = (SV*)cSVOP->op_sv; HV* hv = (HV*)SvRV(rv); SV** svp = hv_fetch(hv, "NONE", 4, FALSE); UV none = svp ? SvUV(*svp) : 0x7fffffff; UV extra = none + 1; UV uv; U8 hibit = 0; s = (U8*)SvPV(sv, len); if (!SvUTF8(sv)) { U8 *t = s, *e = s + len; while (t < e) { U8 ch = *t++; if ((hibit = !NATIVE_IS_INVARIANT(ch))) break; } if (hibit) start = s = bytes_to_utf8(s, &len); } send = s + len; while (s < send) { if ((uv = swash_fetch(rv, s, TRUE)) < none || uv == extra) matches++; s += UTF8SKIP(s); } if (hibit) Safefree(start); return matches; } STATIC I32 S_do_trans_complex_utf8(pTHX_ SV *sv) { U8 *s; U8 *start, *send; U8 *d; I32 matches = 0; I32 squash = PL_op->op_private & OPpTRANS_SQUASH; I32 del = PL_op->op_private & OPpTRANS_DELETE; I32 grows = PL_op->op_private & OPpTRANS_GROWS; SV* rv = (SV*)cSVOP->op_sv; HV* hv = (HV*)SvRV(rv); SV** svp = hv_fetch(hv, "NONE", 4, FALSE); UV none = svp ? SvUV(*svp) : 0x7fffffff; UV extra = none + 1; UV final = 0; bool havefinal = FALSE; UV uv; STRLEN len; U8 *dstart, *dend; I32 isutf8; U8 hibit = 0; s = (U8*)SvPV(sv, len); isutf8 = SvUTF8(sv); if (!isutf8) { U8 *t = s, *e = s + len; while (t < e) { U8 ch = *t++; if ((hibit = !NATIVE_IS_INVARIANT(ch))) break; } if (hibit) s = bytes_to_utf8(s, &len); } send = s + len; start = s; svp = hv_fetch(hv, "FINAL", 5, FALSE); if (svp) { final = SvUV(*svp); havefinal = TRUE; } if (grows) { /* d needs to be bigger than s, in case e.g. upgrading is required */ New(0, d, len * 3 + UTF8_MAXBYTES, U8); dend = d + len * 3; dstart = d; } else { dstart = d = s; dend = d + len; } if (squash) { UV puv = 0xfeedface; while (s < send) { uv = swash_fetch(rv, s, TRUE); if (d > dend) { STRLEN clen = d - dstart; STRLEN nlen = dend - dstart + len + UTF8_MAXBYTES; if (!grows) Perl_croak(aTHX_ "panic: do_trans_complex_utf8 line %d",__LINE__); Renew(dstart, nlen + UTF8_MAXBYTES, U8); d = dstart + clen; dend = dstart + nlen; } if (uv < none) { matches++; s += UTF8SKIP(s); if (uv != puv) { d = uvuni_to_utf8(d, uv); puv = uv; } continue; } else if (uv == none) { /* "none" is unmapped character */ int i = UTF8SKIP(s); Move(s, d, i, U8); d += i; s += i; puv = 0xfeedface; continue; } else if (uv == extra && !del) { matches++; if (havefinal) { s += UTF8SKIP(s); if (puv != final) { d = uvuni_to_utf8(d, final); puv = final; } } else { STRLEN len; uv = utf8_to_uvuni(s, &len); if (uv != puv) { Move(s, d, len, U8); d += len; puv = uv; } s += len; } continue; } matches++; /* "none+1" is delete character */ s += UTF8SKIP(s); } } else { while (s < send) { uv = swash_fetch(rv, s, TRUE); if (d > dend) { STRLEN clen = d - dstart; STRLEN nlen = dend - dstart + len + UTF8_MAXBYTES; if (!grows) Perl_croak(aTHX_ "panic: do_trans_complex_utf8 line %d",__LINE__); Renew(dstart, nlen + UTF8_MAXBYTES, U8); d = dstart + clen; dend = dstart + nlen; } if (uv < none) { matches++; s += UTF8SKIP(s); d = uvuni_to_utf8(d, uv); continue; } else if (uv == none) { /* "none" is unmapped character */ int i = UTF8SKIP(s); Move(s, d, i, U8); d += i; s += i; continue; } else if (uv == extra && !del) { matches++; s += UTF8SKIP(s); d = uvuni_to_utf8(d, final); continue; } matches++; /* "none+1" is delete character */ s += UTF8SKIP(s); } } if (grows || hibit) { sv_setpvn(sv, (char*)dstart, d - dstart); Safefree(dstart); if (grows && hibit) Safefree(start); } else { *d = '\0'; SvCUR_set(sv, d - dstart); } SvUTF8_on(sv); SvSETMAGIC(sv); return matches; } I32 Perl_do_trans(pTHX_ SV *sv) { STRLEN len; I32 hasutf = (PL_op->op_private & (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)); if (SvREADONLY(sv)) { if (SvFAKE(sv)) sv_force_normal(sv); if (SvREADONLY(sv) && !(PL_op->op_private & OPpTRANS_IDENTICAL)) Perl_croak(aTHX_ PL_no_modify); } (void)SvPV(sv, len); if (!len) return 0; if (!(PL_op->op_private & OPpTRANS_IDENTICAL)) { if (!SvPOKp(sv)) (void)SvPV_force(sv, len); (void)SvPOK_only_UTF8(sv); } DEBUG_t( Perl_deb(aTHX_ "2.TBL\n")); switch (PL_op->op_private & ~hasutf & ( OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL| OPpTRANS_SQUASH|OPpTRANS_DELETE|OPpTRANS_COMPLEMENT)) { case 0: if (hasutf) return do_trans_simple_utf8(sv); else return do_trans_simple(sv); case OPpTRANS_IDENTICAL: case OPpTRANS_IDENTICAL|OPpTRANS_COMPLEMENT: if (hasutf) return do_trans_count_utf8(sv); else return do_trans_count(sv); default: if (hasutf) return do_trans_complex_utf8(sv); else return do_trans_complex(sv); } } void Perl_do_join(pTHX_ register SV *sv, SV *del, register SV **mark, register SV **sp) { SV **oldmark = mark; register I32 items = sp - mark; register STRLEN len; STRLEN delimlen; STRLEN tmplen; (void) SvPV(del, delimlen); /* stringify and get the delimlen */ /* SvCUR assumes it's SvPOK() and woe betide you if it's not. */ mark++; len = (items > 0 ? (delimlen * (items - 1) ) : 0); (void)SvUPGRADE(sv, SVt_PV); if (SvLEN(sv) < len + items) { /* current length is way too short */ while (items-- > 0) { if (*mark && !SvGAMAGIC(*mark) && SvOK(*mark)) { SvPV(*mark, tmplen); len += tmplen; } mark++; } SvGROW(sv, len + 1); /* so try to pre-extend */ mark = oldmark; items = sp - mark; ++mark; } sv_setpvn(sv, "", 0); /* sv_setpv retains old UTF8ness [perl #24846] */ SvUTF8_off(sv); if (PL_tainting && SvMAGICAL(sv)) SvTAINTED_off(sv); if (items-- > 0) { if (*mark) sv_catsv(sv, *mark); mark++; } if (delimlen) { for (; items > 0; items--,mark++) { sv_catsv(sv,del); sv_catsv(sv,*mark); } } else { for (; items > 0; items--,mark++) sv_catsv(sv,*mark); } SvSETMAGIC(sv); } void Perl_do_sprintf(pTHX_ SV *sv, I32 len, SV **sarg) { STRLEN patlen; char *pat = SvPV(*sarg, patlen); bool do_taint = FALSE; SvUTF8_off(sv); if (DO_UTF8(*sarg)) SvUTF8_on(sv); sv_vsetpvfn(sv, pat, patlen, Null(va_list*), sarg + 1, len - 1, &do_taint); SvSETMAGIC(sv); if (do_taint) SvTAINTED_on(sv); } /* currently converts input to bytes if possible, but doesn't sweat failure */ UV Perl_do_vecget(pTHX_ SV *sv, I32 offset, I32 size) { STRLEN srclen, len; unsigned char *s = (unsigned char *) SvPV(sv, srclen); UV retnum = 0; if (offset < 0) return retnum; if (size < 1 || (size & (size-1))) /* size < 1 or not a power of two */ Perl_croak(aTHX_ "Illegal number of bits in vec"); if (SvUTF8(sv)) (void) Perl_sv_utf8_downgrade(aTHX_ sv, TRUE); offset *= size; /* turn into bit offset */ len = (offset + size + 7) / 8; /* required number of bytes */ if (len > srclen) { if (size <= 8) retnum = 0; else { offset >>= 3; /* turn into byte offset */ if (size == 16) { if ((STRLEN)offset >= srclen) retnum = 0; else retnum = (UV) s[offset] << 8; } else if (size == 32) { if ((STRLEN)offset >= srclen) retnum = 0; else if ((STRLEN)(offset + 1) >= srclen) retnum = ((UV) s[offset ] << 24); else if ((STRLEN)(offset + 2) >= srclen) retnum = ((UV) s[offset ] << 24) + ((UV) s[offset + 1] << 16); else retnum = ((UV) s[offset ] << 24) + ((UV) s[offset + 1] << 16) + ( s[offset + 2] << 8); } #ifdef UV_IS_QUAD else if (size == 64) { if (ckWARN(WARN_PORTABLE)) Perl_warner(aTHX_ packWARN(WARN_PORTABLE), "Bit vector size > 32 non-portable"); if (offset >= srclen) retnum = 0; else if (offset + 1 >= srclen) retnum = (UV) s[offset ] << 56; else if (offset + 2 >= srclen) retnum = ((UV) s[offset ] << 56) + ((UV) s[offset + 1] << 48); else if (offset + 3 >= srclen) retnum = ((UV) s[offset ] << 56) + ((UV) s[offset + 1] << 48) + ((UV) s[offset + 2] << 40); else if (offset + 4 >= srclen) retnum = ((UV) s[offset ] << 56) + ((UV) s[offset + 1] << 48) + ((UV) s[offset + 2] << 40) + ((UV) s[offset + 3] << 32); else if (offset + 5 >= srclen) retnum = ((UV) s[offset ] << 56) + ((UV) s[offset + 1] << 48) + ((UV) s[offset + 2] << 40) + ((UV) s[offset + 3] << 32) + ( s[offset + 4] << 24); else if (offset + 6 >= srclen) retnum = ((UV) s[offset ] << 56) + ((UV) s[offset + 1] << 48) + ((UV) s[offset + 2] << 40) + ((UV) s[offset + 3] << 32) + ((UV) s[offset + 4] << 24) + ((UV) s[offset + 5] << 16); else retnum = ((UV) s[offset ] << 56) + ((UV) s[offset + 1] << 48) + ((UV) s[offset + 2] << 40) + ((UV) s[offset + 3] << 32) + ((UV) s[offset + 4] << 24) + ((UV) s[offset + 5] << 16) + ( s[offset + 6] << 8); } #endif } } else if (size < 8) retnum = (s[offset >> 3] >> (offset & 7)) & ((1 << size) - 1); else { offset >>= 3; /* turn into byte offset */ if (size == 8) retnum = s[offset]; else if (size == 16) retnum = ((UV) s[offset] << 8) + s[offset + 1]; else if (size == 32) retnum = ((UV) s[offset ] << 24) + ((UV) s[offset + 1] << 16) + ( s[offset + 2] << 8) + s[offset + 3]; #ifdef UV_IS_QUAD else if (size == 64) { if (ckWARN(WARN_PORTABLE)) Perl_warner(aTHX_ packWARN(WARN_PORTABLE), "Bit vector size > 32 non-portable"); retnum = ((UV) s[offset ] << 56) + ((UV) s[offset + 1] << 48) + ((UV) s[offset + 2] << 40) + ((UV) s[offset + 3] << 32) + ((UV) s[offset + 4] << 24) + ((UV) s[offset + 5] << 16) + ( s[offset + 6] << 8) + s[offset + 7]; } #endif } return retnum; } /* currently converts input to bytes if possible but doesn't sweat failures, * although it does ensure that the string it clobbers is not marked as * utf8-valid any more */ void Perl_do_vecset(pTHX_ SV *sv) { SV *targ = LvTARG(sv); register I32 offset; register I32 size; register unsigned char *s; register UV lval; I32 mask; STRLEN targlen; STRLEN len; if (!targ) return; s = (unsigned char*)SvPV_force(targ, targlen); if (SvUTF8(targ)) { /* This is handled by the SvPOK_only below... if (!Perl_sv_utf8_downgrade(aTHX_ targ, TRUE)) SvUTF8_off(targ); */ (void) Perl_sv_utf8_downgrade(aTHX_ targ, TRUE); } (void)SvPOK_only(targ); lval = SvUV(sv); offset = LvTARGOFF(sv); if (offset < 0) Perl_croak(aTHX_ "Negative offset to vec in lvalue context"); size = LvTARGLEN(sv); if (size < 1 || (size & (size-1))) /* size < 1 or not a power of two */ Perl_croak(aTHX_ "Illegal number of bits in vec"); offset *= size; /* turn into bit offset */ len = (offset + size + 7) / 8; /* required number of bytes */ if (len > targlen) { s = (unsigned char*)SvGROW(targ, len + 1); (void)memzero((char *)(s + targlen), len - targlen + 1); SvCUR_set(targ, len); } if (size < 8) { mask = (1 << size) - 1; size = offset & 7; lval &= mask; offset >>= 3; /* turn into byte offset */ s[offset] &= ~(mask << size); s[offset] |= lval << size; } else { offset >>= 3; /* turn into byte offset */ if (size == 8) s[offset ] = (U8)( lval & 0xff); else if (size == 16) { s[offset ] = (U8)((lval >> 8) & 0xff); s[offset+1] = (U8)( lval & 0xff); } else if (size == 32) { s[offset ] = (U8)((lval >> 24) & 0xff); s[offset+1] = (U8)((lval >> 16) & 0xff); s[offset+2] = (U8)((lval >> 8) & 0xff); s[offset+3] = (U8)( lval & 0xff); } #ifdef UV_IS_QUAD else if (size == 64) { if (ckWARN(WARN_PORTABLE)) Perl_warner(aTHX_ packWARN(WARN_PORTABLE), "Bit vector size > 32 non-portable"); s[offset ] = (U8)((lval >> 56) & 0xff); s[offset+1] = (U8)((lval >> 48) & 0xff); s[offset+2] = (U8)((lval >> 40) & 0xff); s[offset+3] = (U8)((lval >> 32) & 0xff); s[offset+4] = (U8)((lval >> 24) & 0xff); s[offset+5] = (U8)((lval >> 16) & 0xff); s[offset+6] = (U8)((lval >> 8) & 0xff); s[offset+7] = (U8)( lval & 0xff); } #endif } SvSETMAGIC(targ); } void Perl_do_chop(pTHX_ register SV *astr, register SV *sv) { STRLEN len; char *s; if (SvTYPE(sv) == SVt_PVAV) { register I32 i; I32 max; AV* av = (AV*)sv; max = AvFILL(av); for (i = 0; i <= max; i++) { sv = (SV*)av_fetch(av, i, FALSE); if (sv && ((sv = *(SV**)sv), sv != &PL_sv_undef)) do_chop(astr, sv); } return; } else if (SvTYPE(sv) == SVt_PVHV) { HV* hv = (HV*)sv; HE* entry; (void)hv_iterinit(hv); /*SUPPRESS 560*/ while ((entry = hv_iternext(hv))) do_chop(astr,hv_iterval(hv,entry)); return; } else if (SvREADONLY(sv)) { if (SvFAKE(sv)) { /* SV is copy-on-write */ sv_force_normal_flags(sv, 0); } if (SvREADONLY(sv)) Perl_croak(aTHX_ PL_no_modify); } s = SvPV(sv, len); if (len && !SvPOK(sv)) s = SvPV_force(sv, len); if (DO_UTF8(sv)) { if (s && len) { char *send = s + len; char *start = s; s = send - 1; while (s > start && UTF8_IS_CONTINUATION(*s)) s--; if (utf8_to_uvchr((U8*)s, 0)) { sv_setpvn(astr, s, send - s); *s = '\0'; SvCUR_set(sv, s - start); SvNIOK_off(sv); SvUTF8_on(astr); } } else sv_setpvn(astr, "", 0); } else if (s && len) { s += --len; sv_setpvn(astr, s, 1); *s = '\0'; SvCUR_set(sv, len); SvUTF8_off(sv); SvNIOK_off(sv); } else sv_setpvn(astr, "", 0); SvSETMAGIC(sv); } I32 Perl_do_chomp(pTHX_ register SV *sv) { register I32 count; STRLEN len; STRLEN n_a; char *s; char *temp_buffer = NULL; SV* svrecode = Nullsv; if (RsSNARF(PL_rs)) return 0; if (RsRECORD(PL_rs)) return 0; count = 0; if (SvTYPE(sv) == SVt_PVAV) { register I32 i; I32 max; AV* av = (AV*)sv; max = AvFILL(av); for (i = 0; i <= max; i++) { sv = (SV*)av_fetch(av, i, FALSE); if (sv && ((sv = *(SV**)sv), sv != &PL_sv_undef)) count += do_chomp(sv); } return count; } else if (SvTYPE(sv) == SVt_PVHV) { HV* hv = (HV*)sv; HE* entry; (void)hv_iterinit(hv); /*SUPPRESS 560*/ while ((entry = hv_iternext(hv))) count += do_chomp(hv_iterval(hv,entry)); return count; } else if (SvREADONLY(sv)) { if (SvFAKE(sv)) { /* SV is copy-on-write */ sv_force_normal_flags(sv, 0); } if (SvREADONLY(sv)) Perl_croak(aTHX_ PL_no_modify); } if (PL_encoding) { if (!SvUTF8(sv)) { /* XXX, here sv is utf8-ized as a side-effect! If encoding.pm is used properly, almost string-generating operations, including literal strings, chr(), input data, etc. should have been utf8-ized already, right? */ sv_recode_to_utf8(sv, PL_encoding); } } s = SvPV(sv, len); if (s && len) { s += --len; if (RsPARA(PL_rs)) { if (*s != '\n') goto nope; ++count; while (len && s[-1] == '\n') { --len; --s; ++count; } } else { STRLEN rslen, rs_charlen; char *rsptr = SvPV(PL_rs, rslen); rs_charlen = SvUTF8(PL_rs) ? sv_len_utf8(PL_rs) : rslen; if (SvUTF8(PL_rs) != SvUTF8(sv)) { /* Assumption is that rs is shorter than the scalar. */ if (SvUTF8(PL_rs)) { /* RS is utf8, scalar is 8 bit. */ bool is_utf8 = TRUE; temp_buffer = (char*)bytes_from_utf8((U8*)rsptr, &rslen, &is_utf8); if (is_utf8) { /* Cannot downgrade, therefore cannot possibly match */ assert (temp_buffer == rsptr); temp_buffer = NULL; goto nope; } rsptr = temp_buffer; } else if (PL_encoding) { /* RS is 8 bit, encoding.pm is used. * Do not recode PL_rs as a side-effect. */ svrecode = newSVpvn(rsptr, rslen); sv_recode_to_utf8(svrecode, PL_encoding); rsptr = SvPV(svrecode, rslen); rs_charlen = sv_len_utf8(svrecode); } else { /* RS is 8 bit, scalar is utf8. */ temp_buffer = (char*)bytes_to_utf8((U8*)rsptr, &rslen); rsptr = temp_buffer; } } if (rslen == 1) { if (*s != *rsptr) goto nope; ++count; } else { if (len < rslen - 1) goto nope; len -= rslen - 1; s -= rslen - 1; if (memNE(s, rsptr, rslen)) goto nope; count += rs_charlen; } } s = SvPV_force(sv, n_a); SvCUR_set(sv, len); *SvEND(sv) = '\0'; SvNIOK_off(sv); SvSETMAGIC(sv); } nope: if (svrecode) SvREFCNT_dec(svrecode); Safefree(temp_buffer); return count; } void Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right) { #ifdef LIBERAL register long *dl; register long *ll; register long *rl; #endif register char *dc; STRLEN leftlen; STRLEN rightlen; register char *lc; register char *rc; register I32 len; I32 lensave; char *lsave; char *rsave; bool left_utf = DO_UTF8(left); bool right_utf = DO_UTF8(right); I32 needlen = 0; if (left_utf && !right_utf) sv_utf8_upgrade(right); else if (!left_utf && right_utf) sv_utf8_upgrade(left); if (sv != left || (optype != OP_BIT_AND && !SvOK(sv) && !SvGMAGICAL(sv))) sv_setpvn(sv, "", 0); /* avoid undef warning on |= and ^= */ lsave = lc = SvPV(left, leftlen); rsave = rc = SvPV(right, rightlen); len = leftlen < rightlen ? leftlen : rightlen; lensave = len; if ((left_utf || right_utf) && (sv == left || sv == right)) { needlen = optype == OP_BIT_AND ? len : leftlen + rightlen; Newz(801, dc, needlen + 1, char); } else if (SvOK(sv) || SvTYPE(sv) > SVt_PVMG) { STRLEN n_a; dc = SvPV_force(sv, n_a); if (SvCUR(sv) < (STRLEN)len) { dc = SvGROW(sv, (STRLEN)(len + 1)); (void)memzero(dc + SvCUR(sv), len - SvCUR(sv) + 1); } if (optype != OP_BIT_AND && (left_utf || right_utf)) dc = SvGROW(sv, leftlen + rightlen + 1); } else { needlen = ((optype == OP_BIT_AND) ? len : (leftlen > rightlen ? leftlen : rightlen)); Newz(801, dc, needlen + 1, char); (void)sv_usepvn(sv, dc, needlen); dc = SvPVX(sv); /* sv_usepvn() calls Renew() */ } SvCUR_set(sv, len); (void)SvPOK_only(sv); if (left_utf || right_utf) { UV duc, luc, ruc; char *dcsave = dc; STRLEN lulen = leftlen; STRLEN rulen = rightlen; STRLEN ulen; switch (optype) { case OP_BIT_AND: while (lulen && rulen) { luc = utf8n_to_uvchr((U8*)lc, lulen, &ulen, UTF8_ALLOW_ANYUV); lc += ulen; lulen -= ulen; ruc = utf8n_to_uvchr((U8*)rc, rulen, &ulen, UTF8_ALLOW_ANYUV); rc += ulen; rulen -= ulen; duc = luc & ruc; dc = (char*)uvchr_to_utf8((U8*)dc, duc); } if (sv == left || sv == right) (void)sv_usepvn(sv, dcsave, needlen); SvCUR_set(sv, dc - dcsave); break; case OP_BIT_XOR: while (lulen && rulen) { luc = utf8n_to_uvchr((U8*)lc, lulen, &ulen, UTF8_ALLOW_ANYUV); lc += ulen; lulen -= ulen; ruc = utf8n_to_uvchr((U8*)rc, rulen, &ulen, UTF8_ALLOW_ANYUV); rc += ulen; rulen -= ulen; duc = luc ^ ruc; dc = (char*)uvchr_to_utf8((U8*)dc, duc); } goto mop_up_utf; case OP_BIT_OR: while (lulen && rulen) { luc = utf8n_to_uvchr((U8*)lc, lulen, &ulen, UTF8_ALLOW_ANYUV); lc += ulen; lulen -= ulen; ruc = utf8n_to_uvchr((U8*)rc, rulen, &ulen, UTF8_ALLOW_ANYUV); rc += ulen; rulen -= ulen; duc = luc | ruc; dc = (char*)uvchr_to_utf8((U8*)dc, duc); } mop_up_utf: if (sv == left || sv == right) (void)sv_usepvn(sv, dcsave, needlen); SvCUR_set(sv, dc - dcsave); if (rulen) sv_catpvn(sv, rc, rulen); else if (lulen) sv_catpvn(sv, lc, lulen); else *SvEND(sv) = '\0'; break; } SvUTF8_on(sv); goto finish; } else #ifdef LIBERAL if (len >= sizeof(long)*4 && !((long)dc % sizeof(long)) && !((long)lc % sizeof(long)) && !((long)rc % sizeof(long))) /* It's almost always aligned... */ { I32 remainder = len % (sizeof(long)*4); len /= (sizeof(long)*4); dl = (long*)dc; ll = (long*)lc; rl = (long*)rc; switch (optype) { case OP_BIT_AND: while (len--) { *dl++ = *ll++ & *rl++; *dl++ = *ll++ & *rl++; *dl++ = *ll++ & *rl++; *dl++ = *ll++ & *rl++; } break; case OP_BIT_XOR: while (len--) { *dl++ = *ll++ ^ *rl++; *dl++ = *ll++ ^ *rl++; *dl++ = *ll++ ^ *rl++; *dl++ = *ll++ ^ *rl++; } break; case OP_BIT_OR: while (len--) { *dl++ = *ll++ | *rl++; *dl++ = *ll++ | *rl++; *dl++ = *ll++ | *rl++; *dl++ = *ll++ | *rl++; } } dc = (char*)dl; lc = (char*)ll; rc = (char*)rl; len = remainder; } #endif { switch (optype) { case OP_BIT_AND: while (len--) *dc++ = *lc++ & *rc++; break; case OP_BIT_XOR: while (len--) *dc++ = *lc++ ^ *rc++; goto mop_up; case OP_BIT_OR: while (len--) *dc++ = *lc++ | *rc++; mop_up: len = lensave; if (rightlen > (STRLEN)len) sv_catpvn(sv, rsave + len, rightlen - len); else if (leftlen > (STRLEN)len) sv_catpvn(sv, lsave + len, leftlen - len); else *SvEND(sv) = '\0'; break; } } finish: SvTAINT(sv); } OP * Perl_do_kv(pTHX) { dSP; HV *hv = (HV*)POPs; HV *keys; register HE *entry; SV *tmpstr; I32 gimme = GIMME_V; I32 dokeys = (PL_op->op_type == OP_KEYS); I32 dovalues = (PL_op->op_type == OP_VALUES); I32 realhv = (SvTYPE(hv) == SVt_PVHV); if (PL_op->op_type == OP_RV2HV || PL_op->op_type == OP_PADHV) dokeys = dovalues = TRUE; if (!hv) { if (PL_op->op_flags & OPf_MOD || LVRET) { /* lvalue */ dTARGET; /* make sure to clear its target here */ if (SvTYPE(TARG) == SVt_PVLV) LvTARG(TARG) = Nullsv; PUSHs(TARG); } RETURN; } keys = realhv ? hv : avhv_keys((AV*)hv); (void)hv_iterinit(keys); /* always reset iterator regardless */ if (gimme == G_VOID) RETURN; if (gimme == G_SCALAR) { IV i; dTARGET; if (PL_op->op_flags & OPf_MOD || LVRET) { /* lvalue */ if (SvTYPE(TARG) < SVt_PVLV) { sv_upgrade(TARG, SVt_PVLV); sv_magic(TARG, Nullsv, PERL_MAGIC_nkeys, Nullch, 0); } LvTYPE(TARG) = 'k'; if (LvTARG(TARG) != (SV*)keys) { if (LvTARG(TARG)) SvREFCNT_dec(LvTARG(TARG)); LvTARG(TARG) = SvREFCNT_inc(keys); } PUSHs(TARG); RETURN; } if (! SvTIED_mg((SV*)keys, PERL_MAGIC_tied)) i = HvKEYS(keys); else { i = 0; /*SUPPRESS 560*/ while (hv_iternext(keys)) i++; } PUSHi( i ); RETURN; } EXTEND(SP, HvKEYS(keys) * (dokeys + dovalues)); PUTBACK; /* hv_iternext and hv_iterval might clobber stack_sp */ while ((entry = hv_iternext(keys))) { SPAGAIN; if (dokeys) { SV* sv = hv_iterkeysv(entry); XPUSHs(sv); /* won't clobber stack_sp */ } if (dovalues) { PUTBACK; tmpstr = realhv ? hv_iterval(hv,entry) : avhv_iterval((AV*)hv,entry); DEBUG_H(Perl_sv_setpvf(aTHX_ tmpstr, "%lu%%%d=%lu", (unsigned long)HeHASH(entry), HvMAX(keys)+1, (unsigned long)(HeHASH(entry) & HvMAX(keys)))); SPAGAIN; XPUSHs(tmpstr); } PUTBACK; } return NORMAL; } /* * Local variables: * c-indentation-style: bsd * c-basic-offset: 4 * indent-tabs-mode: t * End: * * vim: shiftwidth=4: */ ================================================ FILE: tests/perlbench/dump.c ================================================ /* dump.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * "'You have talked long in your sleep, Frodo,' said Gandalf gently, 'and * it has not been hard for me to read your mind and memory.'" */ /* This file contains utility routines to dump the contents of SV and OP * structures, as used by command-line options like -Dt and -Dx, and * by Devel::Peek. * * It also holds the debugging version of the runops function. */ #include "EXTERN.h" #define PERL_IN_DUMP_C #include "perl.h" #include "regcomp.h" void Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...) { va_list args; va_start(args, pat); dump_vindent(level, file, pat, &args); va_end(args); } void Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args) { PerlIO_printf(file, "%*s", (int)(level*PL_dumpindent), ""); PerlIO_vprintf(file, pat, *args); } void Perl_dump_all(pTHX) { PerlIO_setlinebuf(Perl_debug_log); if (PL_main_root) op_dump(PL_main_root); dump_packsubs(PL_defstash); } void Perl_dump_packsubs(pTHX_ HV *stash) { I32 i; HE *entry; if (!HvARRAY(stash)) return; for (i = 0; i <= (I32) HvMAX(stash); i++) { for (entry = HvARRAY(stash)[i]; entry; entry = HeNEXT(entry)) { GV *gv = (GV*)HeVAL(entry); HV *hv; if (SvTYPE(gv) != SVt_PVGV || !GvGP(gv)) continue; if (GvCVu(gv)) dump_sub(gv); if (GvFORM(gv)) dump_form(gv); if (HeKEY(entry)[HeKLEN(entry)-1] == ':' && (hv = GvHV(gv)) && hv != PL_defstash) dump_packsubs(hv); /* nested package */ } } } void Perl_dump_sub(pTHX_ GV *gv) { SV *sv = sv_newmortal(); gv_fullname3(sv, gv, Nullch); Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\nSUB %s = ", SvPVX(sv)); if (CvXSUB(GvCV(gv))) Perl_dump_indent(aTHX_ 0, Perl_debug_log, "(xsub 0x%"UVxf" %d)\n", PTR2UV(CvXSUB(GvCV(gv))), (int)CvXSUBANY(GvCV(gv)).any_i32); else if (CvROOT(GvCV(gv))) op_dump(CvROOT(GvCV(gv))); else Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\n"); } void Perl_dump_form(pTHX_ GV *gv) { SV *sv = sv_newmortal(); gv_fullname3(sv, gv, Nullch); Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\nFORMAT %s = ", SvPVX(sv)); if (CvROOT(GvFORM(gv))) op_dump(CvROOT(GvFORM(gv))); else Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\n"); } void Perl_dump_eval(pTHX) { op_dump(PL_eval_root); } char * Perl_pv_display(pTHX_ SV *dsv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) { int truncated = 0; int nul_terminated = len > cur && pv[cur] == '\0'; sv_setpvn(dsv, "\"", 1); for (; cur--; pv++) { if (pvlim && SvCUR(dsv) >= pvlim) { truncated++; break; } switch (*pv) { case '\t': sv_catpvn(dsv, "\\t", 2); break; case '\n': sv_catpvn(dsv, "\\n", 2); break; case '\r': sv_catpvn(dsv, "\\r", 2); break; case '\f': sv_catpvn(dsv, "\\f", 2); break; case '"': sv_catpvn(dsv, "\\\"", 2); break; case '\\': sv_catpvn(dsv, "\\\\", 2); break; default: if (isPRINT(*pv)) sv_catpvn(dsv, pv, 1); else if (cur && isDIGIT(*(pv+1))) Perl_sv_catpvf(aTHX_ dsv, "\\%03o", (U8)*pv); else Perl_sv_catpvf(aTHX_ dsv, "\\%o", (U8)*pv); } } sv_catpvn(dsv, "\"", 1); if (truncated) sv_catpvn(dsv, "...", 3); if (nul_terminated) sv_catpvn(dsv, "\\0", 2); return SvPVX(dsv); } char * Perl_sv_peek(pTHX_ SV *sv) { SV *t = sv_newmortal(); STRLEN n_a; int unref = 0; sv_setpvn(t, "", 0); retry: if (!sv) { sv_catpv(t, "VOID"); goto finish; } else if (sv == (SV*)0x55555555 || SvTYPE(sv) == 'U') { sv_catpv(t, "WILD"); goto finish; } else if (sv == &PL_sv_undef || sv == &PL_sv_no || sv == &PL_sv_yes || sv == &PL_sv_placeholder) { if (sv == &PL_sv_undef) { sv_catpv(t, "SV_UNDEF"); if (!(SvFLAGS(sv) & (SVf_OK|SVf_OOK|SVs_OBJECT| SVs_GMG|SVs_SMG|SVs_RMG)) && SvREADONLY(sv)) goto finish; } else if (sv == &PL_sv_no) { sv_catpv(t, "SV_NO"); if (!(SvFLAGS(sv) & (SVf_ROK|SVf_OOK|SVs_OBJECT| SVs_GMG|SVs_SMG|SVs_RMG)) && !(~SvFLAGS(sv) & (SVf_POK|SVf_NOK|SVf_READONLY| SVp_POK|SVp_NOK)) && SvCUR(sv) == 0 && SvNVX(sv) == 0.0) goto finish; } else if (sv == &PL_sv_yes) { sv_catpv(t, "SV_YES"); if (!(SvFLAGS(sv) & (SVf_ROK|SVf_OOK|SVs_OBJECT| SVs_GMG|SVs_SMG|SVs_RMG)) && !(~SvFLAGS(sv) & (SVf_POK|SVf_NOK|SVf_READONLY| SVp_POK|SVp_NOK)) && SvCUR(sv) == 1 && SvPVX(sv) && *SvPVX(sv) == '1' && SvNVX(sv) == 1.0) goto finish; } else { sv_catpv(t, "SV_PLACEHOLDER"); if (!(SvFLAGS(sv) & (SVf_OK|SVf_OOK|SVs_OBJECT| SVs_GMG|SVs_SMG|SVs_RMG)) && SvREADONLY(sv)) goto finish; } sv_catpv(t, ":"); } else if (SvREFCNT(sv) == 0) { sv_catpv(t, "("); unref++; } else if (DEBUG_R_TEST_) { int is_tmp = 0; I32 ix; /* is this SV on the tmps stack? */ for (ix=PL_tmps_ix; ix>=0; ix--) { if (PL_tmps_stack[ix] == sv) { is_tmp = 1; break; } } if (SvREFCNT(sv) > 1) Perl_sv_catpvf(aTHX_ t, "<%"UVuf"%s>", (UV)SvREFCNT(sv), is_tmp ? "T" : ""); else if (is_tmp) sv_catpv(t, ""); } if (SvROK(sv)) { sv_catpv(t, "\\"); if (SvCUR(t) + unref > 10) { SvCUR(t) = unref + 3; *SvEND(t) = '\0'; sv_catpv(t, "..."); goto finish; } sv = (SV*)SvRV(sv); goto retry; } switch (SvTYPE(sv)) { default: sv_catpv(t, "FREED"); goto finish; case SVt_NULL: sv_catpv(t, "UNDEF"); goto finish; case SVt_IV: sv_catpv(t, "IV"); break; case SVt_NV: sv_catpv(t, "NV"); break; case SVt_RV: sv_catpv(t, "RV"); break; case SVt_PV: sv_catpv(t, "PV"); break; case SVt_PVIV: sv_catpv(t, "PVIV"); break; case SVt_PVNV: sv_catpv(t, "PVNV"); break; case SVt_PVMG: sv_catpv(t, "PVMG"); break; case SVt_PVLV: sv_catpv(t, "PVLV"); break; case SVt_PVAV: sv_catpv(t, "AV"); break; case SVt_PVHV: sv_catpv(t, "HV"); break; case SVt_PVCV: if (CvGV(sv)) Perl_sv_catpvf(aTHX_ t, "CV(%s)", GvNAME(CvGV(sv))); else sv_catpv(t, "CV()"); goto finish; case SVt_PVGV: sv_catpv(t, "GV"); break; case SVt_PVBM: sv_catpv(t, "BM"); break; case SVt_PVFM: sv_catpv(t, "FM"); break; case SVt_PVIO: sv_catpv(t, "IO"); break; } if (SvPOKp(sv)) { if (!SvPVX(sv)) sv_catpv(t, "(null)"); else { SV *tmp = newSVpvn("", 0); sv_catpv(t, "("); if (SvOOK(sv)) Perl_sv_catpvf(aTHX_ t, "[%s]", pv_display(tmp, SvPVX(sv)-SvIVX(sv), SvIVX(sv), 0, 127)); Perl_sv_catpvf(aTHX_ t, "%s)", pv_display(tmp, SvPVX(sv), SvCUR(sv), SvLEN(sv), 127)); if (SvUTF8(sv)) Perl_sv_catpvf(aTHX_ t, " [UTF8 \"%s\"]", sv_uni_display(tmp, sv, 8 * sv_len_utf8(sv), UNI_DISPLAY_QQ)); SvREFCNT_dec(tmp); } } else if (SvNOKp(sv)) { STORE_NUMERIC_LOCAL_SET_STANDARD(); Perl_sv_catpvf(aTHX_ t, "(%"NVgf")",SvNVX(sv)); RESTORE_NUMERIC_LOCAL(); } else if (SvIOKp(sv)) { if (SvIsUV(sv)) Perl_sv_catpvf(aTHX_ t, "(%"UVuf")", (UV)SvUVX(sv)); else Perl_sv_catpvf(aTHX_ t, "(%"IVdf")", (IV)SvIVX(sv)); } else sv_catpv(t, "()"); finish: if (unref) { while (unref--) sv_catpv(t, ")"); } return SvPV(t, n_a); } void Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm) { char ch; if (!pm) { Perl_dump_indent(aTHX_ level, file, "{}\n"); return; } Perl_dump_indent(aTHX_ level, file, "{\n"); level++; if (pm->op_pmflags & PMf_ONCE) ch = '?'; else ch = '/'; if (PM_GETRE(pm)) Perl_dump_indent(aTHX_ level, file, "PMf_PRE %c%s%c%s\n", ch, PM_GETRE(pm)->precomp, ch, (pm->op_private & OPpRUNTIME) ? " (RUNTIME)" : ""); else Perl_dump_indent(aTHX_ level, file, "PMf_PRE (RUNTIME)\n"); if (pm->op_type != OP_PUSHRE && pm->op_pmreplroot) { Perl_dump_indent(aTHX_ level, file, "PMf_REPL = "); op_dump(pm->op_pmreplroot); } if (pm->op_pmflags || (PM_GETRE(pm) && PM_GETRE(pm)->check_substr)) { SV *tmpsv = newSVpvn("", 0); if (pm->op_pmdynflags & PMdf_USED) sv_catpv(tmpsv, ",USED"); if (pm->op_pmdynflags & PMdf_TAINTED) sv_catpv(tmpsv, ",TAINTED"); if (pm->op_pmflags & PMf_ONCE) sv_catpv(tmpsv, ",ONCE"); if (PM_GETRE(pm) && PM_GETRE(pm)->check_substr && !(PM_GETRE(pm)->reganch & ROPT_NOSCAN)) sv_catpv(tmpsv, ",SCANFIRST"); if (PM_GETRE(pm) && PM_GETRE(pm)->check_substr && PM_GETRE(pm)->reganch & ROPT_CHECK_ALL) sv_catpv(tmpsv, ",ALL"); if (pm->op_pmflags & PMf_SKIPWHITE) sv_catpv(tmpsv, ",SKIPWHITE"); if (pm->op_pmflags & PMf_CONST) sv_catpv(tmpsv, ",CONST"); if (pm->op_pmflags & PMf_KEEP) sv_catpv(tmpsv, ",KEEP"); if (pm->op_pmflags & PMf_GLOBAL) sv_catpv(tmpsv, ",GLOBAL"); if (pm->op_pmflags & PMf_CONTINUE) sv_catpv(tmpsv, ",CONTINUE"); if (pm->op_pmflags & PMf_RETAINT) sv_catpv(tmpsv, ",RETAINT"); if (pm->op_pmflags & PMf_EVAL) sv_catpv(tmpsv, ",EVAL"); Perl_dump_indent(aTHX_ level, file, "PMFLAGS = (%s)\n", SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : ""); SvREFCNT_dec(tmpsv); } Perl_dump_indent(aTHX_ level-1, file, "}\n"); } void Perl_pmop_dump(pTHX_ PMOP *pm) { do_pmop_dump(0, Perl_debug_log, pm); } void Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) { Perl_dump_indent(aTHX_ level, file, "{\n"); level++; if (o->op_seq) PerlIO_printf(file, "%-4d", o->op_seq); else PerlIO_printf(file, " "); PerlIO_printf(file, "%*sTYPE = %s ===> ", (int)(PL_dumpindent*level-4), "", OP_NAME(o)); if (o->op_next) { if (o->op_seq) PerlIO_printf(file, "%d\n", o->op_next->op_seq); else PerlIO_printf(file, "(%d)\n", o->op_next->op_seq); } else PerlIO_printf(file, "DONE\n"); if (o->op_targ) { if (o->op_type == OP_NULL) { Perl_dump_indent(aTHX_ level, file, " (was %s)\n", PL_op_name[o->op_targ]); if (o->op_targ == OP_NEXTSTATE) { if (CopLINE(cCOPo)) Perl_dump_indent(aTHX_ level, file, "LINE = %"UVf"\n", (UV)CopLINE(cCOPo)); if (CopSTASHPV(cCOPo)) Perl_dump_indent(aTHX_ level, file, "PACKAGE = \"%s\"\n", CopSTASHPV(cCOPo)); if (cCOPo->cop_label) Perl_dump_indent(aTHX_ level, file, "LABEL = \"%s\"\n", cCOPo->cop_label); } } else Perl_dump_indent(aTHX_ level, file, "TARG = %ld\n", (long)o->op_targ); } #ifdef DUMPADDR Perl_dump_indent(aTHX_ level, file, "ADDR = 0x%"UVxf" => 0x%"UVxf"\n", (UV)o, (UV)o->op_next); #endif if (o->op_flags) { SV *tmpsv = newSVpvn("", 0); switch (o->op_flags & OPf_WANT) { case OPf_WANT_VOID: sv_catpv(tmpsv, ",VOID"); break; case OPf_WANT_SCALAR: sv_catpv(tmpsv, ",SCALAR"); break; case OPf_WANT_LIST: sv_catpv(tmpsv, ",LIST"); break; default: sv_catpv(tmpsv, ",UNKNOWN"); break; } if (o->op_flags & OPf_KIDS) sv_catpv(tmpsv, ",KIDS"); if (o->op_flags & OPf_PARENS) sv_catpv(tmpsv, ",PARENS"); if (o->op_flags & OPf_STACKED) sv_catpv(tmpsv, ",STACKED"); if (o->op_flags & OPf_REF) sv_catpv(tmpsv, ",REF"); if (o->op_flags & OPf_MOD) sv_catpv(tmpsv, ",MOD"); if (o->op_flags & OPf_SPECIAL) sv_catpv(tmpsv, ",SPECIAL"); Perl_dump_indent(aTHX_ level, file, "FLAGS = (%s)\n", SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : ""); SvREFCNT_dec(tmpsv); } if (o->op_private) { SV *tmpsv = newSVpvn("", 0); if (PL_opargs[o->op_type] & OA_TARGLEX) { if (o->op_private & OPpTARGET_MY) sv_catpv(tmpsv, ",TARGET_MY"); } else if (o->op_type == OP_LEAVESUB || o->op_type == OP_LEAVE || o->op_type == OP_LEAVESUBLV || o->op_type == OP_LEAVEWRITE) { if (o->op_private & OPpREFCOUNTED) sv_catpv(tmpsv, ",REFCOUNTED"); } else if (o->op_type == OP_AASSIGN) { if (o->op_private & OPpASSIGN_COMMON) sv_catpv(tmpsv, ",COMMON"); if (o->op_private & OPpASSIGN_HASH) sv_catpv(tmpsv, ",HASH"); } else if (o->op_type == OP_SASSIGN) { if (o->op_private & OPpASSIGN_BACKWARDS) sv_catpv(tmpsv, ",BACKWARDS"); } else if (o->op_type == OP_TRANS) { if (o->op_private & OPpTRANS_SQUASH) sv_catpv(tmpsv, ",SQUASH"); if (o->op_private & OPpTRANS_DELETE) sv_catpv(tmpsv, ",DELETE"); if (o->op_private & OPpTRANS_COMPLEMENT) sv_catpv(tmpsv, ",COMPLEMENT"); if (o->op_private & OPpTRANS_IDENTICAL) sv_catpv(tmpsv, ",IDENTICAL"); if (o->op_private & OPpTRANS_GROWS) sv_catpv(tmpsv, ",GROWS"); } else if (o->op_type == OP_REPEAT) { if (o->op_private & OPpREPEAT_DOLIST) sv_catpv(tmpsv, ",DOLIST"); } else if (o->op_type == OP_ENTERSUB || o->op_type == OP_RV2SV || o->op_type == OP_GVSV || o->op_type == OP_RV2AV || o->op_type == OP_RV2HV || o->op_type == OP_RV2GV || o->op_type == OP_AELEM || o->op_type == OP_HELEM ) { if (o->op_type == OP_ENTERSUB) { if (o->op_private & OPpENTERSUB_AMPER) sv_catpv(tmpsv, ",AMPER"); if (o->op_private & OPpENTERSUB_DB) sv_catpv(tmpsv, ",DB"); if (o->op_private & OPpENTERSUB_HASTARG) sv_catpv(tmpsv, ",HASTARG"); if (o->op_private & OPpENTERSUB_NOPAREN) sv_catpv(tmpsv, ",NOPAREN"); if (o->op_private & OPpENTERSUB_INARGS) sv_catpv(tmpsv, ",INARGS"); if (o->op_private & OPpENTERSUB_NOMOD) sv_catpv(tmpsv, ",NOMOD"); } else { switch (o->op_private & OPpDEREF) { case OPpDEREF_SV: sv_catpv(tmpsv, ",SV"); break; case OPpDEREF_AV: sv_catpv(tmpsv, ",AV"); break; case OPpDEREF_HV: sv_catpv(tmpsv, ",HV"); break; } if (o->op_private & OPpMAYBE_LVSUB) sv_catpv(tmpsv, ",MAYBE_LVSUB"); } if (o->op_type == OP_AELEM || o->op_type == OP_HELEM) { if (o->op_private & OPpLVAL_DEFER) sv_catpv(tmpsv, ",LVAL_DEFER"); } else { if (o->op_private & HINT_STRICT_REFS) sv_catpv(tmpsv, ",STRICT_REFS"); if (o->op_private & OPpOUR_INTRO) sv_catpv(tmpsv, ",OUR_INTRO"); } } else if (o->op_type == OP_CONST) { if (o->op_private & OPpCONST_BARE) sv_catpv(tmpsv, ",BARE"); if (o->op_private & OPpCONST_STRICT) sv_catpv(tmpsv, ",STRICT"); if (o->op_private & OPpCONST_ARYBASE) sv_catpv(tmpsv, ",ARYBASE"); if (o->op_private & OPpCONST_WARNING) sv_catpv(tmpsv, ",WARNING"); if (o->op_private & OPpCONST_ENTERED) sv_catpv(tmpsv, ",ENTERED"); } else if (o->op_type == OP_FLIP) { if (o->op_private & OPpFLIP_LINENUM) sv_catpv(tmpsv, ",LINENUM"); } else if (o->op_type == OP_FLOP) { if (o->op_private & OPpFLIP_LINENUM) sv_catpv(tmpsv, ",LINENUM"); } else if (o->op_type == OP_RV2CV) { if (o->op_private & OPpLVAL_INTRO) sv_catpv(tmpsv, ",INTRO"); } else if (o->op_type == OP_GV) { if (o->op_private & OPpEARLY_CV) sv_catpv(tmpsv, ",EARLY_CV"); } else if (o->op_type == OP_LIST) { if (o->op_private & OPpLIST_GUESSED) sv_catpv(tmpsv, ",GUESSED"); } else if (o->op_type == OP_DELETE) { if (o->op_private & OPpSLICE) sv_catpv(tmpsv, ",SLICE"); } else if (o->op_type == OP_EXISTS) { if (o->op_private & OPpEXISTS_SUB) sv_catpv(tmpsv, ",EXISTS_SUB"); } else if (o->op_type == OP_SORT) { if (o->op_private & OPpSORT_NUMERIC) sv_catpv(tmpsv, ",NUMERIC"); if (o->op_private & OPpSORT_INTEGER) sv_catpv(tmpsv, ",INTEGER"); if (o->op_private & OPpSORT_REVERSE) sv_catpv(tmpsv, ",REVERSE"); } else if (o->op_type == OP_THREADSV) { if (o->op_private & OPpDONE_SVREF) sv_catpv(tmpsv, ",SVREF"); } else if (o->op_type == OP_OPEN || o->op_type == OP_BACKTICK) { if (o->op_private & OPpOPEN_IN_RAW) sv_catpv(tmpsv, ",IN_RAW"); if (o->op_private & OPpOPEN_IN_CRLF) sv_catpv(tmpsv, ",IN_CRLF"); if (o->op_private & OPpOPEN_OUT_RAW) sv_catpv(tmpsv, ",OUT_RAW"); if (o->op_private & OPpOPEN_OUT_CRLF) sv_catpv(tmpsv, ",OUT_CRLF"); } else if (o->op_type == OP_EXIT) { if (o->op_private & OPpEXIT_VMSISH) sv_catpv(tmpsv, ",EXIT_VMSISH"); if (o->op_private & OPpHUSH_VMSISH) sv_catpv(tmpsv, ",HUSH_VMSISH"); } else if (o->op_type == OP_DIE) { if (o->op_private & OPpHUSH_VMSISH) sv_catpv(tmpsv, ",HUSH_VMSISH"); } else if (OP_IS_FILETEST_ACCESS(o)) { if (o->op_private & OPpFT_ACCESS) sv_catpv(tmpsv, ",FT_ACCESS"); } if (o->op_flags & OPf_MOD && o->op_private & OPpLVAL_INTRO) sv_catpv(tmpsv, ",INTRO"); if (SvCUR(tmpsv)) Perl_dump_indent(aTHX_ level, file, "PRIVATE = (%s)\n", SvPVX(tmpsv) + 1); SvREFCNT_dec(tmpsv); } switch (o->op_type) { case OP_AELEMFAST: case OP_GVSV: case OP_GV: #ifdef USE_ITHREADS Perl_dump_indent(aTHX_ level, file, "PADIX = %" IVdf "\n", (IV)cPADOPo->op_padix); #else if ( ! PL_op->op_flags & OPf_SPECIAL) { /* not lexical */ if (cSVOPo->op_sv) { SV *tmpsv = NEWSV(0,0); STRLEN n_a; ENTER; SAVEFREESV(tmpsv); gv_fullname3(tmpsv, (GV*)cSVOPo->op_sv, Nullch); Perl_dump_indent(aTHX_ level, file, "GV = %s\n", SvPV(tmpsv, n_a)); LEAVE; } else Perl_dump_indent(aTHX_ level, file, "GV = NULL\n"); } #endif break; case OP_CONST: case OP_METHOD_NAMED: #ifndef USE_ITHREADS /* with ITHREADS, consts are stored in the pad, and the right pad * may not be active here, so skip */ Perl_dump_indent(aTHX_ level, file, "SV = %s\n", SvPEEK(cSVOPo_sv)); #endif break; case OP_SETSTATE: case OP_NEXTSTATE: case OP_DBSTATE: if (CopLINE(cCOPo)) Perl_dump_indent(aTHX_ level, file, "LINE = %"UVf"\n", (UV)CopLINE(cCOPo)); if (CopSTASHPV(cCOPo)) Perl_dump_indent(aTHX_ level, file, "PACKAGE = \"%s\"\n", CopSTASHPV(cCOPo)); if (cCOPo->cop_label) Perl_dump_indent(aTHX_ level, file, "LABEL = \"%s\"\n", cCOPo->cop_label); break; case OP_ENTERLOOP: Perl_dump_indent(aTHX_ level, file, "REDO ===> "); if (cLOOPo->op_redoop) PerlIO_printf(file, "%d\n", cLOOPo->op_redoop->op_seq); else PerlIO_printf(file, "DONE\n"); Perl_dump_indent(aTHX_ level, file, "NEXT ===> "); if (cLOOPo->op_nextop) PerlIO_printf(file, "%d\n", cLOOPo->op_nextop->op_seq); else PerlIO_printf(file, "DONE\n"); Perl_dump_indent(aTHX_ level, file, "LAST ===> "); if (cLOOPo->op_lastop) PerlIO_printf(file, "%d\n", cLOOPo->op_lastop->op_seq); else PerlIO_printf(file, "DONE\n"); break; case OP_COND_EXPR: case OP_RANGE: case OP_MAPWHILE: case OP_GREPWHILE: case OP_OR: case OP_AND: Perl_dump_indent(aTHX_ level, file, "OTHER ===> "); if (cLOGOPo->op_other) PerlIO_printf(file, "%d\n", cLOGOPo->op_other->op_seq); else PerlIO_printf(file, "DONE\n"); break; case OP_PUSHRE: case OP_MATCH: case OP_QR: case OP_SUBST: do_pmop_dump(level, file, cPMOPo); break; case OP_LEAVE: case OP_LEAVEEVAL: case OP_LEAVESUB: case OP_LEAVESUBLV: case OP_LEAVEWRITE: case OP_SCOPE: if (o->op_private & OPpREFCOUNTED) Perl_dump_indent(aTHX_ level, file, "REFCNT = %"UVuf"\n", (UV)o->op_targ); break; default: break; } if (o->op_flags & OPf_KIDS) { OP *kid; for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling) do_op_dump(level, file, kid); } Perl_dump_indent(aTHX_ level-1, file, "}\n"); } void Perl_op_dump(pTHX_ OP *o) { do_op_dump(0, Perl_debug_log, o); } void Perl_gv_dump(pTHX_ GV *gv) { SV *sv; if (!gv) { PerlIO_printf(Perl_debug_log, "{}\n"); return; } sv = sv_newmortal(); PerlIO_printf(Perl_debug_log, "{\n"); gv_fullname3(sv, gv, Nullch); Perl_dump_indent(aTHX_ 1, Perl_debug_log, "GV_NAME = %s", SvPVX(sv)); if (gv != GvEGV(gv)) { gv_efullname3(sv, GvEGV(gv), Nullch); Perl_dump_indent(aTHX_ 1, Perl_debug_log, "-> %s", SvPVX(sv)); } PerlIO_putc(Perl_debug_log, '\n'); Perl_dump_indent(aTHX_ 0, Perl_debug_log, "}\n"); } /* map magic types to the symbolic names * (with the PERL_MAGIC_ prefixed stripped) */ static struct { char type; char *name; } magic_names[] = { { PERL_MAGIC_sv, "sv(\\0)" }, { PERL_MAGIC_arylen, "arylen(#)" }, { PERL_MAGIC_glob, "glob(*)" }, { PERL_MAGIC_pos, "pos(.)" }, { PERL_MAGIC_backref, "backref(<)" }, { PERL_MAGIC_overload, "overload(A)" }, { PERL_MAGIC_bm, "bm(B)" }, { PERL_MAGIC_regdata, "regdata(D)" }, { PERL_MAGIC_env, "env(E)" }, { PERL_MAGIC_isa, "isa(I)" }, { PERL_MAGIC_dbfile, "dbfile(L)" }, { PERL_MAGIC_shared, "shared(N)" }, { PERL_MAGIC_tied, "tied(P)" }, { PERL_MAGIC_sig, "sig(S)" }, { PERL_MAGIC_uvar, "uvar(U)" }, { PERL_MAGIC_overload_elem, "overload_elem(a)" }, { PERL_MAGIC_overload_table, "overload_table(c)" }, { PERL_MAGIC_regdatum, "regdatum(d)" }, { PERL_MAGIC_envelem, "envelem(e)" }, { PERL_MAGIC_fm, "fm(f)" }, { PERL_MAGIC_regex_global, "regex_global(g)" }, { PERL_MAGIC_isaelem, "isaelem(i)" }, { PERL_MAGIC_nkeys, "nkeys(k)" }, { PERL_MAGIC_dbline, "dbline(l)" }, { PERL_MAGIC_mutex, "mutex(m)" }, { PERL_MAGIC_shared_scalar, "shared_scalar(n)" }, { PERL_MAGIC_collxfrm, "collxfrm(o)" }, { PERL_MAGIC_tiedelem, "tiedelem(p)" }, { PERL_MAGIC_tiedscalar, "tiedscalar(q)" }, { PERL_MAGIC_qr, "qr(r)" }, { PERL_MAGIC_sigelem, "sigelem(s)" }, { PERL_MAGIC_taint, "taint(t)" }, { PERL_MAGIC_uvar_elem, "uvar_elem(v)" }, { PERL_MAGIC_vec, "vec(v)" }, { PERL_MAGIC_vstring, "v-string(V)" }, { PERL_MAGIC_utf8, "utf8(w)" }, { PERL_MAGIC_substr, "substr(x)" }, { PERL_MAGIC_defelem, "defelem(y)" }, { PERL_MAGIC_ext, "ext(~)" }, /* this null string terminates the list */ { 0, 0 }, }; void Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim) { for (; mg; mg = mg->mg_moremagic) { Perl_dump_indent(aTHX_ level, file, " MAGIC = 0x%"UVxf"\n", PTR2UV(mg)); if (mg->mg_virtual) { MGVTBL *v = mg->mg_virtual; char *s = 0; if (v == &PL_vtbl_sv) s = "sv"; else if (v == &PL_vtbl_env) s = "env"; else if (v == &PL_vtbl_envelem) s = "envelem"; else if (v == &PL_vtbl_sig) s = "sig"; else if (v == &PL_vtbl_sigelem) s = "sigelem"; else if (v == &PL_vtbl_pack) s = "pack"; else if (v == &PL_vtbl_packelem) s = "packelem"; else if (v == &PL_vtbl_dbline) s = "dbline"; else if (v == &PL_vtbl_isa) s = "isa"; else if (v == &PL_vtbl_arylen) s = "arylen"; else if (v == &PL_vtbl_glob) s = "glob"; else if (v == &PL_vtbl_mglob) s = "mglob"; else if (v == &PL_vtbl_nkeys) s = "nkeys"; else if (v == &PL_vtbl_taint) s = "taint"; else if (v == &PL_vtbl_substr) s = "substr"; else if (v == &PL_vtbl_vec) s = "vec"; else if (v == &PL_vtbl_pos) s = "pos"; else if (v == &PL_vtbl_bm) s = "bm"; else if (v == &PL_vtbl_fm) s = "fm"; else if (v == &PL_vtbl_uvar) s = "uvar"; else if (v == &PL_vtbl_defelem) s = "defelem"; #ifdef USE_LOCALE_COLLATE else if (v == &PL_vtbl_collxfrm) s = "collxfrm"; #endif else if (v == &PL_vtbl_amagic) s = "amagic"; else if (v == &PL_vtbl_amagicelem) s = "amagicelem"; else if (v == &PL_vtbl_backref) s = "backref"; else if (v == &PL_vtbl_utf8) s = "utf8"; if (s) Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = &PL_vtbl_%s\n", s); else Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = 0x%"UVxf"\n", PTR2UV(v)); } else Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = 0\n"); if (mg->mg_private) Perl_dump_indent(aTHX_ level, file, " MG_PRIVATE = %d\n", mg->mg_private); { int n; char *name = 0; for (n=0; magic_names[n].name; n++) { if (mg->mg_type == magic_names[n].type) { name = magic_names[n].name; break; } } if (name) Perl_dump_indent(aTHX_ level, file, " MG_TYPE = PERL_MAGIC_%s\n", name); else Perl_dump_indent(aTHX_ level, file, " MG_TYPE = UNKNOWN(\\%o)\n", mg->mg_type); } if (mg->mg_flags) { Perl_dump_indent(aTHX_ level, file, " MG_FLAGS = 0x%02X\n", mg->mg_flags); if (mg->mg_type == PERL_MAGIC_envelem && mg->mg_flags & MGf_TAINTEDDIR) Perl_dump_indent(aTHX_ level, file, " TAINTEDDIR\n"); if (mg->mg_flags & MGf_REFCOUNTED) Perl_dump_indent(aTHX_ level, file, " REFCOUNTED\n"); if (mg->mg_flags & MGf_GSKIP) Perl_dump_indent(aTHX_ level, file, " GSKIP\n"); if (mg->mg_type == PERL_MAGIC_regex_global && mg->mg_flags & MGf_MINMATCH) Perl_dump_indent(aTHX_ level, file, " MINMATCH\n"); } if (mg->mg_obj) { Perl_dump_indent(aTHX_ level, file, " MG_OBJ = 0x%"UVxf"\n", PTR2UV(mg->mg_obj)); if (mg->mg_flags & MGf_REFCOUNTED) do_sv_dump(level+2, file, mg->mg_obj, nest+1, maxnest, dumpops, pvlim); /* MG is already +1 */ } if (mg->mg_len) Perl_dump_indent(aTHX_ level, file, " MG_LEN = %ld\n", (long)mg->mg_len); if (mg->mg_ptr) { Perl_dump_indent(aTHX_ level, file, " MG_PTR = 0x%"UVxf, PTR2UV(mg->mg_ptr)); if (mg->mg_len >= 0) { if (mg->mg_type != PERL_MAGIC_utf8) { SV *sv = newSVpvn("", 0); PerlIO_printf(file, " %s", pv_display(sv, mg->mg_ptr, mg->mg_len, 0, pvlim)); SvREFCNT_dec(sv); } } else if (mg->mg_len == HEf_SVKEY) { PerlIO_puts(file, " => HEf_SVKEY\n"); do_sv_dump(level+2, file, (SV*)((mg)->mg_ptr), nest+1, maxnest, dumpops, pvlim); /* MG is already +1 */ continue; } else PerlIO_puts(file, " ???? - please notify IZ"); PerlIO_putc(file, '\n'); } if (mg->mg_type == PERL_MAGIC_utf8) { STRLEN *cache = (STRLEN *) mg->mg_ptr; if (cache) { IV i; for (i = 0; i < PERL_MAGIC_UTF8_CACHESIZE; i++) Perl_dump_indent(aTHX_ level, file, " %2"IVdf": %"UVuf" -> %"UVuf"\n", i, (UV)cache[i * 2], (UV)cache[i * 2 + 1]); } } } } void Perl_magic_dump(pTHX_ MAGIC *mg) { do_magic_dump(0, Perl_debug_log, mg, 0, 0, 0, 0); } void Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv) { Perl_dump_indent(aTHX_ level, file, "%s = 0x%"UVxf, name, PTR2UV(sv)); if (sv && HvNAME(sv)) PerlIO_printf(file, "\t\"%s\"\n", HvNAME(sv)); else PerlIO_putc(file, '\n'); } void Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv) { Perl_dump_indent(aTHX_ level, file, "%s = 0x%"UVxf, name, PTR2UV(sv)); if (sv && GvNAME(sv)) PerlIO_printf(file, "\t\"%s\"\n", GvNAME(sv)); else PerlIO_putc(file, '\n'); } void Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv) { Perl_dump_indent(aTHX_ level, file, "%s = 0x%"UVxf, name, PTR2UV(sv)); if (sv && GvNAME(sv)) { PerlIO_printf(file, "\t\""); if (GvSTASH(sv) && HvNAME(GvSTASH(sv))) PerlIO_printf(file, "%s\" :: \"", HvNAME(GvSTASH(sv))); PerlIO_printf(file, "%s\"\n", GvNAME(sv)); } else PerlIO_putc(file, '\n'); } void Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim) { SV *d; char *s; U32 flags; U32 type; if (!sv) { Perl_dump_indent(aTHX_ level, file, "SV = 0\n"); return; } flags = SvFLAGS(sv); type = SvTYPE(sv); d = Perl_newSVpvf(aTHX_ "(0x%"UVxf") at 0x%"UVxf"\n%*s REFCNT = %"IVdf"\n%*s FLAGS = (", PTR2UV(SvANY(sv)), PTR2UV(sv), (int)(PL_dumpindent*level), "", (IV)SvREFCNT(sv), (int)(PL_dumpindent*level), ""); if (flags & SVs_PADBUSY) sv_catpv(d, "PADBUSY,"); if (flags & SVs_PADTMP) sv_catpv(d, "PADTMP,"); if (flags & SVs_PADMY) sv_catpv(d, "PADMY,"); if (flags & SVs_TEMP) sv_catpv(d, "TEMP,"); if (flags & SVs_OBJECT) sv_catpv(d, "OBJECT,"); if (flags & SVs_GMG) sv_catpv(d, "GMG,"); if (flags & SVs_SMG) sv_catpv(d, "SMG,"); if (flags & SVs_RMG) sv_catpv(d, "RMG,"); if (flags & SVf_IOK) sv_catpv(d, "IOK,"); if (flags & SVf_NOK) sv_catpv(d, "NOK,"); if (flags & SVf_POK) sv_catpv(d, "POK,"); if (flags & SVf_ROK) { sv_catpv(d, "ROK,"); if (SvWEAKREF(sv)) sv_catpv(d, "WEAKREF,"); } if (flags & SVf_OOK) sv_catpv(d, "OOK,"); if (flags & SVf_FAKE) sv_catpv(d, "FAKE,"); if (flags & SVf_READONLY) sv_catpv(d, "READONLY,"); if (flags & SVf_AMAGIC && type != SVt_PVHV) sv_catpv(d, "OVERLOAD,"); if (flags & SVp_IOK) sv_catpv(d, "pIOK,"); if (flags & SVp_NOK) sv_catpv(d, "pNOK,"); if (flags & SVp_POK) sv_catpv(d, "pPOK,"); if (flags & SVp_SCREAM && type != SVt_PVHV) sv_catpv(d, "SCREAM,"); switch (type) { case SVt_PVCV: case SVt_PVFM: if (CvANON(sv)) sv_catpv(d, "ANON,"); if (CvUNIQUE(sv)) sv_catpv(d, "UNIQUE,"); if (CvCLONE(sv)) sv_catpv(d, "CLONE,"); if (CvCLONED(sv)) sv_catpv(d, "CLONED,"); if (CvCONST(sv)) sv_catpv(d, "CONST,"); if (CvNODEBUG(sv)) sv_catpv(d, "NODEBUG,"); if (SvCOMPILED(sv)) sv_catpv(d, "COMPILED,"); if (CvLVALUE(sv)) sv_catpv(d, "LVALUE,"); if (CvMETHOD(sv)) sv_catpv(d, "METHOD,"); if (CvLOCKED(sv)) sv_catpv(d, "LOCKED,"); if (CvWEAKOUTSIDE(sv)) sv_catpv(d, "WEAKOUTSIDE,"); break; case SVt_PVHV: if (HvSHAREKEYS(sv)) sv_catpv(d, "SHAREKEYS,"); if (HvLAZYDEL(sv)) sv_catpv(d, "LAZYDEL,"); if (HvHASKFLAGS(sv)) sv_catpv(d, "HASKFLAGS,"); if (HvREHASH(sv)) sv_catpv(d, "REHASH,"); if (flags & SVphv_CLONEABLE) sv_catpv(d, "CLONEABLE,"); break; case SVt_PVGV: if (GvINTRO(sv)) sv_catpv(d, "INTRO,"); if (GvMULTI(sv)) sv_catpv(d, "MULTI,"); if (GvUNIQUE(sv)) sv_catpv(d, "UNIQUE,"); if (GvASSUMECV(sv)) sv_catpv(d, "ASSUMECV,"); if (GvIN_PAD(sv)) sv_catpv(d, "IN_PAD,"); if (flags & SVpad_OUR) sv_catpv(d, "OUR,"); if (GvIMPORTED(sv)) { sv_catpv(d, "IMPORT"); if (GvIMPORTED(sv) == GVf_IMPORTED) sv_catpv(d, "ALL,"); else { sv_catpv(d, "("); if (GvIMPORTED_SV(sv)) sv_catpv(d, " SV"); if (GvIMPORTED_AV(sv)) sv_catpv(d, " AV"); if (GvIMPORTED_HV(sv)) sv_catpv(d, " HV"); if (GvIMPORTED_CV(sv)) sv_catpv(d, " CV"); sv_catpv(d, " ),"); } } /* FALL THROUGH */ default: if (SvEVALED(sv)) sv_catpv(d, "EVALED,"); if (SvIsUV(sv)) sv_catpv(d, "IsUV,"); break; case SVt_PVBM: if (SvTAIL(sv)) sv_catpv(d, "TAIL,"); if (SvVALID(sv)) sv_catpv(d, "VALID,"); break; case SVt_PVMG: if (flags & SVpad_TYPED) sv_catpv(d, "TYPED,"); break; } /* SVphv_SHAREKEYS is also 0x20000000 */ if ((type != SVt_PVHV) && SvUTF8(sv)) sv_catpv(d, "UTF8"); if (*(SvEND(d) - 1) == ',') SvPVX(d)[--SvCUR(d)] = '\0'; sv_catpv(d, ")"); s = SvPVX(d); Perl_dump_indent(aTHX_ level, file, "SV = "); switch (type) { case SVt_NULL: PerlIO_printf(file, "NULL%s\n", s); SvREFCNT_dec(d); return; case SVt_IV: PerlIO_printf(file, "IV%s\n", s); break; case SVt_NV: PerlIO_printf(file, "NV%s\n", s); break; case SVt_RV: PerlIO_printf(file, "RV%s\n", s); break; case SVt_PV: PerlIO_printf(file, "PV%s\n", s); break; case SVt_PVIV: PerlIO_printf(file, "PVIV%s\n", s); break; case SVt_PVNV: PerlIO_printf(file, "PVNV%s\n", s); break; case SVt_PVBM: PerlIO_printf(file, "PVBM%s\n", s); break; case SVt_PVMG: PerlIO_printf(file, "PVMG%s\n", s); break; case SVt_PVLV: PerlIO_printf(file, "PVLV%s\n", s); break; case SVt_PVAV: PerlIO_printf(file, "PVAV%s\n", s); break; case SVt_PVHV: PerlIO_printf(file, "PVHV%s\n", s); break; case SVt_PVCV: PerlIO_printf(file, "PVCV%s\n", s); break; case SVt_PVGV: PerlIO_printf(file, "PVGV%s\n", s); break; case SVt_PVFM: PerlIO_printf(file, "PVFM%s\n", s); break; case SVt_PVIO: PerlIO_printf(file, "PVIO%s\n", s); break; default: PerlIO_printf(file, "UNKNOWN(0x%"UVxf") %s\n", (UV)type, s); SvREFCNT_dec(d); return; } if (type >= SVt_PVIV || type == SVt_IV) { if (SvIsUV(sv)) Perl_dump_indent(aTHX_ level, file, " UV = %"UVuf, (UV)SvUVX(sv)); else Perl_dump_indent(aTHX_ level, file, " IV = %"IVdf, (IV)SvIVX(sv)); if (SvOOK(sv)) PerlIO_printf(file, " (OFFSET)"); PerlIO_putc(file, '\n'); } if (type >= SVt_PVNV || type == SVt_NV) { STORE_NUMERIC_LOCAL_SET_STANDARD(); /* %Vg doesn't work? --jhi */ #ifdef USE_LONG_DOUBLE Perl_dump_indent(aTHX_ level, file, " NV = %.*" PERL_PRIgldbl "\n", LDBL_DIG, SvNVX(sv)); #else Perl_dump_indent(aTHX_ level, file, " NV = %.*g\n", DBL_DIG, SvNVX(sv)); #endif RESTORE_NUMERIC_LOCAL(); } if (SvROK(sv)) { Perl_dump_indent(aTHX_ level, file, " RV = 0x%"UVxf"\n", PTR2UV(SvRV(sv))); if (nest < maxnest) do_sv_dump(level+1, file, SvRV(sv), nest+1, maxnest, dumpops, pvlim); } if (type < SVt_PV) { SvREFCNT_dec(d); return; } if (type <= SVt_PVLV) { if (SvPVX(sv)) { Perl_dump_indent(aTHX_ level, file," PV = 0x%"UVxf" ", PTR2UV(SvPVX(sv))); if (SvOOK(sv)) PerlIO_printf(file, "( %s . ) ", pv_display(d, SvPVX(sv)-SvIVX(sv), SvIVX(sv), 0, pvlim)); PerlIO_printf(file, "%s", pv_display(d, SvPVX(sv), SvCUR(sv), SvLEN(sv), pvlim)); if (SvUTF8(sv)) /* the 8? \x{....} */ PerlIO_printf(file, " [UTF8 \"%s\"]", sv_uni_display(d, sv, 8 * sv_len_utf8(sv), UNI_DISPLAY_QQ)); PerlIO_printf(file, "\n"); Perl_dump_indent(aTHX_ level, file, " CUR = %"IVdf"\n", (IV)SvCUR(sv)); Perl_dump_indent(aTHX_ level, file, " LEN = %"IVdf"\n", (IV)SvLEN(sv)); } else Perl_dump_indent(aTHX_ level, file, " PV = 0\n"); } if (type >= SVt_PVMG) { if (SvMAGIC(sv)) do_magic_dump(level, file, SvMAGIC(sv), nest, maxnest, dumpops, pvlim); if (SvSTASH(sv)) do_hv_dump(level, file, " STASH", SvSTASH(sv)); } switch (type) { case SVt_PVLV: Perl_dump_indent(aTHX_ level, file, " TYPE = %c\n", LvTYPE(sv)); Perl_dump_indent(aTHX_ level, file, " TARGOFF = %"IVdf"\n", (IV)LvTARGOFF(sv)); Perl_dump_indent(aTHX_ level, file, " TARGLEN = %"IVdf"\n", (IV)LvTARGLEN(sv)); Perl_dump_indent(aTHX_ level, file, " TARG = 0x%"UVxf"\n", PTR2UV(LvTARG(sv))); if (LvTYPE(sv) != 't' && LvTYPE(sv) != 'T') do_sv_dump(level+1, file, LvTARG(sv), nest+1, maxnest, dumpops, pvlim); break; case SVt_PVAV: Perl_dump_indent(aTHX_ level, file, " ARRAY = 0x%"UVxf, PTR2UV(AvARRAY(sv))); if (AvARRAY(sv) != AvALLOC(sv)) { PerlIO_printf(file, " (offset=%"IVdf")\n", (IV)(AvARRAY(sv) - AvALLOC(sv))); Perl_dump_indent(aTHX_ level, file, " ALLOC = 0x%"UVxf"\n", PTR2UV(AvALLOC(sv))); } else PerlIO_putc(file, '\n'); Perl_dump_indent(aTHX_ level, file, " FILL = %"IVdf"\n", (IV)AvFILLp(sv)); Perl_dump_indent(aTHX_ level, file, " MAX = %"IVdf"\n", (IV)AvMAX(sv)); Perl_dump_indent(aTHX_ level, file, " ARYLEN = 0x%"UVxf"\n", PTR2UV(AvARYLEN(sv))); flags = AvFLAGS(sv); sv_setpv(d, ""); if (flags & AVf_REAL) sv_catpv(d, ",REAL"); if (flags & AVf_REIFY) sv_catpv(d, ",REIFY"); if (flags & AVf_REUSED) sv_catpv(d, ",REUSED"); Perl_dump_indent(aTHX_ level, file, " FLAGS = (%s)\n", SvCUR(d) ? SvPVX(d) + 1 : ""); if (nest < maxnest && av_len((AV*)sv) >= 0) { int count; for (count = 0; count <= av_len((AV*)sv) && count < maxnest; count++) { SV** elt = av_fetch((AV*)sv,count,0); Perl_dump_indent(aTHX_ level + 1, file, "Elt No. %"IVdf"\n", (IV)count); if (elt) do_sv_dump(level+1, file, *elt, nest+1, maxnest, dumpops, pvlim); } } break; case SVt_PVHV: Perl_dump_indent(aTHX_ level, file, " ARRAY = 0x%"UVxf, PTR2UV(HvARRAY(sv))); if (HvARRAY(sv) && HvKEYS(sv)) { /* Show distribution of HEs in the ARRAY */ int freq[200]; #define FREQ_MAX (sizeof freq / sizeof freq[0] - 1) int i; int max = 0; U32 pow2 = 2, keys = HvKEYS(sv); NV theoret, sum = 0; PerlIO_printf(file, " ("); Zero(freq, FREQ_MAX + 1, int); for (i = 0; (STRLEN)i <= HvMAX(sv); i++) { HE* h; int count = 0; for (h = HvARRAY(sv)[i]; h; h = HeNEXT(h)) count++; if (count > FREQ_MAX) count = FREQ_MAX; freq[count]++; if (max < count) max = count; } for (i = 0; i <= max; i++) { if (freq[i]) { PerlIO_printf(file, "%d%s:%d", i, (i == FREQ_MAX) ? "+" : "", freq[i]); if (i != max) PerlIO_printf(file, ", "); } } PerlIO_putc(file, ')'); /* The "quality" of a hash is defined as the total number of comparisons needed to access every element once, relative to the expected number needed for a random hash. The total number of comparisons is equal to the sum of the squares of the number of entries in each bucket. For a random hash of n keys into k buckets, the expected value is n + n(n-1)/2k */ for (i = max; i > 0; i--) { /* Precision: count down. */ sum += freq[i] * i * i; } while ((keys = keys >> 1)) pow2 = pow2 << 1; theoret = HvKEYS(sv); theoret += theoret * (theoret-1)/pow2; PerlIO_putc(file, '\n'); Perl_dump_indent(aTHX_ level, file, " hash quality = %.1"NVff"%%", theoret/sum*100); } PerlIO_putc(file, '\n'); Perl_dump_indent(aTHX_ level, file, " KEYS = %"IVdf"\n", (IV)HvKEYS(sv)); Perl_dump_indent(aTHX_ level, file, " FILL = %"IVdf"\n", (IV)HvFILL(sv)); Perl_dump_indent(aTHX_ level, file, " MAX = %"IVdf"\n", (IV)HvMAX(sv)); Perl_dump_indent(aTHX_ level, file, " RITER = %"IVdf"\n", (IV)HvRITER(sv)); Perl_dump_indent(aTHX_ level, file, " EITER = 0x%"UVxf"\n", PTR2UV(HvEITER(sv))); if (HvPMROOT(sv)) Perl_dump_indent(aTHX_ level, file, " PMROOT = 0x%"UVxf"\n", PTR2UV(HvPMROOT(sv))); if (HvNAME(sv)) Perl_dump_indent(aTHX_ level, file, " NAME = \"%s\"\n", HvNAME(sv)); if (nest < maxnest && !HvEITER(sv)) { /* Try to preserve iterator */ HE *he; HV *hv = (HV*)sv; int count = maxnest - nest; hv_iterinit(hv); while ((he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS)) && count--) { SV *elt, *keysv; char *keypv; STRLEN len; U32 hash = HeHASH(he); keysv = hv_iterkeysv(he); keypv = SvPV(keysv, len); elt = hv_iterval(hv, he); Perl_dump_indent(aTHX_ level+1, file, "Elt %s ", pv_display(d, keypv, len, 0, pvlim)); if (SvUTF8(keysv)) PerlIO_printf(file, "[UTF8 \"%s\"] ", sv_uni_display(d, keysv, 8 * sv_len_utf8(keysv), UNI_DISPLAY_QQ)); if (HeKREHASH(he)) PerlIO_printf(file, "[REHASH] "); PerlIO_printf(file, "HASH = 0x%"UVxf"\n", (UV)hash); do_sv_dump(level+1, file, elt, nest+1, maxnest, dumpops, pvlim); } hv_iterinit(hv); /* Return to status quo */ } break; case SVt_PVCV: if (SvPOK(sv)) Perl_dump_indent(aTHX_ level, file, " PROTOTYPE = \"%s\"\n", SvPV_nolen(sv)); /* FALL THROUGH */ case SVt_PVFM: do_hv_dump(level, file, " COMP_STASH", CvSTASH(sv)); if (CvSTART(sv)) Perl_dump_indent(aTHX_ level, file, " START = 0x%"UVxf" ===> %"IVdf"\n", PTR2UV(CvSTART(sv)), (IV)CvSTART(sv)->op_seq); Perl_dump_indent(aTHX_ level, file, " ROOT = 0x%"UVxf"\n", PTR2UV(CvROOT(sv))); if (CvROOT(sv) && dumpops) do_op_dump(level+1, file, CvROOT(sv)); Perl_dump_indent(aTHX_ level, file, " XSUB = 0x%"UVxf"\n", PTR2UV(CvXSUB(sv))); Perl_dump_indent(aTHX_ level, file, " XSUBANY = %"IVdf"\n", (IV)CvXSUBANY(sv).any_i32); do_gvgv_dump(level, file, " GVGV::GV", CvGV(sv)); Perl_dump_indent(aTHX_ level, file, " FILE = \"%s\"\n", CvFILE(sv)); Perl_dump_indent(aTHX_ level, file, " DEPTH = %"IVdf"\n", (IV)CvDEPTH(sv)); #ifdef USE_5005THREADS Perl_dump_indent(aTHX_ level, file, " MUTEXP = 0x%"UVxf"\n", PTR2UV(CvMUTEXP(sv))); Perl_dump_indent(aTHX_ level, file, " OWNER = 0x%"UVxf"\n", PTR2UV(CvOWNER(sv))); #endif /* USE_5005THREADS */ Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%"UVxf"\n", (UV)CvFLAGS(sv)); Perl_dump_indent(aTHX_ level, file, " OUTSIDE_SEQ = %"UVuf"\n", (UV)CvOUTSIDE_SEQ(sv)); if (type == SVt_PVFM) Perl_dump_indent(aTHX_ level, file, " LINES = %"IVdf"\n", (IV)FmLINES(sv)); Perl_dump_indent(aTHX_ level, file, " PADLIST = 0x%"UVxf"\n", PTR2UV(CvPADLIST(sv))); if (nest < maxnest) { do_dump_pad(level+1, file, CvPADLIST(sv), 0); } { CV *outside = CvOUTSIDE(sv); Perl_dump_indent(aTHX_ level, file, " OUTSIDE = 0x%"UVxf" (%s)\n", PTR2UV(outside), (!outside ? "null" : CvANON(outside) ? "ANON" : (outside == PL_main_cv) ? "MAIN" : CvUNIQUE(outside) ? "UNIQUE" : CvGV(outside) ? GvNAME(CvGV(outside)) : "UNDEFINED")); } if (nest < maxnest && (CvCLONE(sv) || CvCLONED(sv))) do_sv_dump(level+1, file, (SV*)CvOUTSIDE(sv), nest+1, maxnest, dumpops, pvlim); break; case SVt_PVGV: Perl_dump_indent(aTHX_ level, file, " NAME = \"%s\"\n", GvNAME(sv)); Perl_dump_indent(aTHX_ level, file, " NAMELEN = %"IVdf"\n", (IV)GvNAMELEN(sv)); do_hv_dump (level, file, " GvSTASH", GvSTASH(sv)); Perl_dump_indent(aTHX_ level, file, " GP = 0x%"UVxf"\n", PTR2UV(GvGP(sv))); if (!GvGP(sv)) break; Perl_dump_indent(aTHX_ level, file, " SV = 0x%"UVxf"\n", PTR2UV(GvSV(sv))); Perl_dump_indent(aTHX_ level, file, " REFCNT = %"IVdf"\n", (IV)GvREFCNT(sv)); Perl_dump_indent(aTHX_ level, file, " IO = 0x%"UVxf"\n", PTR2UV(GvIOp(sv))); Perl_dump_indent(aTHX_ level, file, " FORM = 0x%"UVxf" \n", PTR2UV(GvFORM(sv))); Perl_dump_indent(aTHX_ level, file, " AV = 0x%"UVxf"\n", PTR2UV(GvAV(sv))); Perl_dump_indent(aTHX_ level, file, " HV = 0x%"UVxf"\n", PTR2UV(GvHV(sv))); Perl_dump_indent(aTHX_ level, file, " CV = 0x%"UVxf"\n", PTR2UV(GvCV(sv))); Perl_dump_indent(aTHX_ level, file, " CVGEN = 0x%"UVxf"\n", (UV)GvCVGEN(sv)); Perl_dump_indent(aTHX_ level, file, " GPFLAGS = 0x%"UVxf"\n", (UV)GvGPFLAGS(sv)); Perl_dump_indent(aTHX_ level, file, " LINE = %"IVdf"\n", (IV)GvLINE(sv)); Perl_dump_indent(aTHX_ level, file, " FILE = \"%s\"\n", GvFILE(sv)); Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%"UVxf"\n", (UV)GvFLAGS(sv)); do_gv_dump (level, file, " EGV", GvEGV(sv)); break; case SVt_PVIO: Perl_dump_indent(aTHX_ level, file, " IFP = 0x%"UVxf"\n", PTR2UV(IoIFP(sv))); Perl_dump_indent(aTHX_ level, file, " OFP = 0x%"UVxf"\n", PTR2UV(IoOFP(sv))); Perl_dump_indent(aTHX_ level, file, " DIRP = 0x%"UVxf"\n", PTR2UV(IoDIRP(sv))); Perl_dump_indent(aTHX_ level, file, " LINES = %"IVdf"\n", (IV)IoLINES(sv)); Perl_dump_indent(aTHX_ level, file, " PAGE = %"IVdf"\n", (IV)IoPAGE(sv)); Perl_dump_indent(aTHX_ level, file, " PAGE_LEN = %"IVdf"\n", (IV)IoPAGE_LEN(sv)); Perl_dump_indent(aTHX_ level, file, " LINES_LEFT = %"IVdf"\n", (IV)IoLINES_LEFT(sv)); if (IoTOP_NAME(sv)) Perl_dump_indent(aTHX_ level, file, " TOP_NAME = \"%s\"\n", IoTOP_NAME(sv)); do_gv_dump (level, file, " TOP_GV", IoTOP_GV(sv)); if (IoFMT_NAME(sv)) Perl_dump_indent(aTHX_ level, file, " FMT_NAME = \"%s\"\n", IoFMT_NAME(sv)); do_gv_dump (level, file, " FMT_GV", IoFMT_GV(sv)); if (IoBOTTOM_NAME(sv)) Perl_dump_indent(aTHX_ level, file, " BOTTOM_NAME = \"%s\"\n", IoBOTTOM_NAME(sv)); do_gv_dump (level, file, " BOTTOM_GV", IoBOTTOM_GV(sv)); Perl_dump_indent(aTHX_ level, file, " SUBPROCESS = %"IVdf"\n", (IV)IoSUBPROCESS(sv)); if (isPRINT(IoTYPE(sv))) Perl_dump_indent(aTHX_ level, file, " TYPE = '%c'\n", IoTYPE(sv)); else Perl_dump_indent(aTHX_ level, file, " TYPE = '\\%o'\n", IoTYPE(sv)); Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%"UVxf"\n", (UV)IoFLAGS(sv)); break; } SvREFCNT_dec(d); } void Perl_sv_dump(pTHX_ SV *sv) { do_sv_dump(0, Perl_debug_log, sv, 0, 0, 0, 0); } int Perl_runops_debug(pTHX) { if (!PL_op) { if (ckWARN_d(WARN_DEBUGGING)) Perl_warner(aTHX_ packWARN(WARN_DEBUGGING), "NULL OP IN RUN"); return 0; } do { PERL_ASYNC_CHECK(); if (PL_debug) { if (PL_watchaddr != 0 && *PL_watchaddr != PL_watchok) PerlIO_printf(Perl_debug_log, "WARNING: %"UVxf" changed from %"UVxf" to %"UVxf"\n", PTR2UV(PL_watchaddr), PTR2UV(PL_watchok), PTR2UV(*PL_watchaddr)); if (DEBUG_s_TEST_) { if (DEBUG_v_TEST_) { PerlIO_printf(Perl_debug_log, "\n"); deb_stack_all(); } else debstack(); } if (DEBUG_t_TEST_) debop(PL_op); if (DEBUG_P_TEST_) debprof(PL_op); } } while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX))); TAINT_NOT; return 0; } I32 Perl_debop(pTHX_ OP *o) { AV *padlist, *comppad; CV *cv; SV *sv; if (CopSTASH_eq(PL_curcop, PL_debstash) && !DEBUG_J_TEST_) return 0; Perl_deb(aTHX_ "%s", OP_NAME(o)); switch (o->op_type) { case OP_CONST: PerlIO_printf(Perl_debug_log, "(%s)", SvPEEK(cSVOPo_sv)); break; case OP_GVSV: case OP_GV: if (cGVOPo_gv) { sv = NEWSV(0,0); gv_fullname3(sv, cGVOPo_gv, Nullch); PerlIO_printf(Perl_debug_log, "(%s)", SvPV_nolen(sv)); SvREFCNT_dec(sv); } else PerlIO_printf(Perl_debug_log, "(NULL)"); break; case OP_PADSV: case OP_PADAV: case OP_PADHV: /* print the lexical's name */ cv = deb_curcv(cxstack_ix); if (cv) { padlist = CvPADLIST(cv); comppad = (AV*)(*av_fetch(padlist, 0, FALSE)); sv = *av_fetch(comppad, o->op_targ, FALSE); } else sv = Nullsv; if (sv) PerlIO_printf(Perl_debug_log, "(%s)", SvPV_nolen(sv)); else PerlIO_printf(Perl_debug_log, "[%"UVuf"]", (UV)o->op_targ); break; default: break; } PerlIO_printf(Perl_debug_log, "\n"); return 0; } STATIC CV* S_deb_curcv(pTHX_ I32 ix) { PERL_CONTEXT *cx = &cxstack[ix]; if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT) return cx->blk_sub.cv; else if (CxTYPE(cx) == CXt_EVAL && !CxTRYBLOCK(cx)) return PL_compcv; else if (ix == 0 && PL_curstackinfo->si_type == PERLSI_MAIN) return PL_main_cv; else if (ix <= 0) return Nullcv; else return deb_curcv(ix - 1); } void Perl_watch(pTHX_ char **addr) { PL_watchaddr = addr; PL_watchok = *addr; PerlIO_printf(Perl_debug_log, "WATCHING, %"UVxf" is currently %"UVxf"\n", PTR2UV(PL_watchaddr), PTR2UV(PL_watchok)); } STATIC void S_debprof(pTHX_ OP *o) { if (CopSTASH_eq(PL_curcop, PL_debstash) && !DEBUG_J_TEST_) return; if (!PL_profiledata) Newz(000, PL_profiledata, MAXO, U32); ++PL_profiledata[o->op_type]; } void Perl_debprofdump(pTHX) { unsigned i; if (!PL_profiledata) return; for (i = 0; i < MAXO; i++) { if (PL_profiledata[i]) PerlIO_printf(Perl_debug_log, "%5lu %s\n", (unsigned long)PL_profiledata[i], PL_op_name[i]); } } ================================================ FILE: tests/perlbench/embed.h ================================================ /* * embed.h * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by embed.pl from data in embed.fnc, embed.pl, * pp.sym, intrpvar.h, perlvars.h and thrdvar.h. * Any changes made here will be lost! * * Edit those files and run 'make regen_headers' to effect changes. */ /* (Doing namespace management portably in C is really gross.) */ /* By defining PERL_NO_SHORT_NAMES (not done by default) the short forms * (like warn instead of Perl_warn) for the API are not defined. * Not defining the short forms is a good thing for cleaner embedding. */ #ifndef PERL_NO_SHORT_NAMES /* Hide global symbols */ #if !defined(PERL_IMPLICIT_CONTEXT) #if defined(PERL_IMPLICIT_SYS) #endif #define doing_taint Perl_doing_taint #if defined(USE_ITHREADS) # if defined(PERL_IMPLICIT_SYS) # endif #endif #if defined(MYMALLOC) #ifdef PERL_CORE #define malloced_size Perl_malloced_size #endif #endif #define get_context Perl_get_context #define set_context Perl_set_context #define amagic_call Perl_amagic_call #define Gv_AMupdate Perl_Gv_AMupdate #define gv_handler Perl_gv_handler #ifdef PERL_CORE #define append_elem Perl_append_elem #define append_list Perl_append_list #define apply Perl_apply #endif #define apply_attrs_string Perl_apply_attrs_string #define avhv_delete_ent Perl_avhv_delete_ent #define avhv_exists_ent Perl_avhv_exists_ent #define avhv_fetch_ent Perl_avhv_fetch_ent #define avhv_store_ent Perl_avhv_store_ent #define avhv_iternext Perl_avhv_iternext #define avhv_iterval Perl_avhv_iterval #define avhv_keys Perl_avhv_keys #define av_clear Perl_av_clear #define av_delete Perl_av_delete #define av_exists Perl_av_exists #define av_extend Perl_av_extend #ifdef PERL_CORE #define av_fake Perl_av_fake #endif #define av_fetch Perl_av_fetch #define av_fill Perl_av_fill #define av_len Perl_av_len #define av_make Perl_av_make #define av_pop Perl_av_pop #define av_push Perl_av_push #ifdef PERL_CORE #define av_reify Perl_av_reify #endif #define av_shift Perl_av_shift #define av_store Perl_av_store #define av_undef Perl_av_undef #define av_unshift Perl_av_unshift #ifdef PERL_CORE #define bind_match Perl_bind_match #define block_end Perl_block_end #endif #define block_gimme Perl_block_gimme #ifdef PERL_CORE #define block_start Perl_block_start #define boot_core_UNIVERSAL Perl_boot_core_UNIVERSAL #define boot_core_PerlIO Perl_boot_core_PerlIO #endif #define call_list Perl_call_list #ifdef PERL_CORE #define cando Perl_cando #endif #define cast_ulong Perl_cast_ulong #define cast_i32 Perl_cast_i32 #define cast_iv Perl_cast_iv #define cast_uv Perl_cast_uv #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) #define my_chsize Perl_my_chsize #endif #if defined(USE_5005THREADS) #define condpair_magic Perl_condpair_magic #endif #ifdef PERL_CORE #define convert Perl_convert #endif #define croak Perl_croak #define vcroak Perl_vcroak #if defined(PERL_IMPLICIT_CONTEXT) #define croak_nocontext Perl_croak_nocontext #define die_nocontext Perl_die_nocontext #define deb_nocontext Perl_deb_nocontext #define form_nocontext Perl_form_nocontext #define load_module_nocontext Perl_load_module_nocontext #define mess_nocontext Perl_mess_nocontext #define warn_nocontext Perl_warn_nocontext #define warner_nocontext Perl_warner_nocontext #define newSVpvf_nocontext Perl_newSVpvf_nocontext #define sv_catpvf_nocontext Perl_sv_catpvf_nocontext #define sv_setpvf_nocontext Perl_sv_setpvf_nocontext #define sv_catpvf_mg_nocontext Perl_sv_catpvf_mg_nocontext #define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext #define fprintf_nocontext Perl_fprintf_nocontext #define printf_nocontext Perl_printf_nocontext #endif #ifdef PERL_CORE #define cv_ckproto Perl_cv_ckproto #define cv_clone Perl_cv_clone #endif #define cv_const_sv Perl_cv_const_sv #ifdef PERL_CORE #define op_const_sv Perl_op_const_sv #endif #define cv_undef Perl_cv_undef #define cx_dump Perl_cx_dump #define filter_add Perl_filter_add #define filter_del Perl_filter_del #define filter_read Perl_filter_read #define get_op_descs Perl_get_op_descs #define get_op_names Perl_get_op_names #ifdef PERL_CORE #define get_no_modify Perl_get_no_modify #define get_opargs Perl_get_opargs #endif #define get_ppaddr Perl_get_ppaddr #if defined(PERL_CORE) || defined(PERL_EXT) #define cxinc Perl_cxinc #endif #define deb Perl_deb #define vdeb Perl_vdeb #define debprofdump Perl_debprofdump #define debop Perl_debop #define debstack Perl_debstack #define debstackptrs Perl_debstackptrs #define delimcpy Perl_delimcpy #ifdef PERL_CORE #define deprecate Perl_deprecate #define deprecate_old Perl_deprecate_old #endif #define die Perl_die #ifdef PERL_CORE #define vdie Perl_vdie #define die_where Perl_die_where #endif #define dounwind Perl_dounwind #ifdef PERL_CORE #define do_aexec Perl_do_aexec #define do_aexec5 Perl_do_aexec5 #endif #define do_binmode Perl_do_binmode #ifdef PERL_CORE #define do_chop Perl_do_chop #endif #define do_close Perl_do_close #ifdef PERL_CORE #define do_eof Perl_do_eof #define do_exec Perl_do_exec #endif #if defined(WIN32) #define do_aspawn Perl_do_aspawn #define do_spawn Perl_do_spawn #define do_spawn_nowait Perl_do_spawn_nowait #endif #if !defined(WIN32) #ifdef PERL_CORE #define do_exec3 Perl_do_exec3 #endif #endif #ifdef PERL_CORE #define do_execfree Perl_do_execfree #endif #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) #ifdef PERL_CORE #define do_ipcctl Perl_do_ipcctl #define do_ipcget Perl_do_ipcget #define do_msgrcv Perl_do_msgrcv #define do_msgsnd Perl_do_msgsnd #define do_semop Perl_do_semop #define do_shmio Perl_do_shmio #endif #endif #define do_join Perl_do_join #ifdef PERL_CORE #define do_kv Perl_do_kv #endif #define do_open Perl_do_open #define do_open9 Perl_do_open9 #define do_openn Perl_do_openn #ifdef PERL_CORE #define do_pipe Perl_do_pipe #define do_print Perl_do_print #define do_readline Perl_do_readline #define do_chomp Perl_do_chomp #define do_seek Perl_do_seek #endif #define do_sprintf Perl_do_sprintf #ifdef PERL_CORE #define do_sysseek Perl_do_sysseek #define do_tell Perl_do_tell #define do_trans Perl_do_trans #define do_vecget Perl_do_vecget #define do_vecset Perl_do_vecset #define do_vop Perl_do_vop #define dofile Perl_dofile #endif #define dowantarray Perl_dowantarray #define dump_all Perl_dump_all #define dump_eval Perl_dump_eval #if defined(DUMP_FDS) #define dump_fds Perl_dump_fds #endif #define dump_form Perl_dump_form #define gv_dump Perl_gv_dump #define op_dump Perl_op_dump #define pmop_dump Perl_pmop_dump #define dump_packsubs Perl_dump_packsubs #define dump_sub Perl_dump_sub #define fbm_compile Perl_fbm_compile #define fbm_instr Perl_fbm_instr #ifdef PERL_CORE #define find_script Perl_find_script #endif #if defined(USE_5005THREADS) #ifdef PERL_CORE #define find_threadsv Perl_find_threadsv #endif #endif #ifdef PERL_CORE #define force_list Perl_force_list #define fold_constants Perl_fold_constants #endif #define form Perl_form #define vform Perl_vform #define free_tmps Perl_free_tmps #ifdef PERL_CORE #define gen_constant_list Perl_gen_constant_list #endif #if !defined(HAS_GETENV_LEN) #ifdef PERL_CORE #define getenv_len Perl_getenv_len #endif #endif #define gp_free Perl_gp_free #define gp_ref Perl_gp_ref #define gv_AVadd Perl_gv_AVadd #define gv_HVadd Perl_gv_HVadd #define gv_IOadd Perl_gv_IOadd #define gv_autoload4 Perl_gv_autoload4 #define gv_check Perl_gv_check #define gv_efullname Perl_gv_efullname #define gv_efullname4 Perl_gv_efullname4 #define gv_fetchfile Perl_gv_fetchfile #define gv_fetchmeth Perl_gv_fetchmeth #define gv_fetchmeth_autoload Perl_gv_fetchmeth_autoload #define gv_fetchmethod Perl_gv_fetchmethod #define gv_fetchmethod_autoload Perl_gv_fetchmethod_autoload #define gv_fetchpv Perl_gv_fetchpv #define gv_fullname Perl_gv_fullname #define gv_fullname4 Perl_gv_fullname4 #define gv_init Perl_gv_init #define gv_stashpv Perl_gv_stashpv #define gv_stashpvn Perl_gv_stashpvn #define gv_stashsv Perl_gv_stashsv #define hv_clear Perl_hv_clear #define hv_delayfree_ent Perl_hv_delayfree_ent #define hv_delete Perl_hv_delete #define hv_delete_ent Perl_hv_delete_ent #define hv_exists Perl_hv_exists #define hv_exists_ent Perl_hv_exists_ent #define hv_fetch Perl_hv_fetch #define hv_fetch_ent Perl_hv_fetch_ent #define hv_free_ent Perl_hv_free_ent #define hv_iterinit Perl_hv_iterinit #define hv_iterkey Perl_hv_iterkey #define hv_iterkeysv Perl_hv_iterkeysv #define hv_iternext Perl_hv_iternext #define hv_iternextsv Perl_hv_iternextsv #define hv_iternext_flags Perl_hv_iternext_flags #define hv_iterval Perl_hv_iterval #define hv_ksplit Perl_hv_ksplit #define hv_magic Perl_hv_magic #define hv_store Perl_hv_store #define hv_store_ent Perl_hv_store_ent #define hv_store_flags Perl_hv_store_flags #define hv_undef Perl_hv_undef #define ibcmp Perl_ibcmp #define ibcmp_locale Perl_ibcmp_locale #define ibcmp_utf8 Perl_ibcmp_utf8 #ifdef PERL_CORE #define ingroup Perl_ingroup #define init_argv_symbols Perl_init_argv_symbols #define init_debugger Perl_init_debugger #endif #define init_stacks Perl_init_stacks #define init_tm Perl_init_tm #ifdef PERL_CORE #define intro_my Perl_intro_my #endif #define instr Perl_instr #ifdef PERL_CORE #define io_close Perl_io_close #define invert Perl_invert #define is_gv_magical Perl_is_gv_magical #endif #define is_lvalue_sub Perl_is_lvalue_sub #define to_uni_upper_lc Perl_to_uni_upper_lc #define to_uni_title_lc Perl_to_uni_title_lc #define to_uni_lower_lc Perl_to_uni_lower_lc #define is_uni_alnum Perl_is_uni_alnum #define is_uni_alnumc Perl_is_uni_alnumc #define is_uni_idfirst Perl_is_uni_idfirst #define is_uni_alpha Perl_is_uni_alpha #define is_uni_ascii Perl_is_uni_ascii #define is_uni_space Perl_is_uni_space #define is_uni_cntrl Perl_is_uni_cntrl #define is_uni_graph Perl_is_uni_graph #define is_uni_digit Perl_is_uni_digit #define is_uni_upper Perl_is_uni_upper #define is_uni_lower Perl_is_uni_lower #define is_uni_print Perl_is_uni_print #define is_uni_punct Perl_is_uni_punct #define is_uni_xdigit Perl_is_uni_xdigit #define to_uni_upper Perl_to_uni_upper #define to_uni_title Perl_to_uni_title #define to_uni_lower Perl_to_uni_lower #define to_uni_fold Perl_to_uni_fold #define is_uni_alnum_lc Perl_is_uni_alnum_lc #define is_uni_alnumc_lc Perl_is_uni_alnumc_lc #define is_uni_idfirst_lc Perl_is_uni_idfirst_lc #define is_uni_alpha_lc Perl_is_uni_alpha_lc #define is_uni_ascii_lc Perl_is_uni_ascii_lc #define is_uni_space_lc Perl_is_uni_space_lc #define is_uni_cntrl_lc Perl_is_uni_cntrl_lc #define is_uni_graph_lc Perl_is_uni_graph_lc #define is_uni_digit_lc Perl_is_uni_digit_lc #define is_uni_upper_lc Perl_is_uni_upper_lc #define is_uni_lower_lc Perl_is_uni_lower_lc #define is_uni_print_lc Perl_is_uni_print_lc #define is_uni_punct_lc Perl_is_uni_punct_lc #define is_uni_xdigit_lc Perl_is_uni_xdigit_lc #define is_utf8_char Perl_is_utf8_char #define is_utf8_string Perl_is_utf8_string #define is_utf8_string_loc Perl_is_utf8_string_loc #define is_utf8_alnum Perl_is_utf8_alnum #define is_utf8_alnumc Perl_is_utf8_alnumc #define is_utf8_idfirst Perl_is_utf8_idfirst #define is_utf8_idcont Perl_is_utf8_idcont #define is_utf8_alpha Perl_is_utf8_alpha #define is_utf8_ascii Perl_is_utf8_ascii #define is_utf8_space Perl_is_utf8_space #define is_utf8_cntrl Perl_is_utf8_cntrl #define is_utf8_digit Perl_is_utf8_digit #define is_utf8_graph Perl_is_utf8_graph #define is_utf8_upper Perl_is_utf8_upper #define is_utf8_lower Perl_is_utf8_lower #define is_utf8_print Perl_is_utf8_print #define is_utf8_punct Perl_is_utf8_punct #define is_utf8_xdigit Perl_is_utf8_xdigit #define is_utf8_mark Perl_is_utf8_mark #ifdef PERL_CORE #define jmaybe Perl_jmaybe #define keyword Perl_keyword #endif #define leave_scope Perl_leave_scope #ifdef PERL_CORE #define lex_end Perl_lex_end #define lex_start Perl_lex_start #endif #define op_null Perl_op_null #ifdef PERL_CORE #define op_clear Perl_op_clear #define linklist Perl_linklist #define list Perl_list #define listkids Perl_listkids #endif #define load_module Perl_load_module #define vload_module Perl_vload_module #ifdef PERL_CORE #define localize Perl_localize #endif #define looks_like_number Perl_looks_like_number #define grok_bin Perl_grok_bin #define grok_hex Perl_grok_hex #define grok_number Perl_grok_number #define grok_numeric_radix Perl_grok_numeric_radix #define grok_oct Perl_grok_oct #ifdef PERL_CORE #define magic_clearenv Perl_magic_clearenv #define magic_clear_all_env Perl_magic_clear_all_env #define magic_clearpack Perl_magic_clearpack #define magic_clearsig Perl_magic_clearsig #define magic_existspack Perl_magic_existspack #define magic_freeregexp Perl_magic_freeregexp #define magic_freeovrld Perl_magic_freeovrld #define magic_get Perl_magic_get #define magic_getarylen Perl_magic_getarylen #define magic_getdefelem Perl_magic_getdefelem #define magic_getglob Perl_magic_getglob #define magic_getnkeys Perl_magic_getnkeys #define magic_getpack Perl_magic_getpack #define magic_getpos Perl_magic_getpos #define magic_getsig Perl_magic_getsig #define magic_getsubstr Perl_magic_getsubstr #define magic_gettaint Perl_magic_gettaint #define magic_getuvar Perl_magic_getuvar #define magic_getvec Perl_magic_getvec #define magic_len Perl_magic_len #endif #if defined(USE_5005THREADS) #ifdef PERL_CORE #define magic_mutexfree Perl_magic_mutexfree #endif #endif #ifdef PERL_CORE #define magic_nextpack Perl_magic_nextpack #define magic_regdata_cnt Perl_magic_regdata_cnt #define magic_regdatum_get Perl_magic_regdatum_get #define magic_regdatum_set Perl_magic_regdatum_set #define magic_set Perl_magic_set #define magic_setamagic Perl_magic_setamagic #define magic_setarylen Perl_magic_setarylen #define magic_setbm Perl_magic_setbm #define magic_setdbline Perl_magic_setdbline #endif #if defined(USE_LOCALE_COLLATE) #ifdef PERL_CORE #define magic_setcollxfrm Perl_magic_setcollxfrm #endif #endif #ifdef PERL_CORE #define magic_setdefelem Perl_magic_setdefelem #define magic_setenv Perl_magic_setenv #define magic_setfm Perl_magic_setfm #define magic_setisa Perl_magic_setisa #define magic_setglob Perl_magic_setglob #define magic_setmglob Perl_magic_setmglob #define magic_setnkeys Perl_magic_setnkeys #define magic_setpack Perl_magic_setpack #define magic_setpos Perl_magic_setpos #define magic_setregexp Perl_magic_setregexp #define magic_setsig Perl_magic_setsig #define magic_setsubstr Perl_magic_setsubstr #define magic_settaint Perl_magic_settaint #define magic_setuvar Perl_magic_setuvar #define magic_setvec Perl_magic_setvec #define magic_setutf8 Perl_magic_setutf8 #define magic_set_all_env Perl_magic_set_all_env #define magic_sizepack Perl_magic_sizepack #define magic_wipepack Perl_magic_wipepack #define magicname Perl_magicname #endif #define markstack_grow Perl_markstack_grow #if defined(USE_LOCALE_COLLATE) #ifdef PERL_CORE #define mem_collxfrm Perl_mem_collxfrm #endif #endif #define mess Perl_mess #define vmess Perl_vmess #ifdef PERL_CORE #define qerror Perl_qerror #endif #define sortsv Perl_sortsv #define mg_clear Perl_mg_clear #define mg_copy Perl_mg_copy #define mg_find Perl_mg_find #define mg_free Perl_mg_free #define mg_get Perl_mg_get #define mg_length Perl_mg_length #define mg_magical Perl_mg_magical #define mg_set Perl_mg_set #define mg_size Perl_mg_size #define mini_mktime Perl_mini_mktime #ifdef PERL_CORE #define mod Perl_mod #define mode_from_discipline Perl_mode_from_discipline #endif #define moreswitches Perl_moreswitches #ifdef PERL_CORE #define my Perl_my #endif #define my_atof Perl_my_atof #if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY)) #define my_bcopy Perl_my_bcopy #endif #if !defined(HAS_BZERO) && !defined(HAS_MEMSET) #define my_bzero Perl_my_bzero #endif #define my_exit Perl_my_exit #define my_failure_exit Perl_my_failure_exit #define my_fflush_all Perl_my_fflush_all #define my_fork Perl_my_fork #define atfork_lock Perl_atfork_lock #define atfork_unlock Perl_atfork_unlock #define my_lstat Perl_my_lstat #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) #define my_memcmp Perl_my_memcmp #endif #if !defined(HAS_MEMSET) #define my_memset Perl_my_memset #endif #define my_pclose Perl_my_pclose #define my_popen Perl_my_popen #define my_popen_list Perl_my_popen_list #define my_setenv Perl_my_setenv #define my_stat Perl_my_stat #define my_strftime Perl_my_strftime #if defined(MYSWAP) #define my_swap Perl_my_swap #define my_htonl Perl_my_htonl #define my_ntohl Perl_my_ntohl #endif #ifdef PERL_CORE #define my_unexec Perl_my_unexec #endif #define newANONLIST Perl_newANONLIST #define newANONHASH Perl_newANONHASH #define newANONSUB Perl_newANONSUB #define newASSIGNOP Perl_newASSIGNOP #define newCONDOP Perl_newCONDOP #define newCONSTSUB Perl_newCONSTSUB #define newFORM Perl_newFORM #define newFOROP Perl_newFOROP #define newLOGOP Perl_newLOGOP #define newLOOPEX Perl_newLOOPEX #define newLOOPOP Perl_newLOOPOP #define newNULLLIST Perl_newNULLLIST #define newOP Perl_newOP #define newPROG Perl_newPROG #define newRANGE Perl_newRANGE #define newSLICEOP Perl_newSLICEOP #define newSTATEOP Perl_newSTATEOP #define newSUB Perl_newSUB #define newXS Perl_newXS #define newAV Perl_newAV #define newAVREF Perl_newAVREF #define newBINOP Perl_newBINOP #define newCVREF Perl_newCVREF #define newGVOP Perl_newGVOP #define newGVgen Perl_newGVgen #define newGVREF Perl_newGVREF #define newHVREF Perl_newHVREF #define newHV Perl_newHV #define newHVhv Perl_newHVhv #define newIO Perl_newIO #define newLISTOP Perl_newLISTOP #define newPADOP Perl_newPADOP #define newPMOP Perl_newPMOP #define newPVOP Perl_newPVOP #define newRV Perl_newRV #define newRV_noinc Perl_newRV_noinc #define newSV Perl_newSV #define newSVREF Perl_newSVREF #define newSVOP Perl_newSVOP #define newSViv Perl_newSViv #define newSVuv Perl_newSVuv #define newSVnv Perl_newSVnv #define newSVpv Perl_newSVpv #define newSVpvn Perl_newSVpvn #define newSVpvn_share Perl_newSVpvn_share #define newSVpvf Perl_newSVpvf #define vnewSVpvf Perl_vnewSVpvf #define newSVrv Perl_newSVrv #define newSVsv Perl_newSVsv #define newUNOP Perl_newUNOP #define newWHILEOP Perl_newWHILEOP #define new_stackinfo Perl_new_stackinfo #define scan_vstring Perl_scan_vstring #ifdef PERL_CORE #define nextargv Perl_nextargv #endif #define ninstr Perl_ninstr #ifdef PERL_CORE #define oopsCV Perl_oopsCV #endif #define op_free Perl_op_free #ifdef PERL_CORE #define package Perl_package #define pad_alloc Perl_pad_alloc #define allocmy Perl_allocmy #define pad_findmy Perl_pad_findmy #define oopsAV Perl_oopsAV #define oopsHV Perl_oopsHV #define pad_leavemy Perl_pad_leavemy #endif #define pad_sv Perl_pad_sv #ifdef PERL_CORE #define pad_free Perl_pad_free #define pad_reset Perl_pad_reset #define pad_swipe Perl_pad_swipe #define peep Perl_peep #endif #if defined(USE_5005THREADS) #define new_struct_thread Perl_new_struct_thread #endif #if defined(USE_REENTRANT_API) #define reentrant_size Perl_reentrant_size #define reentrant_init Perl_reentrant_init #define reentrant_free Perl_reentrant_free #define reentrant_retry Perl_reentrant_retry #endif #define call_atexit Perl_call_atexit #define call_argv Perl_call_argv #define call_method Perl_call_method #define call_pv Perl_call_pv #define call_sv Perl_call_sv #define despatch_signals Perl_despatch_signals #define eval_pv Perl_eval_pv #define eval_sv Perl_eval_sv #define get_sv Perl_get_sv #define get_av Perl_get_av #define get_hv Perl_get_hv #define get_cv Perl_get_cv #define init_i18nl10n Perl_init_i18nl10n #define init_i18nl14n Perl_init_i18nl14n #define new_collate Perl_new_collate #define new_ctype Perl_new_ctype #define new_numeric Perl_new_numeric #define set_numeric_local Perl_set_numeric_local #define set_numeric_radix Perl_set_numeric_radix #define set_numeric_standard Perl_set_numeric_standard #define require_pv Perl_require_pv #define pack_cat Perl_pack_cat #define packlist Perl_packlist #ifdef PERL_CORE #define pidgone Perl_pidgone #endif #define pmflag Perl_pmflag #ifdef PERL_CORE #define pmruntime Perl_pmruntime #define pmtrans Perl_pmtrans #define pop_return Perl_pop_return #endif #define pop_scope Perl_pop_scope #ifdef PERL_CORE #define prepend_elem Perl_prepend_elem #define push_return Perl_push_return #endif #define push_scope Perl_push_scope #ifdef PERL_CORE #define ref Perl_ref #define refkids Perl_refkids #endif #define regdump Perl_regdump #define regclass_swash Perl_regclass_swash #define pregexec Perl_pregexec #define pregfree Perl_pregfree #define pregcomp Perl_pregcomp #define re_intuit_start Perl_re_intuit_start #define re_intuit_string Perl_re_intuit_string #define regexec_flags Perl_regexec_flags #define regnext Perl_regnext #if defined(PERL_CORE) || defined(PERL_EXT) #define regprop Perl_regprop #endif #define repeatcpy Perl_repeatcpy #define rninstr Perl_rninstr #define rsignal Perl_rsignal #ifdef PERL_CORE #define rsignal_restore Perl_rsignal_restore #define rsignal_save Perl_rsignal_save #endif #define rsignal_state Perl_rsignal_state #ifdef PERL_CORE #define rxres_free Perl_rxres_free #define rxres_restore Perl_rxres_restore #define rxres_save Perl_rxres_save #endif #if !defined(HAS_RENAME) #ifdef PERL_CORE #define same_dirent Perl_same_dirent #endif #endif #define savepv Perl_savepv #define savesharedpv Perl_savesharedpv #define savepvn Perl_savepvn #define savestack_grow Perl_savestack_grow #define savestack_grow_cnt Perl_savestack_grow_cnt #define save_aelem Perl_save_aelem #define save_alloc Perl_save_alloc #define save_aptr Perl_save_aptr #define save_ary Perl_save_ary #define save_bool Perl_save_bool #define save_clearsv Perl_save_clearsv #define save_delete Perl_save_delete #define save_destructor Perl_save_destructor #define save_destructor_x Perl_save_destructor_x #define save_freesv Perl_save_freesv #ifdef PERL_CORE #define save_freeop Perl_save_freeop #endif #define save_freepv Perl_save_freepv #define save_generic_svref Perl_save_generic_svref #define save_generic_pvref Perl_save_generic_pvref #define save_shared_pvref Perl_save_shared_pvref #define save_gp Perl_save_gp #define save_hash Perl_save_hash #define save_helem Perl_save_helem #define save_hints Perl_save_hints #define save_hptr Perl_save_hptr #define save_I16 Perl_save_I16 #define save_I32 Perl_save_I32 #define save_I8 Perl_save_I8 #define save_int Perl_save_int #define save_item Perl_save_item #define save_iv Perl_save_iv #define save_list Perl_save_list #define save_long Perl_save_long #define save_mortalizesv Perl_save_mortalizesv #define save_nogv Perl_save_nogv #ifdef PERL_CORE #define save_op Perl_save_op #endif #define save_scalar Perl_save_scalar #define save_pptr Perl_save_pptr #define save_vptr Perl_save_vptr #define save_re_context Perl_save_re_context #define save_padsv Perl_save_padsv #define save_sptr Perl_save_sptr #define save_svref Perl_save_svref #define save_threadsv Perl_save_threadsv #ifdef PERL_CORE #define sawparens Perl_sawparens #define scalar Perl_scalar #define scalarkids Perl_scalarkids #define scalarseq Perl_scalarseq #define scalarvoid Perl_scalarvoid #endif #define scan_bin Perl_scan_bin #define scan_hex Perl_scan_hex #define scan_num Perl_scan_num #define scan_oct Perl_scan_oct #ifdef PERL_CORE #define scope Perl_scope #endif #define screaminstr Perl_screaminstr #if !defined(VMS) #ifdef PERL_CORE #define setenv_getix Perl_setenv_getix #endif #endif #ifdef PERL_CORE #define setdefout Perl_setdefout #define share_hek Perl_share_hek #define sighandler Perl_sighandler #endif #define csighandler Perl_csighandler #define stack_grow Perl_stack_grow #define start_subparse Perl_start_subparse #ifdef PERL_CORE #define sub_crush_depth Perl_sub_crush_depth #endif #define sv_2bool Perl_sv_2bool #define sv_2cv Perl_sv_2cv #define sv_2io Perl_sv_2io #define sv_2iv Perl_sv_2iv #define sv_2mortal Perl_sv_2mortal #define sv_2nv Perl_sv_2nv #define sv_2pvutf8 Perl_sv_2pvutf8 #define sv_2pvbyte Perl_sv_2pvbyte #define sv_pvn_nomg Perl_sv_pvn_nomg #define sv_2uv Perl_sv_2uv #define sv_iv Perl_sv_iv #define sv_uv Perl_sv_uv #define sv_nv Perl_sv_nv #define sv_pvn Perl_sv_pvn #define sv_pvutf8n Perl_sv_pvutf8n #define sv_pvbyten Perl_sv_pvbyten #define sv_true Perl_sv_true #ifdef PERL_CORE #define sv_add_arena Perl_sv_add_arena #endif #define sv_backoff Perl_sv_backoff #define sv_bless Perl_sv_bless #define sv_catpvf Perl_sv_catpvf #define sv_vcatpvf Perl_sv_vcatpvf #define sv_catpv Perl_sv_catpv #define sv_chop Perl_sv_chop #ifdef PERL_CORE #define sv_clean_all Perl_sv_clean_all #define sv_clean_objs Perl_sv_clean_objs #endif #define sv_clear Perl_sv_clear #define sv_cmp Perl_sv_cmp #define sv_cmp_locale Perl_sv_cmp_locale #if defined(USE_LOCALE_COLLATE) #define sv_collxfrm Perl_sv_collxfrm #endif #define sv_compile_2op Perl_sv_compile_2op #define getcwd_sv Perl_getcwd_sv #define sv_dec Perl_sv_dec #define sv_dump Perl_sv_dump #define sv_derived_from Perl_sv_derived_from #define sv_eq Perl_sv_eq #define sv_free Perl_sv_free #ifdef PERL_CORE #define sv_free_arenas Perl_sv_free_arenas #endif #define sv_gets Perl_sv_gets #define sv_grow Perl_sv_grow #define sv_inc Perl_sv_inc #define sv_insert Perl_sv_insert #define sv_isa Perl_sv_isa #define sv_isobject Perl_sv_isobject #define sv_len Perl_sv_len #define sv_len_utf8 Perl_sv_len_utf8 #define sv_magic Perl_sv_magic #define sv_magicext Perl_sv_magicext #define sv_mortalcopy Perl_sv_mortalcopy #define sv_newmortal Perl_sv_newmortal #define sv_newref Perl_sv_newref #define sv_peek Perl_sv_peek #define sv_pos_u2b Perl_sv_pos_u2b #define sv_pos_b2u Perl_sv_pos_b2u #define sv_pvutf8n_force Perl_sv_pvutf8n_force #define sv_pvbyten_force Perl_sv_pvbyten_force #define sv_recode_to_utf8 Perl_sv_recode_to_utf8 #define sv_cat_decode Perl_sv_cat_decode #define sv_reftype Perl_sv_reftype #define sv_replace Perl_sv_replace #define sv_report_used Perl_sv_report_used #define sv_reset Perl_sv_reset #define sv_setpvf Perl_sv_setpvf #define sv_vsetpvf Perl_sv_vsetpvf #define sv_setiv Perl_sv_setiv #define sv_setpviv Perl_sv_setpviv #define sv_setuv Perl_sv_setuv #define sv_setnv Perl_sv_setnv #define sv_setref_iv Perl_sv_setref_iv #define sv_setref_uv Perl_sv_setref_uv #define sv_setref_nv Perl_sv_setref_nv #define sv_setref_pv Perl_sv_setref_pv #define sv_setref_pvn Perl_sv_setref_pvn #define sv_setpv Perl_sv_setpv #define sv_setpvn Perl_sv_setpvn #define sv_taint Perl_sv_taint #define sv_tainted Perl_sv_tainted #define sv_unmagic Perl_sv_unmagic #define sv_unref Perl_sv_unref #define sv_unref_flags Perl_sv_unref_flags #define sv_untaint Perl_sv_untaint #define sv_upgrade Perl_sv_upgrade #define sv_usepvn Perl_sv_usepvn #define sv_vcatpvfn Perl_sv_vcatpvfn #define sv_vsetpvfn Perl_sv_vsetpvfn #define str_to_version Perl_str_to_version #define swash_init Perl_swash_init #define swash_fetch Perl_swash_fetch #define taint_env Perl_taint_env #define taint_proper Perl_taint_proper #define to_utf8_case Perl_to_utf8_case #define to_utf8_lower Perl_to_utf8_lower #define to_utf8_upper Perl_to_utf8_upper #define to_utf8_title Perl_to_utf8_title #define to_utf8_fold Perl_to_utf8_fold #if defined(UNLINK_ALL_VERSIONS) #define unlnk Perl_unlnk #endif #if defined(USE_5005THREADS) #define unlock_condpair Perl_unlock_condpair #endif #define unpack_str Perl_unpack_str #define unpackstring Perl_unpackstring #define unsharepvn Perl_unsharepvn #ifdef PERL_CORE #define unshare_hek Perl_unshare_hek #define utilize Perl_utilize #endif #define utf16_to_utf8 Perl_utf16_to_utf8 #define utf16_to_utf8_reversed Perl_utf16_to_utf8_reversed #define utf8_length Perl_utf8_length #define utf8_distance Perl_utf8_distance #define utf8_hop Perl_utf8_hop #define utf8_to_bytes Perl_utf8_to_bytes #define bytes_from_utf8 Perl_bytes_from_utf8 #define bytes_to_utf8 Perl_bytes_to_utf8 #define utf8_to_uvchr Perl_utf8_to_uvchr #define utf8_to_uvuni Perl_utf8_to_uvuni #define utf8n_to_uvchr Perl_utf8n_to_uvchr #define utf8n_to_uvuni Perl_utf8n_to_uvuni #define uvchr_to_utf8 Perl_uvchr_to_utf8 #define uvuni_to_utf8 Perl_uvuni_to_utf8 #define uvchr_to_utf8_flags Perl_uvchr_to_utf8_flags #define uvuni_to_utf8_flags Perl_uvuni_to_utf8_flags #define pv_uni_display Perl_pv_uni_display #define sv_uni_display Perl_sv_uni_display #ifdef PERL_CORE #define vivify_defelem Perl_vivify_defelem #define vivify_ref Perl_vivify_ref #define wait4pid Perl_wait4pid #define parse_unicode_opts Perl_parse_unicode_opts #define seed Perl_seed #define get_hash_seed Perl_get_hash_seed #define report_evil_fh Perl_report_evil_fh #define report_uninit Perl_report_uninit #endif #define warn Perl_warn #define vwarn Perl_vwarn #define warner Perl_warner #define vwarner Perl_vwarner #ifdef PERL_CORE #define watch Perl_watch #endif #define whichsig Perl_whichsig #ifdef PERL_CORE #define write_to_stderr Perl_write_to_stderr #define yyerror Perl_yyerror #endif #ifdef USE_PURE_BISON #ifdef PERL_CORE #define yylex_r Perl_yylex_r #endif #endif #ifdef PERL_CORE #define yylex Perl_yylex #define yyparse Perl_yyparse #define yywarn Perl_yywarn #endif #if defined(MYMALLOC) #define dump_mstats Perl_dump_mstats #define get_mstats Perl_get_mstats #endif #define safesysmalloc Perl_safesysmalloc #define safesyscalloc Perl_safesyscalloc #define safesysrealloc Perl_safesysrealloc #define safesysfree Perl_safesysfree #if defined(PERL_GLOBAL_STRUCT) #define GetVars Perl_GetVars #endif #define runops_standard Perl_runops_standard #define runops_debug Perl_runops_debug #if defined(USE_5005THREADS) #define sv_lock Perl_sv_lock #endif #define sv_catpvf_mg Perl_sv_catpvf_mg #define sv_vcatpvf_mg Perl_sv_vcatpvf_mg #define sv_catpv_mg Perl_sv_catpv_mg #define sv_catpvn_mg Perl_sv_catpvn_mg #define sv_catsv_mg Perl_sv_catsv_mg #define sv_setpvf_mg Perl_sv_setpvf_mg #define sv_vsetpvf_mg Perl_sv_vsetpvf_mg #define sv_setiv_mg Perl_sv_setiv_mg #define sv_setpviv_mg Perl_sv_setpviv_mg #define sv_setuv_mg Perl_sv_setuv_mg #define sv_setnv_mg Perl_sv_setnv_mg #define sv_setpv_mg Perl_sv_setpv_mg #define sv_setpvn_mg Perl_sv_setpvn_mg #define sv_setsv_mg Perl_sv_setsv_mg #define sv_usepvn_mg Perl_sv_usepvn_mg #define get_vtbl Perl_get_vtbl #define pv_display Perl_pv_display #define dump_indent Perl_dump_indent #define dump_vindent Perl_dump_vindent #define do_gv_dump Perl_do_gv_dump #define do_gvgv_dump Perl_do_gvgv_dump #define do_hv_dump Perl_do_hv_dump #define do_magic_dump Perl_do_magic_dump #define do_op_dump Perl_do_op_dump #define do_pmop_dump Perl_do_pmop_dump #define do_sv_dump Perl_do_sv_dump #define magic_dump Perl_magic_dump #if defined(PERL_FLEXIBLE_EXCEPTIONS) #define default_protect Perl_default_protect #define vdefault_protect Perl_vdefault_protect #endif #define reginitcolors Perl_reginitcolors #define sv_2pv_nolen Perl_sv_2pv_nolen #define sv_2pvutf8_nolen Perl_sv_2pvutf8_nolen #define sv_2pvbyte_nolen Perl_sv_2pvbyte_nolen #define sv_utf8_downgrade Perl_sv_utf8_downgrade #define sv_utf8_encode Perl_sv_utf8_encode #define sv_utf8_decode Perl_sv_utf8_decode #define sv_force_normal Perl_sv_force_normal #define sv_force_normal_flags Perl_sv_force_normal_flags #define tmps_grow Perl_tmps_grow #define sv_rvweaken Perl_sv_rvweaken #ifdef PERL_CORE #define magic_killbackrefs Perl_magic_killbackrefs #endif #define newANONATTRSUB Perl_newANONATTRSUB #define newATTRSUB Perl_newATTRSUB #define newMYSUB Perl_newMYSUB #ifdef PERL_CORE #define my_attrs Perl_my_attrs #define boot_core_xsutils Perl_boot_core_xsutils #endif #if defined(USE_ITHREADS) #define cx_dup Perl_cx_dup #define si_dup Perl_si_dup #define ss_dup Perl_ss_dup #define any_dup Perl_any_dup #define he_dup Perl_he_dup #define re_dup Perl_re_dup #define fp_dup Perl_fp_dup #define dirp_dup Perl_dirp_dup #define gp_dup Perl_gp_dup #define mg_dup Perl_mg_dup #define sv_dup Perl_sv_dup #if defined(HAVE_INTERP_INTERN) #define sys_intern_dup Perl_sys_intern_dup #endif #define ptr_table_new Perl_ptr_table_new #define ptr_table_fetch Perl_ptr_table_fetch #define ptr_table_store Perl_ptr_table_store #define ptr_table_split Perl_ptr_table_split #define ptr_table_clear Perl_ptr_table_clear #define ptr_table_free Perl_ptr_table_free #endif #if defined(HAVE_INTERP_INTERN) #define sys_intern_clear Perl_sys_intern_clear #define sys_intern_init Perl_sys_intern_init #endif #define custom_op_name Perl_custom_op_name #define custom_op_desc Perl_custom_op_desc #define sv_nosharing Perl_sv_nosharing #define sv_nolocking Perl_sv_nolocking #define sv_nounlocking Perl_sv_nounlocking #define nothreadhook Perl_nothreadhook #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define avhv_index_sv S_avhv_index_sv #define avhv_index S_avhv_index #endif #endif #if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define do_trans_simple S_do_trans_simple #define do_trans_count S_do_trans_count #define do_trans_complex S_do_trans_complex #define do_trans_simple_utf8 S_do_trans_simple_utf8 #define do_trans_count_utf8 S_do_trans_count_utf8 #define do_trans_complex_utf8 S_do_trans_complex_utf8 #endif #endif #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define gv_init_sv S_gv_init_sv #define require_errno S_require_errno #endif #endif #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define hsplit S_hsplit #define hfreeentries S_hfreeentries #define more_he S_more_he #define new_he S_new_he #define del_he S_del_he #define save_hek_flags S_save_hek_flags #define hv_magic_check S_hv_magic_check #define unshare_hek_or_pvn S_unshare_hek_or_pvn #define share_hek_flags S_share_hek_flags #define hv_notallowed S_hv_notallowed #endif #endif #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define save_magic S_save_magic #define magic_methpack S_magic_methpack #define magic_methcall S_magic_methcall #endif #endif #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define list_assignment S_list_assignment #define bad_type S_bad_type #define cop_free S_cop_free #define modkids S_modkids #define no_bareword_allowed S_no_bareword_allowed #define no_fh_allowed S_no_fh_allowed #define scalarboolean S_scalarboolean #define too_few_arguments S_too_few_arguments #define too_many_arguments S_too_many_arguments #define newDEFSVOP S_newDEFSVOP #define new_logop S_new_logop #define simplify_sort S_simplify_sort #define is_handle_constructor S_is_handle_constructor #define gv_ename S_gv_ename #define scalar_mod_type S_scalar_mod_type #define my_kid S_my_kid #define dup_attrlist S_dup_attrlist #define apply_attrs S_apply_attrs #define apply_attrs_my S_apply_attrs_my #endif #endif #if defined(PL_OP_SLAB_ALLOC) #define Slab_Alloc Perl_Slab_Alloc #define Slab_Free Perl_Slab_Free #endif #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define find_beginning S_find_beginning #define forbid_setid S_forbid_setid #define incpush S_incpush #define init_interp S_init_interp #define init_ids S_init_ids #define init_lexer S_init_lexer #define init_main_stash S_init_main_stash #define init_perllib S_init_perllib #define init_postdump_symbols S_init_postdump_symbols #define init_predump_symbols S_init_predump_symbols #define my_exit_jump S_my_exit_jump #define nuke_stacks S_nuke_stacks #define open_script S_open_script #define usage S_usage #define validate_suid S_validate_suid #endif # if defined(IAMSUID) #ifdef PERL_CORE #define fd_on_nosuid_fs S_fd_on_nosuid_fs #endif # endif #ifdef PERL_CORE #define parse_body S_parse_body #define run_body S_run_body #define call_body S_call_body #define call_list_body S_call_list_body #endif #if defined(PERL_FLEXIBLE_EXCEPTIONS) #ifdef PERL_CORE #define vparse_body S_vparse_body #define vrun_body S_vrun_body #define vcall_body S_vcall_body #define vcall_list_body S_vcall_list_body #endif #endif # if defined(USE_5005THREADS) #ifdef PERL_CORE #define init_main_thread S_init_main_thread #endif # endif #endif #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define refto S_refto #endif #endif #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define unpack_rec S_unpack_rec #define pack_rec S_pack_rec #define mul128 S_mul128 #define measure_struct S_measure_struct #define group_end S_group_end #define get_num S_get_num #define next_symbol S_next_symbol #define doencodes S_doencodes #define is_an_int S_is_an_int #define div128 S_div128 #endif #endif #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define docatch S_docatch #define docatch_body S_docatch_body #endif #if defined(PERL_FLEXIBLE_EXCEPTIONS) #ifdef PERL_CORE #define vdocatch_body S_vdocatch_body #endif #endif #ifdef PERL_CORE #define dofindlabel S_dofindlabel #define doparseform S_doparseform #define num_overflow S_num_overflow #define dopoptoeval S_dopoptoeval #define dopoptolabel S_dopoptolabel #define dopoptoloop S_dopoptoloop #define dopoptosub S_dopoptosub #define dopoptosub_at S_dopoptosub_at #define save_lines S_save_lines #define doeval S_doeval #define doopen_pm S_doopen_pm #define path_is_absolute S_path_is_absolute #endif #endif #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define do_maybe_phash S_do_maybe_phash #define do_oddball S_do_oddball #define get_db_sub S_get_db_sub #define method_common S_method_common #endif #endif #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define doform S_doform #define emulate_eaccess S_emulate_eaccess #endif # if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) #ifdef PERL_CORE #define dooneliner S_dooneliner #endif # endif #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) #if defined(PERL_CORE) || defined(PERL_EXT) #define reg S_reg #define reganode S_reganode #define regatom S_regatom #define regbranch S_regbranch #define reguni S_reguni #define regclass S_regclass #define regcurly S_regcurly #define reg_node S_reg_node #define regpiece S_regpiece #define reginsert S_reginsert #define regoptail S_regoptail #define regtail S_regtail #define regwhite S_regwhite #define nextchar S_nextchar #endif # ifdef DEBUGGING #if defined(PERL_CORE) || defined(PERL_EXT) #define dumpuntil S_dumpuntil #define put_byte S_put_byte #endif # endif #if defined(PERL_CORE) || defined(PERL_EXT) #define scan_commit S_scan_commit #define cl_anything S_cl_anything #define cl_is_anything S_cl_is_anything #define cl_init S_cl_init #define cl_init_zero S_cl_init_zero #define cl_and S_cl_and #define cl_or S_cl_or #define study_chunk S_study_chunk #define add_data S_add_data #endif #ifdef PERL_CORE #define re_croak2 S_re_croak2 #endif #if defined(PERL_CORE) || defined(PERL_EXT) #define regpposixcc S_regpposixcc #define checkposixcc S_checkposixcc #endif #endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) #if defined(PERL_CORE) || defined(PERL_EXT) #define regmatch S_regmatch #define regrepeat S_regrepeat #define regrepeat_hard S_regrepeat_hard #define regtry S_regtry #define reginclass S_reginclass #define regcppush S_regcppush #define regcppop S_regcppop #define regcp_set_to S_regcp_set_to #define cache_re S_cache_re #define reghop S_reghop #define reghop3 S_reghop3 #define reghopmaybe S_reghopmaybe #define reghopmaybe3 S_reghopmaybe3 #define find_byclass S_find_byclass #define to_utf8_substr S_to_utf8_substr #define to_byte_substr S_to_byte_substr #endif #endif #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define deb_curcv S_deb_curcv #define debprof S_debprof #endif #endif #if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define save_scalar_at S_save_scalar_at #endif #endif #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define asIV S_asIV #define asUV S_asUV #define more_sv S_more_sv #define more_xiv S_more_xiv #define more_xnv S_more_xnv #define more_xpv S_more_xpv #define more_xpviv S_more_xpviv #define more_xpvnv S_more_xpvnv #define more_xpvcv S_more_xpvcv #define more_xpvav S_more_xpvav #define more_xpvhv S_more_xpvhv #define more_xpvmg S_more_xpvmg #define more_xpvlv S_more_xpvlv #define more_xpvbm S_more_xpvbm #define more_xrv S_more_xrv #define new_xiv S_new_xiv #define new_xnv S_new_xnv #define new_xpv S_new_xpv #define new_xpviv S_new_xpviv #define new_xpvnv S_new_xpvnv #define new_xpvcv S_new_xpvcv #define new_xpvav S_new_xpvav #define new_xpvhv S_new_xpvhv #define new_xpvmg S_new_xpvmg #define new_xpvlv S_new_xpvlv #define new_xpvbm S_new_xpvbm #define new_xrv S_new_xrv #define del_xiv S_del_xiv #define del_xnv S_del_xnv #define del_xpv S_del_xpv #define del_xpviv S_del_xpviv #define del_xpvnv S_del_xpvnv #define del_xpvcv S_del_xpvcv #define del_xpvav S_del_xpvav #define del_xpvhv S_del_xpvhv #define del_xpvmg S_del_xpvmg #define del_xpvlv S_del_xpvlv #define del_xpvbm S_del_xpvbm #define del_xrv S_del_xrv #define sv_unglob S_sv_unglob #define not_a_number S_not_a_number #define visit S_visit #define sv_add_backref S_sv_add_backref #define sv_del_backref S_sv_del_backref #endif # ifdef DEBUGGING #ifdef PERL_CORE #define del_sv S_del_sv #endif # endif # if !defined(NV_PRESERVES_UV) #ifdef PERL_CORE #define sv_2iuv_non_preserve S_sv_2iuv_non_preserve #endif # endif #ifdef PERL_CORE #define expect_number S_expect_number #endif # if defined(USE_ITHREADS) #ifdef PERL_CORE #define gv_share S_gv_share #endif # endif #ifdef PERL_CORE #define utf8_mg_pos S_utf8_mg_pos #define utf8_mg_pos_init S_utf8_mg_pos_init #endif #endif #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define check_uni S_check_uni #define force_next S_force_next #define force_version S_force_version #define force_word S_force_word #define tokeq S_tokeq #define pending_ident S_pending_ident #define scan_const S_scan_const #define scan_formline S_scan_formline #define scan_heredoc S_scan_heredoc #define scan_ident S_scan_ident #define scan_inputsymbol S_scan_inputsymbol #define scan_pat S_scan_pat #define scan_str S_scan_str #define scan_subst S_scan_subst #define scan_trans S_scan_trans #define scan_word S_scan_word #define skipspace S_skipspace #define swallow_bom S_swallow_bom #define checkcomma S_checkcomma #define force_ident S_force_ident #define incline S_incline #define intuit_method S_intuit_method #define intuit_more S_intuit_more #define lop S_lop #define missingterm S_missingterm #define no_op S_no_op #define set_csh S_set_csh #define sublex_done S_sublex_done #define sublex_push S_sublex_push #define sublex_start S_sublex_start #define filter_gets S_filter_gets #define find_in_my_stash S_find_in_my_stash #define new_constant S_new_constant #endif # if defined(DEBUGGING) #ifdef PERL_CORE #define tokereport S_tokereport #endif # endif #ifdef PERL_CORE #define ao S_ao #define depcom S_depcom #define incl_perldb S_incl_perldb #endif #if 0 #ifdef PERL_CORE #define utf16_textfilter S_utf16_textfilter #define utf16rev_textfilter S_utf16rev_textfilter #endif #endif # if defined(PERL_CR_FILTER) #ifdef PERL_CORE #define cr_textfilter S_cr_textfilter #endif # endif #endif #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define isa_lookup S_isa_lookup #endif #endif #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define stdize_locale S_stdize_locale #endif #endif #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define closest_cop S_closest_cop #define mess_alloc S_mess_alloc #endif #endif #if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define mulexp10 S_mulexp10 #endif #endif #define sv_setsv_flags Perl_sv_setsv_flags #define sv_catpvn_flags Perl_sv_catpvn_flags #define sv_catsv_flags Perl_sv_catsv_flags #define sv_utf8_upgrade_flags Perl_sv_utf8_upgrade_flags #define sv_pvn_force_flags Perl_sv_pvn_force_flags #define sv_2pv_flags Perl_sv_2pv_flags #define sv_copypv Perl_sv_copypv #define my_atof2 Perl_my_atof2 #define my_socketpair Perl_my_socketpair #if defined(USE_PERLIO) && !defined(USE_SFIO) #define PerlIO_close Perl_PerlIO_close #define PerlIO_fill Perl_PerlIO_fill #define PerlIO_fileno Perl_PerlIO_fileno #define PerlIO_eof Perl_PerlIO_eof #define PerlIO_error Perl_PerlIO_error #define PerlIO_flush Perl_PerlIO_flush #define PerlIO_clearerr Perl_PerlIO_clearerr #define PerlIO_set_cnt Perl_PerlIO_set_cnt #define PerlIO_set_ptrcnt Perl_PerlIO_set_ptrcnt #define PerlIO_setlinebuf Perl_PerlIO_setlinebuf #define PerlIO_read Perl_PerlIO_read #define PerlIO_write Perl_PerlIO_write #define PerlIO_unread Perl_PerlIO_unread #define PerlIO_tell Perl_PerlIO_tell #define PerlIO_seek Perl_PerlIO_seek #define PerlIO_get_base Perl_PerlIO_get_base #define PerlIO_get_ptr Perl_PerlIO_get_ptr #define PerlIO_get_bufsiz Perl_PerlIO_get_bufsiz #define PerlIO_get_cnt Perl_PerlIO_get_cnt #define PerlIO_stdin Perl_PerlIO_stdin #define PerlIO_stdout Perl_PerlIO_stdout #define PerlIO_stderr Perl_PerlIO_stderr #endif /* PERLIO_LAYERS */ #ifdef PERL_CORE #define deb_stack_all Perl_deb_stack_all #endif #ifdef PERL_IN_DEB_C #ifdef PERL_CORE #define deb_stack_n S_deb_stack_n #endif #endif #ifdef PERL_CORE #define pad_new Perl_pad_new #define pad_undef Perl_pad_undef #define pad_add_name Perl_pad_add_name #define pad_add_anon Perl_pad_add_anon #define pad_check_dup Perl_pad_check_dup #endif #ifdef DEBUGGING #ifdef PERL_CORE #define pad_setsv Perl_pad_setsv #endif #endif #ifdef PERL_CORE #define pad_block_start Perl_pad_block_start #define pad_tidy Perl_pad_tidy #define do_dump_pad Perl_do_dump_pad #define pad_fixup_inner_anons Perl_pad_fixup_inner_anons #endif #ifdef PERL_CORE #define pad_push Perl_pad_push #endif #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define pad_findlex S_pad_findlex #endif # if defined(DEBUGGING) #ifdef PERL_CORE #define cv_dump S_cv_dump #endif # endif #ifdef PERL_CORE #define cv_clone2 S_cv_clone2 #endif #endif #ifdef PERL_CORE #define find_runcv Perl_find_runcv #define free_tied_hv_pool Perl_free_tied_hv_pool #endif #if defined(DEBUGGING) #ifdef PERL_CORE #define get_debug_opts Perl_get_debug_opts #endif #endif #define hv_clear_placeholders Perl_hv_clear_placeholders #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define hv_delete_common S_hv_delete_common #define hv_fetch_common S_hv_fetch_common #endif #endif #define hv_scalar Perl_hv_scalar #ifdef PERL_CORE #define magic_scalarpack Perl_magic_scalarpack #endif #if defined(DEBUGGING) #ifdef PERL_CORE #define get_debug_opts_flags Perl_get_debug_opts_flags #endif #endif #define op_refcnt_lock Perl_op_refcnt_lock #define op_refcnt_unlock Perl_op_refcnt_unlock #define savesvpv Perl_savesvpv #ifdef PERL_NEED_MY_HTOLE16 #ifdef PERL_CORE #define my_htole16 Perl_my_htole16 #endif #endif #ifdef PERL_NEED_MY_LETOH16 #ifdef PERL_CORE #define my_letoh16 Perl_my_letoh16 #endif #endif #ifdef PERL_NEED_MY_HTOBE16 #ifdef PERL_CORE #define my_htobe16 Perl_my_htobe16 #endif #endif #ifdef PERL_NEED_MY_BETOH16 #ifdef PERL_CORE #define my_betoh16 Perl_my_betoh16 #endif #endif #ifdef PERL_NEED_MY_HTOLE32 #ifdef PERL_CORE #define my_htole32 Perl_my_htole32 #endif #endif #ifdef PERL_NEED_MY_LETOH32 #ifdef PERL_CORE #define my_letoh32 Perl_my_letoh32 #endif #endif #ifdef PERL_NEED_MY_HTOBE32 #ifdef PERL_CORE #define my_htobe32 Perl_my_htobe32 #endif #endif #ifdef PERL_NEED_MY_BETOH32 #ifdef PERL_CORE #define my_betoh32 Perl_my_betoh32 #endif #endif #ifdef PERL_NEED_MY_HTOLE64 #ifdef PERL_CORE #define my_htole64 Perl_my_htole64 #endif #endif #ifdef PERL_NEED_MY_LETOH64 #ifdef PERL_CORE #define my_letoh64 Perl_my_letoh64 #endif #endif #ifdef PERL_NEED_MY_HTOBE64 #ifdef PERL_CORE #define my_htobe64 Perl_my_htobe64 #endif #endif #ifdef PERL_NEED_MY_BETOH64 #ifdef PERL_CORE #define my_betoh64 Perl_my_betoh64 #endif #endif #ifdef PERL_NEED_MY_HTOLES #ifdef PERL_CORE #define my_htoles Perl_my_htoles #endif #endif #ifdef PERL_NEED_MY_LETOHS #ifdef PERL_CORE #define my_letohs Perl_my_letohs #endif #endif #ifdef PERL_NEED_MY_HTOBES #ifdef PERL_CORE #define my_htobes Perl_my_htobes #endif #endif #ifdef PERL_NEED_MY_BETOHS #ifdef PERL_CORE #define my_betohs Perl_my_betohs #endif #endif #ifdef PERL_NEED_MY_HTOLEI #ifdef PERL_CORE #define my_htolei Perl_my_htolei #endif #endif #ifdef PERL_NEED_MY_LETOHI #ifdef PERL_CORE #define my_letohi Perl_my_letohi #endif #endif #ifdef PERL_NEED_MY_HTOBEI #ifdef PERL_CORE #define my_htobei Perl_my_htobei #endif #endif #ifdef PERL_NEED_MY_BETOHI #ifdef PERL_CORE #define my_betohi Perl_my_betohi #endif #endif #ifdef PERL_NEED_MY_HTOLEL #ifdef PERL_CORE #define my_htolel Perl_my_htolel #endif #endif #ifdef PERL_NEED_MY_LETOHL #ifdef PERL_CORE #define my_letohl Perl_my_letohl #endif #endif #ifdef PERL_NEED_MY_HTOBEL #ifdef PERL_CORE #define my_htobel Perl_my_htobel #endif #endif #ifdef PERL_NEED_MY_BETOHL #ifdef PERL_CORE #define my_betohl Perl_my_betohl #endif #endif #ifdef PERL_CORE #define my_swabn Perl_my_swabn #endif #define ck_anoncode Perl_ck_anoncode #define ck_bitop Perl_ck_bitop #define ck_concat Perl_ck_concat #define ck_defined Perl_ck_defined #define ck_delete Perl_ck_delete #define ck_die Perl_ck_die #define ck_eof Perl_ck_eof #define ck_eval Perl_ck_eval #define ck_exec Perl_ck_exec #define ck_exists Perl_ck_exists #define ck_exit Perl_ck_exit #define ck_ftst Perl_ck_ftst #define ck_fun Perl_ck_fun #define ck_glob Perl_ck_glob #define ck_grep Perl_ck_grep #define ck_index Perl_ck_index #define ck_join Perl_ck_join #define ck_lengthconst Perl_ck_lengthconst #define ck_lfun Perl_ck_lfun #define ck_listiob Perl_ck_listiob #define ck_match Perl_ck_match #define ck_method Perl_ck_method #define ck_null Perl_ck_null #define ck_open Perl_ck_open #define ck_repeat Perl_ck_repeat #define ck_require Perl_ck_require #define ck_return Perl_ck_return #define ck_rfun Perl_ck_rfun #define ck_rvconst Perl_ck_rvconst #define ck_sassign Perl_ck_sassign #define ck_select Perl_ck_select #define ck_shift Perl_ck_shift #define ck_sort Perl_ck_sort #define ck_spair Perl_ck_spair #define ck_split Perl_ck_split #define ck_subr Perl_ck_subr #define ck_substr Perl_ck_substr #define ck_svconst Perl_ck_svconst #define ck_trunc Perl_ck_trunc #define pp_aassign Perl_pp_aassign #define pp_abs Perl_pp_abs #define pp_accept Perl_pp_accept #define pp_add Perl_pp_add #define pp_aelem Perl_pp_aelem #define pp_aelemfast Perl_pp_aelemfast #define pp_alarm Perl_pp_alarm #define pp_and Perl_pp_and #define pp_andassign Perl_pp_andassign #define pp_anoncode Perl_pp_anoncode #define pp_anonhash Perl_pp_anonhash #define pp_anonlist Perl_pp_anonlist #define pp_aslice Perl_pp_aslice #define pp_atan2 Perl_pp_atan2 #define pp_av2arylen Perl_pp_av2arylen #define pp_backtick Perl_pp_backtick #define pp_bind Perl_pp_bind #define pp_binmode Perl_pp_binmode #define pp_bit_and Perl_pp_bit_and #define pp_bit_or Perl_pp_bit_or #define pp_bit_xor Perl_pp_bit_xor #define pp_bless Perl_pp_bless #define pp_caller Perl_pp_caller #define pp_chdir Perl_pp_chdir #define pp_chmod Perl_pp_chmod #define pp_chomp Perl_pp_chomp #define pp_chop Perl_pp_chop #define pp_chown Perl_pp_chown #define pp_chr Perl_pp_chr #define pp_chroot Perl_pp_chroot #define pp_close Perl_pp_close #define pp_closedir Perl_pp_closedir #define pp_complement Perl_pp_complement #define pp_concat Perl_pp_concat #define pp_cond_expr Perl_pp_cond_expr #define pp_connect Perl_pp_connect #define pp_const Perl_pp_const #define pp_cos Perl_pp_cos #define pp_crypt Perl_pp_crypt #define pp_dbmclose Perl_pp_dbmclose #define pp_dbmopen Perl_pp_dbmopen #define pp_dbstate Perl_pp_dbstate #define pp_defined Perl_pp_defined #define pp_delete Perl_pp_delete #define pp_die Perl_pp_die #define pp_divide Perl_pp_divide #define pp_dofile Perl_pp_dofile #define pp_dump Perl_pp_dump #define pp_each Perl_pp_each #define pp_egrent Perl_pp_egrent #define pp_ehostent Perl_pp_ehostent #define pp_enetent Perl_pp_enetent #define pp_enter Perl_pp_enter #define pp_entereval Perl_pp_entereval #define pp_enteriter Perl_pp_enteriter #define pp_enterloop Perl_pp_enterloop #define pp_entersub Perl_pp_entersub #define pp_entertry Perl_pp_entertry #define pp_enterwrite Perl_pp_enterwrite #define pp_eof Perl_pp_eof #define pp_eprotoent Perl_pp_eprotoent #define pp_epwent Perl_pp_epwent #define pp_eq Perl_pp_eq #define pp_eservent Perl_pp_eservent #define pp_exec Perl_pp_exec #define pp_exists Perl_pp_exists #define pp_exit Perl_pp_exit #define pp_exp Perl_pp_exp #define pp_fcntl Perl_pp_fcntl #define pp_fileno Perl_pp_fileno #define pp_flip Perl_pp_flip #define pp_flock Perl_pp_flock #define pp_flop Perl_pp_flop #define pp_fork Perl_pp_fork #define pp_formline Perl_pp_formline #define pp_ftatime Perl_pp_ftatime #define pp_ftbinary Perl_pp_ftbinary #define pp_ftblk Perl_pp_ftblk #define pp_ftchr Perl_pp_ftchr #define pp_ftctime Perl_pp_ftctime #define pp_ftdir Perl_pp_ftdir #define pp_fteexec Perl_pp_fteexec #define pp_fteowned Perl_pp_fteowned #define pp_fteread Perl_pp_fteread #define pp_ftewrite Perl_pp_ftewrite #define pp_ftfile Perl_pp_ftfile #define pp_ftis Perl_pp_ftis #define pp_ftlink Perl_pp_ftlink #define pp_ftmtime Perl_pp_ftmtime #define pp_ftpipe Perl_pp_ftpipe #define pp_ftrexec Perl_pp_ftrexec #define pp_ftrowned Perl_pp_ftrowned #define pp_ftrread Perl_pp_ftrread #define pp_ftrwrite Perl_pp_ftrwrite #define pp_ftsgid Perl_pp_ftsgid #define pp_ftsize Perl_pp_ftsize #define pp_ftsock Perl_pp_ftsock #define pp_ftsuid Perl_pp_ftsuid #define pp_ftsvtx Perl_pp_ftsvtx #define pp_fttext Perl_pp_fttext #define pp_fttty Perl_pp_fttty #define pp_ftzero Perl_pp_ftzero #define pp_ge Perl_pp_ge #define pp_gelem Perl_pp_gelem #define pp_getc Perl_pp_getc #define pp_getlogin Perl_pp_getlogin #define pp_getpeername Perl_pp_getpeername #define pp_getpgrp Perl_pp_getpgrp #define pp_getppid Perl_pp_getppid #define pp_getpriority Perl_pp_getpriority #define pp_getsockname Perl_pp_getsockname #define pp_ggrent Perl_pp_ggrent #define pp_ggrgid Perl_pp_ggrgid #define pp_ggrnam Perl_pp_ggrnam #define pp_ghbyaddr Perl_pp_ghbyaddr #define pp_ghbyname Perl_pp_ghbyname #define pp_ghostent Perl_pp_ghostent #define pp_glob Perl_pp_glob #define pp_gmtime Perl_pp_gmtime #define pp_gnbyaddr Perl_pp_gnbyaddr #define pp_gnbyname Perl_pp_gnbyname #define pp_gnetent Perl_pp_gnetent #define pp_goto Perl_pp_goto #define pp_gpbyname Perl_pp_gpbyname #define pp_gpbynumber Perl_pp_gpbynumber #define pp_gprotoent Perl_pp_gprotoent #define pp_gpwent Perl_pp_gpwent #define pp_gpwnam Perl_pp_gpwnam #define pp_gpwuid Perl_pp_gpwuid #define pp_grepstart Perl_pp_grepstart #define pp_grepwhile Perl_pp_grepwhile #define pp_gsbyname Perl_pp_gsbyname #define pp_gsbyport Perl_pp_gsbyport #define pp_gservent Perl_pp_gservent #define pp_gsockopt Perl_pp_gsockopt #define pp_gt Perl_pp_gt #define pp_gv Perl_pp_gv #define pp_gvsv Perl_pp_gvsv #define pp_helem Perl_pp_helem #define pp_hex Perl_pp_hex #define pp_hslice Perl_pp_hslice #define pp_i_add Perl_pp_i_add #define pp_i_divide Perl_pp_i_divide #define pp_i_eq Perl_pp_i_eq #define pp_i_ge Perl_pp_i_ge #define pp_i_gt Perl_pp_i_gt #define pp_i_le Perl_pp_i_le #define pp_i_lt Perl_pp_i_lt #define pp_i_modulo Perl_pp_i_modulo #define pp_i_multiply Perl_pp_i_multiply #define pp_i_ncmp Perl_pp_i_ncmp #define pp_i_ne Perl_pp_i_ne #define pp_i_negate Perl_pp_i_negate #define pp_i_subtract Perl_pp_i_subtract #define pp_index Perl_pp_index #define pp_int Perl_pp_int #define pp_ioctl Perl_pp_ioctl #define pp_iter Perl_pp_iter #define pp_join Perl_pp_join #define pp_keys Perl_pp_keys #define pp_kill Perl_pp_kill #define pp_last Perl_pp_last #define pp_lc Perl_pp_lc #define pp_lcfirst Perl_pp_lcfirst #define pp_le Perl_pp_le #define pp_leave Perl_pp_leave #define pp_leaveeval Perl_pp_leaveeval #define pp_leaveloop Perl_pp_leaveloop #define pp_leavesub Perl_pp_leavesub #define pp_leavesublv Perl_pp_leavesublv #define pp_leavetry Perl_pp_leavetry #define pp_leavewrite Perl_pp_leavewrite #define pp_left_shift Perl_pp_left_shift #define pp_length Perl_pp_length #define pp_lineseq Perl_pp_lineseq #define pp_link Perl_pp_link #define pp_list Perl_pp_list #define pp_listen Perl_pp_listen #define pp_localtime Perl_pp_localtime #define pp_lock Perl_pp_lock #define pp_log Perl_pp_log #define pp_lslice Perl_pp_lslice #define pp_lstat Perl_pp_lstat #define pp_lt Perl_pp_lt #define pp_mapstart Perl_pp_mapstart #define pp_mapwhile Perl_pp_mapwhile #define pp_match Perl_pp_match #define pp_method Perl_pp_method #define pp_method_named Perl_pp_method_named #define pp_mkdir Perl_pp_mkdir #define pp_modulo Perl_pp_modulo #define pp_msgctl Perl_pp_msgctl #define pp_msgget Perl_pp_msgget #define pp_msgrcv Perl_pp_msgrcv #define pp_msgsnd Perl_pp_msgsnd #define pp_multiply Perl_pp_multiply #define pp_ncmp Perl_pp_ncmp #define pp_ne Perl_pp_ne #define pp_negate Perl_pp_negate #define pp_next Perl_pp_next #define pp_nextstate Perl_pp_nextstate #define pp_not Perl_pp_not #define pp_null Perl_pp_null #define pp_oct Perl_pp_oct #define pp_open Perl_pp_open #define pp_open_dir Perl_pp_open_dir #define pp_or Perl_pp_or #define pp_orassign Perl_pp_orassign #define pp_ord Perl_pp_ord #define pp_pack Perl_pp_pack #define pp_padany Perl_pp_padany #define pp_padav Perl_pp_padav #define pp_padhv Perl_pp_padhv #define pp_padsv Perl_pp_padsv #define pp_pipe_op Perl_pp_pipe_op #define pp_pop Perl_pp_pop #define pp_pos Perl_pp_pos #define pp_postdec Perl_pp_postdec #define pp_postinc Perl_pp_postinc #define pp_pow Perl_pp_pow #define pp_predec Perl_pp_predec #define pp_preinc Perl_pp_preinc #define pp_print Perl_pp_print #define pp_prototype Perl_pp_prototype #define pp_prtf Perl_pp_prtf #define pp_push Perl_pp_push #define pp_pushmark Perl_pp_pushmark #define pp_pushre Perl_pp_pushre #define pp_qr Perl_pp_qr #define pp_quotemeta Perl_pp_quotemeta #define pp_rand Perl_pp_rand #define pp_range Perl_pp_range #define pp_rcatline Perl_pp_rcatline #define pp_read Perl_pp_read #define pp_readdir Perl_pp_readdir #define pp_readline Perl_pp_readline #define pp_readlink Perl_pp_readlink #define pp_recv Perl_pp_recv #define pp_redo Perl_pp_redo #define pp_ref Perl_pp_ref #define pp_refgen Perl_pp_refgen #define pp_regcmaybe Perl_pp_regcmaybe #define pp_regcomp Perl_pp_regcomp #define pp_regcreset Perl_pp_regcreset #define pp_rename Perl_pp_rename #define pp_repeat Perl_pp_repeat #define pp_require Perl_pp_require #define pp_reset Perl_pp_reset #define pp_return Perl_pp_return #define pp_reverse Perl_pp_reverse #define pp_rewinddir Perl_pp_rewinddir #define pp_right_shift Perl_pp_right_shift #define pp_rindex Perl_pp_rindex #define pp_rmdir Perl_pp_rmdir #define pp_rv2av Perl_pp_rv2av #define pp_rv2cv Perl_pp_rv2cv #define pp_rv2gv Perl_pp_rv2gv #define pp_rv2hv Perl_pp_rv2hv #define pp_rv2sv Perl_pp_rv2sv #define pp_sassign Perl_pp_sassign #define pp_scalar Perl_pp_scalar #define pp_schomp Perl_pp_schomp #define pp_schop Perl_pp_schop #define pp_scmp Perl_pp_scmp #define pp_scope Perl_pp_scope #define pp_seek Perl_pp_seek #define pp_seekdir Perl_pp_seekdir #define pp_select Perl_pp_select #define pp_semctl Perl_pp_semctl #define pp_semget Perl_pp_semget #define pp_semop Perl_pp_semop #define pp_send Perl_pp_send #define pp_seq Perl_pp_seq #define pp_setpgrp Perl_pp_setpgrp #define pp_setpriority Perl_pp_setpriority #define pp_setstate Perl_pp_setstate #define pp_sge Perl_pp_sge #define pp_sgrent Perl_pp_sgrent #define pp_sgt Perl_pp_sgt #define pp_shift Perl_pp_shift #define pp_shmctl Perl_pp_shmctl #define pp_shmget Perl_pp_shmget #define pp_shmread Perl_pp_shmread #define pp_shmwrite Perl_pp_shmwrite #define pp_shostent Perl_pp_shostent #define pp_shutdown Perl_pp_shutdown #define pp_sin Perl_pp_sin #define pp_sle Perl_pp_sle #define pp_sleep Perl_pp_sleep #define pp_slt Perl_pp_slt #define pp_sne Perl_pp_sne #define pp_snetent Perl_pp_snetent #define pp_socket Perl_pp_socket #define pp_sockpair Perl_pp_sockpair #define pp_sort Perl_pp_sort #define pp_splice Perl_pp_splice #define pp_split Perl_pp_split #define pp_sprintf Perl_pp_sprintf #define pp_sprotoent Perl_pp_sprotoent #define pp_spwent Perl_pp_spwent #define pp_sqrt Perl_pp_sqrt #define pp_srand Perl_pp_srand #define pp_srefgen Perl_pp_srefgen #define pp_sselect Perl_pp_sselect #define pp_sservent Perl_pp_sservent #define pp_ssockopt Perl_pp_ssockopt #define pp_stat Perl_pp_stat #define pp_stringify Perl_pp_stringify #define pp_stub Perl_pp_stub #define pp_study Perl_pp_study #define pp_subst Perl_pp_subst #define pp_substcont Perl_pp_substcont #define pp_substr Perl_pp_substr #define pp_subtract Perl_pp_subtract #define pp_symlink Perl_pp_symlink #define pp_syscall Perl_pp_syscall #define pp_sysopen Perl_pp_sysopen #define pp_sysread Perl_pp_sysread #define pp_sysseek Perl_pp_sysseek #define pp_system Perl_pp_system #define pp_syswrite Perl_pp_syswrite #define pp_tell Perl_pp_tell #define pp_telldir Perl_pp_telldir #define pp_threadsv Perl_pp_threadsv #define pp_tie Perl_pp_tie #define pp_tied Perl_pp_tied #define pp_time Perl_pp_time #define pp_tms Perl_pp_tms #define pp_trans Perl_pp_trans #define pp_truncate Perl_pp_truncate #define pp_uc Perl_pp_uc #define pp_ucfirst Perl_pp_ucfirst #define pp_umask Perl_pp_umask #define pp_undef Perl_pp_undef #define pp_unlink Perl_pp_unlink #define pp_unpack Perl_pp_unpack #define pp_unshift Perl_pp_unshift #define pp_unstack Perl_pp_unstack #define pp_untie Perl_pp_untie #define pp_utime Perl_pp_utime #define pp_values Perl_pp_values #define pp_vec Perl_pp_vec #define pp_wait Perl_pp_wait #define pp_waitpid Perl_pp_waitpid #define pp_wantarray Perl_pp_wantarray #define pp_warn Perl_pp_warn #define pp_xor Perl_pp_xor #else /* PERL_IMPLICIT_CONTEXT */ #if defined(PERL_IMPLICIT_SYS) #endif #define doing_taint Perl_doing_taint #if defined(USE_ITHREADS) # if defined(PERL_IMPLICIT_SYS) # endif #endif #if defined(MYMALLOC) #ifdef PERL_CORE #define malloced_size Perl_malloced_size #endif #endif #define get_context Perl_get_context #define set_context Perl_set_context #define amagic_call(a,b,c,d) Perl_amagic_call(aTHX_ a,b,c,d) #define Gv_AMupdate(a) Perl_Gv_AMupdate(aTHX_ a) #define gv_handler(a,b) Perl_gv_handler(aTHX_ a,b) #ifdef PERL_CORE #define append_elem(a,b,c) Perl_append_elem(aTHX_ a,b,c) #define append_list(a,b,c) Perl_append_list(aTHX_ a,b,c) #define apply(a,b,c) Perl_apply(aTHX_ a,b,c) #endif #define apply_attrs_string(a,b,c,d) Perl_apply_attrs_string(aTHX_ a,b,c,d) #define avhv_delete_ent(a,b,c,d) Perl_avhv_delete_ent(aTHX_ a,b,c,d) #define avhv_exists_ent(a,b,c) Perl_avhv_exists_ent(aTHX_ a,b,c) #define avhv_fetch_ent(a,b,c,d) Perl_avhv_fetch_ent(aTHX_ a,b,c,d) #define avhv_store_ent(a,b,c,d) Perl_avhv_store_ent(aTHX_ a,b,c,d) #define avhv_iternext(a) Perl_avhv_iternext(aTHX_ a) #define avhv_iterval(a,b) Perl_avhv_iterval(aTHX_ a,b) #define avhv_keys(a) Perl_avhv_keys(aTHX_ a) #define av_clear(a) Perl_av_clear(aTHX_ a) #define av_delete(a,b,c) Perl_av_delete(aTHX_ a,b,c) #define av_exists(a,b) Perl_av_exists(aTHX_ a,b) #define av_extend(a,b) Perl_av_extend(aTHX_ a,b) #ifdef PERL_CORE #define av_fake(a,b) Perl_av_fake(aTHX_ a,b) #endif #define av_fetch(a,b,c) Perl_av_fetch(aTHX_ a,b,c) #define av_fill(a,b) Perl_av_fill(aTHX_ a,b) #define av_len(a) Perl_av_len(aTHX_ a) #define av_make(a,b) Perl_av_make(aTHX_ a,b) #define av_pop(a) Perl_av_pop(aTHX_ a) #define av_push(a,b) Perl_av_push(aTHX_ a,b) #ifdef PERL_CORE #define av_reify(a) Perl_av_reify(aTHX_ a) #endif #define av_shift(a) Perl_av_shift(aTHX_ a) #define av_store(a,b,c) Perl_av_store(aTHX_ a,b,c) #define av_undef(a) Perl_av_undef(aTHX_ a) #define av_unshift(a,b) Perl_av_unshift(aTHX_ a,b) #ifdef PERL_CORE #define bind_match(a,b,c) Perl_bind_match(aTHX_ a,b,c) #define block_end(a,b) Perl_block_end(aTHX_ a,b) #endif #define block_gimme() Perl_block_gimme(aTHX) #ifdef PERL_CORE #define block_start(a) Perl_block_start(aTHX_ a) #define boot_core_UNIVERSAL() Perl_boot_core_UNIVERSAL(aTHX) #define boot_core_PerlIO() Perl_boot_core_PerlIO(aTHX) #endif #define call_list(a,b) Perl_call_list(aTHX_ a,b) #ifdef PERL_CORE #define cando(a,b,c) Perl_cando(aTHX_ a,b,c) #endif #define cast_ulong(a) Perl_cast_ulong(aTHX_ a) #define cast_i32(a) Perl_cast_i32(aTHX_ a) #define cast_iv(a) Perl_cast_iv(aTHX_ a) #define cast_uv(a) Perl_cast_uv(aTHX_ a) #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) #define my_chsize(a,b) Perl_my_chsize(aTHX_ a,b) #endif #if defined(USE_5005THREADS) #define condpair_magic(a) Perl_condpair_magic(aTHX_ a) #endif #ifdef PERL_CORE #define convert(a,b,c) Perl_convert(aTHX_ a,b,c) #endif #define vcroak(a,b) Perl_vcroak(aTHX_ a,b) #if defined(PERL_IMPLICIT_CONTEXT) #endif #ifdef PERL_CORE #define cv_ckproto(a,b,c) Perl_cv_ckproto(aTHX_ a,b,c) #define cv_clone(a) Perl_cv_clone(aTHX_ a) #endif #define cv_const_sv(a) Perl_cv_const_sv(aTHX_ a) #ifdef PERL_CORE #define op_const_sv(a,b) Perl_op_const_sv(aTHX_ a,b) #endif #define cv_undef(a) Perl_cv_undef(aTHX_ a) #define cx_dump(a) Perl_cx_dump(aTHX_ a) #define filter_add(a,b) Perl_filter_add(aTHX_ a,b) #define filter_del(a) Perl_filter_del(aTHX_ a) #define filter_read(a,b,c) Perl_filter_read(aTHX_ a,b,c) #define get_op_descs() Perl_get_op_descs(aTHX) #define get_op_names() Perl_get_op_names(aTHX) #ifdef PERL_CORE #define get_no_modify() Perl_get_no_modify(aTHX) #define get_opargs() Perl_get_opargs(aTHX) #endif #define get_ppaddr() Perl_get_ppaddr(aTHX) #if defined(PERL_CORE) || defined(PERL_EXT) #define cxinc() Perl_cxinc(aTHX) #endif #define vdeb(a,b) Perl_vdeb(aTHX_ a,b) #define debprofdump() Perl_debprofdump(aTHX) #define debop(a) Perl_debop(aTHX_ a) #define debstack() Perl_debstack(aTHX) #define debstackptrs() Perl_debstackptrs(aTHX) #define delimcpy(a,b,c,d,e,f) Perl_delimcpy(aTHX_ a,b,c,d,e,f) #ifdef PERL_CORE #define deprecate(a) Perl_deprecate(aTHX_ a) #define deprecate_old(a) Perl_deprecate_old(aTHX_ a) #endif #ifdef PERL_CORE #define vdie(a,b) Perl_vdie(aTHX_ a,b) #define die_where(a,b) Perl_die_where(aTHX_ a,b) #endif #define dounwind(a) Perl_dounwind(aTHX_ a) #ifdef PERL_CORE #define do_aexec(a,b,c) Perl_do_aexec(aTHX_ a,b,c) #define do_aexec5(a,b,c,d,e) Perl_do_aexec5(aTHX_ a,b,c,d,e) #endif #define do_binmode(a,b,c) Perl_do_binmode(aTHX_ a,b,c) #ifdef PERL_CORE #define do_chop(a,b) Perl_do_chop(aTHX_ a,b) #endif #define do_close(a,b) Perl_do_close(aTHX_ a,b) #ifdef PERL_CORE #define do_eof(a) Perl_do_eof(aTHX_ a) #define do_exec(a) Perl_do_exec(aTHX_ a) #endif #if defined(WIN32) #define do_aspawn(a,b,c) Perl_do_aspawn(aTHX_ a,b,c) #define do_spawn(a) Perl_do_spawn(aTHX_ a) #define do_spawn_nowait(a) Perl_do_spawn_nowait(aTHX_ a) #endif #if !defined(WIN32) #ifdef PERL_CORE #define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c) #endif #endif #ifdef PERL_CORE #define do_execfree() Perl_do_execfree(aTHX) #endif #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) #ifdef PERL_CORE #define do_ipcctl(a,b,c) Perl_do_ipcctl(aTHX_ a,b,c) #define do_ipcget(a,b,c) Perl_do_ipcget(aTHX_ a,b,c) #define do_msgrcv(a,b) Perl_do_msgrcv(aTHX_ a,b) #define do_msgsnd(a,b) Perl_do_msgsnd(aTHX_ a,b) #define do_semop(a,b) Perl_do_semop(aTHX_ a,b) #define do_shmio(a,b,c) Perl_do_shmio(aTHX_ a,b,c) #endif #endif #define do_join(a,b,c,d) Perl_do_join(aTHX_ a,b,c,d) #ifdef PERL_CORE #define do_kv() Perl_do_kv(aTHX) #endif #define do_open(a,b,c,d,e,f,g) Perl_do_open(aTHX_ a,b,c,d,e,f,g) #define do_open9(a,b,c,d,e,f,g,h,i) Perl_do_open9(aTHX_ a,b,c,d,e,f,g,h,i) #define do_openn(a,b,c,d,e,f,g,h,i) Perl_do_openn(aTHX_ a,b,c,d,e,f,g,h,i) #ifdef PERL_CORE #define do_pipe(a,b,c) Perl_do_pipe(aTHX_ a,b,c) #define do_print(a,b) Perl_do_print(aTHX_ a,b) #define do_readline() Perl_do_readline(aTHX) #define do_chomp(a) Perl_do_chomp(aTHX_ a) #define do_seek(a,b,c) Perl_do_seek(aTHX_ a,b,c) #endif #define do_sprintf(a,b,c) Perl_do_sprintf(aTHX_ a,b,c) #ifdef PERL_CORE #define do_sysseek(a,b,c) Perl_do_sysseek(aTHX_ a,b,c) #define do_tell(a) Perl_do_tell(aTHX_ a) #define do_trans(a) Perl_do_trans(aTHX_ a) #define do_vecget(a,b,c) Perl_do_vecget(aTHX_ a,b,c) #define do_vecset(a) Perl_do_vecset(aTHX_ a) #define do_vop(a,b,c,d) Perl_do_vop(aTHX_ a,b,c,d) #define dofile(a) Perl_dofile(aTHX_ a) #endif #define dowantarray() Perl_dowantarray(aTHX) #define dump_all() Perl_dump_all(aTHX) #define dump_eval() Perl_dump_eval(aTHX) #if defined(DUMP_FDS) #define dump_fds(a) Perl_dump_fds(aTHX_ a) #endif #define dump_form(a) Perl_dump_form(aTHX_ a) #define gv_dump(a) Perl_gv_dump(aTHX_ a) #define op_dump(a) Perl_op_dump(aTHX_ a) #define pmop_dump(a) Perl_pmop_dump(aTHX_ a) #define dump_packsubs(a) Perl_dump_packsubs(aTHX_ a) #define dump_sub(a) Perl_dump_sub(aTHX_ a) #define fbm_compile(a,b) Perl_fbm_compile(aTHX_ a,b) #define fbm_instr(a,b,c,d) Perl_fbm_instr(aTHX_ a,b,c,d) #ifdef PERL_CORE #define find_script(a,b,c,d) Perl_find_script(aTHX_ a,b,c,d) #endif #if defined(USE_5005THREADS) #ifdef PERL_CORE #define find_threadsv(a) Perl_find_threadsv(aTHX_ a) #endif #endif #ifdef PERL_CORE #define force_list(a) Perl_force_list(aTHX_ a) #define fold_constants(a) Perl_fold_constants(aTHX_ a) #endif #define vform(a,b) Perl_vform(aTHX_ a,b) #define free_tmps() Perl_free_tmps(aTHX) #ifdef PERL_CORE #define gen_constant_list(a) Perl_gen_constant_list(aTHX_ a) #endif #if !defined(HAS_GETENV_LEN) #ifdef PERL_CORE #define getenv_len(a,b) Perl_getenv_len(aTHX_ a,b) #endif #endif #define gp_free(a) Perl_gp_free(aTHX_ a) #define gp_ref(a) Perl_gp_ref(aTHX_ a) #define gv_AVadd(a) Perl_gv_AVadd(aTHX_ a) #define gv_HVadd(a) Perl_gv_HVadd(aTHX_ a) #define gv_IOadd(a) Perl_gv_IOadd(aTHX_ a) #define gv_autoload4(a,b,c,d) Perl_gv_autoload4(aTHX_ a,b,c,d) #define gv_check(a) Perl_gv_check(aTHX_ a) #define gv_efullname(a,b) Perl_gv_efullname(aTHX_ a,b) #define gv_efullname4(a,b,c,d) Perl_gv_efullname4(aTHX_ a,b,c,d) #define gv_fetchfile(a) Perl_gv_fetchfile(aTHX_ a) #define gv_fetchmeth(a,b,c,d) Perl_gv_fetchmeth(aTHX_ a,b,c,d) #define gv_fetchmeth_autoload(a,b,c,d) Perl_gv_fetchmeth_autoload(aTHX_ a,b,c,d) #define gv_fetchmethod(a,b) Perl_gv_fetchmethod(aTHX_ a,b) #define gv_fetchmethod_autoload(a,b,c) Perl_gv_fetchmethod_autoload(aTHX_ a,b,c) #define gv_fetchpv(a,b,c) Perl_gv_fetchpv(aTHX_ a,b,c) #define gv_fullname(a,b) Perl_gv_fullname(aTHX_ a,b) #define gv_fullname4(a,b,c,d) Perl_gv_fullname4(aTHX_ a,b,c,d) #define gv_init(a,b,c,d,e) Perl_gv_init(aTHX_ a,b,c,d,e) #define gv_stashpv(a,b) Perl_gv_stashpv(aTHX_ a,b) #define gv_stashpvn(a,b,c) Perl_gv_stashpvn(aTHX_ a,b,c) #define gv_stashsv(a,b) Perl_gv_stashsv(aTHX_ a,b) #define hv_clear(a) Perl_hv_clear(aTHX_ a) #define hv_delayfree_ent(a,b) Perl_hv_delayfree_ent(aTHX_ a,b) #define hv_delete(a,b,c,d) Perl_hv_delete(aTHX_ a,b,c,d) #define hv_delete_ent(a,b,c,d) Perl_hv_delete_ent(aTHX_ a,b,c,d) #define hv_exists(a,b,c) Perl_hv_exists(aTHX_ a,b,c) #define hv_exists_ent(a,b,c) Perl_hv_exists_ent(aTHX_ a,b,c) #define hv_fetch(a,b,c,d) Perl_hv_fetch(aTHX_ a,b,c,d) #define hv_fetch_ent(a,b,c,d) Perl_hv_fetch_ent(aTHX_ a,b,c,d) #define hv_free_ent(a,b) Perl_hv_free_ent(aTHX_ a,b) #define hv_iterinit(a) Perl_hv_iterinit(aTHX_ a) #define hv_iterkey(a,b) Perl_hv_iterkey(aTHX_ a,b) #define hv_iterkeysv(a) Perl_hv_iterkeysv(aTHX_ a) #define hv_iternext(a) Perl_hv_iternext(aTHX_ a) #define hv_iternextsv(a,b,c) Perl_hv_iternextsv(aTHX_ a,b,c) #define hv_iternext_flags(a,b) Perl_hv_iternext_flags(aTHX_ a,b) #define hv_iterval(a,b) Perl_hv_iterval(aTHX_ a,b) #define hv_ksplit(a,b) Perl_hv_ksplit(aTHX_ a,b) #define hv_magic(a,b,c) Perl_hv_magic(aTHX_ a,b,c) #define hv_store(a,b,c,d,e) Perl_hv_store(aTHX_ a,b,c,d,e) #define hv_store_ent(a,b,c,d) Perl_hv_store_ent(aTHX_ a,b,c,d) #define hv_store_flags(a,b,c,d,e,f) Perl_hv_store_flags(aTHX_ a,b,c,d,e,f) #define hv_undef(a) Perl_hv_undef(aTHX_ a) #define ibcmp(a,b,c) Perl_ibcmp(aTHX_ a,b,c) #define ibcmp_locale(a,b,c) Perl_ibcmp_locale(aTHX_ a,b,c) #define ibcmp_utf8(a,b,c,d,e,f,g,h) Perl_ibcmp_utf8(aTHX_ a,b,c,d,e,f,g,h) #ifdef PERL_CORE #define ingroup(a,b) Perl_ingroup(aTHX_ a,b) #define init_argv_symbols(a,b) Perl_init_argv_symbols(aTHX_ a,b) #define init_debugger() Perl_init_debugger(aTHX) #endif #define init_stacks() Perl_init_stacks(aTHX) #define init_tm(a) Perl_init_tm(aTHX_ a) #ifdef PERL_CORE #define intro_my() Perl_intro_my(aTHX) #endif #define instr(a,b) Perl_instr(aTHX_ a,b) #ifdef PERL_CORE #define io_close(a,b) Perl_io_close(aTHX_ a,b) #define invert(a) Perl_invert(aTHX_ a) #define is_gv_magical(a,b,c) Perl_is_gv_magical(aTHX_ a,b,c) #endif #define is_lvalue_sub() Perl_is_lvalue_sub(aTHX) #define to_uni_upper_lc(a) Perl_to_uni_upper_lc(aTHX_ a) #define to_uni_title_lc(a) Perl_to_uni_title_lc(aTHX_ a) #define to_uni_lower_lc(a) Perl_to_uni_lower_lc(aTHX_ a) #define is_uni_alnum(a) Perl_is_uni_alnum(aTHX_ a) #define is_uni_alnumc(a) Perl_is_uni_alnumc(aTHX_ a) #define is_uni_idfirst(a) Perl_is_uni_idfirst(aTHX_ a) #define is_uni_alpha(a) Perl_is_uni_alpha(aTHX_ a) #define is_uni_ascii(a) Perl_is_uni_ascii(aTHX_ a) #define is_uni_space(a) Perl_is_uni_space(aTHX_ a) #define is_uni_cntrl(a) Perl_is_uni_cntrl(aTHX_ a) #define is_uni_graph(a) Perl_is_uni_graph(aTHX_ a) #define is_uni_digit(a) Perl_is_uni_digit(aTHX_ a) #define is_uni_upper(a) Perl_is_uni_upper(aTHX_ a) #define is_uni_lower(a) Perl_is_uni_lower(aTHX_ a) #define is_uni_print(a) Perl_is_uni_print(aTHX_ a) #define is_uni_punct(a) Perl_is_uni_punct(aTHX_ a) #define is_uni_xdigit(a) Perl_is_uni_xdigit(aTHX_ a) #define to_uni_upper(a,b,c) Perl_to_uni_upper(aTHX_ a,b,c) #define to_uni_title(a,b,c) Perl_to_uni_title(aTHX_ a,b,c) #define to_uni_lower(a,b,c) Perl_to_uni_lower(aTHX_ a,b,c) #define to_uni_fold(a,b,c) Perl_to_uni_fold(aTHX_ a,b,c) #define is_uni_alnum_lc(a) Perl_is_uni_alnum_lc(aTHX_ a) #define is_uni_alnumc_lc(a) Perl_is_uni_alnumc_lc(aTHX_ a) #define is_uni_idfirst_lc(a) Perl_is_uni_idfirst_lc(aTHX_ a) #define is_uni_alpha_lc(a) Perl_is_uni_alpha_lc(aTHX_ a) #define is_uni_ascii_lc(a) Perl_is_uni_ascii_lc(aTHX_ a) #define is_uni_space_lc(a) Perl_is_uni_space_lc(aTHX_ a) #define is_uni_cntrl_lc(a) Perl_is_uni_cntrl_lc(aTHX_ a) #define is_uni_graph_lc(a) Perl_is_uni_graph_lc(aTHX_ a) #define is_uni_digit_lc(a) Perl_is_uni_digit_lc(aTHX_ a) #define is_uni_upper_lc(a) Perl_is_uni_upper_lc(aTHX_ a) #define is_uni_lower_lc(a) Perl_is_uni_lower_lc(aTHX_ a) #define is_uni_print_lc(a) Perl_is_uni_print_lc(aTHX_ a) #define is_uni_punct_lc(a) Perl_is_uni_punct_lc(aTHX_ a) #define is_uni_xdigit_lc(a) Perl_is_uni_xdigit_lc(aTHX_ a) #define is_utf8_char(a) Perl_is_utf8_char(aTHX_ a) #define is_utf8_string(a,b) Perl_is_utf8_string(aTHX_ a,b) #define is_utf8_string_loc(a,b,c) Perl_is_utf8_string_loc(aTHX_ a,b,c) #define is_utf8_alnum(a) Perl_is_utf8_alnum(aTHX_ a) #define is_utf8_alnumc(a) Perl_is_utf8_alnumc(aTHX_ a) #define is_utf8_idfirst(a) Perl_is_utf8_idfirst(aTHX_ a) #define is_utf8_idcont(a) Perl_is_utf8_idcont(aTHX_ a) #define is_utf8_alpha(a) Perl_is_utf8_alpha(aTHX_ a) #define is_utf8_ascii(a) Perl_is_utf8_ascii(aTHX_ a) #define is_utf8_space(a) Perl_is_utf8_space(aTHX_ a) #define is_utf8_cntrl(a) Perl_is_utf8_cntrl(aTHX_ a) #define is_utf8_digit(a) Perl_is_utf8_digit(aTHX_ a) #define is_utf8_graph(a) Perl_is_utf8_graph(aTHX_ a) #define is_utf8_upper(a) Perl_is_utf8_upper(aTHX_ a) #define is_utf8_lower(a) Perl_is_utf8_lower(aTHX_ a) #define is_utf8_print(a) Perl_is_utf8_print(aTHX_ a) #define is_utf8_punct(a) Perl_is_utf8_punct(aTHX_ a) #define is_utf8_xdigit(a) Perl_is_utf8_xdigit(aTHX_ a) #define is_utf8_mark(a) Perl_is_utf8_mark(aTHX_ a) #ifdef PERL_CORE #define jmaybe(a) Perl_jmaybe(aTHX_ a) #define keyword(a,b) Perl_keyword(aTHX_ a,b) #endif #define leave_scope(a) Perl_leave_scope(aTHX_ a) #ifdef PERL_CORE #define lex_end() Perl_lex_end(aTHX) #define lex_start(a) Perl_lex_start(aTHX_ a) #endif #define op_null(a) Perl_op_null(aTHX_ a) #ifdef PERL_CORE #define op_clear(a) Perl_op_clear(aTHX_ a) #define linklist(a) Perl_linklist(aTHX_ a) #define list(a) Perl_list(aTHX_ a) #define listkids(a) Perl_listkids(aTHX_ a) #endif #define vload_module(a,b,c,d) Perl_vload_module(aTHX_ a,b,c,d) #ifdef PERL_CORE #define localize(a,b) Perl_localize(aTHX_ a,b) #endif #define looks_like_number(a) Perl_looks_like_number(aTHX_ a) #define grok_bin(a,b,c,d) Perl_grok_bin(aTHX_ a,b,c,d) #define grok_hex(a,b,c,d) Perl_grok_hex(aTHX_ a,b,c,d) #define grok_number(a,b,c) Perl_grok_number(aTHX_ a,b,c) #define grok_numeric_radix(a,b) Perl_grok_numeric_radix(aTHX_ a,b) #define grok_oct(a,b,c,d) Perl_grok_oct(aTHX_ a,b,c,d) #ifdef PERL_CORE #define magic_clearenv(a,b) Perl_magic_clearenv(aTHX_ a,b) #define magic_clear_all_env(a,b) Perl_magic_clear_all_env(aTHX_ a,b) #define magic_clearpack(a,b) Perl_magic_clearpack(aTHX_ a,b) #define magic_clearsig(a,b) Perl_magic_clearsig(aTHX_ a,b) #define magic_existspack(a,b) Perl_magic_existspack(aTHX_ a,b) #define magic_freeregexp(a,b) Perl_magic_freeregexp(aTHX_ a,b) #define magic_freeovrld(a,b) Perl_magic_freeovrld(aTHX_ a,b) #define magic_get(a,b) Perl_magic_get(aTHX_ a,b) #define magic_getarylen(a,b) Perl_magic_getarylen(aTHX_ a,b) #define magic_getdefelem(a,b) Perl_magic_getdefelem(aTHX_ a,b) #define magic_getglob(a,b) Perl_magic_getglob(aTHX_ a,b) #define magic_getnkeys(a,b) Perl_magic_getnkeys(aTHX_ a,b) #define magic_getpack(a,b) Perl_magic_getpack(aTHX_ a,b) #define magic_getpos(a,b) Perl_magic_getpos(aTHX_ a,b) #define magic_getsig(a,b) Perl_magic_getsig(aTHX_ a,b) #define magic_getsubstr(a,b) Perl_magic_getsubstr(aTHX_ a,b) #define magic_gettaint(a,b) Perl_magic_gettaint(aTHX_ a,b) #define magic_getuvar(a,b) Perl_magic_getuvar(aTHX_ a,b) #define magic_getvec(a,b) Perl_magic_getvec(aTHX_ a,b) #define magic_len(a,b) Perl_magic_len(aTHX_ a,b) #endif #if defined(USE_5005THREADS) #ifdef PERL_CORE #define magic_mutexfree(a,b) Perl_magic_mutexfree(aTHX_ a,b) #endif #endif #ifdef PERL_CORE #define magic_nextpack(a,b,c) Perl_magic_nextpack(aTHX_ a,b,c) #define magic_regdata_cnt(a,b) Perl_magic_regdata_cnt(aTHX_ a,b) #define magic_regdatum_get(a,b) Perl_magic_regdatum_get(aTHX_ a,b) #define magic_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b) #define magic_set(a,b) Perl_magic_set(aTHX_ a,b) #define magic_setamagic(a,b) Perl_magic_setamagic(aTHX_ a,b) #define magic_setarylen(a,b) Perl_magic_setarylen(aTHX_ a,b) #define magic_setbm(a,b) Perl_magic_setbm(aTHX_ a,b) #define magic_setdbline(a,b) Perl_magic_setdbline(aTHX_ a,b) #endif #if defined(USE_LOCALE_COLLATE) #ifdef PERL_CORE #define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b) #endif #endif #ifdef PERL_CORE #define magic_setdefelem(a,b) Perl_magic_setdefelem(aTHX_ a,b) #define magic_setenv(a,b) Perl_magic_setenv(aTHX_ a,b) #define magic_setfm(a,b) Perl_magic_setfm(aTHX_ a,b) #define magic_setisa(a,b) Perl_magic_setisa(aTHX_ a,b) #define magic_setglob(a,b) Perl_magic_setglob(aTHX_ a,b) #define magic_setmglob(a,b) Perl_magic_setmglob(aTHX_ a,b) #define magic_setnkeys(a,b) Perl_magic_setnkeys(aTHX_ a,b) #define magic_setpack(a,b) Perl_magic_setpack(aTHX_ a,b) #define magic_setpos(a,b) Perl_magic_setpos(aTHX_ a,b) #define magic_setregexp(a,b) Perl_magic_setregexp(aTHX_ a,b) #define magic_setsig(a,b) Perl_magic_setsig(aTHX_ a,b) #define magic_setsubstr(a,b) Perl_magic_setsubstr(aTHX_ a,b) #define magic_settaint(a,b) Perl_magic_settaint(aTHX_ a,b) #define magic_setuvar(a,b) Perl_magic_setuvar(aTHX_ a,b) #define magic_setvec(a,b) Perl_magic_setvec(aTHX_ a,b) #define magic_setutf8(a,b) Perl_magic_setutf8(aTHX_ a,b) #define magic_set_all_env(a,b) Perl_magic_set_all_env(aTHX_ a,b) #define magic_sizepack(a,b) Perl_magic_sizepack(aTHX_ a,b) #define magic_wipepack(a,b) Perl_magic_wipepack(aTHX_ a,b) #define magicname(a,b,c) Perl_magicname(aTHX_ a,b,c) #endif #define markstack_grow() Perl_markstack_grow(aTHX) #if defined(USE_LOCALE_COLLATE) #ifdef PERL_CORE #define mem_collxfrm(a,b,c) Perl_mem_collxfrm(aTHX_ a,b,c) #endif #endif #define vmess(a,b) Perl_vmess(aTHX_ a,b) #ifdef PERL_CORE #define qerror(a) Perl_qerror(aTHX_ a) #endif #define sortsv(a,b,c) Perl_sortsv(aTHX_ a,b,c) #define mg_clear(a) Perl_mg_clear(aTHX_ a) #define mg_copy(a,b,c,d) Perl_mg_copy(aTHX_ a,b,c,d) #define mg_find(a,b) Perl_mg_find(aTHX_ a,b) #define mg_free(a) Perl_mg_free(aTHX_ a) #define mg_get(a) Perl_mg_get(aTHX_ a) #define mg_length(a) Perl_mg_length(aTHX_ a) #define mg_magical(a) Perl_mg_magical(aTHX_ a) #define mg_set(a) Perl_mg_set(aTHX_ a) #define mg_size(a) Perl_mg_size(aTHX_ a) #define mini_mktime(a) Perl_mini_mktime(aTHX_ a) #ifdef PERL_CORE #define mod(a,b) Perl_mod(aTHX_ a,b) #define mode_from_discipline(a) Perl_mode_from_discipline(aTHX_ a) #endif #define moreswitches(a) Perl_moreswitches(aTHX_ a) #ifdef PERL_CORE #define my(a) Perl_my(aTHX_ a) #endif #define my_atof(a) Perl_my_atof(aTHX_ a) #if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY)) #define my_bcopy Perl_my_bcopy #endif #if !defined(HAS_BZERO) && !defined(HAS_MEMSET) #define my_bzero Perl_my_bzero #endif #define my_exit(a) Perl_my_exit(aTHX_ a) #define my_failure_exit() Perl_my_failure_exit(aTHX) #define my_fflush_all() Perl_my_fflush_all(aTHX) #define my_fork Perl_my_fork #define atfork_lock Perl_atfork_lock #define atfork_unlock Perl_atfork_unlock #define my_lstat() Perl_my_lstat(aTHX) #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) #define my_memcmp Perl_my_memcmp #endif #if !defined(HAS_MEMSET) #define my_memset Perl_my_memset #endif #define my_pclose(a) Perl_my_pclose(aTHX_ a) #define my_popen(a,b) Perl_my_popen(aTHX_ a,b) #define my_popen_list(a,b,c) Perl_my_popen_list(aTHX_ a,b,c) #define my_setenv(a,b) Perl_my_setenv(aTHX_ a,b) #define my_stat() Perl_my_stat(aTHX) #define my_strftime(a,b,c,d,e,f,g,h,i,j) Perl_my_strftime(aTHX_ a,b,c,d,e,f,g,h,i,j) #if defined(MYSWAP) #define my_swap(a) Perl_my_swap(aTHX_ a) #define my_htonl(a) Perl_my_htonl(aTHX_ a) #define my_ntohl(a) Perl_my_ntohl(aTHX_ a) #endif #ifdef PERL_CORE #define my_unexec() Perl_my_unexec(aTHX) #endif #define newANONLIST(a) Perl_newANONLIST(aTHX_ a) #define newANONHASH(a) Perl_newANONHASH(aTHX_ a) #define newANONSUB(a,b,c) Perl_newANONSUB(aTHX_ a,b,c) #define newASSIGNOP(a,b,c,d) Perl_newASSIGNOP(aTHX_ a,b,c,d) #define newCONDOP(a,b,c,d) Perl_newCONDOP(aTHX_ a,b,c,d) #define newCONSTSUB(a,b,c) Perl_newCONSTSUB(aTHX_ a,b,c) #define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c) #define newFOROP(a,b,c,d,e,f,g) Perl_newFOROP(aTHX_ a,b,c,d,e,f,g) #define newLOGOP(a,b,c,d) Perl_newLOGOP(aTHX_ a,b,c,d) #define newLOOPEX(a,b) Perl_newLOOPEX(aTHX_ a,b) #define newLOOPOP(a,b,c,d) Perl_newLOOPOP(aTHX_ a,b,c,d) #define newNULLLIST() Perl_newNULLLIST(aTHX) #define newOP(a,b) Perl_newOP(aTHX_ a,b) #define newPROG(a) Perl_newPROG(aTHX_ a) #define newRANGE(a,b,c) Perl_newRANGE(aTHX_ a,b,c) #define newSLICEOP(a,b,c) Perl_newSLICEOP(aTHX_ a,b,c) #define newSTATEOP(a,b,c) Perl_newSTATEOP(aTHX_ a,b,c) #define newSUB(a,b,c,d) Perl_newSUB(aTHX_ a,b,c,d) #define newXS(a,b,c) Perl_newXS(aTHX_ a,b,c) #define newAV() Perl_newAV(aTHX) #define newAVREF(a) Perl_newAVREF(aTHX_ a) #define newBINOP(a,b,c,d) Perl_newBINOP(aTHX_ a,b,c,d) #define newCVREF(a,b) Perl_newCVREF(aTHX_ a,b) #define newGVOP(a,b,c) Perl_newGVOP(aTHX_ a,b,c) #define newGVgen(a) Perl_newGVgen(aTHX_ a) #define newGVREF(a,b) Perl_newGVREF(aTHX_ a,b) #define newHVREF(a) Perl_newHVREF(aTHX_ a) #define newHV() Perl_newHV(aTHX) #define newHVhv(a) Perl_newHVhv(aTHX_ a) #define newIO() Perl_newIO(aTHX) #define newLISTOP(a,b,c,d) Perl_newLISTOP(aTHX_ a,b,c,d) #define newPADOP(a,b,c) Perl_newPADOP(aTHX_ a,b,c) #define newPMOP(a,b) Perl_newPMOP(aTHX_ a,b) #define newPVOP(a,b,c) Perl_newPVOP(aTHX_ a,b,c) #define newRV(a) Perl_newRV(aTHX_ a) #define newRV_noinc(a) Perl_newRV_noinc(aTHX_ a) #define newSV(a) Perl_newSV(aTHX_ a) #define newSVREF(a) Perl_newSVREF(aTHX_ a) #define newSVOP(a,b,c) Perl_newSVOP(aTHX_ a,b,c) #define newSViv(a) Perl_newSViv(aTHX_ a) #define newSVuv(a) Perl_newSVuv(aTHX_ a) #define newSVnv(a) Perl_newSVnv(aTHX_ a) #define newSVpv(a,b) Perl_newSVpv(aTHX_ a,b) #define newSVpvn(a,b) Perl_newSVpvn(aTHX_ a,b) #define newSVpvn_share(a,b,c) Perl_newSVpvn_share(aTHX_ a,b,c) #define vnewSVpvf(a,b) Perl_vnewSVpvf(aTHX_ a,b) #define newSVrv(a,b) Perl_newSVrv(aTHX_ a,b) #define newSVsv(a) Perl_newSVsv(aTHX_ a) #define newUNOP(a,b,c) Perl_newUNOP(aTHX_ a,b,c) #define newWHILEOP(a,b,c,d,e,f,g) Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g) #define new_stackinfo(a,b) Perl_new_stackinfo(aTHX_ a,b) #define scan_vstring(a,b) Perl_scan_vstring(aTHX_ a,b) #ifdef PERL_CORE #define nextargv(a) Perl_nextargv(aTHX_ a) #endif #define ninstr(a,b,c,d) Perl_ninstr(aTHX_ a,b,c,d) #ifdef PERL_CORE #define oopsCV(a) Perl_oopsCV(aTHX_ a) #endif #define op_free(a) Perl_op_free(aTHX_ a) #ifdef PERL_CORE #define package(a) Perl_package(aTHX_ a) #define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b) #define allocmy(a) Perl_allocmy(aTHX_ a) #define pad_findmy(a) Perl_pad_findmy(aTHX_ a) #define oopsAV(a) Perl_oopsAV(aTHX_ a) #define oopsHV(a) Perl_oopsHV(aTHX_ a) #define pad_leavemy() Perl_pad_leavemy(aTHX) #endif #define pad_sv(a) Perl_pad_sv(aTHX_ a) #ifdef PERL_CORE #define pad_free(a) Perl_pad_free(aTHX_ a) #define pad_reset() Perl_pad_reset(aTHX) #define pad_swipe(a,b) Perl_pad_swipe(aTHX_ a,b) #define peep(a) Perl_peep(aTHX_ a) #endif #if defined(USE_5005THREADS) #define new_struct_thread(a) Perl_new_struct_thread(aTHX_ a) #endif #if defined(USE_REENTRANT_API) #define reentrant_size() Perl_reentrant_size(aTHX) #define reentrant_init() Perl_reentrant_init(aTHX) #define reentrant_free() Perl_reentrant_free(aTHX) #endif #define call_atexit(a,b) Perl_call_atexit(aTHX_ a,b) #define call_argv(a,b,c) Perl_call_argv(aTHX_ a,b,c) #define call_method(a,b) Perl_call_method(aTHX_ a,b) #define call_pv(a,b) Perl_call_pv(aTHX_ a,b) #define call_sv(a,b) Perl_call_sv(aTHX_ a,b) #define despatch_signals() Perl_despatch_signals(aTHX) #define eval_pv(a,b) Perl_eval_pv(aTHX_ a,b) #define eval_sv(a,b) Perl_eval_sv(aTHX_ a,b) #define get_sv(a,b) Perl_get_sv(aTHX_ a,b) #define get_av(a,b) Perl_get_av(aTHX_ a,b) #define get_hv(a,b) Perl_get_hv(aTHX_ a,b) #define get_cv(a,b) Perl_get_cv(aTHX_ a,b) #define init_i18nl10n(a) Perl_init_i18nl10n(aTHX_ a) #define init_i18nl14n(a) Perl_init_i18nl14n(aTHX_ a) #define new_collate(a) Perl_new_collate(aTHX_ a) #define new_ctype(a) Perl_new_ctype(aTHX_ a) #define new_numeric(a) Perl_new_numeric(aTHX_ a) #define set_numeric_local() Perl_set_numeric_local(aTHX) #define set_numeric_radix() Perl_set_numeric_radix(aTHX) #define set_numeric_standard() Perl_set_numeric_standard(aTHX) #define require_pv(a) Perl_require_pv(aTHX_ a) #define pack_cat(a,b,c,d,e,f,g) Perl_pack_cat(aTHX_ a,b,c,d,e,f,g) #define packlist(a,b,c,d,e) Perl_packlist(aTHX_ a,b,c,d,e) #ifdef PERL_CORE #define pidgone(a,b) Perl_pidgone(aTHX_ a,b) #endif #define pmflag(a,b) Perl_pmflag(aTHX_ a,b) #ifdef PERL_CORE #define pmruntime(a,b,c) Perl_pmruntime(aTHX_ a,b,c) #define pmtrans(a,b,c) Perl_pmtrans(aTHX_ a,b,c) #define pop_return() Perl_pop_return(aTHX) #endif #define pop_scope() Perl_pop_scope(aTHX) #ifdef PERL_CORE #define prepend_elem(a,b,c) Perl_prepend_elem(aTHX_ a,b,c) #define push_return(a) Perl_push_return(aTHX_ a) #endif #define push_scope() Perl_push_scope(aTHX) #ifdef PERL_CORE #define ref(a,b) Perl_ref(aTHX_ a,b) #define refkids(a,b) Perl_refkids(aTHX_ a,b) #endif #define regdump(a) Perl_regdump(aTHX_ a) #define regclass_swash(a,b,c,d) Perl_regclass_swash(aTHX_ a,b,c,d) #define pregexec(a,b,c,d,e,f,g) Perl_pregexec(aTHX_ a,b,c,d,e,f,g) #define pregfree(a) Perl_pregfree(aTHX_ a) #define pregcomp(a,b,c) Perl_pregcomp(aTHX_ a,b,c) #define re_intuit_start(a,b,c,d,e,f) Perl_re_intuit_start(aTHX_ a,b,c,d,e,f) #define re_intuit_string(a) Perl_re_intuit_string(aTHX_ a) #define regexec_flags(a,b,c,d,e,f,g,h) Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h) #define regnext(a) Perl_regnext(aTHX_ a) #if defined(PERL_CORE) || defined(PERL_EXT) #define regprop(a,b) Perl_regprop(aTHX_ a,b) #endif #define repeatcpy(a,b,c,d) Perl_repeatcpy(aTHX_ a,b,c,d) #define rninstr(a,b,c,d) Perl_rninstr(aTHX_ a,b,c,d) #define rsignal(a,b) Perl_rsignal(aTHX_ a,b) #ifdef PERL_CORE #define rsignal_restore(a,b) Perl_rsignal_restore(aTHX_ a,b) #define rsignal_save(a,b,c) Perl_rsignal_save(aTHX_ a,b,c) #endif #define rsignal_state(a) Perl_rsignal_state(aTHX_ a) #ifdef PERL_CORE #define rxres_free(a) Perl_rxres_free(aTHX_ a) #define rxres_restore(a,b) Perl_rxres_restore(aTHX_ a,b) #define rxres_save(a,b) Perl_rxres_save(aTHX_ a,b) #endif #if !defined(HAS_RENAME) #ifdef PERL_CORE #define same_dirent(a,b) Perl_same_dirent(aTHX_ a,b) #endif #endif #define savepv(a) Perl_savepv(aTHX_ a) #define savesharedpv(a) Perl_savesharedpv(aTHX_ a) #define savepvn(a,b) Perl_savepvn(aTHX_ a,b) #define savestack_grow() Perl_savestack_grow(aTHX) #define savestack_grow_cnt(a) Perl_savestack_grow_cnt(aTHX_ a) #define save_aelem(a,b,c) Perl_save_aelem(aTHX_ a,b,c) #define save_alloc(a,b) Perl_save_alloc(aTHX_ a,b) #define save_aptr(a) Perl_save_aptr(aTHX_ a) #define save_ary(a) Perl_save_ary(aTHX_ a) #define save_bool(a) Perl_save_bool(aTHX_ a) #define save_clearsv(a) Perl_save_clearsv(aTHX_ a) #define save_delete(a,b,c) Perl_save_delete(aTHX_ a,b,c) #define save_destructor(a,b) Perl_save_destructor(aTHX_ a,b) #define save_destructor_x(a,b) Perl_save_destructor_x(aTHX_ a,b) #define save_freesv(a) Perl_save_freesv(aTHX_ a) #ifdef PERL_CORE #define save_freeop(a) Perl_save_freeop(aTHX_ a) #endif #define save_freepv(a) Perl_save_freepv(aTHX_ a) #define save_generic_svref(a) Perl_save_generic_svref(aTHX_ a) #define save_generic_pvref(a) Perl_save_generic_pvref(aTHX_ a) #define save_shared_pvref(a) Perl_save_shared_pvref(aTHX_ a) #define save_gp(a,b) Perl_save_gp(aTHX_ a,b) #define save_hash(a) Perl_save_hash(aTHX_ a) #define save_helem(a,b,c) Perl_save_helem(aTHX_ a,b,c) #define save_hints() Perl_save_hints(aTHX) #define save_hptr(a) Perl_save_hptr(aTHX_ a) #define save_I16(a) Perl_save_I16(aTHX_ a) #define save_I32(a) Perl_save_I32(aTHX_ a) #define save_I8(a) Perl_save_I8(aTHX_ a) #define save_int(a) Perl_save_int(aTHX_ a) #define save_item(a) Perl_save_item(aTHX_ a) #define save_iv(a) Perl_save_iv(aTHX_ a) #define save_list(a,b) Perl_save_list(aTHX_ a,b) #define save_long(a) Perl_save_long(aTHX_ a) #define save_mortalizesv(a) Perl_save_mortalizesv(aTHX_ a) #define save_nogv(a) Perl_save_nogv(aTHX_ a) #ifdef PERL_CORE #define save_op() Perl_save_op(aTHX) #endif #define save_scalar(a) Perl_save_scalar(aTHX_ a) #define save_pptr(a) Perl_save_pptr(aTHX_ a) #define save_vptr(a) Perl_save_vptr(aTHX_ a) #define save_re_context() Perl_save_re_context(aTHX) #define save_padsv(a) Perl_save_padsv(aTHX_ a) #define save_sptr(a) Perl_save_sptr(aTHX_ a) #define save_svref(a) Perl_save_svref(aTHX_ a) #define save_threadsv(a) Perl_save_threadsv(aTHX_ a) #ifdef PERL_CORE #define sawparens(a) Perl_sawparens(aTHX_ a) #define scalar(a) Perl_scalar(aTHX_ a) #define scalarkids(a) Perl_scalarkids(aTHX_ a) #define scalarseq(a) Perl_scalarseq(aTHX_ a) #define scalarvoid(a) Perl_scalarvoid(aTHX_ a) #endif #define scan_bin(a,b,c) Perl_scan_bin(aTHX_ a,b,c) #define scan_hex(a,b,c) Perl_scan_hex(aTHX_ a,b,c) #define scan_num(a,b) Perl_scan_num(aTHX_ a,b) #define scan_oct(a,b,c) Perl_scan_oct(aTHX_ a,b,c) #ifdef PERL_CORE #define scope(a) Perl_scope(aTHX_ a) #endif #define screaminstr(a,b,c,d,e,f) Perl_screaminstr(aTHX_ a,b,c,d,e,f) #if !defined(VMS) #ifdef PERL_CORE #define setenv_getix(a) Perl_setenv_getix(aTHX_ a) #endif #endif #ifdef PERL_CORE #define setdefout(a) Perl_setdefout(aTHX_ a) #define share_hek(a,b,c) Perl_share_hek(aTHX_ a,b,c) #define sighandler Perl_sighandler #endif #define csighandler Perl_csighandler #define stack_grow(a,b,c) Perl_stack_grow(aTHX_ a,b,c) #define start_subparse(a,b) Perl_start_subparse(aTHX_ a,b) #ifdef PERL_CORE #define sub_crush_depth(a) Perl_sub_crush_depth(aTHX_ a) #endif #define sv_2bool(a) Perl_sv_2bool(aTHX_ a) #define sv_2cv(a,b,c,d) Perl_sv_2cv(aTHX_ a,b,c,d) #define sv_2io(a) Perl_sv_2io(aTHX_ a) #define sv_2iv(a) Perl_sv_2iv(aTHX_ a) #define sv_2mortal(a) Perl_sv_2mortal(aTHX_ a) #define sv_2nv(a) Perl_sv_2nv(aTHX_ a) #define sv_2pvutf8(a,b) Perl_sv_2pvutf8(aTHX_ a,b) #define sv_2pvbyte(a,b) Perl_sv_2pvbyte(aTHX_ a,b) #define sv_pvn_nomg(a,b) Perl_sv_pvn_nomg(aTHX_ a,b) #define sv_2uv(a) Perl_sv_2uv(aTHX_ a) #define sv_iv(a) Perl_sv_iv(aTHX_ a) #define sv_uv(a) Perl_sv_uv(aTHX_ a) #define sv_nv(a) Perl_sv_nv(aTHX_ a) #define sv_pvn(a,b) Perl_sv_pvn(aTHX_ a,b) #define sv_pvutf8n(a,b) Perl_sv_pvutf8n(aTHX_ a,b) #define sv_pvbyten(a,b) Perl_sv_pvbyten(aTHX_ a,b) #define sv_true(a) Perl_sv_true(aTHX_ a) #ifdef PERL_CORE #define sv_add_arena(a,b,c) Perl_sv_add_arena(aTHX_ a,b,c) #endif #define sv_backoff(a) Perl_sv_backoff(aTHX_ a) #define sv_bless(a,b) Perl_sv_bless(aTHX_ a,b) #define sv_vcatpvf(a,b,c) Perl_sv_vcatpvf(aTHX_ a,b,c) #define sv_catpv(a,b) Perl_sv_catpv(aTHX_ a,b) #define sv_chop(a,b) Perl_sv_chop(aTHX_ a,b) #ifdef PERL_CORE #define sv_clean_all() Perl_sv_clean_all(aTHX) #define sv_clean_objs() Perl_sv_clean_objs(aTHX) #endif #define sv_clear(a) Perl_sv_clear(aTHX_ a) #define sv_cmp(a,b) Perl_sv_cmp(aTHX_ a,b) #define sv_cmp_locale(a,b) Perl_sv_cmp_locale(aTHX_ a,b) #if defined(USE_LOCALE_COLLATE) #define sv_collxfrm(a,b) Perl_sv_collxfrm(aTHX_ a,b) #endif #define sv_compile_2op(a,b,c,d) Perl_sv_compile_2op(aTHX_ a,b,c,d) #define getcwd_sv(a) Perl_getcwd_sv(aTHX_ a) #define sv_dec(a) Perl_sv_dec(aTHX_ a) #define sv_dump(a) Perl_sv_dump(aTHX_ a) #define sv_derived_from(a,b) Perl_sv_derived_from(aTHX_ a,b) #define sv_eq(a,b) Perl_sv_eq(aTHX_ a,b) #define sv_free(a) Perl_sv_free(aTHX_ a) #ifdef PERL_CORE #define sv_free_arenas() Perl_sv_free_arenas(aTHX) #endif #define sv_gets(a,b,c) Perl_sv_gets(aTHX_ a,b,c) #define sv_grow(a,b) Perl_sv_grow(aTHX_ a,b) #define sv_inc(a) Perl_sv_inc(aTHX_ a) #define sv_insert(a,b,c,d,e) Perl_sv_insert(aTHX_ a,b,c,d,e) #define sv_isa(a,b) Perl_sv_isa(aTHX_ a,b) #define sv_isobject(a) Perl_sv_isobject(aTHX_ a) #define sv_len(a) Perl_sv_len(aTHX_ a) #define sv_len_utf8(a) Perl_sv_len_utf8(aTHX_ a) #define sv_magic(a,b,c,d,e) Perl_sv_magic(aTHX_ a,b,c,d,e) #define sv_magicext(a,b,c,d,e,f) Perl_sv_magicext(aTHX_ a,b,c,d,e,f) #define sv_mortalcopy(a) Perl_sv_mortalcopy(aTHX_ a) #define sv_newmortal() Perl_sv_newmortal(aTHX) #define sv_newref(a) Perl_sv_newref(aTHX_ a) #define sv_peek(a) Perl_sv_peek(aTHX_ a) #define sv_pos_u2b(a,b,c) Perl_sv_pos_u2b(aTHX_ a,b,c) #define sv_pos_b2u(a,b) Perl_sv_pos_b2u(aTHX_ a,b) #define sv_pvutf8n_force(a,b) Perl_sv_pvutf8n_force(aTHX_ a,b) #define sv_pvbyten_force(a,b) Perl_sv_pvbyten_force(aTHX_ a,b) #define sv_recode_to_utf8(a,b) Perl_sv_recode_to_utf8(aTHX_ a,b) #define sv_cat_decode(a,b,c,d,e,f) Perl_sv_cat_decode(aTHX_ a,b,c,d,e,f) #define sv_reftype(a,b) Perl_sv_reftype(aTHX_ a,b) #define sv_replace(a,b) Perl_sv_replace(aTHX_ a,b) #define sv_report_used() Perl_sv_report_used(aTHX) #define sv_reset(a,b) Perl_sv_reset(aTHX_ a,b) #define sv_vsetpvf(a,b,c) Perl_sv_vsetpvf(aTHX_ a,b,c) #define sv_setiv(a,b) Perl_sv_setiv(aTHX_ a,b) #define sv_setpviv(a,b) Perl_sv_setpviv(aTHX_ a,b) #define sv_setuv(a,b) Perl_sv_setuv(aTHX_ a,b) #define sv_setnv(a,b) Perl_sv_setnv(aTHX_ a,b) #define sv_setref_iv(a,b,c) Perl_sv_setref_iv(aTHX_ a,b,c) #define sv_setref_uv(a,b,c) Perl_sv_setref_uv(aTHX_ a,b,c) #define sv_setref_nv(a,b,c) Perl_sv_setref_nv(aTHX_ a,b,c) #define sv_setref_pv(a,b,c) Perl_sv_setref_pv(aTHX_ a,b,c) #define sv_setref_pvn(a,b,c,d) Perl_sv_setref_pvn(aTHX_ a,b,c,d) #define sv_setpv(a,b) Perl_sv_setpv(aTHX_ a,b) #define sv_setpvn(a,b,c) Perl_sv_setpvn(aTHX_ a,b,c) #define sv_taint(a) Perl_sv_taint(aTHX_ a) #define sv_tainted(a) Perl_sv_tainted(aTHX_ a) #define sv_unmagic(a,b) Perl_sv_unmagic(aTHX_ a,b) #define sv_unref(a) Perl_sv_unref(aTHX_ a) #define sv_unref_flags(a,b) Perl_sv_unref_flags(aTHX_ a,b) #define sv_untaint(a) Perl_sv_untaint(aTHX_ a) #define sv_upgrade(a,b) Perl_sv_upgrade(aTHX_ a,b) #define sv_usepvn(a,b,c) Perl_sv_usepvn(aTHX_ a,b,c) #define sv_vcatpvfn(a,b,c,d,e,f,g) Perl_sv_vcatpvfn(aTHX_ a,b,c,d,e,f,g) #define sv_vsetpvfn(a,b,c,d,e,f,g) Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g) #define str_to_version(a) Perl_str_to_version(aTHX_ a) #define swash_init(a,b,c,d,e) Perl_swash_init(aTHX_ a,b,c,d,e) #define swash_fetch(a,b,c) Perl_swash_fetch(aTHX_ a,b,c) #define taint_env() Perl_taint_env(aTHX) #define taint_proper(a,b) Perl_taint_proper(aTHX_ a,b) #define to_utf8_case(a,b,c,d,e,f) Perl_to_utf8_case(aTHX_ a,b,c,d,e,f) #define to_utf8_lower(a,b,c) Perl_to_utf8_lower(aTHX_ a,b,c) #define to_utf8_upper(a,b,c) Perl_to_utf8_upper(aTHX_ a,b,c) #define to_utf8_title(a,b,c) Perl_to_utf8_title(aTHX_ a,b,c) #define to_utf8_fold(a,b,c) Perl_to_utf8_fold(aTHX_ a,b,c) #if defined(UNLINK_ALL_VERSIONS) #define unlnk(a) Perl_unlnk(aTHX_ a) #endif #if defined(USE_5005THREADS) #define unlock_condpair(a) Perl_unlock_condpair(aTHX_ a) #endif #define unpack_str(a,b,c,d,e,f,g,h) Perl_unpack_str(aTHX_ a,b,c,d,e,f,g,h) #define unpackstring(a,b,c,d,e) Perl_unpackstring(aTHX_ a,b,c,d,e) #define unsharepvn(a,b,c) Perl_unsharepvn(aTHX_ a,b,c) #ifdef PERL_CORE #define unshare_hek(a) Perl_unshare_hek(aTHX_ a) #define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e) #endif #define utf16_to_utf8(a,b,c,d) Perl_utf16_to_utf8(aTHX_ a,b,c,d) #define utf16_to_utf8_reversed(a,b,c,d) Perl_utf16_to_utf8_reversed(aTHX_ a,b,c,d) #define utf8_length(a,b) Perl_utf8_length(aTHX_ a,b) #define utf8_distance(a,b) Perl_utf8_distance(aTHX_ a,b) #define utf8_hop(a,b) Perl_utf8_hop(aTHX_ a,b) #define utf8_to_bytes(a,b) Perl_utf8_to_bytes(aTHX_ a,b) #define bytes_from_utf8(a,b,c) Perl_bytes_from_utf8(aTHX_ a,b,c) #define bytes_to_utf8(a,b) Perl_bytes_to_utf8(aTHX_ a,b) #define utf8_to_uvchr(a,b) Perl_utf8_to_uvchr(aTHX_ a,b) #define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b) #define utf8n_to_uvchr(a,b,c,d) Perl_utf8n_to_uvchr(aTHX_ a,b,c,d) #define utf8n_to_uvuni(a,b,c,d) Perl_utf8n_to_uvuni(aTHX_ a,b,c,d) #define uvchr_to_utf8(a,b) Perl_uvchr_to_utf8(aTHX_ a,b) #define uvuni_to_utf8(a,b) Perl_uvuni_to_utf8(aTHX_ a,b) #define uvchr_to_utf8_flags(a,b,c) Perl_uvchr_to_utf8_flags(aTHX_ a,b,c) #define uvuni_to_utf8_flags(a,b,c) Perl_uvuni_to_utf8_flags(aTHX_ a,b,c) #define pv_uni_display(a,b,c,d,e) Perl_pv_uni_display(aTHX_ a,b,c,d,e) #define sv_uni_display(a,b,c,d) Perl_sv_uni_display(aTHX_ a,b,c,d) #ifdef PERL_CORE #define vivify_defelem(a) Perl_vivify_defelem(aTHX_ a) #define vivify_ref(a,b) Perl_vivify_ref(aTHX_ a,b) #define wait4pid(a,b,c) Perl_wait4pid(aTHX_ a,b,c) #define parse_unicode_opts(a) Perl_parse_unicode_opts(aTHX_ a) #define seed() Perl_seed(aTHX) #define get_hash_seed() Perl_get_hash_seed(aTHX) #define report_evil_fh(a,b,c) Perl_report_evil_fh(aTHX_ a,b,c) #define report_uninit() Perl_report_uninit(aTHX) #endif #define vwarn(a,b) Perl_vwarn(aTHX_ a,b) #define vwarner(a,b,c) Perl_vwarner(aTHX_ a,b,c) #ifdef PERL_CORE #define watch(a) Perl_watch(aTHX_ a) #endif #define whichsig(a) Perl_whichsig(aTHX_ a) #ifdef PERL_CORE #define write_to_stderr(a,b) Perl_write_to_stderr(aTHX_ a,b) #define yyerror(a) Perl_yyerror(aTHX_ a) #endif #ifdef USE_PURE_BISON #ifdef PERL_CORE #define yylex_r(a,b) Perl_yylex_r(aTHX_ a,b) #endif #endif #ifdef PERL_CORE #define yylex() Perl_yylex(aTHX) #define yyparse() Perl_yyparse(aTHX) #define yywarn(a) Perl_yywarn(aTHX_ a) #endif #if defined(MYMALLOC) #define dump_mstats(a) Perl_dump_mstats(aTHX_ a) #define get_mstats(a,b,c) Perl_get_mstats(aTHX_ a,b,c) #endif #define safesysmalloc Perl_safesysmalloc #define safesyscalloc Perl_safesyscalloc #define safesysrealloc Perl_safesysrealloc #define safesysfree Perl_safesysfree #if defined(PERL_GLOBAL_STRUCT) #define GetVars() Perl_GetVars(aTHX) #endif #define runops_standard() Perl_runops_standard(aTHX) #define runops_debug() Perl_runops_debug(aTHX) #if defined(USE_5005THREADS) #define sv_lock(a) Perl_sv_lock(aTHX_ a) #endif #define sv_vcatpvf_mg(a,b,c) Perl_sv_vcatpvf_mg(aTHX_ a,b,c) #define sv_catpv_mg(a,b) Perl_sv_catpv_mg(aTHX_ a,b) #define sv_catpvn_mg(a,b,c) Perl_sv_catpvn_mg(aTHX_ a,b,c) #define sv_catsv_mg(a,b) Perl_sv_catsv_mg(aTHX_ a,b) #define sv_vsetpvf_mg(a,b,c) Perl_sv_vsetpvf_mg(aTHX_ a,b,c) #define sv_setiv_mg(a,b) Perl_sv_setiv_mg(aTHX_ a,b) #define sv_setpviv_mg(a,b) Perl_sv_setpviv_mg(aTHX_ a,b) #define sv_setuv_mg(a,b) Perl_sv_setuv_mg(aTHX_ a,b) #define sv_setnv_mg(a,b) Perl_sv_setnv_mg(aTHX_ a,b) #define sv_setpv_mg(a,b) Perl_sv_setpv_mg(aTHX_ a,b) #define sv_setpvn_mg(a,b,c) Perl_sv_setpvn_mg(aTHX_ a,b,c) #define sv_setsv_mg(a,b) Perl_sv_setsv_mg(aTHX_ a,b) #define sv_usepvn_mg(a,b,c) Perl_sv_usepvn_mg(aTHX_ a,b,c) #define get_vtbl(a) Perl_get_vtbl(aTHX_ a) #define pv_display(a,b,c,d,e) Perl_pv_display(aTHX_ a,b,c,d,e) #define dump_vindent(a,b,c,d) Perl_dump_vindent(aTHX_ a,b,c,d) #define do_gv_dump(a,b,c,d) Perl_do_gv_dump(aTHX_ a,b,c,d) #define do_gvgv_dump(a,b,c,d) Perl_do_gvgv_dump(aTHX_ a,b,c,d) #define do_hv_dump(a,b,c,d) Perl_do_hv_dump(aTHX_ a,b,c,d) #define do_magic_dump(a,b,c,d,e,f,g) Perl_do_magic_dump(aTHX_ a,b,c,d,e,f,g) #define do_op_dump(a,b,c) Perl_do_op_dump(aTHX_ a,b,c) #define do_pmop_dump(a,b,c) Perl_do_pmop_dump(aTHX_ a,b,c) #define do_sv_dump(a,b,c,d,e,f,g) Perl_do_sv_dump(aTHX_ a,b,c,d,e,f,g) #define magic_dump(a) Perl_magic_dump(aTHX_ a) #if defined(PERL_FLEXIBLE_EXCEPTIONS) #define vdefault_protect(a,b,c,d) Perl_vdefault_protect(aTHX_ a,b,c,d) #endif #define reginitcolors() Perl_reginitcolors(aTHX) #define sv_2pv_nolen(a) Perl_sv_2pv_nolen(aTHX_ a) #define sv_2pvutf8_nolen(a) Perl_sv_2pvutf8_nolen(aTHX_ a) #define sv_2pvbyte_nolen(a) Perl_sv_2pvbyte_nolen(aTHX_ a) #define sv_utf8_downgrade(a,b) Perl_sv_utf8_downgrade(aTHX_ a,b) #define sv_utf8_encode(a) Perl_sv_utf8_encode(aTHX_ a) #define sv_utf8_decode(a) Perl_sv_utf8_decode(aTHX_ a) #define sv_force_normal(a) Perl_sv_force_normal(aTHX_ a) #define sv_force_normal_flags(a,b) Perl_sv_force_normal_flags(aTHX_ a,b) #define tmps_grow(a) Perl_tmps_grow(aTHX_ a) #define sv_rvweaken(a) Perl_sv_rvweaken(aTHX_ a) #ifdef PERL_CORE #define magic_killbackrefs(a,b) Perl_magic_killbackrefs(aTHX_ a,b) #endif #define newANONATTRSUB(a,b,c,d) Perl_newANONATTRSUB(aTHX_ a,b,c,d) #define newATTRSUB(a,b,c,d,e) Perl_newATTRSUB(aTHX_ a,b,c,d,e) #define newMYSUB(a,b,c,d,e) Perl_newMYSUB(aTHX_ a,b,c,d,e) #ifdef PERL_CORE #define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b) #define boot_core_xsutils() Perl_boot_core_xsutils(aTHX) #endif #if defined(USE_ITHREADS) #define cx_dup(a,b,c,d) Perl_cx_dup(aTHX_ a,b,c,d) #define si_dup(a,b) Perl_si_dup(aTHX_ a,b) #define ss_dup(a,b) Perl_ss_dup(aTHX_ a,b) #define any_dup(a,b) Perl_any_dup(aTHX_ a,b) #define he_dup(a,b,c) Perl_he_dup(aTHX_ a,b,c) #define re_dup(a,b) Perl_re_dup(aTHX_ a,b) #define fp_dup(a,b,c) Perl_fp_dup(aTHX_ a,b,c) #define dirp_dup(a) Perl_dirp_dup(aTHX_ a) #define gp_dup(a,b) Perl_gp_dup(aTHX_ a,b) #define mg_dup(a,b) Perl_mg_dup(aTHX_ a,b) #define sv_dup(a,b) Perl_sv_dup(aTHX_ a,b) #if defined(HAVE_INTERP_INTERN) #define sys_intern_dup(a,b) Perl_sys_intern_dup(aTHX_ a,b) #endif #define ptr_table_new() Perl_ptr_table_new(aTHX) #define ptr_table_fetch(a,b) Perl_ptr_table_fetch(aTHX_ a,b) #define ptr_table_store(a,b,c) Perl_ptr_table_store(aTHX_ a,b,c) #define ptr_table_split(a) Perl_ptr_table_split(aTHX_ a) #define ptr_table_clear(a) Perl_ptr_table_clear(aTHX_ a) #define ptr_table_free(a) Perl_ptr_table_free(aTHX_ a) #endif #if defined(HAVE_INTERP_INTERN) #define sys_intern_clear() Perl_sys_intern_clear(aTHX) #define sys_intern_init() Perl_sys_intern_init(aTHX) #endif #define custom_op_name(a) Perl_custom_op_name(aTHX_ a) #define custom_op_desc(a) Perl_custom_op_desc(aTHX_ a) #define sv_nosharing(a) Perl_sv_nosharing(aTHX_ a) #define sv_nolocking(a) Perl_sv_nolocking(aTHX_ a) #define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a) #define nothreadhook() Perl_nothreadhook(aTHX) #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define avhv_index_sv(a) S_avhv_index_sv(aTHX_ a) #define avhv_index(a,b,c) S_avhv_index(aTHX_ a,b,c) #endif #endif #if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define do_trans_simple(a) S_do_trans_simple(aTHX_ a) #define do_trans_count(a) S_do_trans_count(aTHX_ a) #define do_trans_complex(a) S_do_trans_complex(aTHX_ a) #define do_trans_simple_utf8(a) S_do_trans_simple_utf8(aTHX_ a) #define do_trans_count_utf8(a) S_do_trans_count_utf8(aTHX_ a) #define do_trans_complex_utf8(a) S_do_trans_complex_utf8(aTHX_ a) #endif #endif #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define gv_init_sv(a,b) S_gv_init_sv(aTHX_ a,b) #define require_errno(a) S_require_errno(aTHX_ a) #endif #endif #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define hsplit(a) S_hsplit(aTHX_ a) #define hfreeentries(a) S_hfreeentries(aTHX_ a) #define more_he() S_more_he(aTHX) #define new_he() S_new_he(aTHX) #define del_he(a) S_del_he(aTHX_ a) #define save_hek_flags(a,b,c,d) S_save_hek_flags(aTHX_ a,b,c,d) #define hv_magic_check(a,b,c) S_hv_magic_check(aTHX_ a,b,c) #define unshare_hek_or_pvn(a,b,c,d) S_unshare_hek_or_pvn(aTHX_ a,b,c,d) #define share_hek_flags(a,b,c,d) S_share_hek_flags(aTHX_ a,b,c,d) #define hv_notallowed(a,b,c,d) S_hv_notallowed(aTHX_ a,b,c,d) #endif #endif #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define save_magic(a,b) S_save_magic(aTHX_ a,b) #define magic_methpack(a,b,c) S_magic_methpack(aTHX_ a,b,c) #define magic_methcall(a,b,c,d,e,f) S_magic_methcall(aTHX_ a,b,c,d,e,f) #endif #endif #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define list_assignment(a) S_list_assignment(aTHX_ a) #define bad_type(a,b,c,d) S_bad_type(aTHX_ a,b,c,d) #define cop_free(a) S_cop_free(aTHX_ a) #define modkids(a,b) S_modkids(aTHX_ a,b) #define no_bareword_allowed(a) S_no_bareword_allowed(aTHX_ a) #define no_fh_allowed(a) S_no_fh_allowed(aTHX_ a) #define scalarboolean(a) S_scalarboolean(aTHX_ a) #define too_few_arguments(a,b) S_too_few_arguments(aTHX_ a,b) #define too_many_arguments(a,b) S_too_many_arguments(aTHX_ a,b) #define newDEFSVOP() S_newDEFSVOP(aTHX) #define new_logop(a,b,c,d) S_new_logop(aTHX_ a,b,c,d) #define simplify_sort(a) S_simplify_sort(aTHX_ a) #define is_handle_constructor(a,b) S_is_handle_constructor(aTHX_ a,b) #define gv_ename(a) S_gv_ename(aTHX_ a) #define scalar_mod_type(a,b) S_scalar_mod_type(aTHX_ a,b) #define my_kid(a,b,c) S_my_kid(aTHX_ a,b,c) #define dup_attrlist(a) S_dup_attrlist(aTHX_ a) #define apply_attrs(a,b,c,d) S_apply_attrs(aTHX_ a,b,c,d) #define apply_attrs_my(a,b,c,d) S_apply_attrs_my(aTHX_ a,b,c,d) #endif #endif #if defined(PL_OP_SLAB_ALLOC) #define Slab_Alloc(a,b) Perl_Slab_Alloc(aTHX_ a,b) #define Slab_Free(a) Perl_Slab_Free(aTHX_ a) #endif #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define find_beginning() S_find_beginning(aTHX) #define forbid_setid(a) S_forbid_setid(aTHX_ a) #define incpush(a,b,c,d) S_incpush(aTHX_ a,b,c,d) #define init_interp() S_init_interp(aTHX) #define init_ids() S_init_ids(aTHX) #define init_lexer() S_init_lexer(aTHX) #define init_main_stash() S_init_main_stash(aTHX) #define init_perllib() S_init_perllib(aTHX) #define init_postdump_symbols(a,b,c) S_init_postdump_symbols(aTHX_ a,b,c) #define init_predump_symbols() S_init_predump_symbols(aTHX) #define my_exit_jump() S_my_exit_jump(aTHX) #define nuke_stacks() S_nuke_stacks(aTHX) #define open_script(a,b,c) S_open_script(aTHX_ a,b,c) #define usage(a) S_usage(aTHX_ a) #define validate_suid(a,b) S_validate_suid(aTHX_ a,b) #endif # if defined(IAMSUID) #ifdef PERL_CORE #define fd_on_nosuid_fs(a) S_fd_on_nosuid_fs(aTHX_ a) #endif # endif #ifdef PERL_CORE #define parse_body(a,b) S_parse_body(aTHX_ a,b) #define run_body(a) S_run_body(aTHX_ a) #define call_body(a,b) S_call_body(aTHX_ a,b) #define call_list_body(a) S_call_list_body(aTHX_ a) #endif #if defined(PERL_FLEXIBLE_EXCEPTIONS) #ifdef PERL_CORE #define vparse_body(a) S_vparse_body(aTHX_ a) #define vrun_body(a) S_vrun_body(aTHX_ a) #define vcall_body(a) S_vcall_body(aTHX_ a) #define vcall_list_body(a) S_vcall_list_body(aTHX_ a) #endif #endif # if defined(USE_5005THREADS) #ifdef PERL_CORE #define init_main_thread() S_init_main_thread(aTHX) #endif # endif #endif #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define refto(a) S_refto(aTHX_ a) #endif #endif #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define unpack_rec(a,b,c,d,e) S_unpack_rec(aTHX_ a,b,c,d,e) #define pack_rec(a,b,c,d) S_pack_rec(aTHX_ a,b,c,d) #define mul128(a,b) S_mul128(aTHX_ a,b) #define measure_struct(a) S_measure_struct(aTHX_ a) #define group_end(a,b,c) S_group_end(aTHX_ a,b,c) #define get_num(a,b) S_get_num(aTHX_ a,b) #define next_symbol(a) S_next_symbol(aTHX_ a) #define doencodes(a,b,c) S_doencodes(aTHX_ a,b,c) #define is_an_int(a,b) S_is_an_int(aTHX_ a,b) #define div128(a,b) S_div128(aTHX_ a,b) #endif #endif #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define docatch(a) S_docatch(aTHX_ a) #define docatch_body() S_docatch_body(aTHX) #endif #if defined(PERL_FLEXIBLE_EXCEPTIONS) #ifdef PERL_CORE #define vdocatch_body(a) S_vdocatch_body(aTHX_ a) #endif #endif #ifdef PERL_CORE #define dofindlabel(a,b,c,d) S_dofindlabel(aTHX_ a,b,c,d) #define doparseform(a) S_doparseform(aTHX_ a) #define num_overflow S_num_overflow #define dopoptoeval(a) S_dopoptoeval(aTHX_ a) #define dopoptolabel(a) S_dopoptolabel(aTHX_ a) #define dopoptoloop(a) S_dopoptoloop(aTHX_ a) #define dopoptosub(a) S_dopoptosub(aTHX_ a) #define dopoptosub_at(a,b) S_dopoptosub_at(aTHX_ a,b) #define save_lines(a,b) S_save_lines(aTHX_ a,b) #define doeval(a,b,c,d) S_doeval(aTHX_ a,b,c,d) #define doopen_pm(a,b) S_doopen_pm(aTHX_ a,b) #define path_is_absolute(a) S_path_is_absolute(aTHX_ a) #endif #endif #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define do_maybe_phash(a,b,c,d,e) S_do_maybe_phash(aTHX_ a,b,c,d,e) #define do_oddball(a,b,c) S_do_oddball(aTHX_ a,b,c) #define get_db_sub(a,b) S_get_db_sub(aTHX_ a,b) #define method_common(a,b) S_method_common(aTHX_ a,b) #endif #endif #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define doform(a,b,c) S_doform(aTHX_ a,b,c) #define emulate_eaccess(a,b) S_emulate_eaccess(aTHX_ a,b) #endif # if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) #ifdef PERL_CORE #define dooneliner(a,b) S_dooneliner(aTHX_ a,b) #endif # endif #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) #if defined(PERL_CORE) || defined(PERL_EXT) #define reg(a,b,c) S_reg(aTHX_ a,b,c) #define reganode(a,b,c) S_reganode(aTHX_ a,b,c) #define regatom(a,b) S_regatom(aTHX_ a,b) #define regbranch(a,b,c) S_regbranch(aTHX_ a,b,c) #define reguni(a,b,c,d) S_reguni(aTHX_ a,b,c,d) #define regclass(a) S_regclass(aTHX_ a) #define regcurly(a) S_regcurly(aTHX_ a) #define reg_node(a,b) S_reg_node(aTHX_ a,b) #define regpiece(a,b) S_regpiece(aTHX_ a,b) #define reginsert(a,b,c) S_reginsert(aTHX_ a,b,c) #define regoptail(a,b,c) S_regoptail(aTHX_ a,b,c) #define regtail(a,b,c) S_regtail(aTHX_ a,b,c) #define regwhite(a,b) S_regwhite(aTHX_ a,b) #define nextchar(a) S_nextchar(aTHX_ a) #endif # ifdef DEBUGGING #if defined(PERL_CORE) || defined(PERL_EXT) #define dumpuntil(a,b,c,d,e) S_dumpuntil(aTHX_ a,b,c,d,e) #define put_byte(a,b) S_put_byte(aTHX_ a,b) #endif # endif #if defined(PERL_CORE) || defined(PERL_EXT) #define scan_commit(a,b) S_scan_commit(aTHX_ a,b) #define cl_anything(a,b) S_cl_anything(aTHX_ a,b) #define cl_is_anything(a) S_cl_is_anything(aTHX_ a) #define cl_init(a,b) S_cl_init(aTHX_ a,b) #define cl_init_zero(a,b) S_cl_init_zero(aTHX_ a,b) #define cl_and(a,b) S_cl_and(aTHX_ a,b) #define cl_or(a,b,c) S_cl_or(aTHX_ a,b,c) #define study_chunk(a,b,c,d,e,f) S_study_chunk(aTHX_ a,b,c,d,e,f) #define add_data(a,b,c) S_add_data(aTHX_ a,b,c) #endif #ifdef PERL_CORE #endif #if defined(PERL_CORE) || defined(PERL_EXT) #define regpposixcc(a,b) S_regpposixcc(aTHX_ a,b) #define checkposixcc(a) S_checkposixcc(aTHX_ a) #endif #endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) #if defined(PERL_CORE) || defined(PERL_EXT) #define regmatch(a) S_regmatch(aTHX_ a) #define regrepeat(a,b) S_regrepeat(aTHX_ a,b) #define regrepeat_hard(a,b,c) S_regrepeat_hard(aTHX_ a,b,c) #define regtry(a,b) S_regtry(aTHX_ a,b) #define reginclass(a,b,c,d) S_reginclass(aTHX_ a,b,c,d) #define regcppush(a) S_regcppush(aTHX_ a) #define regcppop() S_regcppop(aTHX) #define regcp_set_to(a) S_regcp_set_to(aTHX_ a) #define cache_re(a) S_cache_re(aTHX_ a) #define reghop(a,b) S_reghop(aTHX_ a,b) #define reghop3(a,b,c) S_reghop3(aTHX_ a,b,c) #define reghopmaybe(a,b) S_reghopmaybe(aTHX_ a,b) #define reghopmaybe3(a,b,c) S_reghopmaybe3(aTHX_ a,b,c) #define find_byclass(a,b,c,d,e,f) S_find_byclass(aTHX_ a,b,c,d,e,f) #define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a) #define to_byte_substr(a) S_to_byte_substr(aTHX_ a) #endif #endif #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define deb_curcv(a) S_deb_curcv(aTHX_ a) #define debprof(a) S_debprof(aTHX_ a) #endif #endif #if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define save_scalar_at(a) S_save_scalar_at(aTHX_ a) #endif #endif #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define asIV(a) S_asIV(aTHX_ a) #define asUV(a) S_asUV(aTHX_ a) #define more_sv() S_more_sv(aTHX) #define more_xiv() S_more_xiv(aTHX) #define more_xnv() S_more_xnv(aTHX) #define more_xpv() S_more_xpv(aTHX) #define more_xpviv() S_more_xpviv(aTHX) #define more_xpvnv() S_more_xpvnv(aTHX) #define more_xpvcv() S_more_xpvcv(aTHX) #define more_xpvav() S_more_xpvav(aTHX) #define more_xpvhv() S_more_xpvhv(aTHX) #define more_xpvmg() S_more_xpvmg(aTHX) #define more_xpvlv() S_more_xpvlv(aTHX) #define more_xpvbm() S_more_xpvbm(aTHX) #define more_xrv() S_more_xrv(aTHX) #define new_xiv() S_new_xiv(aTHX) #define new_xnv() S_new_xnv(aTHX) #define new_xpv() S_new_xpv(aTHX) #define new_xpviv() S_new_xpviv(aTHX) #define new_xpvnv() S_new_xpvnv(aTHX) #define new_xpvcv() S_new_xpvcv(aTHX) #define new_xpvav() S_new_xpvav(aTHX) #define new_xpvhv() S_new_xpvhv(aTHX) #define new_xpvmg() S_new_xpvmg(aTHX) #define new_xpvlv() S_new_xpvlv(aTHX) #define new_xpvbm() S_new_xpvbm(aTHX) #define new_xrv() S_new_xrv(aTHX) #define del_xiv(a) S_del_xiv(aTHX_ a) #define del_xnv(a) S_del_xnv(aTHX_ a) #define del_xpv(a) S_del_xpv(aTHX_ a) #define del_xpviv(a) S_del_xpviv(aTHX_ a) #define del_xpvnv(a) S_del_xpvnv(aTHX_ a) #define del_xpvcv(a) S_del_xpvcv(aTHX_ a) #define del_xpvav(a) S_del_xpvav(aTHX_ a) #define del_xpvhv(a) S_del_xpvhv(aTHX_ a) #define del_xpvmg(a) S_del_xpvmg(aTHX_ a) #define del_xpvlv(a) S_del_xpvlv(aTHX_ a) #define del_xpvbm(a) S_del_xpvbm(aTHX_ a) #define del_xrv(a) S_del_xrv(aTHX_ a) #define sv_unglob(a) S_sv_unglob(aTHX_ a) #define not_a_number(a) S_not_a_number(aTHX_ a) #define visit(a,b,c) S_visit(aTHX_ a,b,c) #define sv_add_backref(a,b) S_sv_add_backref(aTHX_ a,b) #define sv_del_backref(a) S_sv_del_backref(aTHX_ a) #endif # ifdef DEBUGGING #ifdef PERL_CORE #define del_sv(a) S_del_sv(aTHX_ a) #endif # endif # if !defined(NV_PRESERVES_UV) #ifdef PERL_CORE #define sv_2iuv_non_preserve(a,b) S_sv_2iuv_non_preserve(aTHX_ a,b) #endif # endif #ifdef PERL_CORE #define expect_number(a) S_expect_number(aTHX_ a) #endif # if defined(USE_ITHREADS) #ifdef PERL_CORE #define gv_share(a,b) S_gv_share(aTHX_ a,b) #endif # endif #ifdef PERL_CORE #define utf8_mg_pos(a,b,c,d,e,f,g,h,i) S_utf8_mg_pos(aTHX_ a,b,c,d,e,f,g,h,i) #define utf8_mg_pos_init(a,b,c,d,e,f,g) S_utf8_mg_pos_init(aTHX_ a,b,c,d,e,f,g) #endif #endif #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define check_uni() S_check_uni(aTHX) #define force_next(a) S_force_next(aTHX_ a) #define force_version(a,b) S_force_version(aTHX_ a,b) #define force_word(a,b,c,d,e) S_force_word(aTHX_ a,b,c,d,e) #define tokeq(a) S_tokeq(aTHX_ a) #define pending_ident() S_pending_ident(aTHX) #define scan_const(a) S_scan_const(aTHX_ a) #define scan_formline(a) S_scan_formline(aTHX_ a) #define scan_heredoc(a) S_scan_heredoc(aTHX_ a) #define scan_ident(a,b,c,d,e) S_scan_ident(aTHX_ a,b,c,d,e) #define scan_inputsymbol(a) S_scan_inputsymbol(aTHX_ a) #define scan_pat(a,b) S_scan_pat(aTHX_ a,b) #define scan_str(a,b,c) S_scan_str(aTHX_ a,b,c) #define scan_subst(a) S_scan_subst(aTHX_ a) #define scan_trans(a) S_scan_trans(aTHX_ a) #define scan_word(a,b,c,d,e) S_scan_word(aTHX_ a,b,c,d,e) #define skipspace(a) S_skipspace(aTHX_ a) #define swallow_bom(a) S_swallow_bom(aTHX_ a) #define checkcomma(a,b,c) S_checkcomma(aTHX_ a,b,c) #define force_ident(a,b) S_force_ident(aTHX_ a,b) #define incline(a) S_incline(aTHX_ a) #define intuit_method(a,b) S_intuit_method(aTHX_ a,b) #define intuit_more(a) S_intuit_more(aTHX_ a) #define lop(a,b,c) S_lop(aTHX_ a,b,c) #define missingterm(a) S_missingterm(aTHX_ a) #define no_op(a,b) S_no_op(aTHX_ a,b) #define set_csh() S_set_csh(aTHX) #define sublex_done() S_sublex_done(aTHX) #define sublex_push() S_sublex_push(aTHX) #define sublex_start() S_sublex_start(aTHX) #define filter_gets(a,b,c) S_filter_gets(aTHX_ a,b,c) #define find_in_my_stash(a,b) S_find_in_my_stash(aTHX_ a,b) #define new_constant(a,b,c,d,e,f) S_new_constant(aTHX_ a,b,c,d,e,f) #endif # if defined(DEBUGGING) #ifdef PERL_CORE #define tokereport(a,b,c) S_tokereport(aTHX_ a,b,c) #endif # endif #ifdef PERL_CORE #define ao(a) S_ao(aTHX_ a) #define depcom() S_depcom(aTHX) #define incl_perldb() S_incl_perldb(aTHX) #endif #if 0 #ifdef PERL_CORE #define utf16_textfilter(a,b,c) S_utf16_textfilter(aTHX_ a,b,c) #define utf16rev_textfilter(a,b,c) S_utf16rev_textfilter(aTHX_ a,b,c) #endif #endif # if defined(PERL_CR_FILTER) #ifdef PERL_CORE #define cr_textfilter(a,b,c) S_cr_textfilter(aTHX_ a,b,c) #endif # endif #endif #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define isa_lookup(a,b,c,d,e) S_isa_lookup(aTHX_ a,b,c,d,e) #endif #endif #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define stdize_locale(a) S_stdize_locale(aTHX_ a) #endif #endif #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define closest_cop(a,b) S_closest_cop(aTHX_ a,b) #define mess_alloc() S_mess_alloc(aTHX) #endif #endif #if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define mulexp10 S_mulexp10 #endif #endif #define sv_setsv_flags(a,b,c) Perl_sv_setsv_flags(aTHX_ a,b,c) #define sv_catpvn_flags(a,b,c,d) Perl_sv_catpvn_flags(aTHX_ a,b,c,d) #define sv_catsv_flags(a,b,c) Perl_sv_catsv_flags(aTHX_ a,b,c) #define sv_utf8_upgrade_flags(a,b) Perl_sv_utf8_upgrade_flags(aTHX_ a,b) #define sv_pvn_force_flags(a,b,c) Perl_sv_pvn_force_flags(aTHX_ a,b,c) #define sv_2pv_flags(a,b,c) Perl_sv_2pv_flags(aTHX_ a,b,c) #define sv_copypv(a,b) Perl_sv_copypv(aTHX_ a,b) #define my_atof2(a,b) Perl_my_atof2(aTHX_ a,b) #define my_socketpair Perl_my_socketpair #if defined(USE_PERLIO) && !defined(USE_SFIO) #define PerlIO_close(a) Perl_PerlIO_close(aTHX_ a) #define PerlIO_fill(a) Perl_PerlIO_fill(aTHX_ a) #define PerlIO_fileno(a) Perl_PerlIO_fileno(aTHX_ a) #define PerlIO_eof(a) Perl_PerlIO_eof(aTHX_ a) #define PerlIO_error(a) Perl_PerlIO_error(aTHX_ a) #define PerlIO_flush(a) Perl_PerlIO_flush(aTHX_ a) #define PerlIO_clearerr(a) Perl_PerlIO_clearerr(aTHX_ a) #define PerlIO_set_cnt(a,b) Perl_PerlIO_set_cnt(aTHX_ a,b) #define PerlIO_set_ptrcnt(a,b,c) Perl_PerlIO_set_ptrcnt(aTHX_ a,b,c) #define PerlIO_setlinebuf(a) Perl_PerlIO_setlinebuf(aTHX_ a) #define PerlIO_read(a,b,c) Perl_PerlIO_read(aTHX_ a,b,c) #define PerlIO_write(a,b,c) Perl_PerlIO_write(aTHX_ a,b,c) #define PerlIO_unread(a,b,c) Perl_PerlIO_unread(aTHX_ a,b,c) #define PerlIO_tell(a) Perl_PerlIO_tell(aTHX_ a) #define PerlIO_seek(a,b,c) Perl_PerlIO_seek(aTHX_ a,b,c) #define PerlIO_get_base(a) Perl_PerlIO_get_base(aTHX_ a) #define PerlIO_get_ptr(a) Perl_PerlIO_get_ptr(aTHX_ a) #define PerlIO_get_bufsiz(a) Perl_PerlIO_get_bufsiz(aTHX_ a) #define PerlIO_get_cnt(a) Perl_PerlIO_get_cnt(aTHX_ a) #define PerlIO_stdin() Perl_PerlIO_stdin(aTHX) #define PerlIO_stdout() Perl_PerlIO_stdout(aTHX) #define PerlIO_stderr() Perl_PerlIO_stderr(aTHX) #endif /* PERLIO_LAYERS */ #ifdef PERL_CORE #define deb_stack_all() Perl_deb_stack_all(aTHX) #endif #ifdef PERL_IN_DEB_C #ifdef PERL_CORE #define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e) #endif #endif #ifdef PERL_CORE #define pad_new(a) Perl_pad_new(aTHX_ a) #define pad_undef(a) Perl_pad_undef(aTHX_ a) #define pad_add_name(a,b,c,d) Perl_pad_add_name(aTHX_ a,b,c,d) #define pad_add_anon(a,b) Perl_pad_add_anon(aTHX_ a,b) #define pad_check_dup(a,b,c) Perl_pad_check_dup(aTHX_ a,b,c) #endif #ifdef DEBUGGING #ifdef PERL_CORE #define pad_setsv(a,b) Perl_pad_setsv(aTHX_ a,b) #endif #endif #ifdef PERL_CORE #define pad_block_start(a) Perl_pad_block_start(aTHX_ a) #define pad_tidy(a) Perl_pad_tidy(aTHX_ a) #define do_dump_pad(a,b,c,d) Perl_do_dump_pad(aTHX_ a,b,c,d) #define pad_fixup_inner_anons(a,b,c) Perl_pad_fixup_inner_anons(aTHX_ a,b,c) #endif #ifdef PERL_CORE #define pad_push(a,b,c) Perl_pad_push(aTHX_ a,b,c) #endif #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define pad_findlex(a,b,c) S_pad_findlex(aTHX_ a,b,c) #endif # if defined(DEBUGGING) #ifdef PERL_CORE #define cv_dump(a,b) S_cv_dump(aTHX_ a,b) #endif # endif #ifdef PERL_CORE #define cv_clone2(a,b) S_cv_clone2(aTHX_ a,b) #endif #endif #ifdef PERL_CORE #define find_runcv(a) Perl_find_runcv(aTHX_ a) #define free_tied_hv_pool() Perl_free_tied_hv_pool(aTHX) #endif #if defined(DEBUGGING) #ifdef PERL_CORE #define get_debug_opts(a) Perl_get_debug_opts(aTHX_ a) #endif #endif #define hv_clear_placeholders(a) Perl_hv_clear_placeholders(aTHX_ a) #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT) #ifdef PERL_CORE #define hv_delete_common(a,b,c,d,e,f,g) S_hv_delete_common(aTHX_ a,b,c,d,e,f,g) #define hv_fetch_common(a,b,c,d,e,f,g,h) S_hv_fetch_common(aTHX_ a,b,c,d,e,f,g,h) #endif #endif #define hv_scalar(a) Perl_hv_scalar(aTHX_ a) #ifdef PERL_CORE #define magic_scalarpack(a,b) Perl_magic_scalarpack(aTHX_ a,b) #endif #if defined(DEBUGGING) #ifdef PERL_CORE #define get_debug_opts_flags(a,b) Perl_get_debug_opts_flags(aTHX_ a,b) #endif #endif #define op_refcnt_lock() Perl_op_refcnt_lock(aTHX) #define op_refcnt_unlock() Perl_op_refcnt_unlock(aTHX) #define savesvpv(a) Perl_savesvpv(aTHX_ a) #ifdef PERL_NEED_MY_HTOLE16 #ifdef PERL_CORE #define my_htole16 Perl_my_htole16 #endif #endif #ifdef PERL_NEED_MY_LETOH16 #ifdef PERL_CORE #define my_letoh16 Perl_my_letoh16 #endif #endif #ifdef PERL_NEED_MY_HTOBE16 #ifdef PERL_CORE #define my_htobe16 Perl_my_htobe16 #endif #endif #ifdef PERL_NEED_MY_BETOH16 #ifdef PERL_CORE #define my_betoh16 Perl_my_betoh16 #endif #endif #ifdef PERL_NEED_MY_HTOLE32 #ifdef PERL_CORE #define my_htole32 Perl_my_htole32 #endif #endif #ifdef PERL_NEED_MY_LETOH32 #ifdef PERL_CORE #define my_letoh32 Perl_my_letoh32 #endif #endif #ifdef PERL_NEED_MY_HTOBE32 #ifdef PERL_CORE #define my_htobe32 Perl_my_htobe32 #endif #endif #ifdef PERL_NEED_MY_BETOH32 #ifdef PERL_CORE #define my_betoh32 Perl_my_betoh32 #endif #endif #ifdef PERL_NEED_MY_HTOLE64 #ifdef PERL_CORE #define my_htole64 Perl_my_htole64 #endif #endif #ifdef PERL_NEED_MY_LETOH64 #ifdef PERL_CORE #define my_letoh64 Perl_my_letoh64 #endif #endif #ifdef PERL_NEED_MY_HTOBE64 #ifdef PERL_CORE #define my_htobe64 Perl_my_htobe64 #endif #endif #ifdef PERL_NEED_MY_BETOH64 #ifdef PERL_CORE #define my_betoh64 Perl_my_betoh64 #endif #endif #ifdef PERL_NEED_MY_HTOLES #ifdef PERL_CORE #define my_htoles Perl_my_htoles #endif #endif #ifdef PERL_NEED_MY_LETOHS #ifdef PERL_CORE #define my_letohs Perl_my_letohs #endif #endif #ifdef PERL_NEED_MY_HTOBES #ifdef PERL_CORE #define my_htobes Perl_my_htobes #endif #endif #ifdef PERL_NEED_MY_BETOHS #ifdef PERL_CORE #define my_betohs Perl_my_betohs #endif #endif #ifdef PERL_NEED_MY_HTOLEI #ifdef PERL_CORE #define my_htolei Perl_my_htolei #endif #endif #ifdef PERL_NEED_MY_LETOHI #ifdef PERL_CORE #define my_letohi Perl_my_letohi #endif #endif #ifdef PERL_NEED_MY_HTOBEI #ifdef PERL_CORE #define my_htobei Perl_my_htobei #endif #endif #ifdef PERL_NEED_MY_BETOHI #ifdef PERL_CORE #define my_betohi Perl_my_betohi #endif #endif #ifdef PERL_NEED_MY_HTOLEL #ifdef PERL_CORE #define my_htolel Perl_my_htolel #endif #endif #ifdef PERL_NEED_MY_LETOHL #ifdef PERL_CORE #define my_letohl Perl_my_letohl #endif #endif #ifdef PERL_NEED_MY_HTOBEL #ifdef PERL_CORE #define my_htobel Perl_my_htobel #endif #endif #ifdef PERL_NEED_MY_BETOHL #ifdef PERL_CORE #define my_betohl Perl_my_betohl #endif #endif #ifdef PERL_CORE #define my_swabn Perl_my_swabn #endif #define ck_anoncode(a) Perl_ck_anoncode(aTHX_ a) #define ck_bitop(a) Perl_ck_bitop(aTHX_ a) #define ck_concat(a) Perl_ck_concat(aTHX_ a) #define ck_defined(a) Perl_ck_defined(aTHX_ a) #define ck_delete(a) Perl_ck_delete(aTHX_ a) #define ck_die(a) Perl_ck_die(aTHX_ a) #define ck_eof(a) Perl_ck_eof(aTHX_ a) #define ck_eval(a) Perl_ck_eval(aTHX_ a) #define ck_exec(a) Perl_ck_exec(aTHX_ a) #define ck_exists(a) Perl_ck_exists(aTHX_ a) #define ck_exit(a) Perl_ck_exit(aTHX_ a) #define ck_ftst(a) Perl_ck_ftst(aTHX_ a) #define ck_fun(a) Perl_ck_fun(aTHX_ a) #define ck_glob(a) Perl_ck_glob(aTHX_ a) #define ck_grep(a) Perl_ck_grep(aTHX_ a) #define ck_index(a) Perl_ck_index(aTHX_ a) #define ck_join(a) Perl_ck_join(aTHX_ a) #define ck_lengthconst(a) Perl_ck_lengthconst(aTHX_ a) #define ck_lfun(a) Perl_ck_lfun(aTHX_ a) #define ck_listiob(a) Perl_ck_listiob(aTHX_ a) #define ck_match(a) Perl_ck_match(aTHX_ a) #define ck_method(a) Perl_ck_method(aTHX_ a) #define ck_null(a) Perl_ck_null(aTHX_ a) #define ck_open(a) Perl_ck_open(aTHX_ a) #define ck_repeat(a) Perl_ck_repeat(aTHX_ a) #define ck_require(a) Perl_ck_require(aTHX_ a) #define ck_return(a) Perl_ck_return(aTHX_ a) #define ck_rfun(a) Perl_ck_rfun(aTHX_ a) #define ck_rvconst(a) Perl_ck_rvconst(aTHX_ a) #define ck_sassign(a) Perl_ck_sassign(aTHX_ a) #define ck_select(a) Perl_ck_select(aTHX_ a) #define ck_shift(a) Perl_ck_shift(aTHX_ a) #define ck_sort(a) Perl_ck_sort(aTHX_ a) #define ck_spair(a) Perl_ck_spair(aTHX_ a) #define ck_split(a) Perl_ck_split(aTHX_ a) #define ck_subr(a) Perl_ck_subr(aTHX_ a) #define ck_substr(a) Perl_ck_substr(aTHX_ a) #define ck_svconst(a) Perl_ck_svconst(aTHX_ a) #define ck_trunc(a) Perl_ck_trunc(aTHX_ a) #define pp_aassign() Perl_pp_aassign(aTHX) #define pp_abs() Perl_pp_abs(aTHX) #define pp_accept() Perl_pp_accept(aTHX) #define pp_add() Perl_pp_add(aTHX) #define pp_aelem() Perl_pp_aelem(aTHX) #define pp_aelemfast() Perl_pp_aelemfast(aTHX) #define pp_alarm() Perl_pp_alarm(aTHX) #define pp_and() Perl_pp_and(aTHX) #define pp_andassign() Perl_pp_andassign(aTHX) #define pp_anoncode() Perl_pp_anoncode(aTHX) #define pp_anonhash() Perl_pp_anonhash(aTHX) #define pp_anonlist() Perl_pp_anonlist(aTHX) #define pp_aslice() Perl_pp_aslice(aTHX) #define pp_atan2() Perl_pp_atan2(aTHX) #define pp_av2arylen() Perl_pp_av2arylen(aTHX) #define pp_backtick() Perl_pp_backtick(aTHX) #define pp_bind() Perl_pp_bind(aTHX) #define pp_binmode() Perl_pp_binmode(aTHX) #define pp_bit_and() Perl_pp_bit_and(aTHX) #define pp_bit_or() Perl_pp_bit_or(aTHX) #define pp_bit_xor() Perl_pp_bit_xor(aTHX) #define pp_bless() Perl_pp_bless(aTHX) #define pp_caller() Perl_pp_caller(aTHX) #define pp_chdir() Perl_pp_chdir(aTHX) #define pp_chmod() Perl_pp_chmod(aTHX) #define pp_chomp() Perl_pp_chomp(aTHX) #define pp_chop() Perl_pp_chop(aTHX) #define pp_chown() Perl_pp_chown(aTHX) #define pp_chr() Perl_pp_chr(aTHX) #define pp_chroot() Perl_pp_chroot(aTHX) #define pp_close() Perl_pp_close(aTHX) #define pp_closedir() Perl_pp_closedir(aTHX) #define pp_complement() Perl_pp_complement(aTHX) #define pp_concat() Perl_pp_concat(aTHX) #define pp_cond_expr() Perl_pp_cond_expr(aTHX) #define pp_connect() Perl_pp_connect(aTHX) #define pp_const() Perl_pp_const(aTHX) #define pp_cos() Perl_pp_cos(aTHX) #define pp_crypt() Perl_pp_crypt(aTHX) #define pp_dbmclose() Perl_pp_dbmclose(aTHX) #define pp_dbmopen() Perl_pp_dbmopen(aTHX) #define pp_dbstate() Perl_pp_dbstate(aTHX) #define pp_defined() Perl_pp_defined(aTHX) #define pp_delete() Perl_pp_delete(aTHX) #define pp_die() Perl_pp_die(aTHX) #define pp_divide() Perl_pp_divide(aTHX) #define pp_dofile() Perl_pp_dofile(aTHX) #define pp_dump() Perl_pp_dump(aTHX) #define pp_each() Perl_pp_each(aTHX) #define pp_egrent() Perl_pp_egrent(aTHX) #define pp_ehostent() Perl_pp_ehostent(aTHX) #define pp_enetent() Perl_pp_enetent(aTHX) #define pp_enter() Perl_pp_enter(aTHX) #define pp_entereval() Perl_pp_entereval(aTHX) #define pp_enteriter() Perl_pp_enteriter(aTHX) #define pp_enterloop() Perl_pp_enterloop(aTHX) #define pp_entersub() Perl_pp_entersub(aTHX) #define pp_entertry() Perl_pp_entertry(aTHX) #define pp_enterwrite() Perl_pp_enterwrite(aTHX) #define pp_eof() Perl_pp_eof(aTHX) #define pp_eprotoent() Perl_pp_eprotoent(aTHX) #define pp_epwent() Perl_pp_epwent(aTHX) #define pp_eq() Perl_pp_eq(aTHX) #define pp_eservent() Perl_pp_eservent(aTHX) #define pp_exec() Perl_pp_exec(aTHX) #define pp_exists() Perl_pp_exists(aTHX) #define pp_exit() Perl_pp_exit(aTHX) #define pp_exp() Perl_pp_exp(aTHX) #define pp_fcntl() Perl_pp_fcntl(aTHX) #define pp_fileno() Perl_pp_fileno(aTHX) #define pp_flip() Perl_pp_flip(aTHX) #define pp_flock() Perl_pp_flock(aTHX) #define pp_flop() Perl_pp_flop(aTHX) #define pp_fork() Perl_pp_fork(aTHX) #define pp_formline() Perl_pp_formline(aTHX) #define pp_ftatime() Perl_pp_ftatime(aTHX) #define pp_ftbinary() Perl_pp_ftbinary(aTHX) #define pp_ftblk() Perl_pp_ftblk(aTHX) #define pp_ftchr() Perl_pp_ftchr(aTHX) #define pp_ftctime() Perl_pp_ftctime(aTHX) #define pp_ftdir() Perl_pp_ftdir(aTHX) #define pp_fteexec() Perl_pp_fteexec(aTHX) #define pp_fteowned() Perl_pp_fteowned(aTHX) #define pp_fteread() Perl_pp_fteread(aTHX) #define pp_ftewrite() Perl_pp_ftewrite(aTHX) #define pp_ftfile() Perl_pp_ftfile(aTHX) #define pp_ftis() Perl_pp_ftis(aTHX) #define pp_ftlink() Perl_pp_ftlink(aTHX) #define pp_ftmtime() Perl_pp_ftmtime(aTHX) #define pp_ftpipe() Perl_pp_ftpipe(aTHX) #define pp_ftrexec() Perl_pp_ftrexec(aTHX) #define pp_ftrowned() Perl_pp_ftrowned(aTHX) #define pp_ftrread() Perl_pp_ftrread(aTHX) #define pp_ftrwrite() Perl_pp_ftrwrite(aTHX) #define pp_ftsgid() Perl_pp_ftsgid(aTHX) #define pp_ftsize() Perl_pp_ftsize(aTHX) #define pp_ftsock() Perl_pp_ftsock(aTHX) #define pp_ftsuid() Perl_pp_ftsuid(aTHX) #define pp_ftsvtx() Perl_pp_ftsvtx(aTHX) #define pp_fttext() Perl_pp_fttext(aTHX) #define pp_fttty() Perl_pp_fttty(aTHX) #define pp_ftzero() Perl_pp_ftzero(aTHX) #define pp_ge() Perl_pp_ge(aTHX) #define pp_gelem() Perl_pp_gelem(aTHX) #define pp_getc() Perl_pp_getc(aTHX) #define pp_getlogin() Perl_pp_getlogin(aTHX) #define pp_getpeername() Perl_pp_getpeername(aTHX) #define pp_getpgrp() Perl_pp_getpgrp(aTHX) #define pp_getppid() Perl_pp_getppid(aTHX) #define pp_getpriority() Perl_pp_getpriority(aTHX) #define pp_getsockname() Perl_pp_getsockname(aTHX) #define pp_ggrent() Perl_pp_ggrent(aTHX) #define pp_ggrgid() Perl_pp_ggrgid(aTHX) #define pp_ggrnam() Perl_pp_ggrnam(aTHX) #define pp_ghbyaddr() Perl_pp_ghbyaddr(aTHX) #define pp_ghbyname() Perl_pp_ghbyname(aTHX) #define pp_ghostent() Perl_pp_ghostent(aTHX) #define pp_glob() Perl_pp_glob(aTHX) #define pp_gmtime() Perl_pp_gmtime(aTHX) #define pp_gnbyaddr() Perl_pp_gnbyaddr(aTHX) #define pp_gnbyname() Perl_pp_gnbyname(aTHX) #define pp_gnetent() Perl_pp_gnetent(aTHX) #define pp_goto() Perl_pp_goto(aTHX) #define pp_gpbyname() Perl_pp_gpbyname(aTHX) #define pp_gpbynumber() Perl_pp_gpbynumber(aTHX) #define pp_gprotoent() Perl_pp_gprotoent(aTHX) #define pp_gpwent() Perl_pp_gpwent(aTHX) #define pp_gpwnam() Perl_pp_gpwnam(aTHX) #define pp_gpwuid() Perl_pp_gpwuid(aTHX) #define pp_grepstart() Perl_pp_grepstart(aTHX) #define pp_grepwhile() Perl_pp_grepwhile(aTHX) #define pp_gsbyname() Perl_pp_gsbyname(aTHX) #define pp_gsbyport() Perl_pp_gsbyport(aTHX) #define pp_gservent() Perl_pp_gservent(aTHX) #define pp_gsockopt() Perl_pp_gsockopt(aTHX) #define pp_gt() Perl_pp_gt(aTHX) #define pp_gv() Perl_pp_gv(aTHX) #define pp_gvsv() Perl_pp_gvsv(aTHX) #define pp_helem() Perl_pp_helem(aTHX) #define pp_hex() Perl_pp_hex(aTHX) #define pp_hslice() Perl_pp_hslice(aTHX) #define pp_i_add() Perl_pp_i_add(aTHX) #define pp_i_divide() Perl_pp_i_divide(aTHX) #define pp_i_eq() Perl_pp_i_eq(aTHX) #define pp_i_ge() Perl_pp_i_ge(aTHX) #define pp_i_gt() Perl_pp_i_gt(aTHX) #define pp_i_le() Perl_pp_i_le(aTHX) #define pp_i_lt() Perl_pp_i_lt(aTHX) #define pp_i_modulo() Perl_pp_i_modulo(aTHX) #define pp_i_multiply() Perl_pp_i_multiply(aTHX) #define pp_i_ncmp() Perl_pp_i_ncmp(aTHX) #define pp_i_ne() Perl_pp_i_ne(aTHX) #define pp_i_negate() Perl_pp_i_negate(aTHX) #define pp_i_subtract() Perl_pp_i_subtract(aTHX) #define pp_index() Perl_pp_index(aTHX) #define pp_int() Perl_pp_int(aTHX) #define pp_ioctl() Perl_pp_ioctl(aTHX) #define pp_iter() Perl_pp_iter(aTHX) #define pp_join() Perl_pp_join(aTHX) #define pp_keys() Perl_pp_keys(aTHX) #define pp_kill() Perl_pp_kill(aTHX) #define pp_last() Perl_pp_last(aTHX) #define pp_lc() Perl_pp_lc(aTHX) #define pp_lcfirst() Perl_pp_lcfirst(aTHX) #define pp_le() Perl_pp_le(aTHX) #define pp_leave() Perl_pp_leave(aTHX) #define pp_leaveeval() Perl_pp_leaveeval(aTHX) #define pp_leaveloop() Perl_pp_leaveloop(aTHX) #define pp_leavesub() Perl_pp_leavesub(aTHX) #define pp_leavesublv() Perl_pp_leavesublv(aTHX) #define pp_leavetry() Perl_pp_leavetry(aTHX) #define pp_leavewrite() Perl_pp_leavewrite(aTHX) #define pp_left_shift() Perl_pp_left_shift(aTHX) #define pp_length() Perl_pp_length(aTHX) #define pp_lineseq() Perl_pp_lineseq(aTHX) #define pp_link() Perl_pp_link(aTHX) #define pp_list() Perl_pp_list(aTHX) #define pp_listen() Perl_pp_listen(aTHX) #define pp_localtime() Perl_pp_localtime(aTHX) #define pp_lock() Perl_pp_lock(aTHX) #define pp_log() Perl_pp_log(aTHX) #define pp_lslice() Perl_pp_lslice(aTHX) #define pp_lstat() Perl_pp_lstat(aTHX) #define pp_lt() Perl_pp_lt(aTHX) #define pp_mapstart() Perl_pp_mapstart(aTHX) #define pp_mapwhile() Perl_pp_mapwhile(aTHX) #define pp_match() Perl_pp_match(aTHX) #define pp_method() Perl_pp_method(aTHX) #define pp_method_named() Perl_pp_method_named(aTHX) #define pp_mkdir() Perl_pp_mkdir(aTHX) #define pp_modulo() Perl_pp_modulo(aTHX) #define pp_msgctl() Perl_pp_msgctl(aTHX) #define pp_msgget() Perl_pp_msgget(aTHX) #define pp_msgrcv() Perl_pp_msgrcv(aTHX) #define pp_msgsnd() Perl_pp_msgsnd(aTHX) #define pp_multiply() Perl_pp_multiply(aTHX) #define pp_ncmp() Perl_pp_ncmp(aTHX) #define pp_ne() Perl_pp_ne(aTHX) #define pp_negate() Perl_pp_negate(aTHX) #define pp_next() Perl_pp_next(aTHX) #define pp_nextstate() Perl_pp_nextstate(aTHX) #define pp_not() Perl_pp_not(aTHX) #define pp_null() Perl_pp_null(aTHX) #define pp_oct() Perl_pp_oct(aTHX) #define pp_open() Perl_pp_open(aTHX) #define pp_open_dir() Perl_pp_open_dir(aTHX) #define pp_or() Perl_pp_or(aTHX) #define pp_orassign() Perl_pp_orassign(aTHX) #define pp_ord() Perl_pp_ord(aTHX) #define pp_pack() Perl_pp_pack(aTHX) #define pp_padany() Perl_pp_padany(aTHX) #define pp_padav() Perl_pp_padav(aTHX) #define pp_padhv() Perl_pp_padhv(aTHX) #define pp_padsv() Perl_pp_padsv(aTHX) #define pp_pipe_op() Perl_pp_pipe_op(aTHX) #define pp_pop() Perl_pp_pop(aTHX) #define pp_pos() Perl_pp_pos(aTHX) #define pp_postdec() Perl_pp_postdec(aTHX) #define pp_postinc() Perl_pp_postinc(aTHX) #define pp_pow() Perl_pp_pow(aTHX) #define pp_predec() Perl_pp_predec(aTHX) #define pp_preinc() Perl_pp_preinc(aTHX) #define pp_print() Perl_pp_print(aTHX) #define pp_prototype() Perl_pp_prototype(aTHX) #define pp_prtf() Perl_pp_prtf(aTHX) #define pp_push() Perl_pp_push(aTHX) #define pp_pushmark() Perl_pp_pushmark(aTHX) #define pp_pushre() Perl_pp_pushre(aTHX) #define pp_qr() Perl_pp_qr(aTHX) #define pp_quotemeta() Perl_pp_quotemeta(aTHX) #define pp_rand() Perl_pp_rand(aTHX) #define pp_range() Perl_pp_range(aTHX) #define pp_rcatline() Perl_pp_rcatline(aTHX) #define pp_read() Perl_pp_read(aTHX) #define pp_readdir() Perl_pp_readdir(aTHX) #define pp_readline() Perl_pp_readline(aTHX) #define pp_readlink() Perl_pp_readlink(aTHX) #define pp_recv() Perl_pp_recv(aTHX) #define pp_redo() Perl_pp_redo(aTHX) #define pp_ref() Perl_pp_ref(aTHX) #define pp_refgen() Perl_pp_refgen(aTHX) #define pp_regcmaybe() Perl_pp_regcmaybe(aTHX) #define pp_regcomp() Perl_pp_regcomp(aTHX) #define pp_regcreset() Perl_pp_regcreset(aTHX) #define pp_rename() Perl_pp_rename(aTHX) #define pp_repeat() Perl_pp_repeat(aTHX) #define pp_require() Perl_pp_require(aTHX) #define pp_reset() Perl_pp_reset(aTHX) #define pp_return() Perl_pp_return(aTHX) #define pp_reverse() Perl_pp_reverse(aTHX) #define pp_rewinddir() Perl_pp_rewinddir(aTHX) #define pp_right_shift() Perl_pp_right_shift(aTHX) #define pp_rindex() Perl_pp_rindex(aTHX) #define pp_rmdir() Perl_pp_rmdir(aTHX) #define pp_rv2av() Perl_pp_rv2av(aTHX) #define pp_rv2cv() Perl_pp_rv2cv(aTHX) #define pp_rv2gv() Perl_pp_rv2gv(aTHX) #define pp_rv2hv() Perl_pp_rv2hv(aTHX) #define pp_rv2sv() Perl_pp_rv2sv(aTHX) #define pp_sassign() Perl_pp_sassign(aTHX) #define pp_scalar() Perl_pp_scalar(aTHX) #define pp_schomp() Perl_pp_schomp(aTHX) #define pp_schop() Perl_pp_schop(aTHX) #define pp_scmp() Perl_pp_scmp(aTHX) #define pp_scope() Perl_pp_scope(aTHX) #define pp_seek() Perl_pp_seek(aTHX) #define pp_seekdir() Perl_pp_seekdir(aTHX) #define pp_select() Perl_pp_select(aTHX) #define pp_semctl() Perl_pp_semctl(aTHX) #define pp_semget() Perl_pp_semget(aTHX) #define pp_semop() Perl_pp_semop(aTHX) #define pp_send() Perl_pp_send(aTHX) #define pp_seq() Perl_pp_seq(aTHX) #define pp_setpgrp() Perl_pp_setpgrp(aTHX) #define pp_setpriority() Perl_pp_setpriority(aTHX) #define pp_setstate() Perl_pp_setstate(aTHX) #define pp_sge() Perl_pp_sge(aTHX) #define pp_sgrent() Perl_pp_sgrent(aTHX) #define pp_sgt() Perl_pp_sgt(aTHX) #define pp_shift() Perl_pp_shift(aTHX) #define pp_shmctl() Perl_pp_shmctl(aTHX) #define pp_shmget() Perl_pp_shmget(aTHX) #define pp_shmread() Perl_pp_shmread(aTHX) #define pp_shmwrite() Perl_pp_shmwrite(aTHX) #define pp_shostent() Perl_pp_shostent(aTHX) #define pp_shutdown() Perl_pp_shutdown(aTHX) #define pp_sin() Perl_pp_sin(aTHX) #define pp_sle() Perl_pp_sle(aTHX) #define pp_sleep() Perl_pp_sleep(aTHX) #define pp_slt() Perl_pp_slt(aTHX) #define pp_sne() Perl_pp_sne(aTHX) #define pp_snetent() Perl_pp_snetent(aTHX) #define pp_socket() Perl_pp_socket(aTHX) #define pp_sockpair() Perl_pp_sockpair(aTHX) #define pp_sort() Perl_pp_sort(aTHX) #define pp_splice() Perl_pp_splice(aTHX) #define pp_split() Perl_pp_split(aTHX) #define pp_sprintf() Perl_pp_sprintf(aTHX) #define pp_sprotoent() Perl_pp_sprotoent(aTHX) #define pp_spwent() Perl_pp_spwent(aTHX) #define pp_sqrt() Perl_pp_sqrt(aTHX) #define pp_srand() Perl_pp_srand(aTHX) #define pp_srefgen() Perl_pp_srefgen(aTHX) #define pp_sselect() Perl_pp_sselect(aTHX) #define pp_sservent() Perl_pp_sservent(aTHX) #define pp_ssockopt() Perl_pp_ssockopt(aTHX) #define pp_stat() Perl_pp_stat(aTHX) #define pp_stringify() Perl_pp_stringify(aTHX) #define pp_stub() Perl_pp_stub(aTHX) #define pp_study() Perl_pp_study(aTHX) #define pp_subst() Perl_pp_subst(aTHX) #define pp_substcont() Perl_pp_substcont(aTHX) #define pp_substr() Perl_pp_substr(aTHX) #define pp_subtract() Perl_pp_subtract(aTHX) #define pp_symlink() Perl_pp_symlink(aTHX) #define pp_syscall() Perl_pp_syscall(aTHX) #define pp_sysopen() Perl_pp_sysopen(aTHX) #define pp_sysread() Perl_pp_sysread(aTHX) #define pp_sysseek() Perl_pp_sysseek(aTHX) #define pp_system() Perl_pp_system(aTHX) #define pp_syswrite() Perl_pp_syswrite(aTHX) #define pp_tell() Perl_pp_tell(aTHX) #define pp_telldir() Perl_pp_telldir(aTHX) #define pp_threadsv() Perl_pp_threadsv(aTHX) #define pp_tie() Perl_pp_tie(aTHX) #define pp_tied() Perl_pp_tied(aTHX) #define pp_time() Perl_pp_time(aTHX) #define pp_tms() Perl_pp_tms(aTHX) #define pp_trans() Perl_pp_trans(aTHX) #define pp_truncate() Perl_pp_truncate(aTHX) #define pp_uc() Perl_pp_uc(aTHX) #define pp_ucfirst() Perl_pp_ucfirst(aTHX) #define pp_umask() Perl_pp_umask(aTHX) #define pp_undef() Perl_pp_undef(aTHX) #define pp_unlink() Perl_pp_unlink(aTHX) #define pp_unpack() Perl_pp_unpack(aTHX) #define pp_unshift() Perl_pp_unshift(aTHX) #define pp_unstack() Perl_pp_unstack(aTHX) #define pp_untie() Perl_pp_untie(aTHX) #define pp_utime() Perl_pp_utime(aTHX) #define pp_values() Perl_pp_values(aTHX) #define pp_vec() Perl_pp_vec(aTHX) #define pp_wait() Perl_pp_wait(aTHX) #define pp_waitpid() Perl_pp_waitpid(aTHX) #define pp_wantarray() Perl_pp_wantarray(aTHX) #define pp_warn() Perl_pp_warn(aTHX) #define pp_xor() Perl_pp_xor(aTHX) #endif /* PERL_IMPLICIT_CONTEXT */ #endif /* #ifndef PERL_NO_SHORT_NAMES */ /* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to disable them. */ #if !defined(PERL_CORE) # define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr)) # define sv_setptrref(rv,ptr) sv_setref_iv(rv,Nullch,PTR2IV(ptr)) #endif #if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) /* Compatibility for various misnamed functions. All functions in the API that begin with "perl_" (not "Perl_") take an explicit interpreter context pointer. The following are not like that, but since they had a "perl_" prefix in previous versions, we provide compatibility macros. */ # define perl_atexit(a,b) call_atexit(a,b) # define perl_call_argv(a,b,c) call_argv(a,b,c) # define perl_call_pv(a,b) call_pv(a,b) # define perl_call_method(a,b) call_method(a,b) # define perl_call_sv(a,b) call_sv(a,b) # define perl_eval_sv(a,b) eval_sv(a,b) # define perl_eval_pv(a,b) eval_pv(a,b) # define perl_require_pv(a) require_pv(a) # define perl_get_sv(a,b) get_sv(a,b) # define perl_get_av(a,b) get_av(a,b) # define perl_get_hv(a,b) get_hv(a,b) # define perl_get_cv(a,b) get_cv(a,b) # define perl_init_i18nl10n(a) init_i18nl10n(a) # define perl_init_i18nl14n(a) init_i18nl14n(a) # define perl_new_ctype(a) new_ctype(a) # define perl_new_collate(a) new_collate(a) # define perl_new_numeric(a) new_numeric(a) /* varargs functions can't be handled with CPP macros. :-( This provides a set of compatibility functions that don't take an extra argument but grab the context pointer using the macro dTHX. */ #if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_SHORT_NAMES) # define croak Perl_croak_nocontext # define deb Perl_deb_nocontext # define die Perl_die_nocontext # define form Perl_form_nocontext # define load_module Perl_load_module_nocontext # define mess Perl_mess_nocontext # define newSVpvf Perl_newSVpvf_nocontext # define sv_catpvf Perl_sv_catpvf_nocontext # define sv_setpvf Perl_sv_setpvf_nocontext # define warn Perl_warn_nocontext # define warner Perl_warner_nocontext # define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext # define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext #endif #endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */ #if !defined(PERL_IMPLICIT_CONTEXT) /* undefined symbols, point them back at the usual ones */ # define Perl_croak_nocontext Perl_croak # define Perl_die_nocontext Perl_die # define Perl_deb_nocontext Perl_deb # define Perl_form_nocontext Perl_form # define Perl_load_module_nocontext Perl_load_module # define Perl_mess_nocontext Perl_mess # define Perl_newSVpvf_nocontext Perl_newSVpvf # define Perl_sv_catpvf_nocontext Perl_sv_catpvf # define Perl_sv_setpvf_nocontext Perl_sv_setpvf # define Perl_warn_nocontext Perl_warn # define Perl_warner_nocontext Perl_warner # define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg # define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg #endif ================================================ FILE: tests/perlbench/embedvar.h ================================================ /* * embedvar.h * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by embed.pl from data in embed.fnc, embed.pl, * pp.sym, intrpvar.h, perlvars.h and thrdvar.h. * Any changes made here will be lost! * * Edit those files and run 'make regen_headers' to effect changes. */ /* (Doing namespace management portably in C is really gross.) */ /* The following combinations of MULTIPLICITY, USE_5005THREADS and PERL_IMPLICIT_CONTEXT are supported: 1) none 2) MULTIPLICITY # supported for compatibility 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT 4) USE_5005THREADS && PERL_IMPLICIT_CONTEXT 5) MULTIPLICITY && USE_5005THREADS && PERL_IMPLICIT_CONTEXT All other combinations of these flags are errors. #3, #4, #5, and #6 are supported directly, while #2 is a special case of #3 (supported by redefining vTHX appropriately). */ #if defined(MULTIPLICITY) /* cases 2, 3 and 5 above */ # if defined(PERL_IMPLICIT_CONTEXT) # define vTHX aTHX # else # define vTHX PERL_GET_INTERP # endif #define PL_Sv (vTHX->TSv) #define PL_Xpv (vTHX->TXpv) #define PL_av_fetch_sv (vTHX->Tav_fetch_sv) #define PL_bodytarget (vTHX->Tbodytarget) #define PL_bostr (vTHX->Tbostr) #define PL_chopset (vTHX->Tchopset) #define PL_colors (vTHX->Tcolors) #define PL_colorset (vTHX->Tcolorset) #define PL_comppad (vTHX->Tcomppad) #define PL_curcop (vTHX->Tcurcop) #define PL_curpad (vTHX->Tcurpad) #define PL_curpm (vTHX->Tcurpm) #define PL_curstack (vTHX->Tcurstack) #define PL_curstackinfo (vTHX->Tcurstackinfo) #define PL_curstash (vTHX->Tcurstash) #define PL_defoutgv (vTHX->Tdefoutgv) #define PL_defstash (vTHX->Tdefstash) #define PL_delaymagic (vTHX->Tdelaymagic) #define PL_dirty (vTHX->Tdirty) #define PL_dumpindent (vTHX->Tdumpindent) #define PL_efloatbuf (vTHX->Tefloatbuf) #define PL_efloatsize (vTHX->Tefloatsize) #define PL_errors (vTHX->Terrors) #define PL_extralen (vTHX->Textralen) #define PL_firstgv (vTHX->Tfirstgv) #define PL_formtarget (vTHX->Tformtarget) #define PL_hv_fetch_ent_mh (vTHX->Thv_fetch_ent_mh) #define PL_hv_fetch_sv (vTHX->Thv_fetch_sv) #define PL_in_eval (vTHX->Tin_eval) #define PL_last_in_gv (vTHX->Tlast_in_gv) #define PL_lastgotoprobe (vTHX->Tlastgotoprobe) #define PL_lastscream (vTHX->Tlastscream) #define PL_localizing (vTHX->Tlocalizing) #define PL_mainstack (vTHX->Tmainstack) #define PL_markstack (vTHX->Tmarkstack) #define PL_markstack_max (vTHX->Tmarkstack_max) #define PL_markstack_ptr (vTHX->Tmarkstack_ptr) #define PL_maxscream (vTHX->Tmaxscream) #define PL_modcount (vTHX->Tmodcount) #define PL_na (vTHX->Tna) #define PL_nrs (vTHX->Tnrs) #define PL_ofs_sv (vTHX->Tofs_sv) #define PL_op (vTHX->Top) #define PL_opsave (vTHX->Topsave) #define PL_peepp (vTHX->Tpeepp) #define PL_protect (vTHX->Tprotect) #define PL_reg_call_cc (vTHX->Treg_call_cc) #define PL_reg_curpm (vTHX->Treg_curpm) #define PL_reg_eval_set (vTHX->Treg_eval_set) #define PL_reg_flags (vTHX->Treg_flags) #define PL_reg_ganch (vTHX->Treg_ganch) #define PL_reg_leftiter (vTHX->Treg_leftiter) #define PL_reg_magic (vTHX->Treg_magic) #define PL_reg_match_utf8 (vTHX->Treg_match_utf8) #define PL_reg_maxiter (vTHX->Treg_maxiter) #define PL_reg_oldcurpm (vTHX->Treg_oldcurpm) #define PL_reg_oldpos (vTHX->Treg_oldpos) #define PL_reg_oldsaved (vTHX->Treg_oldsaved) #define PL_reg_oldsavedlen (vTHX->Treg_oldsavedlen) #define PL_reg_poscache (vTHX->Treg_poscache) #define PL_reg_poscache_size (vTHX->Treg_poscache_size) #define PL_reg_re (vTHX->Treg_re) #define PL_reg_start_tmp (vTHX->Treg_start_tmp) #define PL_reg_start_tmpl (vTHX->Treg_start_tmpl) #define PL_reg_starttry (vTHX->Treg_starttry) #define PL_reg_sv (vTHX->Treg_sv) #define PL_reg_whilem_seen (vTHX->Treg_whilem_seen) #define PL_regbol (vTHX->Tregbol) #define PL_regcc (vTHX->Tregcc) #define PL_regcode (vTHX->Tregcode) #define PL_regcomp_parse (vTHX->Tregcomp_parse) #define PL_regcomp_rx (vTHX->Tregcomp_rx) #define PL_regcompat1 (vTHX->Tregcompat1) #define PL_regcompp (vTHX->Tregcompp) #define PL_regdata (vTHX->Tregdata) #define PL_regdummy (vTHX->Tregdummy) #define PL_regendp (vTHX->Tregendp) #define PL_regeol (vTHX->Tregeol) #define PL_regexecp (vTHX->Tregexecp) #define PL_regflags (vTHX->Tregflags) #define PL_regfree (vTHX->Tregfree) #define PL_regindent (vTHX->Tregindent) #define PL_reginput (vTHX->Treginput) #define PL_regint_start (vTHX->Tregint_start) #define PL_regint_string (vTHX->Tregint_string) #define PL_reginterp_cnt (vTHX->Treginterp_cnt) #define PL_reglastcloseparen (vTHX->Treglastcloseparen) #define PL_reglastparen (vTHX->Treglastparen) #define PL_regnarrate (vTHX->Tregnarrate) #define PL_regnaughty (vTHX->Tregnaughty) #define PL_regnpar (vTHX->Tregnpar) #define PL_regprecomp (vTHX->Tregprecomp) #define PL_regprogram (vTHX->Tregprogram) #define PL_regsawback (vTHX->Tregsawback) #define PL_regseen (vTHX->Tregseen) #define PL_regsize (vTHX->Tregsize) #define PL_regstartp (vTHX->Tregstartp) #define PL_regtill (vTHX->Tregtill) #define PL_regxend (vTHX->Tregxend) #define PL_restartop (vTHX->Trestartop) #define PL_retstack (vTHX->Tretstack) #define PL_retstack_ix (vTHX->Tretstack_ix) #define PL_retstack_max (vTHX->Tretstack_max) #define PL_rs (vTHX->Trs) #define PL_savestack (vTHX->Tsavestack) #define PL_savestack_ix (vTHX->Tsavestack_ix) #define PL_savestack_max (vTHX->Tsavestack_max) #define PL_scopestack (vTHX->Tscopestack) #define PL_scopestack_ix (vTHX->Tscopestack_ix) #define PL_scopestack_max (vTHX->Tscopestack_max) #define PL_screamfirst (vTHX->Tscreamfirst) #define PL_screamnext (vTHX->Tscreamnext) #define PL_secondgv (vTHX->Tsecondgv) #define PL_seen_evals (vTHX->Tseen_evals) #define PL_seen_zerolen (vTHX->Tseen_zerolen) #define PL_sortcop (vTHX->Tsortcop) #define PL_sortcxix (vTHX->Tsortcxix) #define PL_sortstash (vTHX->Tsortstash) #define PL_stack_base (vTHX->Tstack_base) #define PL_stack_max (vTHX->Tstack_max) #define PL_stack_sp (vTHX->Tstack_sp) #define PL_start_env (vTHX->Tstart_env) #define PL_statbuf (vTHX->Tstatbuf) #define PL_statcache (vTHX->Tstatcache) #define PL_statgv (vTHX->Tstatgv) #define PL_statname (vTHX->Tstatname) #define PL_tainted (vTHX->Ttainted) #define PL_timesbuf (vTHX->Ttimesbuf) #define PL_tmps_floor (vTHX->Ttmps_floor) #define PL_tmps_ix (vTHX->Ttmps_ix) #define PL_tmps_max (vTHX->Ttmps_max) #define PL_tmps_stack (vTHX->Ttmps_stack) #define PL_top_env (vTHX->Ttop_env) #define PL_toptarget (vTHX->Ttoptarget) #define PL_watchaddr (vTHX->Twatchaddr) #define PL_watchok (vTHX->Twatchok) # if defined(USE_5005THREADS) /* case 5 above */ #define PL_Argv (PERL_GET_INTERP->IArgv) #define PL_BINCOMPAT0 (PERL_GET_INTERP->IBINCOMPAT0) #define PL_Cmd (PERL_GET_INTERP->ICmd) #define PL_DBcv (PERL_GET_INTERP->IDBcv) #define PL_DBgv (PERL_GET_INTERP->IDBgv) #define PL_DBline (PERL_GET_INTERP->IDBline) #define PL_DBsignal (PERL_GET_INTERP->IDBsignal) #define PL_DBsingle (PERL_GET_INTERP->IDBsingle) #define PL_DBsub (PERL_GET_INTERP->IDBsub) #define PL_DBtrace (PERL_GET_INTERP->IDBtrace) #define PL_Dir (PERL_GET_INTERP->IDir) #define PL_Env (PERL_GET_INTERP->IEnv) #define PL_LIO (PERL_GET_INTERP->ILIO) #define PL_Mem (PERL_GET_INTERP->IMem) #define PL_MemParse (PERL_GET_INTERP->IMemParse) #define PL_MemShared (PERL_GET_INTERP->IMemShared) #define PL_OpPtr (PERL_GET_INTERP->IOpPtr) #define PL_OpSlab (PERL_GET_INTERP->IOpSlab) #define PL_OpSpace (PERL_GET_INTERP->IOpSpace) #define PL_Proc (PERL_GET_INTERP->IProc) #define PL_Sock (PERL_GET_INTERP->ISock) #define PL_StdIO (PERL_GET_INTERP->IStdIO) #define PL_amagic_generation (PERL_GET_INTERP->Iamagic_generation) #define PL_an (PERL_GET_INTERP->Ian) #define PL_argvgv (PERL_GET_INTERP->Iargvgv) #define PL_argvout_stack (PERL_GET_INTERP->Iargvout_stack) #define PL_argvoutgv (PERL_GET_INTERP->Iargvoutgv) #define PL_basetime (PERL_GET_INTERP->Ibasetime) #define PL_beginav (PERL_GET_INTERP->Ibeginav) #define PL_beginav_save (PERL_GET_INTERP->Ibeginav_save) #define PL_bitcount (PERL_GET_INTERP->Ibitcount) #define PL_bufend (PERL_GET_INTERP->Ibufend) #define PL_bufptr (PERL_GET_INTERP->Ibufptr) #define PL_checkav (PERL_GET_INTERP->Icheckav) #define PL_checkav_save (PERL_GET_INTERP->Icheckav_save) #define PL_clocktick (PERL_GET_INTERP->Iclocktick) #define PL_collation_ix (PERL_GET_INTERP->Icollation_ix) #define PL_collation_name (PERL_GET_INTERP->Icollation_name) #define PL_collation_standard (PERL_GET_INTERP->Icollation_standard) #define PL_collxfrm_base (PERL_GET_INTERP->Icollxfrm_base) #define PL_collxfrm_mult (PERL_GET_INTERP->Icollxfrm_mult) #define PL_compcv (PERL_GET_INTERP->Icompcv) #define PL_compiling (PERL_GET_INTERP->Icompiling) #define PL_comppad_name (PERL_GET_INTERP->Icomppad_name) #define PL_comppad_name_fill (PERL_GET_INTERP->Icomppad_name_fill) #define PL_comppad_name_floor (PERL_GET_INTERP->Icomppad_name_floor) #define PL_cop_seqmax (PERL_GET_INTERP->Icop_seqmax) #define PL_copline (PERL_GET_INTERP->Icopline) #define PL_cred_mutex (PERL_GET_INTERP->Icred_mutex) #define PL_cryptseen (PERL_GET_INTERP->Icryptseen) #define PL_cshlen (PERL_GET_INTERP->Icshlen) #define PL_cshname (PERL_GET_INTERP->Icshname) #define PL_curcopdb (PERL_GET_INTERP->Icurcopdb) #define PL_curstname (PERL_GET_INTERP->Icurstname) #define PL_curthr (PERL_GET_INTERP->Icurthr) #define PL_custom_op_descs (PERL_GET_INTERP->Icustom_op_descs) #define PL_custom_op_names (PERL_GET_INTERP->Icustom_op_names) #define PL_dbargs (PERL_GET_INTERP->Idbargs) #define PL_debstash (PERL_GET_INTERP->Idebstash) #define PL_debug (PERL_GET_INTERP->Idebug) #define PL_debug_pad (PERL_GET_INTERP->Idebug_pad) #define PL_def_layerlist (PERL_GET_INTERP->Idef_layerlist) #define PL_defgv (PERL_GET_INTERP->Idefgv) #define PL_diehook (PERL_GET_INTERP->Idiehook) #define PL_doextract (PERL_GET_INTERP->Idoextract) #define PL_doswitches (PERL_GET_INTERP->Idoswitches) #define PL_dowarn (PERL_GET_INTERP->Idowarn) #define PL_e_script (PERL_GET_INTERP->Ie_script) #define PL_egid (PERL_GET_INTERP->Iegid) #define PL_encoding (PERL_GET_INTERP->Iencoding) #define PL_endav (PERL_GET_INTERP->Iendav) #define PL_envgv (PERL_GET_INTERP->Ienvgv) #define PL_errgv (PERL_GET_INTERP->Ierrgv) #define PL_error_count (PERL_GET_INTERP->Ierror_count) #define PL_euid (PERL_GET_INTERP->Ieuid) #define PL_eval_cond (PERL_GET_INTERP->Ieval_cond) #define PL_eval_mutex (PERL_GET_INTERP->Ieval_mutex) #define PL_eval_owner (PERL_GET_INTERP->Ieval_owner) #define PL_eval_root (PERL_GET_INTERP->Ieval_root) #define PL_eval_start (PERL_GET_INTERP->Ieval_start) #define PL_evalseq (PERL_GET_INTERP->Ievalseq) #define PL_exit_flags (PERL_GET_INTERP->Iexit_flags) #define PL_exitlist (PERL_GET_INTERP->Iexitlist) #define PL_exitlistlen (PERL_GET_INTERP->Iexitlistlen) #define PL_expect (PERL_GET_INTERP->Iexpect) #define PL_fdpid (PERL_GET_INTERP->Ifdpid) #define PL_fdpid_mutex (PERL_GET_INTERP->Ifdpid_mutex) #define PL_fdscript (PERL_GET_INTERP->Ifdscript) #define PL_filemode (PERL_GET_INTERP->Ifilemode) #define PL_forkprocess (PERL_GET_INTERP->Iforkprocess) #define PL_formfeed (PERL_GET_INTERP->Iformfeed) #define PL_generation (PERL_GET_INTERP->Igeneration) #define PL_gensym (PERL_GET_INTERP->Igensym) #define PL_gid (PERL_GET_INTERP->Igid) #define PL_glob_index (PERL_GET_INTERP->Iglob_index) #define PL_globalstash (PERL_GET_INTERP->Iglobalstash) #define PL_hash_seed (PERL_GET_INTERP->Ihash_seed) #define PL_hash_seed_set (PERL_GET_INTERP->Ihash_seed_set) #define PL_he_arenaroot (PERL_GET_INTERP->Ihe_arenaroot) #define PL_he_root (PERL_GET_INTERP->Ihe_root) #define PL_hintgv (PERL_GET_INTERP->Ihintgv) #define PL_hints (PERL_GET_INTERP->Ihints) #define PL_in_clean_all (PERL_GET_INTERP->Iin_clean_all) #define PL_in_clean_objs (PERL_GET_INTERP->Iin_clean_objs) #define PL_in_load_module (PERL_GET_INTERP->Iin_load_module) #define PL_in_my (PERL_GET_INTERP->Iin_my) #define PL_in_my_stash (PERL_GET_INTERP->Iin_my_stash) #define PL_incgv (PERL_GET_INTERP->Iincgv) #define PL_initav (PERL_GET_INTERP->Iinitav) #define PL_inplace (PERL_GET_INTERP->Iinplace) #define PL_known_layers (PERL_GET_INTERP->Iknown_layers) #define PL_last_lop (PERL_GET_INTERP->Ilast_lop) #define PL_last_lop_op (PERL_GET_INTERP->Ilast_lop_op) #define PL_last_swash_hv (PERL_GET_INTERP->Ilast_swash_hv) #define PL_last_swash_key (PERL_GET_INTERP->Ilast_swash_key) #define PL_last_swash_klen (PERL_GET_INTERP->Ilast_swash_klen) #define PL_last_swash_slen (PERL_GET_INTERP->Ilast_swash_slen) #define PL_last_swash_tmps (PERL_GET_INTERP->Ilast_swash_tmps) #define PL_last_uni (PERL_GET_INTERP->Ilast_uni) #define PL_lastfd (PERL_GET_INTERP->Ilastfd) #define PL_laststatval (PERL_GET_INTERP->Ilaststatval) #define PL_laststype (PERL_GET_INTERP->Ilaststype) #define PL_lex_brackets (PERL_GET_INTERP->Ilex_brackets) #define PL_lex_brackstack (PERL_GET_INTERP->Ilex_brackstack) #define PL_lex_casemods (PERL_GET_INTERP->Ilex_casemods) #define PL_lex_casestack (PERL_GET_INTERP->Ilex_casestack) #define PL_lex_defer (PERL_GET_INTERP->Ilex_defer) #define PL_lex_dojoin (PERL_GET_INTERP->Ilex_dojoin) #define PL_lex_expect (PERL_GET_INTERP->Ilex_expect) #define PL_lex_formbrack (PERL_GET_INTERP->Ilex_formbrack) #define PL_lex_inpat (PERL_GET_INTERP->Ilex_inpat) #define PL_lex_inwhat (PERL_GET_INTERP->Ilex_inwhat) #define PL_lex_op (PERL_GET_INTERP->Ilex_op) #define PL_lex_repl (PERL_GET_INTERP->Ilex_repl) #define PL_lex_starts (PERL_GET_INTERP->Ilex_starts) #define PL_lex_state (PERL_GET_INTERP->Ilex_state) #define PL_lex_stuff (PERL_GET_INTERP->Ilex_stuff) #define PL_lineary (PERL_GET_INTERP->Ilineary) #define PL_linestart (PERL_GET_INTERP->Ilinestart) #define PL_linestr (PERL_GET_INTERP->Ilinestr) #define PL_localpatches (PERL_GET_INTERP->Ilocalpatches) #define PL_lockhook (PERL_GET_INTERP->Ilockhook) #define PL_main_cv (PERL_GET_INTERP->Imain_cv) #define PL_main_root (PERL_GET_INTERP->Imain_root) #define PL_main_start (PERL_GET_INTERP->Imain_start) #define PL_max_intro_pending (PERL_GET_INTERP->Imax_intro_pending) #define PL_maxo (PERL_GET_INTERP->Imaxo) #define PL_maxsysfd (PERL_GET_INTERP->Imaxsysfd) #define PL_mess_sv (PERL_GET_INTERP->Imess_sv) #define PL_min_intro_pending (PERL_GET_INTERP->Imin_intro_pending) #define PL_minus_F (PERL_GET_INTERP->Iminus_F) #define PL_minus_a (PERL_GET_INTERP->Iminus_a) #define PL_minus_c (PERL_GET_INTERP->Iminus_c) #define PL_minus_l (PERL_GET_INTERP->Iminus_l) #define PL_minus_n (PERL_GET_INTERP->Iminus_n) #define PL_minus_p (PERL_GET_INTERP->Iminus_p) #define PL_modglobal (PERL_GET_INTERP->Imodglobal) #define PL_multi_close (PERL_GET_INTERP->Imulti_close) #define PL_multi_end (PERL_GET_INTERP->Imulti_end) #define PL_multi_open (PERL_GET_INTERP->Imulti_open) #define PL_multi_start (PERL_GET_INTERP->Imulti_start) #define PL_multiline (PERL_GET_INTERP->Imultiline) #define PL_nexttoke (PERL_GET_INTERP->Inexttoke) #define PL_nexttype (PERL_GET_INTERP->Inexttype) #define PL_nextval (PERL_GET_INTERP->Inextval) #define PL_nice_chunk (PERL_GET_INTERP->Inice_chunk) #define PL_nice_chunk_size (PERL_GET_INTERP->Inice_chunk_size) #define PL_nomemok (PERL_GET_INTERP->Inomemok) #define PL_nthreads (PERL_GET_INTERP->Inthreads) #define PL_nthreads_cond (PERL_GET_INTERP->Inthreads_cond) #define PL_nullstash (PERL_GET_INTERP->Inullstash) #define PL_numeric_compat1 (PERL_GET_INTERP->Inumeric_compat1) #define PL_numeric_local (PERL_GET_INTERP->Inumeric_local) #define PL_numeric_name (PERL_GET_INTERP->Inumeric_name) #define PL_numeric_radix_sv (PERL_GET_INTERP->Inumeric_radix_sv) #define PL_numeric_standard (PERL_GET_INTERP->Inumeric_standard) #define PL_ofmt (PERL_GET_INTERP->Iofmt) #define PL_oldbufptr (PERL_GET_INTERP->Ioldbufptr) #define PL_oldname (PERL_GET_INTERP->Ioldname) #define PL_oldoldbufptr (PERL_GET_INTERP->Ioldoldbufptr) #define PL_op_mask (PERL_GET_INTERP->Iop_mask) #define PL_op_seqmax (PERL_GET_INTERP->Iop_seqmax) #define PL_origalen (PERL_GET_INTERP->Iorigalen) #define PL_origargc (PERL_GET_INTERP->Iorigargc) #define PL_origargv (PERL_GET_INTERP->Iorigargv) #define PL_origenviron (PERL_GET_INTERP->Iorigenviron) #define PL_origfilename (PERL_GET_INTERP->Iorigfilename) #define PL_ors_sv (PERL_GET_INTERP->Iors_sv) #define PL_osname (PERL_GET_INTERP->Iosname) #define PL_pad_reset_pending (PERL_GET_INTERP->Ipad_reset_pending) #define PL_padix (PERL_GET_INTERP->Ipadix) #define PL_padix_floor (PERL_GET_INTERP->Ipadix_floor) #define PL_patchlevel (PERL_GET_INTERP->Ipatchlevel) #define PL_pending_ident (PERL_GET_INTERP->Ipending_ident) #define PL_perl_destruct_level (PERL_GET_INTERP->Iperl_destruct_level) #define PL_perldb (PERL_GET_INTERP->Iperldb) #define PL_perlio (PERL_GET_INTERP->Iperlio) #define PL_pidstatus (PERL_GET_INTERP->Ipidstatus) #define PL_ppid (PERL_GET_INTERP->Ippid) #define PL_preambleav (PERL_GET_INTERP->Ipreambleav) #define PL_preambled (PERL_GET_INTERP->Ipreambled) #define PL_preprocess (PERL_GET_INTERP->Ipreprocess) #define PL_profiledata (PERL_GET_INTERP->Iprofiledata) #define PL_psig_name (PERL_GET_INTERP->Ipsig_name) #define PL_psig_pend (PERL_GET_INTERP->Ipsig_pend) #define PL_psig_ptr (PERL_GET_INTERP->Ipsig_ptr) #define PL_pte_arenaroot (PERL_GET_INTERP->Ipte_arenaroot) #define PL_pte_root (PERL_GET_INTERP->Ipte_root) #define PL_ptr_table (PERL_GET_INTERP->Iptr_table) #define PL_reentrant_buffer (PERL_GET_INTERP->Ireentrant_buffer) #define PL_reentrant_retint (PERL_GET_INTERP->Ireentrant_retint) #define PL_regex_pad (PERL_GET_INTERP->Iregex_pad) #define PL_regex_padav (PERL_GET_INTERP->Iregex_padav) #define PL_rehash_seed (PERL_GET_INTERP->Irehash_seed) #define PL_rehash_seed_set (PERL_GET_INTERP->Irehash_seed_set) #define PL_replgv (PERL_GET_INTERP->Ireplgv) #define PL_rsfp (PERL_GET_INTERP->Irsfp) #define PL_rsfp_filters (PERL_GET_INTERP->Irsfp_filters) #define PL_runops (PERL_GET_INTERP->Irunops) #define PL_runops_dbg (PERL_GET_INTERP->Irunops_dbg) #define PL_runops_std (PERL_GET_INTERP->Irunops_std) #define PL_savebegin (PERL_GET_INTERP->Isavebegin) #define PL_sawampersand (PERL_GET_INTERP->Isawampersand) #define PL_sh_path_compat (PERL_GET_INTERP->Ish_path_compat) #define PL_sharehook (PERL_GET_INTERP->Isharehook) #define PL_sig_pending (PERL_GET_INTERP->Isig_pending) #define PL_sighandlerp (PERL_GET_INTERP->Isighandlerp) #define PL_signals (PERL_GET_INTERP->Isignals) #define PL_sort_RealCmp (PERL_GET_INTERP->Isort_RealCmp) #define PL_splitstr (PERL_GET_INTERP->Isplitstr) #define PL_srand_called (PERL_GET_INTERP->Isrand_called) #define PL_stashcache (PERL_GET_INTERP->Istashcache) #define PL_statusvalue (PERL_GET_INTERP->Istatusvalue) #define PL_statusvalue_vms (PERL_GET_INTERP->Istatusvalue_vms) #define PL_stderrgv (PERL_GET_INTERP->Istderrgv) #define PL_stdingv (PERL_GET_INTERP->Istdingv) #define PL_strtab (PERL_GET_INTERP->Istrtab) #define PL_strtab_mutex (PERL_GET_INTERP->Istrtab_mutex) #define PL_sub_generation (PERL_GET_INTERP->Isub_generation) #define PL_sublex_info (PERL_GET_INTERP->Isublex_info) #define PL_subline (PERL_GET_INTERP->Isubline) #define PL_subname (PERL_GET_INTERP->Isubname) #define PL_suidscript (PERL_GET_INTERP->Isuidscript) #define PL_sv_arenaroot (PERL_GET_INTERP->Isv_arenaroot) #define PL_sv_count (PERL_GET_INTERP->Isv_count) #define PL_sv_lock_mutex (PERL_GET_INTERP->Isv_lock_mutex) #define PL_sv_mutex (PERL_GET_INTERP->Isv_mutex) #define PL_sv_no (PERL_GET_INTERP->Isv_no) #define PL_sv_objcount (PERL_GET_INTERP->Isv_objcount) #define PL_sv_root (PERL_GET_INTERP->Isv_root) #define PL_sv_undef (PERL_GET_INTERP->Isv_undef) #define PL_sv_yes (PERL_GET_INTERP->Isv_yes) #define PL_svref_mutex (PERL_GET_INTERP->Isvref_mutex) #define PL_sys_intern (PERL_GET_INTERP->Isys_intern) #define PL_taint_warn (PERL_GET_INTERP->Itaint_warn) #define PL_tainting (PERL_GET_INTERP->Itainting) #define PL_threadhook (PERL_GET_INTERP->Ithreadhook) #define PL_threadnum (PERL_GET_INTERP->Ithreadnum) #define PL_threads_mutex (PERL_GET_INTERP->Ithreads_mutex) #define PL_threadsv_names (PERL_GET_INTERP->Ithreadsv_names) #define PL_thrsv (PERL_GET_INTERP->Ithrsv) #define PL_tokenbuf (PERL_GET_INTERP->Itokenbuf) #define PL_uid (PERL_GET_INTERP->Iuid) #define PL_unicode (PERL_GET_INTERP->Iunicode) #define PL_unlockhook (PERL_GET_INTERP->Iunlockhook) #define PL_unsafe (PERL_GET_INTERP->Iunsafe) #define PL_utf8_alnum (PERL_GET_INTERP->Iutf8_alnum) #define PL_utf8_alnumc (PERL_GET_INTERP->Iutf8_alnumc) #define PL_utf8_alpha (PERL_GET_INTERP->Iutf8_alpha) #define PL_utf8_ascii (PERL_GET_INTERP->Iutf8_ascii) #define PL_utf8_cntrl (PERL_GET_INTERP->Iutf8_cntrl) #define PL_utf8_digit (PERL_GET_INTERP->Iutf8_digit) #define PL_utf8_graph (PERL_GET_INTERP->Iutf8_graph) #define PL_utf8_idcont (PERL_GET_INTERP->Iutf8_idcont) #define PL_utf8_idstart (PERL_GET_INTERP->Iutf8_idstart) #define PL_utf8_lower (PERL_GET_INTERP->Iutf8_lower) #define PL_utf8_mark (PERL_GET_INTERP->Iutf8_mark) #define PL_utf8_print (PERL_GET_INTERP->Iutf8_print) #define PL_utf8_punct (PERL_GET_INTERP->Iutf8_punct) #define PL_utf8_space (PERL_GET_INTERP->Iutf8_space) #define PL_utf8_tofold (PERL_GET_INTERP->Iutf8_tofold) #define PL_utf8_tolower (PERL_GET_INTERP->Iutf8_tolower) #define PL_utf8_totitle (PERL_GET_INTERP->Iutf8_totitle) #define PL_utf8_toupper (PERL_GET_INTERP->Iutf8_toupper) #define PL_utf8_upper (PERL_GET_INTERP->Iutf8_upper) #define PL_utf8_xdigit (PERL_GET_INTERP->Iutf8_xdigit) #define PL_utf8locale (PERL_GET_INTERP->Iutf8locale) #define PL_uudmap (PERL_GET_INTERP->Iuudmap) #define PL_warnhook (PERL_GET_INTERP->Iwarnhook) #define PL_widesyscalls (PERL_GET_INTERP->Iwidesyscalls) #define PL_xiv_arenaroot (PERL_GET_INTERP->Ixiv_arenaroot) #define PL_xiv_root (PERL_GET_INTERP->Ixiv_root) #define PL_xnv_arenaroot (PERL_GET_INTERP->Ixnv_arenaroot) #define PL_xnv_root (PERL_GET_INTERP->Ixnv_root) #define PL_xpv_arenaroot (PERL_GET_INTERP->Ixpv_arenaroot) #define PL_xpv_root (PERL_GET_INTERP->Ixpv_root) #define PL_xpvav_arenaroot (PERL_GET_INTERP->Ixpvav_arenaroot) #define PL_xpvav_root (PERL_GET_INTERP->Ixpvav_root) #define PL_xpvbm_arenaroot (PERL_GET_INTERP->Ixpvbm_arenaroot) #define PL_xpvbm_root (PERL_GET_INTERP->Ixpvbm_root) #define PL_xpvcv_arenaroot (PERL_GET_INTERP->Ixpvcv_arenaroot) #define PL_xpvcv_root (PERL_GET_INTERP->Ixpvcv_root) #define PL_xpvhv_arenaroot (PERL_GET_INTERP->Ixpvhv_arenaroot) #define PL_xpvhv_root (PERL_GET_INTERP->Ixpvhv_root) #define PL_xpviv_arenaroot (PERL_GET_INTERP->Ixpviv_arenaroot) #define PL_xpviv_root (PERL_GET_INTERP->Ixpviv_root) #define PL_xpvlv_arenaroot (PERL_GET_INTERP->Ixpvlv_arenaroot) #define PL_xpvlv_root (PERL_GET_INTERP->Ixpvlv_root) #define PL_xpvmg_arenaroot (PERL_GET_INTERP->Ixpvmg_arenaroot) #define PL_xpvmg_root (PERL_GET_INTERP->Ixpvmg_root) #define PL_xpvnv_arenaroot (PERL_GET_INTERP->Ixpvnv_arenaroot) #define PL_xpvnv_root (PERL_GET_INTERP->Ixpvnv_root) #define PL_xrv_arenaroot (PERL_GET_INTERP->Ixrv_arenaroot) #define PL_xrv_root (PERL_GET_INTERP->Ixrv_root) #define PL_yychar (PERL_GET_INTERP->Iyychar) #define PL_yydebug (PERL_GET_INTERP->Iyydebug) #define PL_yyerrflag (PERL_GET_INTERP->Iyyerrflag) #define PL_yylval (PERL_GET_INTERP->Iyylval) #define PL_yynerrs (PERL_GET_INTERP->Iyynerrs) #define PL_yyval (PERL_GET_INTERP->Iyyval) # else /* !USE_5005THREADS */ /* cases 2 and 3 above */ #define PL_Argv (vTHX->IArgv) #define PL_BINCOMPAT0 (vTHX->IBINCOMPAT0) #define PL_Cmd (vTHX->ICmd) #define PL_DBcv (vTHX->IDBcv) #define PL_DBgv (vTHX->IDBgv) #define PL_DBline (vTHX->IDBline) #define PL_DBsignal (vTHX->IDBsignal) #define PL_DBsingle (vTHX->IDBsingle) #define PL_DBsub (vTHX->IDBsub) #define PL_DBtrace (vTHX->IDBtrace) #define PL_Dir (vTHX->IDir) #define PL_Env (vTHX->IEnv) #define PL_LIO (vTHX->ILIO) #define PL_Mem (vTHX->IMem) #define PL_MemParse (vTHX->IMemParse) #define PL_MemShared (vTHX->IMemShared) #define PL_OpPtr (vTHX->IOpPtr) #define PL_OpSlab (vTHX->IOpSlab) #define PL_OpSpace (vTHX->IOpSpace) #define PL_Proc (vTHX->IProc) #define PL_Sock (vTHX->ISock) #define PL_StdIO (vTHX->IStdIO) #define PL_amagic_generation (vTHX->Iamagic_generation) #define PL_an (vTHX->Ian) #define PL_argvgv (vTHX->Iargvgv) #define PL_argvout_stack (vTHX->Iargvout_stack) #define PL_argvoutgv (vTHX->Iargvoutgv) #define PL_basetime (vTHX->Ibasetime) #define PL_beginav (vTHX->Ibeginav) #define PL_beginav_save (vTHX->Ibeginav_save) #define PL_bitcount (vTHX->Ibitcount) #define PL_bufend (vTHX->Ibufend) #define PL_bufptr (vTHX->Ibufptr) #define PL_checkav (vTHX->Icheckav) #define PL_checkav_save (vTHX->Icheckav_save) #define PL_clocktick (vTHX->Iclocktick) #define PL_collation_ix (vTHX->Icollation_ix) #define PL_collation_name (vTHX->Icollation_name) #define PL_collation_standard (vTHX->Icollation_standard) #define PL_collxfrm_base (vTHX->Icollxfrm_base) #define PL_collxfrm_mult (vTHX->Icollxfrm_mult) #define PL_compcv (vTHX->Icompcv) #define PL_compiling (vTHX->Icompiling) #define PL_comppad_name (vTHX->Icomppad_name) #define PL_comppad_name_fill (vTHX->Icomppad_name_fill) #define PL_comppad_name_floor (vTHX->Icomppad_name_floor) #define PL_cop_seqmax (vTHX->Icop_seqmax) #define PL_copline (vTHX->Icopline) #define PL_cred_mutex (vTHX->Icred_mutex) #define PL_cryptseen (vTHX->Icryptseen) #define PL_cshlen (vTHX->Icshlen) #define PL_cshname (vTHX->Icshname) #define PL_curcopdb (vTHX->Icurcopdb) #define PL_curstname (vTHX->Icurstname) #define PL_curthr (vTHX->Icurthr) #define PL_custom_op_descs (vTHX->Icustom_op_descs) #define PL_custom_op_names (vTHX->Icustom_op_names) #define PL_dbargs (vTHX->Idbargs) #define PL_debstash (vTHX->Idebstash) #define PL_debug (vTHX->Idebug) #define PL_debug_pad (vTHX->Idebug_pad) #define PL_def_layerlist (vTHX->Idef_layerlist) #define PL_defgv (vTHX->Idefgv) #define PL_diehook (vTHX->Idiehook) #define PL_doextract (vTHX->Idoextract) #define PL_doswitches (vTHX->Idoswitches) #define PL_dowarn (vTHX->Idowarn) #define PL_e_script (vTHX->Ie_script) #define PL_egid (vTHX->Iegid) #define PL_encoding (vTHX->Iencoding) #define PL_endav (vTHX->Iendav) #define PL_envgv (vTHX->Ienvgv) #define PL_errgv (vTHX->Ierrgv) #define PL_error_count (vTHX->Ierror_count) #define PL_euid (vTHX->Ieuid) #define PL_eval_cond (vTHX->Ieval_cond) #define PL_eval_mutex (vTHX->Ieval_mutex) #define PL_eval_owner (vTHX->Ieval_owner) #define PL_eval_root (vTHX->Ieval_root) #define PL_eval_start (vTHX->Ieval_start) #define PL_evalseq (vTHX->Ievalseq) #define PL_exit_flags (vTHX->Iexit_flags) #define PL_exitlist (vTHX->Iexitlist) #define PL_exitlistlen (vTHX->Iexitlistlen) #define PL_expect (vTHX->Iexpect) #define PL_fdpid (vTHX->Ifdpid) #define PL_fdpid_mutex (vTHX->Ifdpid_mutex) #define PL_fdscript (vTHX->Ifdscript) #define PL_filemode (vTHX->Ifilemode) #define PL_forkprocess (vTHX->Iforkprocess) #define PL_formfeed (vTHX->Iformfeed) #define PL_generation (vTHX->Igeneration) #define PL_gensym (vTHX->Igensym) #define PL_gid (vTHX->Igid) #define PL_glob_index (vTHX->Iglob_index) #define PL_globalstash (vTHX->Iglobalstash) #define PL_hash_seed (vTHX->Ihash_seed) #define PL_hash_seed_set (vTHX->Ihash_seed_set) #define PL_he_arenaroot (vTHX->Ihe_arenaroot) #define PL_he_root (vTHX->Ihe_root) #define PL_hintgv (vTHX->Ihintgv) #define PL_hints (vTHX->Ihints) #define PL_in_clean_all (vTHX->Iin_clean_all) #define PL_in_clean_objs (vTHX->Iin_clean_objs) #define PL_in_load_module (vTHX->Iin_load_module) #define PL_in_my (vTHX->Iin_my) #define PL_in_my_stash (vTHX->Iin_my_stash) #define PL_incgv (vTHX->Iincgv) #define PL_initav (vTHX->Iinitav) #define PL_inplace (vTHX->Iinplace) #define PL_known_layers (vTHX->Iknown_layers) #define PL_last_lop (vTHX->Ilast_lop) #define PL_last_lop_op (vTHX->Ilast_lop_op) #define PL_last_swash_hv (vTHX->Ilast_swash_hv) #define PL_last_swash_key (vTHX->Ilast_swash_key) #define PL_last_swash_klen (vTHX->Ilast_swash_klen) #define PL_last_swash_slen (vTHX->Ilast_swash_slen) #define PL_last_swash_tmps (vTHX->Ilast_swash_tmps) #define PL_last_uni (vTHX->Ilast_uni) #define PL_lastfd (vTHX->Ilastfd) #define PL_laststatval (vTHX->Ilaststatval) #define PL_laststype (vTHX->Ilaststype) #define PL_lex_brackets (vTHX->Ilex_brackets) #define PL_lex_brackstack (vTHX->Ilex_brackstack) #define PL_lex_casemods (vTHX->Ilex_casemods) #define PL_lex_casestack (vTHX->Ilex_casestack) #define PL_lex_defer (vTHX->Ilex_defer) #define PL_lex_dojoin (vTHX->Ilex_dojoin) #define PL_lex_expect (vTHX->Ilex_expect) #define PL_lex_formbrack (vTHX->Ilex_formbrack) #define PL_lex_inpat (vTHX->Ilex_inpat) #define PL_lex_inwhat (vTHX->Ilex_inwhat) #define PL_lex_op (vTHX->Ilex_op) #define PL_lex_repl (vTHX->Ilex_repl) #define PL_lex_starts (vTHX->Ilex_starts) #define PL_lex_state (vTHX->Ilex_state) #define PL_lex_stuff (vTHX->Ilex_stuff) #define PL_lineary (vTHX->Ilineary) #define PL_linestart (vTHX->Ilinestart) #define PL_linestr (vTHX->Ilinestr) #define PL_localpatches (vTHX->Ilocalpatches) #define PL_lockhook (vTHX->Ilockhook) #define PL_main_cv (vTHX->Imain_cv) #define PL_main_root (vTHX->Imain_root) #define PL_main_start (vTHX->Imain_start) #define PL_max_intro_pending (vTHX->Imax_intro_pending) #define PL_maxo (vTHX->Imaxo) #define PL_maxsysfd (vTHX->Imaxsysfd) #define PL_mess_sv (vTHX->Imess_sv) #define PL_min_intro_pending (vTHX->Imin_intro_pending) #define PL_minus_F (vTHX->Iminus_F) #define PL_minus_a (vTHX->Iminus_a) #define PL_minus_c (vTHX->Iminus_c) #define PL_minus_l (vTHX->Iminus_l) #define PL_minus_n (vTHX->Iminus_n) #define PL_minus_p (vTHX->Iminus_p) #define PL_modglobal (vTHX->Imodglobal) #define PL_multi_close (vTHX->Imulti_close) #define PL_multi_end (vTHX->Imulti_end) #define PL_multi_open (vTHX->Imulti_open) #define PL_multi_start (vTHX->Imulti_start) #define PL_multiline (vTHX->Imultiline) #define PL_nexttoke (vTHX->Inexttoke) #define PL_nexttype (vTHX->Inexttype) #define PL_nextval (vTHX->Inextval) #define PL_nice_chunk (vTHX->Inice_chunk) #define PL_nice_chunk_size (vTHX->Inice_chunk_size) #define PL_nomemok (vTHX->Inomemok) #define PL_nthreads (vTHX->Inthreads) #define PL_nthreads_cond (vTHX->Inthreads_cond) #define PL_nullstash (vTHX->Inullstash) #define PL_numeric_compat1 (vTHX->Inumeric_compat1) #define PL_numeric_local (vTHX->Inumeric_local) #define PL_numeric_name (vTHX->Inumeric_name) #define PL_numeric_radix_sv (vTHX->Inumeric_radix_sv) #define PL_numeric_standard (vTHX->Inumeric_standard) #define PL_ofmt (vTHX->Iofmt) #define PL_oldbufptr (vTHX->Ioldbufptr) #define PL_oldname (vTHX->Ioldname) #define PL_oldoldbufptr (vTHX->Ioldoldbufptr) #define PL_op_mask (vTHX->Iop_mask) #define PL_op_seqmax (vTHX->Iop_seqmax) #define PL_origalen (vTHX->Iorigalen) #define PL_origargc (vTHX->Iorigargc) #define PL_origargv (vTHX->Iorigargv) #define PL_origenviron (vTHX->Iorigenviron) #define PL_origfilename (vTHX->Iorigfilename) #define PL_ors_sv (vTHX->Iors_sv) #define PL_osname (vTHX->Iosname) #define PL_pad_reset_pending (vTHX->Ipad_reset_pending) #define PL_padix (vTHX->Ipadix) #define PL_padix_floor (vTHX->Ipadix_floor) #define PL_patchlevel (vTHX->Ipatchlevel) #define PL_pending_ident (vTHX->Ipending_ident) #define PL_perl_destruct_level (vTHX->Iperl_destruct_level) #define PL_perldb (vTHX->Iperldb) #define PL_perlio (vTHX->Iperlio) #define PL_pidstatus (vTHX->Ipidstatus) #define PL_ppid (vTHX->Ippid) #define PL_preambleav (vTHX->Ipreambleav) #define PL_preambled (vTHX->Ipreambled) #define PL_preprocess (vTHX->Ipreprocess) #define PL_profiledata (vTHX->Iprofiledata) #define PL_psig_name (vTHX->Ipsig_name) #define PL_psig_pend (vTHX->Ipsig_pend) #define PL_psig_ptr (vTHX->Ipsig_ptr) #define PL_pte_arenaroot (vTHX->Ipte_arenaroot) #define PL_pte_root (vTHX->Ipte_root) #define PL_ptr_table (vTHX->Iptr_table) #define PL_reentrant_buffer (vTHX->Ireentrant_buffer) #define PL_reentrant_retint (vTHX->Ireentrant_retint) #define PL_regex_pad (vTHX->Iregex_pad) #define PL_regex_padav (vTHX->Iregex_padav) #define PL_rehash_seed (vTHX->Irehash_seed) #define PL_rehash_seed_set (vTHX->Irehash_seed_set) #define PL_replgv (vTHX->Ireplgv) #define PL_rsfp (vTHX->Irsfp) #define PL_rsfp_filters (vTHX->Irsfp_filters) #define PL_runops (vTHX->Irunops) #define PL_runops_dbg (vTHX->Irunops_dbg) #define PL_runops_std (vTHX->Irunops_std) #define PL_savebegin (vTHX->Isavebegin) #define PL_sawampersand (vTHX->Isawampersand) #define PL_sh_path_compat (vTHX->Ish_path_compat) #define PL_sharehook (vTHX->Isharehook) #define PL_sig_pending (vTHX->Isig_pending) #define PL_sighandlerp (vTHX->Isighandlerp) #define PL_signals (vTHX->Isignals) #define PL_sort_RealCmp (vTHX->Isort_RealCmp) #define PL_splitstr (vTHX->Isplitstr) #define PL_srand_called (vTHX->Isrand_called) #define PL_stashcache (vTHX->Istashcache) #define PL_statusvalue (vTHX->Istatusvalue) #define PL_statusvalue_vms (vTHX->Istatusvalue_vms) #define PL_stderrgv (vTHX->Istderrgv) #define PL_stdingv (vTHX->Istdingv) #define PL_strtab (vTHX->Istrtab) #define PL_strtab_mutex (vTHX->Istrtab_mutex) #define PL_sub_generation (vTHX->Isub_generation) #define PL_sublex_info (vTHX->Isublex_info) #define PL_subline (vTHX->Isubline) #define PL_subname (vTHX->Isubname) #define PL_suidscript (vTHX->Isuidscript) #define PL_sv_arenaroot (vTHX->Isv_arenaroot) #define PL_sv_count (vTHX->Isv_count) #define PL_sv_lock_mutex (vTHX->Isv_lock_mutex) #define PL_sv_mutex (vTHX->Isv_mutex) #define PL_sv_no (vTHX->Isv_no) #define PL_sv_objcount (vTHX->Isv_objcount) #define PL_sv_root (vTHX->Isv_root) #define PL_sv_undef (vTHX->Isv_undef) #define PL_sv_yes (vTHX->Isv_yes) #define PL_svref_mutex (vTHX->Isvref_mutex) #define PL_sys_intern (vTHX->Isys_intern) #define PL_taint_warn (vTHX->Itaint_warn) #define PL_tainting (vTHX->Itainting) #define PL_threadhook (vTHX->Ithreadhook) #define PL_threadnum (vTHX->Ithreadnum) #define PL_threads_mutex (vTHX->Ithreads_mutex) #define PL_threadsv_names (vTHX->Ithreadsv_names) #define PL_thrsv (vTHX->Ithrsv) #define PL_tokenbuf (vTHX->Itokenbuf) #define PL_uid (vTHX->Iuid) #define PL_unicode (vTHX->Iunicode) #define PL_unlockhook (vTHX->Iunlockhook) #define PL_unsafe (vTHX->Iunsafe) #define PL_utf8_alnum (vTHX->Iutf8_alnum) #define PL_utf8_alnumc (vTHX->Iutf8_alnumc) #define PL_utf8_alpha (vTHX->Iutf8_alpha) #define PL_utf8_ascii (vTHX->Iutf8_ascii) #define PL_utf8_cntrl (vTHX->Iutf8_cntrl) #define PL_utf8_digit (vTHX->Iutf8_digit) #define PL_utf8_graph (vTHX->Iutf8_graph) #define PL_utf8_idcont (vTHX->Iutf8_idcont) #define PL_utf8_idstart (vTHX->Iutf8_idstart) #define PL_utf8_lower (vTHX->Iutf8_lower) #define PL_utf8_mark (vTHX->Iutf8_mark) #define PL_utf8_print (vTHX->Iutf8_print) #define PL_utf8_punct (vTHX->Iutf8_punct) #define PL_utf8_space (vTHX->Iutf8_space) #define PL_utf8_tofold (vTHX->Iutf8_tofold) #define PL_utf8_tolower (vTHX->Iutf8_tolower) #define PL_utf8_totitle (vTHX->Iutf8_totitle) #define PL_utf8_toupper (vTHX->Iutf8_toupper) #define PL_utf8_upper (vTHX->Iutf8_upper) #define PL_utf8_xdigit (vTHX->Iutf8_xdigit) #define PL_utf8locale (vTHX->Iutf8locale) #define PL_uudmap (vTHX->Iuudmap) #define PL_warnhook (vTHX->Iwarnhook) #define PL_widesyscalls (vTHX->Iwidesyscalls) #define PL_xiv_arenaroot (vTHX->Ixiv_arenaroot) #define PL_xiv_root (vTHX->Ixiv_root) #define PL_xnv_arenaroot (vTHX->Ixnv_arenaroot) #define PL_xnv_root (vTHX->Ixnv_root) #define PL_xpv_arenaroot (vTHX->Ixpv_arenaroot) #define PL_xpv_root (vTHX->Ixpv_root) #define PL_xpvav_arenaroot (vTHX->Ixpvav_arenaroot) #define PL_xpvav_root (vTHX->Ixpvav_root) #define PL_xpvbm_arenaroot (vTHX->Ixpvbm_arenaroot) #define PL_xpvbm_root (vTHX->Ixpvbm_root) #define PL_xpvcv_arenaroot (vTHX->Ixpvcv_arenaroot) #define PL_xpvcv_root (vTHX->Ixpvcv_root) #define PL_xpvhv_arenaroot (vTHX->Ixpvhv_arenaroot) #define PL_xpvhv_root (vTHX->Ixpvhv_root) #define PL_xpviv_arenaroot (vTHX->Ixpviv_arenaroot) #define PL_xpviv_root (vTHX->Ixpviv_root) #define PL_xpvlv_arenaroot (vTHX->Ixpvlv_arenaroot) #define PL_xpvlv_root (vTHX->Ixpvlv_root) #define PL_xpvmg_arenaroot (vTHX->Ixpvmg_arenaroot) #define PL_xpvmg_root (vTHX->Ixpvmg_root) #define PL_xpvnv_arenaroot (vTHX->Ixpvnv_arenaroot) #define PL_xpvnv_root (vTHX->Ixpvnv_root) #define PL_xrv_arenaroot (vTHX->Ixrv_arenaroot) #define PL_xrv_root (vTHX->Ixrv_root) #define PL_yychar (vTHX->Iyychar) #define PL_yydebug (vTHX->Iyydebug) #define PL_yyerrflag (vTHX->Iyyerrflag) #define PL_yylval (vTHX->Iyylval) #define PL_yynerrs (vTHX->Iyynerrs) #define PL_yyval (vTHX->Iyyval) # endif /* USE_5005THREADS */ #else /* !MULTIPLICITY */ /* cases 1 and 4 above */ #define PL_IArgv PL_Argv #define PL_IBINCOMPAT0 PL_BINCOMPAT0 #define PL_ICmd PL_Cmd #define PL_IDBcv PL_DBcv #define PL_IDBgv PL_DBgv #define PL_IDBline PL_DBline #define PL_IDBsignal PL_DBsignal #define PL_IDBsingle PL_DBsingle #define PL_IDBsub PL_DBsub #define PL_IDBtrace PL_DBtrace #define PL_IDir PL_Dir #define PL_IEnv PL_Env #define PL_ILIO PL_LIO #define PL_IMem PL_Mem #define PL_IMemParse PL_MemParse #define PL_IMemShared PL_MemShared #define PL_IOpPtr PL_OpPtr #define PL_IOpSlab PL_OpSlab #define PL_IOpSpace PL_OpSpace #define PL_IProc PL_Proc #define PL_ISock PL_Sock #define PL_IStdIO PL_StdIO #define PL_Iamagic_generation PL_amagic_generation #define PL_Ian PL_an #define PL_Iargvgv PL_argvgv #define PL_Iargvout_stack PL_argvout_stack #define PL_Iargvoutgv PL_argvoutgv #define PL_Ibasetime PL_basetime #define PL_Ibeginav PL_beginav #define PL_Ibeginav_save PL_beginav_save #define PL_Ibitcount PL_bitcount #define PL_Ibufend PL_bufend #define PL_Ibufptr PL_bufptr #define PL_Icheckav PL_checkav #define PL_Icheckav_save PL_checkav_save #define PL_Iclocktick PL_clocktick #define PL_Icollation_ix PL_collation_ix #define PL_Icollation_name PL_collation_name #define PL_Icollation_standard PL_collation_standard #define PL_Icollxfrm_base PL_collxfrm_base #define PL_Icollxfrm_mult PL_collxfrm_mult #define PL_Icompcv PL_compcv #define PL_Icompiling PL_compiling #define PL_Icomppad_name PL_comppad_name #define PL_Icomppad_name_fill PL_comppad_name_fill #define PL_Icomppad_name_floor PL_comppad_name_floor #define PL_Icop_seqmax PL_cop_seqmax #define PL_Icopline PL_copline #define PL_Icred_mutex PL_cred_mutex #define PL_Icryptseen PL_cryptseen #define PL_Icshlen PL_cshlen #define PL_Icshname PL_cshname #define PL_Icurcopdb PL_curcopdb #define PL_Icurstname PL_curstname #define PL_Icurthr PL_curthr #define PL_Icustom_op_descs PL_custom_op_descs #define PL_Icustom_op_names PL_custom_op_names #define PL_Idbargs PL_dbargs #define PL_Idebstash PL_debstash #define PL_Idebug PL_debug #define PL_Idebug_pad PL_debug_pad #define PL_Idef_layerlist PL_def_layerlist #define PL_Idefgv PL_defgv #define PL_Idiehook PL_diehook #define PL_Idoextract PL_doextract #define PL_Idoswitches PL_doswitches #define PL_Idowarn PL_dowarn #define PL_Ie_script PL_e_script #define PL_Iegid PL_egid #define PL_Iencoding PL_encoding #define PL_Iendav PL_endav #define PL_Ienvgv PL_envgv #define PL_Ierrgv PL_errgv #define PL_Ierror_count PL_error_count #define PL_Ieuid PL_euid #define PL_Ieval_cond PL_eval_cond #define PL_Ieval_mutex PL_eval_mutex #define PL_Ieval_owner PL_eval_owner #define PL_Ieval_root PL_eval_root #define PL_Ieval_start PL_eval_start #define PL_Ievalseq PL_evalseq #define PL_Iexit_flags PL_exit_flags #define PL_Iexitlist PL_exitlist #define PL_Iexitlistlen PL_exitlistlen #define PL_Iexpect PL_expect #define PL_Ifdpid PL_fdpid #define PL_Ifdpid_mutex PL_fdpid_mutex #define PL_Ifdscript PL_fdscript #define PL_Ifilemode PL_filemode #define PL_Iforkprocess PL_forkprocess #define PL_Iformfeed PL_formfeed #define PL_Igeneration PL_generation #define PL_Igensym PL_gensym #define PL_Igid PL_gid #define PL_Iglob_index PL_glob_index #define PL_Iglobalstash PL_globalstash #define PL_Ihash_seed PL_hash_seed #define PL_Ihash_seed_set PL_hash_seed_set #define PL_Ihe_arenaroot PL_he_arenaroot #define PL_Ihe_root PL_he_root #define PL_Ihintgv PL_hintgv #define PL_Ihints PL_hints #define PL_Iin_clean_all PL_in_clean_all #define PL_Iin_clean_objs PL_in_clean_objs #define PL_Iin_load_module PL_in_load_module #define PL_Iin_my PL_in_my #define PL_Iin_my_stash PL_in_my_stash #define PL_Iincgv PL_incgv #define PL_Iinitav PL_initav #define PL_Iinplace PL_inplace #define PL_Iknown_layers PL_known_layers #define PL_Ilast_lop PL_last_lop #define PL_Ilast_lop_op PL_last_lop_op #define PL_Ilast_swash_hv PL_last_swash_hv #define PL_Ilast_swash_key PL_last_swash_key #define PL_Ilast_swash_klen PL_last_swash_klen #define PL_Ilast_swash_slen PL_last_swash_slen #define PL_Ilast_swash_tmps PL_last_swash_tmps #define PL_Ilast_uni PL_last_uni #define PL_Ilastfd PL_lastfd #define PL_Ilaststatval PL_laststatval #define PL_Ilaststype PL_laststype #define PL_Ilex_brackets PL_lex_brackets #define PL_Ilex_brackstack PL_lex_brackstack #define PL_Ilex_casemods PL_lex_casemods #define PL_Ilex_casestack PL_lex_casestack #define PL_Ilex_defer PL_lex_defer #define PL_Ilex_dojoin PL_lex_dojoin #define PL_Ilex_expect PL_lex_expect #define PL_Ilex_formbrack PL_lex_formbrack #define PL_Ilex_inpat PL_lex_inpat #define PL_Ilex_inwhat PL_lex_inwhat #define PL_Ilex_op PL_lex_op #define PL_Ilex_repl PL_lex_repl #define PL_Ilex_starts PL_lex_starts #define PL_Ilex_state PL_lex_state #define PL_Ilex_stuff PL_lex_stuff #define PL_Ilineary PL_lineary #define PL_Ilinestart PL_linestart #define PL_Ilinestr PL_linestr #define PL_Ilocalpatches PL_localpatches #define PL_Ilockhook PL_lockhook #define PL_Imain_cv PL_main_cv #define PL_Imain_root PL_main_root #define PL_Imain_start PL_main_start #define PL_Imax_intro_pending PL_max_intro_pending #define PL_Imaxo PL_maxo #define PL_Imaxsysfd PL_maxsysfd #define PL_Imess_sv PL_mess_sv #define PL_Imin_intro_pending PL_min_intro_pending #define PL_Iminus_F PL_minus_F #define PL_Iminus_a PL_minus_a #define PL_Iminus_c PL_minus_c #define PL_Iminus_l PL_minus_l #define PL_Iminus_n PL_minus_n #define PL_Iminus_p PL_minus_p #define PL_Imodglobal PL_modglobal #define PL_Imulti_close PL_multi_close #define PL_Imulti_end PL_multi_end #define PL_Imulti_open PL_multi_open #define PL_Imulti_start PL_multi_start #define PL_Imultiline PL_multiline #define PL_Inexttoke PL_nexttoke #define PL_Inexttype PL_nexttype #define PL_Inextval PL_nextval #define PL_Inice_chunk PL_nice_chunk #define PL_Inice_chunk_size PL_nice_chunk_size #define PL_Inomemok PL_nomemok #define PL_Inthreads PL_nthreads #define PL_Inthreads_cond PL_nthreads_cond #define PL_Inullstash PL_nullstash #define PL_Inumeric_compat1 PL_numeric_compat1 #define PL_Inumeric_local PL_numeric_local #define PL_Inumeric_name PL_numeric_name #define PL_Inumeric_radix_sv PL_numeric_radix_sv #define PL_Inumeric_standard PL_numeric_standard #define PL_Iofmt PL_ofmt #define PL_Ioldbufptr PL_oldbufptr #define PL_Ioldname PL_oldname #define PL_Ioldoldbufptr PL_oldoldbufptr #define PL_Iop_mask PL_op_mask #define PL_Iop_seqmax PL_op_seqmax #define PL_Iorigalen PL_origalen #define PL_Iorigargc PL_origargc #define PL_Iorigargv PL_origargv #define PL_Iorigenviron PL_origenviron #define PL_Iorigfilename PL_origfilename #define PL_Iors_sv PL_ors_sv #define PL_Iosname PL_osname #define PL_Ipad_reset_pending PL_pad_reset_pending #define PL_Ipadix PL_padix #define PL_Ipadix_floor PL_padix_floor #define PL_Ipatchlevel PL_patchlevel #define PL_Ipending_ident PL_pending_ident #define PL_Iperl_destruct_level PL_perl_destruct_level #define PL_Iperldb PL_perldb #define PL_Iperlio PL_perlio #define PL_Ipidstatus PL_pidstatus #define PL_Ippid PL_ppid #define PL_Ipreambleav PL_preambleav #define PL_Ipreambled PL_preambled #define PL_Ipreprocess PL_preprocess #define PL_Iprofiledata PL_profiledata #define PL_Ipsig_name PL_psig_name #define PL_Ipsig_pend PL_psig_pend #define PL_Ipsig_ptr PL_psig_ptr #define PL_Ipte_arenaroot PL_pte_arenaroot #define PL_Ipte_root PL_pte_root #define PL_Iptr_table PL_ptr_table #define PL_Ireentrant_buffer PL_reentrant_buffer #define PL_Ireentrant_retint PL_reentrant_retint #define PL_Iregex_pad PL_regex_pad #define PL_Iregex_padav PL_regex_padav #define PL_Irehash_seed PL_rehash_seed #define PL_Irehash_seed_set PL_rehash_seed_set #define PL_Ireplgv PL_replgv #define PL_Irsfp PL_rsfp #define PL_Irsfp_filters PL_rsfp_filters #define PL_Irunops PL_runops #define PL_Irunops_dbg PL_runops_dbg #define PL_Irunops_std PL_runops_std #define PL_Isavebegin PL_savebegin #define PL_Isawampersand PL_sawampersand #define PL_Ish_path_compat PL_sh_path_compat #define PL_Isharehook PL_sharehook #define PL_Isig_pending PL_sig_pending #define PL_Isighandlerp PL_sighandlerp #define PL_Isignals PL_signals #define PL_Isort_RealCmp PL_sort_RealCmp #define PL_Isplitstr PL_splitstr #define PL_Isrand_called PL_srand_called #define PL_Istashcache PL_stashcache #define PL_Istatusvalue PL_statusvalue #define PL_Istatusvalue_vms PL_statusvalue_vms #define PL_Istderrgv PL_stderrgv #define PL_Istdingv PL_stdingv #define PL_Istrtab PL_strtab #define PL_Istrtab_mutex PL_strtab_mutex #define PL_Isub_generation PL_sub_generation #define PL_Isublex_info PL_sublex_info #define PL_Isubline PL_subline #define PL_Isubname PL_subname #define PL_Isuidscript PL_suidscript #define PL_Isv_arenaroot PL_sv_arenaroot #define PL_Isv_count PL_sv_count #define PL_Isv_lock_mutex PL_sv_lock_mutex #define PL_Isv_mutex PL_sv_mutex #define PL_Isv_no PL_sv_no #define PL_Isv_objcount PL_sv_objcount #define PL_Isv_root PL_sv_root #define PL_Isv_undef PL_sv_undef #define PL_Isv_yes PL_sv_yes #define PL_Isvref_mutex PL_svref_mutex #define PL_Isys_intern PL_sys_intern #define PL_Itaint_warn PL_taint_warn #define PL_Itainting PL_tainting #define PL_Ithreadhook PL_threadhook #define PL_Ithreadnum PL_threadnum #define PL_Ithreads_mutex PL_threads_mutex #define PL_Ithreadsv_names PL_threadsv_names #define PL_Ithrsv PL_thrsv #define PL_Itokenbuf PL_tokenbuf #define PL_Iuid PL_uid #define PL_Iunicode PL_unicode #define PL_Iunlockhook PL_unlockhook #define PL_Iunsafe PL_unsafe #define PL_Iutf8_alnum PL_utf8_alnum #define PL_Iutf8_alnumc PL_utf8_alnumc #define PL_Iutf8_alpha PL_utf8_alpha #define PL_Iutf8_ascii PL_utf8_ascii #define PL_Iutf8_cntrl PL_utf8_cntrl #define PL_Iutf8_digit PL_utf8_digit #define PL_Iutf8_graph PL_utf8_graph #define PL_Iutf8_idcont PL_utf8_idcont #define PL_Iutf8_idstart PL_utf8_idstart #define PL_Iutf8_lower PL_utf8_lower #define PL_Iutf8_mark PL_utf8_mark #define PL_Iutf8_print PL_utf8_print #define PL_Iutf8_punct PL_utf8_punct #define PL_Iutf8_space PL_utf8_space #define PL_Iutf8_tofold PL_utf8_tofold #define PL_Iutf8_tolower PL_utf8_tolower #define PL_Iutf8_totitle PL_utf8_totitle #define PL_Iutf8_toupper PL_utf8_toupper #define PL_Iutf8_upper PL_utf8_upper #define PL_Iutf8_xdigit PL_utf8_xdigit #define PL_Iutf8locale PL_utf8locale #define PL_Iuudmap PL_uudmap #define PL_Iwarnhook PL_warnhook #define PL_Iwidesyscalls PL_widesyscalls #define PL_Ixiv_arenaroot PL_xiv_arenaroot #define PL_Ixiv_root PL_xiv_root #define PL_Ixnv_arenaroot PL_xnv_arenaroot #define PL_Ixnv_root PL_xnv_root #define PL_Ixpv_arenaroot PL_xpv_arenaroot #define PL_Ixpv_root PL_xpv_root #define PL_Ixpvav_arenaroot PL_xpvav_arenaroot #define PL_Ixpvav_root PL_xpvav_root #define PL_Ixpvbm_arenaroot PL_xpvbm_arenaroot #define PL_Ixpvbm_root PL_xpvbm_root #define PL_Ixpvcv_arenaroot PL_xpvcv_arenaroot #define PL_Ixpvcv_root PL_xpvcv_root #define PL_Ixpvhv_arenaroot PL_xpvhv_arenaroot #define PL_Ixpvhv_root PL_xpvhv_root #define PL_Ixpviv_arenaroot PL_xpviv_arenaroot #define PL_Ixpviv_root PL_xpviv_root #define PL_Ixpvlv_arenaroot PL_xpvlv_arenaroot #define PL_Ixpvlv_root PL_xpvlv_root #define PL_Ixpvmg_arenaroot PL_xpvmg_arenaroot #define PL_Ixpvmg_root PL_xpvmg_root #define PL_Ixpvnv_arenaroot PL_xpvnv_arenaroot #define PL_Ixpvnv_root PL_xpvnv_root #define PL_Ixrv_arenaroot PL_xrv_arenaroot #define PL_Ixrv_root PL_xrv_root #define PL_Iyychar PL_yychar #define PL_Iyydebug PL_yydebug #define PL_Iyyerrflag PL_yyerrflag #define PL_Iyylval PL_yylval #define PL_Iyynerrs PL_yynerrs #define PL_Iyyval PL_yyval # if defined(USE_5005THREADS) /* case 4 above */ #define PL_Sv (aTHX->TSv) #define PL_Xpv (aTHX->TXpv) #define PL_av_fetch_sv (aTHX->Tav_fetch_sv) #define PL_bodytarget (aTHX->Tbodytarget) #define PL_bostr (aTHX->Tbostr) #define PL_chopset (aTHX->Tchopset) #define PL_colors (aTHX->Tcolors) #define PL_colorset (aTHX->Tcolorset) #define PL_comppad (aTHX->Tcomppad) #define PL_curcop (aTHX->Tcurcop) #define PL_curpad (aTHX->Tcurpad) #define PL_curpm (aTHX->Tcurpm) #define PL_curstack (aTHX->Tcurstack) #define PL_curstackinfo (aTHX->Tcurstackinfo) #define PL_curstash (aTHX->Tcurstash) #define PL_defoutgv (aTHX->Tdefoutgv) #define PL_defstash (aTHX->Tdefstash) #define PL_delaymagic (aTHX->Tdelaymagic) #define PL_dirty (aTHX->Tdirty) #define PL_dumpindent (aTHX->Tdumpindent) #define PL_efloatbuf (aTHX->Tefloatbuf) #define PL_efloatsize (aTHX->Tefloatsize) #define PL_errors (aTHX->Terrors) #define PL_extralen (aTHX->Textralen) #define PL_firstgv (aTHX->Tfirstgv) #define PL_formtarget (aTHX->Tformtarget) #define PL_hv_fetch_ent_mh (aTHX->Thv_fetch_ent_mh) #define PL_hv_fetch_sv (aTHX->Thv_fetch_sv) #define PL_in_eval (aTHX->Tin_eval) #define PL_last_in_gv (aTHX->Tlast_in_gv) #define PL_lastgotoprobe (aTHX->Tlastgotoprobe) #define PL_lastscream (aTHX->Tlastscream) #define PL_localizing (aTHX->Tlocalizing) #define PL_mainstack (aTHX->Tmainstack) #define PL_markstack (aTHX->Tmarkstack) #define PL_markstack_max (aTHX->Tmarkstack_max) #define PL_markstack_ptr (aTHX->Tmarkstack_ptr) #define PL_maxscream (aTHX->Tmaxscream) #define PL_modcount (aTHX->Tmodcount) #define PL_na (aTHX->Tna) #define PL_nrs (aTHX->Tnrs) #define PL_ofs_sv (aTHX->Tofs_sv) #define PL_op (aTHX->Top) #define PL_opsave (aTHX->Topsave) #define PL_peepp (aTHX->Tpeepp) #define PL_protect (aTHX->Tprotect) #define PL_reg_call_cc (aTHX->Treg_call_cc) #define PL_reg_curpm (aTHX->Treg_curpm) #define PL_reg_eval_set (aTHX->Treg_eval_set) #define PL_reg_flags (aTHX->Treg_flags) #define PL_reg_ganch (aTHX->Treg_ganch) #define PL_reg_leftiter (aTHX->Treg_leftiter) #define PL_reg_magic (aTHX->Treg_magic) #define PL_reg_match_utf8 (aTHX->Treg_match_utf8) #define PL_reg_maxiter (aTHX->Treg_maxiter) #define PL_reg_oldcurpm (aTHX->Treg_oldcurpm) #define PL_reg_oldpos (aTHX->Treg_oldpos) #define PL_reg_oldsaved (aTHX->Treg_oldsaved) #define PL_reg_oldsavedlen (aTHX->Treg_oldsavedlen) #define PL_reg_poscache (aTHX->Treg_poscache) #define PL_reg_poscache_size (aTHX->Treg_poscache_size) #define PL_reg_re (aTHX->Treg_re) #define PL_reg_start_tmp (aTHX->Treg_start_tmp) #define PL_reg_start_tmpl (aTHX->Treg_start_tmpl) #define PL_reg_starttry (aTHX->Treg_starttry) #define PL_reg_sv (aTHX->Treg_sv) #define PL_reg_whilem_seen (aTHX->Treg_whilem_seen) #define PL_regbol (aTHX->Tregbol) #define PL_regcc (aTHX->Tregcc) #define PL_regcode (aTHX->Tregcode) #define PL_regcomp_parse (aTHX->Tregcomp_parse) #define PL_regcomp_rx (aTHX->Tregcomp_rx) #define PL_regcompat1 (aTHX->Tregcompat1) #define PL_regcompp (aTHX->Tregcompp) #define PL_regdata (aTHX->Tregdata) #define PL_regdummy (aTHX->Tregdummy) #define PL_regendp (aTHX->Tregendp) #define PL_regeol (aTHX->Tregeol) #define PL_regexecp (aTHX->Tregexecp) #define PL_regflags (aTHX->Tregflags) #define PL_regfree (aTHX->Tregfree) #define PL_regindent (aTHX->Tregindent) #define PL_reginput (aTHX->Treginput) #define PL_regint_start (aTHX->Tregint_start) #define PL_regint_string (aTHX->Tregint_string) #define PL_reginterp_cnt (aTHX->Treginterp_cnt) #define PL_reglastcloseparen (aTHX->Treglastcloseparen) #define PL_reglastparen (aTHX->Treglastparen) #define PL_regnarrate (aTHX->Tregnarrate) #define PL_regnaughty (aTHX->Tregnaughty) #define PL_regnpar (aTHX->Tregnpar) #define PL_regprecomp (aTHX->Tregprecomp) #define PL_regprogram (aTHX->Tregprogram) #define PL_regsawback (aTHX->Tregsawback) #define PL_regseen (aTHX->Tregseen) #define PL_regsize (aTHX->Tregsize) #define PL_regstartp (aTHX->Tregstartp) #define PL_regtill (aTHX->Tregtill) #define PL_regxend (aTHX->Tregxend) #define PL_restartop (aTHX->Trestartop) #define PL_retstack (aTHX->Tretstack) #define PL_retstack_ix (aTHX->Tretstack_ix) #define PL_retstack_max (aTHX->Tretstack_max) #define PL_rs (aTHX->Trs) #define PL_savestack (aTHX->Tsavestack) #define PL_savestack_ix (aTHX->Tsavestack_ix) #define PL_savestack_max (aTHX->Tsavestack_max) #define PL_scopestack (aTHX->Tscopestack) #define PL_scopestack_ix (aTHX->Tscopestack_ix) #define PL_scopestack_max (aTHX->Tscopestack_max) #define PL_screamfirst (aTHX->Tscreamfirst) #define PL_screamnext (aTHX->Tscreamnext) #define PL_secondgv (aTHX->Tsecondgv) #define PL_seen_evals (aTHX->Tseen_evals) #define PL_seen_zerolen (aTHX->Tseen_zerolen) #define PL_sortcop (aTHX->Tsortcop) #define PL_sortcxix (aTHX->Tsortcxix) #define PL_sortstash (aTHX->Tsortstash) #define PL_stack_base (aTHX->Tstack_base) #define PL_stack_max (aTHX->Tstack_max) #define PL_stack_sp (aTHX->Tstack_sp) #define PL_start_env (aTHX->Tstart_env) #define PL_statbuf (aTHX->Tstatbuf) #define PL_statcache (aTHX->Tstatcache) #define PL_statgv (aTHX->Tstatgv) #define PL_statname (aTHX->Tstatname) #define PL_tainted (aTHX->Ttainted) #define PL_timesbuf (aTHX->Ttimesbuf) #define PL_tmps_floor (aTHX->Ttmps_floor) #define PL_tmps_ix (aTHX->Ttmps_ix) #define PL_tmps_max (aTHX->Ttmps_max) #define PL_tmps_stack (aTHX->Ttmps_stack) #define PL_top_env (aTHX->Ttop_env) #define PL_toptarget (aTHX->Ttoptarget) #define PL_watchaddr (aTHX->Twatchaddr) #define PL_watchok (aTHX->Twatchok) # else /* !USE_5005THREADS */ /* case 1 above */ #define PL_TSv PL_Sv #define PL_TXpv PL_Xpv #define PL_Tav_fetch_sv PL_av_fetch_sv #define PL_Tbodytarget PL_bodytarget #define PL_Tbostr PL_bostr #define PL_Tchopset PL_chopset #define PL_Tcolors PL_colors #define PL_Tcolorset PL_colorset #define PL_Tcomppad PL_comppad #define PL_Tcurcop PL_curcop #define PL_Tcurpad PL_curpad #define PL_Tcurpm PL_curpm #define PL_Tcurstack PL_curstack #define PL_Tcurstackinfo PL_curstackinfo #define PL_Tcurstash PL_curstash #define PL_Tdefoutgv PL_defoutgv #define PL_Tdefstash PL_defstash #define PL_Tdelaymagic PL_delaymagic #define PL_Tdirty PL_dirty #define PL_Tdumpindent PL_dumpindent #define PL_Tefloatbuf PL_efloatbuf #define PL_Tefloatsize PL_efloatsize #define PL_Terrors PL_errors #define PL_Textralen PL_extralen #define PL_Tfirstgv PL_firstgv #define PL_Tformtarget PL_formtarget #define PL_Thv_fetch_ent_mh PL_hv_fetch_ent_mh #define PL_Thv_fetch_sv PL_hv_fetch_sv #define PL_Tin_eval PL_in_eval #define PL_Tlast_in_gv PL_last_in_gv #define PL_Tlastgotoprobe PL_lastgotoprobe #define PL_Tlastscream PL_lastscream #define PL_Tlocalizing PL_localizing #define PL_Tmainstack PL_mainstack #define PL_Tmarkstack PL_markstack #define PL_Tmarkstack_max PL_markstack_max #define PL_Tmarkstack_ptr PL_markstack_ptr #define PL_Tmaxscream PL_maxscream #define PL_Tmodcount PL_modcount #define PL_Tna PL_na #define PL_Tnrs PL_nrs #define PL_Tofs_sv PL_ofs_sv #define PL_Top PL_op #define PL_Topsave PL_opsave #define PL_Tpeepp PL_peepp #define PL_Tprotect PL_protect #define PL_Treg_call_cc PL_reg_call_cc #define PL_Treg_curpm PL_reg_curpm #define PL_Treg_eval_set PL_reg_eval_set #define PL_Treg_flags PL_reg_flags #define PL_Treg_ganch PL_reg_ganch #define PL_Treg_leftiter PL_reg_leftiter #define PL_Treg_magic PL_reg_magic #define PL_Treg_match_utf8 PL_reg_match_utf8 #define PL_Treg_maxiter PL_reg_maxiter #define PL_Treg_oldcurpm PL_reg_oldcurpm #define PL_Treg_oldpos PL_reg_oldpos #define PL_Treg_oldsaved PL_reg_oldsaved #define PL_Treg_oldsavedlen PL_reg_oldsavedlen #define PL_Treg_poscache PL_reg_poscache #define PL_Treg_poscache_size PL_reg_poscache_size #define PL_Treg_re PL_reg_re #define PL_Treg_start_tmp PL_reg_start_tmp #define PL_Treg_start_tmpl PL_reg_start_tmpl #define PL_Treg_starttry PL_reg_starttry #define PL_Treg_sv PL_reg_sv #define PL_Treg_whilem_seen PL_reg_whilem_seen #define PL_Tregbol PL_regbol #define PL_Tregcc PL_regcc #define PL_Tregcode PL_regcode #define PL_Tregcomp_parse PL_regcomp_parse #define PL_Tregcomp_rx PL_regcomp_rx #define PL_Tregcompat1 PL_regcompat1 #define PL_Tregcompp PL_regcompp #define PL_Tregdata PL_regdata #define PL_Tregdummy PL_regdummy #define PL_Tregendp PL_regendp #define PL_Tregeol PL_regeol #define PL_Tregexecp PL_regexecp #define PL_Tregflags PL_regflags #define PL_Tregfree PL_regfree #define PL_Tregindent PL_regindent #define PL_Treginput PL_reginput #define PL_Tregint_start PL_regint_start #define PL_Tregint_string PL_regint_string #define PL_Treginterp_cnt PL_reginterp_cnt #define PL_Treglastcloseparen PL_reglastcloseparen #define PL_Treglastparen PL_reglastparen #define PL_Tregnarrate PL_regnarrate #define PL_Tregnaughty PL_regnaughty #define PL_Tregnpar PL_regnpar #define PL_Tregprecomp PL_regprecomp #define PL_Tregprogram PL_regprogram #define PL_Tregsawback PL_regsawback #define PL_Tregseen PL_regseen #define PL_Tregsize PL_regsize #define PL_Tregstartp PL_regstartp #define PL_Tregtill PL_regtill #define PL_Tregxend PL_regxend #define PL_Trestartop PL_restartop #define PL_Tretstack PL_retstack #define PL_Tretstack_ix PL_retstack_ix #define PL_Tretstack_max PL_retstack_max #define PL_Trs PL_rs #define PL_Tsavestack PL_savestack #define PL_Tsavestack_ix PL_savestack_ix #define PL_Tsavestack_max PL_savestack_max #define PL_Tscopestack PL_scopestack #define PL_Tscopestack_ix PL_scopestack_ix #define PL_Tscopestack_max PL_scopestack_max #define PL_Tscreamfirst PL_screamfirst #define PL_Tscreamnext PL_screamnext #define PL_Tsecondgv PL_secondgv #define PL_Tseen_evals PL_seen_evals #define PL_Tseen_zerolen PL_seen_zerolen #define PL_Tsortcop PL_sortcop #define PL_Tsortcxix PL_sortcxix #define PL_Tsortstash PL_sortstash #define PL_Tstack_base PL_stack_base #define PL_Tstack_max PL_stack_max #define PL_Tstack_sp PL_stack_sp #define PL_Tstart_env PL_start_env #define PL_Tstatbuf PL_statbuf #define PL_Tstatcache PL_statcache #define PL_Tstatgv PL_statgv #define PL_Tstatname PL_statname #define PL_Ttainted PL_tainted #define PL_Ttimesbuf PL_timesbuf #define PL_Ttmps_floor PL_tmps_floor #define PL_Ttmps_ix PL_tmps_ix #define PL_Ttmps_max PL_tmps_max #define PL_Ttmps_stack PL_tmps_stack #define PL_Ttop_env PL_top_env #define PL_Ttoptarget PL_toptarget #define PL_Twatchaddr PL_watchaddr #define PL_Twatchok PL_watchok # endif /* USE_5005THREADS */ #endif /* MULTIPLICITY */ #if defined(PERL_GLOBAL_STRUCT) #define PL_No (PL_Vars.GNo) #define PL_Yes (PL_Vars.GYes) #define PL_csighandlerp (PL_Vars.Gcsighandlerp) #define PL_curinterp (PL_Vars.Gcurinterp) #define PL_do_undump (PL_Vars.Gdo_undump) #define PL_dollarzero_mutex (PL_Vars.Gdollarzero_mutex) #define PL_hexdigit (PL_Vars.Ghexdigit) #define PL_malloc_mutex (PL_Vars.Gmalloc_mutex) #define PL_op_mutex (PL_Vars.Gop_mutex) #define PL_patleave (PL_Vars.Gpatleave) #define PL_sh_path (PL_Vars.Gsh_path) #define PL_sigfpe_saved (PL_Vars.Gsigfpe_saved) #define PL_sv_placeholder (PL_Vars.Gsv_placeholder) #define PL_thr_key (PL_Vars.Gthr_key) #define PL_use_safe_putenv (PL_Vars.Guse_safe_putenv) #else /* !PERL_GLOBAL_STRUCT */ #define PL_GNo PL_No #define PL_GYes PL_Yes #define PL_Gcsighandlerp PL_csighandlerp #define PL_Gcurinterp PL_curinterp #define PL_Gdo_undump PL_do_undump #define PL_Gdollarzero_mutex PL_dollarzero_mutex #define PL_Ghexdigit PL_hexdigit #define PL_Gmalloc_mutex PL_malloc_mutex #define PL_Gop_mutex PL_op_mutex #define PL_Gpatleave PL_patleave #define PL_Gsh_path PL_sh_path #define PL_Gsigfpe_saved PL_sigfpe_saved #define PL_Gsv_placeholder PL_sv_placeholder #define PL_Gthr_key PL_thr_key #define PL_Guse_safe_putenv PL_use_safe_putenv #endif /* PERL_GLOBAL_STRUCT */ #ifdef PERL_POLLUTE /* disabled by default in 5.6.0 */ #define DBsingle PL_DBsingle #define DBsub PL_DBsub #define compiling PL_compiling #define curcop PL_curcop #define curstash PL_curstash #define debstash PL_debstash #define defgv PL_defgv #define diehook PL_diehook #define dirty PL_dirty #define dowarn PL_dowarn #define errgv PL_errgv #define na PL_na #define no_modify PL_no_modify #define perl_destruct_level PL_perl_destruct_level #define perldb PL_perldb #define ppaddr PL_ppaddr #define rsfp PL_rsfp #define rsfp_filters PL_rsfp_filters #define stack_base PL_stack_base #define stack_sp PL_stack_sp #define stdingv PL_stdingv #define sv_arenaroot PL_sv_arenaroot #define sv_no PL_sv_no #define sv_undef PL_sv_undef #define sv_yes PL_sv_yes #define tainted PL_tainted #define tainting PL_tainting #endif /* PERL_POLLUTE */ ================================================ FILE: tests/perlbench/fakesdio.h ================================================ /* fakestdio.h * * Copyright (C) 2000, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * This is "source level" stdio compatibility mode. * We try and #define stdio functions in terms of PerlIO. */ #define _CANNOT "CANNOT" #undef FILE #define FILE PerlIO #undef clearerr #undef fclose #undef fdopen #undef feof #undef ferror #undef fflush #undef fgetc #undef fgetpos #undef fgets #undef fileno #undef flockfile #undef fopen #undef fprintf #undef fputc #undef fputs #undef fread #undef freopen #undef fscanf #undef fseek #undef fsetpos #undef ftell #undef ftrylockfile #undef funlockfile #undef fwrite #undef getc #undef getc_unlocked #undef getw #undef pclose #undef popen #undef putc #undef putc_unlocked #undef putw #undef rewind #undef setbuf #undef setvbuf #undef stderr #undef stdin #undef stdout #undef tmpfile #undef ungetc #undef vfprintf #undef printf /* printf used to live in perl.h like this - more sophisticated than the rest */ #if !defined(SPEC_CPU) && defined(__GNUC__) && !defined(__STRICT_ANSI__) && !defined(PERL_GCC_PEDANTIC) #define printf(fmt,args...) PerlIO_stdoutf(fmt,##args) #else #define printf PerlIO_stdoutf #endif #endif #define fprintf PerlIO_printf #define stdin PerlIO_stdin() #define stdout PerlIO_stdout() #define stderr PerlIO_stderr() #define tmpfile() PerlIO_tmpfile() #define fclose(f) PerlIO_close(f) #define fflush(f) PerlIO_flush(f) #define fopen(p,m) PerlIO_open(p,m) #define vfprintf(f,fmt,a) PerlIO_vprintf(f,fmt,a) #define fgetc(f) PerlIO_getc(f) #define fputc(c,f) PerlIO_putc(f,c) #define fputs(s,f) PerlIO_puts(f,s) #define getc(f) PerlIO_getc(f) #define getc_unlocked(f) PerlIO_getc(f) #define putc(c,f) PerlIO_putc(f,c) #define putc_unlocked(c,f) PerlIO_putc(c,f) #define ungetc(c,f) PerlIO_ungetc(f,c) #if 0 /* return values of read/write need work */ #define fread(b,s,c,f) PerlIO_read(f,b,(s*c)) #define fwrite(b,s,c,f) PerlIO_write(f,b,(s*c)) #else #define fread(b,s,c,f) _CANNOT fread #define fwrite(b,s,c,f) _CANNOT fwrite #endif #define fseek(f,o,w) PerlIO_seek(f,o,w) #define ftell(f) PerlIO_tell(f) #define rewind(f) PerlIO_rewind(f) #define clearerr(f) PerlIO_clearerr(f) #define feof(f) PerlIO_eof(f) #define ferror(f) PerlIO_error(f) #define fdopen(fd,p) PerlIO_fdopen(fd,p) #define fileno(f) PerlIO_fileno(f) #define popen(c,m) my_popen(c,m) #define pclose(f) my_pclose(f) #define fsetpos(f,p) _CANNOT _fsetpos_ #define fgetpos(f,p) _CANNOT _fgetpos_ #define __filbuf(f) _CANNOT __filbuf_ #define _filbuf(f) _CANNOT _filbuf_ #define __flsbuf(c,f) _CANNOT __flsbuf_ #define _flsbuf(c,f) _CANNOT _flsbuf_ #define getw(f) _CANNOT _getw_ #define putw(v,f) _CANNOT _putw_ #if SFIO_VERSION < 20000101L #define flockfile(f) _CANNOT _flockfile_ #define ftrylockfile(f) _CANNOT _ftrylockfile_ #define funlockfile(f) _CANNOT _funlockfile_ #endif #define freopen(p,m,f) _CANNOT _freopen_ #define setbuf(f,b) _CANNOT _setbuf_ #define setvbuf(f,b,x,s) _CANNOT _setvbuf_ #define fscanf _CANNOT _fscanf_ #define fgets(s,n,f) _CANNOT _fgets_ ================================================ FILE: tests/perlbench/fakethr.h ================================================ /* fakethr.h * * Copyright (C) 1999, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ typedef int perl_mutex; typedef int perl_key; typedef struct perl_thread *perl_os_thread; /* With fake threads, thr is global(ish) so we don't need dTHR */ #define dTHR extern int errno struct perl_wait_queue { struct perl_thread * thread; struct perl_wait_queue * next; }; typedef struct perl_wait_queue *perl_cond; /* Ask thread.h to include our per-thread extras */ #define HAVE_THREAD_INTERN struct thread_intern { perl_os_thread next_run, prev_run; /* Linked list of runnable threads */ perl_cond wait_queue; /* Wait queue that we are waiting on */ IV private; /* Holds data across time slices */ I32 savemark; /* Holds MARK for thread join values */ }; #define init_thread_intern(t) \ STMT_START { \ t->self = (t); \ (t)->i.next_run = (t)->i.prev_run = (t); \ (t)->i.wait_queue = 0; \ (t)->i.private = 0; \ } STMT_END /* * Note that SCHEDULE() is only callable from pp code (which * must be expecting to be restarted). We'll have to do * something a bit different for XS code. */ #define SCHEDULE() return schedule(), PL_op #define MUTEX_LOCK(m) #define MUTEX_UNLOCK(m) #define MUTEX_INIT(m) #define MUTEX_DESTROY(m) #define COND_INIT(c) perl_cond_init(c) #define COND_SIGNAL(c) perl_cond_signal(c) #define COND_BROADCAST(c) perl_cond_broadcast(c) #define COND_WAIT(c, m) \ STMT_START { \ perl_cond_wait(c); \ SCHEDULE(); \ } STMT_END #define COND_DESTROY(c) #define THREAD_CREATE(t, f) f((t)) #define THREAD_POST_CREATE(t) NOOP #define YIELD NOOP ================================================ FILE: tests/perlbench/form.h ================================================ /* form.h * * Copyright (C) 1991, 1992, 1993, 2000, 2004 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ #define FF_END 0 #define FF_LINEMARK 1 #define FF_LITERAL 2 #define FF_SKIP 3 #define FF_FETCH 4 #define FF_CHECKNL 5 #define FF_CHECKCHOP 6 #define FF_SPACE 7 #define FF_HALFSPACE 8 #define FF_ITEM 9 #define FF_CHOP 10 #define FF_LINEGLOB 11 #define FF_DECIMAL 12 #define FF_NEWLINE 13 #define FF_BLANK 14 #define FF_MORE 15 #define FF_0DECIMAL 16 #define FF_LINESNGL 17 ================================================ FILE: tests/perlbench/globals.c ================================================ /* globals.c * * Copyright (C) 1995, 1999, 2000, 2001, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * "For the rest, they shall represent the other Free Peoples of the World: * Elves, Dwarves, and Men." --Elrond */ /* This file exists to #include "perl.h" _ONCE_ with * PERL_IN_GLOBALS_C defined. That causes various global varaiables * in perl.h and other files it includes to be _defined_ (and initialized) * rather than just declared. * * There is a #include "perlapi.h" which makes use of the fact * that the object file created from this file will be included by linker * (to resolve global variables). perlapi.h mention various other "API" * functions not used by perl itself, but the functions get * pulled into the perl executable via the refrerence here. * * Two printf() like functions have also found their way here. * Most likely by analogy to the API scheme above (as perl doesn't * use them) but they probably belong elsewhere the obvious place * being in perlio.c * */ #include "INTERN.h" #define PERL_IN_GLOBALS_C #include "perl.h" int Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...) { dTHXs; va_list(arglist); va_start(arglist, format); return PerlIO_vprintf(stream, format, arglist); } int Perl_printf_nocontext(const char *format, ...) { dTHX; va_list(arglist); va_start(arglist, format); return PerlIO_vprintf(PerlIO_stdout(), format, arglist); } #include "perlapi.h" /* bring in PL_force_link_funcs */ ================================================ FILE: tests/perlbench/gv.c ================================================ /* gv.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * 'Mercy!' cried Gandalf. 'If the giving of information is to be the cure * of your inquisitiveness, I shall spend all the rest of my days answering * you. What more do you want to know?' * 'The names of all the stars, and of all living things, and the whole * history of Middle-earth and Over-heaven and of the Sundering Seas,' * laughed Pippin. */ /* =head1 GV Functions A GV is a structure which corresponds to to a Perl typeglob, ie *foo. It is a structure that holds a pointer to a scalar, an array, a hash etc, corresponding to $foo, @foo, %foo. GVs are usually found as values in stashes (symbol table hashes) where Perl stores its global variables. =cut */ #include "EXTERN.h" #define PERL_IN_GV_C #include "perl.h" GV * Perl_gv_AVadd(pTHX_ register GV *gv) { if (!gv || SvTYPE((SV*)gv) != SVt_PVGV) Perl_croak(aTHX_ "Bad symbol for array"); if (!GvAV(gv)) GvAV(gv) = newAV(); return gv; } GV * Perl_gv_HVadd(pTHX_ register GV *gv) { if (!gv || SvTYPE((SV*)gv) != SVt_PVGV) Perl_croak(aTHX_ "Bad symbol for hash"); if (!GvHV(gv)) GvHV(gv) = newHV(); return gv; } GV * Perl_gv_IOadd(pTHX_ register GV *gv) { if (!gv || SvTYPE((SV*)gv) != SVt_PVGV) Perl_croak(aTHX_ "Bad symbol for filehandle"); if (!GvIOp(gv)) { #ifdef GV_UNIQUE_CHECK if (GvUNIQUE(gv)) { Perl_croak(aTHX_ "Bad symbol for filehandle (GV is unique)"); } #endif GvIOp(gv) = newIO(); } return gv; } GV * Perl_gv_fetchfile(pTHX_ const char *name) { char smallbuf[256]; char *tmpbuf; STRLEN tmplen; GV *gv; if (!PL_defstash) return Nullgv; tmplen = strlen(name) + 2; if (tmplen < sizeof smallbuf) tmpbuf = smallbuf; else New(603, tmpbuf, tmplen + 1, char); /* This is where the debugger's %{"::_<$filename"} hash is created */ tmpbuf[0] = '_'; tmpbuf[1] = '<'; strcpy(tmpbuf + 2, name); gv = *(GV**)hv_fetch(PL_defstash, tmpbuf, tmplen, TRUE); if (!isGV(gv)) { gv_init(gv, PL_defstash, tmpbuf, tmplen, FALSE); sv_setpv(GvSV(gv), name); if (PERLDB_LINE) hv_magic(GvHVn(gv_AVadd(gv)), Nullgv, PERL_MAGIC_dbfile); } if (tmpbuf != smallbuf) Safefree(tmpbuf); return gv; } void Perl_gv_init(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, int multi) { register GP *gp; bool doproto = SvTYPE(gv) > SVt_NULL; char *proto = (doproto && SvPOK(gv)) ? SvPVX(gv) : NULL; sv_upgrade((SV*)gv, SVt_PVGV); if (SvLEN(gv)) { if (proto) { SvPVX(gv) = NULL; SvLEN(gv) = 0; SvPOK_off(gv); } else Safefree(SvPVX(gv)); } Newz(602, gp, 1, GP); GvGP(gv) = gp_ref(gp); GvSV(gv) = NEWSV(72,0); GvLINE(gv) = CopLINE(PL_curcop); GvFILE(gv) = CopFILE(PL_curcop) ? CopFILE(PL_curcop) : ""; GvCVGEN(gv) = 0; GvEGV(gv) = gv; sv_magic((SV*)gv, (SV*)gv, PERL_MAGIC_glob, Nullch, 0); GvSTASH(gv) = (HV*)SvREFCNT_inc(stash); GvNAME(gv) = savepvn(name, len); GvNAMELEN(gv) = len; if (multi || doproto) /* doproto means it _was_ mentioned */ GvMULTI_on(gv); if (doproto) { /* Replicate part of newSUB here. */ SvIOK_off(gv); ENTER; /* XXX unsafe for threads if eval_owner isn't held */ start_subparse(0,0); /* Create CV in compcv. */ GvCV(gv) = PL_compcv; LEAVE; PL_sub_generation++; CvGV(GvCV(gv)) = gv; CvFILE_set_from_cop(GvCV(gv), PL_curcop); CvSTASH(GvCV(gv)) = PL_curstash; #ifdef USE_5005THREADS CvOWNER(GvCV(gv)) = 0; if (!CvMUTEXP(GvCV(gv))) { New(666, CvMUTEXP(GvCV(gv)), 1, perl_mutex); MUTEX_INIT(CvMUTEXP(GvCV(gv))); } #endif /* USE_5005THREADS */ if (proto) { sv_setpv((SV*)GvCV(gv), proto); Safefree(proto); } } } STATIC void S_gv_init_sv(pTHX_ GV *gv, I32 sv_type) { switch (sv_type) { case SVt_PVIO: (void)GvIOn(gv); break; case SVt_PVAV: (void)GvAVn(gv); break; case SVt_PVHV: (void)GvHVn(gv); break; } } /* =for apidoc gv_fetchmeth Returns the glob with the given C and a defined subroutine or C. The glob lives in the given C, or in the stashes accessible via @ISA and UNIVERSAL::. The argument C should be either 0 or -1. If C, as a side-effect creates a glob with the given C in the given C which in the case of success contains an alias for the subroutine, and sets up caching info for this glob. Similarly for all the searched stashes. This function grants C<"SUPER"> token as a postfix of the stash name. The GV returned from C may be a method cache entry, which is not visible to Perl code. So when calling C, you should not use the GV directly; instead, you should use the method's CV, which can be obtained from the GV with the C macro. =cut */ GV * Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) { AV* av; GV* topgv; GV* gv; GV** gvp; CV* cv; /* UNIVERSAL methods should be callable without a stash */ if (!stash) { level = -1; /* probably appropriate */ if(!(stash = gv_stashpvn("UNIVERSAL", 9, FALSE))) return 0; } if (!HvNAME(stash)) Perl_croak(aTHX_ "Can't use anonymous symbol table for method lookup"); if ((level > 100) || (level < -100)) Perl_croak(aTHX_ "Recursive inheritance detected while looking for method '%s' in package '%s'", name, HvNAME(stash)); DEBUG_o( Perl_deb(aTHX_ "Looking for method %s in package %s\n",name,HvNAME(stash)) ); gvp = (GV**)hv_fetch(stash, name, len, (level >= 0)); if (!gvp) topgv = Nullgv; else { topgv = *gvp; if (SvTYPE(topgv) != SVt_PVGV) gv_init(topgv, stash, name, len, TRUE); if ((cv = GvCV(topgv))) { /* If genuine method or valid cache entry, use it */ if (!GvCVGEN(topgv) || GvCVGEN(topgv) == PL_sub_generation) return topgv; /* Stale cached entry: junk it */ SvREFCNT_dec(cv); GvCV(topgv) = cv = Nullcv; GvCVGEN(topgv) = 0; } else if (GvCVGEN(topgv) == PL_sub_generation) return 0; /* cache indicates sub doesn't exist */ } gvp = (GV**)hv_fetch(stash, "ISA", 3, FALSE); av = (gvp && (gv = *gvp) && gv != (GV*)&PL_sv_undef) ? GvAV(gv) : Nullav; /* create and re-create @.*::SUPER::ISA on demand */ if (!av || !SvMAGIC(av)) { char* packname = HvNAME(stash); STRLEN packlen = strlen(packname); if (packlen >= 7 && strEQ(packname + packlen - 7, "::SUPER")) { HV* basestash; packlen -= 7; basestash = gv_stashpvn(packname, packlen, TRUE); gvp = (GV**)hv_fetch(basestash, "ISA", 3, FALSE); if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (av = GvAV(gv))) { gvp = (GV**)hv_fetch(stash, "ISA", 3, TRUE); if (!gvp || !(gv = *gvp)) Perl_croak(aTHX_ "Cannot create %s::ISA", HvNAME(stash)); if (SvTYPE(gv) != SVt_PVGV) gv_init(gv, stash, "ISA", 3, TRUE); SvREFCNT_dec(GvAV(gv)); GvAV(gv) = (AV*)SvREFCNT_inc(av); } } } if (av) { SV** svp = AvARRAY(av); /* NOTE: No support for tied ISA */ I32 items = AvFILLp(av) + 1; while (items--) { SV* sv = *svp++; HV* basestash = gv_stashsv(sv, FALSE); if (!basestash) { if (ckWARN(WARN_MISC)) Perl_warner(aTHX_ packWARN(WARN_MISC), "Can't locate package %"SVf" for @%s::ISA", sv, HvNAME(stash)); continue; } gv = gv_fetchmeth(basestash, name, len, (level >= 0) ? level + 1 : level - 1); if (gv) goto gotcha; } } /* if at top level, try UNIVERSAL */ if (level == 0 || level == -1) { HV* lastchance; if ((lastchance = gv_stashpvn("UNIVERSAL", 9, FALSE))) { if ((gv = gv_fetchmeth(lastchance, name, len, (level >= 0) ? level + 1 : level - 1))) { gotcha: /* * Cache method in topgv if: * 1. topgv has no synonyms (else inheritance crosses wires) * 2. method isn't a stub (else AUTOLOAD fails spectacularly) */ if (topgv && GvREFCNT(topgv) == 1 && (cv = GvCV(gv)) && (CvROOT(cv) || CvXSUB(cv))) { if ((cv = GvCV(topgv))) SvREFCNT_dec(cv); GvCV(topgv) = (CV*)SvREFCNT_inc(GvCV(gv)); GvCVGEN(topgv) = PL_sub_generation; } return gv; } else if (topgv && GvREFCNT(topgv) == 1) { /* cache the fact that the method is not defined */ GvCVGEN(topgv) = PL_sub_generation; } } } return 0; } /* =for apidoc gv_fetchmeth_autoload Same as gv_fetchmeth(), but looks for autoloaded subroutines too. Returns a glob for the subroutine. For an autoloaded subroutine without a GV, will create a GV even if C. For an autoloaded subroutine without a stub, GvCV() of the result may be zero. =cut */ GV * Perl_gv_fetchmeth_autoload(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) { GV *gv = gv_fetchmeth(stash, name, len, level); if (!gv) { char autoload[] = "AUTOLOAD"; STRLEN autolen = sizeof(autoload)-1; CV *cv; GV **gvp; if (!stash) return Nullgv; /* UNIVERSAL::AUTOLOAD could cause trouble */ if (len == autolen && strnEQ(name, autoload, autolen)) return Nullgv; if (!(gv = gv_fetchmeth(stash, autoload, autolen, FALSE))) return Nullgv; cv = GvCV(gv); if (!(CvROOT(cv) || CvXSUB(cv))) return Nullgv; /* Have an autoload */ if (level < 0) /* Cannot do without a stub */ gv_fetchmeth(stash, name, len, 0); gvp = (GV**)hv_fetch(stash, name, len, (level >= 0)); if (!gvp) return Nullgv; return *gvp; } return gv; } /* =for apidoc gv_fetchmethod See L. =cut */ GV * Perl_gv_fetchmethod(pTHX_ HV *stash, const char *name) { return gv_fetchmethod_autoload(stash, name, TRUE); } /* =for apidoc gv_fetchmethod_autoload Returns the glob which contains the subroutine to call to invoke the method on the C. In fact in the presence of autoloading this may be the glob for "AUTOLOAD". In this case the corresponding variable $AUTOLOAD is already setup. The third parameter of C determines whether AUTOLOAD lookup is performed if the given method is not present: non-zero means yes, look for AUTOLOAD; zero means no, don't look for AUTOLOAD. Calling C is equivalent to calling C with a non-zero C parameter. These functions grant C<"SUPER"> token as a prefix of the method name. Note that if you want to keep the returned glob for a long time, you need to check for it being "AUTOLOAD", since at the later time the call may load a different subroutine due to $AUTOLOAD changing its value. Use the glob created via a side effect to do this. These functions have the same side-effects and as C with C. C should be writable if contains C<':'> or C<' ''>. The warning against passing the GV returned by C to C apply equally to these functions. =cut */ GV * Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload) { register const char *nend; const char *nsplit = 0; GV* gv; HV* ostash = stash; if (stash && SvTYPE(stash) < SVt_PVHV) stash = Nullhv; for (nend = name; *nend; nend++) { if (*nend == '\'') nsplit = nend; else if (*nend == ':' && *(nend + 1) == ':') nsplit = ++nend; } if (nsplit) { const char *origname = name; name = nsplit + 1; if (*nsplit == ':') --nsplit; if ((nsplit - origname) == 5 && strnEQ(origname, "SUPER", 5)) { /* ->SUPER::method should really be looked up in original stash */ SV *tmpstr = sv_2mortal(Perl_newSVpvf(aTHX_ "%s::SUPER", CopSTASHPV(PL_curcop))); /* __PACKAGE__::SUPER stash should be autovivified */ stash = gv_stashpvn(SvPVX(tmpstr), SvCUR(tmpstr), TRUE); DEBUG_o( Perl_deb(aTHX_ "Treating %s as %s::%s\n", origname, HvNAME(stash), name) ); } else { /* don't autovifify if ->NoSuchStash::method */ stash = gv_stashpvn(origname, nsplit - origname, FALSE); /* however, explicit calls to Pkg::SUPER::method may happen, and may require autovivification to work */ if (!stash && (nsplit - origname) >= 7 && strnEQ(nsplit - 7, "::SUPER", 7) && gv_stashpvn(origname, nsplit - origname - 7, FALSE)) stash = gv_stashpvn(origname, nsplit - origname, TRUE); } ostash = stash; } gv = gv_fetchmeth(stash, name, nend - name, 0); if (!gv) { if (strEQ(name,"import") || strEQ(name,"unimport")) gv = (GV*)&PL_sv_yes; else if (autoload) gv = gv_autoload4(ostash, name, nend - name, TRUE); } else if (autoload) { CV* cv = GvCV(gv); if (!CvROOT(cv) && !CvXSUB(cv)) { GV* stubgv; GV* autogv; if (CvANON(cv)) stubgv = gv; else { stubgv = CvGV(cv); if (GvCV(stubgv) != cv) /* orphaned import */ stubgv = gv; } autogv = gv_autoload4(GvSTASH(stubgv), GvNAME(stubgv), GvNAMELEN(stubgv), TRUE); if (autogv) gv = autogv; } } return gv; } GV* Perl_gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method) { char autoload[] = "AUTOLOAD"; STRLEN autolen = sizeof(autoload)-1; GV* gv; CV* cv; HV* varstash; GV* vargv; SV* varsv; char *packname = ""; if (len == autolen && strnEQ(name, autoload, autolen)) return Nullgv; if (stash) { if (SvTYPE(stash) < SVt_PVHV) { packname = SvPV_nolen((SV*)stash); stash = Nullhv; } else { packname = HvNAME(stash); } } if (!(gv = gv_fetchmeth(stash, autoload, autolen, FALSE))) return Nullgv; cv = GvCV(gv); if (!(CvROOT(cv) || CvXSUB(cv))) return Nullgv; /* * Inheriting AUTOLOAD for non-methods works ... for now. */ if (ckWARN2(WARN_DEPRECATED, WARN_SYNTAX) && !method && (GvCVGEN(gv) || GvSTASH(gv) != stash)) Perl_warner(aTHX_ packWARN2(WARN_DEPRECATED, WARN_SYNTAX), "Use of inherited AUTOLOAD for non-method %s::%.*s() is deprecated", packname, (int)len, name); #ifndef USE_5005THREADS if (CvXSUB(cv)) { /* rather than lookup/init $AUTOLOAD here * only to have the XSUB do another lookup for $AUTOLOAD * and split that value on the last '::', * pass along the same data via some unused fields in the CV */ CvSTASH(cv) = stash; SvPVX(cv) = (char *)name; /* cast to lose constness warning */ SvCUR(cv) = len; return gv; } #endif /* * Given &FOO::AUTOLOAD, set $FOO::AUTOLOAD to desired function name. * The subroutine's original name may not be "AUTOLOAD", so we don't * use that, but for lack of anything better we will use the sub's * original package to look up $AUTOLOAD. */ varstash = GvSTASH(CvGV(cv)); vargv = *(GV**)hv_fetch(varstash, autoload, autolen, TRUE); ENTER; #ifdef USE_5005THREADS sv_lock((SV *)varstash); #endif if (!isGV(vargv)) gv_init(vargv, varstash, autoload, autolen, FALSE); LEAVE; varsv = GvSV(vargv); #ifdef USE_5005THREADS sv_lock(varsv); #endif sv_setpv(varsv, packname); sv_catpvn(varsv, "::", 2); sv_catpvn(varsv, name, len); SvTAINTED_off(varsv); return gv; } /* The "gv" parameter should be the glob known to Perl code as *! * The scalar must already have been magicalized. */ STATIC void S_require_errno(pTHX_ GV *gv) { HV* stash = gv_stashpvn("Errno",5,FALSE); if (!stash || !(gv_fetchmethod(stash, "TIEHASH"))) { dSP; PUTBACK; ENTER; save_scalar(gv); /* keep the value of $! */ Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, newSVpvn("Errno",5), Nullsv); LEAVE; SPAGAIN; stash = gv_stashpvn("Errno",5,FALSE); if (!stash || !(gv_fetchmethod(stash, "TIEHASH"))) Perl_croak(aTHX_ "Can't use %%! because Errno.pm is not available"); } } /* =for apidoc gv_stashpv Returns a pointer to the stash for a specified package. C should be a valid UTF-8 string and must be null-terminated. If C is set then the package will be created if it does not already exist. If C is not set and the package does not exist then NULL is returned. =cut */ HV* Perl_gv_stashpv(pTHX_ const char *name, I32 create) { return gv_stashpvn(name, strlen(name), create); } /* =for apidoc gv_stashpvn Returns a pointer to the stash for a specified package. C should be a valid UTF-8 string. The C parameter indicates the length of the C, in bytes. If C is set then the package will be created if it does not already exist. If C is not set and the package does not exist then NULL is returned. =cut */ HV* Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 create) { char smallbuf[256]; char *tmpbuf; HV *stash; GV *tmpgv; if (namelen + 3 < sizeof smallbuf) tmpbuf = smallbuf; else New(606, tmpbuf, namelen + 3, char); Copy(name,tmpbuf,namelen,char); tmpbuf[namelen++] = ':'; tmpbuf[namelen++] = ':'; tmpbuf[namelen] = '\0'; tmpgv = gv_fetchpv(tmpbuf, create, SVt_PVHV); if (tmpbuf != smallbuf) Safefree(tmpbuf); if (!tmpgv) return 0; if (!GvHV(tmpgv)) GvHV(tmpgv) = newHV(); stash = GvHV(tmpgv); if (!HvNAME(stash)) HvNAME(stash) = savepv(name); return stash; } /* =for apidoc gv_stashsv Returns a pointer to the stash for a specified package, which must be a valid UTF-8 string. See C. =cut */ HV* Perl_gv_stashsv(pTHX_ SV *sv, I32 create) { register char *ptr; STRLEN len; ptr = SvPV(sv,len); return gv_stashpvn(ptr, len, create); } GV * Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type) { register const char *name = nambeg; register GV *gv = 0; GV**gvp; I32 len; register const char *namend; HV *stash = 0; if (*name == '*' && isALPHA(name[1])) /* accidental stringify on a GV? */ name++; for (namend = name; *namend; namend++) { if ((*namend == ':' && namend[1] == ':') || (*namend == '\'' && namend[1])) { if (!stash) stash = PL_defstash; if (!stash || !SvREFCNT(stash)) /* symbol table under destruction */ return Nullgv; len = namend - name; if (len > 0) { char smallbuf[256]; char *tmpbuf; if (len + 3 < sizeof (smallbuf)) tmpbuf = smallbuf; else New(601, tmpbuf, len+3, char); Copy(name, tmpbuf, len, char); tmpbuf[len++] = ':'; tmpbuf[len++] = ':'; tmpbuf[len] = '\0'; gvp = (GV**)hv_fetch(stash,tmpbuf,len,add); gv = gvp ? *gvp : Nullgv; if (gv && gv != (GV*)&PL_sv_undef) { if (SvTYPE(gv) != SVt_PVGV) gv_init(gv, stash, tmpbuf, len, (add & GV_ADDMULTI)); else GvMULTI_on(gv); } if (tmpbuf != smallbuf) Safefree(tmpbuf); if (!gv || gv == (GV*)&PL_sv_undef) return Nullgv; if (!(stash = GvHV(gv))) stash = GvHV(gv) = newHV(); if (!HvNAME(stash)) HvNAME(stash) = savepvn(nambeg, namend - nambeg); } if (*namend == ':') namend++; namend++; name = namend; if (!*name) return gv ? gv : (GV*)*hv_fetch(PL_defstash, "main::", 6, TRUE); } } len = namend - name; /* No stash in name, so see how we can default */ if (!stash) { if (isIDFIRST_lazy(name)) { bool global = FALSE; /* name is always \0 terminated, and initial \0 wouldn't return true from isIDFIRST_lazy, so we know that name[1] is defined */ switch (name[1]) { case '\0': if (*name == '_') global = TRUE; break; case 'N': if (strEQ(name, "INC") || strEQ(name, "ENV")) global = TRUE; break; case 'I': if (strEQ(name, "SIG")) global = TRUE; break; case 'T': if (strEQ(name, "STDIN") || strEQ(name, "STDOUT") || strEQ(name, "STDERR")) global = TRUE; break; case 'R': if (strEQ(name, "ARGV") || strEQ(name, "ARGVOUT")) global = TRUE; break; } if (global) stash = PL_defstash; else if (IN_PERL_COMPILETIME) { stash = PL_curstash; if (add && (PL_hints & HINT_STRICT_VARS) && sv_type != SVt_PVCV && sv_type != SVt_PVGV && sv_type != SVt_PVFM && sv_type != SVt_PVIO && !(len == 1 && sv_type == SVt_PV && (*name == 'a' || *name == 'b')) ) { gvp = (GV**)hv_fetch(stash,name,len,0); if (!gvp || *gvp == (GV*)&PL_sv_undef || SvTYPE(*gvp) != SVt_PVGV) { stash = 0; } else if ((sv_type == SVt_PV && !GvIMPORTED_SV(*gvp)) || (sv_type == SVt_PVAV && !GvIMPORTED_AV(*gvp)) || (sv_type == SVt_PVHV && !GvIMPORTED_HV(*gvp)) ) { Perl_warn(aTHX_ "Variable \"%c%s\" is not imported", sv_type == SVt_PVAV ? '@' : sv_type == SVt_PVHV ? '%' : '$', name); if (GvCVu(*gvp)) Perl_warn(aTHX_ "\t(Did you mean &%s instead?)\n", name); stash = 0; } } } else stash = CopSTASH(PL_curcop); } else stash = PL_defstash; } /* By this point we should have a stash and a name */ if (!stash) { if (add) { register SV *err = Perl_mess(aTHX_ "Global symbol \"%s%s\" requires explicit package name", (sv_type == SVt_PV ? "$" : sv_type == SVt_PVAV ? "@" : sv_type == SVt_PVHV ? "%" : ""), name); if (USE_UTF8_IN_NAMES) SvUTF8_on(err); qerror(err); stash = PL_nullstash; } else return Nullgv; } if (!SvREFCNT(stash)) /* symbol table under destruction */ return Nullgv; gvp = (GV**)hv_fetch(stash,name,len,add); if (!gvp || *gvp == (GV*)&PL_sv_undef) return Nullgv; gv = *gvp; if (SvTYPE(gv) == SVt_PVGV) { if (add) { GvMULTI_on(gv); gv_init_sv(gv, sv_type); if (*name=='!' && sv_type == SVt_PVHV && len==1) require_errno(gv); } return gv; } else if (add & GV_NOINIT) { return gv; } /* Adding a new symbol */ if (add & GV_ADDWARN && ckWARN_d(WARN_INTERNAL)) Perl_warner(aTHX_ packWARN(WARN_INTERNAL), "Had to create %s unexpectedly", nambeg); gv_init(gv, stash, name, len, add & GV_ADDMULTI); gv_init_sv(gv, sv_type); if (isALPHA(name[0]) && ! (isLEXWARN_on ? ckWARN(WARN_ONCE) : (PL_dowarn & G_WARN_ON ) ) ) GvMULTI_on(gv) ; /* set up magic where warranted */ if (len > 1) { #ifndef EBCDIC if (*name > 'V' ) { /* Nothing else to do. The compiler will probably turn the switch statement into a branch table. Make sure we avoid even that small overhead for the common case of lower case variable names. */ } else #endif { const char *name2 = name + 1; switch (*name) { case 'A': if (strEQ(name2, "RGV")) { IoFLAGS(GvIOn(gv)) |= IOf_ARGV|IOf_START; } break; case 'E': if (strnEQ(name2, "XPORT", 5)) GvMULTI_on(gv); break; case 'I': if (strEQ(name2, "SA")) { AV* av = GvAVn(gv); GvMULTI_on(gv); sv_magic((SV*)av, (SV*)gv, PERL_MAGIC_isa, Nullch, 0); /* NOTE: No support for tied ISA */ if ((add & GV_ADDMULTI) && strEQ(nambeg,"AnyDBM_File::ISA") && AvFILLp(av) == -1) { char *pname; av_push(av, newSVpvn(pname = "NDBM_File",9)); gv_stashpvn(pname, 9, TRUE); av_push(av, newSVpvn(pname = "DB_File",7)); gv_stashpvn(pname, 7, TRUE); av_push(av, newSVpvn(pname = "GDBM_File",9)); gv_stashpvn(pname, 9, TRUE); av_push(av, newSVpvn(pname = "SDBM_File",9)); gv_stashpvn(pname, 9, TRUE); av_push(av, newSVpvn(pname = "ODBM_File",9)); gv_stashpvn(pname, 9, TRUE); } } break; case 'O': if (strEQ(name2, "VERLOAD")) { HV* hv = GvHVn(gv); GvMULTI_on(gv); hv_magic(hv, Nullgv, PERL_MAGIC_overload); } break; case 'S': if (strEQ(name2, "IG")) { HV *hv; I32 i; if (!PL_psig_ptr) { Newz(73, PL_psig_ptr, SIG_SIZE, SV*); Newz(73, PL_psig_name, SIG_SIZE, SV*); Newz(73, PL_psig_pend, SIG_SIZE, int); } GvMULTI_on(gv); hv = GvHVn(gv); hv_magic(hv, Nullgv, PERL_MAGIC_sig); for (i = 1; i < SIG_SIZE; i++) { SV ** init; init = hv_fetch(hv, PL_sig_name[i], strlen(PL_sig_name[i]), 1); if (init) sv_setsv(*init, &PL_sv_undef); PL_psig_ptr[i] = 0; PL_psig_name[i] = 0; PL_psig_pend[i] = 0; } } break; case 'V': if (strEQ(name2, "ERSION")) GvMULTI_on(gv); break; case '\005': /* $^ENCODING */ if (strEQ(name2, "NCODING")) goto magicalize; break; case '\017': /* $^OPEN */ if (strEQ(name2, "PEN")) goto magicalize; break; case '\024': /* ${^TAINT} */ if (strEQ(name2, "AINT")) goto ro_magicalize; break; case '\025': /* ${^UNICODE}, ${^UTF8LOCALE} */ if (strEQ(name2, "NICODE")) goto ro_magicalize; if (strEQ(name2, "TF8LOCALE")) goto ro_magicalize; break; case '\027': /* $^WARNING_BITS */ if (strEQ(name2, "ARNING_BITS")) goto magicalize; break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { /* ensures variable is only digits */ /* ${"1foo"} fails this test (and is thus writeable) */ /* added by japhy, but borrowed from is_gv_magical */ const char *end = name + len; while (--end > name) { if (!isDIGIT(*end)) return gv; } goto ro_magicalize; } } } } else { /* Names of length 1. (Or 0. But name is NUL terminated, so that will be case '\0' in this switch statement (ie a default case) */ switch (*name) { case '&': case '`': case '\'': if ( sv_type == SVt_PVAV || sv_type == SVt_PVHV || sv_type == SVt_PVCV || sv_type == SVt_PVFM || sv_type == SVt_PVIO ) { break; } PL_sawampersand = TRUE; goto ro_magicalize; case ':': sv_setpv(GvSV(gv),PL_chopset); goto magicalize; case '?': #ifdef COMPLEX_STATUS (void)SvUPGRADE(GvSV(gv), SVt_PVLV); #endif goto magicalize; case '!': /* If %! has been used, automatically load Errno.pm. The require will itself set errno, so in order to preserve its value we have to set up the magic now (rather than going to magicalize) */ sv_magic(GvSV(gv), (SV*)gv, PERL_MAGIC_sv, name, len); if (sv_type == SVt_PVHV) require_errno(gv); break; case '-': { AV* av = GvAVn(gv); sv_magic((SV*)av, Nullsv, PERL_MAGIC_regdata, Nullch, 0); SvREADONLY_on(av); goto magicalize; } case '#': case '*': if (sv_type == SVt_PV && ckWARN2(WARN_DEPRECATED, WARN_SYNTAX)) Perl_warner(aTHX_ packWARN2(WARN_DEPRECATED, WARN_SYNTAX), "Use of $%s is deprecated", name); goto magicalize; case '|': sv_setiv(GvSV(gv), (IV)(IoFLAGS(GvIOp(PL_defoutgv)) & IOf_FLUSH) != 0); goto magicalize; case '+': { AV* av = GvAVn(gv); sv_magic((SV*)av, (SV*)av, PERL_MAGIC_regdata, Nullch, 0); SvREADONLY_on(av); /* FALL THROUGH */ } case '\023': /* $^S */ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': ro_magicalize: SvREADONLY_on(GvSV(gv)); /* FALL THROUGH */ case '[': case '^': case '~': case '=': case '%': case '.': case '(': case ')': case '<': case '>': case ',': case '\\': case '/': case '\001': /* $^A */ case '\003': /* $^C */ case '\004': /* $^D */ case '\005': /* $^E */ case '\006': /* $^F */ case '\010': /* $^H */ case '\011': /* $^I, NOT \t in EBCDIC */ case '\016': /* $^N */ case '\017': /* $^O */ case '\020': /* $^P */ case '\024': /* $^T */ case '\027': /* $^W */ magicalize: sv_magic(GvSV(gv), (SV*)gv, PERL_MAGIC_sv, name, len); break; case '\014': /* $^L */ sv_setpv(GvSV(gv),"\f"); PL_formfeed = GvSV(gv); break; case ';': sv_setpv(GvSV(gv),"\034"); break; case ']': { SV *sv = GvSV(gv); (void)SvUPGRADE(sv, SVt_PVNV); Perl_sv_setpvf(aTHX_ sv, #if defined(PERL_SUBVERSION) && (PERL_SUBVERSION > 0) "%8.6" #else "%5.3" #endif NVff, SvNVX(PL_patchlevel)); SvNVX(sv) = SvNVX(PL_patchlevel); SvNOK_on(sv); SvREADONLY_on(sv); } break; case '\026': /* $^V */ { SV *sv = GvSV(gv); GvSV(gv) = SvREFCNT_inc(PL_patchlevel); SvREFCNT_dec(sv); } break; } } return gv; } void Perl_gv_fullname4(pTHX_ SV *sv, GV *gv, const char *prefix, bool keepmain) { char *name; HV *hv = GvSTASH(gv); if (!hv) { SvOK_off(sv); return; } sv_setpv(sv, prefix ? prefix : ""); name = HvNAME(hv); if (!name) name = "__ANON__"; if (keepmain || strNE(name, "main")) { sv_catpv(sv,name); sv_catpvn(sv,"::", 2); } sv_catpvn(sv,GvNAME(gv),GvNAMELEN(gv)); } void Perl_gv_fullname3(pTHX_ SV *sv, GV *gv, const char *prefix) { gv_fullname4(sv, gv, prefix, TRUE); } void Perl_gv_efullname4(pTHX_ SV *sv, GV *gv, const char *prefix, bool keepmain) { GV *egv = GvEGV(gv); if (!egv) egv = gv; gv_fullname4(sv, egv, prefix, keepmain); } void Perl_gv_efullname3(pTHX_ SV *sv, GV *gv, const char *prefix) { gv_efullname4(sv, gv, prefix, TRUE); } /* XXX compatibility with versions <= 5.003. */ void Perl_gv_fullname(pTHX_ SV *sv, GV *gv) { gv_fullname3(sv, gv, sv == (SV*)gv ? "*" : ""); } /* XXX compatibility with versions <= 5.003. */ void Perl_gv_efullname(pTHX_ SV *sv, GV *gv) { gv_efullname3(sv, gv, sv == (SV*)gv ? "*" : ""); } IO * Perl_newIO(pTHX) { IO *io; GV *iogv; io = (IO*)NEWSV(0,0); sv_upgrade((SV *)io,SVt_PVIO); SvREFCNT(io) = 1; SvOBJECT_on(io); /* Clear the stashcache because a new IO could overrule a package name */ hv_clear(PL_stashcache); iogv = gv_fetchpv("FileHandle::", FALSE, SVt_PVHV); /* unless exists($main::{FileHandle}) and defined(%main::FileHandle::) */ if (!(iogv && GvHV(iogv) && HvARRAY(GvHV(iogv)))) iogv = gv_fetchpv("IO::Handle::", TRUE, SVt_PVHV); SvSTASH(io) = (HV*)SvREFCNT_inc(GvHV(iogv)); return io; } void Perl_gv_check(pTHX_ HV *stash) { register HE *entry; register I32 i; register GV *gv; HV *hv; if (!HvARRAY(stash)) return; for (i = 0; i <= (I32) HvMAX(stash); i++) { for (entry = HvARRAY(stash)[i]; entry; entry = HeNEXT(entry)) { if (HeKEY(entry)[HeKLEN(entry)-1] == ':' && (gv = (GV*)HeVAL(entry)) && isGV(gv) && (hv = GvHV(gv))) { if (hv != PL_defstash && hv != stash) gv_check(hv); /* nested package */ } else if (isALPHA(*HeKEY(entry))) { char *file; gv = (GV*)HeVAL(entry); if (SvTYPE(gv) != SVt_PVGV || GvMULTI(gv)) continue; file = GvFILE(gv); /* performance hack: if filename is absolute and it's a standard * module, don't bother warning */ if (file && PERL_FILE_IS_ABSOLUTE(file) #ifdef MACOS_TRADITIONAL && (instr(file, ":lib:") #else && (instr(file, "/lib/") #endif || instr(file, ".pm"))) { continue; } CopLINE_set(PL_curcop, GvLINE(gv)); #ifdef USE_ITHREADS CopFILE(PL_curcop) = file; /* set for warning */ #else CopFILEGV(PL_curcop) = gv_fetchfile(file); #endif Perl_warner(aTHX_ packWARN(WARN_ONCE), "Name \"%s::%s\" used only once: possible typo", HvNAME(stash), GvNAME(gv)); } } } } GV * Perl_newGVgen(pTHX_ char *pack) { return gv_fetchpv(Perl_form(aTHX_ "%s::_GEN_%ld", pack, (long)PL_gensym++), TRUE, SVt_PVGV); } /* hopefully this is only called on local symbol table entries */ GP* Perl_gp_ref(pTHX_ GP *gp) { if (!gp) return (GP*)NULL; gp->gp_refcnt++; if (gp->gp_cv) { if (gp->gp_cvgen) { /* multi-named GPs cannot be used for method cache */ SvREFCNT_dec(gp->gp_cv); gp->gp_cv = Nullcv; gp->gp_cvgen = 0; } else { /* Adding a new name to a subroutine invalidates method cache */ PL_sub_generation++; } } return gp; } void Perl_gp_free(pTHX_ GV *gv) { GP* gp; if (!gv || !(gp = GvGP(gv))) return; if (gp->gp_refcnt == 0) { if (ckWARN_d(WARN_INTERNAL)) Perl_warner(aTHX_ packWARN(WARN_INTERNAL), "Attempt to free unreferenced glob pointers" pTHX__FORMAT pTHX__VALUE); return; } if (gp->gp_cv) { /* Deleting the name of a subroutine invalidates method cache */ PL_sub_generation++; } if (--gp->gp_refcnt > 0) { if (gp->gp_egv == gv) gp->gp_egv = 0; return; } if (gp->gp_sv) SvREFCNT_dec(gp->gp_sv); if (gp->gp_av) SvREFCNT_dec(gp->gp_av); if (gp->gp_hv) { if (PL_stashcache && HvNAME(gp->gp_hv)) hv_delete(PL_stashcache, HvNAME(gp->gp_hv), strlen(HvNAME(gp->gp_hv)), G_DISCARD); SvREFCNT_dec(gp->gp_hv); } if (gp->gp_io) SvREFCNT_dec(gp->gp_io); if (gp->gp_cv) SvREFCNT_dec(gp->gp_cv); if (gp->gp_form) SvREFCNT_dec(gp->gp_form); Safefree(gp); GvGP(gv) = 0; } int Perl_magic_freeovrld(pTHX_ SV *sv, MAGIC *mg) { AMT *amtp = (AMT*)mg->mg_ptr; if (amtp && AMT_AMAGIC(amtp)) { int i; for (i = 1; i < NofAMmeth; i++) { CV *cv = amtp->table[i]; if (cv != Nullcv) { SvREFCNT_dec((SV *) cv); amtp->table[i] = Nullcv; } } } return 0; } /* Updates and caches the CV's */ bool Perl_Gv_AMupdate(pTHX_ HV *stash) { GV* gv; CV* cv; MAGIC* mg=mg_find((SV*)stash, PERL_MAGIC_overload_table); AMT *amtp = (mg) ? (AMT*)mg->mg_ptr: (AMT *) NULL; AMT amt; if (mg && amtp->was_ok_am == PL_amagic_generation && amtp->was_ok_sub == PL_sub_generation) return (bool)AMT_OVERLOADED(amtp); sv_unmagic((SV*)stash, PERL_MAGIC_overload_table); DEBUG_o( Perl_deb(aTHX_ "Recalcing overload magic in package %s\n",HvNAME(stash)) ); Zero(&amt,1,AMT); amt.was_ok_am = PL_amagic_generation; amt.was_ok_sub = PL_sub_generation; amt.fallback = AMGfallNO; amt.flags = 0; { int filled = 0, have_ovl = 0; int i, lim = 1; SV* sv = NULL; /* Work with "fallback" key, which we assume to be first in PL_AMG_names */ /* Try to find via inheritance. */ gv = gv_fetchmeth(stash, PL_AMG_names[0], 2, -1); if (gv) sv = GvSV(gv); if (!gv) lim = DESTROY_amg; /* Skip overloading entries. */ else if (SvTRUE(sv)) amt.fallback=AMGfallYES; else if (SvOK(sv)) amt.fallback=AMGfallNEVER; for (i = 1; i < lim; i++) amt.table[i] = Nullcv; for (; i < NofAMmeth; i++) { char *cooky = (char*)PL_AMG_names[i]; /* Human-readable form, for debugging: */ char *cp = (i >= DESTROY_amg ? cooky : AMG_id2name(i)); STRLEN l = strlen(cooky); DEBUG_o( Perl_deb(aTHX_ "Checking overloading of `%s' in package `%.256s'\n", cp, HvNAME(stash)) ); /* don't fill the cache while looking up! Creation of inheritance stubs in intermediate packages may conflict with the logic of runtime method substitution. Indeed, for inheritance A -> B -> C, if C overloads "+0", then we could have created stubs for "(+0" in A and C too. But if B overloads "bool", we may want to use it for numifying instead of C's "+0". */ if (i >= DESTROY_amg) gv = Perl_gv_fetchmeth_autoload(aTHX_ stash, cooky, l, 0); else /* Autoload taken care of below */ gv = Perl_gv_fetchmeth(aTHX_ stash, cooky, l, -1); cv = 0; if (gv && (cv = GvCV(gv))) { if (GvNAMELEN(CvGV(cv)) == 3 && strEQ(GvNAME(CvGV(cv)), "nil") && strEQ(HvNAME(GvSTASH(CvGV(cv))), "overload")) { /* This is a hack to support autoloading..., while knowing *which* methods were declared as overloaded. */ /* GvSV contains the name of the method. */ GV *ngv = Nullgv; DEBUG_o( Perl_deb(aTHX_ "Resolving method `%"SVf256\ "' for overloaded `%s' in package `%.256s'\n", GvSV(gv), cp, HvNAME(stash)) ); if (!SvPOK(GvSV(gv)) || !(ngv = gv_fetchmethod_autoload(stash, SvPVX(GvSV(gv)), FALSE))) { /* Can be an import stub (created by `can'). */ SV *gvsv = GvSV(gv); const char *name = SvPOK(gvsv) ? SvPVX(gvsv) : "???"; Perl_croak(aTHX_ "%s method `%.256s' overloading `%s' "\ "in package `%.256s'", (GvCVGEN(gv) ? "Stub found while resolving" : "Can't resolve"), name, cp, HvNAME(stash)); } cv = GvCV(gv = ngv); } DEBUG_o( Perl_deb(aTHX_ "Overloading `%s' in package `%.256s' via `%.256s::%.256s' \n", cp, HvNAME(stash), HvNAME(GvSTASH(CvGV(cv))), GvNAME(CvGV(cv))) ); filled = 1; if (i < DESTROY_amg) have_ovl = 1; } else if (gv) { /* Autoloaded... */ cv = (CV*)gv; filled = 1; } amt.table[i]=(CV*)SvREFCNT_inc(cv); } if (filled) { AMT_AMAGIC_on(&amt); if (have_ovl) AMT_OVERLOADED_on(&amt); sv_magic((SV*)stash, 0, PERL_MAGIC_overload_table, (char*)&amt, sizeof(AMT)); return have_ovl; } } /* Here we have no table: */ /* no_table: */ AMT_AMAGIC_off(&amt); sv_magic((SV*)stash, 0, PERL_MAGIC_overload_table, (char*)&amt, sizeof(AMTS)); return FALSE; } CV* Perl_gv_handler(pTHX_ HV *stash, I32 id) { MAGIC *mg; AMT *amtp; CV *ret; if (!stash || !HvNAME(stash)) return Nullcv; mg = mg_find((SV*)stash, PERL_MAGIC_overload_table); if (!mg) { do_update: Gv_AMupdate(stash); mg = mg_find((SV*)stash, PERL_MAGIC_overload_table); } amtp = (AMT*)mg->mg_ptr; if ( amtp->was_ok_am != PL_amagic_generation || amtp->was_ok_sub != PL_sub_generation ) goto do_update; if (AMT_AMAGIC(amtp)) { ret = amtp->table[id]; if (ret && isGV(ret)) { /* Autoloading stab */ /* Passing it through may have resulted in a warning "Inherited AUTOLOAD for a non-method deprecated", since our caller is going through a function call, not a method call. So return the CV for AUTOLOAD, setting $AUTOLOAD. */ GV *gv = gv_fetchmethod(stash, (char*)PL_AMG_names[id]); if (gv && GvCV(gv)) return GvCV(gv); } return ret; } return Nullcv; } SV* Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags) { MAGIC *mg; CV *cv=NULL; CV **cvp=NULL, **ocvp=NULL; AMT *amtp=NULL, *oamtp=NULL; int off=0, off1, lr=0, assign=AMGf_assign & flags, notfound=0; int postpr = 0, force_cpy = 0, assignshift = assign ? 1 : 0; #ifdef DEBUGGING int fl=0; #endif HV* stash=NULL; if (!(AMGf_noleft & flags) && SvAMAGIC(left) && (stash = SvSTASH(SvRV(left))) && (mg = mg_find((SV*)stash, PERL_MAGIC_overload_table)) && (ocvp = cvp = (AMT_AMAGIC((AMT*)mg->mg_ptr) ? (oamtp = amtp = (AMT*)mg->mg_ptr)->table : (CV **) NULL)) && ((cv = cvp[off=method+assignshift]) || (assign && amtp->fallback > AMGfallNEVER && /* fallback to * usual method */ ( #ifdef DEBUGGING fl = 1, #endif cv = cvp[off=method])))) { lr = -1; /* Call method for left argument */ } else { if (cvp && amtp->fallback > AMGfallNEVER && flags & AMGf_unary) { int logic; /* look for substituted methods */ /* In all the covered cases we should be called with assign==0. */ switch (method) { case inc_amg: force_cpy = 1; if ((cv = cvp[off=add_ass_amg]) || ((cv = cvp[off = add_amg]) && (force_cpy = 0, postpr = 1))) { right = &PL_sv_yes; lr = -1; assign = 1; } break; case dec_amg: force_cpy = 1; if ((cv = cvp[off = subtr_ass_amg]) || ((cv = cvp[off = subtr_amg]) && (force_cpy = 0, postpr=1))) { right = &PL_sv_yes; lr = -1; assign = 1; } break; case bool__amg: (void)((cv = cvp[off=numer_amg]) || (cv = cvp[off=string_amg])); break; case numer_amg: (void)((cv = cvp[off=string_amg]) || (cv = cvp[off=bool__amg])); break; case string_amg: (void)((cv = cvp[off=numer_amg]) || (cv = cvp[off=bool__amg])); break; case not_amg: (void)((cv = cvp[off=bool__amg]) || (cv = cvp[off=numer_amg]) || (cv = cvp[off=string_amg])); postpr = 1; break; case copy_amg: { /* * SV* ref causes confusion with the interpreter variable of * the same name */ SV* tmpRef=SvRV(left); if (!SvROK(tmpRef) && SvTYPE(tmpRef) <= SVt_PVMG) { /* * Just to be extra cautious. Maybe in some * additional cases sv_setsv is safe, too. */ SV* newref = newSVsv(tmpRef); SvOBJECT_on(newref); SvSTASH(newref) = (HV*)SvREFCNT_inc(SvSTASH(tmpRef)); return newref; } } break; case abs_amg: if ((cvp[off1=lt_amg] || cvp[off1=ncmp_amg]) && ((cv = cvp[off=neg_amg]) || (cv = cvp[off=subtr_amg]))) { SV* nullsv=sv_2mortal(newSViv(0)); if (off1==lt_amg) { SV* lessp = amagic_call(left,nullsv, lt_amg,AMGf_noright); logic = SvTRUE(lessp); } else { SV* lessp = amagic_call(left,nullsv, ncmp_amg,AMGf_noright); logic = (SvNV(lessp) < 0); } if (logic) { if (off==subtr_amg) { right = left; left = nullsv; lr = 1; } } else { return left; } } break; case neg_amg: if ((cv = cvp[off=subtr_amg])) { right = left; left = sv_2mortal(newSViv(0)); lr = 1; } break; case int_amg: case iter_amg: /* XXXX Eventually should do to_gv. */ /* FAIL safe */ return NULL; /* Delegate operation to standard mechanisms. */ break; case to_sv_amg: case to_av_amg: case to_hv_amg: case to_gv_amg: case to_cv_amg: /* FAIL safe */ return left; /* Delegate operation to standard mechanisms. */ break; default: goto not_found; } if (!cv) goto not_found; } else if (!(AMGf_noright & flags) && SvAMAGIC(right) && (stash = SvSTASH(SvRV(right))) && (mg = mg_find((SV*)stash, PERL_MAGIC_overload_table)) && (cvp = (AMT_AMAGIC((AMT*)mg->mg_ptr) ? (amtp = (AMT*)mg->mg_ptr)->table : (CV **) NULL)) && (cv = cvp[off=method])) { /* Method for right * argument found */ lr=1; } else if (((ocvp && oamtp->fallback > AMGfallNEVER && (cvp=ocvp) && (lr = -1)) || (cvp && amtp->fallback > AMGfallNEVER && (lr=1))) && !(flags & AMGf_unary)) { /* We look for substitution for * comparison operations and * concatenation */ if (method==concat_amg || method==concat_ass_amg || method==repeat_amg || method==repeat_ass_amg) { return NULL; /* Delegate operation to string conversion */ } off = -1; switch (method) { case lt_amg: case le_amg: case gt_amg: case ge_amg: case eq_amg: case ne_amg: postpr = 1; off=ncmp_amg; break; case slt_amg: case sle_amg: case sgt_amg: case sge_amg: case seq_amg: case sne_amg: postpr = 1; off=scmp_amg; break; } if (off != -1) cv = cvp[off]; if (!cv) { goto not_found; } } else { not_found: /* No method found, either report or croak */ switch (method) { case to_sv_amg: case to_av_amg: case to_hv_amg: case to_gv_amg: case to_cv_amg: /* FAIL safe */ return left; /* Delegate operation to standard mechanisms. */ break; } if (ocvp && (cv=ocvp[nomethod_amg])) { /* Call report method */ notfound = 1; lr = -1; } else if (cvp && (cv=cvp[nomethod_amg])) { notfound = 1; lr = 1; } else { SV *msg; if (off==-1) off=method; msg = sv_2mortal(Perl_newSVpvf(aTHX_ "Operation `%s': no method found,%sargument %s%s%s%s", AMG_id2name(method + assignshift), (flags & AMGf_unary ? " " : "\n\tleft "), SvAMAGIC(left)? "in overloaded package ": "has no overloaded magic", SvAMAGIC(left)? HvNAME(SvSTASH(SvRV(left))): "", SvAMAGIC(right)? ",\n\tright argument in overloaded package ": (flags & AMGf_unary ? "" : ",\n\tright argument has no overloaded magic"), SvAMAGIC(right)? HvNAME(SvSTASH(SvRV(right))): "")); if (amtp && amtp->fallback >= AMGfallYES) { DEBUG_o( Perl_deb(aTHX_ "%s", SvPVX(msg)) ); } else { Perl_croak(aTHX_ "%"SVf, msg); } return NULL; } force_cpy = force_cpy || assign; } } #ifdef DEBUGGING if (!notfound) { DEBUG_o(Perl_deb(aTHX_ "Overloaded operator `%s'%s%s%s:\n\tmethod%s found%s in package %s%s\n", AMG_id2name(off), method+assignshift==off? "" : " (initially `", method+assignshift==off? "" : AMG_id2name(method+assignshift), method+assignshift==off? "" : "')", flags & AMGf_unary? "" : lr==1 ? " for right argument": " for left argument", flags & AMGf_unary? " for argument" : "", stash ? HvNAME(stash) : "null", fl? ",\n\tassignment variant used": "") ); } #endif /* Since we use shallow copy during assignment, we need * to dublicate the contents, probably calling user-supplied * version of copy operator */ /* We need to copy in following cases: * a) Assignment form was called. * assignshift==1, assign==T, method + 1 == off * b) Increment or decrement, called directly. * assignshift==0, assign==0, method + 0 == off * c) Increment or decrement, translated to assignment add/subtr. * assignshift==0, assign==T, * force_cpy == T * d) Increment or decrement, translated to nomethod. * assignshift==0, assign==0, * force_cpy == T * e) Assignment form translated to nomethod. * assignshift==1, assign==T, method + 1 != off * force_cpy == T */ /* off is method, method+assignshift, or a result of opcode substitution. * In the latter case assignshift==0, so only notfound case is important. */ if (( (method + assignshift == off) && (assign || (method == inc_amg) || (method == dec_amg))) || force_cpy) RvDEEPCP(left); { dSP; BINOP myop; SV* res; bool oldcatch = CATCH_GET; CATCH_SET(TRUE); Zero(&myop, 1, BINOP); myop.op_last = (OP *) &myop; myop.op_next = Nullop; myop.op_flags = OPf_WANT_SCALAR | OPf_STACKED; PUSHSTACKi(PERLSI_OVERLOAD); ENTER; SAVEOP(); PL_op = (OP *) &myop; if (PERLDB_SUB && PL_curstash != PL_debstash) PL_op->op_private |= OPpENTERSUB_DB; PUTBACK; pp_pushmark(); EXTEND(SP, notfound + 5); PUSHs(lr>0? right: left); PUSHs(lr>0? left: right); PUSHs( lr > 0 ? &PL_sv_yes : ( assign ? &PL_sv_undef : &PL_sv_no )); if (notfound) { PUSHs( sv_2mortal(newSVpv(AMG_id2name(method + assignshift),0))); } PUSHs((SV*)cv); PUTBACK; if ((PL_op = Perl_pp_entersub(aTHX))) CALLRUNOPS(aTHX); LEAVE; SPAGAIN; res=POPs; PUTBACK; POPSTACK; CATCH_SET(oldcatch); if (postpr) { int ans=0; switch (method) { case le_amg: case sle_amg: ans=SvIV(res)<=0; break; case lt_amg: case slt_amg: ans=SvIV(res)<0; break; case ge_amg: case sge_amg: ans=SvIV(res)>=0; break; case gt_amg: case sgt_amg: ans=SvIV(res)>0; break; case eq_amg: case seq_amg: ans=SvIV(res)==0; break; case ne_amg: case sne_amg: ans=SvIV(res)!=0; break; case inc_amg: case dec_amg: SvSetSV(left,res); return left; case not_amg: ans=!SvTRUE(res); break; } return boolSV(ans); } else if (method==copy_amg) { if (!SvROK(res)) { Perl_croak(aTHX_ "Copy method did not return a reference"); } return SvREFCNT_inc(SvRV(res)); } else { return res; } } } /* =for apidoc is_gv_magical Returns C if given the name of a magical GV. Currently only useful internally when determining if a GV should be created even in rvalue contexts. C is not used at present but available for future extension to allow selecting particular classes of magical variable. Currently assumes that C is NUL terminated (as well as len being valid). This assumption is met by all callers within the perl core, which all pass pointers returned by SvPV. =cut */ bool Perl_is_gv_magical(pTHX_ char *name, STRLEN len, U32 flags) { if (len > 1) { const char *name1 = name + 1; switch (*name) { case 'I': if (len == 3 && name1[1] == 'S' && name[2] == 'A') goto yes; break; case 'O': if (len == 8 && strEQ(name1, "VERLOAD")) goto yes; break; case 'S': if (len == 3 && name[1] == 'I' && name[2] == 'G') goto yes; break; /* Using ${^...} variables is likely to be sufficiently rare that it seems sensible to avoid the space hit of also checking the length. */ case '\017': /* ${^OPEN} */ if (strEQ(name1, "PEN")) goto yes; break; case '\024': /* ${^TAINT} */ if (strEQ(name1, "AINT")) goto yes; break; case '\025': /* ${^UNICODE} */ if (strEQ(name1, "NICODE")) goto yes; if (strEQ(name1, "TF8LOCALE")) goto yes; break; case '\027': /* ${^WARNING_BITS} */ if (strEQ(name1, "ARNING_BITS")) goto yes; break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { char *end = name + len; while (--end > name) { if (!isDIGIT(*end)) return FALSE; } goto yes; } } } else { /* Because we're already assuming that name is NUL terminated below, we can treat an empty name as "\0" */ switch (*name) { case '&': case '`': case '\'': case ':': case '?': case '!': case '-': case '*': case '#': case '[': case '^': case '~': case '=': case '%': case '.': case '(': case ')': case '<': case '>': case ',': case '\\': case '/': case '|': case '+': case ';': case ']': case '\001': /* $^A */ case '\003': /* $^C */ case '\004': /* $^D */ case '\005': /* $^E */ case '\006': /* $^F */ case '\010': /* $^H */ case '\011': /* $^I, NOT \t in EBCDIC */ case '\014': /* $^L */ case '\016': /* $^N */ case '\017': /* $^O */ case '\020': /* $^P */ case '\023': /* $^S */ case '\024': /* $^T */ case '\026': /* $^V */ case '\027': /* $^W */ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': yes: return TRUE; default: break; } } return FALSE; } ================================================ FILE: tests/perlbench/gv.h ================================================ /* gv.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ struct gp { SV * gp_sv; /* scalar value */ U32 gp_refcnt; /* how many globs point to this? */ struct io * gp_io; /* filehandle value */ CV * gp_form; /* format value */ AV * gp_av; /* array value */ HV * gp_hv; /* hash value */ GV * gp_egv; /* effective gv, if *glob */ CV * gp_cv; /* subroutine value */ U32 gp_cvgen; /* generational validity of cached gv_cv */ U32 gp_flags; /* XXX unused */ line_t gp_line; /* line first declared at (for -w) */ char * gp_file; /* file first declared in (for -w) */ }; #define GvXPVGV(gv) ((XPVGV*)SvANY(gv)) #define GvGP(gv) (GvXPVGV(gv)->xgv_gp) #define GvNAME(gv) (GvXPVGV(gv)->xgv_name) #define GvNAMELEN(gv) (GvXPVGV(gv)->xgv_namelen) #define GvSTASH(gv) (GvXPVGV(gv)->xgv_stash) #define GvFLAGS(gv) (GvXPVGV(gv)->xgv_flags) /* =head1 GV Functions =for apidoc Am|SV*|GvSV|GV* gv Return the SV from the GV. =cut */ #define GvSV(gv) (GvGP(gv)->gp_sv) #define GvREFCNT(gv) (GvGP(gv)->gp_refcnt) #define GvIO(gv) ((gv) && SvTYPE((SV*)gv) == SVt_PVGV && GvGP(gv) ? GvIOp(gv) : 0) #define GvIOp(gv) (GvGP(gv)->gp_io) #define GvIOn(gv) (GvIO(gv) ? GvIOp(gv) : GvIOp(gv_IOadd(gv))) #define GvFORM(gv) (GvGP(gv)->gp_form) #define GvAV(gv) (GvGP(gv)->gp_av) /* This macro is deprecated. Do not use! */ #define GvREFCNT_inc(gv) ((GV*)SvREFCNT_inc(gv)) /* DO NOT USE */ #define GvAVn(gv) (GvGP(gv)->gp_av ? \ GvGP(gv)->gp_av : \ GvGP(gv_AVadd(gv))->gp_av) #define GvHV(gv) ((GvGP(gv))->gp_hv) #define GvHVn(gv) (GvGP(gv)->gp_hv ? \ GvGP(gv)->gp_hv : \ GvGP(gv_HVadd(gv))->gp_hv) #define GvCV(gv) (GvGP(gv)->gp_cv) #define GvCVGEN(gv) (GvGP(gv)->gp_cvgen) #define GvCVu(gv) (GvGP(gv)->gp_cvgen ? Nullcv : GvGP(gv)->gp_cv) #define GvGPFLAGS(gv) (GvGP(gv)->gp_flags) #define GvLINE(gv) (GvGP(gv)->gp_line) #define GvFILE(gv) (GvGP(gv)->gp_file) #define GvFILEGV(gv) (gv_fetchfile(GvFILE(gv))) #define GvEGV(gv) (GvGP(gv)->gp_egv) #define GvENAME(gv) GvNAME(GvEGV(gv) ? GvEGV(gv) : gv) #define GvESTASH(gv) GvSTASH(GvEGV(gv) ? GvEGV(gv) : gv) #define GVf_INTRO 0x01 #define GVf_MULTI 0x02 #define GVf_ASSUMECV 0x04 #define GVf_IN_PAD 0x08 #define GVf_IMPORTED 0xF0 #define GVf_IMPORTED_SV 0x10 #define GVf_IMPORTED_AV 0x20 #define GVf_IMPORTED_HV 0x40 #define GVf_IMPORTED_CV 0x80 #define GvINTRO(gv) (GvFLAGS(gv) & GVf_INTRO) #define GvINTRO_on(gv) (GvFLAGS(gv) |= GVf_INTRO) #define GvINTRO_off(gv) (GvFLAGS(gv) &= ~GVf_INTRO) #define GvMULTI(gv) (GvFLAGS(gv) & GVf_MULTI) #define GvMULTI_on(gv) (GvFLAGS(gv) |= GVf_MULTI) #define GvMULTI_off(gv) (GvFLAGS(gv) &= ~GVf_MULTI) #define GvASSUMECV(gv) (GvFLAGS(gv) & GVf_ASSUMECV) #define GvASSUMECV_on(gv) (GvFLAGS(gv) |= GVf_ASSUMECV) #define GvASSUMECV_off(gv) (GvFLAGS(gv) &= ~GVf_ASSUMECV) #define GvIMPORTED(gv) (GvFLAGS(gv) & GVf_IMPORTED) #define GvIMPORTED_on(gv) (GvFLAGS(gv) |= GVf_IMPORTED) #define GvIMPORTED_off(gv) (GvFLAGS(gv) &= ~GVf_IMPORTED) #define GvIMPORTED_SV(gv) (GvFLAGS(gv) & GVf_IMPORTED_SV) #define GvIMPORTED_SV_on(gv) (GvFLAGS(gv) |= GVf_IMPORTED_SV) #define GvIMPORTED_SV_off(gv) (GvFLAGS(gv) &= ~GVf_IMPORTED_SV) #define GvIMPORTED_AV(gv) (GvFLAGS(gv) & GVf_IMPORTED_AV) #define GvIMPORTED_AV_on(gv) (GvFLAGS(gv) |= GVf_IMPORTED_AV) #define GvIMPORTED_AV_off(gv) (GvFLAGS(gv) &= ~GVf_IMPORTED_AV) #define GvIMPORTED_HV(gv) (GvFLAGS(gv) & GVf_IMPORTED_HV) #define GvIMPORTED_HV_on(gv) (GvFLAGS(gv) |= GVf_IMPORTED_HV) #define GvIMPORTED_HV_off(gv) (GvFLAGS(gv) &= ~GVf_IMPORTED_HV) #define GvIMPORTED_CV(gv) (GvFLAGS(gv) & GVf_IMPORTED_CV) #define GvIMPORTED_CV_on(gv) (GvFLAGS(gv) |= GVf_IMPORTED_CV) #define GvIMPORTED_CV_off(gv) (GvFLAGS(gv) &= ~GVf_IMPORTED_CV) #define GvIN_PAD(gv) (GvFLAGS(gv) & GVf_IN_PAD) #define GvIN_PAD_on(gv) (GvFLAGS(gv) |= GVf_IN_PAD) #define GvIN_PAD_off(gv) (GvFLAGS(gv) &= ~GVf_IN_PAD) /* XXX: all GvFLAGS options are used, borrowing GvGPFLAGS for the moment */ #define GVf_UNIQUE 0x0001 #define GvUNIQUE(gv) (GvGP(gv) && (GvGPFLAGS(gv) & GVf_UNIQUE)) #define GvUNIQUE_on(gv) (GvGPFLAGS(gv) |= GVf_UNIQUE) #define GvUNIQUE_off(gv) (GvGPFLAGS(gv) &= ~GVf_UNIQUE) #ifdef USE_ITHREADS #define GV_UNIQUE_CHECK #else #undef GV_UNIQUE_CHECK #endif #define Nullgv Null(GV*) #define DM_UID 0x003 #define DM_RUID 0x001 #define DM_EUID 0x002 #define DM_GID 0x030 #define DM_RGID 0x010 #define DM_EGID 0x020 #define DM_DELAY 0x100 /* * symbol creation flags, for use in gv_fetchpv() and get_*v() */ #define GV_ADD 0x01 /* add, if symbol not already there */ #define GV_ADDMULTI 0x02 /* add, pretending it has been added already */ #define GV_ADDWARN 0x04 /* add, but warn if symbol wasn't already there */ #define GV_ADDINEVAL 0x08 /* add, as though we're doing so within an eval */ #define GV_NOINIT 0x10 /* add, but don't init symbol, if type != PVGV */ #define gv_fullname3(sv,gv,prefix) gv_fullname4(sv,gv,prefix,TRUE) #define gv_efullname3(sv,gv,prefix) gv_efullname4(sv,gv,prefix,TRUE) ================================================ FILE: tests/perlbench/handy.h ================================================ /* handy.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, * 2000, 2001, 2002, 2004, 2005 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ #if !defined(__STDC__) #ifdef NULL #undef NULL #endif #ifndef I286 # define NULL 0 #else # define NULL 0L #endif #endif #define Null(type) ((type)NULL) /* =head1 Handy Values =for apidoc AmU||Nullch Null character pointer. =for apidoc AmU||Nullsv Null SV pointer. =cut */ #define Nullch Null(char*) #define Nullfp Null(PerlIO*) #define Nullsv Null(SV*) #ifdef TRUE #undef TRUE #endif #ifdef FALSE #undef FALSE #endif #define TRUE (1) #define FALSE (0) /* XXX Configure ought to have a test for a boolean type, if I can just figure out all the headers such a test needs. Andy Dougherty August 1996 */ /* bool is built-in for g++-2.6.3 and later, which might be used for extensions. <_G_config.h> defines _G_HAVE_BOOL, but we can't be sure _G_config.h will be included before this file. _G_config.h also defines _G_HAVE_BOOL for both gcc and g++, but only g++ actually has bool. Hence, _G_HAVE_BOOL is pretty useless for us. g++ can be identified by __GNUG__. Andy Dougherty February 2000 */ #ifdef __GNUG__ /* GNU g++ has bool built-in */ # ifndef HAS_BOOL # define HAS_BOOL 1 # endif #endif /* The NeXT dynamic loader headers will not build with the bool macro So declare them now to clear confusion. */ #if defined(NeXT) || defined(__NeXT__) # undef FALSE # undef TRUE typedef enum bool { FALSE = 0, TRUE = 1 } bool; # define ENUM_BOOL 1 # ifndef HAS_BOOL # define HAS_BOOL 1 # endif /* !HAS_BOOL */ #endif /* NeXT || __NeXT__ */ #ifndef HAS_BOOL # if defined(UTS) || defined(VMS) # define bool int # else # define bool char # endif # define HAS_BOOL 1 #endif /* XXX A note on the perl source internal type system. The original intent was that I32 be *exactly* 32 bits. Currently, we only guarantee that I32 is *at least* 32 bits. Specifically, if int is 64 bits, then so is I32. (This is the case for the Cray.) This has the advantage of meshing nicely with standard library calls (where we pass an I32 and the library is expecting an int), but the disadvantage that an I32 is not 32 bits. Andy Dougherty August 1996 There is no guarantee that there is *any* integral type with exactly 32 bits. It is perfectly legal for a system to have sizeof(short) == sizeof(int) == sizeof(long) == 8. Similarly, there is no guarantee that I16 and U16 have exactly 16 bits. For dealing with issues that may arise from various 32/64-bit systems, we will ask Configure to check out SHORTSIZE == sizeof(short) INTSIZE == sizeof(int) LONGSIZE == sizeof(long) LONGLONGSIZE == sizeof(long long) (if HAS_LONG_LONG) PTRSIZE == sizeof(void *) DOUBLESIZE == sizeof(double) LONG_DOUBLESIZE == sizeof(long double) (if HAS_LONG_DOUBLE). */ #ifdef I_INTTYPES /* e.g. Linux has int64_t without */ # include # ifdef INT32_MIN_BROKEN # undef INT32_MIN # define INT32_MIN (-2147483647-1) # endif # ifdef INT64_MIN_BROKEN # undef INT64_MIN # define INT64_MIN (-9223372036854775807LL-1) # endif #endif typedef I8TYPE I8; typedef U8TYPE U8; typedef I16TYPE I16; typedef U16TYPE U16; typedef I32TYPE I32; typedef U32TYPE U32; #ifdef PERL_CORE # ifdef HAS_QUAD typedef I64TYPE I64; typedef U64TYPE U64; # endif #endif /* PERL_CORE */ #if defined(HAS_QUAD) && defined(USE_64_BIT_INT) # ifndef UINT64_C /* usually from */ # if defined(HAS_LONG_LONG) && QUADKIND == QUAD_IS_LONG_LONG # define INT64_C(c) CAT2(c,LL) # define UINT64_C(c) CAT2(c,ULL) # else # if LONGSIZE == 8 && QUADKIND == QUAD_IS_LONG # define INT64_C(c) CAT2(c,L) # define UINT64_C(c) CAT2(c,UL) # else # define INT64_C(c) ((I64TYPE)(c)) # define UINT64_C(c) ((U64TYPE)(c)) # endif # endif # endif #endif /* HMB H.Merijn Brand - a placeholder for preparing Configure patches */ #if defined(LIBM_LIB_VERSION) /* Not (yet) used at top level, but mention them for metaconfig */ #endif /* Mention I8SIZE, U8SIZE, I16SIZE, U16SIZE, I32SIZE, U32SIZE, I64SIZE, and U64SIZE here so that metaconfig pulls them in. */ #if defined(UINT8_MAX) && defined(INT16_MAX) && defined(INT32_MAX) /* I8_MAX and I8_MIN constants are not defined, as I8 is an ambiguous type. Please search CHAR_MAX in perl.h for further details. */ #define U8_MAX UINT8_MAX #define U8_MIN UINT8_MIN #define I16_MAX INT16_MAX #define I16_MIN INT16_MIN #define U16_MAX UINT16_MAX #define U16_MIN UINT16_MIN #define I32_MAX INT32_MAX #define I32_MIN INT32_MIN #ifndef UINT32_MAX_BROKEN /* e.g. HP-UX with gcc messes this up */ # define U32_MAX UINT32_MAX #else # define U32_MAX 4294967295U #endif #define U32_MIN UINT32_MIN #else /* I8_MAX and I8_MIN constants are not defined, as I8 is an ambiguous type. Please search CHAR_MAX in perl.h for further details. */ #define U8_MAX PERL_UCHAR_MAX #define U8_MIN PERL_UCHAR_MIN #define I16_MAX PERL_SHORT_MAX #define I16_MIN PERL_SHORT_MIN #define U16_MAX PERL_USHORT_MAX #define U16_MIN PERL_USHORT_MIN #if LONGSIZE > 4 # define I32_MAX PERL_INT_MAX # define I32_MIN PERL_INT_MIN # define U32_MAX PERL_UINT_MAX # define U32_MIN PERL_UINT_MIN #else # define I32_MAX PERL_LONG_MAX # define I32_MIN PERL_LONG_MIN # define U32_MAX PERL_ULONG_MAX # define U32_MIN PERL_ULONG_MIN #endif #endif /* log(2) is pretty close to 0.30103, just in case anyone is grepping for it */ #define BIT_DIGITS(N) (((N)*146)/485 + 1) /* log2(10) =~ 146/485 */ #define TYPE_DIGITS(T) BIT_DIGITS(sizeof(T) * 8) #define TYPE_CHARS(T) (TYPE_DIGITS(T) + 2) /* sign, NUL */ #define Ctl(ch) ((ch) & 037) /* =head1 Miscellaneous Functions =for apidoc Am|bool|strNE|char* s1|char* s2 Test two strings to see if they are different. Returns true or false. =for apidoc Am|bool|strEQ|char* s1|char* s2 Test two strings to see if they are equal. Returns true or false. =for apidoc Am|bool|strLT|char* s1|char* s2 Test two strings to see if the first, C, is less than the second, C. Returns true or false. =for apidoc Am|bool|strLE|char* s1|char* s2 Test two strings to see if the first, C, is less than or equal to the second, C. Returns true or false. =for apidoc Am|bool|strGT|char* s1|char* s2 Test two strings to see if the first, C, is greater than the second, C. Returns true or false. =for apidoc Am|bool|strGE|char* s1|char* s2 Test two strings to see if the first, C, is greater than or equal to the second, C. Returns true or false. =for apidoc Am|bool|strnNE|char* s1|char* s2|STRLEN len Test two strings to see if they are different. The C parameter indicates the number of bytes to compare. Returns true or false. (A wrapper for C). =for apidoc Am|bool|strnEQ|char* s1|char* s2|STRLEN len Test two strings to see if they are equal. The C parameter indicates the number of bytes to compare. Returns true or false. (A wrapper for C). =cut */ #define strNE(s1,s2) (strcmp(s1,s2)) #define strEQ(s1,s2) (!strcmp(s1,s2)) #define strLT(s1,s2) (strcmp(s1,s2) < 0) #define strLE(s1,s2) (strcmp(s1,s2) <= 0) #define strGT(s1,s2) (strcmp(s1,s2) > 0) #define strGE(s1,s2) (strcmp(s1,s2) >= 0) #define strnNE(s1,s2,l) (strncmp(s1,s2,l)) #define strnEQ(s1,s2,l) (!strncmp(s1,s2,l)) #ifdef HAS_MEMCMP # define memNE(s1,s2,l) (memcmp(s1,s2,l)) # define memEQ(s1,s2,l) (!memcmp(s1,s2,l)) #else # define memNE(s1,s2,l) (bcmp(s1,s2,l)) # define memEQ(s1,s2,l) (!bcmp(s1,s2,l)) #endif /* * Character classes. * * Unfortunately, the introduction of locales means that we * can't trust isupper(), etc. to tell the truth. And when * it comes to /\w+/ with tainting enabled, we *must* be able * to trust our character classes. * * Therefore, the default tests in the text of Perl will be * independent of locale. Any code that wants to depend on * the current locale will use the tests that begin with "lc". */ #ifdef HAS_SETLOCALE /* XXX Is there a better test for this? */ # ifndef CTYPE256 # define CTYPE256 # endif #endif /* =head1 Character classes =for apidoc Am|bool|isALNUM|char ch Returns a boolean indicating whether the C C is an ASCII alphanumeric character (including underscore) or digit. =for apidoc Am|bool|isALPHA|char ch Returns a boolean indicating whether the C C is an ASCII alphabetic character. =for apidoc Am|bool|isSPACE|char ch Returns a boolean indicating whether the C C is whitespace. =for apidoc Am|bool|isDIGIT|char ch Returns a boolean indicating whether the C C is an ASCII digit. =for apidoc Am|bool|isUPPER|char ch Returns a boolean indicating whether the C C is an uppercase character. =for apidoc Am|bool|isLOWER|char ch Returns a boolean indicating whether the C C is a lowercase character. =for apidoc Am|char|toUPPER|char ch Converts the specified character to uppercase. =for apidoc Am|char|toLOWER|char ch Converts the specified character to lowercase. =cut */ #define isALNUM(c) (isALPHA(c) || isDIGIT(c) || (c) == '_') #define isIDFIRST(c) (isALPHA(c) || (c) == '_') #define isALPHA(c) (isUPPER(c) || isLOWER(c)) #define isSPACE(c) \ ((c) == ' ' || (c) == '\t' || (c) == '\n' || (c) =='\r' || (c) == '\f') #define isPSXSPC(c) (isSPACE(c) || (c) == '\v') #define isBLANK(c) ((c) == ' ' || (c) == '\t') #define isDIGIT(c) ((c) >= '0' && (c) <= '9') #ifdef EBCDIC /* In EBCDIC we do not do locales: therefore() isupper() is fine. */ # define isUPPER(c) isupper(c) # define isLOWER(c) islower(c) # define isALNUMC(c) isalnum(c) # define isASCII(c) isascii(c) # define isCNTRL(c) iscntrl(c) # define isGRAPH(c) isgraph(c) # define isPRINT(c) isprint(c) # define isPUNCT(c) ispunct(c) # define isXDIGIT(c) isxdigit(c) # define toUPPER(c) toupper(c) # define toLOWER(c) tolower(c) #else # define isUPPER(c) ((c) >= 'A' && (c) <= 'Z') # define isLOWER(c) ((c) >= 'a' && (c) <= 'z') # define isALNUMC(c) (isALPHA(c) || isDIGIT(c)) # define isASCII(c) ((c) <= 127) # define isCNTRL(c) ((c) < ' ' || (c) == 127) # define isGRAPH(c) (isALNUM(c) || isPUNCT(c)) # define isPRINT(c) (((c) > 32 && (c) < 127) || (c) == ' ') # define isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126)) # define isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) # define toUPPER(c) (isLOWER(c) ? (c) - ('a' - 'A') : (c)) # define toLOWER(c) (isUPPER(c) ? (c) + ('a' - 'A') : (c)) #endif #ifdef USE_NEXT_CTYPE # define isALNUM_LC(c) \ (NXIsAlNum((unsigned int)(c)) || (char)(c) == '_') # define isIDFIRST_LC(c) \ (NXIsAlpha((unsigned int)(c)) || (char)(c) == '_') # define isALPHA_LC(c) NXIsAlpha((unsigned int)(c)) # define isSPACE_LC(c) NXIsSpace((unsigned int)(c)) # define isDIGIT_LC(c) NXIsDigit((unsigned int)(c)) # define isUPPER_LC(c) NXIsUpper((unsigned int)(c)) # define isLOWER_LC(c) NXIsLower((unsigned int)(c)) # define isALNUMC_LC(c) NXIsAlNum((unsigned int)(c)) # define isCNTRL_LC(c) NXIsCntrl((unsigned int)(c)) # define isGRAPH_LC(c) NXIsGraph((unsigned int)(c)) # define isPRINT_LC(c) NXIsPrint((unsigned int)(c)) # define isPUNCT_LC(c) NXIsPunct((unsigned int)(c)) # define toUPPER_LC(c) NXToUpper((unsigned int)(c)) # define toLOWER_LC(c) NXToLower((unsigned int)(c)) #else /* !USE_NEXT_CTYPE */ # if defined(CTYPE256) || (!defined(isascii) && !defined(HAS_ISASCII)) # define isALNUM_LC(c) (isalnum((unsigned char)(c)) || (char)(c) == '_') # define isIDFIRST_LC(c) (isalpha((unsigned char)(c)) || (char)(c) == '_') # define isALPHA_LC(c) isalpha((unsigned char)(c)) # define isSPACE_LC(c) isspace((unsigned char)(c)) # define isDIGIT_LC(c) isdigit((unsigned char)(c)) # define isUPPER_LC(c) isupper((unsigned char)(c)) # define isLOWER_LC(c) islower((unsigned char)(c)) # define isALNUMC_LC(c) isalnum((unsigned char)(c)) # define isCNTRL_LC(c) iscntrl((unsigned char)(c)) # define isGRAPH_LC(c) isgraph((unsigned char)(c)) # define isPRINT_LC(c) isprint((unsigned char)(c)) # define isPUNCT_LC(c) ispunct((unsigned char)(c)) # define toUPPER_LC(c) toupper((unsigned char)(c)) # define toLOWER_LC(c) tolower((unsigned char)(c)) # else # define isALNUM_LC(c) (isascii(c) && (isalnum(c) || (c) == '_')) # define isIDFIRST_LC(c) (isascii(c) && (isalpha(c) || (c) == '_')) # define isALPHA_LC(c) (isascii(c) && isalpha(c)) # define isSPACE_LC(c) (isascii(c) && isspace(c)) # define isDIGIT_LC(c) (isascii(c) && isdigit(c)) # define isUPPER_LC(c) (isascii(c) && isupper(c)) # define isLOWER_LC(c) (isascii(c) && islower(c)) # define isALNUMC_LC(c) (isascii(c) && isalnum(c)) # define isCNTRL_LC(c) (isascii(c) && iscntrl(c)) # define isGRAPH_LC(c) (isascii(c) && isgraph(c)) # define isPRINT_LC(c) (isascii(c) && isprint(c)) # define isPUNCT_LC(c) (isascii(c) && ispunct(c)) # define toUPPER_LC(c) toupper(c) # define toLOWER_LC(c) tolower(c) # endif #endif /* USE_NEXT_CTYPE */ #define isPSXSPC_LC(c) (isSPACE_LC(c) || (c) == '\v') #define isBLANK_LC(c) isBLANK(c) /* could be wrong */ #define isALNUM_uni(c) is_uni_alnum(c) #define isIDFIRST_uni(c) is_uni_idfirst(c) #define isALPHA_uni(c) is_uni_alpha(c) #define isSPACE_uni(c) is_uni_space(c) #define isDIGIT_uni(c) is_uni_digit(c) #define isUPPER_uni(c) is_uni_upper(c) #define isLOWER_uni(c) is_uni_lower(c) #define isALNUMC_uni(c) is_uni_alnumc(c) #define isASCII_uni(c) is_uni_ascii(c) #define isCNTRL_uni(c) is_uni_cntrl(c) #define isGRAPH_uni(c) is_uni_graph(c) #define isPRINT_uni(c) is_uni_print(c) #define isPUNCT_uni(c) is_uni_punct(c) #define isXDIGIT_uni(c) is_uni_xdigit(c) #define toUPPER_uni(c,s,l) to_uni_upper(c,s,l) #define toTITLE_uni(c,s,l) to_uni_title(c,s,l) #define toLOWER_uni(c,s,l) to_uni_lower(c,s,l) #define toFOLD_uni(c,s,l) to_uni_fold(c,s,l) #define isPSXSPC_uni(c) (isSPACE_uni(c) ||(c) == '\f') #define isBLANK_uni(c) isBLANK(c) /* could be wrong */ #define isALNUM_LC_uvchr(c) (c < 256 ? isALNUM_LC(c) : is_uni_alnum_lc(c)) #define isIDFIRST_LC_uvchr(c) (c < 256 ? isIDFIRST_LC(c) : is_uni_idfirst_lc(c)) #define isALPHA_LC_uvchr(c) (c < 256 ? isALPHA_LC(c) : is_uni_alpha_lc(c)) #define isSPACE_LC_uvchr(c) (c < 256 ? isSPACE_LC(c) : is_uni_space_lc(c)) #define isDIGIT_LC_uvchr(c) (c < 256 ? isDIGIT_LC(c) : is_uni_digit_lc(c)) #define isUPPER_LC_uvchr(c) (c < 256 ? isUPPER_LC(c) : is_uni_upper_lc(c)) #define isLOWER_LC_uvchr(c) (c < 256 ? isLOWER_LC(c) : is_uni_lower_lc(c)) #define isALNUMC_LC_uvchr(c) (c < 256 ? isALNUMC_LC(c) : is_uni_alnumc_lc(c)) #define isCNTRL_LC_uvchr(c) (c < 256 ? isCNTRL_LC(c) : is_uni_cntrl_lc(c)) #define isGRAPH_LC_uvchr(c) (c < 256 ? isGRAPH_LC(c) : is_uni_graph_lc(c)) #define isPRINT_LC_uvchr(c) (c < 256 ? isPRINT_LC(c) : is_uni_print_lc(c)) #define isPUNCT_LC_uvchr(c) (c < 256 ? isPUNCT_LC(c) : is_uni_punct_lc(c)) #define isPSXSPC_LC_uni(c) (isSPACE_LC_uni(c) ||(c) == '\f') #define isBLANK_LC_uni(c) isBLANK(c) /* could be wrong */ #define isALNUM_utf8(p) is_utf8_alnum(p) /* The ID_Start of Unicode is quite limiting: it assumes a L-class * character (meaning that you cannot have, say, a CJK character). * Instead, let's allow ID_Continue but not digits. */ #define isIDFIRST_utf8(p) (is_utf8_idcont(p) && !is_utf8_digit(p)) #define isALPHA_utf8(p) is_utf8_alpha(p) #define isSPACE_utf8(p) is_utf8_space(p) #define isDIGIT_utf8(p) is_utf8_digit(p) #define isUPPER_utf8(p) is_utf8_upper(p) #define isLOWER_utf8(p) is_utf8_lower(p) #define isALNUMC_utf8(p) is_utf8_alnumc(p) #define isASCII_utf8(p) is_utf8_ascii(p) #define isCNTRL_utf8(p) is_utf8_cntrl(p) #define isGRAPH_utf8(p) is_utf8_graph(p) #define isPRINT_utf8(p) is_utf8_print(p) #define isPUNCT_utf8(p) is_utf8_punct(p) #define isXDIGIT_utf8(p) is_utf8_xdigit(p) #define toUPPER_utf8(p,s,l) to_utf8_upper(p,s,l) #define toTITLE_utf8(p,s,l) to_utf8_title(p,s,l) #define toLOWER_utf8(p,s,l) to_utf8_lower(p,s,l) #define isPSXSPC_utf8(c) (isSPACE_utf8(c) ||(c) == '\f') #define isBLANK_utf8(c) isBLANK(c) /* could be wrong */ #define isALNUM_LC_utf8(p) isALNUM_LC_uvchr(utf8_to_uvchr(p, 0)) #define isIDFIRST_LC_utf8(p) isIDFIRST_LC_uvchr(utf8_to_uvchr(p, 0)) #define isALPHA_LC_utf8(p) isALPHA_LC_uvchr(utf8_to_uvchr(p, 0)) #define isSPACE_LC_utf8(p) isSPACE_LC_uvchr(utf8_to_uvchr(p, 0)) #define isDIGIT_LC_utf8(p) isDIGIT_LC_uvchr(utf8_to_uvchr(p, 0)) #define isUPPER_LC_utf8(p) isUPPER_LC_uvchr(utf8_to_uvchr(p, 0)) #define isLOWER_LC_utf8(p) isLOWER_LC_uvchr(utf8_to_uvchr(p, 0)) #define isALNUMC_LC_utf8(p) isALNUMC_LC_uvchr(utf8_to_uvchr(p, 0)) #define isCNTRL_LC_utf8(p) isCNTRL_LC_uvchr(utf8_to_uvchr(p, 0)) #define isGRAPH_LC_utf8(p) isGRAPH_LC_uvchr(utf8_to_uvchr(p, 0)) #define isPRINT_LC_utf8(p) isPRINT_LC_uvchr(utf8_to_uvchr(p, 0)) #define isPUNCT_LC_utf8(p) isPUNCT_LC_uvchr(utf8_to_uvchr(p, 0)) #define isPSXSPC_LC_utf8(c) (isSPACE_LC_utf8(c) ||(c) == '\f') #define isBLANK_LC_utf8(c) isBLANK(c) /* could be wrong */ #ifdef EBCDIC # ifdef PERL_IMPLICIT_CONTEXT # define toCTRL(c) Perl_ebcdic_control(aTHX_ c) # else # define toCTRL Perl_ebcdic_control # endif #else /* This conversion works both ways, strangely enough. */ # define toCTRL(c) (toUPPER(c) ^ 64) #endif /* Line numbers are unsigned, 32 bits. */ typedef U32 line_t; #ifdef lint #define NOLINE ((line_t)0) #else #define NOLINE ((line_t) 4294967295UL) #endif /* =head1 SV Manipulation Functions =for apidoc Am|SV*|NEWSV|int id|STRLEN len Creates a new SV. A non-zero C parameter indicates the number of bytes of preallocated string space the SV should have. An extra byte for a tailing NUL is also reserved. (SvPOK is not set for the SV even if string space is allocated.) The reference count for the new SV is set to 1. C is an integer id between 0 and 1299 (used to identify leaks). =head1 Memory Management =for apidoc Am|void|New|int id|void* ptr|int nitems|type The XSUB-writer's interface to the C C function. =for apidoc Am|void|Newc|int id|void* ptr|int nitems|type|cast The XSUB-writer's interface to the C C function, with cast. =for apidoc Am|void|Newz|int id|void* ptr|int nitems|type The XSUB-writer's interface to the C C function. The allocated memory is zeroed with C. =for apidoc Am|void|Renew|void* ptr|int nitems|type The XSUB-writer's interface to the C C function. =for apidoc Am|void|Renewc|void* ptr|int nitems|type|cast The XSUB-writer's interface to the C C function, with cast. =for apidoc Am|void|Safefree|void* ptr The XSUB-writer's interface to the C C function. =for apidoc Am|void|Move|void* src|void* dest|int nitems|type The XSUB-writer's interface to the C C function. The C is the source, C is the destination, C is the number of items, and C is the type. Can do overlapping moves. See also C. =for apidoc Am|void *|MoveD|void* src|void* dest|int nitems|type Like C but returns dest. Useful for encouraging compilers to tail-call optimise. =for apidoc Am|void|Copy|void* src|void* dest|int nitems|type The XSUB-writer's interface to the C C function. The C is the source, C is the destination, C is the number of items, and C is the type. May fail on overlapping copies. See also C. =for apidoc Am|void *|CopyD|void* src|void* dest|int nitems|type Like C but returns dest. Useful for encouraging compilers to tail-call optimise. =for apidoc Am|void|Zero|void* dest|int nitems|type The XSUB-writer's interface to the C C function. The C is the destination, C is the number of items, and C is the type. =for apidoc Am|void *|ZeroD|void* dest|int nitems|type Like C but returns dest. Useful for encouraging compilers to tail-call optimise. =for apidoc Am|void|StructCopy|type src|type dest|type This is an architecture-independent macro to copy one structure to another. =for apidoc Am|void|Poison|void* dest|int nitems|type Fill up memory with a pattern (byte 0xAB over and over again) that hopefully catches attempts to access uninitialized memory. =cut */ #ifndef lint #define NEWSV(x,len) newSV(len) #ifdef PERL_MALLOC_WRAP #define MEM_WRAP_CHECK(n,t) \ (void)((n)>((MEM_SIZE)~0)/sizeof(t)?(Perl_croak_nocontext(PL_memory_wrap),0):0) #define MEM_WRAP_CHECK_1(n,t,a) \ (void)((n)>((MEM_SIZE)~0)/sizeof(t)?(Perl_croak_nocontext(a),0):0) #define MEM_WRAP_CHECK_2(n,t,a,b) \ (void)((n)>((MEM_SIZE)~0)/sizeof(t)?(Perl_croak_nocontext(a,b),0):0) #define New(x,v,n,t) (v = (MEM_WRAP_CHECK(n,t), (t*)safemalloc((MEM_SIZE)((n)*sizeof(t))))) #define Newc(x,v,n,t,c) (v = (MEM_WRAP_CHECK(n,t), (c*)safemalloc((MEM_SIZE)((n)*sizeof(t))))) #define Newz(x,v,n,t) (v = (MEM_WRAP_CHECK(n,t), (t*)safemalloc((MEM_SIZE)((n)*sizeof(t))))), \ memzero((char*)(v), (n)*sizeof(t)) #define Renew(v,n,t) \ (v = (MEM_WRAP_CHECK(n,t), (t*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))) #define Renewc(v,n,t,c) \ (v = (MEM_WRAP_CHECK(n,t), (c*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))) #define Safefree(d) safefree((Malloc_t)(d)) #define Move(s,d,n,t) (MEM_WRAP_CHECK(n,t), (void)memmove((char*)(d),(char*)(s), (n) * sizeof(t))) #define Copy(s,d,n,t) (MEM_WRAP_CHECK(n,t), (void)memcpy((char*)(d),(char*)(s), (n) * sizeof(t))) #define Zero(d,n,t) (MEM_WRAP_CHECK(n,t), (void)memzero((char*)(d), (n) * sizeof(t))) #define MoveD(s,d,n,t) (MEM_WRAP_CHECK(n,t), memmove((char*)(d),(char*)(s), (n) * sizeof(t))) #define CopyD(s,d,n,t) (MEM_WRAP_CHECK(n,t), memcpy((char*)(d),(char*)(s), (n) * sizeof(t))) #ifdef HAS_MEMSET #define ZeroD(d,n,t) (MEM_WRAP_CHECK(n,t), memzero((char*)(d), (n) * sizeof(t))) #else /* Using bzero(), which returns void. */ #define ZeroD(d,n,t) (MEM_WRAP_CHECK(n,t), memzero((char*)(d), (n) * sizeof(t)),d) #endif #define Poison(d,n,t) (MEM_WRAP_CHECK(n,t), (void)memset((char*)(d), 0xAB, (n) * sizeof(t))) #else #define MEM_WRAP_CHECK(n,t) #define MEM_WRAP_CHECK_1(n,t,a) #define MEM_WRAP_CHECK_2(n,t,a,b) #define New(x,v,n,t) (v = (t*)safemalloc((MEM_SIZE)((n)*sizeof(t)))) #define Newc(x,v,n,t,c) (v = (c*)safemalloc((MEM_SIZE)((n)*sizeof(t)))) #define Newz(x,v,n,t) (v = (t*)safemalloc((MEM_SIZE)((n)*sizeof(t)))), \ memzero((char*)(v), (n)*sizeof(t)) #define Renew(v,n,t) \ (v = (t*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t)))) #define Renewc(v,n,t,c) \ (v = (c*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t)))) #define Safefree(d) safefree((Malloc_t)(d)) #define Move(s,d,n,t) (void)memmove((char*)(d),(char*)(s), (n) * sizeof(t)) #define Copy(s,d,n,t) (void)memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) #define Zero(d,n,t) (void)memzero((char*)(d), (n) * sizeof(t)) #define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t)) #define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) #ifdef HAS_MEMSET #define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t)) #else #define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)),d) #endif #define Poison(d,n,t) (void)memset((char*)(d), 0xAB, (n) * sizeof(t)) #endif #else /* lint */ #define New(x,v,n,s) (v = Null(s *)) #define Newc(x,v,n,s,c) (v = Null(s *)) #define Newz(x,v,n,s) (v = Null(s *)) #define Renew(v,n,s) (v = Null(s *)) #define Move(s,d,n,t) #define Copy(s,d,n,t) #define Zero(d,n,t) #define MoveD(s,d,n,t) d #define CopyD(s,d,n,t) d #define ZeroD(d,n,t) d #define Poison(d,n,t) #define Safefree(d) (d) = (d) #endif /* lint */ #ifdef USE_STRUCT_COPY #define StructCopy(s,d,t) (*((t*)(d)) = *((t*)(s))) #else #define StructCopy(s,d,t) Copy(s,d,1,t) #endif #define C_ARRAY_LENGTH(a) (sizeof(a)/sizeof((a)[0])) #ifdef NEED_VA_COPY # ifdef va_copy # define Perl_va_copy(s, d) va_copy(d, s) # else # if defined(__va_copy) # define Perl_va_copy(s, d) __va_copy(d, s) # else # define Perl_va_copy(s, d) Copy(s, d, 1, va_list) # endif # endif #endif /* convenience debug macros */ #ifdef USE_ITHREADS #define pTHX_FORMAT "Perl interpreter: 0x%p" #define pTHX__FORMAT ", Perl interpreter: 0x%p" #define pTHX_VALUE_ (unsigned long)my_perl, #define pTHX_VALUE (unsigned long)my_perl #define pTHX__VALUE_ ,(unsigned long)my_perl, #define pTHX__VALUE ,(unsigned long)my_perl #else #define pTHX_FORMAT #define pTHX__FORMAT #define pTHX_VALUE_ #define pTHX_VALUE #define pTHX__VALUE_ #define pTHX__VALUE #endif /* USE_ITHREADS */ ================================================ FILE: tests/perlbench/hctype.h ================================================ /* This file is autogenerated by mkhctype */ #define HCTYPE_SPACE 0x01 #define HCTYPE_NAME_FIRST 0x02 #define HCTYPE_NAME_CHAR 0x04 #define HCTYPE_NOT_SPACE_GT 0x08 #define HCTYPE_NOT_SPACE_EQ_GT 0x10 #define HCTYPE_NOT_SPACE_SLASH_GT 0x20 #define HCTYPE_NOT_SPACE_EQ_SLASH_GT 0x40 #define HCTYPE(c) hctype[(unsigned char)(c)] #define isHCTYPE(c, w) (HCTYPE(c) & (w)) #define isHSPACE(c) isHCTYPE(c, HCTYPE_SPACE) #define isHNAME_FIRST(c) isHCTYPE(c, HCTYPE_NAME_FIRST) #define isHNAME_CHAR(c) isHCTYPE(c, HCTYPE_NAME_CHAR) #define isHNOT_SPACE_GT(c) isHCTYPE(c, HCTYPE_NOT_SPACE_GT) typedef unsigned char hctype_t; static hctype_t hctype[] = { 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 0 - 7 */ 0x78, 0x01, 0x01, 0x78, 0x01, 0x01, 0x78, 0x78, /* 8 - 15 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 16 - 23 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 24 - 31 */ 0x01, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 32 - 39 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x7c, 0x7c, 0x58, /* 40 - 47 */ 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, /* 48 - 55 */ 0x7c, 0x7c, 0x7e, 0x78, 0x78, 0x28, 0x00, 0x78, /* 56 - 63 */ 0x78, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, /* 64 - 71 */ 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, /* 72 - 79 */ 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, /* 80 - 87 */ 0x7e, 0x7e, 0x7e, 0x78, 0x78, 0x78, 0x78, 0x7e, /* 88 - 95 */ 0x78, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, /* 96 - 103 */ 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, /* 104 - 111 */ 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, /* 112 - 119 */ 0x7e, 0x7e, 0x7e, 0x78, 0x78, 0x78, 0x78, 0x78, /* 120 - 127 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 128 - 135 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 136 - 143 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 144 - 151 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 152 - 159 */ 0x01, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 160 - 167 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 168 - 175 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 176 - 183 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 184 - 191 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 192 - 199 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 200 - 207 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 208 - 215 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 216 - 223 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 224 - 231 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 232 - 239 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 240 - 247 */ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, /* 248 - 255 */ }; ================================================ FILE: tests/perlbench/hparser.c ================================================ /* $Id: hparser.c,v 2.119 2004/12/28 13:47:44 gisle Exp $ * * Copyright 1999-2004, Gisle Aas * Copyright 1999-2000, Michael A. Chase * * This library is free software; you can redistribute it and/or * modify it under the same terms as Perl itself. */ #ifndef EXTERN #define EXTERN extern #endif #include "hctype.h" /* isH...() macros */ #include "tokenpos.h" /* dTOKEN; PUSH_TOKEN() */ static struct literal_tag { int len; char* str; int is_cdata; } literal_mode_elem[] = { {6, "script", 1}, {5, "style", 1}, {3, "xmp", 1}, {9, "plaintext", 1}, {5, "title", 0}, {8, "textarea", 0}, {0, 0, 0} }; enum argcode { ARG_SELF = 1, /* need to avoid '\0' in argspec string */ ARG_TOKENS, ARG_TOKENPOS, ARG_TOKEN0, ARG_TAGNAME, ARG_TAG, ARG_ATTR, ARG_ATTRARR, ARG_ATTRSEQ, ARG_TEXT, ARG_DTEXT, ARG_IS_CDATA, ARG_SKIPPED_TEXT, ARG_OFFSET, ARG_OFFSET_END, ARG_LENGTH, ARG_LINE, ARG_COLUMN, ARG_EVENT, ARG_UNDEF, ARG_LITERAL, /* Always keep last */ /* extra flags always encoded first */ ARG_FLAG_FLAT_ARRAY }; char *argname[] = { /* Must be in the same order as enum argcode */ "self", /* ARG_SELF */ "tokens", /* ARG_TOKENS */ "tokenpos", /* ARG_TOKENPOS */ "token0", /* ARG_TOKEN0 */ "tagname", /* ARG_TAGNAME */ "tag", /* ARG_TAG */ "attr", /* ARG_ATTR */ "@attr", /* ARG_ATTRARR */ "attrseq", /* ARG_ATTRSEQ */ "text", /* ARG_TEXT */ "dtext", /* ARG_DTEXT */ "is_cdata", /* ARG_IS_CDATA */ "skipped_text", /* ARG_SKIPPED_TEXT */ "offset", /* ARG_OFFSET */ "offset_end", /* ARG_OFFSET_END */ "length", /* ARG_LENGTH */ "line", /* ARG_LINE */ "column", /* ARG_COLUMN */ "event", /* ARG_EVENT */ "undef", /* ARG_UNDEF */ /* ARG_LITERAL (not compared) */ /* ARG_FLAG_FLAT_ARRAY */ }; #define CASE_SENSITIVE(p_state) \ ((p_state)->xml_mode || (p_state)->case_sensitive) static void flush_pending_text(PSTATE* p_state, SV* self); /* * Parser functions. * * parse() - top level entry point. * deals with text and calls one of its * subordinate parse_*() routines after * looking at the first char after "<" * parse_decl() - deals with declarations * parse_comment() - deals with * parse_marked_section - deals with * parse_end() - deals with end tags * parse_start() - deals with start tags * parse_process() - deals with process instructions * parse_null() - deals with anything else <....> * * report_event() - called whenever any of the parse*() routines * has recongnized something. */ static void report_event(PSTATE* p_state, event_id_t event, char *beg, char *end, U32 utf8, token_pos_t *tokens, int num_tokens, SV* self ) { struct p_handler *h; dTHX; dSP; AV *array; STRLEN my_na; char *argspec; char *s; #ifdef UNICODE_HTML_PARSER #define CHR_DIST(a,b) (utf8 ? utf8_distance((U8*)(a),(U8*)(b)) : (a) - (b)) #else #define CHR_DIST(a,b) ((a) - (b)) #endif /* capture offsets */ STRLEN offset = p_state->offset; STRLEN line = p_state->line; STRLEN column = p_state->column; #if 0 { /* used for debugging at some point */ char *s = beg; int i; /* print debug output */ switch(event) { case E_DECLARATION: printf("DECLARATION"); break; case E_COMMENT: printf("COMMENT"); break; case E_START: printf("START"); break; case E_END: printf("END"); break; case E_TEXT: printf("TEXT"); break; case E_PROCESS: printf("PROCESS"); break; case E_NONE: printf("NONE"); break; default: printf("EVENT #%d", event); break; } printf(" ["); while (s < end) { if (*s == '\n') { putchar('\\'); putchar('n'); } else putchar(*s); s++; } printf("] %d\n", end - beg); for (i = 0; i < num_tokens; i++) { printf(" token %d: %d %d\n", i, tokens[i].beg - beg, tokens[i].end - tokens[i].beg); } } #endif if (p_state->pending_end_tag && event != E_TEXT && event != E_COMMENT) { token_pos_t t; char dummy; t.beg = p_state->pending_end_tag; t.end = p_state->pending_end_tag + strlen(p_state->pending_end_tag); p_state->pending_end_tag = 0; report_event(p_state, E_END, &dummy, &dummy, 0, &t, 1, self); SPAGAIN; } /* update offsets */ p_state->offset += CHR_DIST(end, beg); if (line) { char *s = beg; char *nl = NULL; while (s < end) { if (*s == '\n') { p_state->line++; nl = s; } s++; } if (nl) p_state->column = CHR_DIST(end, nl) - 1; else p_state->column += CHR_DIST(end, beg); } if (event == E_NONE) goto IGNORE_EVENT; #ifdef MARKED_SECTION if (p_state->ms == MS_IGNORE) goto IGNORE_EVENT; #endif /* tag filters */ if (p_state->ignore_tags || p_state->report_tags || p_state->ignore_elements) { if (event == E_START || event == E_END) { SV* tagname = p_state->tmp; assert(num_tokens >= 1); sv_setpvn(tagname, tokens[0].beg, tokens[0].end - tokens[0].beg); if (utf8) SvUTF8_on(tagname); else SvUTF8_off(tagname); if (!CASE_SENSITIVE(p_state)) sv_lower(aTHX_ tagname); if (p_state->ignoring_element) { if (sv_eq(p_state->ignoring_element, tagname)) { if (event == E_START) p_state->ignore_depth++; else if (--p_state->ignore_depth == 0) { SvREFCNT_dec(p_state->ignoring_element); p_state->ignoring_element = 0; } } goto IGNORE_EVENT; } if (p_state->ignore_elements && hv_fetch_ent(p_state->ignore_elements, tagname, 0, 0)) { p_state->ignoring_element = newSVsv(tagname); p_state->ignore_depth = 1; goto IGNORE_EVENT; } if (p_state->ignore_tags && hv_fetch_ent(p_state->ignore_tags, tagname, 0, 0)) { goto IGNORE_EVENT; } if (p_state->report_tags && !hv_fetch_ent(p_state->report_tags, tagname, 0, 0)) { goto IGNORE_EVENT; } } else if (p_state->ignoring_element) { goto IGNORE_EVENT; } } h = &p_state->handlers[event]; if (!h->cb) { /* event = E_DEFAULT; */ h = &p_state->handlers[E_DEFAULT]; if (!h->cb) goto IGNORE_EVENT; } if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) { /* FALSE scalar ('' or 0) means IGNORE this event */ return; } if (p_state->unbroken_text && event == E_TEXT) { /* should buffer text */ if (!p_state->pend_text) p_state->pend_text = newSV(256); if (SvOK(p_state->pend_text)) { if (p_state->is_cdata != p_state->pend_text_is_cdata) { flush_pending_text(p_state, self); SPAGAIN; goto INIT_PEND_TEXT; } } else { INIT_PEND_TEXT: p_state->pend_text_offset = offset; p_state->pend_text_line = line; p_state->pend_text_column = column; p_state->pend_text_is_cdata = p_state->is_cdata; sv_setpvn(p_state->pend_text, "", 0); if (!utf8) SvUTF8_off(p_state->pend_text); } #ifdef UNICODE_HTML_PARSER if (utf8 && !SvUTF8(p_state->pend_text)) sv_utf8_upgrade(p_state->pend_text); if (utf8 || !SvUTF8(p_state->pend_text)) { sv_catpvn(p_state->pend_text, beg, end - beg); } else { SV *tmp = newSVpvn(beg, end - beg); sv_utf8_upgrade(tmp); sv_catsv(p_state->pend_text, tmp); SvREFCNT_dec(tmp); } #else sv_catpvn(p_state->pend_text, beg, end - beg); #endif return; } else if (p_state->pend_text && SvOK(p_state->pend_text)) { flush_pending_text(p_state, self); SPAGAIN; } /* At this point we have decided to generate an event callback */ argspec = h->argspec ? SvPV(h->argspec, my_na) : ""; if (SvTYPE(h->cb) == SVt_PVAV) { if (*argspec == ARG_FLAG_FLAT_ARRAY) { argspec++; array = (AV*)h->cb; } else { /* start sub-array for accumulator array */ array = newAV(); } } else { array = 0; if (*argspec == ARG_FLAG_FLAT_ARRAY) argspec++; /* start argument stack for callback */ ENTER; SAVETMPS; PUSHMARK(SP); } for (s = argspec; *s; s++) { SV* arg = 0; int push_arg = 1; enum argcode argcode = (enum argcode)*s; switch( argcode ) { case ARG_SELF: arg = sv_mortalcopy(self); break; case ARG_TOKENS: if (num_tokens >= 1) { AV* av = newAV(); SV* prev_token = &PL_sv_undef; int i; av_extend(av, num_tokens); for (i = 0; i < num_tokens; i++) { if (tokens[i].beg) { prev_token = newSVpvn(tokens[i].beg, tokens[i].end-tokens[i].beg); if (utf8) SvUTF8_on(prev_token); av_push(av, prev_token); } else { /* boolean */ av_push(av, p_state->bool_attr_val ? newSVsv(p_state->bool_attr_val) : newSVsv(prev_token)); } } arg = sv_2mortal(newRV_noinc((SV*)av)); } break; case ARG_TOKENPOS: if (num_tokens >= 1 && tokens[0].beg >= beg) { AV* av = newAV(); int i; av_extend(av, num_tokens*2); for (i = 0; i < num_tokens; i++) { if (tokens[i].beg) { av_push(av, newSViv(CHR_DIST(tokens[i].beg, beg))); av_push(av, newSViv(CHR_DIST(tokens[i].end, tokens[i].beg))); } else { /* boolean tag value */ av_push(av, newSViv(0)); av_push(av, newSViv(0)); } } arg = sv_2mortal(newRV_noinc((SV*)av)); } break; case ARG_TOKEN0: case ARG_TAGNAME: /* fall through */ case ARG_TAG: if (num_tokens >= 1) { arg = sv_2mortal(newSVpvn(tokens[0].beg, tokens[0].end - tokens[0].beg)); if (utf8) SvUTF8_on(arg); if (!CASE_SENSITIVE(p_state) && argcode != ARG_TOKEN0) sv_lower(aTHX_ arg); if (argcode == ARG_TAG && event != E_START) { char *e_type = "!##/#?#"; sv_insert(arg, 0, 0, &e_type[event], 1); } } break; case ARG_ATTR: case ARG_ATTRARR: if (event == E_START) { HV* hv; int i; if (argcode == ARG_ATTR) { hv = newHV(); arg = sv_2mortal(newRV_noinc((SV*)hv)); } else { #ifdef __GNUC__ /* gcc -Wall reports this variable as possibly used uninitialized */ hv = 0; #endif push_arg = 0; /* deal with argument pushing here */ } for (i = 1; i < num_tokens; i += 2) { SV* attrname = newSVpvn(tokens[i].beg, tokens[i].end-tokens[i].beg); SV* attrval; if (utf8) SvUTF8_on(attrname); if (tokens[i+1].beg) { char *beg = tokens[i+1].beg; STRLEN len = tokens[i+1].end - beg; if (*beg == '"' || *beg == '\'') { assert(len >= 2 && *beg == beg[len-1]); beg++; len -= 2; } attrval = newSVpvn(beg, len); if (utf8) SvUTF8_on(attrval); if (!p_state->attr_encoded) { #ifdef UNICODE_HTML_PARSER if (p_state->utf8_mode) sv_utf8_decode(attrval); #endif decode_entities(aTHX_ attrval, p_state->entity2char, 0); if (p_state->utf8_mode) SvUTF8_off(attrval); } } else { /* boolean */ if (p_state->bool_attr_val) attrval = newSVsv(p_state->bool_attr_val); else attrval = newSVsv(attrname); } if (!CASE_SENSITIVE(p_state)) sv_lower(aTHX_ attrname); if (argcode == ARG_ATTR) { if (hv_exists_ent(hv, attrname, 0) || !hv_store_ent(hv, attrname, attrval, 0)) { SvREFCNT_dec(attrval); } SvREFCNT_dec(attrname); } else { /* ARG_ATTRARR */ if (array) { av_push(array, attrname); av_push(array, attrval); } else { XPUSHs(sv_2mortal(attrname)); XPUSHs(sv_2mortal(attrval)); } } } } else if (argcode == ARG_ATTRARR) { push_arg = 0; } break; case ARG_ATTRSEQ: /* (v2 compatibility stuff) */ if (event == E_START) { AV* av = newAV(); int i; for (i = 1; i < num_tokens; i += 2) { SV* attrname = newSVpvn(tokens[i].beg, tokens[i].end-tokens[i].beg); if (utf8) SvUTF8_on(attrname); if (!CASE_SENSITIVE(p_state)) sv_lower(aTHX_ attrname); av_push(av, attrname); } arg = sv_2mortal(newRV_noinc((SV*)av)); } break; case ARG_TEXT: arg = sv_2mortal(newSVpvn(beg, end - beg)); if (utf8) SvUTF8_on(arg); break; case ARG_DTEXT: if (event == E_TEXT) { arg = sv_2mortal(newSVpvn(beg, end - beg)); if (utf8) SvUTF8_on(arg); if (!p_state->is_cdata) { #ifdef UNICODE_HTML_PARSER if (p_state->utf8_mode) sv_utf8_decode(arg); #endif decode_entities(aTHX_ arg, p_state->entity2char, 1); if (p_state->utf8_mode) SvUTF8_off(arg); } } break; case ARG_IS_CDATA: if (event == E_TEXT) { arg = boolSV(p_state->is_cdata); } break; case ARG_SKIPPED_TEXT: arg = sv_2mortal(p_state->skipped_text); p_state->skipped_text = newSVpvn("", 0); break; case ARG_OFFSET: arg = sv_2mortal(newSViv(offset)); break; case ARG_OFFSET_END: arg = sv_2mortal(newSViv(offset + CHR_DIST(end, beg))); break; case ARG_LENGTH: arg = sv_2mortal(newSViv(CHR_DIST(end, beg))); break; case ARG_LINE: arg = sv_2mortal(newSViv(line)); break; case ARG_COLUMN: arg = sv_2mortal(newSViv(column)); break; case ARG_EVENT: assert(event >= 0 && event < EVENT_COUNT); arg = sv_2mortal(newSVpv(event_id_str[event], 0)); break; case ARG_LITERAL: { int len = (unsigned char)s[1]; arg = sv_2mortal(newSVpvn(s+2, len)); if (SvUTF8(h->argspec)) SvUTF8_on(arg); s += len + 1; } break; case ARG_UNDEF: arg = sv_mortalcopy(&PL_sv_undef); break; default: arg = sv_2mortal(newSVpvf("Bad argspec %d", *s)); break; } if (push_arg) { if (!arg) arg = sv_mortalcopy(&PL_sv_undef); if (array) { /* have to fix mortality here or add mortality to * XPUSHs after removing it from the switch cases. */ av_push(array, SvREFCNT_inc(arg)); } else { XPUSHs(arg); } } } if (array) { if (array != (AV*)h->cb) av_push((AV*)h->cb, newRV_noinc((SV*)array)); } else { PUTBACK; if ((enum argcode)*argspec == ARG_SELF && !SvROK(h->cb)) { char *method = SvPV(h->cb, my_na); call_method(method, G_DISCARD | G_EVAL | G_VOID); } else { call_sv(h->cb, G_DISCARD | G_EVAL | G_VOID); } if (SvTRUE(ERRSV)) { RETHROW; } FREETMPS; LEAVE; } if (p_state->skipped_text) SvCUR_set(p_state->skipped_text, 0); return; IGNORE_EVENT: if (p_state->skipped_text) { if (event != E_TEXT && p_state->pend_text && SvOK(p_state->pend_text)) flush_pending_text(p_state, self); #ifdef UNICODE_HTML_PARSER if (utf8 && !SvUTF8(p_state->skipped_text)) sv_utf8_upgrade(p_state->skipped_text); if (utf8 || !SvUTF8(p_state->skipped_text)) { #endif sv_catpvn(p_state->skipped_text, beg, end - beg); #ifdef UNICODE_HTML_PARSER } else { SV *tmp = newSVpvn(beg, end - beg); sv_utf8_upgrade(tmp); sv_catsv(p_state->pend_text, tmp); SvREFCNT_dec(tmp); } #endif } #undef CHR_DIST return; } EXTERN SV* argspec_compile(SV* src, PSTATE* p_state) { dTHX; SV* argspec = newSVpvn("", 0); STRLEN len; char *s = SvPV(src, len); char *end = s + len; if (SvUTF8(src)) SvUTF8_on(argspec); while (isHSPACE(*s)) s++; if (*s == '@') { /* try to deal with '@{ ... }' wrapping */ char *tmp = s + 1; while (isHSPACE(*tmp)) tmp++; if (*tmp == '{') { char c = ARG_FLAG_FLAT_ARRAY; sv_catpvn(argspec, &c, 1); tmp++; while (isHSPACE(*tmp)) tmp++; s = tmp; } } while (s < end) { if (isHNAME_FIRST(*s) || *s == '@') { char *name = s; int a = ARG_SELF; char **arg_name; s++; while (isHNAME_CHAR(*s)) s++; /* check identifier */ for ( arg_name = argname; a < ARG_LITERAL ; ++a, ++arg_name ) { if (strnEQ(*arg_name, name, s - name) && (*arg_name)[s - name] == '\0') break; } if (a < ARG_LITERAL) { char c = (unsigned char) a; sv_catpvn(argspec, &c, 1); if (a == ARG_LINE || a == ARG_COLUMN) { if (!p_state->line) p_state->line = 1; /* enable tracing of line/column */ } if (a == ARG_SKIPPED_TEXT) { if (!p_state->skipped_text) { p_state->skipped_text = newSVpvn("", 0); } } if (a == ARG_ATTR || a == ARG_ATTRARR || a == ARG_DTEXT) { p_state->argspec_entity_decode++; } } else { croak("Unrecognized identifier %.*s in argspec", s - name, name); } } else if (*s == '"' || *s == '\'') { char *string_beg = s; s++; while (s < end && *s != *string_beg && *s != '\\') s++; if (*s == *string_beg) { /* literal */ int len = s - string_beg - 1; unsigned char buf[2]; if (len > 255) croak("Literal string is longer than 255 chars in argspec"); buf[0] = ARG_LITERAL; buf[1] = len; sv_catpvn(argspec, (char*)buf, 2); sv_catpvn(argspec, string_beg+1, len); s++; } else if (*s == '\\') { croak("Backslash reserved for literal string in argspec"); } else { croak("Unterminated literal string in argspec"); } } else { croak("Bad argspec (%s)", s); } while (isHSPACE(*s)) s++; if (*s == '}' && SvPVX(argspec)[0] == ARG_FLAG_FLAT_ARRAY) { /* end of '@{ ... }' */ s++; while (isHSPACE(*s)) s++; if (s < end) croak("Bad argspec: stuff after @{...} (%s)", s); } if (s == end) break; if (*s != ',') { croak("Missing comma separator in argspec"); } s++; while (isHSPACE(*s)) s++; } return argspec; } static void flush_pending_text(PSTATE* p_state, SV* self) { dTHX; bool old_unbroken_text = p_state->unbroken_text; SV* old_pend_text = p_state->pend_text; bool old_is_cdata = p_state->is_cdata; STRLEN old_offset = p_state->offset; STRLEN old_line = p_state->line; STRLEN old_column = p_state->column; assert(p_state->pend_text && SvOK(p_state->pend_text)); p_state->unbroken_text = 0; p_state->pend_text = 0; p_state->is_cdata = p_state->pend_text_is_cdata; p_state->offset = p_state->pend_text_offset; p_state->line = p_state->pend_text_line; p_state->column = p_state->pend_text_column; report_event(p_state, E_TEXT, SvPVX(old_pend_text), SvEND(old_pend_text), SvUTF8(old_pend_text), 0, 0, self); SvOK_off(old_pend_text); p_state->unbroken_text = old_unbroken_text; p_state->pend_text = old_pend_text; p_state->is_cdata = old_is_cdata; p_state->offset = old_offset; p_state->line = old_line; p_state->column = old_column; } static char* skip_until_gt(char *beg, char *end) { /* tries to emulate quote skipping behaviour observed in MSIE */ char *s = beg; char quote = '\0'; char prev = ' '; while (s < end) { if (!quote && *s == '>') return s; if (*s == '"' || *s == '\'') { if (*s == quote) { quote = '\0'; /* end of quoted string */ } else if (!quote && (prev == ' ' || prev == '=')) { quote = *s; } } prev = *s++; } return end; } static char* parse_comment(PSTATE* p_state, char *beg, char *end, U32 utf8, SV* self) { char *s = beg; if (p_state->strict_comment) { dTOKENS(4); char *start_com = s; /* also used to signal inside/outside */ while (1) { /* try to locate "--" */ FIND_DASH_DASH: /* printf("find_dash_dash: [%s]\n", s); */ while (s < end && *s != '-' && *s != '>') s++; if (s == end) { FREE_TOKENS; return beg; } if (*s == '>') { s++; if (start_com) goto FIND_DASH_DASH; /* we are done recognizing all comments, make callbacks */ report_event(p_state, E_COMMENT, beg - 4, s, utf8, tokens, num_tokens, self); FREE_TOKENS; return s; } s++; if (s == end) { FREE_TOKENS; return beg; } if (*s == '-') { /* two dashes in a row seen */ s++; /* do something */ if (start_com) { PUSH_TOKEN(start_com, s-2); start_com = 0; } else { start_com = s; } } } } else if (p_state->no_dash_dash_comment_end) { token_pos_t token; token.beg = beg; /* a lone '>' signals end-of-comment */ while (s < end && *s != '>') s++; token.end = s; if (s < end) { s++; report_event(p_state, E_COMMENT, beg-4, s, utf8, &token, 1, self); return s; } else { return beg; } } else { /* non-strict comment */ token_pos_t token; token.beg = beg; /* try to locate /--\s*>/ which signals end-of-comment */ LOCATE_END: while (s < end && *s != '-') s++; token.end = s; if (s < end) { s++; if (*s == '-') { s++; while (isHSPACE(*s)) s++; if (*s == '>') { s++; /* yup */ report_event(p_state, E_COMMENT, beg-4, s, utf8, &token, 1, self); return s; } } if (s < end) { s = token.end + 1; goto LOCATE_END; } } if (s == end) return beg; } return 0; } #ifdef MARKED_SECTION static void marked_section_update(PSTATE* p_state) { dTHX; /* we look at p_state->ms_stack to determine p_state->ms */ AV* ms_stack = p_state->ms_stack; p_state->ms = MS_NONE; if (ms_stack) { int stack_len = av_len(ms_stack); int stack_idx; for (stack_idx = 0; stack_idx <= stack_len; stack_idx++) { SV** svp = av_fetch(ms_stack, stack_idx, 0); if (svp) { AV* tokens = (AV*)SvRV(*svp); int tokens_len = av_len(tokens); int i; assert(SvTYPE(tokens) == SVt_PVAV); for (i = 0; i <= tokens_len; i++) { SV** svp = av_fetch(tokens, i, 0); if (svp) { STRLEN len; char *token_str = SvPV(*svp, len); enum marked_section_t token; if (strEQ(token_str, "include")) token = MS_INCLUDE; else if (strEQ(token_str, "rcdata")) token = MS_RCDATA; else if (strEQ(token_str, "cdata")) token = MS_CDATA; else if (strEQ(token_str, "ignore")) token = MS_IGNORE; else token = MS_NONE; if (p_state->ms < token) p_state->ms = token; } } } } } /* printf("MS %d\n", p_state->ms); */ p_state->is_cdata = (p_state->ms == MS_CDATA); return; } static char* parse_marked_section(PSTATE* p_state, char *beg, char *end, U32 utf8, SV* self) { dTHX; char *s = beg; AV* tokens = 0; if (!p_state->marked_sections) return 0; FIND_NAMES: while (isHSPACE(*s)) s++; while (isHNAME_FIRST(*s)) { char *name_start = s; char *name_end; SV *name; s++; while (isHNAME_CHAR(*s)) s++; name_end = s; while (isHSPACE(*s)) s++; if (s == end) goto PREMATURE; if (!tokens) tokens = newAV(); name = newSVpvn(name_start, name_end - name_start); if (utf8) SvUTF8_on(name); av_push(tokens, sv_lower(aTHX_ name)); } if (*s == '-') { s++; if (*s == '-') { /* comment */ s++; while (1) { while (s < end && *s != '-') s++; if (s == end) goto PREMATURE; s++; /* skip first '-' */ if (*s == '-') { s++; /* comment finished */ goto FIND_NAMES; } } } else goto FAIL; } if (*s == '[') { s++; /* yup */ if (!tokens) { tokens = newAV(); av_push(tokens, newSVpvn("include", 7)); } if (!p_state->ms_stack) p_state->ms_stack = newAV(); av_push(p_state->ms_stack, newRV_noinc((SV*)tokens)); marked_section_update(p_state); report_event(p_state, E_NONE, beg, s, utf8, 0, 0, self); return s; } FAIL: SvREFCNT_dec(tokens); return 0; /* not yet implemented */ PREMATURE: SvREFCNT_dec(tokens); return beg; } #endif static char* parse_decl(PSTATE* p_state, char *beg, char *end, U32 utf8, SV* self) { char *s = beg + 2; if (*s == '-') { /* comment? */ char *tmp; s++; if (s == end) return beg; if (*s != '-') goto DECL_FAIL; /* nope, illegal */ /* yes, two dashes seen */ s++; tmp = parse_comment(p_state, s, end, utf8, self); return (tmp == s) ? beg : tmp; } #ifdef MARKED_SECTION if (*s == '[') { /* marked section */ char *tmp; s++; tmp = parse_marked_section(p_state, s, end, utf8, self); if (!tmp) goto DECL_FAIL; return (tmp == s) ? beg : tmp; } #endif if (*s == '>') { /* make into empty comment */ token_pos_t token; token.beg = s; token.end = s; s++; report_event(p_state, E_COMMENT, beg, s, utf8, &token, 1, self); return s; } if (isALPHA(*s)) { dTOKENS(8); char *decl_id = s; STRLEN decl_id_len; s++; /* declaration */ while (s < end && isHNAME_CHAR(*s)) s++; decl_id_len = s - decl_id; /* just hardcode a few names as the recognized declarations */ if (!((decl_id_len == 7 && strnEQx(decl_id, "DOCTYPE", 7, !p_state->xml_mode)) || (decl_id_len == 6 && strnEQx(decl_id, "ENTITY", 6, !p_state->xml_mode)) ) ) { goto FAIL; } /* first word available */ PUSH_TOKEN(decl_id, s); while (s < end && isHSPACE(*s)) { s++; while (s < end && isHSPACE(*s)) s++; if (s == end) goto PREMATURE; if (*s == '"' || *s == '\'') { char *str_beg = s; s++; while (s < end && *s != *str_beg) s++; if (s == end) goto PREMATURE; s++; PUSH_TOKEN(str_beg, s); } else if (*s == '-') { /* comment */ char *com_beg = s; s++; if (s == end) goto PREMATURE; if (*s != '-') goto FAIL; s++; while (1) { while (s < end && *s != '-') s++; if (s == end) goto PREMATURE; s++; if (s == end) goto PREMATURE; if (*s == '-') { s++; PUSH_TOKEN(com_beg, s); break; } } } else if (*s != '>') { /* plain word */ char *word_beg = s; s++; while (s < end && isHNOT_SPACE_GT(*s)) s++; if (s == end) goto PREMATURE; PUSH_TOKEN(word_beg, s); } else { break; } } if (s == end) goto PREMATURE; if (*s == '>') { s++; report_event(p_state, E_DECLARATION, beg, s, utf8, tokens, num_tokens, self); FREE_TOKENS; return s; } FAIL: FREE_TOKENS; goto DECL_FAIL; PREMATURE: FREE_TOKENS; return beg; } DECL_FAIL: if (p_state->strict_comment) return 0; /* consider everything up to the first '>' a comment */ s = skip_until_gt(s, end); if (s < end) { token_pos_t token; token.beg = beg + 2; token.end = s; s++; report_event(p_state, E_COMMENT, beg, s, utf8, &token, 1, self); return s; } else { return beg; } } static char* parse_start(PSTATE* p_state, char *beg, char *end, U32 utf8, SV* self) { char *s = beg; int empty_tag = 0; /* XML feature */ dTOKENS(16); hctype_t tag_name_first, tag_name_char; hctype_t attr_name_first, attr_name_char; if (p_state->strict_names || p_state->xml_mode) { tag_name_first = attr_name_first = HCTYPE_NAME_FIRST; tag_name_char = attr_name_char = HCTYPE_NAME_CHAR; } else { tag_name_first = tag_name_char = HCTYPE_NOT_SPACE_GT; attr_name_first = HCTYPE_NOT_SPACE_GT; attr_name_char = HCTYPE_NOT_SPACE_EQ_GT; } s += 2; while (s < end && isHCTYPE(*s, tag_name_char)) s++; PUSH_TOKEN(beg+1, s); /* tagname */ while (isHSPACE(*s)) s++; if (s == end) goto PREMATURE; while (isHCTYPE(*s, attr_name_first)) { /* attribute */ char *attr_name_beg = s; char *attr_name_end; s++; while (s < end && isHCTYPE(*s, attr_name_char)) s++; if (s == end) goto PREMATURE; attr_name_end = s; PUSH_TOKEN(attr_name_beg, attr_name_end); /* attr name */ while (isHSPACE(*s)) s++; if (s == end) goto PREMATURE; if (*s == '=') { /* with a value */ s++; while (isHSPACE(*s)) s++; if (s == end) goto PREMATURE; if (*s == '>') { /* parse it similar to ="" */ PUSH_TOKEN(s, s); break; } if (*s == '"' || *s == '\'') { char *str_beg = s; s++; while (s < end && *s != *str_beg) s++; if (s == end) goto PREMATURE; s++; PUSH_TOKEN(str_beg, s); } else { char *word_start = s; while (s < end && isHNOT_SPACE_GT(*s)) { if (p_state->xml_mode && *s == '/') break; s++; } if (s == end) goto PREMATURE; PUSH_TOKEN(word_start, s); } while (isHSPACE(*s)) s++; if (s == end) goto PREMATURE; } else { PUSH_TOKEN(0, 0); /* boolean attr value */ } } if (p_state->xml_mode && *s == '/') { s++; if (s == end) goto PREMATURE; empty_tag = 1; } if (*s == '>') { s++; /* done */ report_event(p_state, E_START, beg, s, utf8, tokens, num_tokens, self); if (empty_tag) report_event(p_state, E_END, s, s, utf8, tokens, 1, self); if (!p_state->xml_mode) { /* find out if this start tag should put us into literal_mode */ int i; int tag_len = tokens[0].end - tokens[0].beg; for (i = 0; literal_mode_elem[i].len; i++) { if (tag_len == literal_mode_elem[i].len) { /* try to match it */ char *s = beg + 1; char *t = literal_mode_elem[i].str; int len = tag_len; while (len) { if (toLOWER(*s) != *t) break; s++; t++; if (!--len) { /* found it */ p_state->literal_mode = literal_mode_elem[i].str; p_state->is_cdata = literal_mode_elem[i].is_cdata; /* printf("Found %s\n", p_state->literal_mode); */ goto END_OF_LITERAL_SEARCH; } } } } END_OF_LITERAL_SEARCH: ; } FREE_TOKENS; return s; } FREE_TOKENS; return 0; PREMATURE: FREE_TOKENS; return beg; } static char* parse_end(PSTATE* p_state, char *beg, char *end, U32 utf8, SV* self) { char *s = beg+2; hctype_t name_first, name_char; if (p_state->strict_names || p_state->xml_mode) { name_first = HCTYPE_NAME_FIRST; name_char = HCTYPE_NAME_CHAR; } else { name_first = name_char = HCTYPE_NOT_SPACE_GT; } if (isHCTYPE(*s, name_first)) { token_pos_t tagname; tagname.beg = s; s++; while (s < end && isHCTYPE(*s, name_char)) s++; tagname.end = s; if (p_state->strict_end) { while (isHSPACE(*s)) s++; } else { s = skip_until_gt(s, end); } if (s < end) { if (*s == '>') { s++; /* a complete end tag has been recognized */ report_event(p_state, E_END, beg, s, utf8, &tagname, 1, self); return s; } } else { return beg; } } else if (!p_state->strict_comment) { s = skip_until_gt(s, end); if (s < end) { token_pos_t token; token.beg = beg + 2; token.end = s; s++; report_event(p_state, E_COMMENT, beg, s, utf8, &token, 1, self); return s; } else { return beg; } } return 0; } static char* parse_process(PSTATE* p_state, char *beg, char *end, U32 utf8, SV* self) { char *s = beg + 2; /* skip '') { token_pos.end = s; s++; if (p_state->xml_mode) { /* XML processing instructions are ended by "?>" */ if (s - beg < 4 || s[-2] != '?') continue; token_pos.end = s - 2; } /* a complete processing instruction seen */ report_event(p_state, E_PROCESS, beg, s, utf8, &token_pos, 1, self); return s; } s++; } return beg; /* could not fix end */ } #ifdef USE_PFUNC static char* parse_null(PSTATE* p_state, char *beg, char *end, U32 utf8, SV* self) { return 0; } #include "pfunc.h" /* declares the parsefunc[] */ #endif /* USE_PFUNC */ static char* parse_buf(pTHX_ PSTATE* p_state, char *beg, char *end, U32 utf8, SV* self) { char *s = beg; char *t = beg; char *new_pos; while (!p_state->eof) { /* * At the start of this loop we will always be ready for eating text * or a new tag. We will never be inside some tag. The 't' points * to where we started and the 's' is advanced as we go. */ while (p_state->literal_mode) { char *l = p_state->literal_mode; bool skip_quoted_end = (strEQ(l, "script") || strEQ(l, "style")); char inside_quote = 0; bool escape_next = 0; char *end_text; while (s < end) { if (*s == '<' && !inside_quote) break; if (skip_quoted_end) { if (escape_next) { escape_next = 0; } else { if (*s == '\\') escape_next = 1; else if (inside_quote && *s == inside_quote) inside_quote = 0; else if (*s == '\r' || *s == '\n') inside_quote = 0; else if (!inside_quote && (*s == '"' || *s == '\'')) inside_quote = *s; } } s++; } if (s == end) { s = t; goto DONE; } end_text = s; s++; /* here we rely on '\0' termination of perl svpv buffers */ if (*s == '/') { s++; while (*l && toLOWER(*s) == *l) { s++; l++; } if (!*l && (strNE(p_state->literal_mode, "plaintext") || p_state->closing_plaintext)) { /* matched it all */ token_pos_t end_token; end_token.beg = end_text + 2; end_token.end = s; while (isHSPACE(*s)) s++; if (*s == '>') { s++; if (t != end_text) report_event(p_state, E_TEXT, t, end_text, utf8, 0, 0, self); report_event(p_state, E_END, end_text, s, utf8, &end_token, 1, self); p_state->literal_mode = 0; p_state->is_cdata = 0; t = s; } } } } #ifdef MARKED_SECTION while (p_state->ms == MS_CDATA || p_state->ms == MS_RCDATA) { while (s < end && *s != ']') s++; if (*s == ']') { char *end_text = s; s++; if (*s == ']') { s++; if (*s == '>') { s++; /* marked section end */ if (t != end_text) report_event(p_state, E_TEXT, t, end_text, utf8, 0, 0, self); report_event(p_state, E_NONE, end_text, s, utf8, 0, 0, self); t = s; SvREFCNT_dec(av_pop(p_state->ms_stack)); marked_section_update(p_state); continue; } } } if (s == end) { s = t; goto DONE; } } #endif /* first we try to match as much text as possible */ while (s < end && *s != '<') { #ifdef MARKED_SECTION if (p_state->ms && *s == ']') { char *end_text = s; s++; if (*s == ']') { s++; if (*s == '>') { s++; report_event(p_state, E_TEXT, t, end_text, utf8, 0, 0, self); report_event(p_state, E_NONE, end_text, s, utf8, 0, 0, self); t = s; SvREFCNT_dec(av_pop(p_state->ms_stack)); marked_section_update(p_state); continue; } } } #endif s++; } if (s != t) { if (*s == '<') { report_event(p_state, E_TEXT, t, s, utf8, 0, 0, self); t = s; } else { s--; if (isHSPACE(*s)) { /* wait with white space at end */ while (s >= t && isHSPACE(*s)) s--; } else { /* might be a chopped up entities/words */ while (s >= t && !isHSPACE(*s)) s--; while (s >= t && isHSPACE(*s)) s--; } s++; if (s != t) report_event(p_state, E_TEXT, t, s, utf8, 0, 0, self); break; } } if (end - s < 3) break; /* next char is known to be '<' and pointed to by 't' as well as 's' */ s++; #ifdef USE_PFUNC new_pos = parsefunc[(unsigned char)*s](p_state, t, end, utf8, self); #else if (isHNAME_FIRST(*s)) new_pos = parse_start(p_state, t, end, utf8, self); else if (*s == '/') new_pos = parse_end(p_state, t, end, utf8, self); else if (*s == '!') new_pos = parse_decl(p_state, t, end, utf8, self); else if (*s == '?') new_pos = parse_process(p_state, t, end, utf8, self); else new_pos = 0; #endif /* USE_PFUNC */ if (new_pos) { if (new_pos == t) { /* no progress, need more data to know what it is */ s = t; break; } t = s = new_pos; } /* if we get out here then this was not a conforming tag, so * treat it is plain text at the top of the loop again (we * have already skipped past the "<"). */ } DONE: return s; } EXTERN void parse(pTHX_ PSTATE* p_state, SV* chunk, SV* self) { char *s, *beg, *end; U32 utf8 = 0; STRLEN len; if (!chunk) { /* eof */ char empty[1]; if (p_state->buf && SvOK(p_state->buf)) { /* flush it */ s = SvPV(p_state->buf, len); end = s + len; utf8 = SvUTF8(p_state->buf); assert(len); while (s < end) { if (p_state->literal_mode) { if (strEQ(p_state->literal_mode, "plaintext") && !p_state->closing_plaintext) break; p_state->pending_end_tag = p_state->literal_mode; p_state->literal_mode = 0; s = parse_buf(aTHX_ p_state, s, end, utf8, self); continue; } if (!p_state->strict_comment && !p_state->no_dash_dash_comment_end && *s == '<') { p_state->no_dash_dash_comment_end = 1; s = parse_buf(aTHX_ p_state, s, end, utf8, self); continue; } if (!p_state->strict_comment && *s == '<') { /* some kind of unterminated markup. Report rest as as comment */ token_pos_t token; token.beg = s + 1; token.end = end; report_event(p_state, E_COMMENT, s, end, utf8, &token, 1, self); s = end; } break; } if (s < end) { /* report rest as text */ report_event(p_state, E_TEXT, s, end, utf8, 0, 0, self); } SvREFCNT_dec(p_state->buf); p_state->buf = 0; } if (p_state->pend_text && SvOK(p_state->pend_text)) flush_pending_text(p_state, self); if (p_state->ignoring_element) { /* document not balanced */ SvREFCNT_dec(p_state->ignoring_element); p_state->ignoring_element = 0; } report_event(p_state, E_END_DOCUMENT, empty, empty, 0, 0, 0, self); /* reset state */ p_state->offset = 0; if (p_state->line) p_state->line = 1; p_state->column = 0; p_state->literal_mode = 0; p_state->is_cdata = 0; return; } #ifdef UNICODE_HTML_PARSER if (p_state->utf8_mode) sv_utf8_downgrade(chunk, 0); #endif if (p_state->buf && SvOK(p_state->buf)) { sv_catsv(p_state->buf, chunk); beg = SvPV(p_state->buf, len); utf8 = SvUTF8(p_state->buf); } else { beg = SvPV(chunk, len); utf8 = SvUTF8(chunk); if (p_state->offset == 0) { report_event(p_state, E_START_DOCUMENT, beg, beg, 0, 0, 0, self); /* Print warnings if we find unexpected Unicode BOM forms */ #ifdef UNICODE_HTML_PARSER if (DOWARN && p_state->argspec_entity_decode && !p_state->utf8_mode && ( (!utf8 && len >= 3 && strnEQ(beg, "\xEF\xBB\xBF", 3)) || (utf8 && len >= 6 && strnEQ(beg, "\xC3\xAF\xC2\xBB\xC2\xBF", 6)) || (!utf8 && probably_utf8_chunk(aTHX_ beg, len)) ) ) { warn("Parsing of undecoded UTF-8 will give garbage when decoding entities"); } if (DOWARN && utf8 && len >= 2 && strnEQ(beg, "\xFF\xFE", 2)) { warn("Parsing string decoded with wrong endianess"); } #endif if (DOWARN) { if (!utf8 && len >= 4 && (strnEQ(beg, "\x00\x00\xFE\xFF", 4) || strnEQ(beg, "\xFE\xFF\x00\x00", 4)) ) { warn("Parsing of undecoded UTF-32"); } else if (!utf8 && len >= 2 && (strnEQ(beg, "\xFE\xFF", 2) || strnEQ(beg, "\xFF\xFE", 2)) ) { warn("Parsing of undecoded UTF-16"); } } } } if (!len) return; /* nothing to do */ end = beg + len; s = parse_buf(aTHX_ p_state, beg, end, utf8, self); if (s == end || p_state->eof) { if (p_state->buf) { SvOK_off(p_state->buf); } } else { /* need to keep rest in buffer */ if (p_state->buf) { /* chop off some chars at the beginning */ if (SvOK(p_state->buf)) { sv_chop(p_state->buf, s); } else { sv_setpvn(p_state->buf, s, end - s); if (utf8) SvUTF8_on(p_state->buf); else SvUTF8_off(p_state->buf); } } else { p_state->buf = newSVpv(s, end - s); if (utf8) SvUTF8_on(p_state->buf); } } return; } ================================================ FILE: tests/perlbench/hparser.h ================================================ /* $Id: hparser.h,v 2.31 2004/11/23 20:38:27 gisle Exp $ * * Copyright 1999-2004, Gisle Aas * Copyright 1999-2000, Michael A. Chase * * This library is free software; you can redistribute it and/or * modify it under the same terms as Perl itself. */ /* * Declare various structures and constants. The main thing * is 'struct p_state' that contains various fields to represent * the state of the parser. */ #ifdef MARKED_SECTION enum marked_section_t { MS_NONE = 0, MS_INCLUDE, MS_RCDATA, MS_CDATA, MS_IGNORE }; #endif /* MARKED_SECTION */ #define P_SIGNATURE 0x16091964 /* tag struct p_state for safer cast */ enum event_id { E_DECLARATION = 0, E_COMMENT, E_START, E_END, E_TEXT, E_PROCESS, E_START_DOCUMENT, E_END_DOCUMENT, E_DEFAULT, /**/ EVENT_COUNT, E_NONE /* used for reporting skipped text (non-events) */ }; typedef enum event_id event_id_t; /* must match event_id_t above */ static char* event_id_str[] = { "declaration", "comment", "start", "end", "text", "process", "start_document", "end_document", "default", }; struct p_handler { SV* cb; SV* argspec; }; struct p_state { U32 signature; /* state */ SV* buf; STRLEN offset; STRLEN line; STRLEN column; bool parsing; bool eof; /* special parsing modes */ char* literal_mode; bool is_cdata; bool no_dash_dash_comment_end; char *pending_end_tag; /* unbroken_text option needs a buffer of pending text */ SV* pend_text; bool pend_text_is_cdata; STRLEN pend_text_offset; STRLEN pend_text_line; STRLEN pend_text_column; /* skipped text is accumulated here */ SV* skipped_text; #ifdef MARKED_SECTION /* marked section support */ enum marked_section_t ms; AV* ms_stack; bool marked_sections; #endif /* various boolean configuration attributes */ bool strict_comment; bool strict_names; bool strict_end; bool xml_mode; bool unbroken_text; bool attr_encoded; bool case_sensitive; bool closing_plaintext; bool utf8_mode; /* other configuration stuff */ SV* bool_attr_val; struct p_handler handlers[EVENT_COUNT]; bool argspec_entity_decode; /* filters */ HV* report_tags; HV* ignore_tags; HV* ignore_elements; /* these are set when we are currently inside an element we want to ignore */ SV* ignoring_element; int ignore_depth; /* cache */ HV* entity2char; /* %HTML::Entities::entity2char */ SV* tmp; }; typedef struct p_state PSTATE; ================================================ FILE: tests/perlbench/hv.c ================================================ /* hv.c * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* * "I sit beside the fire and think of all that I have seen." --Bilbo */ /* =head1 Hash Manipulation Functions A HV structure represents a Perl hash. It consists mainly of an array of pointers, each of which points to a linked list of HE structures. The array is indexed by the hash function of the key, so each linked list represents all the hash entries with the same hash value. Each HE contains a pointer to the actual value, plus a pointer to a HEK structure which holds the key and hash value. =cut */ #include "EXTERN.h" #define PERL_IN_HV_C #define PERL_HASH_INTERNAL_ACCESS #include "perl.h" #define HV_MAX_LENGTH_BEFORE_SPLIT 14 STATIC HE* S_new_he(pTHX) { HE* he; LOCK_SV_MUTEX; if (!PL_he_root) more_he(); he = PL_he_root; PL_he_root = HeNEXT(he); UNLOCK_SV_MUTEX; return he; } STATIC void S_del_he(pTHX_ HE *p) { LOCK_SV_MUTEX; HeNEXT(p) = (HE*)PL_he_root; PL_he_root = p; UNLOCK_SV_MUTEX; } STATIC void S_more_he(pTHX) { register HE* he; register HE* heend; XPV *ptr; New(54, ptr, PERL_ARENA_SIZE/sizeof(XPV), XPV); ptr->xpv_pv = (char*)PL_he_arenaroot; PL_he_arenaroot = ptr; he = (HE*)ptr; heend = &he[PERL_ARENA_SIZE / sizeof(HE) - 1]; PL_he_root = ++he; while (he < heend) { HeNEXT(he) = (HE*)(he + 1); he++; } HeNEXT(he) = 0; } #ifdef PURIFY #define new_HE() (HE*)safemalloc(sizeof(HE)) #define del_HE(p) safefree((char*)p) #else #define new_HE() new_he() #define del_HE(p) del_he(p) #endif STATIC HEK * S_save_hek_flags(pTHX_ const char *str, I32 len, U32 hash, int flags) { int flags_masked = flags & HVhek_MASK; char *k; register HEK *hek; New(54, k, HEK_BASESIZE + len + 2, char); hek = (HEK*)k; Copy(str, HEK_KEY(hek), len, char); HEK_KEY(hek)[len] = 0; HEK_LEN(hek) = len; HEK_HASH(hek) = hash; HEK_FLAGS(hek) = (unsigned char)flags_masked; if (flags & HVhek_FREEKEY) Safefree(str); return hek; } /* free the pool of temporary HE/HEK pairs retunrned by hv_fetch_ent * for tied hashes */ void Perl_free_tied_hv_pool(pTHX) { HE *ohe; HE *he = PL_hv_fetch_ent_mh; while (he) { Safefree(HeKEY_hek(he)); ohe = he; he = HeNEXT(he); del_HE(ohe); } PL_hv_fetch_ent_mh = Nullhe; } #if defined(USE_ITHREADS) HE * Perl_he_dup(pTHX_ HE *e, bool shared, CLONE_PARAMS* param) { HE *ret; if (!e) return Nullhe; /* look for it in the table first */ ret = (HE*)ptr_table_fetch(PL_ptr_table, e); if (ret) return ret; /* create anew and remember what it is */ ret = new_HE(); ptr_table_store(PL_ptr_table, e, ret); HeNEXT(ret) = he_dup(HeNEXT(e),shared, param); if (HeKLEN(e) == HEf_SVKEY) { char *k; New(54, k, HEK_BASESIZE + sizeof(SV*), char); HeKEY_hek(ret) = (HEK*)k; HeKEY_sv(ret) = SvREFCNT_inc(sv_dup(HeKEY_sv(e), param)); } else if (shared) HeKEY_hek(ret) = share_hek_flags(HeKEY(e), HeKLEN(e), HeHASH(e), HeKFLAGS(e)); else HeKEY_hek(ret) = save_hek_flags(HeKEY(e), HeKLEN(e), HeHASH(e), HeKFLAGS(e)); HeVAL(ret) = SvREFCNT_inc(sv_dup(HeVAL(e), param)); return ret; } #endif /* USE_ITHREADS */ static void S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg) { SV *sv = sv_newmortal(), *esv = sv_newmortal(); if (!(flags & HVhek_FREEKEY)) { sv_setpvn(sv, key, klen); } else { /* Need to free saved eventually assign to mortal SV */ /* XXX is this line an error ???: SV *sv = sv_newmortal(); */ sv_usepvn(sv, (char *) key, klen); } if (flags & HVhek_UTF8) { SvUTF8_on(sv); } Perl_sv_setpvf(aTHX_ esv, "Attempt to %s a restricted hash", msg); Perl_croak(aTHX_ SvPVX(esv), sv); } /* (klen == HEf_SVKEY) is special for MAGICAL hv entries, meaning key slot * contains an SV* */ #define HV_FETCH_ISSTORE 0x01 #define HV_FETCH_ISEXISTS 0x02 #define HV_FETCH_LVALUE 0x04 #define HV_FETCH_JUST_SV 0x08 /* =for apidoc hv_store Stores an SV in a hash. The hash key is specified as C and C is the length of the key. The C parameter is the precomputed hash value; if it is zero then Perl will compute it. The return value will be NULL if the operation failed or if the value did not need to be actually stored within the hash (as in the case of tied hashes). Otherwise it can be dereferenced to get the original C. Note that the caller is responsible for suitably incrementing the reference count of C before the call, and decrementing it if the function returned NULL. Effectively a successful hv_store takes ownership of one reference to C. This is usually what you want; a newly created SV has a reference count of one, so if all your code does is create SVs then store them in a hash, hv_store will own the only reference to the new SV, and your code doesn't need to do anything further to tidy up. hv_store is not implemented as a call to hv_store_ent, and does not create a temporary SV for the key, so if your key data is not already in SV form then use hv_store in preference to hv_store_ent. See L for more information on how to use this function on tied hashes. =cut */ SV** Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen_i32, SV *val, U32 hash) { HE *hek; STRLEN klen; int flags; if (klen_i32 < 0) { klen = -klen_i32; flags = HVhek_UTF8; } else { klen = klen_i32; flags = 0; } hek = hv_fetch_common (hv, NULL, key, klen, flags, (HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), val, hash); return hek ? &HeVAL(hek) : NULL; } SV** Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, register U32 hash, int flags) { HE *hek = hv_fetch_common (hv, NULL, key, klen, flags, (HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), val, hash); return hek ? &HeVAL(hek) : NULL; } /* =for apidoc hv_store_ent Stores C in a hash. The hash key is specified as C. The C parameter is the precomputed hash value; if it is zero then Perl will compute it. The return value is the new hash entry so created. It will be NULL if the operation failed or if the value did not need to be actually stored within the hash (as in the case of tied hashes). Otherwise the contents of the return value can be accessed using the C macros described here. Note that the caller is responsible for suitably incrementing the reference count of C before the call, and decrementing it if the function returned NULL. Effectively a successful hv_store_ent takes ownership of one reference to C. This is usually what you want; a newly created SV has a reference count of one, so if all your code does is create SVs then store them in a hash, hv_store will own the only reference to the new SV, and your code doesn't need to do anything further to tidy up. Note that hv_store_ent only reads the C; unlike C it does not take ownership of it, so maintaining the correct reference count on C is entirely the caller's responsibility. hv_store is not implemented as a call to hv_store_ent, and does not create a temporary SV for the key, so if your key data is not already in SV form then use hv_store in preference to hv_store_ent. See L for more information on how to use this function on tied hashes. =cut */ HE * Perl_hv_store_ent(pTHX_ HV *hv, SV *keysv, SV *val, U32 hash) { return hv_fetch_common(hv, keysv, NULL, 0, 0, HV_FETCH_ISSTORE, val, hash); } /* =for apidoc hv_exists Returns a boolean indicating whether the specified hash key exists. The C is the length of the key. =cut */ bool Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen_i32) { STRLEN klen; int flags; if (klen_i32 < 0) { klen = -klen_i32; flags = HVhek_UTF8; } else { klen = klen_i32; flags = 0; } return hv_fetch_common(hv, NULL, key, klen, flags, HV_FETCH_ISEXISTS, 0, 0) ? TRUE : FALSE; } /* =for apidoc hv_fetch Returns the SV which corresponds to the specified key in the hash. The C is the length of the key. If C is set then the fetch will be part of a store. Check that the return value is non-null before dereferencing it to an C. See L for more information on how to use this function on tied hashes. =cut */ SV** Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen_i32, I32 lval) { HE *hek; STRLEN klen; int flags; if (klen_i32 < 0) { klen = -klen_i32; flags = HVhek_UTF8; } else { klen = klen_i32; flags = 0; } hek = hv_fetch_common (hv, NULL, key, klen, flags, HV_FETCH_JUST_SV | (lval ? HV_FETCH_LVALUE : 0), Nullsv, 0); return hek ? &HeVAL(hek) : NULL; } /* =for apidoc hv_exists_ent Returns a boolean indicating whether the specified hash key exists. C can be a valid precomputed hash value, or 0 to ask for it to be computed. =cut */ bool Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash) { return hv_fetch_common(hv, keysv, NULL, 0, 0, HV_FETCH_ISEXISTS, 0, hash) ? TRUE : FALSE; } /* returns an HE * structure with the all fields set */ /* note that hent_val will be a mortal sv for MAGICAL hashes */ /* =for apidoc hv_fetch_ent Returns the hash entry which corresponds to the specified key in the hash. C must be a valid precomputed hash number for the given C, or 0 if you want the function to compute it. IF C is set then the fetch will be part of a store. Make sure the return value is non-null before accessing it. The return value when C is a tied hash is a pointer to a static location, so be sure to make a copy of the structure if you need to store it somewhere. See L for more information on how to use this function on tied hashes. =cut */ HE * Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, register U32 hash) { return hv_fetch_common(hv, keysv, NULL, 0, 0, (lval ? HV_FETCH_LVALUE : 0), Nullsv, hash); } STATIC HE * S_hv_fetch_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int flags, int action, SV *val, register U32 hash) { XPVHV* xhv; U32 n_links; HE *entry; HE **oentry; SV *sv; bool is_utf8; int masked_flags; if (!hv) return 0; if (keysv) { if (flags & HVhek_FREEKEY) Safefree(key); key = SvPV(keysv, klen); flags = 0; is_utf8 = (SvUTF8(keysv) != 0); } else { is_utf8 = ((flags & HVhek_UTF8) ? TRUE : FALSE); } xhv = (XPVHV*)SvANY(hv); if (SvMAGICAL(hv)) { if (SvRMAGICAL(hv) && !(action & (HV_FETCH_ISSTORE|HV_FETCH_ISEXISTS))) { if (mg_find((SV*)hv, PERL_MAGIC_tied) || SvGMAGICAL((SV*)hv)) { sv = sv_newmortal(); /* XXX should be able to skimp on the HE/HEK here when HV_FETCH_JUST_SV is true. */ if (!keysv) { keysv = newSVpvn(key, klen); if (is_utf8) { SvUTF8_on(keysv); } } else { keysv = newSVsv(keysv); } mg_copy((SV*)hv, sv, (char *)keysv, HEf_SVKEY); /* grab a fake HE/HEK pair from the pool or make a new one */ entry = PL_hv_fetch_ent_mh; if (entry) PL_hv_fetch_ent_mh = HeNEXT(entry); else { char *k; entry = new_HE(); New(54, k, HEK_BASESIZE + sizeof(SV*), char); HeKEY_hek(entry) = (HEK*)k; } HeNEXT(entry) = Nullhe; HeSVKEY_set(entry, keysv); HeVAL(entry) = sv; sv_upgrade(sv, SVt_PVLV); LvTYPE(sv) = 'T'; /* so we can free entry when freeing sv */ LvTARG(sv) = (SV*)entry; /* XXX remove at some point? */ if (flags & HVhek_FREEKEY) Safefree(key); return entry; } #ifdef ENV_IS_CASELESS else if (mg_find((SV*)hv, PERL_MAGIC_env)) { U32 i; for (i = 0; i < klen; ++i) if (isLOWER(key[i])) { /* Would be nice if we had a routine to do the copy and upercase in a single pass through. */ char *nkey = strupr(savepvn(key,klen)); /* Note that this fetch is for nkey (the uppercased key) whereas the store is for key (the original) */ entry = hv_fetch_common(hv, Nullsv, nkey, klen, HVhek_FREEKEY, /* free nkey */ 0 /* non-LVAL fetch */, Nullsv /* no value */, 0 /* compute hash */); if (!entry && (action & HV_FETCH_LVALUE)) { /* This call will free key if necessary. Do it this way to encourage compiler to tail call optimise. */ entry = hv_fetch_common(hv, keysv, key, klen, flags, HV_FETCH_ISSTORE, NEWSV(61,0), hash); } else { if (flags & HVhek_FREEKEY) Safefree(key); } return entry; } } #endif } /* ISFETCH */ else if (SvRMAGICAL(hv) && (action & HV_FETCH_ISEXISTS)) { if (mg_find((SV*)hv, PERL_MAGIC_tied) || SvGMAGICAL((SV*)hv)) { SV* svret; /* I don't understand why hv_exists_ent has svret and sv, whereas hv_exists only had one. */ svret = sv_newmortal(); sv = sv_newmortal(); if (keysv || is_utf8) { if (!keysv) { keysv = newSVpvn(key, klen); SvUTF8_on(keysv); } else { keysv = newSVsv(keysv); } mg_copy((SV*)hv, sv, (char *)sv_2mortal(keysv), HEf_SVKEY); } else { mg_copy((SV*)hv, sv, key, klen); } if (flags & HVhek_FREEKEY) Safefree(key); magic_existspack(svret, mg_find(sv, PERL_MAGIC_tiedelem)); /* This cast somewhat evil, but I'm merely using NULL/ not NULL to return the boolean exists. And I know hv is not NULL. */ return SvTRUE(svret) ? (HE *)hv : NULL; } #ifdef ENV_IS_CASELESS else if (mg_find((SV*)hv, PERL_MAGIC_env)) { /* XXX This code isn't UTF8 clean. */ const char *keysave = key; /* Will need to free this, so set FREEKEY flag. */ key = savepvn(key,klen); key = (const char*)strupr((char*)key); is_utf8 = 0; hash = 0; keysv = 0; if (flags & HVhek_FREEKEY) { Safefree(keysave); } flags |= HVhek_FREEKEY; } #endif } /* ISEXISTS */ else if (action & HV_FETCH_ISSTORE) { bool needs_copy; bool needs_store; hv_magic_check (hv, &needs_copy, &needs_store); if (needs_copy) { bool save_taint = PL_tainted; if (keysv || is_utf8) { if (!keysv) { keysv = newSVpvn(key, klen); SvUTF8_on(keysv); } if (PL_tainting) PL_tainted = SvTAINTED(keysv); keysv = sv_2mortal(newSVsv(keysv)); mg_copy((SV*)hv, val, (char*)keysv, HEf_SVKEY); } else { mg_copy((SV*)hv, val, key, klen); } TAINT_IF(save_taint); if (!xhv->xhv_array /* !HvARRAY(hv) */ && !needs_store) { if (flags & HVhek_FREEKEY) Safefree(key); return Nullhe; } #ifdef ENV_IS_CASELESS else if (mg_find((SV*)hv, PERL_MAGIC_env)) { /* XXX This code isn't UTF8 clean. */ const char *keysave = key; /* Will need to free this, so set FREEKEY flag. */ key = savepvn(key,klen); key = (const char*)strupr((char*)key); is_utf8 = 0; hash = 0; keysv = 0; if (flags & HVhek_FREEKEY) { Safefree(keysave); } flags |= HVhek_FREEKEY; } #endif } } /* ISSTORE */ } /* SvMAGICAL */ if (!xhv->xhv_array /* !HvARRAY(hv) */) { if ((action & (HV_FETCH_LVALUE | HV_FETCH_ISSTORE)) #ifdef DYNAMIC_ENV_FETCH /* if it's an %ENV lookup, we may get it on the fly */ || (SvRMAGICAL((SV*)hv) && mg_find((SV*)hv, PERL_MAGIC_env)) #endif ) Newz(503, xhv->xhv_array /* HvARRAY(hv) */, PERL_HV_ARRAY_ALLOC_BYTES(xhv->xhv_max+1 /* HvMAX(hv)+1 */), char); #ifdef DYNAMIC_ENV_FETCH else if (action & HV_FETCH_ISEXISTS) { /* for an %ENV exists, if we do an insert it's by a recursive store call, so avoid creating HvARRAY(hv) right now. */ } #endif else { /* XXX remove at some point? */ if (flags & HVhek_FREEKEY) Safefree(key); return 0; } } if (is_utf8) { const char *keysave = key; key = (char*)bytes_from_utf8((U8*)key, &klen, &is_utf8); if (is_utf8) flags |= HVhek_UTF8; else flags &= ~HVhek_UTF8; if (key != keysave) { if (flags & HVhek_FREEKEY) Safefree(keysave); flags |= HVhek_WASUTF8 | HVhek_FREEKEY; } } if (HvREHASH(hv)) { PERL_HASH_INTERNAL(hash, key, klen); /* We don't have a pointer to the hv, so we have to replicate the flag into every HEK, so that hv_iterkeysv can see it. */ /* And yes, you do need this even though you are not "storing" because you can flip the flags below if doing an lval lookup. (And that was put in to give the semantics Andreas was expecting.) */ flags |= HVhek_REHASH; } else if (!hash) { /* Not enough shared hash key scalars around to make this worthwhile (about 4% slowdown in perlbench with this in) if (keysv && (SvIsCOW_shared_hash(keysv))) { hash = SvUVX(keysv); } else */ { PERL_HASH(hash, key, klen); } } masked_flags = (flags & HVhek_MASK); n_links = 0; #ifdef DYNAMIC_ENV_FETCH if (!xhv->xhv_array /* !HvARRAY(hv) */) entry = Null(HE*); else #endif { /* entry = (HvARRAY(hv))[hash & (I32) HvMAX(hv)]; */ entry = ((HE**)xhv->xhv_array)[hash & (I32) xhv->xhv_max]; } for (; entry; ++n_links, entry = HeNEXT(entry)) { if (!HeKEY_hek(entry)) continue; if (HeHASH(entry) != hash) /* strings can't be equal */ continue; if (HeKLEN(entry) != (I32)klen) continue; if (HeKEY(entry) != key && memNE(HeKEY(entry),key,klen)) /* is this it? */ continue; if ((HeKFLAGS(entry) ^ masked_flags) & HVhek_UTF8) continue; if (action & (HV_FETCH_LVALUE|HV_FETCH_ISSTORE)) { if (HeKFLAGS(entry) != masked_flags) { /* We match if HVhek_UTF8 bit in our flags and hash key's match. But if entry was set previously with HVhek_WASUTF8 and key now doesn't (or vice versa) then we should change the key's flag, as this is assignment. */ if (HvSHAREKEYS(hv)) { /* Need to swap the key we have for a key with the flags we need. As keys are shared we can't just write to the flag, so we share the new one, unshare the old one. */ HEK *new_hek = share_hek_flags(key, klen, hash, masked_flags); unshare_hek (HeKEY_hek(entry)); HeKEY_hek(entry) = new_hek; } else HeKFLAGS(entry) = masked_flags; if (masked_flags & HVhek_ENABLEHVKFLAGS) HvHASKFLAGS_on(hv); } if (HeVAL(entry) == &PL_sv_placeholder) { /* yes, can store into placeholder slot */ if (action & HV_FETCH_LVALUE) { if (SvMAGICAL(hv)) { /* This preserves behaviour with the old hv_fetch implementation which at this point would bail out with a break; (at "if we find a placeholder, we pretend we haven't found anything") That break mean that if a placeholder were found, it caused a call into hv_store, which in turn would check magic, and if there is no magic end up pretty much back at this point (in hv_store's code). */ break; } /* LVAL fetch which actaully needs a store. */ val = NEWSV(61,0); xhv->xhv_placeholders--; } else { /* store */ if (val != &PL_sv_placeholder) xhv->xhv_placeholders--; } HeVAL(entry) = val; } else if (action & HV_FETCH_ISSTORE) { SvREFCNT_dec(HeVAL(entry)); HeVAL(entry) = val; } } else if (HeVAL(entry) == &PL_sv_placeholder) { /* if we find a placeholder, we pretend we haven't found anything */ break; } if (flags & HVhek_FREEKEY) Safefree(key); return entry; } #ifdef DYNAMIC_ENV_FETCH /* %ENV lookup? If so, try to fetch the value now */ if (!(action & HV_FETCH_ISSTORE) && SvRMAGICAL((SV*)hv) && mg_find((SV*)hv, PERL_MAGIC_env)) { unsigned long len; char *env = PerlEnv_ENVgetenv_len(key,&len); if (env) { sv = newSVpvn(env,len); SvTAINTED_on(sv); return hv_fetch_common(hv,keysv,key,klen,flags,HV_FETCH_ISSTORE,sv, hash); } } #endif if (!entry && SvREADONLY(hv) && !(action & HV_FETCH_ISEXISTS)) { S_hv_notallowed(aTHX_ flags, key, klen, "access disallowed key '%"SVf"' in" ); } if (!(action & (HV_FETCH_LVALUE|HV_FETCH_ISSTORE))) { /* Not doing some form of store, so return failure. */ if (flags & HVhek_FREEKEY) Safefree(key); return 0; } if (action & HV_FETCH_LVALUE) { val = NEWSV(61,0); if (SvMAGICAL(hv)) { /* At this point the old hv_fetch code would call to hv_store, which in turn might do some tied magic. So we need to make that magic check happen. */ /* gonna assign to this, so it better be there */ return hv_fetch_common(hv, keysv, key, klen, flags, HV_FETCH_ISSTORE, val, hash); /* XXX Surely that could leak if the fetch-was-store fails? Just like the hv_fetch. */ } } /* Welcome to hv_store... */ if (!xhv->xhv_array) { /* Not sure if we can get here. I think the only case of oentry being NULL is for %ENV with dynamic env fetch. But that should disappear with magic in the previous code. */ Newz(503, xhv->xhv_array /* HvARRAY(hv) */, PERL_HV_ARRAY_ALLOC_BYTES(xhv->xhv_max+1 /* HvMAX(hv)+1 */), char); } oentry = &((HE**)xhv->xhv_array)[hash & (I32) xhv->xhv_max]; entry = new_HE(); /* share_hek_flags will do the free for us. This might be considered bad API design. */ if (HvSHAREKEYS(hv)) HeKEY_hek(entry) = share_hek_flags(key, klen, hash, flags); else /* gotta do the real thing */ HeKEY_hek(entry) = save_hek_flags(key, klen, hash, flags); HeVAL(entry) = val; HeNEXT(entry) = *oentry; *oentry = entry; if (val == &PL_sv_placeholder) xhv->xhv_placeholders++; if (masked_flags & HVhek_ENABLEHVKFLAGS) HvHASKFLAGS_on(hv); xhv->xhv_keys++; /* HvKEYS(hv)++ */ if (!n_links) { /* initial entry? */ xhv->xhv_fill++; /* HvFILL(hv)++ */ } else if ((xhv->xhv_keys > (IV)xhv->xhv_max) || ((n_links > HV_MAX_LENGTH_BEFORE_SPLIT) && !HvREHASH(hv))) { /* Use only the old HvKEYS(hv) > HvMAX(hv) condition to limit bucket splits on a rehashed hash, as we're not going to split it again, and if someone is lucky (evil) enough to get all the keys in one list they could exhaust our memory as we repeatedly double the number of buckets on every entry. Linear search feels a less worse thing to do. */ hsplit(hv); } return entry; } STATIC void S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store) { MAGIC *mg = SvMAGIC(hv); *needs_copy = FALSE; *needs_store = TRUE; while (mg) { if (isUPPER(mg->mg_type)) { *needs_copy = TRUE; switch (mg->mg_type) { case PERL_MAGIC_tied: case PERL_MAGIC_sig: *needs_store = FALSE; } } mg = mg->mg_moremagic; } } /* =for apidoc hv_scalar Evaluates the hash in scalar context and returns the result. Handles magic when the hash is tied. =cut */ SV * Perl_hv_scalar(pTHX_ HV *hv) { MAGIC *mg; SV *sv; if ((SvRMAGICAL(hv) && (mg = mg_find((SV*)hv, PERL_MAGIC_tied)))) { sv = magic_scalarpack(hv, mg); return sv; } sv = sv_newmortal(); if (HvFILL((HV*)hv)) Perl_sv_setpvf(aTHX_ sv, "%ld/%ld", (long)HvFILL(hv), (long)HvMAX(hv) + 1); else sv_setiv(sv, 0); return sv; } /* =for apidoc hv_delete Deletes a key/value pair in the hash. The value SV is removed from the hash and returned to the caller. The C is the length of the key. The C value will normally be zero; if set to G_DISCARD then NULL will be returned. =cut */ SV * Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen_i32, I32 flags) { STRLEN klen; int k_flags = 0; if (klen_i32 < 0) { klen = -klen_i32; k_flags |= HVhek_UTF8; } else { klen = klen_i32; } return hv_delete_common(hv, NULL, key, klen, k_flags, flags, 0); } /* =for apidoc hv_delete_ent Deletes a key/value pair in the hash. The value SV is removed from the hash and returned to the caller. The C value will normally be zero; if set to G_DISCARD then NULL will be returned. C can be a valid precomputed hash value, or 0 to ask for it to be computed. =cut */ SV * Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash) { return hv_delete_common(hv, keysv, NULL, 0, 0, flags, hash); } STATIC SV * S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash) { register XPVHV* xhv; register I32 i; register HE *entry; register HE **oentry; SV *sv; bool is_utf8; int masked_flags; if (!hv) return Nullsv; if (keysv) { if (k_flags & HVhek_FREEKEY) Safefree(key); key = SvPV(keysv, klen); k_flags = 0; is_utf8 = (SvUTF8(keysv) != 0); } else { is_utf8 = ((k_flags & HVhek_UTF8) ? TRUE : FALSE); } if (SvRMAGICAL(hv)) { bool needs_copy; bool needs_store; hv_magic_check (hv, &needs_copy, &needs_store); if (needs_copy) { entry = hv_fetch_common(hv, keysv, key, klen, k_flags & ~HVhek_FREEKEY, HV_FETCH_LVALUE, Nullsv, hash); sv = entry ? HeVAL(entry) : NULL; if (sv) { if (SvMAGICAL(sv)) { mg_clear(sv); } if (!needs_store) { if (mg_find(sv, PERL_MAGIC_tiedelem)) { /* No longer an element */ sv_unmagic(sv, PERL_MAGIC_tiedelem); return sv; } return Nullsv; /* element cannot be deleted */ } #ifdef ENV_IS_CASELESS else if (mg_find((SV*)hv, PERL_MAGIC_env)) { /* XXX This code isn't UTF8 clean. */ keysv = sv_2mortal(newSVpvn(key,klen)); if (k_flags & HVhek_FREEKEY) { Safefree(key); } key = strupr(SvPVX(keysv)); is_utf8 = 0; k_flags = 0; hash = 0; } #endif } } } xhv = (XPVHV*)SvANY(hv); if (!xhv->xhv_array /* !HvARRAY(hv) */) return Nullsv; if (is_utf8) { const char *keysave = key; key = (char*)bytes_from_utf8((U8*)key, &klen, &is_utf8); if (is_utf8) k_flags |= HVhek_UTF8; else k_flags &= ~HVhek_UTF8; if (key != keysave) { if (k_flags & HVhek_FREEKEY) { /* This shouldn't happen if our caller does what we expect, but strictly the API allows it. */ Safefree(keysave); } k_flags |= HVhek_WASUTF8 | HVhek_FREEKEY; } HvHASKFLAGS_on((SV*)hv); } if (HvREHASH(hv)) { PERL_HASH_INTERNAL(hash, key, klen); } else if (!hash) { /* Not enough shared hash key scalars around to make this worthwhile (about 4% slowdown in perlbench with this in) if (keysv && (SvIsCOW_shared_hash(keysv))) { hash = SvUVX(keysv); } else */ { PERL_HASH(hash, key, klen); } } masked_flags = (k_flags & HVhek_MASK); /* oentry = &(HvARRAY(hv))[hash & (I32) HvMAX(hv)]; */ oentry = &((HE**)xhv->xhv_array)[hash & (I32) xhv->xhv_max]; entry = *oentry; i = 1; for (; entry; i=0, oentry = &HeNEXT(entry), entry = *oentry) { if (HeHASH(entry) != hash) /* strings can't be equal */ continue; if (HeKLEN(entry) != (I32)klen) continue; if (HeKEY(entry) != key && memNE(HeKEY(entry),key,klen)) /* is this it? */ continue; if ((HeKFLAGS(entry) ^ masked_flags) & HVhek_UTF8) continue; /* if placeholder is here, it's already been deleted.... */ if (HeVAL(entry) == &PL_sv_placeholder) { if (k_flags & HVhek_FREEKEY) Safefree(key); return Nullsv; } else if (SvREADONLY(hv) && HeVAL(entry) && SvREADONLY(HeVAL(entry))) { S_hv_notallowed(aTHX_ k_flags, key, klen, "delete readonly key '%"SVf"' from" ); } if (k_flags & HVhek_FREEKEY) Safefree(key); if (d_flags & G_DISCARD) sv = Nullsv; else { sv = sv_2mortal(HeVAL(entry)); HeVAL(entry) = &PL_sv_placeholder; } /* * If a restricted hash, rather than really deleting the entry, put * a placeholder there. This marks the key as being "approved", so * we can still access via not-really-existing key without raising * an error. */ if (SvREADONLY(hv)) { SvREFCNT_dec(HeVAL(entry)); HeVAL(entry) = &PL_sv_placeholder; /* We'll be saving this slot, so the number of allocated keys * doesn't go down, but the number placeholders goes up */ xhv->xhv_placeholders++; /* HvPLACEHOLDERS(hv)++ */ } else { *oentry = HeNEXT(entry); if (i && !*oentry) xhv->xhv_fill--; /* HvFILL(hv)-- */ if (entry == xhv->xhv_eiter /* HvEITER(hv) */) HvLAZYDEL_on(hv); else hv_free_ent(hv, entry); xhv->xhv_keys--; /* HvKEYS(hv)-- */ if (xhv->xhv_keys == 0) HvHASKFLAGS_off(hv); } return sv; } if (SvREADONLY(hv)) { S_hv_notallowed(aTHX_ k_flags, key, klen, "delete disallowed key '%"SVf"' from" ); } if (k_flags & HVhek_FREEKEY) Safefree(key); return Nullsv; } STATIC void S_hsplit(pTHX_ HV *hv) { register XPVHV* xhv = (XPVHV*)SvANY(hv); I32 oldsize = (I32) xhv->xhv_max+1; /* HvMAX(hv)+1 (sick) */ register I32 newsize = oldsize * 2; register I32 i; register char *a = xhv->xhv_array; /* HvARRAY(hv) */ register HE **aep; register HE **bep; register HE *entry; register HE **oentry; int longest_chain = 0; int was_shared; /*PerlIO_printf(PerlIO_stderr(), "hsplit called for %p which had %d\n", hv, (int) oldsize);*/ if (HvPLACEHOLDERS(hv) && !SvREADONLY(hv)) { /* Can make this clear any placeholders first for non-restricted hashes, even though Storable rebuilds restricted hashes by putting in all the placeholders (first) before turning on the readonly flag, because Storable always pre-splits the hash. */ hv_clear_placeholders(hv); } PL_nomemok = TRUE; #if defined(STRANGE_MALLOC) || defined(MYMALLOC) Renew(a, PERL_HV_ARRAY_ALLOC_BYTES(newsize), char); if (!a) { PL_nomemok = FALSE; return; } #else New(2, a, PERL_HV_ARRAY_ALLOC_BYTES(newsize), char); if (!a) { PL_nomemok = FALSE; return; } Copy(xhv->xhv_array /* HvARRAY(hv) */, a, oldsize * sizeof(HE*), char); if (oldsize >= 64) { offer_nice_chunk(xhv->xhv_array /* HvARRAY(hv) */, PERL_HV_ARRAY_ALLOC_BYTES(oldsize)); } else Safefree(xhv->xhv_array /* HvARRAY(hv) */); #endif PL_nomemok = FALSE; Zero(&a[oldsize * sizeof(HE*)], (newsize-oldsize) * sizeof(HE*), char); /* zero 2nd half*/ xhv->xhv_max = --newsize; /* HvMAX(hv) = --newsize */ xhv->xhv_array = a; /* HvARRAY(hv) = a */ aep = (HE**)a; for (i=0; ixhv_fill++; /* HvFILL(hv)++ */ *bep = entry; right_length++; continue; } else { oentry = &HeNEXT(entry); left_length++; } } if (!*aep) /* everything moved */ xhv->xhv_fill--; /* HvFILL(hv)-- */ /* I think we don't actually need to keep track of the longest length, merely flag if anything is too long. But for the moment while developing this code I'll track it. */ if (left_length > longest_chain) longest_chain = left_length; if (right_length > longest_chain) longest_chain = right_length; } /* Pick your policy for "hashing isn't working" here: */ if (longest_chain <= HV_MAX_LENGTH_BEFORE_SPLIT /* split worked? */ || HvREHASH(hv)) { return; } if (hv == PL_strtab) { /* Urg. Someone is doing something nasty to the string table. Can't win. */ return; } /* Awooga. Awooga. Pathological data. */ /*PerlIO_printf(PerlIO_stderr(), "%p %d of %d with %d/%d buckets\n", hv, longest_chain, HvTOTALKEYS(hv), HvFILL(hv), 1+HvMAX(hv));*/ ++newsize; Newz(2, a, PERL_HV_ARRAY_ALLOC_BYTES(newsize), char); was_shared = HvSHAREKEYS(hv); xhv->xhv_fill = 0; HvSHAREKEYS_off(hv); HvREHASH_on(hv); aep = (HE **) xhv->xhv_array; for (i=0; ixhv_max); if (!*bep) xhv->xhv_fill++; /* HvFILL(hv)++ */ HeNEXT(entry) = *bep; *bep = entry; entry = next; } } Safefree (xhv->xhv_array); xhv->xhv_array = a; /* HvARRAY(hv) = a */ } void Perl_hv_ksplit(pTHX_ HV *hv, IV newmax) { register XPVHV* xhv = (XPVHV*)SvANY(hv); I32 oldsize = (I32) xhv->xhv_max+1; /* HvMAX(hv)+1 (sick) */ register I32 newsize; register I32 i; register I32 j; register char *a; register HE **aep; register HE *entry; register HE **oentry; newsize = (I32) newmax; /* possible truncation here */ if (newsize != newmax || newmax <= oldsize) return; while ((newsize & (1 + ~newsize)) != newsize) { newsize &= ~(newsize & (1 + ~newsize)); /* get proper power of 2 */ } if (newsize < newmax) newsize *= 2; if (newsize < newmax) return; /* overflow detection */ a = xhv->xhv_array; /* HvARRAY(hv) */ if (a) { PL_nomemok = TRUE; #if defined(STRANGE_MALLOC) || defined(MYMALLOC) Renew(a, PERL_HV_ARRAY_ALLOC_BYTES(newsize), char); if (!a) { PL_nomemok = FALSE; return; } #else New(2, a, PERL_HV_ARRAY_ALLOC_BYTES(newsize), char); if (!a) { PL_nomemok = FALSE; return; } Copy(xhv->xhv_array /* HvARRAY(hv) */, a, oldsize * sizeof(HE*), char); if (oldsize >= 64) { offer_nice_chunk(xhv->xhv_array /* HvARRAY(hv) */, PERL_HV_ARRAY_ALLOC_BYTES(oldsize)); } else Safefree(xhv->xhv_array /* HvARRAY(hv) */); #endif PL_nomemok = FALSE; Zero(&a[oldsize * sizeof(HE*)], (newsize-oldsize) * sizeof(HE*), char); /* zero 2nd half*/ } else { Newz(0, a, PERL_HV_ARRAY_ALLOC_BYTES(newsize), char); } xhv->xhv_max = --newsize; /* HvMAX(hv) = --newsize */ xhv->xhv_array = a; /* HvARRAY(hv) = a */ if (!xhv->xhv_fill /* !HvFILL(hv) */) /* skip rest if no entries */ return; aep = (HE**)a; for (i=0; ixhv_fill++; /* HvFILL(hv)++ */ aep[j] = entry; continue; } else oentry = &HeNEXT(entry); } if (!*aep) /* everything moved */ xhv->xhv_fill--; /* HvFILL(hv)-- */ } } /* =for apidoc newHV Creates a new HV. The reference count is set to 1. =cut */ HV * Perl_newHV(pTHX) { register HV *hv; register XPVHV* xhv; hv = (HV*)NEWSV(502,0); sv_upgrade((SV *)hv, SVt_PVHV); xhv = (XPVHV*)SvANY(hv); SvPOK_off(hv); SvNOK_off(hv); #ifndef NODEFAULT_SHAREKEYS HvSHAREKEYS_on(hv); /* key-sharing on by default */ #endif xhv->xhv_max = 7; /* HvMAX(hv) = 7 (start with 8 buckets) */ xhv->xhv_fill = 0; /* HvFILL(hv) = 0 */ xhv->xhv_pmroot = 0; /* HvPMROOT(hv) = 0 */ (void)hv_iterinit(hv); /* so each() will start off right */ return hv; } HV * Perl_newHVhv(pTHX_ HV *ohv) { HV *hv = newHV(); STRLEN hv_max, hv_fill; if (!ohv || (hv_fill = HvFILL(ohv)) == 0) return hv; hv_max = HvMAX(ohv); if (!SvMAGICAL((SV *)ohv)) { /* It's an ordinary hash, so copy it fast. AMS 20010804 */ STRLEN i; bool shared = !!HvSHAREKEYS(ohv); HE **ents, **oents = (HE **)HvARRAY(ohv); char *a; New(0, a, PERL_HV_ARRAY_ALLOC_BYTES(hv_max+1), char); ents = (HE**)a; /* In each bucket... */ for (i = 0; i <= hv_max; i++) { HE *prev = NULL, *ent = NULL, *oent = oents[i]; if (!oent) { ents[i] = NULL; continue; } /* Copy the linked list of entries. */ for (oent = oents[i]; oent; oent = HeNEXT(oent)) { U32 hash = HeHASH(oent); char *key = HeKEY(oent); STRLEN len = HeKLEN(oent); int flags = HeKFLAGS(oent); ent = new_HE(); HeVAL(ent) = newSVsv(HeVAL(oent)); HeKEY_hek(ent) = shared ? share_hek_flags(key, len, hash, flags) : save_hek_flags(key, len, hash, flags); if (prev) HeNEXT(prev) = ent; else ents[i] = ent; prev = ent; HeNEXT(ent) = NULL; } } HvMAX(hv) = hv_max; HvFILL(hv) = hv_fill; HvTOTALKEYS(hv) = HvTOTALKEYS(ohv); HvARRAY(hv) = ents; } else { /* Iterate over ohv, copying keys and values one at a time. */ HE *entry; I32 riter = HvRITER(ohv); HE *eiter = HvEITER(ohv); /* Can we use fewer buckets? (hv_max is always 2^n-1) */ while (hv_max && hv_max + 1 >= hv_fill * 2) hv_max = hv_max / 2; HvMAX(hv) = hv_max; hv_iterinit(ohv); while ((entry = hv_iternext_flags(ohv, 0))) { hv_store_flags(hv, HeKEY(entry), HeKLEN(entry), newSVsv(HeVAL(entry)), HeHASH(entry), HeKFLAGS(entry)); } HvRITER(ohv) = riter; HvEITER(ohv) = eiter; } return hv; } void Perl_hv_free_ent(pTHX_ HV *hv, register HE *entry) { SV *val; if (!entry) return; val = HeVAL(entry); if (val && isGV(val) && GvCVu(val) && HvNAME(hv)) PL_sub_generation++; /* may be deletion of method from stash */ SvREFCNT_dec(val); if (HeKLEN(entry) == HEf_SVKEY) { SvREFCNT_dec(HeKEY_sv(entry)); Safefree(HeKEY_hek(entry)); } else if (HvSHAREKEYS(hv)) unshare_hek(HeKEY_hek(entry)); else Safefree(HeKEY_hek(entry)); del_HE(entry); } void Perl_hv_delayfree_ent(pTHX_ HV *hv, register HE *entry) { if (!entry) return; if (isGV(HeVAL(entry)) && GvCVu(HeVAL(entry)) && HvNAME(hv)) PL_sub_generation++; /* may be deletion of method from stash */ sv_2mortal(HeVAL(entry)); /* free between statements */ if (HeKLEN(entry) == HEf_SVKEY) { sv_2mortal(HeKEY_sv(entry)); Safefree(HeKEY_hek(entry)); } else if (HvSHAREKEYS(hv)) unshare_hek(HeKEY_hek(entry)); else Safefree(HeKEY_hek(entry)); del_HE(entry); } /* =for apidoc hv_clear Clears a hash, making it empty. =cut */ void Perl_hv_clear(pTHX_ HV *hv) { register XPVHV* xhv; if (!hv) return; xhv = (XPVHV*)SvANY(hv); if (SvREADONLY(hv) && xhv->xhv_array != NULL) { /* restricted hash: convert all keys to placeholders */ I32 i; HE* entry; for (i = 0; i <= (I32) xhv->xhv_max; i++) { entry = ((HE**)xhv->xhv_array)[i]; for (; entry; entry = HeNEXT(entry)) { /* not already placeholder */ if (HeVAL(entry) != &PL_sv_placeholder) { if (HeVAL(entry) && SvREADONLY(HeVAL(entry))) { SV* keysv = hv_iterkeysv(entry); Perl_croak(aTHX_ "Attempt to delete readonly key '%"SVf"' from a restricted hash", keysv); } SvREFCNT_dec(HeVAL(entry)); HeVAL(entry) = &PL_sv_placeholder; xhv->xhv_placeholders++; /* HvPLACEHOLDERS(hv)++ */ } } } goto reset; } hfreeentries(hv); xhv->xhv_placeholders = 0; /* HvPLACEHOLDERS(hv) = 0 */ if (xhv->xhv_array /* HvARRAY(hv) */) (void)memzero(xhv->xhv_array /* HvARRAY(hv) */, (xhv->xhv_max+1 /* HvMAX(hv)+1 */) * sizeof(HE*)); if (SvRMAGICAL(hv)) mg_clear((SV*)hv); HvHASKFLAGS_off(hv); HvREHASH_off(hv); reset: HvEITER(hv) = NULL; } /* =for apidoc hv_clear_placeholders Clears any placeholders from a hash. If a restricted hash has any of its keys marked as readonly and the key is subsequently deleted, the key is not actually deleted but is marked by assigning it a value of &PL_sv_placeholder. This tags it so it will be ignored by future operations such as iterating over the hash, but will still allow the hash to have a value reassigned to the key at some future point. This function clears any such placeholder keys from the hash. See Hash::Util::lock_keys() for an example of its use. =cut */ void Perl_hv_clear_placeholders(pTHX_ HV *hv) { I32 items = (I32)HvPLACEHOLDERS(hv); I32 i = HvMAX(hv); if (items == 0) return; do { /* Loop down the linked list heads */ int first = 1; HE **oentry = &(HvARRAY(hv))[i]; HE *entry = *oentry; if (!entry) continue; for (; entry; entry = *oentry) { if (HeVAL(entry) == &PL_sv_placeholder) { *oentry = HeNEXT(entry); if (first && !*oentry) HvFILL(hv)--; /* This linked list is now empty. */ if (HvEITER(hv)) HvLAZYDEL_on(hv); else hv_free_ent(hv, entry); if (--items == 0) { /* Finished. */ HvTOTALKEYS(hv) -= (IV)HvPLACEHOLDERS(hv); if (HvKEYS(hv) == 0) HvHASKFLAGS_off(hv); HvPLACEHOLDERS(hv) = 0; return; } } else { oentry = &HeNEXT(entry); first = 0; } } } while (--i >= 0); /* You can't get here, hence assertion should always fail. */ assert (items == 0); assert (0); } STATIC void S_hfreeentries(pTHX_ HV *hv) { register HE **array; register HE *entry; register HE *oentry = Null(HE*); I32 riter; I32 max; if (!hv) return; if (!HvARRAY(hv)) return; riter = 0; max = HvMAX(hv); array = HvARRAY(hv); /* make everyone else think the array is empty, so that the destructors * called for freed entries can't recusively mess with us */ HvARRAY(hv) = Null(HE**); HvFILL(hv) = 0; ((XPVHV*) SvANY(hv))->xhv_keys = 0; entry = array[0]; for (;;) { if (entry) { oentry = entry; entry = HeNEXT(entry); hv_free_ent(hv, oentry); } if (!entry) { if (++riter > max) break; entry = array[riter]; } } HvARRAY(hv) = array; (void)hv_iterinit(hv); } /* =for apidoc hv_undef Undefines the hash. =cut */ void Perl_hv_undef(pTHX_ HV *hv) { register XPVHV* xhv; if (!hv) return; xhv = (XPVHV*)SvANY(hv); hfreeentries(hv); Safefree(xhv->xhv_array /* HvARRAY(hv) */); if (HvNAME(hv)) { if(PL_stashcache) hv_delete(PL_stashcache, HvNAME(hv), strlen(HvNAME(hv)), G_DISCARD); Safefree(HvNAME(hv)); HvNAME(hv) = 0; } xhv->xhv_max = 7; /* HvMAX(hv) = 7 (it's a normal hash) */ xhv->xhv_array = 0; /* HvARRAY(hv) = 0 */ xhv->xhv_placeholders = 0; /* HvPLACEHOLDERS(hv) = 0 */ if (SvRMAGICAL(hv)) mg_clear((SV*)hv); } /* =for apidoc hv_iterinit Prepares a starting point to traverse a hash table. Returns the number of keys in the hash (i.e. the same as C). The return value is currently only meaningful for hashes without tie magic. NOTE: Before version 5.004_65, C used to return the number of hash buckets that happen to be in use. If you still need that esoteric value, you can get it through the macro C. =cut */ I32 Perl_hv_iterinit(pTHX_ HV *hv) { register XPVHV* xhv; HE *entry; if (!hv) Perl_croak(aTHX_ "Bad hash"); xhv = (XPVHV*)SvANY(hv); entry = xhv->xhv_eiter; /* HvEITER(hv) */ if (entry && HvLAZYDEL(hv)) { /* was deleted earlier? */ HvLAZYDEL_off(hv); hv_free_ent(hv, entry); } xhv->xhv_riter = -1; /* HvRITER(hv) = -1 */ xhv->xhv_eiter = Null(HE*); /* HvEITER(hv) = Null(HE*) */ /* used to be xhv->xhv_fill before 5.004_65 */ return XHvTOTALKEYS(xhv); } /* =for apidoc hv_iternext Returns entries from a hash iterator. See C. You may call C or C on the hash entry that the iterator currently points to, without losing your place or invalidating your iterator. Note that in this case the current entry is deleted from the hash with your iterator holding the last reference to it. Your iterator is flagged to free the entry on the next call to C, so you must not discard your iterator immediately else the entry will leak - call C to trigger the resource deallocation. =cut */ HE * Perl_hv_iternext(pTHX_ HV *hv) { return hv_iternext_flags(hv, 0); } /* =for apidoc hv_iternext_flags Returns entries from a hash iterator. See C and C. The C value will normally be zero; if HV_ITERNEXT_WANTPLACEHOLDERS is set the placeholders keys (for restricted hashes) will be returned in addition to normal keys. By default placeholders are automatically skipped over. Currently a placeholder is implemented with a value that is C<&Perl_sv_placeholder>. Note that the implementation of placeholders and restricted hashes may change, and the implementation currently is insufficiently abstracted for any change to be tidy. =cut */ HE * Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags) { register XPVHV* xhv; register HE *entry; HE *oldentry; MAGIC* mg; if (!hv) Perl_croak(aTHX_ "Bad hash"); xhv = (XPVHV*)SvANY(hv); oldentry = entry = xhv->xhv_eiter; /* HvEITER(hv) */ if ((mg = SvTIED_mg((SV*)hv, PERL_MAGIC_tied))) { SV *key = sv_newmortal(); if (entry) { sv_setsv(key, HeSVKEY_force(entry)); SvREFCNT_dec(HeSVKEY(entry)); /* get rid of previous key */ } else { char *k; HEK *hek; /* one HE per MAGICAL hash */ xhv->xhv_eiter = entry = new_HE(); /* HvEITER(hv) = new_HE() */ Zero(entry, 1, HE); Newz(54, k, HEK_BASESIZE + sizeof(SV*), char); hek = (HEK*)k; HeKEY_hek(entry) = hek; HeKLEN(entry) = HEf_SVKEY; } magic_nextpack((SV*) hv,mg,key); if (SvOK(key)) { /* force key to stay around until next time */ HeSVKEY_set(entry, SvREFCNT_inc(key)); return entry; /* beware, hent_val is not set */ } if (HeVAL(entry)) SvREFCNT_dec(HeVAL(entry)); Safefree(HeKEY_hek(entry)); del_HE(entry); xhv->xhv_eiter = Null(HE*); /* HvEITER(hv) = Null(HE*) */ return Null(HE*); } #ifdef DYNAMIC_ENV_FETCH /* set up %ENV for iteration */ if (!entry && SvRMAGICAL((SV*)hv) && mg_find((SV*)hv, PERL_MAGIC_env)) prime_env_iter(); #endif if (!xhv->xhv_array /* !HvARRAY(hv) */) Newz(506, xhv->xhv_array /* HvARRAY(hv) */, PERL_HV_ARRAY_ALLOC_BYTES(xhv->xhv_max+1 /* HvMAX(hv)+1 */), char); /* At start of hash, entry is NULL. */ if (entry) { entry = HeNEXT(entry); if (!(flags & HV_ITERNEXT_WANTPLACEHOLDERS)) { /* * Skip past any placeholders -- don't want to include them in * any iteration. */ while (entry && HeVAL(entry) == &PL_sv_placeholder) { entry = HeNEXT(entry); } } } while (!entry) { /* OK. Come to the end of the current list. Grab the next one. */ xhv->xhv_riter++; /* HvRITER(hv)++ */ if (xhv->xhv_riter > (I32)xhv->xhv_max /* HvRITER(hv) > HvMAX(hv) */) { /* There is no next one. End of the hash. */ xhv->xhv_riter = -1; /* HvRITER(hv) = -1 */ break; } /* entry = (HvARRAY(hv))[HvRITER(hv)]; */ entry = ((HE**)xhv->xhv_array)[xhv->xhv_riter]; if (!(flags & HV_ITERNEXT_WANTPLACEHOLDERS)) { /* If we have an entry, but it's a placeholder, don't count it. Try the next. */ while (entry && HeVAL(entry) == &PL_sv_placeholder) entry = HeNEXT(entry); } /* Will loop again if this linked list starts NULL (for HV_ITERNEXT_WANTPLACEHOLDERS) or if we run through it and find only placeholders. */ } if (oldentry && HvLAZYDEL(hv)) { /* was deleted earlier? */ HvLAZYDEL_off(hv); hv_free_ent(hv, oldentry); } /*if (HvREHASH(hv) && entry && !HeKREHASH(entry)) PerlIO_printf(PerlIO_stderr(), "Awooga %p %p\n", hv, entry);*/ xhv->xhv_eiter = entry; /* HvEITER(hv) = entry */ return entry; } /* =for apidoc hv_iterkey Returns the key from the current position of the hash iterator. See C. =cut */ char * Perl_hv_iterkey(pTHX_ register HE *entry, I32 *retlen) { if (HeKLEN(entry) == HEf_SVKEY) { STRLEN len; char *p = SvPV(HeKEY_sv(entry), len); *retlen = len; return p; } else { *retlen = HeKLEN(entry); return HeKEY(entry); } } /* unlike hv_iterval(), this always returns a mortal copy of the key */ /* =for apidoc hv_iterkeysv Returns the key as an C from the current position of the hash iterator. The return value will always be a mortal copy of the key. Also see C. =cut */ SV * Perl_hv_iterkeysv(pTHX_ register HE *entry) { if (HeKLEN(entry) != HEf_SVKEY) { HEK *hek = HeKEY_hek(entry); int flags = HEK_FLAGS(hek); SV *sv; if (flags & HVhek_WASUTF8) { /* Trouble :-) Andreas would like keys he put in as utf8 to come back as utf8 */ STRLEN utf8_len = HEK_LEN(hek); U8 *as_utf8 = bytes_to_utf8 ((U8*)HEK_KEY(hek), &utf8_len); sv = newSVpvn ((char*)as_utf8, utf8_len); SvUTF8_on (sv); Safefree (as_utf8); /* bytes_to_utf8() allocates a new string */ } else if (flags & HVhek_REHASH) { /* We don't have a pointer to the hv, so we have to replicate the flag into every HEK. This hv is using custom a hasing algorithm. Hence we can't return a shared string scalar, as that would contain the (wrong) hash value, and might get passed into an hv routine with a regular hash */ sv = newSVpvn (HEK_KEY(hek), HEK_LEN(hek)); if (HEK_UTF8(hek)) SvUTF8_on (sv); } else { sv = newSVpvn_share(HEK_KEY(hek), (HEK_UTF8(hek) ? -HEK_LEN(hek) : HEK_LEN(hek)), HEK_HASH(hek)); } return sv_2mortal(sv); } return sv_mortalcopy(HeKEY_sv(entry)); } /* =for apidoc hv_iterval Returns the value from the current position of the hash iterator. See C. =cut */ SV * Perl_hv_iterval(pTHX_ HV *hv, register HE *entry) { if (SvRMAGICAL(hv)) { if (mg_find((SV*)hv, PERL_MAGIC_tied)) { SV* sv = sv_newmortal(); if (HeKLEN(entry) == HEf_SVKEY) mg_copy((SV*)hv, sv, (char*)HeKEY_sv(entry), HEf_SVKEY); else mg_copy((SV*)hv, sv, HeKEY(entry), HeKLEN(entry)); return sv; } } return HeVAL(entry); } /* =for apidoc hv_iternextsv Performs an C, C, and C in one operation. =cut */ SV * Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen) { HE *he; if ( (he = hv_iternext_flags(hv, 0)) == NULL) return NULL; *key = hv_iterkey(he, retlen); return hv_iterval(hv, he); } /* =for apidoc hv_magic Adds magic to a hash. See C. =cut */ void Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how) { sv_magic((SV*)hv, (SV*)gv, how, Nullch, 0); } #if 0 /* use the macro from hv.h instead */ char* Perl_sharepvn(pTHX_ const char *sv, I32 len, U32 hash) { return HEK_KEY(share_hek(sv, len, hash)); } #endif /* possibly free a shared string if no one has access to it * len and hash must both be valid for str. */ void Perl_unsharepvn(pTHX_ const char *str, I32 len, U32 hash) { unshare_hek_or_pvn (NULL, str, len, hash); } void Perl_unshare_hek(pTHX_ HEK *hek) { unshare_hek_or_pvn(hek, NULL, 0, 0); } /* possibly free a shared string if no one has access to it hek if non-NULL takes priority over the other 3, else str, len and hash are used. If so, len and hash must both be valid for str. */ STATIC void S_unshare_hek_or_pvn(pTHX_ HEK *hek, const char *str, I32 len, U32 hash) { register XPVHV* xhv; register HE *entry; register HE **oentry; register I32 i = 1; I32 found = 0; bool is_utf8 = FALSE; int k_flags = 0; const char *save = str; if (hek) { hash = HEK_HASH(hek); } else if (len < 0) { STRLEN tmplen = -len; is_utf8 = TRUE; /* See the note in hv_fetch(). --jhi */ str = (char*)bytes_from_utf8((U8*)str, &tmplen, &is_utf8); len = tmplen; if (is_utf8) k_flags = HVhek_UTF8; if (str != save) k_flags |= HVhek_WASUTF8 | HVhek_FREEKEY; } /* what follows is the moral equivalent of: if ((Svp = hv_fetch(PL_strtab, tmpsv, FALSE, hash))) { if (--*Svp == Nullsv) hv_delete(PL_strtab, str, len, G_DISCARD, hash); } */ xhv = (XPVHV*)SvANY(PL_strtab); /* assert(xhv_array != 0) */ LOCK_STRTAB_MUTEX; /* oentry = &(HvARRAY(hv))[hash & (I32) HvMAX(hv)]; */ oentry = &((HE**)xhv->xhv_array)[hash & (I32) xhv->xhv_max]; if (hek) { for (entry = *oentry; entry; i=0, oentry = &HeNEXT(entry), entry = *oentry) { if (HeKEY_hek(entry) != hek) continue; found = 1; break; } } else { int flags_masked = k_flags & HVhek_MASK; for (entry = *oentry; entry; i=0, oentry = &HeNEXT(entry), entry = *oentry) { if (HeHASH(entry) != hash) /* strings can't be equal */ continue; if (HeKLEN(entry) != len) continue; if (HeKEY(entry) != str && memNE(HeKEY(entry),str,len)) /* is this it? */ continue; if (HeKFLAGS(entry) != flags_masked) continue; found = 1; break; } } if (found) { if (--HeVAL(entry) == Nullsv) { *oentry = HeNEXT(entry); if (i && !*oentry) xhv->xhv_fill--; /* HvFILL(hv)-- */ Safefree(HeKEY_hek(entry)); del_HE(entry); xhv->xhv_keys--; /* HvKEYS(hv)-- */ } } UNLOCK_STRTAB_MUTEX; if (!found && ckWARN_d(WARN_INTERNAL)) Perl_warner(aTHX_ packWARN(WARN_INTERNAL), "Attempt to free non-existent shared string '%s'%s" pTHX__FORMAT, hek ? HEK_KEY(hek) : str, ((k_flags & HVhek_UTF8) ? " (utf8)" : "") pTHX__VALUE); if (k_flags & HVhek_FREEKEY) Safefree(str); } /* get a (constant) string ptr from the global string table * string will get added if it is not already there. * len and hash must both be valid for str. */ HEK * Perl_share_hek(pTHX_ const char *str, I32 len, register U32 hash) { bool is_utf8 = FALSE; int flags = 0; const char *save = str; if (len < 0) { STRLEN tmplen = -len; is_utf8 = TRUE; /* See the note in hv_fetch(). --jhi */ str = (char*)bytes_from_utf8((U8*)str, &tmplen, &is_utf8); len = tmplen; /* If we were able to downgrade here, then than means that we were passed in a key which only had chars 0-255, but was utf8 encoded. */ if (is_utf8) flags = HVhek_UTF8; /* If we found we were able to downgrade the string to bytes, then we should flag that it needs upgrading on keys or each. Also flag that we need share_hek_flags to free the string. */ if (str != save) flags |= HVhek_WASUTF8 | HVhek_FREEKEY; } return share_hek_flags (str, len, hash, flags); } STATIC HEK * S_share_hek_flags(pTHX_ const char *str, I32 len, register U32 hash, int flags) { register XPVHV* xhv; register HE *entry; register HE **oentry; register I32 i = 1; I32 found = 0; int flags_masked = flags & HVhek_MASK; /* what follows is the moral equivalent of: if (!(Svp = hv_fetch(PL_strtab, str, len, FALSE))) hv_store(PL_strtab, str, len, Nullsv, hash); Can't rehash the shared string table, so not sure if it's worth counting the number of entries in the linked list */ xhv = (XPVHV*)SvANY(PL_strtab); /* assert(xhv_array != 0) */ LOCK_STRTAB_MUTEX; /* oentry = &(HvARRAY(hv))[hash & (I32) HvMAX(hv)]; */ oentry = &((HE**)xhv->xhv_array)[hash & (I32) xhv->xhv_max]; for (entry = *oentry; entry; i=0, entry = HeNEXT(entry)) { if (HeHASH(entry) != hash) /* strings can't be equal */ continue; if (HeKLEN(entry) != len) continue; if (HeKEY(entry) != str && memNE(HeKEY(entry),str,len)) /* is this it? */ continue; if (HeKFLAGS(entry) != flags_masked) continue; found = 1; break; } if (!found) { entry = new_HE(); HeKEY_hek(entry) = save_hek_flags(str, len, hash, flags_masked); HeVAL(entry) = Nullsv; HeNEXT(entry) = *oentry; *oentry = entry; xhv->xhv_keys++; /* HvKEYS(hv)++ */ if (i) { /* initial entry? */ xhv->xhv_fill++; /* HvFILL(hv)++ */ } else if (xhv->xhv_keys > (IV)xhv->xhv_max /* HvKEYS(hv) > HvMAX(hv) */) { hsplit(PL_strtab); } } ++HeVAL(entry); /* use value slot as REFCNT */ UNLOCK_STRTAB_MUTEX; if (flags & HVhek_FREEKEY) Safefree(str); return HeKEY_hek(entry); } /* * Local variables: * c-indentation-style: bsd * c-basic-offset: 4 * indent-tabs-mode: t * End: * * vim: shiftwidth=4: */ ================================================ FILE: tests/perlbench/hv.h ================================================ /* hv.h * * Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, * 2000, 2001, 2002, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * */ /* typedefs to eliminate some typing */ typedef struct he HE; typedef struct hek HEK; /* entry in hash value chain */ struct he { HE *hent_next; /* next entry in chain */ HEK *hent_hek; /* hash key */ SV *hent_val; /* scalar value that was hashed */ }; /* hash key -- defined separately for use as shared pointer */ struct hek { U32 hek_hash; /* hash of key */ I32 hek_len; /* length of hash key */ char hek_key[1]; /* variable-length hash key */ /* the hash-key is \0-terminated */ /* after the \0 there is a byte for flags, such as whether the key is UTF-8 */ }; /* hash structure: */ /* This structure must match the beginning of struct xpvmg in sv.h. */ struct xpvhv { char * xhv_array; /* pointer to malloced string */ STRLEN xhv_fill; /* how full xhv_array currently is */ STRLEN xhv_max; /* subscript of last element of xhv_array */ IV xhv_keys; /* how many elements in the array */ NV xnv_nv; /* numeric value, if any */ #define xhv_placeholders xnv_nv MAGIC* xmg_magic; /* magic for scalar array */ HV* xmg_stash; /* class package */ I32 xhv_riter; /* current root of iterator */ HE *xhv_eiter; /* current entry of iterator */ PMOP *xhv_pmroot; /* list of pm's for this package */ char *xhv_name; /* name, if a symbol table */ }; /* hash a key */ /* FYI: This is the "One-at-a-Time" algorithm by Bob Jenkins * from requirements by Colin Plumb. * (http://burtleburtle.net/bob/hash/doobs.html) */ /* The use of a temporary pointer and the casting games * is needed to serve the dual purposes of * (a) the hashed data being interpreted as "unsigned char" (new since 5.8, * a "char" can be either signed or signed, depending on the compiler) * (b) catering for old code that uses a "char" * * The "hash seed" feature was added in Perl 5.8.1 to perturb the results * to avoid "algorithmic complexity attacks". * * If USE_HASH_SEED is defined, hash randomisation is done by default * If USE_HASH_SEED_EXPLICIT is defined, hash randomisation is done * only if the environment variable PERL_HASH_SEED is set. * For maximal control, one can define PERL_HASH_SEED. * (see also perl.c:perl_parse()). */ #ifndef PERL_HASH_SEED # if defined(USE_HASH_SEED) || defined(USE_HASH_SEED_EXPLICIT) # define PERL_HASH_SEED PL_hash_seed # else # define PERL_HASH_SEED 0 # endif #endif #define PERL_HASH(hash,str,len) \ STMT_START { \ register const char *s_PeRlHaSh_tmp = str; \ register const unsigned char *s_PeRlHaSh = (const unsigned char *)s_PeRlHaSh_tmp; \ register I32 i_PeRlHaSh = len; \ register U32 hash_PeRlHaSh = PERL_HASH_SEED; \ while (i_PeRlHaSh--) { \ hash_PeRlHaSh += *s_PeRlHaSh++; \ hash_PeRlHaSh += (hash_PeRlHaSh << 10); \ hash_PeRlHaSh ^= (hash_PeRlHaSh >> 6); \ } \ hash_PeRlHaSh += (hash_PeRlHaSh << 3); \ hash_PeRlHaSh ^= (hash_PeRlHaSh >> 11); \ (hash) = (hash_PeRlHaSh + (hash_PeRlHaSh << 15)); \ } STMT_END /* Only hv.c and mod_perl should be doing this. */ #ifdef PERL_HASH_INTERNAL_ACCESS #define PERL_HASH_INTERNAL(hash,str,len) \ STMT_START { \ register const char *s_PeRlHaSh_tmp = str; \ register const unsigned char *s_PeRlHaSh = (const unsigned char *)s_PeRlHaSh_tmp; \ register I32 i_PeRlHaSh = len; \ register U32 hash_PeRlHaSh = PL_rehash_seed; \ while (i_PeRlHaSh--) { \ hash_PeRlHaSh += *s_PeRlHaSh++; \ hash_PeRlHaSh += (hash_PeRlHaSh << 10); \ hash_PeRlHaSh ^= (hash_PeRlHaSh >> 6); \ } \ hash_PeRlHaSh += (hash_PeRlHaSh << 3); \ hash_PeRlHaSh ^= (hash_PeRlHaSh >> 11); \ (hash) = (hash_PeRlHaSh + (hash_PeRlHaSh << 15)); \ } STMT_END #endif /* =head1 Hash Manipulation Functions =for apidoc AmU||HEf_SVKEY This flag, used in the length slot of hash entries and magic structures, specifies the structure contains an C pointer where a C pointer is to be expected. (For information only--not to be used). =head1 Handy Values =for apidoc AmU||Nullhv Null HV pointer. =head1 Hash Manipulation Functions =for apidoc Am|char*|HvNAME|HV* stash Returns the package name of a stash. See C, C. =for apidoc Am|void*|HeKEY|HE* he Returns the actual pointer stored in the key slot of the hash entry. The pointer may be either C or C, depending on the value of C. Can be assigned to. The C or C macros are usually preferable for finding the value of a key. =for apidoc Am|STRLEN|HeKLEN|HE* he If this is negative, and amounts to C, it indicates the entry holds an C key. Otherwise, holds the actual length of the key. Can be assigned to. The C macro is usually preferable for finding key lengths. =for apidoc Am|SV*|HeVAL|HE* he Returns the value slot (type C) stored in the hash entry. =for apidoc Am|U32|HeHASH|HE* he Returns the computed hash stored in the hash entry. =for apidoc Am|char*|HePV|HE* he|STRLEN len Returns the key slot of the hash entry as a C value, doing any necessary dereferencing of possibly C keys. The length of the string is placed in C (this is a macro, so do I use C<&len>). If you do not care about what the length of the key is, you may use the global variable C, though this is rather less efficient than using a local variable. Remember though, that hash keys in perl are free to contain embedded nulls, so using C or similar is not a good way to find the length of hash keys. This is very similar to the C macro described elsewhere in this document. =for apidoc Am|SV*|HeSVKEY|HE* he Returns the key as an C, or C if the hash entry does not contain an C key. =for apidoc Am|SV*|HeSVKEY_force|HE* he Returns the key as an C. Will create and return a temporary mortal C if the hash entry contains only a C key. =for apidoc Am|SV*|HeSVKEY_set|HE* he|SV* sv Sets the key to a given C, taking care to set the appropriate flags to indicate the presence of an C key, and returns the same C. =cut */ /* these hash entry flags ride on hent_klen (for use only in magic/tied HVs) */ #define HEf_SVKEY -2 /* hent_key is an SV* */ #define Nullhv Null(HV*) #define HvARRAY(hv) (*(HE***)&((XPVHV*) SvANY(hv))->xhv_array) #define HvFILL(hv) ((XPVHV*) SvANY(hv))->xhv_fill #define HvMAX(hv) ((XPVHV*) SvANY(hv))->xhv_max #define HvRITER(hv) ((XPVHV*) SvANY(hv))->xhv_riter #define HvEITER(hv) ((XPVHV*) SvANY(hv))->xhv_eiter #define HvPMROOT(hv) ((XPVHV*) SvANY(hv))->xhv_pmroot #define HvNAME(hv) ((XPVHV*) SvANY(hv))->xhv_name /* the number of keys (including any placeholers) */ #define XHvTOTALKEYS(xhv) ((xhv)->xhv_keys) /* The number of placeholders in the enumerated-keys hash */ #define XHvPLACEHOLDERS(xhv) ((xhv)->xhv_placeholders) /* the number of keys that exist() (i.e. excluding placeholders) */ #define XHvUSEDKEYS(xhv) (XHvTOTALKEYS(xhv) - (IV)XHvPLACEHOLDERS(xhv)) /* * HvKEYS gets the number of keys that actually exist(), and is provided * for backwards compatibility with old XS code. The core uses HvUSEDKEYS * (keys, excluding placeholdes) and HvTOTALKEYS (including placeholders) */ #define HvKEYS(hv) XHvUSEDKEYS((XPVHV*) SvANY(hv)) #define HvUSEDKEYS(hv) XHvUSEDKEYS((XPVHV*) SvANY(hv)) #define HvTOTALKEYS(hv) XHvTOTALKEYS((XPVHV*) SvANY(hv)) #define HvPLACEHOLDERS(hv) XHvPLACEHOLDERS((XPVHV*) SvANY(hv)) #define HvSHAREKEYS(hv) (SvFLAGS(hv) & SVphv_SHAREKEYS) #define HvSHAREKEYS_on(hv) (SvFLAGS(hv) |= SVphv_SHAREKEYS) #define HvSHAREKEYS_off(hv) (SvFLAGS(hv) &= ~SVphv_SHAREKEYS) /* This is an optimisation flag. It won't be set if all hash keys have a 0 * flag. Currently the only flags relate to utf8. * Hence it won't be set if all keys are 8 bit only. It will be set if any key * is utf8 (including 8 bit keys that were entered as utf8, and need upgrading * when retrieved during iteration. It may still be set when there are no longer * any utf8 keys. * See HVhek_ENABLEHVKFLAGS for the trigger. */ #define HvHASKFLAGS(hv) (SvFLAGS(hv) & SVphv_HASKFLAGS) #define HvHASKFLAGS_on(hv) (SvFLAGS(hv) |= SVphv_HASKFLAGS) #define HvHASKFLAGS_off(hv) (SvFLAGS(hv) &= ~SVphv_HASKFLAGS) #define HvLAZYDEL(hv) (SvFLAGS(hv) & SVphv_LAZYDEL) #define HvLAZYDEL_on(hv) (SvFLAGS(hv) |= SVphv_LAZYDEL) #define HvLAZYDEL_off(hv) (SvFLAGS(hv) &= ~SVphv_LAZYDEL) #define HvREHASH(hv) (SvFLAGS(hv) & SVphv_REHASH) #define HvREHASH_on(hv) (SvFLAGS(hv) |= SVphv_REHASH) #define HvREHASH_off(hv) (SvFLAGS(hv) &= ~SVphv_REHASH) /* Maybe amagical: */ /* #define HV_AMAGICmb(hv) (SvFLAGS(hv) & (SVpgv_badAM | SVpgv_AM)) */ #define HV_AMAGIC(hv) (SvFLAGS(hv) & SVpgv_AM) #define HV_AMAGIC_on(hv) (SvFLAGS(hv) |= SVpgv_AM) #define HV_AMAGIC_off(hv) (SvFLAGS(hv) &= ~SVpgv_AM) /* #define HV_AMAGICbad(hv) (SvFLAGS(hv) & SVpgv_badAM) #define HV_badAMAGIC_on(hv) (SvFLAGS(hv) |= SVpgv_badAM) #define HV_badAMAGIC_off(hv) (SvFLAGS(hv) &= ~SVpgv_badAM) */ #define Nullhe Null(HE*) #define HeNEXT(he) (he)->hent_next #define HeKEY_hek(he) (he)->hent_hek #define HeKEY(he) HEK_KEY(HeKEY_hek(he)) #define HeKEY_sv(he) (*(SV**)HeKEY(he)) #define HeKLEN(he) HEK_LEN(HeKEY_hek(he)) #define HeKUTF8(he) HEK_UTF8(HeKEY_hek(he)) #define HeKWASUTF8(he) HEK_WASUTF8(HeKEY_hek(he)) #define HeKREHASH(he) HEK_REHASH(HeKEY_hek(he)) #define HeKLEN_UTF8(he) (HeKUTF8(he) ? -HeKLEN(he) : HeKLEN(he)) #define HeKFLAGS(he) HEK_FLAGS(HeKEY_hek(he)) #define HeVAL(he) (he)->hent_val #define HeHASH(he) HEK_HASH(HeKEY_hek(he)) #define HePV(he,lp) ((HeKLEN(he) == HEf_SVKEY) ? \ SvPV(HeKEY_sv(he),lp) : \ (((lp = HeKLEN(he)) >= 0) ? \ HeKEY(he) : Nullch)) #define HeSVKEY(he) ((HeKEY(he) && \ HeKLEN(he) == HEf_SVKEY) ? \ HeKEY_sv(he) : Nullsv) #define HeSVKEY_force(he) (HeKEY(he) ? \ ((HeKLEN(he) == HEf_SVKEY) ? \ HeKEY_sv(he) : \ sv_2mortal(newSVpvn(HeKEY(he), \ HeKLEN(he)))) : \ &PL_sv_undef) #define HeSVKEY_set(he,sv) ((HeKLEN(he) = HEf_SVKEY), (HeKEY_sv(he) = sv)) #define Nullhek Null(HEK*) #define HEK_BASESIZE STRUCT_OFFSET(HEK, hek_key[0]) #define HEK_HASH(hek) (hek)->hek_hash #define HEK_LEN(hek) (hek)->hek_len #define HEK_KEY(hek) (hek)->hek_key #define HEK_FLAGS(hek) (*((unsigned char *)(HEK_KEY(hek))+HEK_LEN(hek)+1)) #define HVhek_UTF8 0x01 /* Key is utf8 encoded. */ #define HVhek_WASUTF8 0x02 /* Key is bytes here, but was supplied as utf8. */ #define HVhek_REHASH 0x04 /* This key is in an hv using a custom HASH . */ #define HVhek_FREEKEY 0x100 /* Internal flag to say key is malloc()ed. */ #define HVhek_PLACEHOLD 0x200 /* Internal flag to create placeholder. * (may change, but Storable is a core module) */ #define HVhek_MASK 0xFF /* Which flags enable HvHASKFLAGS? Somewhat a hack on a hack, as HVhek_REHASH is only needed because the rehash flag has to be duplicated into all keys as hv_iternext has no access to the hash flags. At this point Storable's tests get upset, because sometimes hashes are "keyed" and sometimes not, depending on the order of data insertion, and whether it triggered rehashing. So currently HVhek_REHAS is exempt. */ #define HVhek_ENABLEHVKFLAGS (HVhek_MASK - HVhek_REHASH) #define HEK_UTF8(hek) (HEK_FLAGS(hek) & HVhek_UTF8) #define HEK_UTF8_on(hek) (HEK_FLAGS(hek) |= HVhek_UTF8) #define HEK_UTF8_off(hek) (HEK_FLAGS(hek) &= ~HVhek_UTF8) #define HEK_WASUTF8(hek) (HEK_FLAGS(hek) & HVhek_WASUTF8) #define HEK_WASUTF8_on(hek) (HEK_FLAGS(hek) |= HVhek_WASUTF8) #define HEK_WASUTF8_off(hek) (HEK_FLAGS(hek) &= ~HVhek_WASUTF8) #define HEK_REHASH(hek) (HEK_FLAGS(hek) & HVhek_REHASH) #define HEK_REHASH_on(hek) (HEK_FLAGS(hek) |= HVhek_REHASH) /* calculate HV array allocation */ #if defined(STRANGE_MALLOC) || defined(MYMALLOC) # define PERL_HV_ARRAY_ALLOC_BYTES(size) ((size) * sizeof(HE*)) #else # define MALLOC_OVERHEAD 16 # define PERL_HV_ARRAY_ALLOC_BYTES(size) \ (((size) < 64) \ ? (size) * sizeof(HE*) \ : (size) * sizeof(HE*) * 2 - MALLOC_OVERHEAD) #endif /* Flags for hv_iternext_flags. */ #define HV_ITERNEXT_WANTPLACEHOLDERS 0x01 /* Don't skip placeholders. */ /* available as a function in hv.c */ #define Perl_sharepvn(sv, len, hash) HEK_KEY(share_hek(sv, len, hash)) #define sharepvn(sv, len, hash) Perl_sharepvn(sv, len, hash) ================================================ FILE: tests/perlbench/input/checkspam.pl ================================================ #!/usr/bin/perl # # $Log: checkspam.pl,v $ # Revision 1.3 2004/03/26 20:55:28 cloyce # Multiply all SpamAssassin scores by 1000 to get around the need for FP math. # # Revision 1.2 2004/02/10 21:59:15 cloyce # Add more debugging output # # Revision 1.1 2004/01/12 16:21:20 cloyce # Big workload overhaul -- added Mail::SpamAssassin, updated CPU2000 components # # use Mail::SpamAssassin; use Mail::SpamAssassin::NoMailAudit; use Mail::Header; use Mail::Util; use Digest::MD5; $^H |= 1; # use integer! $| = 1; # Debug levels. Setting any level will cause validation to fail (duh) # 1 -- general stuff # 2 -- dump generated messages as they're processed # 4 -- choose_header debugging # 8 -- get_msg_line debugging # 16 -- message checking heartbeat # 32 -- show MD5 sums as they're generated # 64 -- show numbers of body lines $debug = 0; #65535 - 32; srand(1018987167); my $findmsg;# = 'f18d3d11b71452cf800370fff12c685a'; # Get %headers, @headerlist, $words require 'mailcomp.pm' unless $findmsg; # These are globalish because they need to persist across calls to # get_msg_line, and in some cases it would be stupid and time-consuming # to calculate them over and over again. my @header_order = qw(X-Yow Subject Date To From Message-Id); # Reverse order my $horderre = '('.join('|', @header_order).')'; my @headerlist = grep { !/$horderre/o } keys %headers; my $numlines = @lines+0; my %num_hdrs = map { $_ => @{$headers{$_}}+0 } keys %headers; my $msg_state = 0; # 0 -- Start of message 'From_' # 1 -- Doing 'Received:' headers # 2 -- Other header generation # 3 -- Body generation my ($num_received_hdrs, $num_hdr_lines, $num_body_lines) = (0,0,0); my ($cur_msg_lines, %cur_seen_hdrs) = (0, ()); my $spamtest = Mail::SpamAssassin->new(); # In the real world, a server processing so many messages would load and # compile all the rules once, like this: $spamtest->compile_now(0); # Get the command line parameters my ($num_msgs, # Number of messages to generate $header_min, # Minimum number of headers (lines) $header_max, # Maximum number of headers (lines) $lines_min, # Minimum # lines in message $lines_max, # Maximum # lines in message $do_bayes, # Do Bayesian scoring? $load_ham, # Load known ham? $load_spam, # Load known spam? $do_corpus # Classify the corpuses? ) = (@ARGV); our %openf = (); our %md5s = (); our %ham = (); our %spam = (); # All of the message generation happens here, under the covers. # Generate MD5s at the same time... my $msgnum = $num_msgs; foreach $msgref (read_random_mbox()) { my $md5 = Digest::MD5->md5_hex(join('', @{$msgref})); print "$msgnum: $md5\n"; $msgs{$md5} = $msgref; $msgnum--; } warn "In gen" if $findmsg && exists($msgs{$findmsg}); # Can't happen # Load the ham and the spam if ($load_ham) { require 'ham.pl'; # These are just references, so it should be pretty fast. map { $msgs{$_} = $ham{$_} } keys %ham if $do_corpus; warn "In ham" if $findmsg && exists($ham{$findmsg}); } if ($load_spam) { require 'spam.pl'; # These are just references, so it should be pretty fast. map { $msgs{$_} = $spam{$_} } keys %spam if $do_corpus; warn "In spam" if $findmsg && exists($spam{$findmsg}); } map { delete $msgs{$_} } grep { $_ ne $findmsg } keys %msgs if $findmsg; my $t = 0; my $last_time = 0; $num_msgs = (keys %msgs)+0; print "\ncheckspam $num_msgs $header_min $header_max $lines_min $lines_max $do_bayes\n"; if ($debug & 32) { print "MD5s and references:\n"; foreach (reverse sort keys %msgs) { print "$_: $msgs{$_}\n"; } } my @rc = (); print "Looking for spam:\n" if ($debug & 1); foreach my $md5 (reverse sort keys %msgs) { print '.' if ($debug & 16); my $msgref = $msgs{$md5}; print "$md5: $msgref\n" if ($debug & 32); if ($debug & 2) { # print Data::Dumper->Dump([$md5, $msgref], [qw(md5 msgref)]),"\n"; print "$md5:\n"; print ' '.join(' ', @{$msgref}),"\n"; } my $mail = Mail::SpamAssassin::NoMailAudit->new('data' => $msgref); my $status = $spamtest->check($mail); print "${md5}:\n"; if ($status->is_spam()) { printf " SPAM[%6d]: %s\n", $status->get_hits(), $status->get_names_of_tests_hit(); } else { printf " NOT SPAM[%6d]: %s\n", $status->get_hits(), $status->get_names_of_tests_hit(); } # Rewrite the mail $status->rewrite_mail(); my $newmsgref = [ @{$mail->header()}, "\r\n", @{$mail->body()} ]; my $newmsgmd5 = Digest::MD5->md5_hex(join('', @{$newmsgref})); if ($debug & 64) { print "newmsg: $newmsgmd5\n ".join(" ", @{$newmsgref})."\n"; } print " ...replaced by $newmsgmd5\n"; $msgs{$newmsgmd5} = $newmsgref; delete $msgs{$md5}; $status->finish(); } print join('', @rc)."\n" if @rc; print "\n\n" if ($debug & 16); # # Following is the message generation state machine. It's called by # read_random_mbox() from the SPECified Mail::Utils distribution # sub get_msg_line { return undef unless ($num_msgs > 0); print "get_msg_line: msg_state == $msg_state:" if ($debug & 8); if ($msg_state == 0) { # Start of new message; initialize everything $num_hdr_lines = int(rand($header_max - $header_min)) + $header_min; $num_hdr_lines = $header_max if ($num_header_lines > $header_max); $cur_msg_lines = 1; # Always have at least one Received header $num_received_hdrs = int(rand($num_hdr_lines - @header_order+0))+1; $num_received_hdrs = 1 if ($num_received_hdrs+(@header_order+0) > $header_max); $num_msg_lines = int(rand($lines_max - $lines_min)) + $lines_min - $num_hdr_lines; $num_msg_lines = $lines_max - $num_hdr_lines if ($num_msg_lines > $lines_max - $num_hdr_lines); %cur_hdrs_seen = map { $_ => 0 } ('From_', 'Received', @header_order); # Transition to the next state $msg_state = 1; print "New message #$num_msgs: $num_hdr_lines headers ($num_received_hdrs Received:), $num_msg_lines body lines\n"; # Each message must have an envelope 'From ', or it's not mbox format! print "From_: " if ($debug & 64); my $header = choose_header('From_'); print " $header" if ($debug & 8); return $header; } elsif ($msg_state == 1) { # Do received headers if ($num_received_hdrs > 0) { $num_received_hdrs--; $num_hdr_lines--; print "Received: " if ($debug & 64); my $header = choose_header('Received'); print " $header" if ($debug & 8); return $header; } else { $msg_state = 2; print " 'Received:' done. Transitioning to normal header lines\n" if ($debug & 8); return get_msg_line(); } } elsif ($msg_state == 2) { if ($num_hdr_lines > 0) { my $hdrnum = int(rand(@headerlist+0)); my $hdr = $headerlist[$hdrnum]; if (!defined $header_order[$num_hdr_lines]) { # Choose a random one while (exists $cur_hdrs_seen{$hdr}) { $hdrnum = int(rand(@headerlist+0)); $hdr = $headerlist[$hdrnum]; } } else { $hdr = $header_order[$num_hdr_lines]; } $num_hdr_lines--; print "$hdr: " if ($debug & 64); my $header = choose_header($hdr); print " $header" if ($debug & 8); return $header; } else { print "Body begins:\n" if ($debug & 64); print " Headers done. Transitioning to message body\n" if ($debug & 8); $msg_state = 3; return "\n"; # End of headers } } elsif ($msg_state == 3) { if ($num_msg_lines > 0) { $num_msg_lines--; my $linenum = int(rand($numlines)); print "$linenum\n" if ($debug & 64); my $line = $lines[$linenum]; print " $linenum of $numlines = \"$line\"\n" if ($debug & 8); return "$line\n"; } else { print " EOM\n" if ($debug & 8); print "\n" if ($debug & 64); $msg_state = 0; $num_msgs--; return "\n"; # End of message } } } sub choose_header { my ($hdr) = @_; print "choose_header($hdr): $num_hdrs{$hdr} choices\n" if ($debug & 4); my $hdrnum = int(rand($num_hdrs{$hdr})); my $header = $headers{$hdr}->[$hdrnum]; print " \"$header\"\n" if ($debug & 4); while (!defined($header) || $header =~ /^$/o) { $hdrnum = int(rand($num_hdrs{$hdr})); $header = $headers{$hdr}->[$hdrnum]; print " \"$header\"\n" if ($debug & 4); } $cur_hdrs_seen{$hdr}++; print "$hdrnum\n" if ($debug & 64); return "$header\n"; } ================================================ FILE: tests/perlbench/input/diffmail.in ================================================ # ~50 secs #4 70 15 24 23 100 # ~110 secs 2 550 15 24 23 100 # 65 secs #3 150 15 24 30 100 ================================================ FILE: tests/perlbench/input/diffmail.pl ================================================ #!/usr/bin/perl # # $Log: diffmail.pl,v $ # Revision 1.1 1999/04/23 05:15:39 channui # kit71 # # Revision 1.1 1999/04/16 09:12:02 channui # kit70 # # Revision 1.1 1999/04/09 10:07:39 channui # kit68 # # Revision 1.2 1999/02/16 07:31:28 cloyce # MHonArc diffs, output shortening # # Revision 1.1 1999/02/15 23:10:46 cloyce # Initial revision # # Revision 1.2 1998/11/09 23:27:40 cloyce # *** empty log message *** # # Revision 1.1 1998/11/09 20:53:42 cloyce # Initial revision # # Revision 1.3 1998/09/04 21:34:06 cloyce # - Messages are now generated and hashed on-the-fly. This saves about 50% # memory that would've just been dead space (direct generation of mbox array # vs. generate mbox string -> make mbox array). # - Added duplicate checking. This is an analog of another script I used for # the migration, but integrated this time. # - Nice long runtime # # Revision 1.2 1998/09/01 22:06:42 cloyce # Seems to work. # # Revision 1.1 1998/09/01 21:12:56 cloyce # Initial revision # # use Date::Format; use Date::Parse; use Mail::Util; use Digest::MD5; require 'specdiff.pm'; require 'compare.pm'; $^H |= 1; # use integer! $| = 1; # Debug levels. Setting any level will cause validation to fail (duh) # 1 -- general stuff # 2 -- dump generated messages as they're processed # 4 -- choose_header debugging # 8 -- get_msg_line debugging # 16 -- message checking heartbeat # 32 -- # 64 -- show numbers of body lines # 128 -- output the contents of all files (could be long!) $debug = 0; srand(1018987167); # This number is important # Get %headers, @headerlist, $words require 'mailcomp.pm'; # These are globalish because they need to persist across calls to # get_msg_line, and in some cases it would be stupid and time-consuming # to calculate them over and over again. my @header_order = qw(X-Yow Subject Date To From Message-Id); # Reverse order my $horderre = '('.join('|', @header_order).')'; my @headerlist = grep { !/$horderre/o } keys %headers; my $numlines = @lines+0; my %num_hdrs = map { $_ => @{$headers{$_}}+0 } keys %headers; my $msg_state = 0; # 0 -- Start of message 'From_' # 1 -- Doing 'Received:' headers # 2 -- Other header generation # 3 -- Body generation my ($num_received_hdrs, $num_hdr_lines, $num_body_lines) = (0,0,0); my ($cur_msg_lines, %cur_seen_hdrs) = (0, ()); @specdiff_opts = qw(--lines 0 --quiet --calctol -m --cw); # Get the command line parameters my ($mboxes, # Number of mailboxes to generate $num_msgs, # Number of messages/mailbox to generate $header_min, # Minimum number of headers (lines) $header_max, # Maximum number of headers (lines) $lines_min, # Minimum # lines in message $lines_max # Maximum # lines in message ) = (@ARGV); %openf = (); @msgs = (); # Make $mboxes mboxes to run specdiff over # All of the message generation happens here, under the covers. my $msgnum = $num_msgs; for (my $i = 0; $i < $mboxes; $i++) { $::sd_files{"mbox$i"} = join('', read_random_mbox_msgs()); push @msgs, \$::sd_files{"mbox$i"}; $num_msgs = $msgnum; } my $t = 0; my $last_time = 0; $msgnum = 0; print "\ndiffmail $mboxes $num_msgs $header_min $header_max $lines_min $lines_max\n"; print "diffing...\n" if ($debug & 1); # Iterate over all the combinations of all the mailboxes for (my $i = 0; $i < $mboxes; $i++) { for (my $j = $i; $j < $mboxes; $j++) { my @fnames = ( sprintf("one%03d", $msgnum) ); $msgnum++; push @fnames, sprintf("two%03d", $msgnum); $msgnum++; print "($i, $j): "; $::sd_files{$fnames[0]} = $msgs[$i]; $::sd_files{$fnames[1]} = $msgs[$j]; my @opts = (@specdiff_opts, @fnames); print "spec_diff(",join(', ', @opts),")\n"; SPECdiff::specdiff_main(@opts); map { delete $::sd_files{$_} } @fnames; } } foreach (sort keys %::sd_files) { print "$_: ", Digest::MD5->md5_hex($::sd_files{$_}),"\n"; print $::sd_files{$_},"\n" if ($debug & 128); } print "\n\n" if ($debug & 16); # # Following is the message generation state machine. It's called by # read_random_mbox() from the SPECified Mail::Utils distribution # sub get_msg_line { return undef unless ($num_msgs > 0); print "get_msg_line: msg_state == $msg_state:" if ($debug & 8); if ($msg_state == 0) { # Start of new message; initialize everything $num_hdr_lines = int(rand($header_max - $header_min)) + $header_min; $num_hdr_lines = $header_max if ($num_header_lines > $header_max); $cur_msg_lines = 1; $num_received_hdrs = int(rand($num_hdr_lines - @header_order+0)); $num_received_hdrs = 0 if ($num_received_hdrs+(@header_order+0) > $header_max); $num_msg_lines = int(rand($lines_max - $lines_min)) + $lines_min - $num_hdr_lines; $num_msg_lines = $lines_max - $num_hdr_lines if ($num_msg_lines > $lines_max - $num_hdr_lines); %cur_hdrs_seen = map { $_ => 0 } ('From_', 'Received', @header_order); # Transition to the next state $msg_state = 1; print "New message #$num_msgs: $num_hdr_lines headers ($num_received_hdrs Received:), $num_msg_lines body lines\n"; # Each message must have an envelope 'From ', or it's not mbox format! print "From_: " if ($debug & 64); my $header = choose_header('From_'); print " $header" if ($debug & 8); return $header; } elsif ($msg_state == 1) { # Do received headers if ($num_received_hdrs > 0) { $num_received_hdrs--; $num_hdr_lines--; print "Received: " if ($debug & 64); my $header = choose_header('Received'); print " $header" if ($debug & 8); return $header; } else { $msg_state = 2; print " 'Received:' done. Transitioning to normal header lines\n" if ($debug & 8); return get_msg_line(); } } elsif ($msg_state == 2) { if ($num_hdr_lines > 0) { my $hdrnum = int(rand(@headerlist+0)); my $hdr = $headerlist[$hdrnum]; if (!defined $header_order[$num_hdr_lines]) { # Choose a random one while (exists $cur_hdrs_seen{$hdr}) { $hdrnum = int(rand(@headerlist+0)); $hdr = $headerlist[$hdrnum]; } } else { $hdr = $header_order[$num_hdr_lines]; } $num_hdr_lines--; print "$hdr: " if ($debug & 64); my $header = choose_header($hdr); print " $header" if ($debug & 8); return $header; } else { print "Body begins:\n" if ($debug & 64); print " Headers done. Transitioning to message body\n" if ($debug & 8); $msg_state = 3; return "\n"; # End of headers } } elsif ($msg_state == 3) { if ($num_msg_lines > 0) { $num_msg_lines--; my $linenum = int(rand($numlines)); print "$linenum\n" if ($debug & 64); my $line = $lines[$linenum]; print " $linenum of $numlines = \"$line\"\n" if ($debug & 8); return "$line\n"; } else { print " EOM\n" if ($debug & 8); print "\n" if ($debug & 64); $msg_state = 0; $num_msgs--; return "\n"; # End of message } } } sub choose_header { my ($hdr) = @_; print "choose_header($hdr): $num_hdrs{$hdr} choices\n" if ($debug & 4); my $hdrnum = int(rand($num_hdrs{$hdr})); my $header = $headers{$hdr}->[$hdrnum]; print " \"$header\"\n" if ($debug & 4); while (!defined($header) || $header =~ /^$/o) { $hdrnum = int(rand($num_hdrs{$hdr})); $header = $headers{$hdr}->[$hdrnum]; print " \"$header\"\n" if ($debug & 4); } $cur_hdrs_seen{$hdr}++; print "$hdrnum\n" if ($debug & 64); return "$header\n"; } sub read_mhonarc_rcfile { open(RCIN, "cpu2006_mhonarc.rc") || die "Couldn't open cpu2006_mhonarc.rc\nStopped"; my @rc = ; close(RCIN); return @rc; } ================================================ FILE: tests/perlbench/input/perfect.in ================================================ # Definitely don't put anything over 4 here, or you'll be waiting for a *long* # time, with either method. b 3 ================================================ FILE: tests/perlbench/input/perfect.pl ================================================ #!/usr/bin/perl # Find some number of perfect numbers, using either native integers or # perl BigInts # This is a toy, and nobody would use Math::BigInt for anything performance # critical (bindings for fast, C-based MP libraries exist), but it does # exercise a lot of perl that *is* used in all sorts of situations. # I'm thinking specifically of the OO stuff, overloading, and non-regexp # string manipulation, just to name a few. use Math::BigInt; $^H |= 1; # use integer; $|=1; $standalone = 0; print "Args: ",join(', ', @ARGV),"\n"; while (@ARGV) { my ($method, $number) = splice(@ARGV, 0, 2); $number = (defined $number && $number > 0) ? $number : 2; # Do the initial set-up if ($method !~ /b/i) { ($i, $j, $m) = (2, 2, 1); print "Machine integers, first $number perfect numbers:\n"; } else { $i = new Math::BigInt '2'; $j = new Math::BigInt '2'; $m = new Math::BigInt '1'; print "Math::BigInt integers, first $number perfect numbers:\n"; } if ($standalone) { print "Done"; $t1 = time; } perfect($number); print ' in ',time - $t1," seconds\n" if $standalone; } sub perfect { my ($limit) = @_; my ($found) = (0); for (;; $i += 2) { for ($j = 2; $j < (1 + $i/2); $j++) { $m += $j if (($i % $j) == 0); } print "$i, $m, $j; found $found: " if ($j % 100 == 0); if ($i == $m) { print "perfect $i\n"; $found++; return if ($found >= $limit); } else { print "nope\n" if ($j % 100 == 0); } $m = 1; } } ================================================ FILE: tests/perlbench/input/scrabbl.in ================================================ zed yankeeist band april acetylic abdomen abortive ================================================ FILE: tests/perlbench/input/scrabbl.pl ================================================ # Scrabbl.pl -- Find all words from a collection of letters # - basically a simple application utilizing associative arrays # Logic(?) &readdict; &makewords; exit 0; # # Subroutines # sub readdict { # Read all the words in our dictionary input open(DICT,'dictionary') || die "Can't open dictionary 'dictionary'\n"; while() { chop; next if /[^a-z]/; # only want words w/o special chars $dict{$_} = $_; } close(DICT); } sub makewords { while(<>) { ($input) = /([a-z]+)/; # get only the letters $len = length($input); @set = ('X') x $len; %found = (); &permute($input, @set); foreach $word (sort keys(%found)) { print "$found{$word} --> $word\n"; } } } sub permute { local( $letters, @set ) = @_; local( $char, $i ); if( $letters eq '' ) { $word = join('', @set); if( defined($dict{$word}) ) { $found{$word} = $input; } return; } $char = substr($letters, 0, 1); $letters = substr($letters, 1); for( $i=0; $i<$len; $i++ ) { next if $set[$i] ne 'X'; $set[$i] = $char; &permute($letters, @set); $set[$i] = 'X'; } } ================================================ FILE: tests/perlbench/input/splitmail.in ================================================ # And now some values from the actual SPEC mail archives: # An osgcpu-ish mix (~160 secs): #704 12 26 16 836 # An osgsupport-ish mix (~155 secs): 535 13 25 24 1091 # An osgweb-ish mix (~275 secs): #957 12 23 26 1014 # These values are used for testing and debugging only #75 5 19 18 2500 #5 5 19 18 50 #70 5 19 18 250 #2 5 19 18 120 ================================================ FILE: tests/perlbench/input/splitmail.pl ================================================ #!/usr/bin/perl # # $Log: splitmail.pl,v $ # Revision 1.3 2004/03/24 00:13:55 cloyce # Don't output MD5 sums for temporary files # # Revision 1.2 2004/03/22 23:59:06 cloyce # Hopefully the last of the localtime eradications. # # Revision 1.1 2004/01/12 16:21:14 cloyce # Big workload overhaul -- added Mail::SpamAssassin, updated CPU2000 components # # Revision 1.1 1999/04/09 10:07:39 channui # kit68 # # Revision 1.2 1999/02/16 07:31:28 cloyce # MHonArc diffs, output shortening # # Revision 1.1 1999/02/15 23:10:46 cloyce # Initial revision # # Revision 1.2 1998/11/09 23:27:40 cloyce # *** empty log message *** # # Revision 1.1 1998/11/09 20:53:42 cloyce # Initial revision # # Revision 1.3 1998/09/04 21:34:06 cloyce # - Messages are now generated and hashed on-the-fly. This saves about 50% # memory that would've just been dead space (direct generation of mbox array # vs. generate mbox string -> make mbox array). # - Added duplicate checking. This is an analog of another script I used for # the migration, but integrated this time. # - Nice long runtime # # Revision 1.2 1998/09/01 22:06:42 cloyce # Seems to work. # # Revision 1.1 1998/09/01 21:12:56 cloyce # Initial revision # # use Date::Format; use Date::Parse; use Mail::Header; use Mail::Util; use Digest::MD5; $^H |= 1; # use integer! require 'mhamain.pl'; $| = 1; # Debug levels. Setting any level will cause validation to fail (duh) # 1 -- general stuff # 2 -- dump generated messages as they're processed # 4 -- choose_header debugging # 8 -- get_msg_line debugging # 16 -- message checking heartbeat # 32 -- show MD5 sums as they're generated # 64 -- show numbers of body lines # 128 -- output HTML messages # 256 -- output time-related messages $debug = 0; srand(1018987167); # Get %headers, @headerlist, $words require 'mailcomp.pm'; # These are globalish because they need to persist across calls to # get_msg_line, and in some cases it would be stupid and time-consuming # to calculate them over and over again. my @header_order = qw(X-Yow Subject Date To From Message-Id); # Reverse order my $horderre = '('.join('|', @header_order).')'; my @headerlist = grep { !/$horderre/o } keys %headers; my $numlines = @lines+0; my %num_hdrs = map { $_ => @{$headers{$_}}+0 } keys %headers; my $msg_state = 0; # 0 -- Start of message 'From_' # 1 -- Doing 'Received:' headers # 2 -- Other header generation # 3 -- Body generation my ($num_received_hdrs, $num_hdr_lines, $num_body_lines) = (0,0,0); my ($cur_msg_lines, %cur_seen_hdrs) = (0, ()); my @mhonarc_rcfile = read_mhonarc_rcfile(); # Get the command line parameters my ($num_msgs, # Number of messages to generate $header_min, # Minimum number of headers (lines) $header_max, # Maximum number of headers (lines) $lines_min, # Minimum # lines in message $lines_max # Maximum # lines in message ) = (@ARGV); %openf = (); %md5s = (); # All of the message generation happens here, under the covers. # Generate MD5s at the same time... my $msgnum = $num_msgs; foreach $msgref (read_random_mbox()) { my $md5 = Digest::MD5->md5_hex(join('', @{$msgref})); print "$msgnum: $md5\n"; $msgs{$md5} = $msgref; $msgnum--; } my $t = 0; my $last_time = 0; $num_msgs = (keys %msgs)+0; print "\nsplitmail $num_msgs $header_min $header_max $lines_min $lines_max\n"; if ($debug & 32) { print "MD5s and references:\n"; foreach (reverse sort keys %msgs) { print "$_: $msgs{$_}\n"; } } print "Processing and locating duplicates:\n" if ($debug & 1); foreach my $md5 (reverse sort keys %msgs) { print '.' if ($debug & 16); my $msgref = $msgs{$md5}; print "$md5: $msgref\n" if ($debug & 32); if ($debug & 2) { # print Data::Dumper->Dump([$md5, $msgref], [qw(md5 msgref)]),"\n"; print "$md5:\n"; print ' '.join(' ', @{$msgref}),"\n"; } my $m = new Mail::Header $msgref; undef %t; map { $t{$_} = 1 } $m->tags(); if (exists $t{"Date"} || exists $t{'X-Info'}) { $last_time = $t; # Prefer a time in an X-Info: header (thanks, Alex!) my $xinfo = $m->get('X-Info'); $xinfo =~ /Accepted by \S+ distribution list at (.*)/o; my ($xdate, $date, $now, $early) = ($1, $m->get('Date'), 1018987167, '1 Jan 1990'); print "$md5: \$xdate = $xdate \$date = $date \$early = $early \$now = $now \$last_time = $last_time\n" if ($debug & 256); $xdate = str2time($xdate) if ($xdate ne ''); $date = str2time($date); $early = str2time($early); print "$md5: \$xdate = $xdate \$date = $date \$early = $early \$now = $now \$last_time = $last_time\n\n" if ($debug & 256); # if (($xdate <= $now) && ($xdate > $early)) { if ($xdate > $early) { $t = $xdate; # } elsif (($date <= $now) && ($date > $early)) { } elsif ($date > $early) { $t = $date; } else { print "Bad X-Info and Date dates! Going with ",time2str("%Y%m", $last_time),"\n\$xdate = $xdate \$date = $date \$early = $early \$now = $now \$last_time = $last_time\n"; $t = $last_time; } $d = time2str("%Y%m", $t); print "$md5: $t => $d\n" if ($debug & 256); } else { $d = 'NODATE'; print "No date; filing in NODATE.arc\n"; } $msgs_seen{$md5}++; for ($body1 = 0; $msgs{$md5}->[$body1] !~ /^$/o; $body1++) {}; $body1++; # Index of first body line my $numbody1 = @{$msgs{$md5}}+0; my $same = 0; foreach my $md5_2 (grep { !exists $msgs_seen{$_} } sort keys %msgs) { next if ($md5_2 eq ''); for ($body2 = 0; $msgs{$md5_2}->[$body2] !~ /^$/o; $body2++) {}; $body2++; # Index of first body line my $numbody2 = @{$msgs{$md5_2}}+0; $same = 0; while (($body1 <= $numbody1) && ($body2 <= $numbody2) && ($msgs{$md5}->[$body1] eq $msgs{$md5_2}->[$body2])) { $body1++; $body2++; } $same = 0 if (($body1 > $numbody1) || ($body2 > $numbody2)); print "$md5<->$md5_2: same\n" if $same; } if (!$same) { push @{$md5s{$d}}, $md5; push @{$mboxen{$d}}, @{$msgs{$md5}}; $openf{$d} = 1; } delete $msgs{$md5}; # Save some memory } %mhonarc::mhonarc_files = (); foreach (sort keys %openf) { print "Message hashes for $_\n"; print join("\n", sort { lc($a) cmp lc($b) } @{$md5s{$_}}),"\n"; # Call mhonarc for the lot of them # Preload $mhonarc::mhonarc_rcs{$_} with the contents of $mhonarc_rcfile @{$mhonarc::mhonarc_files{"$_/mhonarc.rc"}} = @mhonarc_rcfile; # Copy it # Make sure it has a mailbox to play with $mhonarc::mhonarc_files{"mbox.$_"} = $mboxen{$_}; # Don't copy it # mhonarc thinks it's been invoked from the command line, so it of course # wants to grub around with @ARGV. That's okay with us... we're done with # it at this point. @ARGV = ('-definevars', "ARC-DATE=\"$_\" MAIN-TITLE=\"SPEC CPU2006 virtual mailing list\"", '-outdir', $_, '-rcfile', "$_/mhonarc.rc", "mbox.$_"); mhonarc::initialize(); mhonarc::process_input(); # Now get MD5 sums for all of the various MHonArc files foreach my $mhonarcfile (sort { lc($a) cmp lc($b) } keys %mhonarc::mhonarc_files) { next if ($mhonarcfile =~ /(?:\.mhonarc\.db|TEMPFILE)/io); print "$mhonarcfile: ", Digest::MD5->md5_hex(join('', @{$mhonarc::mhonarc_files{$mhonarcfile}})),"\n"; print join('', @{$mhonarc::mhonarc_files{$mhonarcfile}}),"\n" if ($debug & 128); } %mhonarc::mhonarc_files = (); # Save a little memory } print "\n\n" if ($debug & 16); # # Following is the message generation state machine. It's called by # read_random_mbox() from the SPECified Mail::Utils distribution # sub get_msg_line { return undef unless ($num_msgs > 0); print "get_msg_line: msg_state == $msg_state:" if ($debug & 8); if ($msg_state == 0) { # Start of new message; initialize everything $num_hdr_lines = int(rand($header_max - $header_min)) + $header_min; $num_hdr_lines = $header_max if ($num_header_lines > $header_max); $cur_msg_lines = 1; $num_received_hdrs = int(rand($num_hdr_lines - @header_order+0)); $num_received_hdrs = 0 if ($num_received_hdrs+(@header_order+0) > $header_max); $num_msg_lines = int(rand($lines_max - $lines_min)) + $lines_min - $num_hdr_lines; $num_msg_lines = $lines_max - $num_hdr_lines if ($num_msg_lines > $lines_max - $num_hdr_lines); %cur_hdrs_seen = map { $_ => 0 } ('From_', 'Received', @header_order); # Transition to the next state $msg_state = 1; print "New message #$num_msgs: $num_hdr_lines headers ($num_received_hdrs Received:), $num_msg_lines body lines\n"; # Each message must have an envelope 'From ', or it's not mbox format! print "From_: " if ($debug & 64); my $header = choose_header('From_'); print " $header" if ($debug & 8); return $header; } elsif ($msg_state == 1) { # Do received headers if ($num_received_hdrs > 0) { $num_received_hdrs--; $num_hdr_lines--; print "Received: " if ($debug & 64); my $header = choose_header('Received'); print " $header" if ($debug & 8); return $header; } else { $msg_state = 2; print " 'Received:' done. Transitioning to normal header lines\n" if ($debug & 8); return get_msg_line(); } } elsif ($msg_state == 2) { if ($num_hdr_lines > 0) { my $hdrnum = int(rand(@headerlist+0)); my $hdr = $headerlist[$hdrnum]; if (!defined $header_order[$num_hdr_lines]) { # Choose a random one while (exists $cur_hdrs_seen{$hdr}) { $hdrnum = int(rand(@headerlist+0)); $hdr = $headerlist[$hdrnum]; } } else { $hdr = $header_order[$num_hdr_lines]; } $num_hdr_lines--; print "$hdr: " if ($debug & 64); my $header = choose_header($hdr); print " $header" if ($debug & 8); return $header; } else { print "Body begins:\n" if ($debug & 64); print " Headers done. Transitioning to message body\n" if ($debug & 8); $msg_state = 3; return "\n"; # End of headers } } elsif ($msg_state == 3) { if ($num_msg_lines > 0) { $num_msg_lines--; my $linenum = int(rand($numlines)); print "$linenum\n" if ($debug & 64); my $line = $lines[$linenum]; print " $linenum of $numlines = \"$line\"\n" if ($debug & 8); return "$line\n"; } else { print " EOM\n" if ($debug & 8); print "\n" if ($debug & 64); $msg_state = 0; $num_msgs--; return "\n"; # End of message } } } sub choose_header { my ($hdr) = @_; print "choose_header($hdr): $num_hdrs{$hdr} choices\n" if ($debug & 4); my $hdrnum = int(rand($num_hdrs{$hdr})); my $header = $headers{$hdr}->[$hdrnum]; print " \"$header\"\n" if ($debug & 4); while (!defined($header) || $header =~ /^$/o) { $hdrnum = int(rand($num_hdrs{$hdr})); $header = $headers{$hdr}->[$hdrnum]; print " \"$header\"\n" if ($debug & 4); } $cur_hdrs_seen{$hdr}++; print "$hdrnum\n" if ($debug & 64); return "$header\n"; } sub read_mhonarc_rcfile { open(RCIN, "cpu2006_mhonarc.rc") || die "Couldn't open cpu2006_mhonarc.rc\nStopped"; my @rc = ; close(RCIN); return @rc; } ================================================ FILE: tests/perlbench/input/suns.pl ================================================ #!/usr/local/bin/perl # Developed by Kaivalya/Cloyce/Jason - Kmd # Version 1.0 Tue Aug 27 14:01:53 CDT 2002 # Default output file name $output_name = "validate"; $dict_name = "WORDS"; # Dictionary name and optionally validation name can be provided $dict_name = shift(@ARGV) if (@ARGV); $output_name = shift(@ARGV) if (@ARGV); $| = 1; $k = 0; $b = ""; # open dictionary, scrambled file and validation file (optional) # if ($dict_name =~ m/\.(z|gz|Z)$/) { # open (DICT, "zcat $dict_name|") || die "Can't open file '$dict_name': $!\n"; # } # else { open (DICT, "<$dict_name") || die "Can't open file '$dict_name': $!\n"; # } open (OUTPUT, ">$output_name") || die "Can't open output file '$output_name'\n"; ###### all files opened and available # # print "Dictionary - $dict_name\n"; print OUTPUT "Dictionary - $dict_name\n"; print "Validation - $output_name\n\n"; print OUTPUT "Validation - $output_name\n\n"; # # Read in dictionary, store it in associateve array printf OUTPUT "Reading Dictionary : "; # read dictionary, scramble it and also misspell # some of the words while () { chomp; $element = $_; # scramble it $revelm = reverse split(//, $element); $dicthash++; push( @{$words{join( "", sort split( //, $_ ) )}}, $_ ); &misspellit; # mis-spell few words; push( @{$jwords{join("", sort split( //, $x ) )}}, $x ); } # define two arryas: scrambled and unable to scramble arrays # these will be used for validation @valid_scram = (); @valid_scram_not = (); # Cycle through scrambled and look up %words @sort_words = sort byfield keys( %jwords ); # while ( ($sort_word, $scrambled) = each( %jwords ) ) { foreach $sort_word ( @sort_words ) { $scrambled = $jwords{$sort_word}; if (exists $words{$sort_word}) { @words = @{$words{$sort_word}}; foreach( @{$scrambled} ) { push( @valid_scram, sprintf("%24s --> @words\n", $_ )); $unscrambled += @words; } } else { @words = @{$scrambled}; push( @valid_scram_not, sprintf( "%24s\n", @words ) ); $couldnotunscramble += @words; } } print OUTPUT "\nWords unscrambled : ", $unscrambled, "\n"; print OUTPUT "Can not unscrmble : ", $couldnotunscramble, "\n\n"; print OUTPUT "Validation output:\n\n"; print OUTPUT " UNSCRAMBLED:\n"; $increment = int( ($#valid_scram + 1) * 0.010 ); $increment = 1 unless $increment; print OUTPUT "Valid increment = ", $increment, "\n"; for( $i = 0; $i <= $#valid_scram; $i += $increment ) { print OUTPUT $valid_scram [ $i ]; } print OUTPUT "\n CANNOT UNSCRAMBLE :\n"; $increment = int( ($#valid_scram_not + 1) * 0.10 ); $increment = 1 unless $increment; print OUTPUT "Invalid increment = ", $increment, "\n"; for( $i = 0; $i <= $#valid_scram_not; $i += $increment ) { print OUTPUT $valid_scram_not [ $i ]; } print OUTPUT "\n\n"; print "Finished\n"; # Release all resources (gracefully) close (DICT); close (OUTPUT); exit (0); #------------Mis-spell some of the scrambled words sub misspellit { $k++; # chop; if ( $k % 511 && $k % 1023 && $k % 4097 && $k % 8193 && $k % 16387 && $k % 32767 ) { &keepit; } else { &fixspell; } } sub fixspell { $x = join('', $b++, $revelm ); if ($j++ > 27) { $b = "a"; $j = 0; } } sub keepit { $x = $revelm; } sub byfield { return( $a cmp $b ); } ================================================ FILE: tests/perlbench/intrpvar.h ================================================ /***********************************************/ /* Global only to current interpreter instance */ /***********************************************/ /* Don't forget to re-run embed.pl to propagate changes! */ /* New variables must be added to the very end for binary compatibility. * XSUB.h provides wrapper functions via perlapi.h that make this * irrelevant, but not all code may be expected to #include XSUB.h. */ /* Don't forget to add your variable also to perl_clone()! */ /* The 'I' prefix is only needed for vars that need appropriate #defines * generated when built with or without MULTIPLICITY. It is also used * to generate the appropriate export list for win32. * * When building without MULTIPLICITY, these variables will be truly global. */ /* pseudo environmental stuff */ PERLVAR(Iorigargc, int) PERLVAR(Iorigargv, char **) PERLVAR(Ienvgv, GV *) PERLVAR(Iincgv, GV *) PERLVAR(Ihintgv, GV *) PERLVAR(Iorigfilename, char *) PERLVAR(Idiehook, SV *) PERLVAR(Iwarnhook, SV *) /* switches */ PERLVAR(Iminus_c, bool) PERLVAR(Ipatchlevel, SV *) PERLVAR(Ilocalpatches, char **) PERLVARI(Isplitstr, char *, " ") PERLVAR(Ipreprocess, bool) PERLVAR(Iminus_n, bool) PERLVAR(Iminus_p, bool) PERLVAR(Iminus_l, bool) PERLVAR(Iminus_a, bool) PERLVAR(Iminus_F, bool) PERLVAR(Idoswitches, bool) /* =head1 Global Variables =for apidoc mn|bool|PL_dowarn The C variable which corresponds to Perl's $^W warning variable. =cut */ PERLVAR(Idowarn, U8) PERLVAR(Iwidesyscalls, bool) /* unused since 5.8.1 */ PERLVAR(Idoextract, bool) PERLVAR(Isawampersand, bool) /* must save all match strings */ PERLVAR(Iunsafe, bool) PERLVAR(Iinplace, char *) PERLVAR(Ie_script, SV *) PERLVAR(Iperldb, U32) /* This value may be set when embedding for full cleanup */ /* 0=none, 1=full, 2=full with checks */ PERLVARI(Iperl_destruct_level, int, 0) /* magical thingies */ PERLVAR(Ibasetime, Time_t) /* $^T */ PERLVAR(Iformfeed, SV *) /* $^L */ PERLVARI(Imaxsysfd, I32, MAXSYSFD) /* top fd to pass to subprocesses */ PERLVAR(Imultiline, int) /* $*--do strings hold >1 line? */ PERLVAR(Istatusvalue, I32) /* $? */ PERLVAR(Iexit_flags, U8) /* was exit() unexpected, etc. */ #ifdef VMS PERLVAR(Istatusvalue_vms,U32) #endif /* shortcuts to various I/O objects */ PERLVAR(Istdingv, GV *) PERLVAR(Istderrgv, GV *) PERLVAR(Idefgv, GV *) PERLVAR(Iargvgv, GV *) PERLVAR(Iargvoutgv, GV *) PERLVAR(Iargvout_stack, AV *) /* shortcuts to regexp stuff */ /* this one needs to be moved to thrdvar.h and accessed via * find_threadsv() when USE_5005THREADS */ PERLVAR(Ireplgv, GV *) /* shortcuts to misc objects */ PERLVAR(Ierrgv, GV *) /* shortcuts to debugging objects */ PERLVAR(IDBgv, GV *) PERLVAR(IDBline, GV *) /* =for apidoc mn|GV *|PL_DBsub When Perl is run in debugging mode, with the B<-d> switch, this GV contains the SV which holds the name of the sub being debugged. This is the C variable which corresponds to Perl's $DB::sub variable. See C. =for apidoc mn|SV *|PL_DBsingle When Perl is run in debugging mode, with the B<-d> switch, this SV is a boolean which indicates whether subs are being single-stepped. Single-stepping is automatically turned on after every step. This is the C variable which corresponds to Perl's $DB::single variable. See C. =for apidoc mn|SV *|PL_DBtrace Trace variable used when Perl is run in debugging mode, with the B<-d> switch. This is the C variable which corresponds to Perl's $DB::trace variable. See C. =cut */ PERLVAR(IDBsub, GV *) PERLVAR(IDBsingle, SV *) PERLVAR(IDBtrace, SV *) PERLVAR(IDBsignal, SV *) PERLVAR(Ilineary, AV *) /* lines of script for debugger */ PERLVAR(Idbargs, AV *) /* args to call listed by caller function */ /* symbol tables */ PERLVAR(Idebstash, HV *) /* symbol table for perldb package */ PERLVAR(Iglobalstash, HV *) /* global keyword overrides imported here */ PERLVAR(Icurstname, SV *) /* name of current package */ PERLVAR(Ibeginav, AV *) /* names of BEGIN subroutines */ PERLVAR(Iendav, AV *) /* names of END subroutines */ PERLVAR(Icheckav, AV *) /* names of CHECK subroutines */ PERLVAR(Iinitav, AV *) /* names of INIT subroutines */ PERLVAR(Istrtab, HV *) /* shared string table */ PERLVARI(Isub_generation,U32,1) /* incr to invalidate method cache */ /* memory management */ PERLVAR(Isv_count, I32) /* how many SV* are currently allocated */ PERLVAR(Isv_objcount, I32) /* how many objects are currently allocated */ PERLVAR(Isv_root, SV*) /* storage for SVs belonging to interp */ PERLVAR(Isv_arenaroot, SV*) /* list of areas for garbage collection */ /* funky return mechanisms */ PERLVAR(Iforkprocess, int) /* so do_open |- can return proc# */ /* subprocess state */ PERLVAR(Ifdpid, AV *) /* keep fd-to-pid mappings for my_popen */ /* internal state */ PERLVAR(Itainting, bool) /* doing taint checks */ PERLVARI(Iop_mask, char *, NULL) /* masked operations for safe evals */ /* current interpreter roots */ PERLVAR(Imain_cv, CV *) PERLVAR(Imain_root, OP *) PERLVAR(Imain_start, OP *) PERLVAR(Ieval_root, OP *) PERLVAR(Ieval_start, OP *) /* runtime control stuff */ PERLVARI(Icurcopdb, COP *, NULL) PERLVARI(Icopline, line_t, NOLINE) /* statics moved here for shared library purposes */ PERLVAR(Ifilemode, int) /* so nextargv() can preserve mode */ PERLVAR(Ilastfd, int) /* what to preserve mode on */ PERLVAR(Ioldname, char *) /* what to preserve mode on */ PERLVAR(IArgv, char **) /* stuff to free from do_aexec, vfork safe */ PERLVAR(ICmd, char *) /* stuff to free from do_aexec, vfork safe */ PERLVARI(Igensym, I32, 0) /* next symbol for getsym() to define */ PERLVAR(Ipreambled, bool) PERLVAR(Ipreambleav, AV *) PERLVARI(Ilaststatval, int, -1) PERLVARI(Ilaststype, I32, OP_STAT) PERLVAR(Imess_sv, SV *) /* XXX shouldn't these be per-thread? --GSAR */ PERLVAR(Iors_sv, SV *) /* output record separator $\ */ PERLVAR(Iofmt, char *) /* output format for numbers $# */ /* interpreter atexit processing */ PERLVARI(Iexitlist, PerlExitListEntry *, NULL) /* list of exit functions */ PERLVARI(Iexitlistlen, I32, 0) /* length of same */ /* =for apidoc Amn|HV*|PL_modglobal C is a general purpose, interpreter global HV for use by extensions that need to keep information on a per-interpreter basis. In a pinch, it can also be used as a symbol table for extensions to share data among each other. It is a good idea to use keys prefixed by the package name of the extension that owns the data. =cut */ PERLVAR(Imodglobal, HV *) /* per-interp module data */ /* these used to be in global before 5.004_68 */ PERLVARI(Iprofiledata, U32 *, NULL) /* table of ops, counts */ PERLVARI(Irsfp, PerlIO * VOL, Nullfp) /* current source file pointer */ PERLVARI(Irsfp_filters, AV *, Nullav) /* keeps active source filters */ PERLVAR(Icompiling, COP) /* compiling/done executing marker */ PERLVAR(Icompcv, CV *) /* currently compiling subroutine */ PERLVAR(IBINCOMPAT0, AV *) /* filler for binary compatibility */ PERLVAR(Icomppad_name, AV *) /* variable names for "my" variables */ PERLVAR(Icomppad_name_fill, I32) /* last "introduced" variable offset */ PERLVAR(Icomppad_name_floor, I32) /* start of vars in innermost block */ #ifdef HAVE_INTERP_INTERN PERLVAR(Isys_intern, struct interp_intern) /* platform internals */ #endif /* more statics moved here */ PERLVARI(Igeneration, int, 100) /* from op.c */ PERLVAR(IDBcv, CV *) /* from perl.c */ PERLVARI(Iin_clean_objs,bool, FALSE) /* from sv.c */ PERLVARI(Iin_clean_all, bool, FALSE) /* from sv.c */ PERLVAR(Ilinestart, char *) /* beg. of most recently read line */ PERLVAR(Ipending_ident, char) /* pending identifier lookup */ PERLVAR(Isublex_info, SUBLEXINFO) /* from toke.c */ #ifdef USE_5005THREADS PERLVAR(Ithrsv, SV *) /* struct perl_thread for main thread */ PERLVARI(Ithreadnum, U32, 0) /* incremented each thread creation */ PERLVAR(Istrtab_mutex, perl_mutex) /* Mutex for string table access */ #endif /* USE_5005THREADS */ PERLVAR(Iuid, Uid_t) /* current real user id */ PERLVAR(Ieuid, Uid_t) /* current effective user id */ PERLVAR(Igid, Gid_t) /* current real group id */ PERLVAR(Iegid, Gid_t) /* current effective group id */ PERLVAR(Inomemok, bool) /* let malloc context handle nomem */ PERLVARI(Ian, U32, 0) /* malloc sequence number */ PERLVARI(Icop_seqmax, U32, 0) /* statement sequence number */ PERLVARI(Iop_seqmax, U16, 0) /* op sequence number */ PERLVARI(Ievalseq, U32, 0) /* eval sequence number */ PERLVAR(Iorigenviron, char **) PERLVAR(Iorigalen, U32) PERLVAR(Ipidstatus, HV *) /* pid-to-status mappings for waitpid */ PERLVARI(Imaxo, int, MAXO) /* maximum number of ops */ PERLVAR(Iosname, char *) /* operating system */ /* For binary compatibility with older versions only */ PERLVARI(Ish_path_compat, char *, SH_PATH)/* full path of shell */ PERLVAR(Isighandlerp, Sighandler_t) PERLVAR(Ixiv_arenaroot, XPV*) /* list of allocated xiv areas */ PERLVAR(Ixiv_root, IV *) /* free xiv list */ PERLVAR(Ixnv_root, NV *) /* free xnv list */ PERLVAR(Ixrv_root, XRV *) /* free xrv list */ PERLVAR(Ixpv_root, XPV *) /* free xpv list */ PERLVAR(Ixpviv_root, XPVIV *) /* free xpviv list */ PERLVAR(Ixpvnv_root, XPVNV *) /* free xpvnv list */ PERLVAR(Ixpvcv_root, XPVCV *) /* free xpvcv list */ PERLVAR(Ixpvav_root, XPVAV *) /* free xpvav list */ PERLVAR(Ixpvhv_root, XPVHV *) /* free xpvhv list */ PERLVAR(Ixpvmg_root, XPVMG *) /* free xpvmg list */ PERLVAR(Ixpvlv_root, XPVLV *) /* free xpvlv list */ PERLVAR(Ixpvbm_root, XPVBM *) /* free xpvbm list */ PERLVAR(Ihe_root, HE *) /* free he list */ PERLVAR(Inice_chunk, char *) /* a nice chunk of memory to reuse */ PERLVAR(Inice_chunk_size, U32) /* how nice the chunk of memory is */ PERLVARI(Irunops, runops_proc_t, MEMBER_TO_FPTR(RUNOPS_DEFAULT)) PERLVARA(Itokenbuf,256, char) /* =for apidoc Amn|SV|PL_sv_undef This is the C SV. Always refer to this as C<&PL_sv_undef>. =for apidoc Amn|SV|PL_sv_no This is the C SV. See C. Always refer to this as C<&PL_sv_no>. =for apidoc Amn|SV|PL_sv_yes This is the C SV. See C. Always refer to this as C<&PL_sv_yes>. =cut */ PERLVAR(Isv_undef, SV) PERLVAR(Isv_no, SV) PERLVAR(Isv_yes, SV) #ifdef CSH PERLVARI(Icshname, char *, CSH) PERLVARI(Icshlen, I32, 0) #endif PERLVAR(Ilex_state, U32) /* next token is determined */ PERLVAR(Ilex_defer, U32) /* state after determined token */ PERLVAR(Ilex_expect, int) /* expect after determined token */ PERLVAR(Ilex_brackets, I32) /* bracket count */ PERLVAR(Ilex_formbrack, I32) /* bracket count at outer format level */ PERLVAR(Ilex_casemods, I32) /* casemod count */ PERLVAR(Ilex_dojoin, I32) /* doing an array interpolation */ PERLVAR(Ilex_starts, I32) /* how many interps done on level */ PERLVAR(Ilex_stuff, SV *) /* runtime pattern from m// or s/// */ PERLVAR(Ilex_repl, SV *) /* runtime replacement from s/// */ PERLVAR(Ilex_op, OP *) /* extra info to pass back on op */ PERLVAR(Ilex_inpat, OP *) /* in pattern $) and $| are special */ PERLVAR(Ilex_inwhat, I32) /* what kind of quoting are we in */ PERLVAR(Ilex_brackstack,char *) /* what kind of brackets to pop */ PERLVAR(Ilex_casestack, char *) /* what kind of case mods in effect */ /* What we know when we're in LEX_KNOWNEXT state. */ PERLVARA(Inextval,5, YYSTYPE) /* value of next token, if any */ PERLVARA(Inexttype,5, I32) /* type of next token */ PERLVAR(Inexttoke, I32) PERLVAR(Ilinestr, SV *) PERLVAR(Ibufptr, char *) PERLVAR(Ioldbufptr, char *) PERLVAR(Ioldoldbufptr, char *) PERLVAR(Ibufend, char *) PERLVARI(Iexpect,int, XSTATE) /* how to interpret ambiguous tokens */ PERLVAR(Imulti_start, I32) /* 1st line of multi-line string */ PERLVAR(Imulti_end, I32) /* last line of multi-line string */ PERLVAR(Imulti_open, I32) /* delimiter of said string */ PERLVAR(Imulti_close, I32) /* delimiter of said string */ PERLVAR(Ierror_count, I32) /* how many errors so far, max 10 */ PERLVAR(Isubline, I32) /* line this subroutine began on */ PERLVAR(Isubname, SV *) /* name of current subroutine */ PERLVAR(Imin_intro_pending, I32) /* start of vars to introduce */ PERLVAR(Imax_intro_pending, I32) /* end of vars to introduce */ PERLVAR(Ipadix, I32) /* max used index in current "register" pad */ PERLVAR(Ipadix_floor, I32) /* how low may inner block reset padix */ PERLVAR(Ipad_reset_pending, I32) /* reset pad on next attempted alloc */ PERLVAR(Ilast_uni, char *) /* position of last named-unary op */ PERLVAR(Ilast_lop, char *) /* position of last list operator */ PERLVAR(Ilast_lop_op, OPCODE) /* last list operator */ PERLVAR(Iin_my, I32) /* we're compiling a "my" (or "our") declaration */ PERLVAR(Iin_my_stash, HV *) /* declared class of this "my" declaration */ #ifdef FCRYPT PERLVARI(Icryptseen, bool, FALSE) /* has fast crypt() been initialized? */ #endif PERLVAR(Ihints, U32) /* pragma-tic compile-time flags */ PERLVAR(Idebug, VOL U32) /* flags given to -D switch */ PERLVARI(Iamagic_generation, long, 0) #ifdef USE_LOCALE_COLLATE PERLVARI(Icollation_ix, U32, 0) /* Collation generation index */ PERLVAR(Icollation_name,char *) /* Name of current collation */ PERLVARI(Icollation_standard, bool, TRUE) /* Assume simple collation */ PERLVAR(Icollxfrm_base, Size_t) /* Basic overhead in *xfrm() */ PERLVARI(Icollxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */ #endif /* USE_LOCALE_COLLATE */ #ifdef USE_LOCALE_NUMERIC PERLVAR(Inumeric_name, char *) /* Name of current numeric locale */ PERLVARI(Inumeric_standard, bool, TRUE) /* Assume simple numerics */ PERLVARI(Inumeric_local, bool, TRUE) /* Assume local numerics */ PERLVAR(Inumeric_compat1, char) /* Used to be numeric_radix */ #endif /* !USE_LOCALE_NUMERIC */ /* utf8 character classes */ PERLVAR(Iutf8_alnum, SV *) PERLVAR(Iutf8_alnumc, SV *) PERLVAR(Iutf8_ascii, SV *) PERLVAR(Iutf8_alpha, SV *) PERLVAR(Iutf8_space, SV *) PERLVAR(Iutf8_cntrl, SV *) PERLVAR(Iutf8_graph, SV *) PERLVAR(Iutf8_digit, SV *) PERLVAR(Iutf8_upper, SV *) PERLVAR(Iutf8_lower, SV *) PERLVAR(Iutf8_print, SV *) PERLVAR(Iutf8_punct, SV *) PERLVAR(Iutf8_xdigit, SV *) PERLVAR(Iutf8_mark, SV *) PERLVAR(Iutf8_toupper, SV *) PERLVAR(Iutf8_totitle, SV *) PERLVAR(Iutf8_tolower, SV *) PERLVAR(Iutf8_tofold, SV *) PERLVAR(Ilast_swash_hv, HV *) PERLVAR(Ilast_swash_klen, U32) PERLVARA(Ilast_swash_key,10, U8) PERLVAR(Ilast_swash_tmps, U8 *) PERLVAR(Ilast_swash_slen, STRLEN) /* perly.c globals */ PERLVAR(Iyydebug, int) PERLVAR(Iyynerrs, int) PERLVAR(Iyyerrflag, int) PERLVAR(Iyychar, int) PERLVAR(Iyyval, YYSTYPE) PERLVAR(Iyylval, YYSTYPE) PERLVARI(Iglob_index, int, 0) PERLVAR(Isrand_called, bool) PERLVARA(Iuudmap,256, char) PERLVAR(Ibitcount, char *) #ifdef USE_5005THREADS PERLVAR(Isv_mutex, perl_mutex) /* Mutex for allocating SVs in sv.c */ PERLVAR(Ieval_mutex, perl_mutex) /* Mutex for doeval */ PERLVAR(Ieval_cond, perl_cond) /* Condition variable for doeval */ PERLVAR(Ieval_owner, struct perl_thread *) /* Owner thread for doeval */ PERLVAR(Inthreads, int) /* Number of threads currently */ PERLVAR(Ithreads_mutex, perl_mutex) /* Mutex for nthreads and thread list */ PERLVAR(Inthreads_cond, perl_cond) /* Condition variable for nthreads */ PERLVAR(Isvref_mutex, perl_mutex) /* Mutex for SvREFCNT_{inc,dec} */ PERLVARI(Ithreadsv_names,char *, THREADSV_NAMES) #ifdef FAKE_THREADS PERLVAR(Icurthr, struct perl_thread *) /* Currently executing (fake) thread */ #endif PERLVAR(Icred_mutex, perl_mutex) /* altered credentials in effect */ #endif /* USE_5005THREADS */ PERLVAR(Ipsig_ptr, SV**) PERLVAR(Ipsig_name, SV**) #if defined(PERL_IMPLICIT_SYS) PERLVAR(IMem, struct IPerlMem*) PERLVAR(IMemShared, struct IPerlMem*) PERLVAR(IMemParse, struct IPerlMem*) PERLVAR(IEnv, struct IPerlEnv*) PERLVAR(IStdIO, struct IPerlStdIO*) PERLVAR(ILIO, struct IPerlLIO*) PERLVAR(IDir, struct IPerlDir*) PERLVAR(ISock, struct IPerlSock*) PERLVAR(IProc, struct IPerlProc*) #endif #if defined(USE_ITHREADS) PERLVAR(Iptr_table, PTR_TBL_t*) #endif PERLVARI(Ibeginav_save, AV*, Nullav) /* save BEGIN{}s when compiling */ #ifdef USE_5005THREADS PERLVAR(Ifdpid_mutex, perl_mutex) /* mutex for fdpid array */ PERLVAR(Isv_lock_mutex, perl_mutex) /* mutex for SvLOCK macro */ #endif PERLVAR(Inullstash, HV *) /* illegal symbols end up here */ PERLVAR(Ixnv_arenaroot, XPV*) /* list of allocated xnv areas */ PERLVAR(Ixrv_arenaroot, XPV*) /* list of allocated xrv areas */ PERLVAR(Ixpv_arenaroot, XPV*) /* list of allocated xpv areas */ PERLVAR(Ixpviv_arenaroot,XPVIV*) /* list of allocated xpviv areas */ PERLVAR(Ixpvnv_arenaroot,XPVNV*) /* list of allocated xpvnv areas */ PERLVAR(Ixpvcv_arenaroot,XPVCV*) /* list of allocated xpvcv areas */ PERLVAR(Ixpvav_arenaroot,XPVAV*) /* list of allocated xpvav areas */ PERLVAR(Ixpvhv_arenaroot,XPVHV*) /* list of allocated xpvhv areas */ PERLVAR(Ixpvmg_arenaroot,XPVMG*) /* list of allocated xpvmg areas */ PERLVAR(Ixpvlv_arenaroot,XPVLV*) /* list of allocated xpvlv areas */ PERLVAR(Ixpvbm_arenaroot,XPVBM*) /* list of allocated xpvbm areas */ PERLVAR(Ihe_arenaroot, XPV*) /* list of allocated he areas */ /* 5.6.0 stopped here */ PERLVAR(Ipsig_pend, int *) /* per-signal "count" of pending */ PERLVARI(Isig_pending, int,0) /* Number if highest signal pending */ #ifdef USE_LOCALE_NUMERIC PERLVAR(Inumeric_radix_sv, SV *) /* The radix separator if not '.' */ #endif #if defined(USE_ITHREADS) PERLVAR(Iregex_pad, SV**) /* All regex objects */ PERLVAR(Iregex_padav, AV*) /* All regex objects */ #endif #ifdef USE_REENTRANT_API PERLVAR(Ireentrant_buffer, REENTR*) /* here we store the _r buffers */ #endif PERLVARI(Isavebegin, bool, FALSE) /* save BEGINs for compiler */ PERLVAR(Icustom_op_names, HV*) /* Names of user defined ops */ PERLVAR(Icustom_op_descs, HV*) /* Descriptions of user defined ops */ #ifdef PERLIO_LAYERS PERLVARI(Iperlio, PerlIO *,NULL) PERLVARI(Iknown_layers, PerlIO_list_t *,NULL) PERLVARI(Idef_layerlist, PerlIO_list_t *,NULL) #endif PERLVARI(Iencoding, SV*, Nullsv) /* character encoding */ PERLVAR(Idebug_pad, struct perl_debug_pad) /* always needed because of the re extension */ PERLVAR(Itaint_warn, bool) /* taint warns instead of dying */ #ifdef PL_OP_SLAB_ALLOC PERLVAR(IOpPtr,I32 **) PERLVARI(IOpSpace,I32,0) PERLVAR(IOpSlab,I32 *) #endif PERLVAR(Iutf8locale, bool) /* utf8 locale detected */ PERLVAR(Iutf8_idstart, SV *) PERLVAR(Iutf8_idcont, SV *) PERLVAR(Isort_RealCmp, SVCOMPARE_t) PERLVARI(Icheckav_save, AV*, Nullav) /* save CHECK{}s when compiling */ PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */ PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */ PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */ PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */ PERLVAR(Istashcache, HV *) /* Cache to speed up S_method_common */ PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions */ /* Hooks to shared SVs and locks. */ PERLVARI(Isharehook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing)) PERLVARI(Ilockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nolocking)) PERLVARI(Iunlockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nounlocking)) PERLVARI(Ithreadhook, thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook)) /* Force inclusion of both runops options */ PERLVARI(Irunops_std, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_standard)) PERLVARI(Irunops_dbg, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_debug)) /* Stores the PPID */ #ifdef THREADS_HAVE_PIDS PERLVARI(Ippid, IV, 0) #endif PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */ PERLVARI(Ihash_seed_set, bool, FALSE) /* Hash initialized? */ PERLVARI(Irehash_seed, UV, 0) /* 582 hash initializer */ PERLVARI(Irehash_seed_set, bool, FALSE) /* 582 hash initialized? */ /* These two variables are needed to preserve 5.8.x bincompat because we can't change function prototypes of two exported functions. Probably should be taken out of blead soon, and relevant prototypes changed. */ PERLVARI(Ifdscript, int, -1) /* fd for script */ PERLVARI(Isuidscript, int, -1) /* fd for suid script */ /* New variables must be added to the very end, before this comment, * for binary compatibility (the offsets of the old members must not change). * (Don't forget to add your variable also to perl_clone()!) * XSUB.h provides wrapper functions via perlapi.h that make this * irrelevant, but not all code may be expected to #include XSUB.h. */ #if defined(USE_ITHREADS) PERLVAR(Ipte_root, struct ptr_tbl_ent *) /* free ptr_tbl_ent list */ PERLVAR(Ipte_arenaroot, XPV*) /* list of allocated pte areas */ #endif ================================================ FILE: tests/perlbench/iperlsys.h ================================================ /* * iperlsys.h - Perl's interface to the system * * This file defines the system level functionality that perl needs. * * When using C, this definition is in the form of a set of macros * that can be #defined to the system-level function (or a wrapper * provided elsewhere). * * GSAR 21-JUN-98 */ #ifndef __Inc__IPerl___ #define __Inc__IPerl___ /* * PerlXXX_YYY explained - DickH and DougL @ ActiveState.com * * XXX := functional group * YYY := stdlib/OS function name * * Continuing with the theme of PerlIO, all OS functionality was * encapsulated into one of several interfaces. * * PerlIO - stdio * PerlLIO - low level I/O * PerlMem - malloc, realloc, free * PerlDir - directory related * PerlEnv - process environment handling * PerlProc - process control * PerlSock - socket functions * * * The features of this are: * 1. All OS dependant code is in the Perl Host and not the Perl Core. * (At least this is the holy grail goal of this work) * 2. The Perl Host (see perl.h for description) can provide a new and * improved interface to OS functionality if required. * 3. Developers can easily hook into the OS calls for instrumentation * or diagnostic purposes. * * What was changed to do this: * 1. All calls to OS functions were replaced with PerlXXX_YYY * */ /* Interface for perl stdio functions, or whatever we are Configure-d to use. */ #include "perlio.h" #ifndef Sighandler_t typedef Signal_t (*Sighandler_t) (int); #endif #if defined(PERL_IMPLICIT_SYS) /* IPerlStdIO */ struct IPerlStdIO; struct IPerlStdIOInfo; typedef FILE* (*LPStdin)(struct IPerlStdIO*); typedef FILE* (*LPStdout)(struct IPerlStdIO*); typedef FILE* (*LPStderr)(struct IPerlStdIO*); typedef FILE* (*LPOpen)(struct IPerlStdIO*, const char*, const char*); typedef int (*LPClose)(struct IPerlStdIO*, FILE*); typedef int (*LPEof)(struct IPerlStdIO*, FILE*); typedef int (*LPError)(struct IPerlStdIO*, FILE*); typedef void (*LPClearerr)(struct IPerlStdIO*, FILE*); typedef int (*LPGetc)(struct IPerlStdIO*, FILE*); typedef char* (*LPGetBase)(struct IPerlStdIO*, FILE*); typedef int (*LPGetBufsiz)(struct IPerlStdIO*, FILE*); typedef int (*LPGetCnt)(struct IPerlStdIO*, FILE*); typedef char* (*LPGetPtr)(struct IPerlStdIO*, FILE*); typedef char* (*LPGets)(struct IPerlStdIO*, FILE*, char*, int); typedef int (*LPPutc)(struct IPerlStdIO*, FILE*, int); typedef int (*LPPuts)(struct IPerlStdIO*, FILE*, const char*); typedef int (*LPFlush)(struct IPerlStdIO*, FILE*); typedef int (*LPUngetc)(struct IPerlStdIO*, int,FILE*); typedef int (*LPFileno)(struct IPerlStdIO*, FILE*); typedef FILE* (*LPFdopen)(struct IPerlStdIO*, int, const char*); typedef FILE* (*LPReopen)(struct IPerlStdIO*, const char*, const char*, FILE*); typedef SSize_t (*LPRead)(struct IPerlStdIO*, void*, Size_t, Size_t, FILE *); typedef SSize_t (*LPWrite)(struct IPerlStdIO*, const void*, Size_t, Size_t, FILE *); typedef void (*LPSetBuf)(struct IPerlStdIO*, FILE*, char*); typedef int (*LPSetVBuf)(struct IPerlStdIO*, FILE*, char*, int, Size_t); typedef void (*LPSetCnt)(struct IPerlStdIO*, FILE*, int); #ifndef NETWARE typedef void (*LPSetPtr)(struct IPerlStdIO*, FILE*, char*); #elif defined(NETWARE) typedef void (*LPSetPtr)(struct IPerlStdIO*, FILE*, char*, int); #endif typedef void (*LPSetlinebuf)(struct IPerlStdIO*, FILE*); typedef int (*LPPrintf)(struct IPerlStdIO*, FILE*, const char*, ...); typedef int (*LPVprintf)(struct IPerlStdIO*, FILE*, const char*, va_list); typedef Off_t (*LPTell)(struct IPerlStdIO*, FILE*); typedef int (*LPSeek)(struct IPerlStdIO*, FILE*, Off_t, int); typedef void (*LPRewind)(struct IPerlStdIO*, FILE*); typedef FILE* (*LPTmpfile)(struct IPerlStdIO*); typedef int (*LPGetpos)(struct IPerlStdIO*, FILE*, Fpos_t*); typedef int (*LPSetpos)(struct IPerlStdIO*, FILE*, const Fpos_t*); typedef void (*LPInit)(struct IPerlStdIO*); typedef void (*LPInitOSExtras)(struct IPerlStdIO*); typedef FILE* (*LPFdupopen)(struct IPerlStdIO*, FILE*); struct IPerlStdIO { LPStdin pStdin; LPStdout pStdout; LPStderr pStderr; LPOpen pOpen; LPClose pClose; LPEof pEof; LPError pError; LPClearerr pClearerr; LPGetc pGetc; LPGetBase pGetBase; LPGetBufsiz pGetBufsiz; LPGetCnt pGetCnt; LPGetPtr pGetPtr; LPGets pGets; LPPutc pPutc; LPPuts pPuts; LPFlush pFlush; LPUngetc pUngetc; LPFileno pFileno; LPFdopen pFdopen; LPReopen pReopen; LPRead pRead; LPWrite pWrite; LPSetBuf pSetBuf; LPSetVBuf pSetVBuf; LPSetCnt pSetCnt; LPSetPtr pSetPtr; LPSetlinebuf pSetlinebuf; LPPrintf pPrintf; LPVprintf pVprintf; LPTell pTell; LPSeek pSeek; LPRewind pRewind; LPTmpfile pTmpfile; LPGetpos pGetpos; LPSetpos pSetpos; LPInit pInit; LPInitOSExtras pInitOSExtras; LPFdupopen pFdupopen; }; struct IPerlStdIOInfo { unsigned long nCount; /* number of entries expected */ struct IPerlStdIO perlStdIOList; }; /* These do not belong here ... NI-S, 14 Nov 2000 */ #ifdef USE_STDIO_PTR # define PerlSIO_has_cntptr(f) 1 # ifdef STDIO_PTR_LVALUE # ifdef STDIO_CNT_LVALUE # define PerlSIO_canset_cnt(f) 1 # ifdef STDIO_PTR_LVAL_NOCHANGE_CNT # define PerlSIO_fast_gets(f) 1 # endif # else /* STDIO_CNT_LVALUE */ # define PerlSIO_canset_cnt(f) 0 # endif # else /* STDIO_PTR_LVALUE */ # ifdef STDIO_PTR_LVAL_SETS_CNT # define PerlSIO_fast_gets(f) 1 # endif # endif #else /* USE_STDIO_PTR */ # define PerlSIO_has_cntptr(f) 0 # define PerlSIO_canset_cnt(f) 0 #endif /* USE_STDIO_PTR */ #ifndef PerlSIO_fast_gets #define PerlSIO_fast_gets(f) 0 #endif #ifdef FILE_base #define PerlSIO_has_base(f) 1 #else #define PerlSIO_has_base(f) 0 #endif /* Now take FILE * via function table */ #define PerlSIO_stdin \ (*PL_StdIO->pStdin)(PL_StdIO) #define PerlSIO_stdout \ (*PL_StdIO->pStdout)(PL_StdIO) #define PerlSIO_stderr \ (*PL_StdIO->pStderr)(PL_StdIO) #define PerlSIO_fopen(x,y) \ (*PL_StdIO->pOpen)(PL_StdIO, (x),(y)) #define PerlSIO_fclose(f) \ (*PL_StdIO->pClose)(PL_StdIO, (f)) #define PerlSIO_feof(f) \ (*PL_StdIO->pEof)(PL_StdIO, (f)) #define PerlSIO_ferror(f) \ (*PL_StdIO->pError)(PL_StdIO, (f)) #define PerlSIO_clearerr(f) \ (*PL_StdIO->pClearerr)(PL_StdIO, (f)) #define PerlSIO_fgetc(f) \ (*PL_StdIO->pGetc)(PL_StdIO, (f)) #define PerlSIO_get_base(f) \ (*PL_StdIO->pGetBase)(PL_StdIO, (f)) #define PerlSIO_get_bufsiz(f) \ (*PL_StdIO->pGetBufsiz)(PL_StdIO, (f)) #define PerlSIO_get_cnt(f) \ (*PL_StdIO->pGetCnt)(PL_StdIO, (f)) #define PerlSIO_get_ptr(f) \ (*PL_StdIO->pGetPtr)(PL_StdIO, (f)) #define PerlSIO_fputc(f,c) \ (*PL_StdIO->pPutc)(PL_StdIO, (f),(c)) #define PerlSIO_fputs(f,s) \ (*PL_StdIO->pPuts)(PL_StdIO, (f),(s)) #define PerlSIO_fflush(f) \ (*PL_StdIO->pFlush)(PL_StdIO, (f)) #define PerlSIO_fgets(s, n, fp) \ (*PL_StdIO->pGets)(PL_StdIO, (fp), s, n) #define PerlSIO_ungetc(c,f) \ (*PL_StdIO->pUngetc)(PL_StdIO, (c),(f)) #define PerlSIO_fileno(f) \ (*PL_StdIO->pFileno)(PL_StdIO, (f)) #define PerlSIO_fdopen(f, s) \ (*PL_StdIO->pFdopen)(PL_StdIO, (f),(s)) #define PerlSIO_freopen(p, m, f) \ (*PL_StdIO->pReopen)(PL_StdIO, (p), (m), (f)) #define PerlSIO_fread(buf,sz,count,f) \ (*PL_StdIO->pRead)(PL_StdIO, (buf), (sz), (count), (f)) #define PerlSIO_fwrite(buf,sz,count,f) \ (*PL_StdIO->pWrite)(PL_StdIO, (buf), (sz), (count), (f)) #define PerlSIO_setbuf(f,b) \ (*PL_StdIO->pSetBuf)(PL_StdIO, (f), (b)) #define PerlSIO_setvbuf(f,b,t,s) \ (*PL_StdIO->pSetVBuf)(PL_StdIO, (f),(b),(t),(s)) #define PerlSIO_set_cnt(f,c) \ (*PL_StdIO->pSetCnt)(PL_StdIO, (f), (c)) #define PerlSIO_set_ptr(f,p) \ (*PL_StdIO->pSetPtr)(PL_StdIO, (f), (p)) #define PerlSIO_setlinebuf(f) \ (*PL_StdIO->pSetlinebuf)(PL_StdIO, (f)) #define PerlSIO_printf Perl_fprintf_nocontext #define PerlSIO_stdoutf Perl_printf_nocontext #define PerlSIO_vprintf(f,fmt,a) \ (*PL_StdIO->pVprintf)(PL_StdIO, (f),(fmt),a) #define PerlSIO_ftell(f) \ (*PL_StdIO->pTell)(PL_StdIO, (f)) #define PerlSIO_fseek(f,o,w) \ (*PL_StdIO->pSeek)(PL_StdIO, (f),(o),(w)) #define PerlSIO_fgetpos(f,p) \ (*PL_StdIO->pGetpos)(PL_StdIO, (f),(p)) #define PerlSIO_fsetpos(f,p) \ (*PL_StdIO->pSetpos)(PL_StdIO, (f),(p)) #define PerlSIO_rewind(f) \ (*PL_StdIO->pRewind)(PL_StdIO, (f)) #define PerlSIO_tmpfile() \ (*PL_StdIO->pTmpfile)(PL_StdIO) #define PerlSIO_init() \ (*PL_StdIO->pInit)(PL_StdIO) #undef init_os_extras #define init_os_extras() \ (*PL_StdIO->pInitOSExtras)(PL_StdIO) #define PerlSIO_fdupopen(f) \ (*PL_StdIO->pFdupopen)(PL_StdIO, (f)) #else /* PERL_IMPLICIT_SYS */ #define PerlSIO_stdin stdin #define PerlSIO_stdout stdout #define PerlSIO_stderr stderr #define PerlSIO_fopen(x,y) fopen(x,y) #ifdef __VOS__ /* Work around VOS bug posix-979, wrongly setting errno when at end of file. */ #define PerlSIO_fclose(f) (((errno==1025)?errno=0:0),fclose(f)) #define PerlSIO_feof(f) (((errno==1025)?errno=0:0),feof(f)) #define PerlSIO_ferror(f) (((errno==1025)?errno=0:0),ferror(f)) #else #define PerlSIO_fclose(f) fclose(f) #define PerlSIO_feof(f) feof(f) #define PerlSIO_ferror(f) ferror(f) #endif #define PerlSIO_clearerr(f) clearerr(f) #define PerlSIO_fgetc(f) fgetc(f) #ifdef FILE_base #define PerlSIO_get_base(f) FILE_base(f) #define PerlSIO_get_bufsiz(f) FILE_bufsiz(f) #else #define PerlSIO_get_base(f) NULL #define PerlSIO_get_bufsiz(f) 0 #endif #ifdef USE_STDIO_PTR #define PerlSIO_get_cnt(f) FILE_cnt(f) #define PerlSIO_get_ptr(f) FILE_ptr(f) #else #define PerlSIO_get_cnt(f) 0 #define PerlSIO_get_ptr(f) NULL #endif #define PerlSIO_fputc(f,c) fputc(c,f) #define PerlSIO_fputs(f,s) fputs(s,f) #define PerlSIO_fflush(f) Fflush(f) #define PerlSIO_fgets(s, n, fp) fgets(s,n,fp) #if defined(VMS) && defined(__DECC) /* Unusual definition of ungetc() here to accomodate fast_sv_gets()' * belief that it can mix getc/ungetc with reads from stdio buffer */ int decc$ungetc(int __c, FILE *__stream); # define PerlSIO_ungetc(c,f) ((c) == EOF ? EOF : \ ((*(f) && !((*(f))->_flag & _IONBF) && \ ((*(f))->_ptr > (*(f))->_base)) ? \ ((*(f))->_cnt++, *(--(*(f))->_ptr) = (c)) : decc$ungetc(c,f))) #else # define PerlSIO_ungetc(c,f) ungetc(c,f) #endif #define PerlSIO_fileno(f) fileno(f) #define PerlSIO_fdopen(f, s) fdopen(f,s) #define PerlSIO_freopen(p, m, f) freopen(p,m,f) #define PerlSIO_fread(buf,sz,count,f) fread(buf,sz,count,f) #define PerlSIO_fwrite(buf,sz,count,f) fwrite(buf,sz,count,f) #define PerlSIO_setbuf(f,b) setbuf(f,b) #define PerlSIO_setvbuf(f,b,t,s) setvbuf(f,b,t,s) #if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE) #define PerlSIO_set_cnt(f,c) FILE_cnt(f) = (c) #else #define PerlSIO_set_cnt(f,c) PerlIOProc_abort() #endif #if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE) #define PerlSIO_set_ptr(f,p) FILE_ptr(f) = (p) #else #define PerlSIO_set_ptr(f,p) PerlIOProc_abort() #endif #define PerlSIO_setlinebuf(f) setlinebuf(f) #define PerlSIO_printf fprintf #define PerlSIO_stdoutf printf #define PerlSIO_vprintf(f,fmt,a) vfprintf(f,fmt,a) #define PerlSIO_ftell(f) ftell(f) #define PerlSIO_fseek(f,o,w) fseek(f,o,w) #define PerlSIO_fgetpos(f,p) fgetpos(f,p) #define PerlSIO_fsetpos(f,p) fsetpos(f,p) #define PerlSIO_rewind(f) rewind(f) #define PerlSIO_tmpfile() tmpfile() #define PerlSIO_fdupopen(f) (f) #endif /* PERL_IMPLICIT_SYS */ /* * Interface for directory functions */ #if defined(PERL_IMPLICIT_SYS) /* IPerlDir */ struct IPerlDir; struct IPerlDirInfo; typedef int (*LPMakedir)(struct IPerlDir*, const char*, int); typedef int (*LPChdir)(struct IPerlDir*, const char*); typedef int (*LPRmdir)(struct IPerlDir*, const char*); typedef int (*LPDirClose)(struct IPerlDir*, DIR*); typedef DIR* (*LPDirOpen)(struct IPerlDir*, char*); typedef struct direct* (*LPDirRead)(struct IPerlDir*, DIR*); typedef void (*LPDirRewind)(struct IPerlDir*, DIR*); typedef void (*LPDirSeek)(struct IPerlDir*, DIR*, long); typedef long (*LPDirTell)(struct IPerlDir*, DIR*); #ifdef WIN32 typedef char* (*LPDirMapPathA)(struct IPerlDir*, const char*); typedef WCHAR* (*LPDirMapPathW)(struct IPerlDir*, const WCHAR*); #endif struct IPerlDir { LPMakedir pMakedir; LPChdir pChdir; LPRmdir pRmdir; LPDirClose pClose; LPDirOpen pOpen; LPDirRead pRead; LPDirRewind pRewind; LPDirSeek pSeek; LPDirTell pTell; #ifdef WIN32 LPDirMapPathA pMapPathA; LPDirMapPathW pMapPathW; #endif }; struct IPerlDirInfo { unsigned long nCount; /* number of entries expected */ struct IPerlDir perlDirList; }; #define PerlDir_mkdir(name, mode) \ (*PL_Dir->pMakedir)(PL_Dir, (name), (mode)) #define PerlDir_chdir(name) \ (*PL_Dir->pChdir)(PL_Dir, (name)) #define PerlDir_rmdir(name) \ (*PL_Dir->pRmdir)(PL_Dir, (name)) #define PerlDir_close(dir) \ (*PL_Dir->pClose)(PL_Dir, (dir)) #define PerlDir_open(name) \ (*PL_Dir->pOpen)(PL_Dir, (name)) #define PerlDir_read(dir) \ (*PL_Dir->pRead)(PL_Dir, (dir)) #define PerlDir_rewind(dir) \ (*PL_Dir->pRewind)(PL_Dir, (dir)) #define PerlDir_seek(dir, loc) \ (*PL_Dir->pSeek)(PL_Dir, (dir), (loc)) #define PerlDir_tell(dir) \ (*PL_Dir->pTell)(PL_Dir, (dir)) #ifdef WIN32 #define PerlDir_mapA(dir) \ (*PL_Dir->pMapPathA)(PL_Dir, (dir)) #define PerlDir_mapW(dir) \ (*PL_Dir->pMapPathW)(PL_Dir, (dir)) #endif #else /* PERL_IMPLICIT_SYS */ #define PerlDir_mkdir(name, mode) Mkdir((name), (mode)) #ifdef VMS # define PerlDir_chdir(n) Chdir((n)) #else # define PerlDir_chdir(name) chdir((name)) #endif #define PerlDir_rmdir(name) rmdir((name)) #define PerlDir_close(dir) closedir((dir)) #define PerlDir_open(name) opendir((name)) #define PerlDir_read(dir) readdir((dir)) #define PerlDir_rewind(dir) rewinddir((dir)) #define PerlDir_seek(dir, loc) seekdir((dir), (loc)) #define PerlDir_tell(dir) telldir((dir)) #ifdef WIN32 #define PerlDir_mapA(dir) dir #define PerlDir_mapW(dir) dir #endif #endif /* PERL_IMPLICIT_SYS */ /* Interface for perl environment functions */ #if defined(PERL_IMPLICIT_SYS) /* IPerlEnv */ struct IPerlEnv; struct IPerlEnvInfo; typedef char* (*LPEnvGetenv)(struct IPerlEnv*, const char*); typedef int (*LPEnvPutenv)(struct IPerlEnv*, const char*); typedef char* (*LPEnvGetenv_len)(struct IPerlEnv*, const char *varname, unsigned long *len); typedef int (*LPEnvUname)(struct IPerlEnv*, struct utsname *name); typedef void (*LPEnvClearenv)(struct IPerlEnv*); typedef void* (*LPEnvGetChildenv)(struct IPerlEnv*); typedef void (*LPEnvFreeChildenv)(struct IPerlEnv*, void* env); typedef char* (*LPEnvGetChilddir)(struct IPerlEnv*); typedef void (*LPEnvFreeChilddir)(struct IPerlEnv*, char* dir); #ifdef HAS_ENVGETENV typedef char* (*LPENVGetenv)(struct IPerlEnv*, const char *varname); typedef char* (*LPENVGetenv_len)(struct IPerlEnv*, const char *varname, unsigned long *len); #endif #ifdef WIN32 typedef unsigned long (*LPEnvOsID)(struct IPerlEnv*); typedef char* (*LPEnvLibPath)(struct IPerlEnv*, const char*); typedef char* (*LPEnvSiteLibPath)(struct IPerlEnv*, const char*); typedef char* (*LPEnvVendorLibPath)(struct IPerlEnv*, const char*); typedef void (*LPEnvGetChildIO)(struct IPerlEnv*, child_IO_table*); #endif struct IPerlEnv { LPEnvGetenv pGetenv; LPEnvPutenv pPutenv; LPEnvGetenv_len pGetenv_len; LPEnvUname pEnvUname; LPEnvClearenv pClearenv; LPEnvGetChildenv pGetChildenv; LPEnvFreeChildenv pFreeChildenv; LPEnvGetChilddir pGetChilddir; LPEnvFreeChilddir pFreeChilddir; #ifdef HAS_ENVGETENV LPENVGetenv pENVGetenv; LPENVGetenv_len pENVGetenv_len; #endif #ifdef WIN32 LPEnvOsID pEnvOsID; LPEnvLibPath pLibPath; LPEnvSiteLibPath pSiteLibPath; LPEnvVendorLibPath pVendorLibPath; LPEnvGetChildIO pGetChildIO; #endif }; struct IPerlEnvInfo { unsigned long nCount; /* number of entries expected */ struct IPerlEnv perlEnvList; }; #define PerlEnv_putenv(str) \ (*PL_Env->pPutenv)(PL_Env,(str)) #define PerlEnv_getenv(str) \ (*PL_Env->pGetenv)(PL_Env,(str)) #define PerlEnv_getenv_len(str,l) \ (*PL_Env->pGetenv_len)(PL_Env,(str), (l)) #define PerlEnv_clearenv() \ (*PL_Env->pClearenv)(PL_Env) #define PerlEnv_get_childenv() \ (*PL_Env->pGetChildenv)(PL_Env) #define PerlEnv_free_childenv(e) \ (*PL_Env->pFreeChildenv)(PL_Env, (e)) #define PerlEnv_get_childdir() \ (*PL_Env->pGetChilddir)(PL_Env) #define PerlEnv_free_childdir(d) \ (*PL_Env->pFreeChilddir)(PL_Env, (d)) #ifdef HAS_ENVGETENV # define PerlEnv_ENVgetenv(str) \ (*PL_Env->pENVGetenv)(PL_Env,(str)) # define PerlEnv_ENVgetenv_len(str,l) \ (*PL_Env->pENVGetenv_len)(PL_Env,(str), (l)) #else # define PerlEnv_ENVgetenv(str) \ PerlEnv_getenv((str)) # define PerlEnv_ENVgetenv_len(str,l) \ PerlEnv_getenv_len((str),(l)) #endif #define PerlEnv_uname(name) \ (*PL_Env->pEnvUname)(PL_Env,(name)) #ifdef WIN32 #define PerlEnv_os_id() \ (*PL_Env->pEnvOsID)(PL_Env) #define PerlEnv_lib_path(str) \ (*PL_Env->pLibPath)(PL_Env,(str)) #define PerlEnv_sitelib_path(str) \ (*PL_Env->pSiteLibPath)(PL_Env,(str)) #define PerlEnv_vendorlib_path(str) \ (*PL_Env->pVendorLibPath)(PL_Env,(str)) #define PerlEnv_get_child_IO(ptr) \ (*PL_Env->pGetChildIO)(PL_Env, ptr) #endif #else /* PERL_IMPLICIT_SYS */ #define PerlEnv_putenv(str) putenv((str)) #define PerlEnv_getenv(str) getenv((str)) #define PerlEnv_getenv_len(str,l) getenv_len((str), (l)) #ifdef HAS_ENVGETENV # define PerlEnv_ENVgetenv(str) ENVgetenv((str)) # define PerlEnv_ENVgetenv_len(str,l) ENVgetenv_len((str), (l)) #else # define PerlEnv_ENVgetenv(str) PerlEnv_getenv((str)) # define PerlEnv_ENVgetenv_len(str,l) PerlEnv_getenv_len((str), (l)) #endif #define PerlEnv_uname(name) uname((name)) #ifdef WIN32 #define PerlEnv_os_id() win32_os_id() #define PerlEnv_lib_path(str) win32_get_privlib(str) #define PerlEnv_sitelib_path(str) win32_get_sitelib(str) #define PerlEnv_vendorlib_path(str) win32_get_vendorlib(str) #define PerlEnv_get_child_IO(ptr) win32_get_child_IO(ptr) #define PerlEnv_clearenv() win32_clearenv() #define PerlEnv_get_childenv() win32_get_childenv() #define PerlEnv_free_childenv(e) win32_free_childenv((e)) #define PerlEnv_get_childdir() win32_get_childdir() #define PerlEnv_free_childdir(d) win32_free_childdir((d)) #else #define PerlEnv_clearenv() clearenv() #define PerlEnv_get_childenv() get_childenv() #define PerlEnv_free_childenv(e) free_childenv((e)) #define PerlEnv_get_childdir() get_childdir() #define PerlEnv_free_childdir(d) free_childdir((d)) #endif #endif /* PERL_IMPLICIT_SYS */ /* Interface for perl low-level IO functions */ #if defined(PERL_IMPLICIT_SYS) /* IPerlLIO */ struct IPerlLIO; struct IPerlLIOInfo; typedef int (*LPLIOAccess)(struct IPerlLIO*, const char*, int); typedef int (*LPLIOChmod)(struct IPerlLIO*, const char*, int); typedef int (*LPLIOChown)(struct IPerlLIO*, const char*, uid_t, gid_t); typedef int (*LPLIOChsize)(struct IPerlLIO*, int, Off_t); typedef int (*LPLIOClose)(struct IPerlLIO*, int); typedef int (*LPLIODup)(struct IPerlLIO*, int); typedef int (*LPLIODup2)(struct IPerlLIO*, int, int); typedef int (*LPLIOFlock)(struct IPerlLIO*, int, int); typedef int (*LPLIOFileStat)(struct IPerlLIO*, int, Stat_t*); typedef int (*LPLIOIOCtl)(struct IPerlLIO*, int, unsigned int, char*); typedef int (*LPLIOIsatty)(struct IPerlLIO*, int); typedef int (*LPLIOLink)(struct IPerlLIO*, const char*, const char *); typedef Off_t (*LPLIOLseek)(struct IPerlLIO*, int, Off_t, int); typedef int (*LPLIOLstat)(struct IPerlLIO*, const char*, Stat_t*); typedef char* (*LPLIOMktemp)(struct IPerlLIO*, char*); typedef int (*LPLIOOpen)(struct IPerlLIO*, const char*, int); typedef int (*LPLIOOpen3)(struct IPerlLIO*, const char*, int, int); typedef int (*LPLIORead)(struct IPerlLIO*, int, void*, unsigned int); typedef int (*LPLIORename)(struct IPerlLIO*, const char*, const char*); #ifdef NETWARE typedef int (*LPLIOSetmode)(struct IPerlLIO*, FILE*, int); #else typedef int (*LPLIOSetmode)(struct IPerlLIO*, int, int); #endif /* NETWARE */ typedef int (*LPLIONameStat)(struct IPerlLIO*, const char*, Stat_t*); typedef char* (*LPLIOTmpnam)(struct IPerlLIO*, char*); typedef int (*LPLIOUmask)(struct IPerlLIO*, int); typedef int (*LPLIOUnlink)(struct IPerlLIO*, const char*); typedef int (*LPLIOUtime)(struct IPerlLIO*, char*, struct utimbuf*); typedef int (*LPLIOWrite)(struct IPerlLIO*, int, const void*, unsigned int); struct IPerlLIO { LPLIOAccess pAccess; LPLIOChmod pChmod; LPLIOChown pChown; LPLIOChsize pChsize; LPLIOClose pClose; LPLIODup pDup; LPLIODup2 pDup2; LPLIOFlock pFlock; LPLIOFileStat pFileStat; LPLIOIOCtl pIOCtl; LPLIOIsatty pIsatty; LPLIOLink pLink; LPLIOLseek pLseek; LPLIOLstat pLstat; LPLIOMktemp pMktemp; LPLIOOpen pOpen; LPLIOOpen3 pOpen3; LPLIORead pRead; LPLIORename pRename; LPLIOSetmode pSetmode; LPLIONameStat pNameStat; LPLIOTmpnam pTmpnam; LPLIOUmask pUmask; LPLIOUnlink pUnlink; LPLIOUtime pUtime; LPLIOWrite pWrite; }; struct IPerlLIOInfo { unsigned long nCount; /* number of entries expected */ struct IPerlLIO perlLIOList; }; #define PerlLIO_access(file, mode) \ (*PL_LIO->pAccess)(PL_LIO, (file), (mode)) #define PerlLIO_chmod(file, mode) \ (*PL_LIO->pChmod)(PL_LIO, (file), (mode)) #define PerlLIO_chown(file, owner, group) \ (*PL_LIO->pChown)(PL_LIO, (file), (owner), (group)) #define PerlLIO_chsize(fd, size) \ (*PL_LIO->pChsize)(PL_LIO, (fd), (size)) #define PerlLIO_close(fd) \ (*PL_LIO->pClose)(PL_LIO, (fd)) #define PerlLIO_dup(fd) \ (*PL_LIO->pDup)(PL_LIO, (fd)) #define PerlLIO_dup2(fd1, fd2) \ (*PL_LIO->pDup2)(PL_LIO, (fd1), (fd2)) #define PerlLIO_flock(fd, op) \ (*PL_LIO->pFlock)(PL_LIO, (fd), (op)) #define PerlLIO_fstat(fd, buf) \ (*PL_LIO->pFileStat)(PL_LIO, (fd), (buf)) #define PerlLIO_ioctl(fd, u, buf) \ (*PL_LIO->pIOCtl)(PL_LIO, (fd), (u), (buf)) #define PerlLIO_isatty(fd) \ (*PL_LIO->pIsatty)(PL_LIO, (fd)) #define PerlLIO_link(oldname, newname) \ (*PL_LIO->pLink)(PL_LIO, (oldname), (newname)) #define PerlLIO_lseek(fd, offset, mode) \ (*PL_LIO->pLseek)(PL_LIO, (fd), (offset), (mode)) #define PerlLIO_lstat(name, buf) \ (*PL_LIO->pLstat)(PL_LIO, (name), (buf)) #define PerlLIO_mktemp(file) \ (*PL_LIO->pMktemp)(PL_LIO, (file)) #define PerlLIO_open(file, flag) \ (*PL_LIO->pOpen)(PL_LIO, (file), (flag)) #define PerlLIO_open3(file, flag, perm) \ (*PL_LIO->pOpen3)(PL_LIO, (file), (flag), (perm)) #define PerlLIO_read(fd, buf, count) \ (*PL_LIO->pRead)(PL_LIO, (fd), (buf), (count)) #define PerlLIO_rename(oname, newname) \ (*PL_LIO->pRename)(PL_LIO, (oname), (newname)) #define PerlLIO_setmode(fd, mode) \ (*PL_LIO->pSetmode)(PL_LIO, (fd), (mode)) #define PerlLIO_stat(name, buf) \ (*PL_LIO->pNameStat)(PL_LIO, (name), (buf)) #define PerlLIO_tmpnam(str) \ (*PL_LIO->pTmpnam)(PL_LIO, (str)) #define PerlLIO_umask(mode) \ (*PL_LIO->pUmask)(PL_LIO, (mode)) #define PerlLIO_unlink(file) \ (*PL_LIO->pUnlink)(PL_LIO, (file)) #define PerlLIO_utime(file, time) \ (*PL_LIO->pUtime)(PL_LIO, (file), (time)) #define PerlLIO_write(fd, buf, count) \ (*PL_LIO->pWrite)(PL_LIO, (fd), (buf), (count)) #else /* PERL_IMPLICIT_SYS */ #define PerlLIO_access(file, mode) access((file), (mode)) #define PerlLIO_chmod(file, mode) chmod((file), (mode)) #define PerlLIO_chown(file, owner, grp) chown((file), (owner), (grp)) #if defined(HAS_TRUNCATE) # define PerlLIO_chsize(fd, size) ftruncate((fd), (size)) #elif defined(HAS_CHSIZE) # define PerlLIO_chsize(fd, size) chsize((fd), (size)) #else # define PerlLIO_chsize(fd, size) my_chsize((fd), (size)) #endif #define PerlLIO_close(fd) close((fd)) #define PerlLIO_dup(fd) dup((fd)) #define PerlLIO_dup2(fd1, fd2) dup2((fd1), (fd2)) #define PerlLIO_flock(fd, op) FLOCK((fd), (op)) #define PerlLIO_fstat(fd, buf) Fstat((fd), (buf)) #define PerlLIO_ioctl(fd, u, buf) ioctl((fd), (u), (buf)) #define PerlLIO_isatty(fd) isatty((fd)) #define PerlLIO_link(oldname, newname) link((oldname), (newname)) #define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode)) #define PerlLIO_stat(name, buf) Stat((name), (buf)) #ifdef HAS_LSTAT # define PerlLIO_lstat(name, buf) lstat((name), (buf)) #else # define PerlLIO_lstat(name, buf) PerlLIO_stat((name), (buf)) #endif #define PerlLIO_mktemp(file) mktemp((file)) #define PerlLIO_mkstemp(file) mkstemp((file)) #define PerlLIO_open(file, flag) open((file), (flag)) #define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm)) #define PerlLIO_read(fd, buf, count) read((fd), (buf), (count)) #define PerlLIO_rename(old, new) rename((old), (new)) #define PerlLIO_setmode(fd, mode) setmode((fd), (mode)) #define PerlLIO_tmpnam(str) tmpnam((str)) #define PerlLIO_umask(mode) umask((mode)) #define PerlLIO_unlink(file) unlink((file)) #define PerlLIO_utime(file, time) utime((file), (time)) #define PerlLIO_write(fd, buf, count) write((fd), (buf), (count)) #endif /* PERL_IMPLICIT_SYS */ /* Interface for perl memory allocation */ #if defined(PERL_IMPLICIT_SYS) /* IPerlMem */ struct IPerlMem; struct IPerlMemInfo; typedef void* (*LPMemMalloc)(struct IPerlMem*, size_t); typedef void* (*LPMemRealloc)(struct IPerlMem*, void*, size_t); typedef void (*LPMemFree)(struct IPerlMem*, void*); typedef void* (*LPMemCalloc)(struct IPerlMem*, size_t, size_t); typedef void (*LPMemGetLock)(struct IPerlMem*); typedef void (*LPMemFreeLock)(struct IPerlMem*); typedef int (*LPMemIsLocked)(struct IPerlMem*); struct IPerlMem { LPMemMalloc pMalloc; LPMemRealloc pRealloc; LPMemFree pFree; LPMemCalloc pCalloc; LPMemGetLock pGetLock; LPMemFreeLock pFreeLock; LPMemIsLocked pIsLocked; }; struct IPerlMemInfo { unsigned long nCount; /* number of entries expected */ struct IPerlMem perlMemList; }; /* Interpreter specific memory macros */ #define PerlMem_malloc(size) \ (*PL_Mem->pMalloc)(PL_Mem, (size)) #define PerlMem_realloc(buf, size) \ (*PL_Mem->pRealloc)(PL_Mem, (buf), (size)) #define PerlMem_free(buf) \ (*PL_Mem->pFree)(PL_Mem, (buf)) #define PerlMem_calloc(num, size) \ (*PL_Mem->pCalloc)(PL_Mem, (num), (size)) #define PerlMem_get_lock() \ (*PL_Mem->pGetLock)(PL_Mem) #define PerlMem_free_lock() \ (*PL_Mem->pFreeLock)(PL_Mem) #define PerlMem_is_locked() \ (*PL_Mem->pIsLocked)(PL_Mem) /* Shared memory macros */ #ifdef NETWARE #define PerlMemShared_malloc(size) \ (*PL_Mem->pMalloc)(PL_Mem, (size)) #define PerlMemShared_realloc(buf, size) \ (*PL_Mem->pRealloc)(PL_Mem, (buf), (size)) #define PerlMemShared_free(buf) \ (*PL_Mem->pFree)(PL_Mem, (buf)) #define PerlMemShared_calloc(num, size) \ (*PL_Mem->pCalloc)(PL_Mem, (num), (size)) #define PerlMemShared_get_lock() \ (*PL_Mem->pGetLock)(PL_Mem) #define PerlMemShared_free_lock() \ (*PL_Mem->pFreeLock)(PL_Mem) #define PerlMemShared_is_locked() \ (*PL_Mem->pIsLocked)(PL_Mem) #else #define PerlMemShared_malloc(size) \ (*PL_MemShared->pMalloc)(PL_MemShared, (size)) #define PerlMemShared_realloc(buf, size) \ (*PL_MemShared->pRealloc)(PL_MemShared, (buf), (size)) #define PerlMemShared_free(buf) \ (*PL_MemShared->pFree)(PL_MemShared, (buf)) #define PerlMemShared_calloc(num, size) \ (*PL_MemShared->pCalloc)(PL_MemShared, (num), (size)) #define PerlMemShared_get_lock() \ (*PL_MemShared->pGetLock)(PL_MemShared) #define PerlMemShared_free_lock() \ (*PL_MemShared->pFreeLock)(PL_MemShared) #define PerlMemShared_is_locked() \ (*PL_MemShared->pIsLocked)(PL_MemShared) #endif /* Parse tree memory macros */ #define PerlMemParse_malloc(size) \ (*PL_MemParse->pMalloc)(PL_MemParse, (size)) #define PerlMemParse_realloc(buf, size) \ (*PL_MemParse->pRealloc)(PL_MemParse, (buf), (size)) #define PerlMemParse_free(buf) \ (*PL_MemParse->pFree)(PL_MemParse, (buf)) #define PerlMemParse_calloc(num, size) \ (*PL_MemParse->pCalloc)(PL_MemParse, (num), (size)) #define PerlMemParse_get_lock() \ (*PL_MemParse->pGetLock)(PL_MemParse) #define PerlMemParse_free_lock() \ (*PL_MemParse->pFreeLock)(PL_MemParse) #define PerlMemParse_is_locked() \ (*PL_MemParse->pIsLocked)(PL_MemParse) #else /* PERL_IMPLICIT_SYS */ /* Interpreter specific memory macros */ #define PerlMem_malloc(size) malloc((size)) #define PerlMem_realloc(buf, size) realloc((buf), (size)) #define PerlMem_free(buf) free((buf)) #define PerlMem_calloc(num, size) calloc((num), (size)) #define PerlMem_get_lock() #define PerlMem_free_lock() #define PerlMem_is_locked() 0 /* Shared memory macros */ #define PerlMemShared_malloc(size) malloc((size)) #define PerlMemShared_realloc(buf, size) realloc((buf), (size)) #define PerlMemShared_free(buf) free((buf)) #define PerlMemShared_calloc(num, size) calloc((num), (size)) #define PerlMemShared_get_lock() #define PerlMemShared_free_lock() #define PerlMemShared_is_locked() 0 /* Parse tree memory macros */ #define PerlMemParse_malloc(size) malloc((size)) #define PerlMemParse_realloc(buf, size) realloc((buf), (size)) #define PerlMemParse_free(buf) free((buf)) #define PerlMemParse_calloc(num, size) calloc((num), (size)) #define PerlMemParse_get_lock() #define PerlMemParse_free_lock() #define PerlMemParse_is_locked() 0 #endif /* PERL_IMPLICIT_SYS */ /* Interface for perl process functions */ #if defined(PERL_IMPLICIT_SYS) #ifndef jmp_buf #include #endif /* IPerlProc */ struct IPerlProc; struct IPerlProcInfo; typedef void (*LPProcAbort)(struct IPerlProc*); typedef char* (*LPProcCrypt)(struct IPerlProc*, const char*, const char*); typedef void (*LPProcExit)(struct IPerlProc*, int); typedef void (*LPProc_Exit)(struct IPerlProc*, int); typedef int (*LPProcExecl)(struct IPerlProc*, const char*, const char*, const char*, const char*, const char*); typedef int (*LPProcExecv)(struct IPerlProc*, const char*, const char*const*); typedef int (*LPProcExecvp)(struct IPerlProc*, const char*, const char*const*); typedef uid_t (*LPProcGetuid)(struct IPerlProc*); typedef uid_t (*LPProcGeteuid)(struct IPerlProc*); typedef gid_t (*LPProcGetgid)(struct IPerlProc*); typedef gid_t (*LPProcGetegid)(struct IPerlProc*); typedef char* (*LPProcGetlogin)(struct IPerlProc*); typedef int (*LPProcKill)(struct IPerlProc*, int, int); typedef int (*LPProcKillpg)(struct IPerlProc*, int, int); typedef int (*LPProcPauseProc)(struct IPerlProc*); typedef PerlIO* (*LPProcPopen)(struct IPerlProc*, const char*, const char*); typedef PerlIO* (*LPProcPopenList)(struct IPerlProc*, const char*, IV narg, SV **args); typedef int (*LPProcPclose)(struct IPerlProc*, PerlIO*); typedef int (*LPProcPipe)(struct IPerlProc*, int*); typedef int (*LPProcSetuid)(struct IPerlProc*, uid_t); typedef int (*LPProcSetgid)(struct IPerlProc*, gid_t); typedef int (*LPProcSleep)(struct IPerlProc*, unsigned int); typedef int (*LPProcTimes)(struct IPerlProc*, struct tms*); typedef int (*LPProcWait)(struct IPerlProc*, int*); typedef int (*LPProcWaitpid)(struct IPerlProc*, int, int*, int); typedef Sighandler_t (*LPProcSignal)(struct IPerlProc*, int, Sighandler_t); typedef int (*LPProcFork)(struct IPerlProc*); typedef int (*LPProcGetpid)(struct IPerlProc*); #ifdef WIN32 typedef void* (*LPProcDynaLoader)(struct IPerlProc*, const char*); typedef void (*LPProcGetOSError)(struct IPerlProc*, SV* sv, DWORD dwErr); typedef int (*LPProcSpawnvp)(struct IPerlProc*, int, const char*, const char*const*); #endif typedef int (*LPProcLastHost)(struct IPerlProc*); typedef int (*LPProcGetTimeOfDay)(struct IPerlProc*, struct timeval*, void*); struct IPerlProc { LPProcAbort pAbort; LPProcCrypt pCrypt; LPProcExit pExit; LPProc_Exit p_Exit; LPProcExecl pExecl; LPProcExecv pExecv; LPProcExecvp pExecvp; LPProcGetuid pGetuid; LPProcGeteuid pGeteuid; LPProcGetgid pGetgid; LPProcGetegid pGetegid; LPProcGetlogin pGetlogin; LPProcKill pKill; LPProcKillpg pKillpg; LPProcPauseProc pPauseProc; LPProcPopen pPopen; LPProcPclose pPclose; LPProcPipe pPipe; LPProcSetuid pSetuid; LPProcSetgid pSetgid; LPProcSleep pSleep; LPProcTimes pTimes; LPProcWait pWait; LPProcWaitpid pWaitpid; LPProcSignal pSignal; LPProcFork pFork; LPProcGetpid pGetpid; #ifdef WIN32 LPProcDynaLoader pDynaLoader; LPProcGetOSError pGetOSError; LPProcSpawnvp pSpawnvp; #endif LPProcLastHost pLastHost; LPProcPopenList pPopenList; LPProcGetTimeOfDay pGetTimeOfDay; }; struct IPerlProcInfo { unsigned long nCount; /* number of entries expected */ struct IPerlProc perlProcList; }; #define PerlProc_abort() \ (*PL_Proc->pAbort)(PL_Proc) #define PerlProc_crypt(c,s) \ (*PL_Proc->pCrypt)(PL_Proc, (c), (s)) #define PerlProc_exit(s) \ (*PL_Proc->pExit)(PL_Proc, (s)) #define PerlProc__exit(s) \ (*PL_Proc->p_Exit)(PL_Proc, (s)) #define PerlProc_execl(c, w, x, y, z) \ (*PL_Proc->pExecl)(PL_Proc, (c), (w), (x), (y), (z)) #define PerlProc_execv(c, a) \ (*PL_Proc->pExecv)(PL_Proc, (c), (a)) #define PerlProc_execvp(c, a) \ (*PL_Proc->pExecvp)(PL_Proc, (c), (a)) #define PerlProc_getuid() \ (*PL_Proc->pGetuid)(PL_Proc) #define PerlProc_geteuid() \ (*PL_Proc->pGeteuid)(PL_Proc) #define PerlProc_getgid() \ (*PL_Proc->pGetgid)(PL_Proc) #define PerlProc_getegid() \ (*PL_Proc->pGetegid)(PL_Proc) #define PerlProc_getlogin() \ (*PL_Proc->pGetlogin)(PL_Proc) #define PerlProc_kill(i, a) \ (*PL_Proc->pKill)(PL_Proc, (i), (a)) #define PerlProc_killpg(i, a) \ (*PL_Proc->pKillpg)(PL_Proc, (i), (a)) #define PerlProc_pause() \ (*PL_Proc->pPauseProc)(PL_Proc) #define PerlProc_popen(c, m) \ (*PL_Proc->pPopen)(PL_Proc, (c), (m)) #define PerlProc_popen_list(m, n, a) \ (*PL_Proc->pPopenList)(PL_Proc, (m), (n), (a)) #define PerlProc_pclose(f) \ (*PL_Proc->pPclose)(PL_Proc, (f)) #define PerlProc_pipe(fd) \ (*PL_Proc->pPipe)(PL_Proc, (fd)) #define PerlProc_setuid(u) \ (*PL_Proc->pSetuid)(PL_Proc, (u)) #define PerlProc_setgid(g) \ (*PL_Proc->pSetgid)(PL_Proc, (g)) #define PerlProc_sleep(t) \ (*PL_Proc->pSleep)(PL_Proc, (t)) #define PerlProc_times(t) \ (*PL_Proc->pTimes)(PL_Proc, (t)) #define PerlProc_wait(t) \ (*PL_Proc->pWait)(PL_Proc, (t)) #define PerlProc_waitpid(p,s,f) \ (*PL_Proc->pWaitpid)(PL_Proc, (p), (s), (f)) #define PerlProc_signal(n, h) \ (*PL_Proc->pSignal)(PL_Proc, (n), (h)) #define PerlProc_fork() \ (*PL_Proc->pFork)(PL_Proc) #define PerlProc_getpid() \ (*PL_Proc->pGetpid)(PL_Proc) #define PerlProc_setjmp(b, n) Sigsetjmp((b), (n)) #define PerlProc_longjmp(b, n) Siglongjmp((b), (n)) #ifdef WIN32 #define PerlProc_DynaLoad(f) \ (*PL_Proc->pDynaLoader)(PL_Proc, (f)) #define PerlProc_GetOSError(s,e) \ (*PL_Proc->pGetOSError)(PL_Proc, (s), (e)) #define PerlProc_spawnvp(m, c, a) \ (*PL_Proc->pSpawnvp)(PL_Proc, (m), (c), (a)) #endif #define PerlProc_lasthost() \ (*PL_Proc->pLastHost)(PL_Proc) #define PerlProc_gettimeofday(t,z) \ (*PL_Proc->pGetTimeOfDay)(PL_Proc,(t),(z)) #else /* PERL_IMPLICIT_SYS */ #define PerlProc_abort() abort() #define PerlProc_crypt(c,s) crypt((c), (s)) #define PerlProc_exit(s) exit((s)) #define PerlProc__exit(s) _exit((s)) #define PerlProc_execl(c,w,x,y,z) \ execl((c), (w), (x), (y), (z)) #define PerlProc_execv(c, a) execv((c), (a)) #define PerlProc_execvp(c, a) execvp((c), (a)) #define PerlProc_getuid() getuid() #define PerlProc_geteuid() geteuid() #define PerlProc_getgid() getgid() #define PerlProc_getegid() getegid() #define PerlProc_getlogin() getlogin() #define PerlProc_kill(i, a) kill((i), (a)) #define PerlProc_killpg(i, a) killpg((i), (a)) #define PerlProc_pause() Pause() #define PerlProc_popen(c, m) my_popen((c), (m)) #define PerlProc_popen_list(m,n,a) my_popen_list((m),(n),(a)) #define PerlProc_pclose(f) my_pclose((f)) #define PerlProc_pipe(fd) pipe((fd)) #define PerlProc_setuid(u) setuid((u)) #define PerlProc_setgid(g) setgid((g)) #define PerlProc_sleep(t) sleep((t)) #define PerlProc_times(t) times((t)) #define PerlProc_wait(t) wait((t)) #define PerlProc_waitpid(p,s,f) waitpid((p), (s), (f)) #define PerlProc_setjmp(b, n) Sigsetjmp((b), (n)) #define PerlProc_longjmp(b, n) Siglongjmp((b), (n)) #define PerlProc_signal(n, h) signal((n), (h)) #define PerlProc_fork() my_fork() #define PerlProc_getpid() getpid() #define PerlProc_gettimeofday(t,z) gettimeofday((t),(z)) #ifdef WIN32 #define PerlProc_DynaLoad(f) \ win32_dynaload((f)) #define PerlProc_GetOSError(s,e) \ win32_str_os_error((s), (e)) #define PerlProc_spawnvp(m, c, a) \ win32_spawnvp((m), (c), (a)) #undef PerlProc_signal #define PerlProc_signal(n, h) win32_signal((n), (h)) #endif #endif /* PERL_IMPLICIT_SYS */ /* Interface for perl socket functions */ #if defined(PERL_IMPLICIT_SYS) /* PerlSock */ struct IPerlSock; struct IPerlSockInfo; typedef u_long (*LPHtonl)(struct IPerlSock*, u_long); typedef u_short (*LPHtons)(struct IPerlSock*, u_short); typedef u_long (*LPNtohl)(struct IPerlSock*, u_long); typedef u_short (*LPNtohs)(struct IPerlSock*, u_short); typedef SOCKET (*LPAccept)(struct IPerlSock*, SOCKET, struct sockaddr*, int*); typedef int (*LPBind)(struct IPerlSock*, SOCKET, const struct sockaddr*, int); typedef int (*LPConnect)(struct IPerlSock*, SOCKET, const struct sockaddr*, int); typedef void (*LPEndhostent)(struct IPerlSock*); typedef void (*LPEndnetent)(struct IPerlSock*); typedef void (*LPEndprotoent)(struct IPerlSock*); typedef void (*LPEndservent)(struct IPerlSock*); typedef int (*LPGethostname)(struct IPerlSock*, char*, int); typedef int (*LPGetpeername)(struct IPerlSock*, SOCKET, struct sockaddr*, int*); typedef struct hostent* (*LPGethostbyaddr)(struct IPerlSock*, const char*, int, int); typedef struct hostent* (*LPGethostbyname)(struct IPerlSock*, const char*); typedef struct hostent* (*LPGethostent)(struct IPerlSock*); typedef struct netent* (*LPGetnetbyaddr)(struct IPerlSock*, long, int); typedef struct netent* (*LPGetnetbyname)(struct IPerlSock*, const char*); typedef struct netent* (*LPGetnetent)(struct IPerlSock*); typedef struct protoent*(*LPGetprotobyname)(struct IPerlSock*, const char*); typedef struct protoent*(*LPGetprotobynumber)(struct IPerlSock*, int); typedef struct protoent*(*LPGetprotoent)(struct IPerlSock*); typedef struct servent* (*LPGetservbyname)(struct IPerlSock*, const char*, const char*); typedef struct servent* (*LPGetservbyport)(struct IPerlSock*, int, const char*); typedef struct servent* (*LPGetservent)(struct IPerlSock*); typedef int (*LPGetsockname)(struct IPerlSock*, SOCKET, struct sockaddr*, int*); typedef int (*LPGetsockopt)(struct IPerlSock*, SOCKET, int, int, char*, int*); typedef unsigned long (*LPInetAddr)(struct IPerlSock*, const char*); typedef char* (*LPInetNtoa)(struct IPerlSock*, struct in_addr); typedef int (*LPListen)(struct IPerlSock*, SOCKET, int); typedef int (*LPRecv)(struct IPerlSock*, SOCKET, char*, int, int); typedef int (*LPRecvfrom)(struct IPerlSock*, SOCKET, char*, int, int, struct sockaddr*, int*); typedef int (*LPSelect)(struct IPerlSock*, int, char*, char*, char*, const struct timeval*); typedef int (*LPSend)(struct IPerlSock*, SOCKET, const char*, int, int); typedef int (*LPSendto)(struct IPerlSock*, SOCKET, const char*, int, int, const struct sockaddr*, int); typedef void (*LPSethostent)(struct IPerlSock*, int); typedef void (*LPSetnetent)(struct IPerlSock*, int); typedef void (*LPSetprotoent)(struct IPerlSock*, int); typedef void (*LPSetservent)(struct IPerlSock*, int); typedef int (*LPSetsockopt)(struct IPerlSock*, SOCKET, int, int, const char*, int); typedef int (*LPShutdown)(struct IPerlSock*, SOCKET, int); typedef SOCKET (*LPSocket)(struct IPerlSock*, int, int, int); typedef int (*LPSocketpair)(struct IPerlSock*, int, int, int, int*); #ifdef WIN32 typedef int (*LPClosesocket)(struct IPerlSock*, SOCKET s); #endif struct IPerlSock { LPHtonl pHtonl; LPHtons pHtons; LPNtohl pNtohl; LPNtohs pNtohs; LPAccept pAccept; LPBind pBind; LPConnect pConnect; LPEndhostent pEndhostent; LPEndnetent pEndnetent; LPEndprotoent pEndprotoent; LPEndservent pEndservent; LPGethostname pGethostname; LPGetpeername pGetpeername; LPGethostbyaddr pGethostbyaddr; LPGethostbyname pGethostbyname; LPGethostent pGethostent; LPGetnetbyaddr pGetnetbyaddr; LPGetnetbyname pGetnetbyname; LPGetnetent pGetnetent; LPGetprotobyname pGetprotobyname; LPGetprotobynumber pGetprotobynumber; LPGetprotoent pGetprotoent; LPGetservbyname pGetservbyname; LPGetservbyport pGetservbyport; LPGetservent pGetservent; LPGetsockname pGetsockname; LPGetsockopt pGetsockopt; LPInetAddr pInetAddr; LPInetNtoa pInetNtoa; LPListen pListen; LPRecv pRecv; LPRecvfrom pRecvfrom; LPSelect pSelect; LPSend pSend; LPSendto pSendto; LPSethostent pSethostent; LPSetnetent pSetnetent; LPSetprotoent pSetprotoent; LPSetservent pSetservent; LPSetsockopt pSetsockopt; LPShutdown pShutdown; LPSocket pSocket; LPSocketpair pSocketpair; #ifdef WIN32 LPClosesocket pClosesocket; #endif }; struct IPerlSockInfo { unsigned long nCount; /* number of entries expected */ struct IPerlSock perlSockList; }; #define PerlSock_htonl(x) \ (*PL_Sock->pHtonl)(PL_Sock, x) #define PerlSock_htons(x) \ (*PL_Sock->pHtons)(PL_Sock, x) #define PerlSock_ntohl(x) \ (*PL_Sock->pNtohl)(PL_Sock, x) #define PerlSock_ntohs(x) \ (*PL_Sock->pNtohs)(PL_Sock, x) #define PerlSock_accept(s, a, l) \ (*PL_Sock->pAccept)(PL_Sock, s, a, l) #define PerlSock_bind(s, n, l) \ (*PL_Sock->pBind)(PL_Sock, s, n, l) #define PerlSock_connect(s, n, l) \ (*PL_Sock->pConnect)(PL_Sock, s, n, l) #define PerlSock_endhostent() \ (*PL_Sock->pEndhostent)(PL_Sock) #define PerlSock_endnetent() \ (*PL_Sock->pEndnetent)(PL_Sock) #define PerlSock_endprotoent() \ (*PL_Sock->pEndprotoent)(PL_Sock) #define PerlSock_endservent() \ (*PL_Sock->pEndservent)(PL_Sock) #define PerlSock_gethostbyaddr(a, l, t) \ (*PL_Sock->pGethostbyaddr)(PL_Sock, a, l, t) #define PerlSock_gethostbyname(n) \ (*PL_Sock->pGethostbyname)(PL_Sock, n) #define PerlSock_gethostent() \ (*PL_Sock->pGethostent)(PL_Sock) #define PerlSock_gethostname(n, l) \ (*PL_Sock->pGethostname)(PL_Sock, n, l) #define PerlSock_getnetbyaddr(n, t) \ (*PL_Sock->pGetnetbyaddr)(PL_Sock, n, t) #define PerlSock_getnetbyname(c) \ (*PL_Sock->pGetnetbyname)(PL_Sock, c) #define PerlSock_getnetent() \ (*PL_Sock->pGetnetent)(PL_Sock) #define PerlSock_getpeername(s, n, l) \ (*PL_Sock->pGetpeername)(PL_Sock, s, n, l) #define PerlSock_getprotobyname(n) \ (*PL_Sock->pGetprotobyname)(PL_Sock, n) #define PerlSock_getprotobynumber(n) \ (*PL_Sock->pGetprotobynumber)(PL_Sock, n) #define PerlSock_getprotoent() \ (*PL_Sock->pGetprotoent)(PL_Sock) #define PerlSock_getservbyname(n, p) \ (*PL_Sock->pGetservbyname)(PL_Sock, n, p) #define PerlSock_getservbyport(port, p) \ (*PL_Sock->pGetservbyport)(PL_Sock, port, p) #define PerlSock_getservent() \ (*PL_Sock->pGetservent)(PL_Sock) #define PerlSock_getsockname(s, n, l) \ (*PL_Sock->pGetsockname)(PL_Sock, s, n, l) #define PerlSock_getsockopt(s,l,n,v,i) \ (*PL_Sock->pGetsockopt)(PL_Sock, s, l, n, v, i) #define PerlSock_inet_addr(c) \ (*PL_Sock->pInetAddr)(PL_Sock, c) #define PerlSock_inet_ntoa(i) \ (*PL_Sock->pInetNtoa)(PL_Sock, i) #define PerlSock_listen(s, b) \ (*PL_Sock->pListen)(PL_Sock, s, b) #define PerlSock_recv(s, b, l, f) \ (*PL_Sock->pRecv)(PL_Sock, s, b, l, f) #define PerlSock_recvfrom(s,b,l,f,from,fromlen) \ (*PL_Sock->pRecvfrom)(PL_Sock, s, b, l, f, from, fromlen) #define PerlSock_select(n, r, w, e, t) \ (*PL_Sock->pSelect)(PL_Sock, n, (char*)r, (char*)w, (char*)e, t) #define PerlSock_send(s, b, l, f) \ (*PL_Sock->pSend)(PL_Sock, s, b, l, f) #define PerlSock_sendto(s, b, l, f, t, tlen) \ (*PL_Sock->pSendto)(PL_Sock, s, b, l, f, t, tlen) #define PerlSock_sethostent(f) \ (*PL_Sock->pSethostent)(PL_Sock, f) #define PerlSock_setnetent(f) \ (*PL_Sock->pSetnetent)(PL_Sock, f) #define PerlSock_setprotoent(f) \ (*PL_Sock->pSetprotoent)(PL_Sock, f) #define PerlSock_setservent(f) \ (*PL_Sock->pSetservent)(PL_Sock, f) #define PerlSock_setsockopt(s, l, n, v, len) \ (*PL_Sock->pSetsockopt)(PL_Sock, s, l, n, v, len) #define PerlSock_shutdown(s, h) \ (*PL_Sock->pShutdown)(PL_Sock, s, h) #define PerlSock_socket(a, t, p) \ (*PL_Sock->pSocket)(PL_Sock, a, t, p) #define PerlSock_socketpair(a, t, p, f) \ (*PL_Sock->pSocketpair)(PL_Sock, a, t, p, f) #ifdef WIN32 #define PerlSock_closesocket(s) \ (*PL_Sock->pClosesocket)(PL_Sock, s) #endif #else /* PERL_IMPLICIT_SYS */ #define PerlSock_htonl(x) htonl(x) #define PerlSock_htons(x) htons(x) #define PerlSock_ntohl(x) ntohl(x) #define PerlSock_ntohs(x) ntohs(x) #define PerlSock_accept(s, a, l) accept(s, a, l) #define PerlSock_bind(s, n, l) bind(s, n, l) #define PerlSock_connect(s, n, l) connect(s, n, l) #define PerlSock_gethostbyaddr(a, l, t) gethostbyaddr(a, l, t) #define PerlSock_gethostbyname(n) gethostbyname(n) #define PerlSock_gethostent gethostent #define PerlSock_endhostent endhostent #define PerlSock_gethostname(n, l) gethostname(n, l) #define PerlSock_getnetbyaddr(n, t) getnetbyaddr(n, t) #define PerlSock_getnetbyname(n) getnetbyname(n) #define PerlSock_getnetent getnetent #define PerlSock_endnetent endnetent #define PerlSock_getpeername(s, n, l) getpeername(s, n, l) #define PerlSock_getprotobyname(n) getprotobyname(n) #define PerlSock_getprotobynumber(n) getprotobynumber(n) #define PerlSock_getprotoent getprotoent #define PerlSock_endprotoent endprotoent #define PerlSock_getservbyname(n, p) getservbyname(n, p) #define PerlSock_getservbyport(port, p) getservbyport(port, p) #define PerlSock_getservent getservent #define PerlSock_endservent endservent #define PerlSock_getsockname(s, n, l) getsockname(s, n, l) #define PerlSock_getsockopt(s,l,n,v,i) getsockopt(s, l, n, v, i) #define PerlSock_inet_addr(c) inet_addr(c) #define PerlSock_inet_ntoa(i) inet_ntoa(i) #define PerlSock_listen(s, b) listen(s, b) #define PerlSock_recv(s, b, l, f) recv(s, b, l, f) #define PerlSock_recvfrom(s, b, l, f, from, fromlen) \ recvfrom(s, b, l, f, from, fromlen) #define PerlSock_select(n, r, w, e, t) select(n, r, w, e, t) #define PerlSock_send(s, b, l, f) send(s, b, l, f) #define PerlSock_sendto(s, b, l, f, t, tlen) \ sendto(s, b, l, f, t, tlen) #define PerlSock_sethostent(f) sethostent(f) #define PerlSock_setnetent(f) setnetent(f) #define PerlSock_setprotoent(f) setprotoent(f) #define PerlSock_setservent(f) setservent(f) #define PerlSock_setsockopt(s, l, n, v, len) \ setsockopt(s, l, n, v, len) #define PerlSock_shutdown(s, h) shutdown(s, h) #define PerlSock_socket(a, t, p) socket(a, t, p) #define PerlSock_socketpair(a, t, p, f) socketpair(a, t, p, f) #ifdef WIN32 #define PerlSock_closesocket(s) closesocket(s) #endif #endif /* PERL_IMPLICIT_SYS */ #endif /* __Inc__IPerl___ */ ================================================ FILE: tests/perlbench/keywords.h ================================================ /* * keywords.h * * Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, * by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by keywords.pl from its data. Any changes made here * will be lost! */ #define KEY_NULL 0 #define KEY___FILE__ 1 #define KEY___LINE__ 2 #define KEY___PACKAGE__ 3 #define KEY___DATA__ 4 #define KEY___END__ 5 #define KEY_AUTOLOAD 6 #define KEY_BEGIN 7 #define KEY_CORE 8 #define KEY_DESTROY 9 #define KEY_END 10 #define KEY_INIT 11 #define KEY_CHECK 12 #define KEY_abs 13 #define KEY_accept 14 #define KEY_alarm 15 #define KEY_and 16 #define KEY_atan2 17 #define KEY_bind 18 #define KEY_binmode 19 #define KEY_bless 20 #define KEY_caller 21 #define KEY_chdir 22 #define KEY_chmod 23 #define KEY_chomp 24 #define KEY_chop 25 #define KEY_chown 26 #define KEY_chr 27 #define KEY_chroot 28 #define KEY_close 29 #define KEY_closedir 30 #define KEY_cmp 31 #define KEY_connect 32 #define KEY_continue 33 #define KEY_cos 34 #define KEY_crypt 35 #define KEY_dbmclose 36 #define KEY_dbmopen 37 #define KEY_defined 38 #define KEY_delete 39 #define KEY_die 40 #define KEY_do 41 #define KEY_dump 42 #define KEY_each 43 #define KEY_else 44 #define KEY_elsif 45 #define KEY_endgrent 46 #define KEY_endhostent 47 #define KEY_endnetent 48 #define KEY_endprotoent 49 #define KEY_endpwent 50 #define KEY_endservent 51 #define KEY_eof 52 #define KEY_eq 53 #define KEY_eval 54 #define KEY_exec 55 #define KEY_exists 56 #define KEY_exit 57 #define KEY_exp 58 #define KEY_fcntl 59 #define KEY_fileno 60 #define KEY_flock 61 #define KEY_for 62 #define KEY_foreach 63 #define KEY_fork 64 #define KEY_format 65 #define KEY_formline 66 #define KEY_ge 67 #define KEY_getc 68 #define KEY_getgrent 69 #define KEY_getgrgid 70 #define KEY_getgrnam 71 #define KEY_gethostbyaddr 72 #define KEY_gethostbyname 73 #define KEY_gethostent 74 #define KEY_getlogin 75 #define KEY_getnetbyaddr 76 #define KEY_getnetbyname 77 #define KEY_getnetent 78 #define KEY_getpeername 79 #define KEY_getpgrp 80 #define KEY_getppid 81 #define KEY_getpriority 82 #define KEY_getprotobyname 83 #define KEY_getprotobynumber 84 #define KEY_getprotoent 85 #define KEY_getpwent 86 #define KEY_getpwnam 87 #define KEY_getpwuid 88 #define KEY_getservbyname 89 #define KEY_getservbyport 90 #define KEY_getservent 91 #define KEY_getsockname 92 #define KEY_getsockopt 93 #define KEY_glob 94 #define KEY_gmtime 95 #define KEY_goto 96 #define KEY_grep 97 #define KEY_gt 98 #define KEY_hex 99 #define KEY_if 100 #define KEY_index 101 #define KEY_int 102 #define KEY_ioctl 103 #define KEY_join 104 #define KEY_keys 105 #define KEY_kill 106 #define KEY_last 107 #define KEY_lc 108 #define KEY_lcfirst 109 #define KEY_le 110 #define KEY_length 111 #define KEY_link 112 #define KEY_listen 113 #define KEY_local 114 #define KEY_localtime 115 #define KEY_lock 116 #define KEY_log 117 #define KEY_lstat 118 #define KEY_lt 119 #define KEY_m 120 #define KEY_map 121 #define KEY_mkdir 122 #define KEY_msgctl 123 #define KEY_msgget 124 #define KEY_msgrcv 125 #define KEY_msgsnd 126 #define KEY_my 127 #define KEY_ne 128 #define KEY_next 129 #define KEY_no 130 #define KEY_not 131 #define KEY_oct 132 #define KEY_open 133 #define KEY_opendir 134 #define KEY_or 135 #define KEY_ord 136 #define KEY_our 137 #define KEY_pack 138 #define KEY_package 139 #define KEY_pipe 140 #define KEY_pop 141 #define KEY_pos 142 #define KEY_print 143 #define KEY_printf 144 #define KEY_prototype 145 #define KEY_push 146 #define KEY_q 147 #define KEY_qq 148 #define KEY_qr 149 #define KEY_quotemeta 150 #define KEY_qw 151 #define KEY_qx 152 #define KEY_rand 153 #define KEY_read 154 #define KEY_readdir 155 #define KEY_readline 156 #define KEY_readlink 157 #define KEY_readpipe 158 #define KEY_recv 159 #define KEY_redo 160 #define KEY_ref 161 #define KEY_rename 162 #define KEY_require 163 #define KEY_reset 164 #define KEY_return 165 #define KEY_reverse 166 #define KEY_rewinddir 167 #define KEY_rindex 168 #define KEY_rmdir 169 #define KEY_s 170 #define KEY_scalar 171 #define KEY_seek 172 #define KEY_seekdir 173 #define KEY_select 174 #define KEY_semctl 175 #define KEY_semget 176 #define KEY_semop 177 #define KEY_send 178 #define KEY_setgrent 179 #define KEY_sethostent 180 #define KEY_setnetent 181 #define KEY_setpgrp 182 #define KEY_setpriority 183 #define KEY_setprotoent 184 #define KEY_setpwent 185 #define KEY_setservent 186 #define KEY_setsockopt 187 #define KEY_shift 188 #define KEY_shmctl 189 #define KEY_shmget 190 #define KEY_shmread 191 #define KEY_shmwrite 192 #define KEY_shutdown 193 #define KEY_sin 194 #define KEY_sleep 195 #define KEY_socket 196 #define KEY_socketpair 197 #define KEY_sort 198 #define KEY_splice 199 #define KEY_split 200 #define KEY_sprintf 201 #define KEY_sqrt 202 #define KEY_srand 203 #define KEY_stat 204 #define KEY_study 205 #define KEY_sub 206 #define KEY_substr 207 #define KEY_symlink 208 #define KEY_syscall 209 #define KEY_sysopen 210 #define KEY_sysread 211 #define KEY_sysseek 212 #define KEY_system 213 #define KEY_syswrite 214 #define KEY_tell 215 #define KEY_telldir 216 #define KEY_tie 217 #define KEY_tied 218 #define KEY_time 219 #define KEY_times 220 #define KEY_tr 221 #define KEY_truncate 222 #define KEY_uc 223 #define KEY_ucfirst 224 #define KEY_umask 225 #define KEY_undef 226 #define KEY_unless 227 #define KEY_unlink 228 #define KEY_unpack 229 #define KEY_unshift 230 #define KEY_untie 231 #define KEY_until 232 #define KEY_use 233 #define KEY_utime 234 #define KEY_values 235 #define KEY_vec 236 #define KEY_wait 237 #define KEY_waitpid 238 #define KEY_wantarray 239 #define KEY_warn 240 #define KEY_while 241 #define KEY_write 242 #define KEY_x 243 #define KEY_xor 244 #define KEY_y 245 ================================================ FILE: tests/perlbench/lib/AutoLoader.pm ================================================ package AutoLoader; use strict; use 5.006_001; our($VERSION, $AUTOLOAD); my $is_dosish; my $is_epoc; my $is_vms; my $is_macos; BEGIN { $is_dosish = $^O eq 'dos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare'; $is_epoc = $^O eq 'epoc'; $is_vms = $^O eq 'VMS'; $is_macos = $^O eq 'MacOS'; $VERSION = '5.60'; } AUTOLOAD { my $sub = $AUTOLOAD; my $filename; # Braces used to preserve $1 et al. { # Try to find the autoloaded file from the package-qualified # name of the sub. e.g., if the sub needed is # Getopt::Long::GetOptions(), then $INC{Getopt/Long.pm} is # something like '/usr/lib/perl5/Getopt/Long.pm', and the # autoload file is '/usr/lib/perl5/auto/Getopt/Long/GetOptions.al'. # # However, if @INC is a relative path, this might not work. If, # for example, @INC = ('lib'), then $INC{Getopt/Long.pm} is # 'lib/Getopt/Long.pm', and we want to require # 'auto/Getopt/Long/GetOptions.al' (without the leading 'lib'). # In this case, we simple prepend the 'auto/' and let the # C take care of the searching for us. my ($pkg,$func) = ($sub =~ /(.*)::([^:]+)$/); $pkg =~ s#::#/#g; if (defined($filename = $INC{"$pkg.pm"})) { if ($is_macos) { $pkg =~ tr#/#:#; $filename =~ s#^(.*)$pkg\.pm\z#$1auto:$pkg:$func.al#s; } else { $filename =~ s#^(.*)$pkg\.pm\z#$1auto/$pkg/$func.al#s; } # if the file exists, then make sure that it is a # a fully anchored path (i.e either '/usr/lib/auto/foo/bar.al', # or './lib/auto/foo/bar.al'. This avoids C searching # (and failing) to find the 'lib/auto/foo/bar.al' because it # looked for 'lib/lib/auto/foo/bar.al', given @INC = ('lib'). if (-r $filename) { unless ($filename =~ m|^/|s) { if ($is_dosish) { unless ($filename =~ m{^([a-z]:)?[\\/]}is) { if ($^O ne 'NetWare') { $filename = "./$filename"; } else { $filename = "$filename"; } } } elsif ($is_epoc) { unless ($filename =~ m{^([a-z?]:)?[\\/]}is) { $filename = "./$filename"; } } elsif ($is_vms) { # XXX todo by VMSmiths $filename = "./$filename"; } elsif (!$is_macos) { $filename = "./$filename"; } } } else { $filename = undef; } } unless (defined $filename) { # let C do the searching $filename = "auto/$sub.al"; $filename =~ s#::#/#g; } } my $save = $@; local $!; # Do not munge the value. eval { local $SIG{__DIE__}; require $filename }; if ($@) { if (substr($sub,-9) eq '::DESTROY') { no strict 'refs'; *$sub = sub {}; $@ = undef; } elsif ($@ =~ /^Can't locate/) { # The load might just have failed because the filename was too # long for some old SVR3 systems which treat long names as errors. # If we can successfully truncate a long name then it's worth a go. # There is a slight risk that we could pick up the wrong file here # but autosplit should have warned about that when splitting. if ($filename =~ s/(\w{12,})\.al$/substr($1,0,11).".al"/e){ eval { local $SIG{__DIE__}; require $filename }; } } if ($@){ $@ =~ s/ at .*\n//; my $error = $@; require Carp; Carp::croak($error); } } $@ = $save; goto &$sub; } sub import { my $pkg = shift; my $callpkg = caller; # # Export symbols, but not by accident of inheritance. # if ($pkg eq 'AutoLoader') { no strict 'refs'; *{ $callpkg . '::AUTOLOAD' } = \&AUTOLOAD if @_ and $_[0] =~ /^&?AUTOLOAD$/; } # # Try to find the autosplit index file. Eg., if the call package # is POSIX, then $INC{POSIX.pm} is something like # '/usr/local/lib/perl5/POSIX.pm', and the autosplit index file is in # '/usr/local/lib/perl5/auto/POSIX/autosplit.ix', so we require that. # # However, if @INC is a relative path, this might not work. If, # for example, @INC = ('lib'), then # $INC{POSIX.pm} is 'lib/POSIX.pm', and we want to require # 'auto/POSIX/autosplit.ix' (without the leading 'lib'). # (my $calldir = $callpkg) =~ s#::#/#g; my $path = $INC{$calldir . '.pm'}; if (defined($path)) { # Try absolute path name. if ($is_macos) { (my $malldir = $calldir) =~ tr#/#:#; $path =~ s#^(.*)$malldir\.pm\z#$1auto:$malldir:autosplit.ix#s; } else { $path =~ s#^(.*)$calldir\.pm\z#$1auto/$calldir/autosplit.ix#; } eval { require $path; }; # If that failed, try relative path with normal @INC searching. if ($@) { $path ="auto/$calldir/autosplit.ix"; eval { require $path; }; } if ($@) { my $error = $@; require Carp; Carp::carp($error); } } } sub unimport { my $callpkg = caller; no strict 'refs'; my $symname = $callpkg . '::AUTOLOAD'; undef *{ $symname } if \&{ $symname } == \&AUTOLOAD; *{ $symname } = \&{ $symname }; } 1; __END__ =head1 NAME AutoLoader - load subroutines only on demand =head1 SYNOPSIS package Foo; use AutoLoader 'AUTOLOAD'; # import the default AUTOLOAD subroutine package Bar; use AutoLoader; # don't import AUTOLOAD, define our own sub AUTOLOAD { ... $AutoLoader::AUTOLOAD = "..."; goto &AutoLoader::AUTOLOAD; } =head1 DESCRIPTION The B module works with the B module and the C<__END__> token to defer the loading of some subroutines until they are used rather than loading them all at once. To use B, the author of a module has to place the definitions of subroutines to be autoloaded after an C<__END__> token. (See L.) The B module can then be run manually to extract the definitions into individual files F. B implements an AUTOLOAD subroutine. When an undefined subroutine in is called in a client module of B, B's AUTOLOAD subroutine attempts to locate the subroutine in a file with a name related to the location of the file from which the client module was read. As an example, if F is located in F, B will look for perl subroutines B in F, where the C<.al> file has the same name as the subroutine, sans package. If such a file exists, AUTOLOAD will read and evaluate it, thus (presumably) defining the needed subroutine. AUTOLOAD will then C the newly defined subroutine. Once this process completes for a given function, it is defined, so future calls to the subroutine will bypass the AUTOLOAD mechanism. =head2 Subroutine Stubs In order for object method lookup and/or prototype checking to operate correctly even when methods have not yet been defined it is necessary to "forward declare" each subroutine (as in C). See L. Such forward declaration creates "subroutine stubs", which are place holders with no code. The AutoSplit and B modules automate the creation of forward declarations. The AutoSplit module creates an 'index' file containing forward declarations of all the AutoSplit subroutines. When the AutoLoader module is 'use'd it loads these declarations into its callers package. Because of this mechanism it is important that B is always Cd and not Cd. =head2 Using B's AUTOLOAD Subroutine In order to use B's AUTOLOAD subroutine you I explicitly import it: use AutoLoader 'AUTOLOAD'; =head2 Overriding B's AUTOLOAD Subroutine Some modules, mainly extensions, provide their own AUTOLOAD subroutines. They typically need to check for some special cases (such as constants) and then fallback to B's AUTOLOAD for the rest. Such modules should I import B's AUTOLOAD subroutine. Instead, they should define their own AUTOLOAD subroutines along these lines: use AutoLoader; use Carp; sub AUTOLOAD { my $sub = $AUTOLOAD; (my $constname = $sub) =~ s/.*:://; my $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { if ($! =~ /Invalid/ || $!{EINVAL}) { $AutoLoader::AUTOLOAD = $sub; goto &AutoLoader::AUTOLOAD; } else { croak "Your vendor has not defined constant $constname"; } } *$sub = sub { $val }; # same as: eval "sub $sub { $val }"; goto &$sub; } If any module's own AUTOLOAD subroutine has no need to fallback to the AutoLoader's AUTOLOAD subroutine (because it doesn't have any AutoSplit subroutines), then that module should not use B at all. =head2 Package Lexicals Package lexicals declared with C in the main block of a package using B will not be visible to auto-loaded subroutines, due to the fact that the given scope ends at the C<__END__> marker. A module using such variables as package globals will not work properly under the B. The C pragma (see L) may be used in such situations as an alternative to explicitly qualifying all globals with the package namespace. Variables pre-declared with this pragma will be visible to any autoloaded routines (but will not be invisible outside the package, unfortunately). =head2 Not Using AutoLoader You can stop using AutoLoader by simply no AutoLoader; =head2 B vs. B The B is similar in purpose to B: both delay the loading of subroutines. B uses the C<__DATA__> marker rather than C<__END__>. While this avoids the use of a hierarchy of disk files and the associated open/close for each routine loaded, B suffers a startup speed disadvantage in the one-time parsing of the lines after C<__DATA__>, after which routines are cached. B can also handle multiple packages in a file. B only reads code as it is requested, and in many cases should be faster, but requires a mechanism like B be used to create the individual files. L will invoke B automatically if B is used in a module source file. =head1 CAVEATS AutoLoaders prior to Perl 5.002 had a slightly different interface. Any old modules which use B should be changed to the new calling style. Typically this just means changing a require to a use, adding the explicit C<'AUTOLOAD'> import if needed, and removing B from C<@ISA>. On systems with restrictions on file name length, the file corresponding to a subroutine may have a shorter name that the routine itself. This can lead to conflicting file names. The I package warns of these potential conflicts when used to split a module. AutoLoader may fail to find the autosplit files (or even find the wrong ones) in cases where C<@INC> contains relative paths, B the program does C. =head1 SEE ALSO L - an autoloader that doesn't use external files. =cut ================================================ FILE: tests/perlbench/lib/Carp/Heavy.pm ================================================ # Carp::Heavy uses some variables in common with Carp. package Carp; =head1 NAME Carp::Heavy - heavy machinery, no user serviceable parts inside =cut # use strict; # not yet # On one line so MakeMaker will see it. use Carp; our $VERSION = $Carp::VERSION; our ($CarpLevel, $MaxArgNums, $MaxEvalLen, $MaxArgLen, $Verbose); sub caller_info { my $i = shift(@_) + 1; package DB; my %call_info; @call_info{ qw(pack file line sub has_args wantarray evaltext is_require) } = caller($i); unless (defined $call_info{pack}) { return (); } my $sub_name = Carp::get_subname(\%call_info); if ($call_info{has_args}) { my @args = map {Carp::format_arg($_)} @DB::args; if ($MaxArgNums and @args > $MaxArgNums) { # More than we want to show? $#args = $MaxArgNums; push @args, '...'; } # Push the args onto the subroutine $sub_name .= '(' . join (', ', @args) . ')'; } $call_info{sub_name} = $sub_name; return wantarray() ? %call_info : \%call_info; } # Transform an argument to a function into a string. sub format_arg { my $arg = shift; if (not defined($arg)) { $arg = 'undef'; } elsif (ref($arg)) { $arg = defined($overload::VERSION) ? overload::StrVal($arg) : "$arg"; } $arg =~ s/'/\\'/g; $arg = str_len_trim($arg, $MaxArgLen); # Quote it? $arg = "'$arg'" unless $arg =~ /^-?[\d.]+\z/; # The following handling of "control chars" is direct from # the original code - I think it is broken on Unicode though. # Suggestions? $arg =~ s/([[:cntrl:]]|[[:^ascii:]])/sprintf("\\x{%x}",ord($1))/eg; return $arg; } # Takes an inheritance cache and a package and returns # an anon hash of known inheritances and anon array of # inheritances which consequences have not been figured # for. sub get_status { my $cache = shift; my $pkg = shift; $cache->{$pkg} ||= [{$pkg => $pkg}, [trusts_directly($pkg)]]; return @{$cache->{$pkg}}; } # Takes the info from caller() and figures out the name of # the sub/require/eval sub get_subname { my $info = shift; if (defined($info->{evaltext})) { my $eval = $info->{evaltext}; if ($info->{is_require}) { return "require $eval"; } else { $eval =~ s/([\\\'])/\\$1/g; return "eval '" . str_len_trim($eval, $MaxEvalLen) . "'"; } } return ($info->{sub} eq '(eval)') ? 'eval {...}' : $info->{sub}; } # Figures out what call (from the point of view of the caller) # the long error backtrace should start at. sub long_error_loc { my $i; my $lvl = $CarpLevel; { my $pkg = caller(++$i); unless(defined($pkg)) { # This *shouldn't* happen. if (%Internal) { local %Internal; $i = long_error_loc(); last; } else { # OK, now I am irritated. return 2; } } redo if $CarpInternal{$pkg}; redo unless 0 > --$lvl; redo if $Internal{$pkg}; } return $i - 1; } sub longmess_heavy { return @_ if ref($_[0]); # don't break references as exceptions my $i = long_error_loc(); return ret_backtrace($i, @_); } # Returns a full stack backtrace starting from where it is # told. sub ret_backtrace { my ($i, @error) = @_; my $mess; my $err = join '', @error; $i++; my $tid_msg = ''; if (defined &Thread::tid) { my $tid = Thread->self->tid; $tid_msg = " thread $tid" if $tid; } my %i = caller_info($i); $mess = "$err at $i{file} line $i{line}$tid_msg\n"; while (my %i = caller_info(++$i)) { $mess .= "\t$i{sub_name} called at $i{file} line $i{line}$tid_msg\n"; } return $mess; } sub ret_summary { my ($i, @error) = @_; my $err = join '', @error; $i++; my $tid_msg = ''; if (defined &Thread::tid) { my $tid = Thread->self->tid; $tid_msg = " thread $tid" if $tid; } my %i = caller_info($i); return "$err at $i{file} line $i{line}$tid_msg\n"; } sub short_error_loc { my $cache; my $i = 1; my $lvl = $CarpLevel; { my $called = caller($i++); my $caller = caller($i); return 0 unless defined($caller); # What happened? redo if $Internal{$caller}; redo if $CarpInternal{$called}; redo if trusts($called, $caller, $cache); redo if trusts($caller, $called, $cache); redo unless 0 > --$lvl; } return $i - 1; } sub shortmess_heavy { return longmess_heavy(@_) if $Verbose; return @_ if ref($_[0]); # don't break references as exceptions my $i = short_error_loc(); if ($i) { ret_summary($i, @_); } else { longmess_heavy(@_); } } # If a string is too long, trims it with ... sub str_len_trim { my $str = shift; my $max = shift || 0; if (2 < $max and $max < length($str)) { substr($str, $max - 3) = '...'; } return $str; } # Takes two packages and an optional cache. Says whether the # first inherits from the second. # # Recursive versions of this have to work to avoid certain # possible endless loops, and when following long chains of # inheritance are less efficient. sub trusts { my $child = shift; my $parent = shift; my $cache = shift || {}; my ($known, $partial) = get_status($cache, $child); # Figure out consequences until we have an answer while (@$partial and not exists $known->{$parent}) { my $anc = shift @$partial; next if exists $known->{$anc}; $known->{$anc}++; my ($anc_knows, $anc_partial) = get_status($cache, $anc); my @found = keys %$anc_knows; @$known{@found} = (); push @$partial, @$anc_partial; } return exists $known->{$parent}; } # Takes a package and gives a list of those trusted directly sub trusts_directly { my $class = shift; no strict 'refs'; no warnings 'once'; return @{"$class\::CARP_NOT"} ? @{"$class\::CARP_NOT"} : @{"$class\::ISA"}; } 1; ================================================ FILE: tests/perlbench/lib/Carp.pm ================================================ package Carp; our $VERSION = '1.03'; =head1 NAME carp - warn of errors (from perspective of caller) cluck - warn of errors with stack backtrace (not exported by default) croak - die of errors (from perspective of caller) confess - die of errors with stack backtrace shortmess - return the message that carp and croak produce longmess - return the message that cluck and confess produce =head1 SYNOPSIS use Carp; croak "We're outta here!"; use Carp qw(cluck); cluck "This is how we got here!"; print FH Carp::shortmess("This will have caller's details added"); print FH Carp::longmess("This will have stack backtrace added"); =head1 DESCRIPTION The Carp routines are useful in your own modules because they act like die() or warn(), but with a message which is more likely to be useful to a user of your module. In the case of cluck, confess, and longmess that context is a summary of every call in the call-stack. For a shorter message you can use carp, croak or shortmess which report the error as being from where your module was called. There is no guarantee that that is where the error was, but it is a good educated guess. Here is a more complete description of how shortmess works. What it does is search the call-stack for a function call stack where it hasn't been told that there shouldn't be an error. If every call is marked safe, it then gives up and gives a full stack backtrace instead. In other words it presumes that the first likely looking potential suspect is guilty. Its rules for telling whether a call shouldn't generate errors work as follows: =over 4 =item 1. Any call from a package to itself is safe. =item 2. Packages claim that there won't be errors on calls to or from packages explicitly marked as safe by inclusion in @CARP_NOT, or (if that array is empty) @ISA. The ability to override what @ISA says is new in 5.8. =item 3. The trust in item 2 is transitive. If A trusts B, and B trusts C, then A trusts C. So if you do not override @ISA with @CARP_NOT, then this trust relationship is identical to, "inherits from". =item 4. Any call from an internal Perl module is safe. (Nothing keeps user modules from marking themselves as internal to Perl, but this practice is discouraged.) =item 5. Any call to Carp is safe. (This rule is what keeps it from reporting the error where you call carp/croak/shortmess.) =back =head2 Forcing a Stack Trace As a debugging aid, you can force Carp to treat a croak as a confess and a carp as a cluck across I modules. In other words, force a detailed stack trace to be given. This can be very helpful when trying to understand why, or from where, a warning or error is being generated. This feature is enabled by 'importing' the non-existent symbol 'verbose'. You would typically enable it by saying perl -MCarp=verbose script.pl or by including the string C in the PERL5OPT environment variable. =head1 BUGS The Carp routines don't handle exception objects currently. If called with a first argument that is a reference, they simply call die() or warn(), as appropriate. =cut # This package is heavily used. Be small. Be fast. Be good. # Comments added by Andy Wardley 09-Apr-98, based on an # _almost_ complete understanding of the package. Corrections and # comments are welcome. # The members of %Internal are packages that are internal to perl. # Carp will not report errors from within these packages if it # can. The members of %CarpInternal are internal to Perl's warning # system. Carp will not report errors from within these packages # either, and will not report calls *to* these packages for carp and # croak. They replace $CarpLevel, which is deprecated. The # $Max(EvalLen|(Arg(Len|Nums)) variables are used to specify how the eval # text and function arguments should be formatted when printed. $CarpInternal{Carp}++; $CarpInternal{warnings}++; $CarpLevel = 0; # How many extra package levels to skip on carp. # How many calls to skip on confess. # Reconciling these notions is hard, use # %Internal and %CarpInternal instead. $MaxEvalLen = 0; # How much eval '...text...' to show. 0 = all. $MaxArgLen = 64; # How much of each argument to print. 0 = all. $MaxArgNums = 8; # How many arguments to print. 0 = all. $Verbose = 0; # If true then make shortmess call longmess instead require Exporter; @ISA = ('Exporter'); @EXPORT = qw(confess croak carp); @EXPORT_OK = qw(cluck verbose longmess shortmess); @EXPORT_FAIL = qw(verbose); # hook to enable verbose mode # if the caller specifies verbose usage ("perl -MCarp=verbose script.pl") # then the following method will be called by the Exporter which knows # to do this thanks to @EXPORT_FAIL, above. $_[1] will contain the word # 'verbose'. sub export_fail { shift; $Verbose = shift if $_[0] eq 'verbose'; return @_; } # longmess() crawls all the way up the stack reporting on all the function # calls made. The error string, $error, is originally constructed from the # arguments passed into longmess() via confess(), cluck() or shortmess(). # This gets appended with the stack trace messages which are generated for # each function call on the stack. sub longmess { { local $@; # XXX fix require to not clear $@? # don't use require unless we need to (for Safe compartments) require Carp::Heavy unless $INC{"Carp/Heavy.pm"}; } # Icky backwards compatibility wrapper. :-( my $call_pack = caller(); if ($Internal{$call_pack} or $CarpInternal{$call_pack}) { return longmess_heavy(@_); } else { local $CarpLevel = $CarpLevel + 1; return longmess_heavy(@_); } } # shortmess() is called by carp() and croak() to skip all the way up to # the top-level caller's package and report the error from there. confess() # and cluck() generate a full stack trace so they call longmess() to # generate that. In verbose mode shortmess() calls longmess() so # you always get a stack trace sub shortmess { # Short-circuit &longmess if called via multiple packages { local $@; # XXX fix require to not clear $@? # don't use require unless we need to (for Safe compartments) require Carp::Heavy unless $INC{"Carp/Heavy.pm"}; } # Icky backwards compatibility wrapper. :-( my $call_pack = caller(); local @CARP_NOT = caller(); shortmess_heavy(@_); } # the following four functions call longmess() or shortmess() depending on # whether they should generate a full stack trace (confess() and cluck()) # or simply report the caller's package (croak() and carp()), respectively. # confess() and croak() die, carp() and cluck() warn. sub croak { die shortmess @_ } sub confess { die longmess @_ } sub carp { warn shortmess @_ } sub cluck { warn longmess @_ } 1; ================================================ FILE: tests/perlbench/lib/Config.pm ================================================ # This file was created by configpm when Perl was built. Any changes # made to this file will be lost the next time perl is built. # This file has also been hacked up a lot for SPEC CPU2006 package Config; @EXPORT = qw(%Config); @EXPORT_OK = qw(myconfig config_sh config_vars config_re); my %Export_Cache = map {($_ => 1)} (@EXPORT, @EXPORT_OK); # Define our own import method to avoid pulling in the full Exporter: sub import { my $pkg = shift; @_ = @EXPORT unless @_; my @funcs = grep $_ ne '%Config', @_; my $export_Config = @funcs < @_ ? 1 : 0; my $callpkg = caller(0); foreach my $func (@funcs) { die sprintf qq{"%s" is not exported by the %s module\n}, $func, __PACKAGE__ unless $Export_Cache{$func}; *{$callpkg.'::'.$func} = \&{$func}; } *{"$callpkg\::Config"} = \%Config if $export_Config; return; } die "Perl lib version (v5.8.7) doesn't match executable version ($])" unless $^V; $^V eq v5.8.7 or die "Perl lib version (v5.8.7) doesn't match executable version (" . sprintf("v%vd",$^V) . ")"; ## ## This file was produced by running the Configure script. It holds all the ## definitions figured out by Configure. Should you modify one of these values, ## do not forget to propagate your changes by running "Configure -der". You may ## instead choose to run each of the .SH files by yourself, or "Configure -S". ## # ## Package name : perl5 ## Source directory : . ## Configuration time: Tue Sep 30 17:05:51 CDT 2003 ## Configured by : cloyce ## Target system : darwin noa.headgear.org. 6.6 darwin kernel version 6.6: thu may 1 21:48:54 pdt 2003; root:xnuxnu-344.34.obj~1release_ppc power macintosh powerpc # ## Configure command line arguments. #PERL_PATCHLEVEL= ## Variables propagated from previous config.sh file. our $summary : unique = <<'!END!'; Summary of my $package (revision $baserev $version_patchlevel_string) configuration: Platform: osname=$osname, osvers=$osvers, archname=$archname uname='$myuname' config_args='$config_args' hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction usethreads=$usethreads use5005threads=$use5005threads useithreads=$useithreads usemultiplicity=$usemultiplicity useperlio=$useperlio d_sfio=$d_sfio uselargefiles=$uselargefiles usesocks=$usesocks use64bitint=$use64bitint use64bitall=$use64bitall uselongdouble=$uselongdouble usemymalloc=$usemymalloc, bincompat5005=undef Compiler: cc='$cc', ccflags ='$ccflags', optimize='$optimize', cppflags='$cppflags' ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers' intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize alignbytes=$alignbytes, prototype=$prototype Linker and Libraries: ld='$ld', ldflags ='$ldflags' libpth=$libpth libs=$libs perllibs=$perllibs libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl gnulibc_version='$gnulibc_version' Dynamic Linking: dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags' cccdlflags='$cccdlflags', lddlflags='$lddlflags' !END! my $summary_expanded; sub myconfig { return $summary_expanded if $summary_expanded; ($summary_expanded = $summary) =~ s{\$(\w+)} { my $c = $Config{$1}; defined($c) ? $c : 'undef' }ge; $summary_expanded; } our $Config_SH : unique = <<'!END!'; archlibexp='lib/perl5/5.8.1/perlbench' archname='perlbench' cc='cc' ccflags='-DSPEC_CPU -DPERL_CORE' cppflags='-DSPEC_CPU -DPERL_CORE' dlsrc='dl_none.xs' dynamic_ext='' installarchlib='lib/perl5/5.8.1/perlbench' installprivlib='lib/perl5/5.8.1' libpth='/usr/lib' libs='-lm -lc' osname='perlbench' osvers='2005' prefix='/usr/local' privlibexp='lib/perl5/5.8.1' sharpbang='#!' shsharp='true' so='so' startsh='#!/bin/sh' static_ext='Data/Dumper Devel/Peek Digest/MD5 IO MIME/Base64 Sys/Hostname Time/HiRes attrs' Author='' CONFIG='true' Date='$Date' Header='' Id='$Id' LANG='C' LC_ALL='C' Locker='' Log='$Log' Mcc='Mcc' PATCHLEVEL='8' PERL_API_REVISION='5' PERL_API_SUBVERSION='0' PERL_API_VERSION='8' PERL_CONFIG_SH='true' PERL_REVISION='5' PERL_SUBVERSION='3' PERL_VERSION='8' RCSfile='$RCSfile' Revision='$Revision' SUBVERSION='1' Source='' State='' _a='.a' _exe='' _o='.o' afs='false' afsroot='/afs' alignbytes='8' ansi2knr='' aphostname='/bin/hostname' api_revision='5' api_subversion='0' api_version='8' api_versionstring='5.8.0' ar='ar' archlib='lib/perl5/5.8.1/perlbench' archname64='' archobjs='' asctime_r_proto='0' awk='awk' baserev='5.0' bash='' bin='bin' binexp='bin' bison='bison' byacc='byacc' byteorder='ffff' c='' castflags='0' cat='cat' cccdlflags=' ' ccdlflags='' ccflags_uselargefiles='' ccname='gcc' ccsymbols='__APPLE_CC__=1493 __DYNAMIC__=1 __GNUC_MINOR__=3 __GNUC_PATCHLEVEL__=0' ccversion='' cf_by='cloyce' cf_email='cloyce@noa' cf_time='Tue Sep 30 17:05:51 CDT 2003' charsize='1' chgrp='' chmod='chmod' chown='' clocktype='clock_t' comm='comm' compress='' config_arg0='./Configure' config_argc='0' config_args='' contains='grep' cp='cp' cpio='' cpp='cpp' cpp_stuff='42' cppccsymbols='__GNUC__=3' cpplast='-' cppminus='-' cpprun='cc -E' cppstdin='cc -E' cppsymbols='BIG_ENDIAN=4321 _BIG_ENDIAN=1 __BIG_ENDIAN__=1 __GNUC_MINOR__=3 LITTLE_ENDIAN=1234 __MACH__=1 __STDC__=1' crypt_r_proto='0' cryptlib='' csh='csh' ctermid_r_proto='0' ctime_r_proto='0' d_Gconvert='sprintf((b),"%.*g",(n),(x))' d_PRIEUldbl='define' d_PRIFUldbl='define' d_PRIGUldbl='define' d_PRIXU64='define' d_PRId64='define' d_PRIeldbl='define' d_PRIfldbl='define' d_PRIgldbl='define' d_PRIi64='define' d_PRIo64='define' d_PRIu64='define' d_PRIx64='define' d_SCNfldbl='define' d__fwalk='define' d_access='define' d_accessx='undef' d_aintl='undef' d_alarm='undef' d_archlib='define' d_asctime_r='undef' d_atolf='undef' d_atoll='undef' d_attribut='define' d_bcmp='define' d_bcopy='define' d_bsd='define' d_bsdgetpgrp='undef' d_bsdsetpgrp='define' d_bzero='define' d_casti32='define' d_castneg='define' d_charvspr='define' d_chown='define' d_chroot='define' d_chsize='undef' d_class='undef' d_closedir='define' d_cmsghdr_s='define' d_const='define' d_copysignl='undef' d_crypt='define' d_crypt_r='undef' d_csh='define' d_ctermid_r='undef' d_ctime_r='undef' d_cuserid='undef' d_dbl_dig='define' d_dbminitproto='undef' d_difftime='define' d_dirfd='define' d_dirnamlen='define' d_dlerror='undef' d_dlopen='undef' d_dlsymun='undef' d_dosuid='undef' d_drand48_r='undef' d_drand48proto='define' d_dup2='define' d_eaccess='undef' d_endgrent='define' d_endgrent_r='undef' d_endhent='define' d_endhostent_r='undef' d_endnent='define' d_endnetent_r='undef' d_endpent='define' d_endprotoent_r='undef' d_endpwent='define' d_endpwent_r='undef' d_endsent='define' d_endservent_r='undef' d_eofnblk='define' d_eunice='undef' d_faststdio='define' d_fchdir='define' d_fchmod='define' d_fchown='define' d_fcntl='define' d_fcntl_can_lock='define' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' d_fgetpos='define' d_finite='define' d_finitel='undef' d_flexfnam='define' d_flock='define' d_flockproto='define' d_fork='define' d_fp_class='undef' d_fpathconf='define' d_fpclass='undef' d_fpclassify='undef' d_fpclassl='undef' d_fpos64_t='undef' d_frexpl='undef' d_fs_data_s='undef' d_fseeko='define' d_fsetpos='define' d_fstatfs='define' d_fstatvfs='undef' d_fsync='define' d_ftello='define' d_ftime='undef' d_getcwd='define' d_getespwnam='undef' d_getfsstat='define' d_getgrent='define' d_getgrent_r='undef' d_getgrgid_r='undef' d_getgrnam_r='undef' d_getgrps='define' d_gethbyaddr='define' d_gethbyname='define' d_gethent='define' d_gethname='define' d_gethostbyaddr_r='undef' d_gethostbyname_r='undef' d_gethostent_r='undef' d_gethostprotos='define' d_getitimer='define' d_getlogin='define' d_getlogin_r='undef' d_getmnt='undef' d_getmntent='undef' d_getnbyaddr='define' d_getnbyname='define' d_getnent='define' d_getnetbyaddr_r='undef' d_getnetbyname_r='undef' d_getnetent_r='undef' d_getnetprotos='define' d_getpagsz='define' d_getpbyname='define' d_getpbynumber='define' d_getpent='define' d_getpgid='define' d_getpgrp2='undef' d_getpgrp='define' d_getppid='define' d_getprior='define' d_getprotobyname_r='undef' d_getprotobynumber_r='undef' d_getprotoent_r='undef' d_getprotoprotos='define' d_getprpwnam='undef' d_getpwent='define' d_getpwent_r='undef' d_getpwnam_r='undef' d_getpwuid_r='undef' d_getsbyname='define' d_getsbyport='define' d_getsent='define' d_getservbyname_r='undef' d_getservbyport_r='undef' d_getservent_r='undef' d_getservprotos='define' d_getspnam='undef' d_getspnam_r='undef' d_gettimeod='define' d_gmtime_r='undef' d_gnulibc='undef' d_grpasswd='define' d_hasmntopt='undef' d_htonl='define' d_ilogbl='undef' d_index='undef' d_inetaton='define' d_int64_t='define' d_isascii='define' d_isfinite='undef' d_isinf='define' d_isnan='define' d_isnanl='undef' d_killpg='define' d_lchown='undef' d_ldbl_dig='define' d_link='define' d_localtime_r='undef' d_locconv='define' d_lockf='define' d_longdbl='define' d_longlong='define' d_lseekproto='define' d_lstat='define' d_madvise='define' d_mblen='define' d_mbstowcs='define' d_mbtowc='define' d_memchr='define' d_memcmp='define' d_memcpy='define' d_memmove='define' d_memset='define' d_mkdir='define' d_mkdtemp='define' d_mkfifo='define' d_mkstemp='define' d_mkstemps='define' d_mktime='define' d_mmap='define' d_modfl='undef' d_modfl_pow32_bug='undef' d_modflproto='undef' d_mprotect='define' d_msg='undef' d_msg_ctrunc='define' d_msg_dontroute='define' d_msg_oob='define' d_msg_peek='define' d_msg_proxy='undef' d_msgctl='define' d_msgget='define' d_msghdr_s='define' d_msgrcv='define' d_msgsnd='define' d_msync='define' d_munmap='define' d_mymalloc='undef' d_nice='define' d_nl_langinfo='undef' d_nv_preserves_uv='define' d_off64_t='undef' d_old_pthread_create_joinable='undef' d_oldpthreads='undef' d_oldsock='undef' d_open3='define' d_pathconf='define' d_pause='define' d_perl_otherlibdirs='undef' d_phostname='undef' d_pipe='define' d_poll='undef' d_portable='define' d_procselfexe='undef' d_pthread_atfork='undef' d_pthread_attr_setscope='define' d_pthread_yield='undef' d_pwage='undef' d_pwchange='define' d_pwclass='define' d_pwcomment='undef' d_pwexpire='define' d_pwgecos='define' d_pwpasswd='define' d_pwquota='undef' d_qgcvt='undef' d_quad='define' d_random_r='undef' d_readdir64_r='undef' d_readdir='define' d_readdir_r='undef' d_readlink='define' d_readv='define' d_recvmsg='define' d_rename='define' d_rewinddir='define' d_rmdir='define' d_safebcpy='undef' d_safemcpy='undef' d_sanemcmp='define' d_sbrkproto='define' d_scalbnl='undef' d_sched_yield='define' d_scm_rights='define' d_seekdir='define' d_select='define' d_sem='define' d_semctl='define' d_semctl_semid_ds='undef' d_semctl_semun='undef' d_semget='define' d_semop='define' d_sendmsg='define' d_setegid='define' d_seteuid='define' d_setgrent='define' d_setgrent_r='undef' d_setgrps='define' d_sethent='define' d_sethostent_r='undef' d_setitimer='define' d_setlinebuf='define' d_setlocale='define' d_setlocale_r='undef' d_setnent='define' d_setnetent_r='undef' d_setpent='define' d_setpgid='define' d_setpgrp2='undef' d_setpgrp='define' d_setprior='define' d_setproctitle='undef' d_setprotoent_r='undef' d_setpwent='define' d_setpwent_r='undef' d_setregid='define' d_setresgid='undef' d_setresuid='undef' d_setreuid='define' d_setrgid='define' d_setruid='define' d_setsent='define' d_setservent_r='undef' d_setsid='define' d_setvbuf='define' d_sfio='undef' d_shm='define' d_shmat='define' d_shmatprototype='define' d_shmctl='define' d_shmdt='define' d_shmget='define' d_sigaction='define' d_sigprocmask='define' d_sigsetjmp='define' d_sockatmark='undef' d_sockatmarkproto='undef' d_socket='define' d_socklen_t='undef' d_sockpair='define' d_socks5_init='undef' d_sqrtl='undef' d_srand48_r='undef' d_srandom_r='undef' d_sresgproto='undef' d_sresuproto='undef' d_statblks='define' d_statfs_f_flags='define' d_statfs_s='define' d_statvfs='undef' d_stdio_cnt_lval='define' d_stdio_ptr_lval='define' d_stdio_ptr_lval_nochange_cnt='define' d_stdio_ptr_lval_sets_cnt='undef' d_stdio_stream_array='define' d_stdiobase='define' d_stdstdio='define' d_strchr='define' d_strcoll='define' d_strctcpy='define' d_strerrm='strerror(e)' d_strerror='define' d_strerror_r='undef' d_strftime='define' d_strtod='define' d_strtol='define' d_strtold='undef' d_strtoll='define' d_strtoq='define' d_strtoul='define' d_strtoull='define' d_strtouq='define' d_strxfrm='define' d_suidsafe='undef' d_symlink='define' d_syscall='define' d_syscallproto='define' d_sysconf='define' d_sysernlst='' d_syserrlst='define' d_system='define' d_tcgetpgrp='define' d_tcsetpgrp='define' d_telldir='define' d_telldirproto='define' d_time='define' d_times='define' d_tm_tm_gmtoff='define' d_tm_tm_zone='define' d_tmpnam_r='undef' d_truncate='define' d_ttyname_r='undef' d_tzname='define' d_u32align='define' d_ualarm='define' d_umask='define' d_uname='define' d_union_semun='define' d_unordered='undef' d_usleep='define' d_usleepproto='define' d_ustat='undef' d_vendorarch='undef' d_vendorbin='undef' d_vendorlib='undef' d_vendorscript='undef' d_vfork='undef' d_void_closedir='undef' d_voidsig='define' d_voidtty='' d_volatile='define' d_vprintf='define' d_wait4='define' d_waitpid='define' d_wcstombs='define' d_wctomb='define' d_writev='define' d_xenix='undef' date='date' db_hashtype='u_int32_t' db_prefixtype='size_t' db_version_major='1' db_version_minor='0' db_version_patch='0' defvoidused='15' direntrytype='struct dirent' dlext='none' doublesize='8' drand01='specrand()' drand48_r_proto='0' eagain='EAGAIN' ebcdic='undef' echo='echo' egrep='egrep' emacs='' endgrent_r_proto='0' endhostent_r_proto='0' endnetent_r_proto='0' endprotoent_r_proto='0' endpwent_r_proto='0' endservent_r_proto='0' eunicefix=':' exe_ext='' expr='expr' extensions='Data/Dumper Devel/Peek Digest/MD5 IO MIME/Base64 Sys/Hostname Time/HiRes attrs Errno' extras='' fflushNULL='define' fflushall='undef' find='' firstmakefile='GNUmakefile' flex='' fpossize='8' fpostype='fpos_t' freetype='void' from=':' full_ar='/usr/bin/ar' full_csh='/bin/csh' full_sed='/usr/bin/sed' gccansipedantic='' gccosandvers='' gccversion='3.3 20030304 (Apple Computer, Inc. build 1493)' getgrent_r_proto='0' getgrgid_r_proto='0' getgrnam_r_proto='0' gethostbyaddr_r_proto='0' gethostbyname_r_proto='0' gethostent_r_proto='0' getlogin_r_proto='0' getnetbyaddr_r_proto='0' getnetbyname_r_proto='0' getnetent_r_proto='0' getprotobyname_r_proto='0' getprotobynumber_r_proto='0' getprotoent_r_proto='0' getpwent_r_proto='0' getpwnam_r_proto='0' getpwuid_r_proto='0' getservbyname_r_proto='0' getservbyport_r_proto='0' getservent_r_proto='0' getspnam_r_proto='0' gidformat='"lu"' gidsign='1' gidsize='4' gidtype='gid_t' glibpth='/lib /usr/lib lib' gmake='gmake' gmtime_r_proto='0' gnulibc_version='' grep='grep' groupcat='cat /etc/group' groupstype='gid_t' gzip='gzip' h_fcntl='false' h_sysfile='true' hint='recommended' hostcat='cat /etc/hosts' html1dir=' ' html1direxp='' html3dir=' ' html3direxp='' i16size='2' i16type='short' i32size='4' i32type='long' i64size='8' i64type='long long' i8size='1' i8type='char' i_arpainet='define' i_bsdioctl='' i_crypt='undef' i_db='define' i_dbm='undef' i_dirent='define' i_dld='undef' i_dlfcn='define' i_fcntl='undef' i_float='define' i_fp='undef' i_fp_class='undef' i_gdbm='undef' i_grp='define' i_ieeefp='undef' i_inttypes='define' i_langinfo='undef' i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' i_malloc='undef' i_math='define' i_memory='undef' i_mntent='undef' i_ndbm='define' i_netdb='define' i_neterrno='undef' i_netinettcp='define' i_niin='define' i_poll='undef' i_prot='undef' i_pthread='define' i_pwd='define' i_rpcsvcdbm='undef' i_sfio='undef' i_sgtty='undef' i_shadow='undef' i_socks='undef' i_stdarg='define' i_stddef='define' i_stdlib='define' i_string='define' i_sunmath='undef' i_sysaccess='undef' i_sysdir='define' i_sysfile='define' i_sysfilio='define' i_sysin='undef' i_sysioctl='define' i_syslog='define' i_sysmman='define' i_sysmode='undef' i_sysmount='define' i_sysndir='undef' i_sysparam='define' i_sysresrc='define' i_syssecrt='undef' i_sysselct='define' i_syssockio='define' i_sysstat='define' i_sysstatfs='undef' i_sysstatvfs='undef' i_systime='define' i_systimek='undef' i_systimes='define' i_systypes='define' i_sysuio='define' i_sysun='define' i_sysutsname='define' i_sysvfs='undef' i_syswait='define' i_termio='undef' i_termios='define' i_time='undef' i_unistd='define' i_ustat='undef' i_utime='define' i_values='undef' i_varargs='undef' i_varhdr='stdarg.h' i_vfork='undef' ignore_versioned_solibs='' inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' installbin='bin' installhtml1dir='' installhtml3dir='' installman1dir='share/man/man1' installman3dir='share/man/man3' installprefix='/usr/local' installprefixexp='/usr/local' installscript='bin' installsitearch='lib/perl5/site_perl/5.8.1/perlbench' installsitebin='bin' installsitehtml1dir='' installsitehtml3dir='' installsitelib='lib/perl5/site_perl/5.8.1' installsiteman1dir='share/man/man1' installsiteman3dir='share/man/man3' installsitescript='bin' installstyle='lib/perl5' installusrbinperl='undef' installvendorarch='' installvendorbin='' installvendorhtml1dir='' installvendorhtml3dir='' installvendorlib='' installvendorman1dir='' installvendorman3dir='' installvendorscript='' intsize='4' issymlink='/bin/test -h' ivdformat='"ld"' ivsize='4' ivtype='long' known_extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared' ksh='' ld='ld' lddlflags='' ldflags='' ldflags_uselargefiles='' ldlibpthname='LD_LIBRARY_PATH' less='less' lib_ext='.a' libc='/usr/lib/libc.so' libperl='libperl.a' libsdirs=' /usr/lib' libsfiles=' libm.so libc.so' libsfound=' /usr/lib/libm.so /usr/lib/libc.so' libspath=' /usr/lib' libswanted='sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb bsd BSD' libswanted_uselargefiles='' line='' lint='' lkflags='' ln='ln' lns='ln -s' localtime_r_proto='0' locincpth='include' loclibpth='lib' longdblsize='8' longlongsize='8' longsize='4' lp='' lpr='' ls='ls' lseeksize='8' lseektype='off_t' mail='' mailx='' make='make' make_set_make='#' mallocobj='' mallocsrc='' malloctype='void *' man1dir='share/man/man1' man1direxp='share/man/man1' man1ext='1' man3dir='share/man/man3' man3direxp='share/man/man3' man3ext='3' mips_type='' mistrustnm='' mkdir='mkdir' mmaptype='caddr_t' modetype='mode_t' more='more' multiarch='define' mv='' myarchname='ppc-perlbench' mydomain='.local.' myhostname='noa' myuname='perlbench noa.headgear.org. 6.6 perlbench kernel version 6.6: thu may 1 21:48:54 pdt 2003; root:xnuxnu-344.34.obj~1release_ppc power macintosh powerpc ' n='-n' need_va_copy='undef' netdb_hlen_type='int' netdb_host_type='const char *' netdb_name_type='const char *' netdb_net_type='long' nm='nm' nm_opt='-p' nm_so_opt='' nonxs_ext='Errno' nroff='nroff' nvEUformat='"E"' nvFUformat='"F"' nvGUformat='"G"' nv_preserves_uv_bits='32' nveformat='"e"' nvfformat='"f"' nvgformat='"g"' nvsize='8' nvtype='double' o_nonblock='O_NONBLOCK' obj_ext='.o' old_pthread_create_joinable='' optimize='-Os' orderlib='false' otherlibdirs=' ' package='perl5' pager='/sw/bin/less' passcat='cat /etc/passwd' patchlevel='8' path_sep=':' perl5='/usr/bin/perl' perl='' perl_patchlevel='' perl_revision='5' perl_subversion='3' perl_version='8' perladmin='cloyce@noa' perllibs='-lm -lc' perlpath='bin/perl' pg='pg' phostname='hostname' pidtype='pid_t' plibpth='' pmake='' pr='' prefixexp='/usr/local' privlib='lib/perl5/5.8.1' procselfexe='' prototype='define' ptrsize='4' quadkind='3' quadtype='long long' randbits='48' randfunc='drand48' random_r_proto='0' randseedtype='long' ranlib='/usr/bin/ar ts' rd_nodata='-1' readdir64_r_proto='0' readdir_r_proto='0' revision='5' rm='rm' rmail='' run='' runnm='true' sPRIEUldbl='"E"' sPRIFUldbl='"F"' sPRIGUldbl='"G"' sPRIXU64='"llX"' sPRId64='"lld"' sPRIeldbl='"e"' sPRIfldbl='"f"' sPRIgldbl='"g"' sPRIi64='"lli"' sPRIo64='"llo"' sPRIu64='"llu"' sPRIx64='"llx"' sSCNfldbl='"f"' sched_yield='sched_yield()' scriptdir='bin' scriptdirexp='bin' sed='sed' seedfunc='srand48' selectminbits='32' selecttype='fd_set *' sendmail='' setgrent_r_proto='0' sethostent_r_proto='0' setlocale_r_proto='0' setnetent_r_proto='0' setprotoent_r_proto='0' setpwent_r_proto='0' setservent_r_proto='0' sh='/bin/sh' shar='' shmattype='void *' shortsize='2' shrpenv='' sig_count='32' sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 IOT ' sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "URG", "STOP", "TSTP", "CONT", "CHLD", "TTIN", "TTOU", "IO", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "INFO", "USR1", "USR2", "IOT", 0' sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 6 ' sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 6, 0' sig_size='33' signal_t='void' sitearch='lib/perl5/site_perl/5.8.1/perlbench' sitearchexp='lib/perl5/site_perl/5.8.1/perlbench' sitebin='bin' sitebinexp='bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' sitelib='lib/perl5/site_perl/5.8.1' sitelib_stem='lib/perl5/site_perl' sitelibexp='lib/perl5/site_perl/5.8.1' siteman1dir='share/man/man1' siteman1direxp='share/man/man1' siteman3dir='share/man/man3' siteman3direxp='share/man/man3' siteprefix='/usr/local' siteprefixexp='/usr/local' sitescript='bin' sitescriptexp='bin' sizesize='4' sizetype='size_t' sleep='' smail='' sockethdr='' socketlib='' socksizetype='int' sort='sort' spackage='Perl5' spitshell='cat' srand48_r_proto='0' srandom_r_proto='0' src='.' ssizetype='ssize_t' startperl='#!bin/perl' stdchar='char' stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)' stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)' stdio_cnt='((fp)->_r)' stdio_filbuf='' stdio_ptr='((fp)->_p)' stdio_stream_array='__sF' strerror_r_proto='0' strings='/usr/include/string.h' submit='' subversion='3' sysman='/usr/share/man/man1' tail='' tar='' targetarch='' tbl='' tee='' test='test' timeincl='/usr/include/sys/time.h ' timetype='time_t' tmpnam_r_proto='0' to=':' touch='touch' tr='tr' trnl='\n' troff='' ttyname_r_proto='0' u16size='2' u16type='unsigned short' u32size='4' u32type='unsigned long' u64size='8' u64type='unsigned long long' u8size='1' u8type='unsigned char' uidformat='"lu"' uidsign='1' uidsize='4' uidtype='uid_t' uname='uname' uniq='uniq' uquadtype='unsigned long long' use5005threads='undef' use64bitall='undef' use64bitint='undef' usecrosscompile='undef' usedl='undef' usefaststdio='define' useithreads='undef' uselargefiles='define' uselongdouble='undef' usemorebits='undef' usemultiplicity='undef' usemymalloc='n' usenm='true' useopcode='true' useperlio='define' useposix='true' usereentrant='undef' usesfio='false' useshrplib='false' usesocks='undef' usethreads='undef' usevendorprefix='undef' usevfork='false' usrinc='/usr/include' uuname='' uvXUformat='"lX"' uvoformat='"lo"' uvsize='4' uvtype='unsigned long' uvuformat='"lu"' uvxformat='"lx"' vendorarch='' vendorarchexp='' vendorbin='' vendorbinexp='' vendorhtml1dir=' ' vendorhtml1direxp='' vendorhtml3dir=' ' vendorhtml3direxp='' vendorlib='' vendorlib_stem='' vendorlibexp='' vendorman1dir=' ' vendorman1direxp='' vendorman3dir=' ' vendorman3direxp='' vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' version='5.8.5' version_patchlevel_string='version 8 subversion 1' versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' yacc='yacc' yaccflags='' zcat='' zip='zip' !END! # Search for it in the big string sub fetch_string { my($self, $key) = @_; my $quote_type = "'"; my $marker = "$key="; # Check for the common case, ' delimited my $start = index($Config_SH, "\n$marker$quote_type"); # If that failed, check for " delimited if ($start == -1) { $quote_type = '"'; $start = index($Config_SH, "\n$marker$quote_type"); } return undef if ( ($start == -1) && # in case it's first (substr($Config_SH, 0, length($marker)) ne $marker) ); if ($start == -1) { # It's the very first thing we found. Skip $start forward # and figure out the quote mark after the =. $start = length($marker) + 1; $quote_type = substr($Config_SH, $start - 1, 1); } else { $start += length($marker) + 2; } my $value = substr($Config_SH, $start, index($Config_SH, "$quote_type\n", $start) - $start); # If we had a double-quote, we'd better eval it so escape # sequences and such can be interpolated. Since the incoming # value is supposed to follow shell rules and not perl rules, # we escape any perl variable markers if ($quote_type eq '"') { $value =~ s/\$/\\\$/g; $value =~ s/\@/\\\@/g; eval "\$value = \"$value\""; } # So we can say "if $Config{'foo'}". $value = undef if $value eq 'undef'; $self->{$key} = $value; # cache it } sub fetch_virtual { my($self, $key) = @_; my $value; if ($key =~ /^((?:cc|ld)flags|libs(?:wanted)?)_nolargefiles/) { # These are purely virtual, they do not exist, but need to # be computed on demand for largefile-incapable extensions. my $new_key = "${1}_uselargefiles"; $value = $Config{$1}; my $withlargefiles = $Config{$new_key}; if ($new_key =~ /^(?:cc|ld)flags_/) { $value =~ s/\Q$withlargefiles\E\b//; } elsif ($new_key =~ /^libs/) { my @lflibswanted = split(' ', $Config{libswanted_uselargefiles}); if (@lflibswanted) { my %lflibswanted; @lflibswanted{@lflibswanted} = (); if ($new_key =~ /^libs_/) { my @libs = grep { /^-l(.+)/ && not exists $lflibswanted{$1} } split(' ', $Config{libs}); $Config{libs} = join(' ', @libs); } elsif ($new_key =~ /^libswanted_/) { my @libswanted = grep { not exists $lflibswanted{$_} } split(' ', $Config{libswanted}); $Config{libswanted} = join(' ', @libswanted); } } } } $self->{$key} = $value; } sub FETCH { my($self, $key) = @_; # check for cached value (which may be undef so we use exists not defined) return $self->{$key} if exists $self->{$key}; $self->fetch_string($key); return $self->{$key} if exists $self->{$key}; $self->fetch_virtual($key); # Might not exist, in which undef is correct. return $self->{$key}; } my $prevpos = 0; sub FIRSTKEY { $prevpos = 0; substr($Config_SH, 0, index($Config_SH, '=') ); } sub NEXTKEY { # Find out how the current key's quoted so we can skip to its end. my $quote = substr($Config_SH, index($Config_SH, "=", $prevpos)+1, 1); my $pos = index($Config_SH, qq($quote\n), $prevpos) + 2; my $len = index($Config_SH, "=", $pos) - $pos; $prevpos = $pos; $len > 0 ? substr($Config_SH, $pos, $len) : undef; } sub EXISTS { return 1 if exists($_[0]->{$_[1]}); return(index($Config_SH, "\n$_[1]='") != -1 or substr($Config_SH, 0, length($_[1])+2) eq "$_[1]='" or index($Config_SH, "\n$_[1]=\"") != -1 or substr($Config_SH, 0, length($_[1])+2) eq "$_[1]=\"" or $_[1] =~ /^(?:(?:cc|ld)flags|libs(?:wanted)?)_nolargefiles$/ ); } sub STORE { die "\%Config::Config is read-only\n" } *DELETE = \&STORE; *CLEAR = \&STORE; sub config_sh { $Config_SH } sub config_re { my $re = shift; return map { chomp; $_ } grep /^$re=/, split /^/, $Config_SH; } sub config_vars { foreach (@_) { if (/\W/) { my @matches = config_re($_); print map "$_\n", @matches ? @matches : "$_: not found"; } else { my $v = (exists $Config{$_}) ? $Config{$_} : 'UNKNOWN'; $v = 'undef' unless defined $v; print "$_='$v';\n"; } } } sub TIEHASH { bless $_[1], $_[0]; } # avoid Config..Exporter..UNIVERSAL search for DESTROY then AUTOLOAD sub DESTROY { } my $i = 0; foreach my $c (4,3,2) { $i |= ord($c); $i <<= 8 } $i |= ord(1); my $value = join('', unpack('aaaa', pack('L!', $i))); tie %Config, 'Config', { 'archlibexp' => 'lib/perl5/5.8.1/perlbench', 'archname' => 'perlbench', 'cc' => 'cc', 'ccflags' => '-DSPEC_CPU -DPERL_CORE', 'cppflags' => '-DSPEC_CPU -DPERL_CORE', 'dlsrc' => 'dl_none.xs', 'dynamic_ext' => '', 'installarchlib' => 'lib/perl5/5.8.1/perlbench', 'installprivlib' => 'lib/perl5/5.8.1', 'libpth' => '/usr/lib', 'libs' => '-lm -lc', 'osname' => 'perlbench', 'osvers' => '2005', 'prefix' => '/usr/local', 'privlibexp' => 'lib/perl5/5.8.1', 'sharpbang' => '#!', 'shsharp' => 'true', 'so' => 'so', 'startsh' => '#!/bin/sh', 'static_ext' => 'Data/Dumper Devel/Peek Digest/MD5 IO MIME/Base64 Sys/Hostname Time/HiRes attrs Storable', byteorder => $value, }; 1; ================================================ FILE: tests/perlbench/lib/Cwd.pm ================================================ package Cwd; $VERSION = $VERSION = '2.19'; =head1 NAME Cwd - get pathname of current working directory =head1 SYNOPSIS use Cwd; my $dir = getcwd; use Cwd 'abs_path'; my $abs_path = abs_path($file); =head1 DESCRIPTION This module provides functions for determining the pathname of the current working directory. It is recommended that getcwd (or another *cwd() function) be used in I code to ensure portability. By default, it exports the functions cwd(), getcwd(), fastcwd(), and fastgetcwd() (and, on Win32, getdcwd()) into the caller's namespace. =head2 getcwd and friends Each of these functions are called without arguments and return the absolute path of the current working directory. =over 4 =item getcwd my $cwd = getcwd(); Returns the current working directory. Re-implements the getcwd(3) (or getwd(3)) functions in Perl. =item cwd my $cwd = cwd(); The cwd() is the most natural form for the current architecture. For most systems it is identical to `pwd` (but without the trailing line terminator). =item fastcwd my $cwd = fastcwd(); A more dangerous version of getcwd(), but potentially faster. It might conceivably chdir() you out of a directory that it can't chdir() you back into. If fastcwd encounters a problem it will return undef but will probably leave you in a different directory. For a measure of extra security, if everything appears to have worked, the fastcwd() function will check that it leaves you in the same directory that it started in. If it has changed it will C with the message "Unstable directory path, current directory changed unexpectedly". That should never happen. =item fastgetcwd my $cwd = fastgetcwd(); The fastgetcwd() function is provided as a synonym for cwd(). =item getdcwd my $cwd = getdcwd(); my $cwd = getdcwd('C:'); The getdcwd() function is also provided on Win32 to get the current working directory on the specified drive, since Windows maintains a separate current working directory for each drive. If no drive is specified then the current drive is assumed. This function simply calls the Microsoft C library _getdcwd() function. =back =head2 abs_path and friends These functions are exported only on request. They each take a single argument and return the absolute pathname for it. If no argument is given they'll use the current working directory. =over 4 =item abs_path my $abs_path = abs_path($file); Uses the same algorithm as getcwd(). Symbolic links and relative-path components ("." and "..") are resolved to return the canonical pathname, just like realpath(3). =item realpath my $abs_path = realpath($file); A synonym for abs_path(). =item fast_abs_path my $abs_path = fast_abs_path($file); A more dangerous, but potentially faster version of abs_path. =back =head2 $ENV{PWD} If you ask to override your chdir() built-in function, use Cwd qw(chdir); then your PWD environment variable will be kept up to date. Note that it will only be kept up to date if all packages which use chdir import it from Cwd. =head1 NOTES =over 4 =item * Since the path seperators are different on some operating systems ('/' on Unix, ':' on MacPerl, etc...) we recommend you use the File::Spec modules wherever portability is a concern. =item * Actually, on Mac OS, the C, C and C functions are all aliases for the C function, which, on Mac OS, calls `pwd`. Likewise, the C function is an alias for C. =back =head1 AUTHOR Originally by the perl5-porters. Maintained by Ken Williams =head1 SEE ALSO L =cut use strict; use Exporter; use vars qw(@ISA @EXPORT @EXPORT_OK); @ISA = qw/ Exporter /; @EXPORT = qw(cwd getcwd fastcwd fastgetcwd); push @EXPORT, qw(getdcwd) if $^O eq 'MSWin32'; @EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath); # sys_cwd may keep the builtin command # All the functionality of this module may provided by builtins, # there is no sense to process the rest of the file. # The best choice may be to have this in BEGIN, but how to return from BEGIN? if ($^O eq 'os2') { local $^W = 0; *cwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd; *getcwd = \&cwd; *fastgetcwd = \&cwd; *fastcwd = \&cwd; *fast_abs_path = \&sys_abspath if defined &sys_abspath; *abs_path = \&fast_abs_path; *realpath = \&fast_abs_path; *fast_realpath = \&fast_abs_path; return 1; } eval { require XSLoader; local $^W = 0; XSLoader::load('Cwd'); }; # Big nasty table of function aliases my %METHOD_MAP = ( VMS => { cwd => '_vms_cwd', getcwd => '_vms_cwd', fastcwd => '_vms_cwd', fastgetcwd => '_vms_cwd', abs_path => '_vms_abs_path', fast_abs_path => '_vms_abs_path', }, MSWin32 => { # We assume that &_NT_cwd is defined as an XSUB or in the core. cwd => '_NT_cwd', getcwd => '_NT_cwd', fastcwd => '_NT_cwd', fastgetcwd => '_NT_cwd', abs_path => 'fast_abs_path', realpath => 'fast_abs_path', }, dos => { cwd => '_dos_cwd', getcwd => '_dos_cwd', fastgetcwd => '_dos_cwd', fastcwd => '_dos_cwd', abs_path => 'fast_abs_path', }, qnx => { cwd => '_qnx_cwd', getcwd => '_qnx_cwd', fastgetcwd => '_qnx_cwd', fastcwd => '_qnx_cwd', abs_path => '_qnx_abs_path', fast_abs_path => '_qnx_abs_path', }, cygwin => { getcwd => 'cwd', fastgetcwd => 'cwd', fastcwd => 'cwd', abs_path => 'fast_abs_path', realpath => 'fast_abs_path', }, epoc => { cwd => '_epoc_cwd', getcwd => '_epoc_cwd', fastgetcwd => '_epoc_cwd', fastcwd => '_epoc_cwd', abs_path => 'fast_abs_path', }, MacOS => { getcwd => 'cwd', fastgetcwd => 'cwd', fastcwd => 'cwd', abs_path => 'fast_abs_path', }, ); $METHOD_MAP{NT} = $METHOD_MAP{MSWin32}; $METHOD_MAP{nto} = $METHOD_MAP{qnx}; # Find the pwd command in the expected locations. We assume these # are safe. This prevents _backtick_pwd() consulting $ENV{PATH} # so everything works under taint mode. my $pwd_cmd; foreach my $try ('/bin/pwd', '/usr/bin/pwd', '/QOpenSys/bin/pwd', # OS/400 PASE. ) { if( -x $try ) { $pwd_cmd = $try; last; } } unless ($pwd_cmd) { # Isn't this wrong? _backtick_pwd() will fail if somenone has # pwd in their path but it is not /bin/pwd or /usr/bin/pwd? # See [perl #16774]. --jhi $pwd_cmd = 'pwd'; } # Lazy-load Carp sub _carp { require Carp; Carp::carp(@_) } sub _croak { require Carp; Carp::croak(@_) } # The 'natural and safe form' for UNIX (pwd may be setuid root) sub _backtick_pwd { local @ENV{qw(PATH IFS CDPATH ENV BASH_ENV)}; my $cwd = `$pwd_cmd`; # Belt-and-suspenders in case someone said "undef $/". local $/ = "\n"; # `pwd` may fail e.g. if the disk is full chomp($cwd) if defined $cwd; $cwd; } # Since some ports may predefine cwd internally (e.g., NT) # we take care not to override an existing definition for cwd(). unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) { # The pwd command is not available in some chroot(2)'ed environments my $sep = $Config::Config{path_sep} || ':'; if( $^O eq 'MacOS' || (defined $ENV{PATH} && grep { -x "$_/pwd" } split($sep, $ENV{PATH})) ) { *cwd = \&_backtick_pwd; } else { *cwd = \&getcwd; } } # set a reasonable (and very safe) default for fastgetcwd, in case it # isn't redefined later (20001212 rspier) *fastgetcwd = \&cwd; # By Brandon S. Allbery # # Usage: $cwd = getcwd(); sub getcwd { abs_path('.'); } # By John Bazik # # Usage: $cwd = &fastcwd; # # This is a faster version of getcwd. It's also more dangerous because # you might chdir out of a directory that you can't chdir back into. sub fastcwd { my($odev, $oino, $cdev, $cino, $tdev, $tino); my(@path, $path); local(*DIR); my($orig_cdev, $orig_cino) = stat('.'); ($cdev, $cino) = ($orig_cdev, $orig_cino); for (;;) { my $direntry; ($odev, $oino) = ($cdev, $cino); CORE::chdir('..') || return undef; ($cdev, $cino) = stat('.'); last if $odev == $cdev && $oino == $cino; opendir(DIR, '.') || return undef; for (;;) { $direntry = readdir(DIR); last unless defined $direntry; next if $direntry eq '.'; next if $direntry eq '..'; ($tdev, $tino) = lstat($direntry); last unless $tdev != $odev || $tino != $oino; } closedir(DIR); return undef unless defined $direntry; # should never happen unshift(@path, $direntry); } $path = '/' . join('/', @path); if ($^O eq 'apollo') { $path = "/".$path; } # At this point $path may be tainted (if tainting) and chdir would fail. # Untaint it then check that we landed where we started. $path =~ /^(.*)\z/s # untaint && CORE::chdir($1) or return undef; ($cdev, $cino) = stat('.'); die "Unstable directory path, current directory changed unexpectedly" if $cdev != $orig_cdev || $cino != $orig_cino; $path; } # Keeps track of current working directory in PWD environment var # Usage: # use Cwd 'chdir'; # chdir $newdir; my $chdir_init = 0; sub chdir_init { if ($ENV{'PWD'} and $^O ne 'os2' and $^O ne 'dos' and $^O ne 'MSWin32') { my($dd,$di) = stat('.'); my($pd,$pi) = stat($ENV{'PWD'}); if (!defined $dd or !defined $pd or $di != $pi or $dd != $pd) { $ENV{'PWD'} = cwd(); } } else { my $wd = cwd(); $wd = Win32::GetFullPathName($wd) if $^O eq 'MSWin32'; $ENV{'PWD'} = $wd; } # Strip an automounter prefix (where /tmp_mnt/foo/bar == /foo/bar) if ($^O ne 'MSWin32' and $ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|s) { my($pd,$pi) = stat($2); my($dd,$di) = stat($1); if (defined $pd and defined $dd and $di == $pi and $dd == $pd) { $ENV{'PWD'}="$2$3"; } } $chdir_init = 1; } sub chdir { my $newdir = @_ ? shift : ''; # allow for no arg (chdir to HOME dir) $newdir =~ s|///*|/|g unless $^O eq 'MSWin32'; chdir_init() unless $chdir_init; my $newpwd; if ($^O eq 'MSWin32') { # get the full path name *before* the chdir() $newpwd = Win32::GetFullPathName($newdir); } return 0 unless CORE::chdir $newdir; if ($^O eq 'VMS') { return $ENV{'PWD'} = $ENV{'DEFAULT'} } elsif ($^O eq 'MacOS') { return $ENV{'PWD'} = cwd(); } elsif ($^O eq 'MSWin32') { $ENV{'PWD'} = $newpwd; return 1; } if ($newdir =~ m#^/#s) { $ENV{'PWD'} = $newdir; } else { my @curdir = split(m#/#,$ENV{'PWD'}); @curdir = ('') unless @curdir; my $component; foreach $component (split(m#/#, $newdir)) { next if $component eq '.'; pop(@curdir),next if $component eq '..'; push(@curdir,$component); } $ENV{'PWD'} = join('/',@curdir) || '/'; } 1; } # In case the XS version doesn't load. *abs_path = \&_perl_abs_path unless defined &abs_path; sub _perl_abs_path(;$) { my $start = @_ ? shift : '.'; my($dotdots, $cwd, @pst, @cst, $dir, @tst); unless (@cst = stat( $start )) { _carp("stat($start): $!"); return ''; } unless (-d _) { # Make sure we can be invoked on plain files, not just directories. # NOTE that this routine assumes that '/' is the only directory separator. my ($dir, $file) = $start =~ m{^(.*)/(.+)$} or return cwd() . '/' . $start; if (-l _) { my $link_target = readlink($start); die "Can't resolve link $start: $!" unless defined $link_target; require File::Spec; $link_target = $dir . '/' . $link_target unless File::Spec->file_name_is_absolute($link_target); return abs_path($link_target); } return abs_path($dir) . '/' . $file; } $cwd = ''; $dotdots = $start; do { $dotdots .= '/..'; @pst = @cst; local *PARENT; unless (opendir(PARENT, $dotdots)) { _carp("opendir($dotdots): $!"); return ''; } unless (@cst = stat($dotdots)) { _carp("stat($dotdots): $!"); closedir(PARENT); return ''; } if ($pst[0] == $cst[0] && $pst[1] == $cst[1]) { $dir = undef; } else { do { unless (defined ($dir = readdir(PARENT))) { _carp("readdir($dotdots): $!"); closedir(PARENT); return ''; } $tst[0] = $pst[0]+1 unless (@tst = lstat("$dotdots/$dir")) } while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] || $tst[1] != $pst[1]); } $cwd = (defined $dir ? "$dir" : "" ) . "/$cwd" ; closedir(PARENT); } while (defined $dir); chop($cwd) unless $cwd eq '/'; # drop the trailing / $cwd; } # added function alias for those of us more # used to the libc function. --tchrist 27-Jan-00 *realpath = \&abs_path; my $Curdir; sub fast_abs_path { my $cwd = getcwd(); require File::Spec; my $path = @_ ? shift : ($Curdir ||= File::Spec->curdir); # Detaint else we'll explode in taint mode. This is safe because # we're not doing anything dangerous with it. ($path) = $path =~ /(.*)/; ($cwd) = $cwd =~ /(.*)/; unless (-e $path) { _croak("$path: No such file or directory"); } unless (-d _) { # Make sure we can be invoked on plain files, not just directories. my ($vol, $dir, $file) = File::Spec->splitpath($path); return File::Spec->catfile($cwd, $path) unless length $dir; if (-l $path) { my $link_target = readlink($path); die "Can't resolve link $path: $!" unless defined $link_target; $link_target = File::Spec->catpath($vol, $dir, $link_target) unless File::Spec->file_name_is_absolute($link_target); return fast_abs_path($link_target); } return fast_abs_path(File::Spec->catpath($vol, $dir, '')) . '/' . $file; } if (!CORE::chdir($path)) { _croak("Cannot chdir to $path: $!"); } my $realpath = getcwd(); if (! ((-d $cwd) && (CORE::chdir($cwd)))) { _croak("Cannot chdir back to $cwd: $!"); } $realpath; } # added function alias to follow principle of least surprise # based on previous aliasing. --tchrist 27-Jan-00 *fast_realpath = \&fast_abs_path; # --- PORTING SECTION --- # VMS: $ENV{'DEFAULT'} points to default directory at all times # 06-Mar-1996 Charles Bailey bailey@newman.upenn.edu # Note: Use of Cwd::chdir() causes the logical name PWD to be defined # in the process logical name table as the default device and directory # seen by Perl. This may not be the same as the default device # and directory seen by DCL after Perl exits, since the effects # the CRTL chdir() function persist only until Perl exits. sub _vms_cwd { return $ENV{'DEFAULT'}; } sub _vms_abs_path { return $ENV{'DEFAULT'} unless @_; # may need to turn foo.dir into [.foo] my $path = VMS::Filespec::pathify($_[0]); $path = $_[0] unless defined $path; return VMS::Filespec::rmsexpand($path); } sub _os2_cwd { $ENV{'PWD'} = `cmd /c cd`; chomp $ENV{'PWD'}; $ENV{'PWD'} =~ s:\\:/:g ; return $ENV{'PWD'}; } sub _win32_cwd { $ENV{'PWD'} = Win32::GetCwd(); $ENV{'PWD'} =~ s:\\:/:g ; return $ENV{'PWD'}; } *_NT_cwd = \&_win32_cwd if (!defined &_NT_cwd && defined &Win32::GetCwd); *_NT_cwd = \&_os2_cwd unless defined &_NT_cwd; sub _dos_cwd { if (!defined &Dos::GetCwd) { $ENV{'PWD'} = `command /c cd`; chomp $ENV{'PWD'}; $ENV{'PWD'} =~ s:\\:/:g ; } else { $ENV{'PWD'} = Dos::GetCwd(); } return $ENV{'PWD'}; } sub _qnx_cwd { local $ENV{PATH} = ''; local $ENV{CDPATH} = ''; local $ENV{ENV} = ''; $ENV{'PWD'} = `/usr/bin/fullpath -t`; chomp $ENV{'PWD'}; return $ENV{'PWD'}; } sub _qnx_abs_path { local $ENV{PATH} = ''; local $ENV{CDPATH} = ''; local $ENV{ENV} = ''; my $path = @_ ? shift : '.'; local *REALPATH; open(REALPATH, '-|', '/usr/bin/fullpath', '-t', $path) or die "Can't open /usr/bin/fullpath: $!"; my $realpath = ; close REALPATH; chomp $realpath; return $realpath; } sub _epoc_cwd { $ENV{'PWD'} = EPOC::getcwd(); return $ENV{'PWD'}; } # Now that all the base-level functions are set up, alias the # user-level functions to the right places if (exists $METHOD_MAP{$^O}) { my $map = $METHOD_MAP{$^O}; foreach my $name (keys %$map) { no warnings; # assignments trigger 'subroutine redefined' warning no strict 'refs'; *{$name} = \&{$map->{$name}}; } } 1; ================================================ FILE: tests/perlbench/lib/DB_File.pm ================================================ package DB_File; # This is a faked-up version of DB_File that uses in-memory hashes instead # of files. # Written for 400.perlbench in SPEC CPU2006 by Cloyce D. Spradling use strict; use Fcntl; require Tie::Hash; our %db; @DB_File::ISA = qw(Tie::Hash); sub TIEHASH { my ($self, $name) = (shift, shift); my $mode = shift || O_RDWR; if (exists $db{$name}) { $db{$name}->{'mode'} = $mode; } else { $db{$name} = { 'hash' => {}, 'mode' => $mode }; } bless $db{$name}, $self; } sub FETCH { my ($self, $key) = @_; return undef unless exists($self->{'hash'}->{$key}); return undef unless ($self->{'mode'} & (O_RDWR | O_RDONLY)); return $self->{'hash'}->{$key}; } sub STORE { my ($self, $key, $val) = @_; return undef unless ($self->{'mode'} & (O_RDWR | O_WRONLY)); $self->{'hash'}->{$key} = $val; } sub DELETE { my ($self, $key) = @_; return undef unless ($self->{'mode'} & (O_RDWR | O_WRONLY)); delete $self->{'hash'}->{$key} if exists($self->{'hash'}->{$key}); } sub CLEAR { my ($self) = @_; return undef unless ($self->{'mode'} & (O_RDWR | O_WRONLY)); $self->{'hash'} = {}; } sub EXISTS { my ($self, $key) = @_; return undef unless ($self->{'mode'} & (O_RDWR | O_RDONLY)); return exists($self->{'hash'}->{$key}); } sub FIRSTKEY { my ($self) = shift; my $a = keys %{$self->{'hash'}}; return each %{$self->{'hash'}}; } sub NEXTKEY { my $self = shift; return each %{$self->{'hash'}}; } sub DESTROY { my $self = shift; # Do nothing; untieing a hash doesn't make its file go away! } sub ftest { my ($path) = @_; return 1 if exists $db{$path}; return undef; } sub rename { my ($old, $new) = @_; return undef unless exists($db{$old}); $db{$new} = $db{$old}; return 1; } ================================================ FILE: tests/perlbench/lib/Date/Format.pm ================================================ # Date::Format $Id: //depot/TimeDate/lib/Date/Format.pm#9 $ # # Copyright (c) 1995-1999 Graham Barr. All rights reserved. This program is free # software; you can redistribute it and/or modify it under the same terms # as Perl itself. package Date::Format; use strict; use vars qw(@EXPORT @ISA $VERSION); require Exporter; $VERSION = "2.22"; @ISA = qw(Exporter); @EXPORT = qw(time2str strftime ctime asctime); sub time2str ($;$$) { Date::Format::Generic->time2str(@_); } sub strftime ($\@;$) { Date::Format::Generic->strftime(@_); } sub ctime ($;$) { my($t,$tz) = @_; Date::Format::Generic->time2str("%a %b %e %T %Y\n", $t, $tz); } sub asctime (\@;$) { my($t,$tz) = @_; Date::Format::Generic->strftime("%a %b %e %T %Y\n", $t, $tz); } ## ## ## package Date::Format::Generic; use vars qw($epoch $tzname); use Time::Zone; use Time::Local; sub ctime { my($me,$t,$tz) = @_; $me->time2str("%a %b %e %T %Y\n", $t, $tz); } sub asctime { my($me,$t,$tz) = @_; $me->strftime("%a %b %e %T %Y\n", $t, $tz); } sub _subs { my $fn; $_[1] =~ s/ %(O?[%a-zA-Z]) / ($_[0]->can("format_$1") || sub { $1 })->($_[0]); /sgeox; $_[1]; } sub strftime { my($pkg,$fmt,$time); ($pkg,$fmt,$time,$tzname) = @_; my $me = ref($pkg) ? $pkg : bless []; if(defined $tzname) { $tzname = uc $tzname; $tzname = sprintf("%+05d",$tzname) unless($tzname =~ /\D/); $epoch = timegm(@{$time}[0..5]); @$me = gmtime($epoch + tz_offset($tzname) - tz_offset()); } else { @$me = @$time; undef $epoch; } _subs($me,$fmt); } sub time2str { my($pkg,$fmt,$time); ($pkg,$fmt,$time,$tzname) = @_; my $me = ref($pkg) ? $pkg : bless [], $pkg; $epoch = $time; if(defined $tzname) { $tzname = uc $tzname; $tzname = sprintf("%+05d",$tzname) unless($tzname =~ /\D/); $time += tz_offset($tzname); @$me = gmtime($time); } else { # CPU2006 is always on GMT # @$me = localtime($time); @$me = gmtime($time); } $me->[9] = $time; _subs($me,$fmt); } my(@DoW,@MoY,@DoWs,@MoYs,@AMPM,%format,@Dsuf); @DoW = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday); @MoY = qw(January February March April May June July August September October November December); @DoWs = map { substr($_,0,3) } @DoW; @MoYs = map { substr($_,0,3) } @MoY; @AMPM = qw(AM PM); @Dsuf = (qw(th st nd rd th th th th th th)) x 3; @Dsuf[11,12,13] = qw(th th th); @Dsuf[30,31] = qw(th st); %format = ('x' => "%m/%d/%y", 'C' => "%a %b %e %T %Z %Y", 'X' => "%H:%M:%S", ); # CPU2006 -- no locale #my @locale; #my $locale = "/usr/share/lib/locale/LC_TIME/default"; #local *LOCALE; # #if(open(LOCALE,"$locale")) # { # chop(@locale = ); # close(LOCALE); # # @MoYs = @locale[0 .. 11]; # @MoY = @locale[12 .. 23]; # @DoWs = @locale[24 .. 30]; # @DoW = @locale[31 .. 37]; # @format{"X","x","C"} = @locale[38 .. 40]; # @AMPM = @locale[41 .. 42]; # } sub wkyr { my($wstart, $wday, $yday) = @_; $wday = ($wday + 7 - $wstart) % 7; return int(($yday - $wday + 13) / 7 - 1); } ## ## these 6 formatting routins need to be *copied* into the language ## specific packages ## my @roman = ('',qw(I II III IV V VI VII VIII IX)); sub roman { my $n = shift; $n =~ s/(\d)$//; my $r = $roman[ $1 ]; if($n =~ s/(\d)$//) { (my $t = $roman[$1]) =~ tr/IVX/XLC/; $r = $t . $r; } if($n =~ s/(\d)$//) { (my $t = $roman[$1]) =~ tr/IVX/CDM/; $r = $t . $r; } if($n =~ s/(\d)$//) { (my $t = $roman[$1]) =~ tr/IVX/M../; $r = $t . $r; } $r; } sub format_a { $DoWs[$_[0]->[6]] } sub format_A { $DoW[$_[0]->[6]] } sub format_b { $MoYs[$_[0]->[4]] } sub format_B { $MoY[$_[0]->[4]] } sub format_h { $MoYs[$_[0]->[4]] } sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] } sub format_P { lc($_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0]) } sub format_d { sprintf("%02d",$_[0]->[3]) } sub format_e { sprintf("%2d",$_[0]->[3]) } sub format_H { sprintf("%02d",$_[0]->[2]) } sub format_I { sprintf("%02d",$_[0]->[2] % 12 || 12)} sub format_j { sprintf("%03d",$_[0]->[7] + 1) } sub format_k { sprintf("%2d",$_[0]->[2]) } sub format_l { sprintf("%2d",$_[0]->[2] % 12 || 12)} sub format_L { $_[0]->[4] + 1 } sub format_m { sprintf("%02d",$_[0]->[4] + 1) } sub format_M { sprintf("%02d",$_[0]->[1]) } sub format_q { sprintf("%01d",int($_[0]->[4] / 3) + 1) } sub format_s { $epoch = timegm(@{$_[0]}[0..5]) unless defined $epoch; sprintf("%d",$epoch) } sub format_S { sprintf("%02d",$_[0]->[0]) } sub format_U { wkyr(0, $_[0]->[6], $_[0]->[7]) } sub format_w { $_[0]->[6] } sub format_W { wkyr(1, $_[0]->[6], $_[0]->[7]) } sub format_y { sprintf("%02d",$_[0]->[5] % 100) } sub format_Y { sprintf("%04d",$_[0]->[5] + 1900) } sub format_Z { my $o = tz_local_offset(timelocal(@{$_[0]}[0..5])); defined $tzname ? $tzname : uc tz_name($o, $_[0]->[8]); } sub format_z { my $t = timelocal(@{$_[0]}[0..5]); my $o = defined $tzname ? tz_offset($tzname, $t) : tz_offset(undef,$t); sprintf("%+03d%02d", int($o / 3600), abs(int($o % 3600))); } sub format_c { &format_x . " " . &format_X } sub format_D { &format_m . "/" . &format_d . "/" . &format_y } sub format_r { &format_I . ":" . &format_M . ":" . &format_S . " " . &format_p } sub format_R { &format_H . ":" . &format_M } sub format_T { &format_H . ":" . &format_M . ":" . &format_S } sub format_t { "\t" } sub format_n { "\n" } sub format_o { sprintf("%2d%s",$_[0]->[3],$Dsuf[$_[0]->[3]]) } sub format_x { my $f = $format{'x'}; _subs($_[0],$f); } sub format_X { my $f = $format{'X'}; _subs($_[0],$f); } sub format_C { my $f = $format{'C'}; _subs($_[0],$f); } sub format_Od { roman(format_d(@_)) } sub format_Oe { roman(format_e(@_)) } sub format_OH { roman(format_H(@_)) } sub format_OI { roman(format_I(@_)) } sub format_Oj { roman(format_j(@_)) } sub format_Ok { roman(format_k(@_)) } sub format_Ol { roman(format_l(@_)) } sub format_Om { roman(format_m(@_)) } sub format_OM { roman(format_M(@_)) } sub format_Oq { roman(format_q(@_)) } sub format_Oy { roman(format_y(@_)) } sub format_OY { roman(format_Y(@_)) } sub format_G { int(($_[0]->[9] - 315993600) / 604800) } 1; __END__ =head1 NAME Date::Format - Date formating subroutines =head1 SYNOPSIS use Date::Format; @lt = localtime(time); print time2str($template, time); print strftime($template, @lt); print time2str($template, time, $zone); print strftime($template, @lt, $zone); print ctime(time); print asctime(@lt); print ctime(time, $zone); print asctime(@lt, $zone); =head1 DESCRIPTION This module provides routines to format dates into ASCII strings. They correspond to the C library routines C and C. =over 4 =item time2str(TEMPLATE, TIME [, ZONE]) C converts C