diff --git a/CHANGES.txt b/CHANGES.txt
index 693458a5..3f6f5b34 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,11 +1,12 @@
Tablicious Changelog
====================
-Version 0.3.6 (???)
+Version 0.3.6 (2021-07-05)
-----------------------------
* Fix multi-argout calling form of table.size. (Thanks, @rdzman!)
* Fix table dot-indexing assignment by having table.numel always return 1.
+* Support arbitrary strings as variable names (#82).
Version 0.3.5 (2020-01-30)
-----------------------------
diff --git a/DESCRIPTION b/DESCRIPTION
index 087fbadc..1961401f 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,6 +1,6 @@
Name: tablicious
-Version: 0.3.6-SNAPSHOT
-Date: 2020-01-30
+Version: 0.3.6
+Date: 2021-07-05
Title: Tablicious - Tabular/Relational data for Octave
Author: Andrew Janke
Maintainer: Andrew Janke
diff --git a/README.md b/README.md
index 41326bfe..38d875d9 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ The `string` and `categorical` support are incomplete, and less mature than the
To get started using or testing this project, install it using Octave's `pkg` function:
```octave
-pkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.3.5/tablicious-0.3.5.tar.gz
+pkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.3.6/tablicious-0.3.6.tar.gz
pkg load tablicious
```
diff --git a/doc/Tablicious.qch b/doc/Tablicious.qch
index c27cfd3c..51c7ff9a 100644
Binary files a/doc/Tablicious.qch and b/doc/Tablicious.qch differ
diff --git a/doc/tablicious.html b/doc/tablicious.html
index 04eb9294..aa5b7d58 100644
--- a/doc/tablicious.html
+++ b/doc/tablicious.html
@@ -3,7 +3,7 @@
-
-Octave Tablicious v0.3.6-SNAPSHOT
+Octave Tablicious v0.3.6
-
+
@@ -54,7 +54,7 @@
-Octave Tablicious v0.3.6-SNAPSHOT
+Octave Tablicious v0.3.6
@@ -68,7 +68,7 @@ Octave Tablicious v0.3.6-SNAPSHOT
Tablicious for GNU Octave
-This manual is for Tablicious, version 0.3.6-SNAPSHOT.
+
This manual is for Tablicious, version 0.3.6.
@@ -540,7 +540,7 @@ Short Table of Contents
— Douglas Adams
-This is the manual for the Tablicious package version 0.3.6-SNAPSHOT for GNU Octave.
+
This is the manual for the Tablicious package version 0.3.6 for GNU Octave.
Tablicious provides Matlab-compatible tabular data and date/time support for GNU Octave.
This includes a table
class with support for filtering and join operations;
@@ -576,7 +576,7 @@
Short Table of Contents
To install the development prerelease of Tablicious, run this in Octave:
-
pkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.3.6-SNAPSHOT/tablicious-0.3.6-SNAPSHOT.tar.gz
+pkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.3.6/tablicious-0.3.6.tar.gz
(Check the releases page at https://github.com/apjanke/octave-tablicious/releases to
@@ -13350,7 +13350,7 @@
9.1 Package Copyright
9.2 Manual Copyright
-
This manual is for Tablicious, version 0.3.6-SNAPSHOT.
+
This manual is for Tablicious, version 0.3.6.
Copyright © 2019 Andrew Janke
diff --git a/doc/tablicious.info b/doc/tablicious.info
index 5a516312..594d7108 100644
--- a/doc/tablicious.info
+++ b/doc/tablicious.info
@@ -1,7 +1,7 @@
This is tablicious.info, produced by makeinfo version 6.8 from
tablicious.texi.
-This manual is for Tablicious, version 0.3.6-SNAPSHOT.
+This manual is for Tablicious, version 0.3.6.
Copyright © 2019 Andrew Janke
@@ -24,7 +24,7 @@ File: tablicious.info, Node: Top, Next: Introduction, Up: (dir)
Tablicious for GNU Octave
*************************
-This manual is for Tablicious, version 0.3.6-SNAPSHOT.
+This manual is for Tablicious, version 0.3.6.
* Menu:
@@ -48,8 +48,8 @@ File: tablicious.info, Node: Introduction, Next: Getting Started, Up: Top
— _Douglas Adams_
- This is the manual for the Tablicious package version 0.3.6-SNAPSHOT
-for GNU Octave.
+ This is the manual for the Tablicious package version 0.3.6 for GNU
+Octave.
Tablicious provides Matlab-compatible tabular data and date/time
support for GNU Octave. This includes a ‘table’ class with support for
@@ -82,7 +82,7 @@ The easiest way to obtain Tablicious is by using Octave’s ‘pkg’ package
manager. To install the development prerelease of Tablicious, run this
in Octave:
- pkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.3.6-SNAPSHOT/tablicious-0.3.6-SNAPSHOT.tar.gz
+ pkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.3.6/tablicious-0.3.6.tar.gz
(Check the releases page at
to find out what
@@ -10540,7 +10540,7 @@ Tablicious for Octave is covered by the GNU GPLv3.
9.2 Manual Copyright
====================
-This manual is for Tablicious, version 0.3.6-SNAPSHOT.
+This manual is for Tablicious, version 0.3.6.
Copyright © 2019 Andrew Janke
@@ -10560,372 +10560,372 @@ This manual is for Tablicious, version 0.3.6-SNAPSHOT.
Tag Table:
-Node: Top781
-Node: Introduction1168
-Node: Getting Started2540
-Node: Table Representation3372
-Node: Table Construction4931
-Node: Tables vs SQL6160
-Node: Date and Time Representation8108
-Node: datetime Class8655
-Node: Datenum Compatibility9621
-Node: Time Zones11157
-Node: Defined Time Zones14022
-Node: Durations15021
-Node: duration Class15203
-Node: calendarDuration Class15962
-Node: Validation Functions16871
-Node: Example Data Sets19182
-Node: Data Sets from R20623
-Node: Missing Functionality21476
-Node: API Reference22947
-Node: API by Category23136
-Node: API Alphabetically28022
-Node: array2table31914
-Node: calendarDuration32838
-Node: calendarDuration.calendarDuration34722
-Node: calendarDuration.sizeof35233
-Node: calendarDuration.isnat35513
-Node: calendarDuration.uminus35838
-Node: calendarDuration.plus36121
-Node: calendarDuration.times36730
-Node: calendarDuration.minus37091
-Node: calendarDuration.dispstrs37440
-Node: calendarDuration.isnan37784
-Node: calmonths38188
-Node: calyears38777
-Node: categorical39121
-Node: categorical.undefined41395
-Node: categorical.categorical41902
-Node: categorical.sizeof43173
-Node: categorical.categories43423
-Node: categorical.iscategory43821
-Node: categorical.isordinal44267
-Node: categorical.string44636
-Node: categorical.cellstr45083
-Node: categorical.dispstrs45522
-Node: categorical.summary45978
-Node: categorical.addcats46431
-Node: categorical.removecats46859
-Node: categorical.mergecats47501
-Node: categorical.renamecats48156
-Node: categorical.reordercats48573
-Node: categorical.setcats49108
-Node: categorical.isundefined49554
-Node: categorical.ismissing50072
-Node: categorical.isnanny50480
-Node: categorical.squeezecats50950
-Node: cell2table51318
-Node: colvecfun52046
-Node: contains52770
-Node: datetime53551
-Node: datetime.datetime55925
-Node: datetime.ofDatenum56711
-Node: datetime.ofDatestruct57071
-Node: datetime.NaT57578
-Node: datetime.posix2datenum58343
-Node: datetime.datenum2posix58820
-Node: datetime.sizeof59222
-Node: datetime.proxyKeys59455
-Node: datetime.ymd60096
-Node: datetime.hms60486
-Node: datetime.ymdhms60881
-Node: datetime.timeofday61324
-Node: datetime.week61744
-Node: datetime.dispstrs62004
-Node: datetime.datestr62303
-Node: datetime.datestrs62695
-Node: datetime.datestruct63116
-Node: datetime.posixtime63921
-Node: datetime.datenum64455
-Node: datetime.gmtime64772
-Node: datetime.localtime65213
-Node: datetime.isnat65935
-Node: datetime.isnan66216
-Node: datetime.lt66587
-Node: datetime.le67018
-Node: datetime.ne67458
-Node: datetime.eq67890
-Node: datetime.ge68318
-Node: datetime.gt68762
-Node: datetime.plus69195
-Node: datetime.minus69691
-Node: datetime.diff70336
-Node: datetime.isbetween70716
-Node: datetime.linspace71204
-Node: datetime.convertDatenumTimeZone71817
-Node: days72471
-Node: discretize72937
-Node: dispstrs73822
-Node: duration74606
-Node: duration.ofDays75799
-Node: duration.sizeof76286
-Node: duration.years76486
-Node: duration.hours76884
-Node: duration.minutes77255
-Node: duration.seconds77642
-Node: duration.milliseconds78005
-Node: duration.dispstrs78413
-Node: duration.char78724
-Node: duration.linspace79152
-Node: endsWith79761
-Node: eqn80538
-Node: fillmissing81622
-Node: hours82467
-Node: iscategorical82954
-Node: isdatetime83240
-Node: isduration83519
-Node: isfile83791
-Node: isfolder83939
-Node: ismissing84090
-Node: isnanny86377
-Node: localdate87417
-Node: localdate.localdate88726
-Node: localdate.NaT89256
-Node: localdate.ymd90144
-Node: localdate.dispstrs90448
-Node: localdate.datestr90752
-Node: localdate.datestrs91150
-Node: localdate.datestruct91577
-Node: localdate.posixtime92510
-Node: localdate.datenum93081
-Node: localdate.isnat93409
-Node: localdate.isnan93696
-Node: milliseconds94054
-Node: minutes94589
-Node: missing94847
-Node: missing.missing95885
-Node: missing.dispstrs96199
-Node: missing.ismissing96596
-Node: missing.isnan96961
-Node: missing.isnanny97298
-Node: mustBeA97622
-Node: mustBeCellstr98199
-Node: mustBeCharvec98828
-Node: mustBeFinite99728
-Node: mustBeInteger99902
-Node: mustBeMember100077
-Node: mustBeNonempty100252
-Node: mustBeNumeric100431
-Node: mustBeReal100606
-Node: mustBeSameSize100775
-Node: mustBeScalar101413
-Node: mustBeScalarLogical101960
-Node: mustBeVector102553
-Node: NaT103093
-Node: octave.chrono.dummy_function103938
-Node: octave.chrono.DummyClass104470
-Node: octave.chrono.DummyClass.DummyClass105261
-Node: octave.chrono.DummyClass.foo105732
-Node: octave.chrono.DummyClass.bar106271
-Node: octave.dataset106766
-Node: octave.dataset.airmiles109690
-Node: octave.dataset.AirPassengers110444
-Node: octave.dataset.airquality111212
-Node: octave.dataset.anscombe113309
-Node: octave.dataset.attenu115283
-Node: octave.dataset.attitude116722
-Node: octave.dataset.austres117952
-Node: octave.dataset.beavers118865
-Node: octave.dataset.BJsales120010
-Node: octave.dataset.BOD121117
-Node: octave.dataset.cars122088
-Node: octave.dataset.ChickWeight123817
-Node: octave.dataset.chickwts125309
-Node: octave.dataset.co2126799
-Node: octave.dataset.crimtab128287
-Node: octave.dataset.cupcake131767
-Node: octave.dataset.discoveries132737
-Node: octave.dataset.DNase133769
-Node: octave.dataset.esoph135048
-Node: octave.dataset.euro136214
-Node: octave.dataset.eurodist137886
-Node: octave.dataset.EuStockMarkets138796
-Node: octave.dataset.faithful140332
-Node: octave.dataset.Formaldehyde142167
-Node: octave.dataset.freeny143603
-Node: octave.dataset.HairEyeColor145214
-Node: octave.dataset.Harman23cor147743
-Node: octave.dataset.Harman74cor148668
-Node: octave.dataset.Indometh149635
-Node: octave.dataset.infert150962
-Node: octave.dataset.InsectSprays152370
-Node: octave.dataset.iris153314
-Node: octave.dataset.islands154852
-Node: octave.dataset.JohnsonJohnson155745
-Node: octave.dataset.LakeHuron156646
-Node: octave.dataset.lh157714
-Node: octave.dataset.LifeCycleSavings158603
-Node: octave.dataset.Loblolly160505
-Node: octave.dataset.longley161800
-Node: octave.dataset.lynx163187
-Node: octave.dataset.morley164594
-Node: octave.dataset.mtcars166328
-Node: octave.dataset.nhtemp168065
-Node: octave.dataset.Nile169054
-Node: octave.dataset.nottem170342
-Node: octave.dataset.npk171199
-Node: octave.dataset.occupationalStatus172490
-Node: octave.dataset.Orange173516
-Node: octave.dataset.OrchardSprays174901
-Node: octave.dataset.PlantGrowth176738
-Node: octave.dataset.precip177624
-Node: octave.dataset.presidents178506
-Node: octave.dataset.pressure179720
-Node: octave.dataset.Puromycin181054
-Node: octave.dataset.quakes182877
-Node: octave.dataset.randu184433
-Node: octave.dataset.rivers185684
-Node: octave.dataset.rock186577
-Node: octave.dataset.sleep187797
-Node: octave.dataset.stackloss189019
-Node: octave.dataset.state191284
-Node: octave.dataset.sunspot_month193068
-Node: octave.dataset.sunspot_year194034
-Node: octave.dataset.sunspots194882
-Node: octave.dataset.swiss195983
-Node: octave.dataset.Theoph198073
-Node: octave.dataset.Titanic200406
-Node: octave.dataset.ToothGrowth203080
-Node: octave.dataset.treering204503
-Node: octave.dataset.trees205597
-Node: octave.dataset.UCBAdmissions207015
-Node: octave.dataset.UKDriverDeaths209185
-Node: octave.dataset.UKgas211511
-Node: octave.dataset.UKLungDeaths212457
-Node: octave.dataset.USAccDeaths213733
-Node: octave.dataset.USArrests214499
-Node: octave.dataset.USJudgeRatings216474
-Node: octave.dataset.USPersonalExpenditure217788
-Node: octave.dataset.uspop219003
-Node: octave.dataset.VADeaths219922
-Node: octave.dataset.volcano221298
-Node: octave.dataset.warpbreaks222697
-Node: octave.dataset.women223953
-Node: octave.dataset.WorldPhones225260
-Node: octave.dataset.WWWusage226321
-Node: octave.dataset.zCO2227231
-Node: octave.datasets228474
-Node: octave.datasets.list228992
-Node: octave.datasets.load229500
-Node: octave.datasets.description229931
-Node: octave.examples.coplot230511
-Node: octave.examples.plot_pairs232477
-Node: pp233603
-Node: rmmissing234229
-Node: scalarexpand235260
-Node: seconds236184
-Node: size2str236683
-Node: splitapply237286
-Node: standardizeMissing238409
-Node: startsWith239236
-Node: string240040
-Node: string.string243093
-Node: string.isstring243678
-Node: string.dispstrs244003
-Node: string.sizeof244582
-Node: string.ismissing244800
-Node: string.isnanny245277
-Node: string.cellstr245652
-Node: string.cell245995
-Node: string.char246482
-Node: string.encode247007
-Node: string.strlength_bytes247523
-Node: string.strlength248196
-Node: string.reverse_bytes249171
-Node: string.reverse249909
-Node: string.strcat250381
-Node: string.lower250959
-Node: string.upper251461
-Node: string.erase251962
-Node: string.strrep252299
-Node: string.strfind252904
-Node: string.regexprep253427
-Node: string.strcmp253903
-Node: string.cmp254596
-Node: string.missing255575
-Node: string.decode255977
-Node: struct2table256387
-Node: table256848
-Node: table.table259994
-Node: table.summary261022
-Node: table.prettyprint261366
-Node: table.table2cell261825
-Node: table.table2struct262313
-Node: table.table2array262942
-Node: table.varnames263189
-Node: table.istable263564
-Node: table.size263776
-Node: table.length264178
-Node: table.ndims264477
-Node: table.squeeze264728
-Node: table.sizeof265075
-Node: table.height265506
-Node: table.rows265714
-Node: table.width265915
-Node: table.columns266246
-Node: table.numel266584
-Node: table.isempty267076
-Node: table.ismatrix267400
-Node: table.isrow267689
-Node: table.iscol267907
-Node: table.isvector268267
-Node: table.isscalar268493
-Node: table.hasrownames268723
-Node: table.vertcat268973
-Node: table.horzcat269494
-Node: table.repmat270114
-Node: table.repelem270640
-Node: table.setVariableNames271081
-Node: table.setDimensionNames271874
-Node: table.setRowNames272759
-Node: table.removevars273129
-Node: table.movevars273515
-Node: table.getvar274243
-Node: table.getvars274735
-Node: table.setvar275208
-Node: table.addvars276085
-Node: table.convertvars276534
-Node: table.mergevars277522
-Node: table.splitvars277913
-Node: table.stack278455
-Node: table.head278852
-Node: table.tail279221
-Node: table.join279587
-Node: table.innerjoin280333
-Node: table.outerjoin280994
-Node: table.outerfillvals281801
-Node: table.semijoin282234
-Node: table.antijoin283003
-Node: table.cartesian283655
-Node: table.groupby284923
-Node: table.grpstats285774
-Node: table.splitapply286101
-Node: table.rows2vars286602
-Node: table.congruentize287715
-Node: table.union288584
-Node: table.intersect289156
-Node: table.setxor289764
-Node: table.setdiff290399
-Node: table.ismember290936
-Node: table.ismissing291338
-Node: table.rmmissing292022
-Node: table.standardizeMissing292792
-Node: table.varfun293776
-Node: table.rowfun294325
-Node: table.findgroups297405
-Node: table.evalWithVars297990
-Node: table.restrict298840
-Node: table.renamevars299994
-Node: table.resolveVarRef300699
-Node: table.subsetrows301700
-Node: table.subsetvars302045
-Node: tableOuterFillValue302527
-Node: timezones303764
-Node: vartype304813
-Node: vecfun305526
-Node: years306253
-Node: Copying306930
+Node: Top772
+Node: Introduction1150
+Node: Getting Started2513
+Node: Table Representation3327
+Node: Table Construction4886
+Node: Tables vs SQL6115
+Node: Date and Time Representation8063
+Node: datetime Class8610
+Node: Datenum Compatibility9576
+Node: Time Zones11112
+Node: Defined Time Zones13977
+Node: Durations14976
+Node: duration Class15158
+Node: calendarDuration Class15917
+Node: Validation Functions16826
+Node: Example Data Sets19137
+Node: Data Sets from R20578
+Node: Missing Functionality21431
+Node: API Reference22902
+Node: API by Category23091
+Node: API Alphabetically27977
+Node: array2table31869
+Node: calendarDuration32793
+Node: calendarDuration.calendarDuration34677
+Node: calendarDuration.sizeof35188
+Node: calendarDuration.isnat35468
+Node: calendarDuration.uminus35793
+Node: calendarDuration.plus36076
+Node: calendarDuration.times36685
+Node: calendarDuration.minus37046
+Node: calendarDuration.dispstrs37395
+Node: calendarDuration.isnan37739
+Node: calmonths38143
+Node: calyears38732
+Node: categorical39076
+Node: categorical.undefined41350
+Node: categorical.categorical41857
+Node: categorical.sizeof43128
+Node: categorical.categories43378
+Node: categorical.iscategory43776
+Node: categorical.isordinal44222
+Node: categorical.string44591
+Node: categorical.cellstr45038
+Node: categorical.dispstrs45477
+Node: categorical.summary45933
+Node: categorical.addcats46386
+Node: categorical.removecats46814
+Node: categorical.mergecats47456
+Node: categorical.renamecats48111
+Node: categorical.reordercats48528
+Node: categorical.setcats49063
+Node: categorical.isundefined49509
+Node: categorical.ismissing50027
+Node: categorical.isnanny50435
+Node: categorical.squeezecats50905
+Node: cell2table51273
+Node: colvecfun52001
+Node: contains52725
+Node: datetime53506
+Node: datetime.datetime55880
+Node: datetime.ofDatenum56666
+Node: datetime.ofDatestruct57026
+Node: datetime.NaT57533
+Node: datetime.posix2datenum58298
+Node: datetime.datenum2posix58775
+Node: datetime.sizeof59177
+Node: datetime.proxyKeys59410
+Node: datetime.ymd60051
+Node: datetime.hms60441
+Node: datetime.ymdhms60836
+Node: datetime.timeofday61279
+Node: datetime.week61699
+Node: datetime.dispstrs61959
+Node: datetime.datestr62258
+Node: datetime.datestrs62650
+Node: datetime.datestruct63071
+Node: datetime.posixtime63876
+Node: datetime.datenum64410
+Node: datetime.gmtime64727
+Node: datetime.localtime65168
+Node: datetime.isnat65890
+Node: datetime.isnan66171
+Node: datetime.lt66542
+Node: datetime.le66973
+Node: datetime.ne67413
+Node: datetime.eq67845
+Node: datetime.ge68273
+Node: datetime.gt68717
+Node: datetime.plus69150
+Node: datetime.minus69646
+Node: datetime.diff70291
+Node: datetime.isbetween70671
+Node: datetime.linspace71159
+Node: datetime.convertDatenumTimeZone71772
+Node: days72426
+Node: discretize72892
+Node: dispstrs73777
+Node: duration74561
+Node: duration.ofDays75754
+Node: duration.sizeof76241
+Node: duration.years76441
+Node: duration.hours76839
+Node: duration.minutes77210
+Node: duration.seconds77597
+Node: duration.milliseconds77960
+Node: duration.dispstrs78368
+Node: duration.char78679
+Node: duration.linspace79107
+Node: endsWith79716
+Node: eqn80493
+Node: fillmissing81577
+Node: hours82422
+Node: iscategorical82909
+Node: isdatetime83195
+Node: isduration83474
+Node: isfile83746
+Node: isfolder83894
+Node: ismissing84045
+Node: isnanny86332
+Node: localdate87372
+Node: localdate.localdate88681
+Node: localdate.NaT89211
+Node: localdate.ymd90099
+Node: localdate.dispstrs90403
+Node: localdate.datestr90707
+Node: localdate.datestrs91105
+Node: localdate.datestruct91532
+Node: localdate.posixtime92465
+Node: localdate.datenum93036
+Node: localdate.isnat93364
+Node: localdate.isnan93651
+Node: milliseconds94009
+Node: minutes94544
+Node: missing94802
+Node: missing.missing95840
+Node: missing.dispstrs96154
+Node: missing.ismissing96551
+Node: missing.isnan96916
+Node: missing.isnanny97253
+Node: mustBeA97577
+Node: mustBeCellstr98154
+Node: mustBeCharvec98783
+Node: mustBeFinite99683
+Node: mustBeInteger99857
+Node: mustBeMember100032
+Node: mustBeNonempty100207
+Node: mustBeNumeric100386
+Node: mustBeReal100561
+Node: mustBeSameSize100730
+Node: mustBeScalar101368
+Node: mustBeScalarLogical101915
+Node: mustBeVector102508
+Node: NaT103048
+Node: octave.chrono.dummy_function103893
+Node: octave.chrono.DummyClass104425
+Node: octave.chrono.DummyClass.DummyClass105216
+Node: octave.chrono.DummyClass.foo105687
+Node: octave.chrono.DummyClass.bar106226
+Node: octave.dataset106721
+Node: octave.dataset.airmiles109645
+Node: octave.dataset.AirPassengers110399
+Node: octave.dataset.airquality111167
+Node: octave.dataset.anscombe113264
+Node: octave.dataset.attenu115238
+Node: octave.dataset.attitude116677
+Node: octave.dataset.austres117907
+Node: octave.dataset.beavers118820
+Node: octave.dataset.BJsales119965
+Node: octave.dataset.BOD121072
+Node: octave.dataset.cars122043
+Node: octave.dataset.ChickWeight123772
+Node: octave.dataset.chickwts125264
+Node: octave.dataset.co2126754
+Node: octave.dataset.crimtab128242
+Node: octave.dataset.cupcake131722
+Node: octave.dataset.discoveries132692
+Node: octave.dataset.DNase133724
+Node: octave.dataset.esoph135003
+Node: octave.dataset.euro136169
+Node: octave.dataset.eurodist137841
+Node: octave.dataset.EuStockMarkets138751
+Node: octave.dataset.faithful140287
+Node: octave.dataset.Formaldehyde142122
+Node: octave.dataset.freeny143558
+Node: octave.dataset.HairEyeColor145169
+Node: octave.dataset.Harman23cor147698
+Node: octave.dataset.Harman74cor148623
+Node: octave.dataset.Indometh149590
+Node: octave.dataset.infert150917
+Node: octave.dataset.InsectSprays152325
+Node: octave.dataset.iris153269
+Node: octave.dataset.islands154807
+Node: octave.dataset.JohnsonJohnson155700
+Node: octave.dataset.LakeHuron156601
+Node: octave.dataset.lh157669
+Node: octave.dataset.LifeCycleSavings158558
+Node: octave.dataset.Loblolly160460
+Node: octave.dataset.longley161755
+Node: octave.dataset.lynx163142
+Node: octave.dataset.morley164549
+Node: octave.dataset.mtcars166283
+Node: octave.dataset.nhtemp168020
+Node: octave.dataset.Nile169009
+Node: octave.dataset.nottem170297
+Node: octave.dataset.npk171154
+Node: octave.dataset.occupationalStatus172445
+Node: octave.dataset.Orange173471
+Node: octave.dataset.OrchardSprays174856
+Node: octave.dataset.PlantGrowth176693
+Node: octave.dataset.precip177579
+Node: octave.dataset.presidents178461
+Node: octave.dataset.pressure179675
+Node: octave.dataset.Puromycin181009
+Node: octave.dataset.quakes182832
+Node: octave.dataset.randu184388
+Node: octave.dataset.rivers185639
+Node: octave.dataset.rock186532
+Node: octave.dataset.sleep187752
+Node: octave.dataset.stackloss188974
+Node: octave.dataset.state191239
+Node: octave.dataset.sunspot_month193023
+Node: octave.dataset.sunspot_year193989
+Node: octave.dataset.sunspots194837
+Node: octave.dataset.swiss195938
+Node: octave.dataset.Theoph198028
+Node: octave.dataset.Titanic200361
+Node: octave.dataset.ToothGrowth203035
+Node: octave.dataset.treering204458
+Node: octave.dataset.trees205552
+Node: octave.dataset.UCBAdmissions206970
+Node: octave.dataset.UKDriverDeaths209140
+Node: octave.dataset.UKgas211466
+Node: octave.dataset.UKLungDeaths212412
+Node: octave.dataset.USAccDeaths213688
+Node: octave.dataset.USArrests214454
+Node: octave.dataset.USJudgeRatings216429
+Node: octave.dataset.USPersonalExpenditure217743
+Node: octave.dataset.uspop218958
+Node: octave.dataset.VADeaths219877
+Node: octave.dataset.volcano221253
+Node: octave.dataset.warpbreaks222652
+Node: octave.dataset.women223908
+Node: octave.dataset.WorldPhones225215
+Node: octave.dataset.WWWusage226276
+Node: octave.dataset.zCO2227186
+Node: octave.datasets228429
+Node: octave.datasets.list228947
+Node: octave.datasets.load229455
+Node: octave.datasets.description229886
+Node: octave.examples.coplot230466
+Node: octave.examples.plot_pairs232432
+Node: pp233558
+Node: rmmissing234184
+Node: scalarexpand235215
+Node: seconds236139
+Node: size2str236638
+Node: splitapply237241
+Node: standardizeMissing238364
+Node: startsWith239191
+Node: string239995
+Node: string.string243048
+Node: string.isstring243633
+Node: string.dispstrs243958
+Node: string.sizeof244537
+Node: string.ismissing244755
+Node: string.isnanny245232
+Node: string.cellstr245607
+Node: string.cell245950
+Node: string.char246437
+Node: string.encode246962
+Node: string.strlength_bytes247478
+Node: string.strlength248151
+Node: string.reverse_bytes249126
+Node: string.reverse249864
+Node: string.strcat250336
+Node: string.lower250914
+Node: string.upper251416
+Node: string.erase251917
+Node: string.strrep252254
+Node: string.strfind252859
+Node: string.regexprep253382
+Node: string.strcmp253858
+Node: string.cmp254551
+Node: string.missing255530
+Node: string.decode255932
+Node: struct2table256342
+Node: table256803
+Node: table.table259949
+Node: table.summary260977
+Node: table.prettyprint261321
+Node: table.table2cell261780
+Node: table.table2struct262268
+Node: table.table2array262897
+Node: table.varnames263144
+Node: table.istable263519
+Node: table.size263731
+Node: table.length264133
+Node: table.ndims264432
+Node: table.squeeze264683
+Node: table.sizeof265030
+Node: table.height265461
+Node: table.rows265669
+Node: table.width265870
+Node: table.columns266201
+Node: table.numel266539
+Node: table.isempty267031
+Node: table.ismatrix267355
+Node: table.isrow267644
+Node: table.iscol267862
+Node: table.isvector268222
+Node: table.isscalar268448
+Node: table.hasrownames268678
+Node: table.vertcat268928
+Node: table.horzcat269449
+Node: table.repmat270069
+Node: table.repelem270595
+Node: table.setVariableNames271036
+Node: table.setDimensionNames271829
+Node: table.setRowNames272714
+Node: table.removevars273084
+Node: table.movevars273470
+Node: table.getvar274198
+Node: table.getvars274690
+Node: table.setvar275163
+Node: table.addvars276040
+Node: table.convertvars276489
+Node: table.mergevars277477
+Node: table.splitvars277868
+Node: table.stack278410
+Node: table.head278807
+Node: table.tail279176
+Node: table.join279542
+Node: table.innerjoin280288
+Node: table.outerjoin280949
+Node: table.outerfillvals281756
+Node: table.semijoin282189
+Node: table.antijoin282958
+Node: table.cartesian283610
+Node: table.groupby284878
+Node: table.grpstats285729
+Node: table.splitapply286056
+Node: table.rows2vars286557
+Node: table.congruentize287670
+Node: table.union288539
+Node: table.intersect289111
+Node: table.setxor289719
+Node: table.setdiff290354
+Node: table.ismember290891
+Node: table.ismissing291293
+Node: table.rmmissing291977
+Node: table.standardizeMissing292747
+Node: table.varfun293731
+Node: table.rowfun294280
+Node: table.findgroups297360
+Node: table.evalWithVars297945
+Node: table.restrict298795
+Node: table.renamevars299949
+Node: table.resolveVarRef300654
+Node: table.subsetrows301655
+Node: table.subsetvars302000
+Node: tableOuterFillValue302482
+Node: timezones303719
+Node: vartype304768
+Node: vecfun305481
+Node: years306208
+Node: Copying306885
End Tag Table
diff --git a/doc/tablicious.pdf b/doc/tablicious.pdf
index 2c2c017a..dd94d6d4 100644
Binary files a/doc/tablicious.pdf and b/doc/tablicious.pdf differ
diff --git a/doc/tablicious.texi b/doc/tablicious.texi
index 9a5f9331..ad8515e6 100644
--- a/doc/tablicious.texi
+++ b/doc/tablicious.texi
@@ -2,7 +2,7 @@
@c %**start of header
-@set VERSION 0.3.6-SNAPSHOT
+@set VERSION 0.3.6
@setfilename tablicious.info
@settitle Octave Tablicious v@value{VERSION}
@@ -36,7 +36,7 @@ User manual for Tablicious for Octave.
@titlepage
@title Tablicious for Octave
-@subtitle version @value{VERSION}, January 2020
+@subtitle version @value{VERSION}, July 2021
@author Andrew Janke
@page
@vskip 0pt plus 1filll
@@ -106,7 +106,7 @@ The easiest way to obtain Tablicious is by using Octave's @code{pkg} package man
To install the development prerelease of Tablicious, run this in Octave:
@example
-pkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.3.6-SNAPSHOT/tablicious-0.3.6-SNAPSHOT.tar.gz
+pkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.3.6/tablicious-0.3.6.tar.gz
@end example
(Check the releases page at @url{https://github.com/apjanke/octave-tablicious/releases} to
diff --git a/docs/Release-Checklist.md b/docs/Release-Checklist.md
index d4d63035..7fad7a11 100644
--- a/docs/Release-Checklist.md
+++ b/docs/Release-Checklist.md
@@ -4,10 +4,12 @@
* `make test`, duh.
* TODO: Fix the `make test` target! ;)
* Wouldn't hurt to do `make clean && git status && make test`/manual-cleanup, just to be sure.
-* Double-check the version number and date in `DESCRIPTION`
+* Double-check the version number and date in `DESCRIPTION`.
+* Update the `CHANGES.txt` file with the release date.
+ * And check that it has a complete change list for the release. This _should_ be done as changes are committed, but we're not great about that.
* Update the installation instructions in README to use the upcoming release tarball URL.
* Format is: `https://github.com/apjanke/octave-tablicious/releases/download/v/tablicious-.tar.gz`
-* Regenerate the doco
+* Regenerate the doco.
* `(cd doc; make maintainer-clean; make all)` if you had to change it.
* Commit all the files changed by the above steps.
* Use form: `git commit -a -m "Cut release v"`