forked from emk/halyard
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRelease-Notes.txt
More file actions
executable file
·4559 lines (3780 loc) · 202 KB
/
Release-Notes.txt
File metadata and controls
executable file
·4559 lines (3780 loc) · 202 KB
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
0.5.34 - 12 June 2009
This release significantly improves the Halyard developer GUI in a number
of long-overdue ways:
1) We now support creating new Halyard-based programs from the GUI.
2) The "Recent Programs" list finally works.
3) We have an icon on the Macintosh.
4) Halyard's old SashFrame class has been replaced by a new AUI-based
GUI, complete with dockable palettes.
5) The listener's focus and scrolling behavior has been improved
significantly.
6) We now have a "Media Info" palette which shows the path and timecode
of whatever element the script is waiting on. This is experimental,
and will be refined further in future releases.
This release also includes a few compilation fixes for recent Ubuntu
versions of GCC. It probably wouldn't be too hard to get a very primitive
Linux port of Halyard running if anybody is interested.
This release introduces a new function in the unit test API,
RUNNING-ALL-TESTS?, which specifies if we are currently running
through our unit test sequence.
Brian Campbell (3):
Cairo: Remove warning for drawing 0-area rectangle outline
Merge branch 'autogen-update' of git@github.com:lambda/halyard
Halyard.sln: Don't build unnecessary projects in Libraries phase
Christian Persch (2):
autogen: Add -Wno-portability to automake invocation. Bug #529120...
autogen: Support for automake 1.11
Eric Kidd (26):
StartupDlg: Implement "recent files" list
ScriptEditor: Only scan for identifiers in source directories
StartupDlg: Implement "new program" radio button
Stage: Factor common code out of OpenDocument, NewDocument
StartupDlg: Rename mRecentFiles -> mHistory
Stage: Factor out AddFileToHistory calls
Reorganize .gitignore and add .DS_Store
Mac: Add application icon and Info.plist
wxAui: Convert StageFrame to use wxAui
wxAui: Convert ScriptEditor to use wxAui
wxAui: Reduce minimum window size for ScriptEditor
wxAui: Bug fix: Remove extra CreateToolBar call
wxAui: Save and restore frame sizes
DocNotebook: Make a note of a long-standing Mac bug
wxAui: Remove obsolete "TODO AUI" comment
Mac: Make CFBundleExecutable name uppercase
Remove ancient timecoder demo
wxAui: Convert Listener to use wxAui
wxAui: Tweak Listener behavior on Windows
ProgramTree: Get rid of useless "Cards" node
Merge branch 'aui' of git@github.com:emk/halyard
wxAui: Allow user to reset frame perspective to default
Bug fix: Cairo: Fix TransformRectToUnitSquare regressions
wxAui: Add a "Media Info" pane with paths & timecodes
Revert "HalyardCheckAssertion: Correct type of inTest to bool"
wxAui: Fine-tune spacing of "Media Info" palette
Robinson Tryon (11):
HACKING.txt: Clarify win32 build instructions
Remove unneeded declaration of Halyard::TStateDB
HalyardCheckAssertion: Correct type of inTest to bool
Include string.h explicitly when using strncpy
Remove extra specifier from ~StyleRep()
Make #endif lines use proper syntax
Change default values to have correct wxString type
Unit tests: Create/provide function running-all-tests?
/bugs: Add card /bugs/bug-f12767-measure-text-space-before-newline
/m4: Update ax_boost_unit_test_framework.m4 to the latest version
/m4: Update ax_boost_test_exec_monitor.m4 to the latest version
Rodney Dawes (1):
autogen: Only pass --enable-maintainer-mode when AM_MAINTAINER_MODE is...
0.5.33 - 4 June 2009
This release introduces a few more performance optimizations. At this
point, we believe that we are doing no unnecessary primitive calls for
basic element creation, and that primitive call overhead is no longer
the bottleneck. Since release 0.5.30.1, we have improved performance on
element creation by a factor of around 3, and on primitive call overhead
by a factor of around 20.
This release updates draw-text and draw-graphic to return the bounding
box of the item drawn. This can help DRAW methods avoid an extra
primitive call to measure text or a graphic.
Brian Campbell (3):
Performance: Remove extra primitive call to WakeUpIfNecessary
Performance: Only call StateDbUnregisterListeners if we have listeners
Performance: Disable trace logging for primitives
Eric Kidd (4):
Bug fix: Only expand WITH-DC argument once
Performance: Return bounding box from draw-text and draw-graphic
Don't build log messages for primitives if we don't need them
Merge branch 'master' of ssh://imlsrc.dartmouth.edu/var/lib/git/halyard
0.5.32 - 2 June 2009
In this release, we replace Halyard's offscreen drawing routines with
Cairo. Cairo is a fast, portable 2D graphics library, used by Firefox,
Gnome and many other open source projects.
We're merging the Cairo branch slightly ahead of schedule, because we're
in the middle of performance tuning, and Cairo appears to be
significantly faster than our old drawing code for at least one
operation (drawing rectangles in transparent overlays), and potentially
faster for a few other common operations.
Here is some data from the /benchmarking card. All times are in
microseconds, and numbers are accurate to the nearest 100 microseconds
or so. These benchmarks were performed in a Parallels VM on a year-old
MacBook Pro, and Halyard was compiled in Release mode.
Before Cairo
a. Clear opaque overlay 462 260
b. Fill opaque overlay 500 280
c. Clear alpha overlay 380 280
d. Fill alpha overlay 1982 382
e. Draw graphic 802 742
f. Mask 702 822
g. Draw text 1022 1120
h. Measure text 922 842
Operations (a)-(c) appear to be faster, although the improvement is near
the margin of error. Operation (d) has improved enormously (and
consistently, across many benchmarking trials). Other operations are at
or near the margin of error, with slight performance decreases in (f)
and (g). These latter two could very well be real--there are
non-trivial code changes on both paths. But as the values of (a) and
(c) in the first column show, equivalent operations can vary by a
hundred microseconds or so.
This release fixes several long-standing drawing bugs, and adds several
new APIs.
* Bug fix: Diagonal lines now work on transparent overlays
* Bug fix: Opaque images now on transparent overlays
Now that we're using Cairo for offscreen drawing, we can support all
drawing operations on transparent overlays. This means no more "image
with a single transparent pixel" hacks.
* New: draw-oval and draw-oval-outline
This version of Halyard includes two new drawing primitives. Note that,
in general, we don't intend to export a large number of these
special-purpose primitives. Instead, we hope to export Cairo's more
flexible API, which can draw a wide variety of images using a relatively
small set of functions.
* New: %graphic% now takes :scale, :scale-x and :scale-y parameters
* New: draw-graphic and measure-graphic now take :scale-x and :scale-y
parameters
On an experimental basis, we're now exposing the ability to resize
images. These parameters are floating point numbers, relative to a
scale 1.0. In the future, we _may_ decide to move the scale parameters
from %graphic% to %custom-element%.
Eric Kidd (33):
DrawingArea: Add basic Cairo support
DrawingArea: Add support for DRAW-OVAL and DRAW-OVAL-OUTLINE
DrawingArea: Factor common code into CairoContext
DrawingArea: Draw rectangles using Cairo primitives
Add example code for diagonal lines
DrawingArea: Draw lines using Cairo
DrawingArea: Clear DrawingArea using Cairo
DrawingArea: Draw letters using Cairo
DrawingArea: Rename CairoContext::GetSurface -> CreateSurface
BREAKS WIN32: DrawingArea: Re-implement Mask using Cairo
DrawingArea: Delete DrawingAreaOpt.{h,cpp}
BREAKS WIN32: DrawingArea: Draw bitmaps using Cairo
Remove last vestigial support for _INCR_X, etc.
DrawingArea: Add scaling to DRAW-GRAPHIC
DrawingArea: Move CairoContext into a separate file
pixman: Put pixman.lib into pixman build directory
DrawingArea: Factor out bitmap measuring code
BREAKS WIN32: DrawingArea: Composite onto stage using Cairo
Stage: Use Cairo to manage clipping regions
Cairo: Create a CairoSurfacePtr class
Cairo: Extract CairoBitmapContext from CairoContext
BREAKS MAC: DrawingArea: Use a cairo_image_surface instead of a wxBitmap
Cairo: Include error strings in error messages
FIXES MAC & WIN32: ImageCache: Store loaded images as Cairo surfaces
Rename (graphic|surface) -> image in ImageCache, DrawingArea APIs
Clean up *Pic primitives.
Stage: Clear path after setting up clip
Make splash screen copyright text more attractive
Benchmark: Allow (benchmark ...) form to appear anywhere
Benchmark: Add benchmarks for simple drawing calls
Merge branch 'cairo' of ssh://imlsrc.dartmouth.edu/var/lib/git/halyard
DrawingArea: Do not try to fill 0-area shapes
Merge branch 'v0.5.31-fix' of ssh://imlsrc.dartmouth.edu/var/lib/git/halya
0.5.31.1 - 2 June 2009
This release fixes a regression introduced by the previous release.
Brian Campbell (1):
Bug fix: Initialize :shown? on %custom-element% correctly
0.5.31 - 1 June 2009
This release introduces a number of simple performance optimizations.
Element creating has always been slow, so we have done some
benchmarking, and discovered several quick and easy performance
optimizations that buy us a good deal of extra performance. We also
expose a bit more of our benchmarking to Halyard programs, so we
can more easily compare the differences in performance depending on
the size of the program we're running or other factors affected by
the program (like monkey patching).
In order to set up engine nodes, such as setting their in-drag-layer?
and shown? properties, after they have been created, we have created a
new method that is overridable on nodes,
.FINISH-INITIALIZING-ENGINE-NODE. This is called after
.CREATE-ENGINE-NODE, to allow further initialization to be overridden
separately.
Brian Campbell (5):
kernel.ss: Cache results of have-prim?
nodes.ss: Cache node .full-name computation
Move Halyard benchmarks from test into runtime
Add Noop and UntracedNoop primitives for benchmarking
Performance: Don't set element parameters to default values on setup
0.5.30.1 - 27 May 2009
This release is a build fix for 0.5.30, which did not have all of the
build dependencise listed and thus could not be reproducably built.
Brian Campbell (2):
Build fix: Remove unnecessary libraries from PLT build step
Build fix: add extra dependencies to wxRC
0.5.30 - 26 May 2009
This release upgrades the engine to be able to run on top of wxWidgets
2.9 RC 3, while maintaining compatibility with wxWidgets 2.8 for the
Mac build. We updated wx and wxIE to their latest versions, and
forward ported our patches to apply to them. We also have also sent
some of these patches upstream, in the hope that we will no longer
have to maintain them separately. We also did some more Unicode
cleanup in order to build against the new wxWidgets.
Things to look out for, that may have broken or changed; we have tested
most of these things, but there may be corner cases that were missed:
- Keyboard commands. We fixed a few bugs with keyboard commands such
as the escape key, but there may be something we missed.
- Text entry widgets, and other native controls.
- Performance. We have not noticed any performance regressions, but
it would be good to be on the lookout.
- The script editor.
The patches below marked as BROKEN mean that the build was broken, the
program would not launch, or the program had significant crashing bugs
at that stage of the porting process. We have allowed these to remain
in the history to document the upgrade process, but marked as BROKEN so
we can avoid them when bisecting history and the like.
Brian Campbell (5):
BROKEN: Port to wx 2.9
BROKEN: wxIE: Re-apply constructor race fix to wxactivex.cpp
BROKEN: wxIE: Port our interface changes forward
BROKEN: Add more required wxWidgets projects and update dependencies
BROKEN: Override wxGUIAppTraits to install custom event loop in wx 2.9
Eric Kidd (16):
BROKEN: Update Quake 2 for wxWidgets 2.9
BROKEN: Fix custom build using wxrc.exe
BROKEN: Organize projects into folders
BROKEN: wxWidgets: Use non-DLL C runtime
BROKEN: Remove unusued Halyard.sln configurations
BROKEN: Replace wxIE with new version from wxPython
Fix cross-fade crash using wxMemoryDC::SelectObjectAsSource
Mac build fix: Explicitly convert "About" text to Unicode
ScriptEditor: Replace irregular use of L"..." with wxT("...")
wxWidgets: Ignore build byproducts and Emacs backup files
ScriptEditor: Always use standard syntax highlighting
ScriptEditor: Reapply our FindText patch
Remove deprecated wxWidgets 2.6 APIs
ScriptEditor: Fix indentation, etc., for square brackets
ScriptEditor: Properly handle enter key in find dialog
Stage: Intercept Escape manually if menu accelerator fails
0.5.29.1 - 18 May 2009
This release fixes a build regression in the previous release. When we
upgraded to Windows SDK 6.1, we hadn't tested the PLT build process,
which wound up failing.
Brian Campbell (1):
Build fix: libs/plt
0.5.29 - 23 April 2009
This is the first official build with the Electric Gibbon branch
merged; Electric Gibbon is a new testing tool for simulating clicks on
elements while jumping to each card. See the release notes for the
Electric Gibbon branch releases for details.
This release adds the %url-request% class and subclasses, to support
communicating over HTTP asynchronously from Scheme, including GET and
POST requests that send and parse JSON. Support for proxies is
incomplete in this release. This is a work in progress; the API is
not yet stable.
This release updates the primitive logging machinery. Primitives are
now logged along with their arguments before they are executed, to let
you tell what primitive was called before a crash occurred. They are
also logged after the primitive returns, to show the return value.
Brian Campbell (10):
Installer: Pass "." as argument in shortcuts instead of full path
TPrimitives: Move formatting of strings and booleans into TValue
TPrimitives: Remove TArgumentList::GetListArg() and corresponding
operator>>
TPrimitives: Suppres noisy primitive logging using log4cplus
TPrimitives: Suppress logging of fewer primitive calls
TPrimitives: Move all operator>> declarations to one place
TPrimitives: Log prim calls before and after they are executed
TPrimitives: Remove unused int16 version of operator>>
TPrimitives: Factor out many formulaic operator>> functions with a
template
TPrimitives: Reverse direction of >>> and <<< when logging primitives
Eric Kidd (28):
eg: Make infinite loops result in non-fatal errors
TLogger::ConsoleAlert: Display "WARN:", not "WARNING:"
Allow unrestricted access to the network
Upgrade to libcurl v7.19.4
Add asynchronous %url-request% element
%url-request%: Properly clean up engine element
%url-request%: Make changes suggested in code review
Add more trace statements for elements and %url-request%
%url-request%: Report HTTP status >= 400 as a failed transfer
Mac: Require libcurl v7.19.3
%url-request%: Add HTTP POST support
%url-request%: Add support for getting the response Content-Type
%url-request%: Add support for sending 'Accept' header
EventDispatcher: Fix argument name for DoEventProgressChanged
/features/browser: Extract %progress-bar% class
%url-request%: Implement progress events
%url-request%: Make %easy-url-request% part of the official API
%url-request%: Rename .success? -> .succeeded?
json: Implement %json-request%
json: Send "Accept: application/json" with JSON requests
json: Merge most of %json-request% into %easy-url-request%
%curl-request%: Add stub function for configuring proxy servers
Update to Windows SDK v6.1
proxy: Query for IE settings and log
proxy: Fix boolean casting warning
proxy: Assume ":" and "::" in proxy or proxy_bypass mean "no proxy"
proxy: Honor proxy, but ignore proxy_bypass for now
Merge branch 'master' of git://github.com/lambda/halyard
Tony Garnock-Jones (1):
json: Import 3rd-party JSON library
0.5.28-gibbon6 - 25 March 2009
This release adds a number of enhancements to Electric Gibbon, including
support for using release engines with halyard:jump_each:test, support for
catching multiple Halyard errors in a single test run, and support for
detecting certain kinds of infinite loops during halyard:jump_each:test.
Detecting multiple Halyard errors required us to add Yet Another Logging
hack. Since the old TLogger code was about 20% archaic code, and about 80%
festering hacks, we refactored it into something cleaner and started using
log4cplus for the actual output. The new code is very shiny, but alas, we
had to add one last tiny hack to get the our new features working anyway.
If your halyard:jump_each:test runs are taking way too long, try:
rake halyard:jump_each:test MODE=release
PORTING NOTES:
- Remove config/developer.prefs and decide whether to use
ENABLE-DEVELOPER-TOOLS-IN-ALL-MODES!.
- All of the old logging functions are deprecated, though they should
still be fully supported by deprecated.ss. I'll be putting up a wiki
page explaining the new logging functions and levels shortly.
Brian Campbell (2):
Mac build fix: Cast to uint32 when setting /system/clock/milliseconds
log: Remove redundant (cat ...) statements from nodes.ss
Eric Kidd (42):
log: Combine gLog and gDebugLog into unified logging API
log: Remove environment-error
log: Remove TLog mask support
log: Fix comment in TPrimitives.h
log: Replace WITH-ERRORS-BLOCKED with WITH-EXCEPTIONS-BLOCKED
log: Promote expensive event logging to a debug message
log: Mac build fix: Add abort() to TLogger::Fatal
log: Move static functions from TLog to TLogger
Merge branch 'master' of ssh://imlsrc.dartmouth.edu/var/lib/git/halyard in
log: Move TLog into its own file
log: Move vsnprintf (and buffer) into TLogger
log: Add LevelFromString and LevelToString functions
log: Move warning inteception code to TLogger
log: Reorder TLog::Warning and TLog::Error
log: Bug fix: Use correct level for LOG-ERROR and FATAL
log: Move alert-display code into TLogger
log: Move ExitWithError into TLogger
log: Make level-based conditionals simpler
log: Get rid of level-specific functions in TLog
log: Move trace messages into new Trace.log
log: Log loader/stage2 progress at level TRACE
log: Log user-initiated events, etc., at level DEBUG
log: Test fix: Remove remaining debug-log references
log: Log "unexpected errno" at level TRACE
log: Add rudimentary log4cplus support
log: Move log4cplus configuration to external file
Add a SetEnvVar function
Add FileSystem::Path::operator/
log: Configure log4cplus using an external properties file
log: Add __declspec(noreturn) to TLogger::Fatal
log: Remove old TLog class
log: Clean up log4cplus initialization
log: Register log files with CrashReporter
log: Ignore rolled-over log files in Common/test
log: Shrink log file sizes considerably
log: Log command-line-error at level DEBUG
Remove TDeveloperPrefs
halyard/test: Allow users to switch from RUNTIME to AUTHORING mode
eg: Clean up "New:" lines in output
eg: Try to avoid infinite loops when replaying actions
eg: Report multiple errors from a single run of jump_each
eg: Allow the use of release *.exe with jump_each
0.5.28-gibbon5 - 18 March 2009
The previous implementation of %deep-test-planner% had a number of issues
which were missed in 0.5.28-gibbon4, mostly because the code was such a
snarl. In this version, rerunning actions to return to a previously known
state should work much more consistently.
Eric Kidd (1):
eg: Refactor %test-planner% for clarity and fix bugs
0.5.28-gibbon4 - 18 March 2009
Electric Gibbon can now update its test plan to include actions that
only become available once other actions have been performed. This
required porting our event API from Swindle to Mizzen (although we do
have a reasonably good backwards compatibility layer).
Eric Kidd (11):
eg: Add unit tests for Swindle-based events API
eg: Reimplement events using Mizzen instead of Swindle
eg: Only generate test-actions if .supports-user-interaction? is true
eg: Generate real events, not just .click
eg: Move run-next-test-action to %test-planner%
eg: Code review: Add documentation for events.ss
eg: Run test actions hidden behind other test actions
eg: Don't include any more of srfi/1 than necessary
eg: Merge test action HOVER into CLICK
eg: Print "Repeating" when returning to a card
eg: Code review: Reorder %deep-test-planner% and add comments
0.5.28-gibbon3 - 10 March 2009
We're currently running Electric Gibbon heavily against in-house projects.
Here's a small bug fix to make it stop clicking on invisible buttons.
Eric Kidd (1):
eg: Don't click on elements with :shown? #f
0.5.28-gibbon2 - 5 March 2009
This release changes the interface for invoking jump_each:
rake halyard:jump_each [START=/card/name] # Jump to each card.
rake halyard:jump_each:test [START=/card/name] # Jump to each and test.
This allows existing programs to keep calling an old-fashioned 'jump_each'.
Eric Kidd (4):
eg: Split %test-planner% into %(null|shallow)-test-planner%
eg: Only run test actions when halyard:jump_each:test called
eg: Add START parameter to halyard:jump_each tasks
eg: Code review: Add missing word to comment
0.5.28-gibbon1 - 4 March 2009
This release contains some buildscript improvements by Brian, and a
substantial amount of work towards an "Electric Gibbon" stress-testing
tool that allows 'rake halyard:jump_each' to click on buttons.
Porting notes:
* Please do not use (gensym) to generate names for anonymous elements.
Instead, please pass ':name #f' and let Halyard generate a name. Pay
careful attention to new-FOO functions that wrap (%FOO% .new ...),
which tend to be the major offenders.
Brian Campbell (10):
tools: Add announce-build.sh tool for emailing build announcements
tools: Add announce-build-freshmeat.rb for pinging freshmeat
tools: Add irc announce bot, for announcing a build on IRC
fix-prologues.pl: Put correct comment in .rake and Rakefiles
tools: Add GPL headers to announce scripts
tools: Fix permissions on announce scripts
tools: Move #! lines back to beginning of files
announce-build-freshmeat.rb: Don't print responses unless -v or --dry-run
Buildscript: Add tool for staging and releasing updates on server
eg: Comment fixes following code review
Eric Kidd (27):
halyard.el: Indent backwards-compatibility APIs properly
eg: Initial files for Electric Gibbon test tool
eg: Implement a primitive TEST-ACTION form
eg: Allow test actions to be created manually
eg: Recurse over child elements when listing test actions
eg: Look for elements on groups, too
eg: Document public APIs
eg: Add a test-action for %clickable-zone%
eg: Remove unused eq-with-gensym? hack
eg: Centralizing (gensym) calls for anonymous elements
eg: Make anonymous element names semi-stable
eg: Add %test-action% .key method
eg: Issue a warning about gensym'd node names
eg: Add extremely primitive test planner
eg: Test %test-planner% with an actual set of actions
eg: Add support for resuming a test where we left off
eg: Remember what card a %test-planner% is associated with
eg: Document %test-planner%
eg: Add %test-planner% .done?
eg: Don't generate test actions for disabled elements
eg: Integrate Electric Gibbon into halyard:jump_each
eg: Improve halyard:jump_each output
eg: Drain deferred thunk queue after each action
eg: Remove delays during jump_each
eg: Add :skip-when-testing-card? flag to %element%
eg: Don't open browser when running jump_each on halyard/test
eg: Code review: Rename :skip-when-testing-card? -> :skip-test-actions?
0.5.28 - 25 Feb 2009
The only engine change in this release is to remove a few messages
that the crash reporters logs to the debug log, which were obscuring
the underlying message in the report title.
This release also includes several build script changes. We had
tagged 0.5.27 before updating the build scripts, so this release
contains the build script changes we used to build 0.5.27. In
addition, we have added a command to buildscript/commands.rb to
allow projects to check out and tag from Git.
Brian Campbell (10):
Convert .rake files from DOS to Unix line endings
freeze.rake: Fix ignore regexp for Emacs backup files
buildfile.rb: Push engine binaries to Git repository
buildfile.rb: Don't use git clone --no-checkout
buildfile.rb: Pull and push from Git via ssh: URLs, not git:
buildfile.rb: Remove Subversion support
HACKING.txt: remove outdated instructions, and mention modern layout
buildscript: README.txt fixes
buildscript: commands.rb: Add command for cloning from Git
Crash reporter: Remove message about finding curl.exe
0.5.27 - 17 Feb 2009
This release reorganizes the support files used by the installer and the
updater. In particular, 3rd-party binary files are expected to live in
binaries/, and configuration files now live in config/.
Eric Kidd (10):
Replace test/buildfile.rb with one from a modern project
reorg: Expect QuickTime support files in binaries/
reorg: Expect GnuPG files in binaries/
reorg: Expect curl in binaries/
reorg: Move trustedkeys.gpg to config/
Explain why moving AUTO-UPDATE is tricky
reorg: Move TRUST-PRECOMPILED to config/
reorg: Move Autorun.inf to config/
Include VP3 source code in installer
Merge branch 'master' into reorg
0.5.26 - 6 Feb 2009
This release fixes several broken pieces related to the update
installer. When we did the reorg to put the executables into runtime,
which is deployed to engine/win32, we did not update everything else
to match. This release adds UpdateInstaller.exe to the list of
binaries released to our programs, fixes various units tests and adds
them to the main 'rake test' task, and updates the installer to
install UpdateInstaller.exe to the place the updater expects it.
Brian Campbell (6):
.gitignore: Ignore doc directory
UpdateInstaller: Point unit tests to runtime instead of Win32/Bin
Rakefile: Call UpdateInstaller and buildscript tests during 'rake test'
buildfile.rb: Add UpdateInstaller.exe to list of released binaries
Installer: Fix installer rake task to point to windows-installer-final.iss
Installer: Always install UpdateInstaller.exe in program root
0.5.25 - 5 Feb 2009
We're getting ready for an alpha release of one of our in-house programs,
so it's time to update the copyrights and license information, and fix
some bitrot in the installers and build system.
This release also modifies Quake 2 to stop writing automatic save files and
configuration data to disk.
Brian Campbell (5):
Updated buildscript to latest version
Updated buildscript to latest version
Rakefile: updated 'sign' task to refer to current engine location
Installer: Include On2_VP3.qtx again
Merge branch 'master' of ssh://imlsrc.dartmouth.edu/var/lib/git/halyard
Eric Kidd (6):
Quake 2: Don't write configuration or auto-saved games to disk
Merge branch 'master' of ssh://imlsrc.dartmouth.edu/var/lib/git/halyard
fix-prologues.pl: Update for 2009 and extend to *.rb files
Update copyrights to 2009
Don't use windows-installer.iss for all versions of *.iss file
LICENSE.txt: Update for 2009 and latest changes
0.5.24 - 9 Jan 2009
This is a minor release fixing a couple of installer-related issues.
Eric Kidd (2):
Add qtcheck.dll to list of files in a binary release
Fix path for the updater icon
0.5.23 - 23 Dec 2008
This release includes a new, standardized system for building installers
for Halyard applications. Just copy config/windows-installer.iss from
halyard/test, customize it for your program, and run:
rake halyard:installer
This release also removes the code that forced QuickTime safe mode, because
safe mode fails on some machines that work fine in accelerated mode. Yes,
this is not very convenient.
Eric Kidd (8):
Add experimental halyard:(un)freeze task
Update halyard-test *.iss to build primitive installers
Add halyard:installer task to standard Rakefiles
Installer: Conditonally enable more files
Merge installer template into config/windows-installer.iss
Stop forcing QuickTime safe mode (again)
Installer: Begin to split out program-specific parts
Installer: Implement AppShortName using CustomMessages
0.5.22 - 25 Nov 2008
We've finished overhauling the server-side portion of the crash reporter,
and we need some more changes on the client side. This release includes
both fixes to the crash reporter infrastructure, and workarounds for
various issues discovered by the crash reporter.
Eric Kidd (6):
Add crash report URL to halyard/test
Force QuickTime to run in Safe/GDI mode
Include full text of PortAudio error messages
Crash reporter: Search for curl executable in script and runtime dirs
Add %force-crash function
Crash reporter: Display error if we can't create temp dir
0.5.21 - 28 Oct 2008
Things are definitely beginning to stabilize a bit as we approach 0.6.
We're still planning to do some work on installers, and on various Quake 2
issues.
This release improves support for testing code that uses (jump ...),
state-db.ss and data-file.ss. It also clears the state-db on each reload,
and catches attempts to override an existing member function using ELEM.
Eric Kidd (7):
Clear gStateDB when script is reloaded
Don't allow ELEM to clobber inherited methods
Updater: Fix AUTO-UPDATE-POSSIBLE? to always use DIR
Allow expressions to be passed to ASSERT-JUMPS
Trap unexpected JUMPs while running unit tests
state-db: Add better supporting for writing unit tests
data-file: Add better support for writing unit tests
0.5.20 - 13 Oct 2008
This engine extends %CLICKABLE-ZONE% with support for %BASIC-BUTTON%'s
.CLICK and :COMMAND features. It also improves the buildbot support and
re-enables the old wxWidgets-based crash reporter on Win32.
One new set of restrictions to be aware of: %ELEMENT% .NEW is much better
about checking for errors, and no longer allows elements to be attached to
nodes that are being destroyed. This may break some existing code. Of
course, there's a strong argument that such code was already broken, but
just in a much less obvious way.
Please run 'rake halyard:jump_each' before releasing these engines to
Halyard-based projects. Thank you!
Brian Campbell & Eric Kidd (2):
halyard-unit: Don't skip first test case when running all
Bug fix: Fix %clickable-zone% .click
Eric Kidd (7):
mzscheme: Display error dialog when VirtualAlloc fails
Don't allow %element% .new to parent elements to a static node
Remove useless junk from error dialogs
Add standard .click method to %clickable-zone%
Jumping to each card: Don't end playback of looping audio
Bug fix: Re-enable FancyCrashReporter on Windows
Crash reporter: Fix bugs and add support for COMMAND_LINE mode
0.5.19 - 7 Oct 2008
The major new features in this release are (defer body ...), which is
equivalent to (run-deferred (fn () body ...)), and some rudimentary support
for jumping to every card in the program:
rake halyard:jump_each
You can skip a group or card by setting :skip-when-jumping-to-each-card?:
(card /sample (%card% :skip-when-jumping-to-each-card? #t)
...)
After updating to this engine, run:
rake halyard:update_tools
Also of interest are the new resolve-(static|running)-node methods and the
(rather kludgy) new metadata-attr.
Eric Kidd (8):
halyard-unit: Call IDLE after each test card
Turn the warning "Transition: way too long" into a debug message
buildbot: Make it easier to call JUMP from the command-line
Jumping to each card: Begin with a basic implementation
Jumping to each card: Add 'rake halyard:jump_each' task
config/boot.rb: Add ENV['HALYARD_RUNTIME'] to search path
Factor metadata-attr out of card-sequence.ss
Jumping to each card: Allow cards and groups to be skipped
Eric Kidd & Robinson Tryon (2):
halyard-unit: Allow stopping and resuming test suites
Add .resolve-static-node and .resolve-running-node methods
Eric Kidd & Brian Campbell (1):
Add a (defer ...) special form
0.5.18 - 1 Oct 2008
We decided to rename "caution" to "warning", because "warning" is more
consistent with the terminology used by other interpreters and compilers.
We also improved the warning dialogs and added the unit-test macros
ASSERT-WARNS and ASSERT-JUMPS.
Several low-level APIs were exported from drag.ss to make it easier for
people doing complicated things with the drag-and-drop framework.
Note that we provide backwards-compatibility stubs for all renamed
functions. Existing code should require the following file:
(require (lib "deprecated.ss" "halyard"))
Once this is done, you won't need to worry about APIs deprecated in the
future.
Eric Kidd (7):
Win32: Show "Warning" instead of "Error" in caution dialogs
Mac: Show "Warning" and "Error" in appropriate dialogs
TLogger: Rename "caution" -> "warning"
mizzen: Add ASSERT-WARNS macro
halyard-unit: Add ASSERT-JUMPS for unit-testing JUMPs
Rename NON-FATAL-ERROR -> REPORT-ERROR
buildbot: Force WAIT to return immediately in COMMAND_LINE mode
Eric Kidd & Brian Campbell (1):
drag.ss: Export some more low-level drag machinery
0.5.17 - 29 Sep 2008
This release makes the CAUTION infrastructure more pleasant to deal with.
Specifically, the unit test framework now captures caution messages, and
several related engine-level problems have been fixed.
Eric Kidd & Brian Campbell (4):
Bug fix: Don't call TLogger from interrupt level
%invisible-element%: Do not show caution when deleted
Treat cautions as unit test failures
.gitignore: Ignore Quake 2 save files
0.5.16 - 26 Sep 2008
This release adds several features for making sim development more
convenitent; we add the ability to define teleport locations, along
with associated setup code, in Quake, so you can easily jump into the
middle of a sim. See the documentation in halyard/quake2/teleport.ss
for further details. We also fixed a bug that causes pause/resume to
break wait points on Vorbis audio streams.
We have also made several changes to support the automatic build bot,
and as part of this, we have begun showing CAUTION message dialogs in
AUTHORING mode.
Eric Kidd (6):
Lazy loading: Improve a misleading error message
Buildbot support: Add git:force_clean Rake task
Move %static-node-trampoline% .responds-to? next to .method-missing
Buildbot support: Rake tasks for full and quick build prep
Show caution dialog in AUTHORING mode
Make .responds-to? always return a boolean value
Eric Kidd & Brian Campbell (3):
AudioStream: Correctly preserve samples played across pause/resume
Quake 2: Add support for teleporting when developing levels
FileSystem.cpp: Remove unexpected errno cautions
0.5.15.1 - 8 Sep 2008
This release is simply a build fix for the 0.5.15 release, though it
contains a few other minor changes that went in between the 0.5.15 release
and now. The build fix is to reduce LOG_APAGE_SIZE back down to 16, since
17 causes the engine to crash on some computers.
Brian Campbell (2):
Decrease LOG_APAGE_SIZE to 16 after build failure
Documentation: Update HACKING.txt to include a 'rake libs' step while...
Eric Kidd (5):
Mac build fix: Remove __attribute__ from TLogger::ExitWithError
Code review: Explain how script-load-error works
Code review: Explain how ModelFormat and Migrate work
Build: Clean up default Rake tests for script projects
Buildbot support: Display Caution messages on console
0.5.15 - 5 Sep 2008
This release consists of many small cleanups and bug fixes. There are a
few API changes and improvements:
- It is now possible to refer to static nodes anywhere in the program
as /foo/bar (instead of @/foo/bar), even if they're not in scope.
- DEFINE/P is once again part of the public API.
- To access the state-db, you must require it:
(require (lib "state-db.ss" "halyard"))
- To run test suites in a Halyard script, use:
rake halyard:test
- You'll want to version control ignore rules for config/cached.conf.
There is also extensive new support for running Halyard under Buildbot and
similar command-line tools. To do access this mode, see the new
'halyard_command' function in Rake.
Brian Campbell (8):
Unit test framework: Display errors in order they occur
Unit test framework: Clean up leftover temporary parent elements in...
Implement simpe static node path syntax
Save number of files loaded to an ignroable "cached configuration" file
Save separate file counts for lazy and non-lazy loads
Editor: Load syntax highlighting information even when first load fails
Code review: Fix migration code and ambiguous if statement braces
Merge branch 'master' of ssh://imlsrc.dartmouth.edu/var/lib/git/halyard
Eric Kidd (12):
Cleanup: Remove exclamation point from organization name
Cleanup: Add test cases, comment fixes for measure-text
Cleanup: Fix %browser% test cases to work without network
Move state-db API into separate file
Bug fix: Re-export define/p
Increase LOG_APAGE_SIZE to 17 for Windows XP
Bug fix: Clean up interactions between EXIT-SCRIPT and JUMP
Buildbot support: Add SUCCESS? parameter to exit-script
Buildbot support: Add support for running in command-line mode
Buildbot support: Make errors accessible in COMMAND_LINE mode
Buildbot support: Make test failure messages available to scripts
Lazy loading: Don't lose track of current card after errors
William Scavone (1):
New Halyard icons to replace the old Tamale icons
0.5.14 - 29 August 2008
Halyard now supports lazy loading! To enable it, open a listener and type:
(set! (lazy-loading-enabled?) #t)
Then, reload your script and keep an eye on the status bar at the bottom of
the window. You should see messages of the form "Loaded /features."
whenever a module gets loaded.
If you think the lazy loader is getting a little too eager, and loading
huge files too soon, please see the Debug.log for details on why certain
modules were loaded. And if you discover any bugs, please get in touch
with Eric immediately, and he'll investigate them--this code is still very
experimental.
Other interesting changes:
- The Debug.log is back!
- The "Open" dialog box now defaults usefully once again.
- The (set-status-text! msg) function may be used to display debugging
information at the bottom of the developer-mode window. Please don't
use this when loading code, because it will make it impossible to see
important information from the engine.
Brian Campbell (3):
Cleanup Rakefile and build process
Walk up directory hierarchy to guess at appropriate current directory
Demand loading: Code review comment updates and fixes
Eric Kidd (23):
Demand loading: Register groups with engine, not just cards
Demand loading: Remove extra RegisterGroupMember layer
Fix boot.rb to work in projects with engine/src directory
Give a better error when attempting to show an invisible Widget
Simplify Widget::Show error-handling further
Demand loading: Rename script-paths.ss -> external-nodes.ss
Demand loading: Add *enable-demand-loading?* variable
Cleanup: Make trace.ss into a private API
Demand loading: Detect nodes declared in wrong file
Demand loading: Implement rudimentary demand loader
Demand loading: Add GroupItemData for mCardsID
Demand loading: Change register-group-member parameters for clarity
Demand loading: Make find-static-node work on external-group children
Demand loading: Show "open folder" controls for unloaded groups
Demand loading: Load groups when opened in GUI
Demand loading: Detect confusion of cards and groups
Demand loading: Prevent adding children to unloaded groups
Demand loading: Show loading information using SetStatusText
Demand loading: Fix crash when %kernel-valid-card? triggers load
Demand loading: Rename to "lazy loading"
Lazy loading: Don't save *.ss file count when lazy loading enabled
Lazy loading: Address code review comments on ProgramTree
Lazy loading: Rename mIsLazyLoadingPotentiallyEnabled
0.5.13 - 25 August 2008
In the past, several internal Halyard APIs have actually been exported to
the public. In this release, we make those APIs private. The new rule:
Anything in the halyard/ collection is a public API[1]. Anything in
halyard/private/ is for internal use only, and it may change drastically
without warning.
We also loosen up a type constraint on %BROWSER% .PATH.
If you find that you need to use APIs from halyard/private/, please let us
know, and we'll make a new release shortly.
[1] You may want to look at the top of halyard/private/api.ss for a list of
suspicious and deprecated functions. We probably won't revist these until
Halyard 0.7.
Eric Kidd (8):
Test fix: Make sure we actually run all Halyard test cases
Improve error message for (@/static-node .instance-of? %node%)
Update to latest wxquake2, with new README-WX.txt and license files
Remove unused build configurations
Move private *.ss files to halyard/private
Hide private nodes.ss and kernel.ss APIs
Allow use of PLT paths with %browser%
Bug fix: Load built-in-identifiers.ss from correct directory
0.5.12 - 30 July 2008
This release makes several API changes intended to support demand-loading.
In particular, the file start.ss must now be wrapped in a module
declaration, and REQUIRE statements should be replaced by appropriate
EXTERNAL-GROUP and EXTERNAL-CARD statements.
For example, an old-style start.ss might look like this:
(require (file "example.ss"))
(require (file "example/card.ss"))
A new-style start.ss would look like this:
(module start (lib "halyard.ss" "halyard")
(external-group /example)
)
The second line in the original file would move to the end of example.ss,
where it would become:
;; In example.ss.
(external-card /example/card)
All non-group, non-card *.ss files should move into an appropriate
subdirectory of collects. You should continue to load these files using
REQUIRE, as before.
Eric Kidd (4):
Turn start.ss into a regular module
Repository fix: Delete bogus lower-case "common/test/scripts" tree