-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathChangeLog-2.0b3-2.0b5.log
1358 lines (999 loc) · 45.5 KB
/
ChangeLog-2.0b3-2.0b5.log
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2013-06-07 Gustaf Neumann <[email protected]>
- fix typo
- remove doc target from "install-doc" since this takes a while in a
"make install"
- document tricky trace script setting in regression test
- use tcl8.5 commands instead of 8.4 idioms
- don't build doc always, since it takes a long time
- documentation update and regeneration of html docs
- add all tcl 8.5 cmds, nx methods + info methods
- add missing tcl-keywords to nx-mode.el
- adjust style files for document generation
- added rules for generating pdf to ease release management
- code cleanup
- updated HTML renderings of examples
2013-06-06 Gustaf Neumann <[email protected]>
nsf.c:
- fix a bug in SlotContainerCmdResolver() when NSF_MEM_COUNT is
activated
- fix a small memory leak for PER_OBJECT_PARAMETER_CACHING
- all cases detectable with --enable-memcount=yes are fixed
- fix git command in release instructions
- fix label for debugging reference counts
- updated TODO
- reduce variable scopes
nx::test:
- change test cases to newer interface
- don't use "namespace import nx::*" in test cases when not required
nx::test:
- use the standard configure interface for configuring instead of
own version
- changed from nx::Test to nx::test (user never has to know that
nx::Test is a class).
2013-06-05 Gustaf Neumann <[email protected]>
- Eliminate all use of Tcl_GetStringFromObj() function.
- fix typos, example code
- further release work
2013-06-05 ssoberni <[email protected]>
Fixed some typos and suggesting some rewording
2013-06-05 Gustaf Neumann <[email protected]>
- initial checkin of nx-mode.el
- preparing 2.0b5 release
2013-06-04 Stefan Sobernig <[email protected]>
Left a to-do in the nxdoc backend
Completed update of nxdoc for NX
2013-06-04 Gustaf Neumann <[email protected]>
serializer.tcl
- added flag -objmap to Serialzer.deepSerialize to make serializer
usable for copying (-map is to coarse)
- extended regression test
2013-06-04 Stefan Sobernig <[email protected]>
Adjusted nxdoc for the recent changes to NSF/NX
2013-06-03 Gustaf Neumann <[email protected]>
nsf.c
- removed obsolete function AssertionAppendPrePost()
- removed obsolete function NsfNSCopyCmdsCmd() and ::nsf::nscopycmd
(handled now more general on scripting level in the "copy" method)
nx.tcl:
- "copy" method: fixed copying of class-level per-object methods
- extended regression tests
nsf.c
- fixed a potential crash for objects having a wrapper-less alias defined
2013-06-03 ssoberni <[email protected]>
nsf.c
- Make sure that the original error message is preserved when
calling destroy after a failed CMD or INITCMD
2013-06-03 Gustaf Neumann <[email protected]>
nsf.c
- fixed a bug in "info methods returns" in cases, where no
returns info was available.
- we can "/obj/ copy" now objects/classes containing
* aliases
* setter
* ensemble methods
* method protections Instead of handling cmd copying in
NsfNSCopyCmdsCmd, it is replaced now by introspection.
- extended regression test
2013-06-02 Gustaf Neumann <[email protected]>
nx::test:
- deactivate calling overhead calculation, since this is not reliable
(sometimes larger than the call).
- improved handling of required configure parameters when
classes are changed dynamically. When configure parameter
are defined required, checking for the absence of required
parameter was only performed at creation time. When objects
were re-classed or their classes extended with required
parameters, later calls to configure did not trigger
exceptions. Now we check for the existence of the instance
variable which addresses most of these points, but in future
we might wish a more general solution (see comment for
futures releases)
- when creation with a required configure parameter failed, delete the
half-baked object to avoid confusing states.
- nx::test: show msg at start of test file
2013-06-01 Gustaf Neumann <[email protected]>
- changed multiplicity of mixin, object-mixin, filter,
object-filter from 1..n to 0..n; rationale: when one has a
list of e.g. mixins, which should be passed, one has to test
for the length before passing it, otherwise the empty list
would generate an error. Allowing 0..n makes the usage
simpler and the program shorter.
nx.tcl:
- renamed variable option "-config" to "-configurable" to make its
intention clearer
2013-05-31 Gustaf Neumann <[email protected]>
- traits: added ability to turn on verbosity for traits by using
nx::configure trait-verbosity on|off
nx.tcl:
- replaced functionality of "/obj/ configure" by "/obj/ info
configure" to re-enable semantics of the plain configure
method, even when called without arguments. "/obj/ info
configure" is actually a convenience method to allow one to
write o1 info configure instead of o1 info lookup configure
syntax
package nx::class-method:
- convenience package similar to nx::plain-object-method
- allow for usage "C class method ..." in addition to "C object
method".
- made warnings configurable via nx::configure
class-method-warning on|off
- completed coverage and test cases
package nx::plain-object-method:
- made warnings configurable via nx::configure
plain-object-method-warning on|off
- completed coverage and test cases
2013-05-30 Gustaf Neumann <[email protected]>
nsf.c
- fixed potential infinite loop in pattern matching for
precedence lists
- cget: make error message closer to tcl conventions
- extended regression test
2013-05-29 Gustaf Neumann <[email protected]>
- adapt to object methods
- prevent default value checking, when it is determined by a command
- completed coverage if plain-object-method.tcl
- provide warnings via plain-object-method.tcl via "nsf::log warn ..."
2013-05-28 Gustaf Neumann <[email protected]>
- renamed initblock parameter from __initcmd to __initblock
- renamed nsf::configure parameter from "keepinitcmds" to
"keepcmds"
- saving "keepcmds" in an associative array named
"__cmd(/parameternName)" to allow saving of multiple
parameters with less name clash danger (when application
stays away from variables stating with double underscore)
nx.tcl:
- removed "info is .." since it might raise more questions
than it solves
- changed enumeration values for "-source" in
"info lookup methods"
"info lookup slots"
"info methods"
"info slots"
from
"all|application|baseclasses"
to
"all|application|system"
for consistency with "nsf::my" and "nsf::dispatch" which uses
"-system" as well
2013-05-26 Gustaf Neumann <[email protected]>
Traits:
- changed from traits-as-objects to traits-as-classes. This
allows for higher orthogonality of traits and class definitions
and allows in principle traits for object-specific methods (not
fully implemented/tested)
- fixed property/variable inheritance in traits.
- remove spurious debug line
Cleanup of nsfAPI.decls
- remove unneeded enumeration types
- use "typeName" to shorten reported names of parameters
- use camel case for reported names
- changed ::nsf::parametersyntax(..) to
::nsf::parameter::syntax(..)
- xotcl2: adjusted manual parameter syntax entries to new conventions
2013-05-24 Gustaf Neumann <[email protected]>
- added implementation for slots with traces+types for classes
- exception for incorrect defaults are thrown during slot creation
- extended nsf::is, added parameter
* ?-configure? -- accept configure parameter options
* ?-name /name/? -- provide a parameter name for error message
- simplified nx.tcl by using new nsf::is
- extended regression test
- added partly implementation for slots with traces+types for
classes
- fixed cases, where valuechangedcmd (and the other traces) did
not work with "configure" method. When slot traces are used, it
cleans other traces for the same operations.
- extended regression test
2013-05-23 Gustaf Neumann <[email protected]>
nsf.c:
- fix crash when "nsf::my" is called with a single argument
outside the object context.
- fix assert
- removed some TODOs from tests/parameters.test
- parameter dispositions: We differentiate now between
"initcmd" and "cmd": an "initcmd" is only evaluated once,
but one can provide configure values for this parameter
later. a "cmd" is executed on every evaluation, it is only
possible to pass cmds to it. The trailing argument of the
configure parameters (used e.g. for scripted object/class
definitions) is now of type "cmd". Implementation not yet
complete (object cases are not correct).
- streamline documentation
C-code Generator:
- added "-typeName" for enumeration types that allows for
disambiguation of enumerations with different argument
names. Before that, the argument name determined the c-type
of the enumeration. Therefore, it was not possible to use
argName "-type" for two different functions with a different
list of enumerators.
- renamed option "-methodtype" to "-type" in
/obj/ info methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...
/obj/ info object methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...
/obj/ info lookup methods ... ?-type all|scripted|builtin|alias|forwarder|object|setter|nsfproc? ...
- minor code cleanup
2013-05-22 Gustaf Neumann <[email protected]>
- streamlined AddSlotObjects()
- cleanup of TODOs
- nsf.c: handle full-qualified name for private slots
(AddSlotObjects())
- extended regression test
2013-05-21 Gustaf Neumann <[email protected]>
- updated next-tutorial:
* bring definitions of properties and variables up to date
* fix "object methods"
- XOTcl2: ensure public accessor when "-parameter ..." is used
- extended parameter extractor: new functionality
::nsf::parameter get default /parameter/ ?/varname/?
::nsf::parameter get type /parameter/
/obj/ info parameter get default /parameter/ ?/varname/?
/obj/ info parameter get type /parameter/
2013-05-20 Gustaf Neumann <[email protected]>
- hopefully the last changes for ?object?
method|variable|property: defined
* "/obj/ delete object method"
* "/obj/ delete object property"
* "/obj/ delete object variable"
- "info method syntax" returns now "/cls/ ...."
- "info object method syntax" returns now "/obj/ ...."
- updated next-migration guide to reflect changes from the
configure reform
- make name fully qualified for symmetry reasons
- minor cleanup
- nx-pp.tcl: fixed changed accessor handling, added cget to
highlight words
2013-05-19 Gustaf Neumann <[email protected]>
- added new regression test info-variables.test
2013-05-19 Gustaf Neumann <[email protected]>
Method and configure parameter reform, Part 3:
- added
/cls/ info lookup variables -> list of handles
/obj/ info lookup object variables -> list of handles
/obj/ info variable definition|name|parameter /handle/
- nx.tcl: added forward compatible scripted implementation of "lmap"
- nsf.c: handle names for private slots in pattern provided to
AddSlotObjects(), used e.g. in "info lookup slots /pattern/"
2013-05-18 Gustaf Neumann <[email protected]>
- dropped "/obj/ info slot definition /obj/" in favor of "/slotobj/
definition"
2013-05-17 Gustaf Neumann <[email protected]>
- nx.tcl: handle "incremental" in slot reconfigure
- nx.tcl: change defaultAccessor to "none"
2013-05-17 Gustaf Neumann <[email protected]>
- Method and configure parameter reform, Part 2: In order to
streamline the interface further, we tried to follow the
idea to use "... info /plural word/" to obtain a set of
handles, and then a separate call to obtain the
details. Therefore, we replaced
/cls/ info slot objects
/cls/ info slot definitions
/cls/ info slot names
/obj/ info object slot objects
/obj/ info object slot definitions
/obj/ info object slot names
/obj/ info lookup slots
by
/cls/ info slots ?-type /type/? ?-closure? ?-source all|application|baseclasses? ?/pattern/?
/obj/ info object slots ?-type /type/? ?/pattern/?
/obj/ info slot definition /obj/
/obj/ info lookup slots ?-type /type/? ?-source all|application|baseclasses? ?/pattern/?
2013-05-16 Gustaf Neumann <[email protected]>
- Method and configure parameter reform
/cls/ info configure parameters ?pattern? -> list of params
/cls/ info configure syntax -> syntax output
/obj/ info method parameters /methodName/ ?/pattern/? -> list of params
/obj/ info method syntax -> syntax output
/obj/ info lookup configure parameter ?/pattern/? -> list of params
/obj/ info lookup configure syntax -> syntax output
/cls/ info parameter list|name|syntax /param/ -> value
2013-05-14 Gustaf Neumann <[email protected]>
- avoid crash in case NsfParameterGetCmd() is passed a plain value
2013-05-13 Gustaf Neumann <[email protected]>
- minor documentation updates
2013-05-10 Gustaf Neumann <[email protected]>
- initialize stub-tables only once
- syntax formatter: use /value/ for denoting placeholder in
"... info method syntax ..."
2013-05-07 Gustaf Neumann <[email protected]>
- parametersyntax: make placeholders explicit
- moved "/obj/ info slot definition|..." to "/obj/ info object
slot definition|..." for consistency
- provided "parametersyntax()" for "object mixin" and "object
filter"
2013-05-05 Stefan Sobernig <[email protected]>
- win/makefile.vc: have the install target copy the public
headers as well
2013-05-04 Stefan Sobernig <[email protected]>
- MinGW toolchains do not provide support _vscprintf(), so we
limit the use of it to MSVC; tested NsfDStringPrintf under
MinGW
- Provide tcl library path to summary.tcl and remove
intermediate file from repo
- Fixed the Win32 logic for computing the Tcl_DString in
NsfDStringPrintf(), tested for MSVC under x86 and amd64
2013-05-04 Gustaf Neumann <[email protected]>
- updating next-tutorial to object method syntax
2013-05-03 Gustaf Neumann <[email protected]>
- updated migration guide
- update to new naming
2013-05-03 ssoberni <[email protected]>
- Fix the 86-specific tests to reflect the object-modifier
reform
2013-05-03 Gustaf Neumann <[email protected]>
- try to print arguments in one sweep in NsfDStringPrintf()
- remove "extern" declarations
2013-05-02 ssoberni <[email protected]>
- Revised NsfDStringPrintf() for portability to
non-C99-compliant C runtimes (MSVC); remains to be tested
2013-05-02 Gustaf Neumann <[email protected]>
- first and incomplete update of migration guide to new syntax
2013-05-01 Stefan Sobernig <[email protected]>
- Re-enabling deletion of intermediate file in makefile
- Remove legacy build artifacts
- Provide native Win build support for MSVC++ and MSVC, using
the Tcl 8.6 name templates. Tested using Visual Studio 12
(VC and name in version 11). See makefile.vc for build
instructions for Win32 and Win64.
2013-04-29 Gustaf Neumann <[email protected]>
- bumped version number to 2.0b5
- tested with NaviServer and OpenACS (new version of nx needs
as well a newest NaviServer, since ns_cache implementation
needs to be objectified; newest NaviServer version works as
well with older nx)
- fix xotcl instance method serialization (still not covered
in regression test)
- renamed "package require nx::class" to "package require
nx::class-method" in analogy to "nx::plain-object-method"
- added "/obj/ object variable" and "/obj/ object property"
2013-04-28 Gustaf Neumann <[email protected]>
MongoDB
- added "nx::mongo::db drop collection /name/"
- returning status from "nx::mongo::db remove" as success (0 or 1)
- adjust to object interface
- reduce verbosity
- add error messages for slot lookup failures
Updated MongoDB interface
- upgraded to c-driver 0.7.1
- tested with MongoDB 2.4.4-pre
- new commands:
* mongo::run
* mongo::cursor::find
* mongo::cursor::next
* mongo::cursor::close
- adapted interface for c-driver 0.7.1 (e.g. new optional name for
mongo::index
- nsfPointer.c: add parameter to Nsf_PointerDelete() for
allowing optional freeing
- reduced default verbosity
- moved NsfConfigEnabled from nsf.h to nsfInt.h (no need to be
part of the public interface)
- moved NSF_ARGPARSE_* macros to nsf.h (since arg parser is
public and uses these flags)
2013-04-23 Gustaf Neumann <[email protected]>
Object-method Reform:
- changed interface to object specific commands by requiring
an ensemble named "object". The rational behind is
essentially to use always the same info command to retrieve
object specific methods, no matter whether these are defined
on a plain object or a class object (does not break the
"contract" what e.g. "info method" returns).
Now we define methods via:
/cls/ method foo {args} {...body...}
/cls/ object method foo {args} {...body...}
/obj/ object method foo {args} {...body...}
Similarly, aliases, forwards and mixins are defined, e.g.
/cls/ mixin add ...
/cls/ object mixin add ...
/obj/ object mixin add ...
/obj/ require object method ...
The same change propagated as well to the "info" method.
Now we have:
/cls/ info methods ...
/cls/ info object methods ...
/obj/ info object methods ...
Similar, the object parameterization uses
/cls/ create obj -object-mixin M
/cls/ create obj -object-filter f
/metacls/ create cls -mixin M1 -object-mixin M2
/metacls/ create cls -filter f1 -object-filter f2
- as a consequence,
a) "/cls/ class method ...",
"/cls/ class alias ...",
"/cls/ class forward ...",
"/cls/ class filter ...",
"/cls/ class mixin ...",
"/cls/ class info ..."
"/obj/ class method require method ..."
"/obj/ class method require public method ..."
"/obj/ class method require protected method ..."
"/obj/ class method require private method ..."
were dropped
b) "/obj/ method ....",
"/obj/ alias ....",
"/obj/ forward ...."
"/obj/ filter ...."
"/obj/ mixin ...."
"/obj/ info method*"
"/cls/ create obj -mixin M"
"/cls/ create obj -filter f"
"/obj/ method require method ..."
"/obj/ method require public method ..."
"/obj/ method require protected method ..."
"/obj/ method require private method ..."
were dropped
- added package nx::class to allow optionally the "class" notation
"/cls/ class method ..." (and friends, see (a)), and
"/cls/ class info ...
- added package nx::plain-object-method to allow optionally
plain method b) "/obj/ method ...." (and friends, see (b))
- add support to slots to use ensemble methods as setters
2013-04-17 Gustaf Neumann <[email protected]>
- allow explicit unsetting of -per-object flag in 0-argument
-flag=value notation
2013-04-05 Gustaf Neumann <[email protected]>
- reduce variable scope
2013-03-25 ssoberni <[email protected]>
- Improved wording in comment on NsfConfigEnabled()
- Irgh. Had forgotten about two-level stringification to
provide configuration macro expansions as strings in
NsfReportVars()
2013-03-25 Stefan Sobernig <[email protected]>
- Adding a helper macro NsfConfigEnabled() to test for
active/inactive build-time configurations; rewrote
NsfReportVars() accordingly. This makes NSF compilable under
MSVC (VC11). Thanks are due to Stephan Adelsberger for
reporting the issue.
2013-02-19 Gustaf Neumann <[email protected]>
- ByteCompiled(): fix indentation of preprocessor #if statements
- ByteCompiled(): ensure result setting in case HAVE_TCL_COMPILE_H is
not defined
- improve wording in rosetta example
2013-01-22 Gustaf Neumann <[email protected]>
- more code cleanup
- reduce variable scopes
- remove EXTERN declarations from function definitions
2013-01-08 Gustaf Neumann <[email protected]>
- Update to latest TEA.
- Follow new naming convention for auto-tools (using configure.ac)
- silence compiler warnings
2012-12-12 Gustaf Neumann <[email protected]>
- replace Tcl_GlobalEval by Tcl_Eval, since Tcl_GlobalEval will be
removed in futures versions of Tcl
2012-11-26 Stefan Sobernig <[email protected]>
- Checked built and test suite against Tcl 8.6rc2
(core-8-6-0-rc) under MinGW32; removed temporary fix for bug
#3401422
2012-11-19 Gustaf Neumann <[email protected]>
- quote filename in content disposition
2012-11-16 Gustaf Neumann <[email protected]>
- replace nx::configure option defaultPropertyCallProtection by
defaultAccessor
- protect trf against leading dashes
2012-11-15 Gustaf Neumann <[email protected]>
- deactivate tests in library file
2012-11-14 Gustaf Neumann <[email protected]>
- add additional "convertto" when generating zip files from strings
2012-10-30 Stefan Sobernig <[email protected]>
- The asciidoc-related configuration artifacts, especially for
Tcl/NSF-specific code highlighting, are now contained in the
source distribution and integrated with the respective make
targets. Besides a running asciidoc installation, there is
no further configuration need. Tested with asciidoc 8.6.8
2012-10-28 Stefan Sobernig <[email protected]>
- Extending test case to cover slotassign issue
- Adding a test and a temporary fix for the ::nsf::is issue in
setCheckedInstVar
2012-10-13 Gustaf Neumann <[email protected]>
- Make sure to NS_EXPORT Ns_ModuleVersion for people using
still the old-style AolServer module.
2012-10-04 Gustaf Neumann <[email protected]>
- make assumptions in code explicit
2012-10-03 Gustaf Neumann <[email protected]>
nsf.c:
- handling of method names in error messages from nsfAPI.h. Make sure
that error message is generated with the actual method name.
2012-10-02 Gustaf Neumann <[email protected]>
nx.tcl:
- property has now a boolean non-positional argument "-config"
/obj|cls/ property ?-accessor value? ?-config boolean?
?-incremental? ?-class value? spec ?initblock? in symmetry with
"-accessor" (parameter option "noconfig" is still needed to
flag nsf for variables that should be initialized, which are
not configurable
- "/obj|cls/ info slot definitions" returns a full command
(containing flags and property|variable)
- extended regression test
2012-09-30 Gustaf Neumann <[email protected]>
- remove debug output
nsf.c:
- factored out ParameterMethodForwardDispatch() to call a
parameter method defined as a forwarder the same way from
"configure" and "cget"
- extended regression test
- improve comment
2012-09-29 Gustaf Neumann <[email protected]>
- extended regression test
- changed name "/obj|cls/ slot info definition" to "/obj|cls/
slot info definition" since result is a set
- dropped parameter method "properties"
- dropped "/obj/ info properties" (since "properties" or "variables"
are returned")
nx.tcl:
- change parameter name in "/cls/ info parameter ... ?pattern?" from
"name" to "pattern"
2012-09-28 Gustaf Neumann <[email protected]>
- added functionality for "cget" to call parameter-methods (e.g.
"... cget -class"). The method cget calls either "/slot/ get
..." (when slot=... is provided in the parameter spec) or it
assumes that the method without argument returns the value
- added "::nsf::object::property /obj/ volatile" to query whether
an object is volatile or not
- "/obj/ cget -volatile" returns now the volatile state of the
object
- factored out ParameterMethodDispatch() from OConfigureMethod()
- extended regression test
2012-09-27 Gustaf Neumann <[email protected]>
- invalidation of per-object parameter cache
* on mixin changes and
* on deletion/adding of per-object slots
- deactivate PER_OBJECT_PARAMETER_CACHING per default (flipping
this parameter makes regression test more than 20 faster).
- extended regression test
- NsfObjInfoObjectparameterMethod(): return not only the first
matching parameter, but the list of all matching ones. The
last optional argument was renamed from "name" to "pattern"
accordingly
- rename invalidateobjectparameter ->
parameter:invalidate::classcache
- rename invalidateobjobjectparameter ->
parameter:invalidate::objectcache
- bring cmds into alphabetical order
2012-09-26 Gustaf Neumann <[email protected]>
- first draft of per-object parameter caching (for per-object-mixins
and per-object properties).
nsf.c:
- fix potential bad interaction between per-object mixins and per-class
caching of object-parameters
2012-09-25 Gustaf Neumann <[email protected]>
- don't blindly register all object/class methods for XOTcl
Property Reform Part 2: better handling of per-object properties
nsf.c:
- changed "/class/ __objectconfigure" to "/obj/
__objectconfigure" to be able to handle per-object properties
on classes properly.
- renamed "info method parametersyntax" -> "info method syntax"
- renamed "/obj|cls/ info method parametersyntax" into "/obj|cls/
info method syntax"
- replaced "::nsf::methods::class::info::objectparameter" by
"::nsf::methods::object::info::objectparameter"
- new command "::nsf::parameter::specs ?-configure? ?-noposargs?
slotobjs": convert provided slotobjs into a list of parameter
specs
- new command "::nsf::parameter::get list|name|syntax
parameterspec": convert parameter spec into syntax form, or
retrieve pieces of information from it (can be extended in the
future)
- added more or less generic list handling functions
TclObjListFreeList(), TclObjListNewElement() and
TclObjListAdd() used by "::nsf::parameter::specs"
- replaced "::nsf::method::property /obj/ -per-object /name/
slotcontainer ?value?" by "::nsf::object::property /obj/
slotcontainer ?value?"
- added "::nsf::object::property /obj/ hasperobjectslots ?value?"
nx.tcl:
- new info methods
* "/obj/ info lookup parameter definitions"
* "/obj/ info lookup parameter names"
* "/obj/ info lookup parameter list"
* "/obj/ info lookup parameter syntax"
- changed "/cls/ info parameter definition ?name?" into
"/cls/ info parameter definitions ?name?" since ir returns
a list. Still, "list" or "syntax" won't be plural
2012-09-22 Gustaf Neumann <[email protected]>
- renamed timing variable from "time" to "ms"
- added timing statistics
2012-09-21 Gustaf Neumann <[email protected]>
- generalize handling for per-object-properties
- added additional file for regression test
2012-09-19 Gustaf Neumann <[email protected]>
Property reform part 1:
- disallow protection modifiers for "properties" and
add new flag "-accessor" to "property" and "variable"
This changes definitions like
Class create C {
:property {a a1}
:public property {b b1}
:protected property {c c1}
:private property {d d1}
}
to
Class create C {
:property {a a1}
:property -accessor public {b b1}
:property -accessor protected {c c1}
:property -accessor private {d d1}
}
since "properties" are always public accessible over the
"configure" and "cget" interface, but the accessors methods
might not be public. The value of the accessor might be also
"none" (specifying explicitly that no accessor is wanted) or
"", which means: use the default. Same holds for "variable"
- disallow parameter option "incremental" and change it to a
flag of the property or variable. The motivation for this is
due to the fact, that "incremental" is a property of the
accessor, and not of the value.
old:
Class create C {
:property foo:int,incremental
:variable bar:int,incremental
}
new:
Class create C {
:property -incremental foo:int
:variable -incremental bar:int
}
- disallow "public class property" and friends since these are
not needed
- removed parameter property "noaccessor"
- removed "nx::configure defaultPropertyCallProtection" and
method hook "__default_property_call_protection"
- introduced "nx::configure defaultAccessor" and
method hook "__default_accessor"
- for the time being, "defaultAccessor" is "public" for NX and
XOTcl, will be changed to "none" in NX
- extended regression test (new file properties.test)
2012-09-15 Gustaf Neumann <[email protected]>
nsf.c:
- fixed parameter syntax for required nonpos args
- deactivate deletion of methods via nsf::object::delete during
shutdown to avoid missing slot forwarders called from destructors
nx.tcl:
- remove debugging output
- renamed testlog file, remove it on "make clean"
nsf.c:
- made argument of cget required
nx.tcl:
- added Tk-style methods "configure" and "cget"
- added additional regression test set for cget and configure
nsf.c:
- implemented cget as a configure-like method, dropped ensemble method
variant
nx.tcl:
- simplified "/obj|cls/ delete method" due to resolving capabilities in
nsf::delete::method
- fixed regression test to run all test again correctly
xotcl2.tcl:
- made destructor of Connection more robust such it does not depend on
accessor methods.
2012-09-14 Gustaf Neumann <[email protected]>
nsf.c:
- extended nsf::method::delete to handle ensemble names
nx.tcl:
- added tk/incr-tcl style cget methods on class/object levels.
- improve copy handling with other child-types of the slot container
working
- make sure to ignore non-slot-type objects in slot introspection
- worked on regression test until "methods.test". others are missing,
but maybe reconsideration
2012-09-13 Gustaf Neumann <[email protected]>
- updated 34 copyright notices
nx.tcl:
- rename the following internally called methods (not for XOTcl).
alloc -> __alloc dealloc -> __dealloc objectparameter ->
__objectparameter recreate -> __recreate
- from these methods, only __objectparameter is defined per default,
the others are defined on demand
changes to allow efficient tk/incr tcl compatible configure/cget
- refactored code to allow one to parameterize handling of required
flag for parameters
- don't flag an error when configure is called on an
initialized object (logic: if the object is initialized,
configure must have been called before, and the required
action must have been already taken).
- rename nx::Object.configure to nx::Object.__configure to free method
name "configure" for an e.g. tk-like configure
2012-09-10 Gustaf Neumann <[email protected]>
- finalize transition from old code
2012-08-28 Gustaf Neumann <[email protected]>
- fix frame scoping for myvar/myproc
2012-08-10 Gustaf Neumann <[email protected]>
- allow one to change title of a scripted document
- make doc beautifier more robust for invalid lists
- use explicit return in tutorial example scripts
2012-08-01 Gustaf Neumann <[email protected]>
- improve documentation
- use "nsf::relation $cl superclass" instead of "$cl configure
-superclass"
- minor documentation updates
nx::test:
- added summary at the end of "make test" via log file
- updated .gitignore
2012-07-31 Gustaf Neumann <[email protected]>
nx.tcl:
- set multiplicity for mixins and filters by default from 1..n
to 0..n to avoid error messages, when e.g. empty mixin lists
are configured. Setting empty mixin-lists is strictly
speaking not necessary, but this eases the code in cases the
lists are sometimes empty.
- handle cyclical superclass/class dependencies during object
system finalize
- extend regression test
2012-07-18 Gustaf Neumann <[email protected]>
nsf.c:
- ignore in internal calls to "dealloc" protection settings
- handle cyclical class dependencies during object system finalize
- extend regression test
2012-07-18 Stefan Sobernig <[email protected]>
- library/nx/nx.tcl: Following the code review, implemented a
first scheme for handling traces in setCheckedInstVar. This
gives us consistent behavior for defaults and traces
(valuechangedcmd) across classes and objects.
- tests/parameters.test: Adjusted the relevant tests