-
Notifications
You must be signed in to change notification settings - Fork 0
/
history.txt
1295 lines (1091 loc) · 71.6 KB
/
history.txt
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
This history file covers all modifications made to PRPNet Client/Server.
Version 5.7.9: October 25, 2024 - New Release
all: Remove references or change references to my old e-mail account.
prpserver: When serverstatssummaryonly=1 for servertyp=1, accumulate skipped tests and
Primes/PRPs found for the summary row.
Version 5.7.8: June 8, 2024 - New Release
prpserver: Fixes for handling Generalized Repunits.
Version 5.7.7: May 17, 2024 - New Release
prpclient: Do not use PRST for d > 1 because it doesn't support Generalized Repunits.
prpserver: Updates for handling Generalized Repunits.
Version 5.7.6: May 13, 2024 - New Release
all: Renamed server type XYYX as Leyland
Add server type Lifchitz
prpadmin: Added options 21, 22, and 23 to delete data on server by k, b, or n.
prpserver: Support new prpadmin options.
Version 5.7.5: May 7, 2024 - New Release
prpserver: Ensure d = 1 if not specified for new candidates for servertypes that need it.
prpclient: Fixed issue where using prst would terminate the client.
Version 5.7.4: April 14, 2024 - New Release
all: Add support for c up to 2^63.
prpclient: Modify handling of prst output to correctly identify prime and to get time for the test.
Version 5.7.3: March 31, 2024 - New Release
prpclient: Use clock time to get time used by the helper program instead of the output of that program.
prpserver: Fix issue with input files that have multiple ABC lines.
Version 5.7.2: March 17, 2024 - New Release
prpclient: Fix issue with fixed kbn and fixed bnc formats introduced in 5.7.0.
Version 5.7.1: March 15, 2024 - New Release
prpclient: For generalized repunits, if using pfgw for the PRP test and b % 3 = 0, then
tell pfgw to use base 5 for the PRP test.
Version 5.7.0: March 14, 2024 - New Release
all: Add support for (k*b^n+c)/d forms.
The new client should be backward compatible to older servers.
The new server should be backward compatible to older clients, except
when d > 1. It will not send work to those clients.
To upgrade older servers, run the upgrade_to_5.7.0.sql script in your db.
Version 5.6.6: December 14, 2023 - New Release
prpclient: Fix prst usage error for some PRP tests.
Separate out PRP and primality testing program checks.
Verison 5.6.5: December 12, 2023 - New Release
prpserver: Finally add code to fully support -l option for loading ABC/ABCD files, which
is much faster than doing thru prpadmin.
Due to limitations on some db servers, k, b, and n are limited to 63-bits
or 31-bits on all db servers upon loading of candidates.
prpclient: Change parameters for prst for more efficient usage.
Version 5.6.4: November 27, 2023 - New Release
prpserver: Change the stats update to account for all tests that are run for a Candidate.
prpclient: Fix issue receiving workunits from the server for Fixed BKC and Fixed BNC.
Version 5.6.3: November 14, 2023 - New Release
all: Change table creation scripts to ensure that k, b, and n are unsigned.
Since k is unsigned 64-bit in the server, ensure that all uses are consistent.
Since b is unsigned 32-bit in the server, ensure that all uses are consistent.
Since n is unsigned 32-bit in the server, ensure that all uses are consistent.
Since c is signed 32-bit in the server, ensure that all uses are consistent.
Added combined Twin/Sophie-Germain server type.
Version 5.6.2: November 13, 2023 - New Release
all: Adjust makefile for *nix builds.
prpserver: Updates for ODBC 3.0
prpclient: Ensure that workunits have + or - for the c term.
Version 5.6.1: November 10, 2023 - New Release
all: Address all Visual Studio compiler warnings.
prpserver: Add support for prst.
Remove usepfgwoverllr= config option as client will always choose llr
if available for the candidate.
prpclient: Add support for prst.
Add additional checks to more optimally choose testing exe based
upon server type.
Use PRId64 for c term.
Start implementing changes to support (k*b^n+c)/d forms.
Version 5.6.0: September 3, 2023 - Unofficial Release
prpserver: Add k, b, n, and c to UserPrimes so it doesn't need to join with Candidates
to display results on all_primes.html.
Fix Sierpinski/Riesel pages to correctly use "R"/"S" on summary lines.
Fixed verious html formatting and spelling issues.
Add support for srsieve2 ABC files.
prpadmin: Fix error handling when sending factors.
prpclient: Support additional command line arguements on exe names in ini file.
Version 5.5.2: July 3, 2023 - New Release
prpclient: Avoid infinite loop if unable to connect to server.
Version 5.5.1: April 28, 2023 - New Release
prpserver: Added showteamsonhtml configuration switch to control HTML generation.
Fix length calculation for Carol/Kynea servers.
Added all_primes.html page which can be sorted per prpserver.ini configuration.
Add support a new gcwsieve output format.
Give error if ids have an embedded ? as the ODBC driver on the server
doesn't like it.
prpclient: If connection to server is lost while sending results, retry if any
results where successfully submitted.
Change text as roundoff errors with llr2 can put "probable prime" on a
line that doesn't have a reside.
Fix check for ? in id fields.
Reconnect to server if connection was lost.
Version 5.5.0: March 31, 2023 - New Release
prpserver: Added HTML5 support.
Updated prpnet.css for HTML5 and provided default URL for it in prpserver.ini.
Replaced sprintf and vsprintf with snprintf and vsnprintf.
Added minutesbetweenstatsrefresh= configuration option to prpserver.ini.
Fixed Sohpie-Germain server support.
Fixed length calculation for Carol/Kynea servers.
Fixed sorting of candidates for work selection.
prpclient: Add support for new -A parameter for pfgw. This allows targeting pfgw to
a specific CPU (Windows only).
Verions 5.4.5: February 15, 2021 - New Release
prpserver: Update CandidateGroupStats column SierpinskiRieselPrimeN immediately upon
finding a prime to prevent tests for higher n from being sent to clients.
Version 5.4.4: March 18, 2020 - New Release
prpserver: Add column to CandidateGroupStats to improve performance of "onekperinstance".
all: Update usage of PRIu64/PRId64/SCNu64/SCNd64 with printf/scanf to avoid
compiler warnings.
Version 5.4.3: December 19, 2016 - New Release
prpserver: Change candidate selection to address issues with finding doublecheck work.
Show default sortsequence in prpserver.ini for configurations that do not
allow a change to that configuration.
Version 5.4.2: September 11, 2016 - New Release
all: Add support for Multifactorial searhes.
Version 5.4.1: December 29, 2015 - New Release
all: Add support for Carol/Kynea searches, (k*b^n+/-1)^2-12.
Version 5.4.0: January 31, 2015 - New Release
all: Add support for generic searches (pfgw only).
Add support for cyclotomic searches. The cyclotomic form is Phi(k,b^n}.
if k=3 and n=2^N for some integer N, cyclo will be used (if configured
on the client) as it can more quickly test that form on a GPU. For
other values of k and n, pfgw will be used. Stats will be rolled up by
k and n.
Fixed VS2012 solution warnings. The Windows clients are now suffixed
with "64" or "32" for 64-bit and 32-bit.
prpserver: Remove support for clients older than 5.1.
prpclient: By default client will use LLR over PFGW if applicable for the candidate
being tested. This is because LLR is faster than PFGW for most tests.
With the change the client will now ignore what the server sends for
that flag. If you don't want to use LLR, then comment it out in the
prpclient.ini file.
Remove support for servers older than 5.1.
Version 5.3.2: July 10, 2014 - Patch Release
all: Add support for x^y+y^x and x^y-y^x searches.
prpserver: Fix an issue with double-checks.
Version 5.3.1: May 2, 2014 - Patch Release
prpclient: Fix crash when processing wwww work units.
Fix issue where last character of LLR residue was truncated
before it was reported.
Fix uninitialized variable in the client.
prpserver: Fix an issue with length calculation of candidates.
Version 5.3.0: September 19, 2013 - New Release
all: Cleaned up compiler warnings with sockets.
Use PRId64/PRIu64 where needed.
Convert to using the string datatype for most function parameters.
prpserver: Added notifylowwork= option to the prpserver.ini. When set to a
non-zero value, the server will send an e-mail once a day notifying
the distribution list that the server is running low on work.
This change triggered the refactoring of some server code,
specifically the moving of logic from prpserver.cpp to helper
classes specific to the server type.
Reject results from genefer programs with version "3.2.0beta-0".
Fixed issue with determining if a machine or user could double-check.
prpclient: Added version reporting for genefer apps.
Reject genefer programs with version "3.2.0beta-0".
Version 5.2.8: August 29, 2013 - Patch Release
all: Fixed a logging issue that prevented debug logging from working
as intended.
prpclient: Add support for OpenCL based genefer. It will be treated as if
it is equivalent to the CUDA version of genefer.
prpserver: Fix log issue where prpserver.log would sometimes duplicate a line
written to it.
Ensure database transaction is using REPEATABLE READ option.
Check return codes when setting connection attributes in database.
Add support for OpenCL based genefer. It will be treated as if
it is equivalent to the CUDA version of genefer.
Fixed an issue with loading Cullen-Woodall candidates that prevented
loading of multiple bases.
Version 5.2.7: July 29, 2013 - Patch Release
prpserver: Fix bug introduced with 5.2.6.
Version 5.2.6: June 24, 2013 - Patch Release
prpserver: If client returns a residue with '.', remove it.
Add localtimezone=2 setting to disable appending timestamp in the
log with a timezone.
prpclient: Fixed issue where '.' wasn't removed from residue when using llr.
Version 5.2.5: June 12, 2013 - Patch Release
prpserver: For Wall-Sun-Sun, reject results from wwwwcl prior to version 2.2.5.
Add noexpire=1 option to inhibit task expiration.
Add nonewwork=1 option to disable new work from be sent to clients.
Add keys to tables to improve efficiency with larger databases.
Multiple WWWW bug fixes.
Version 5.2.4: April 19, 2013 - Patch Release
prpserver: Update SharedMemoryitem to simplify use of mutexes.
Fix ^C on server so that it waits for client connections to close
instead of immediately closing.
Fix computation of remaining days as it was dividing by 84400
seconds per day, not 86400.
If localtimelog is set to 2, then don't print timezone in log.
prpadmin: Fix loading of candidate from ABC. Although it worked before, it
would sometimes give an erroneous messge.
Version 5.2.3: January 7, 2013 - Patch Release
prpclient: If client detects an error when starting up, show the error, then
sleep for 10 seconds so that user can see the error. This addresses
an issue for users who double-click on the application but the window
closes immediately due to a configuration error.
prpserver: Fixed *nix compile bug with the server.
Added serverstatssummaryonly= option to prpserver.ini. When set to 1
the server will only show the summary line on server_stats.html.
Add sorting capability to a number of html tables.
Refactored much of the HTML generation code.
Fix crash when database connection is closed.
Version 5.2.2: December 18, 2012 - Patch Release
prpserver: Change onekperclient to onekperinstance and fix a bug related to it
that was created in 5.2.0.
all: Fix logging issue where timezone would show as '???'.
Added 64-bit build options for Windows.
Version 5.2.1: November 26, 2012 - Patch Release
all: Fix a problem splitting messages read from socket as code was using strcpy
where both source and target were in same string buffer. Apparently some
flavors of Linux do not like that.
Upgrade Visual Studio solution for VS2010.
Version 5.2.0: November 1, 2012 - New Release
prpclient: Replace clientid in ini with machineid and instanceid.
Fix bug for wwww projects where client couldn't extract program name.
prpserver: Rename column ClientID in database to MachineID. Add InstanceID.
Modify doublechecker to use machine id instead of clientid.
Fix bug in Sierpinski/Riesel stats to ensure prime listed in table
has the smallest n.
Modify Sierpinski/Riesel stats updater to set HasSierpinskiRieselPrime
flag on new Candidates that are inserted if a prime was already found
for the k, b, c.
Removed support for clients older than 4.3.
Added brieftestlog to prpserver.ini. This flag can be used to shorten
the output on consoles.
Added estimate of days left to Wieferich/WallSunSun server_stats.html.
Note: If migrating from PRPNet 5.x, you must run this SQL on the database to rename the
ClientID column and to add the InstanceID column before starting the server.
alter table UserWWWWs change column ClientID MachineID varchar(200) collate latin1_bin;
alter table UserWWWWs add column InstanceID varchar(200) collate latin1_bin;
alter table UserPrimes change column ClientID MachineID varchar(200) collate latin1_bin;
alter table UserPrimes add column InstanceID varchar(200) collate latin1_bin;
alter table CandidateTest change column ClientID MachineID varchar(200) collate latin1_bin;
alter table CandidateTest add column InstanceID varchar(200) collate latin1_bin;
alter table CandidateGFNDivisor change column ClientID MachineID varchar(200) collate latin1_bin;
alter table CandidateGFNDivisor add column InstanceID varchar(200) collate latin1_bin;
alter table WWWWRangeTest change column ClientID MachineID varchar(200) collate latin1_bin;
alter table WWWWRangeTest add column InstanceID varchar(200) collate latin1_bin;
update UserWWWWs set InstanceID = MachineID;
update UserPrimes set InstanceID = MachineID;
update CandidateTest set InstanceID = MachineID;
update CandidateGFNDivisor set InstanceID = MachineID;
update WWWWRangeTest set InstanceID = MachineID;
Version 5.1.0: September 5, 2012 - Patch Release
prpserver: Fixed debug message.
prpclient: Allow only one instance of a client to run at a time from the directory.
Version 5.0.9: May 26, 2012 - Patch Release
prpserver: Verify client is using correct helper programs for PRPing projects.
Version 5.0.8: May 12, 2012 - Patch Release
prpserver: Added support for wwwwcl helper program.
Use coalesce() for PostgreSQL database and ifnull() for MySQL.
prpclient: Added support for wwwwcl helper program.
Version 5.0.7: March 2012 - Patch Release
prpclient: Since primality tests take a long time for primorials/factorials,
and as the pfgw doesn't checkpoint primality tests, the client
will no longer do them for numbers of those forms.
If the ini file was modified to remove all servers and the client
has completed all tests and returned them, then shut down.
Version 5.0.6: February 2012 - Patch Release
prpclient: Fix bug that prevents 5.x clients from working with 4.0.x servers.
Version 5.0.5: January 2012 - Patch Release
prpclient: Fix bug (introduced in 5.0) that causes client to send Twin and SG
workunits back to the server even though the client didn't have to do
the test for them.
Fix bug that allows users to not specify any servers in the ini file.
Change "genefercuda-boinc" to "genefercuda" as they are technically the
same program and the server doesn't recognize "genefercuda-boinc".
Version 5.0.4: January 2012 - Patch Release
prpclient: Fix crash in client when wwww near miss is found.
Version 5.0.3: January 2012 - Patch Release
all: Fix potential crashes found thanks to gcc compiler warnings.
prpclient: Log wwww results and near misses to test_results.log.
Added startoption/stopoption 7, to complete all work then shut
down without reporting completed work.
Normalize work percentage for each configured server if total
percentage != 100.
prpserver: Order by descending total score on Team and User stats HTML pages.
Add ability to sort by clicking on a column on user and team
stats pages. This is done through prpserver.ini configuration.
Version 5.0.2: December 2011 - Patch Release
prpadmin: Added option 10, which allows admins to expire workunits manually.
prpclient: When connecting to a 5.0.2 server and above, don't send acknowledgement
that workunit has been received.
prpserver: When connected to a 5.0.2 client and above, don't expect acknowledgement.
Added support or admin expire option.
When logging SQL statements, substitute bound values for '?' in logs.
Note: In this release I reverted the change from 4.3.0 that required the server to get
an acknowledgement from the client before reserving the workunit. Although this
prevented the server from having workunits that no client was working on, it caused
a worse problem where clients would work on something, then report back to the server
only to have the server reject the work because it hadn't received the initial
acknowledgement. By adding the "expire" option to prpadmin, this alleviates the
problem of lost workunits on the server that have to wait for the time to expire
them. Obviously manual intervention is still required, but it is an improvement
over how it was handled previously.
Version 5.0.1: December 2011 - Patch Release
prpserver: Fix bug that prevented some clients from returning completed workunits.
Use same e value for all numbers on stats pages for a given project.
Version 5.0.0: December 2011 - New Release
all: Added support for Wieferich, Wolstenholme, Wilson and Wall-Sun-Sun
searches (note that wwww client only handles Wieferich and Wall-Sun-Sun
at this time).
prpclient: For GFN searches, do not do primality test for n >= 262144 because
PFGW requires many days to do the test and it doesn't checkpoint.
prpserver: Added localtimehtml= to prpserver.ini
Renamed localtime= to localtimelog= in prpserver.ini
On server_stats.html page, groups with no remaining candidates to
be tested will have a background color of aqua.
On Sierpinski/Riesel server stats, display a summary table if multiple
conjectures are loaded into the server.
There is no database upgrade script from 4.3.x to 5.0. New tables and columns are only
referenced by servers configured for wwww searches.
Version 4.3.7: November 2011 - Patch Release
prpclient: Fix bug when loading GFN divisors from save file upon startup.
When getting work from multiple servers, get work from each server
before trying to balance work across all servers.
Version 4.3.6: November 2011 - Patch Release
prpclient: Fix bug where client is unable to extract PRP test time when using genefer.
prpserver: Add links to other web pages for the project to top of every page.
For HTML generation, evaluate if GFN divisibility checks can
be done and make user_gfns.html available only if true.
For HTML generation, make team HTML pages available only if
there are any teams are running against the server. This
is re-evaluated every 10 minutes.
Added estimate for the number of days left of work in the server. This
works best if all workunits require similar test times.
Version 4.3.5: June 2011 - Patch Release
prpserver: Added onekperclient option. This is used with Sierpinski/Riesel
server to ensure that each k goes to one and only one client at
a time. This should be used when there are many more k values
to be tested than clients.
Fixed a bug with work selection that would prevent the server
from returning work if it exhausted its cursor of 100 records
before finding an appropriate workunit to send.
prpclient: Fixed bug where client would delete genefer checkpoint file
upon restart.
Fixed bug with GFN testing where client would report that it
completed when it hadn't.
Version 4.3.4: June 2011 - Patch Release
all: Modify loglimit in ini files to by in megabytes, not bytes.
prpserver: Added information to pending_tests.html that tells how long
before a test will expire.
prpclient: Correctly fix bug when using startoption=3.
Version 4.3.3: May 2011 - Patch Release
prpserver: Now supports dsn based ODBC connections.
Added version of create_tables script that works on PostgreSQL.
prpclient: Fix bug when using startoption=3.
Version 4.3.2: April 2011 - Patch Release
prpadmin: Fix a problem that occurs when ABC file has less than 101 entries.
prpserver: Fixed candidate loading of GFNs (wasn't fixed correctly in 4.3.1).
Fixed work selection issue with GFNs.
Fixed server stats computation issues with GFNs.
Version 4.3.1: April 2011 - Patch Release
all: Change socket debug messages so that different types of sockets could
log different information.
prpclient: Fix crash when logging debug messages
prpserver: Fix stats computation on GFN servertype.
Fix candidate loading of GFNs, primorials, and factorials.
Version 4.3.0: March 2011 - New Release
prpadmin: Ignore ERR messages when sending ABC files and factor files to the server.
prpclient: If starting client and all work is done, return it immediately so that
client can get more work rather than sleeping due to error timeout.
Changed protocol when getting work to ensure that server knows that
client has received it.
prpserver: Move static variable to instance variable to avoid SQL_INVALID_HANDLE
when loading candidates.
Fixed bug in HTML generation of team_primes.html.
Changed protocol when getting work to ensure that server knows that
client has received it.
Version 4.2.3: March 2011 - Patch release
prpclient: Fix bug (created in 4.2.2) where client would sleep, but then not try to
connect to any servers.
prpserver: Fix function sequence error bug when inserting new candidates.
Fix bug where first candidate inserted would have no name.
Version 4.2.2: March 2011 - Patch Release
prpclient: Add more logging for debuglevel=3..
Fix bug where client would not return completed work because it thought that
the work was still in progress.
Fix bug where client would not sleep for designated amount of time if unable
to connect to any servers.
Version 4.2.1: February 2011 - Patch Release
prpclient: Do not attempt primality test if c != 1/-1. Just return PRP to the server.
Ensure genefer.ckpt is deleted, except in case when ^C was used to stop the client.
After returning work to the server, if there are no more workunits to be returned
to any servers, then the client will re-read the ini file to get the current
server confugations. Any changes made to server configuration, whether it be
percentage, number of entries, etc. will result in the client resetting all
counters WRT work percentages. Note that if changes were made and not done
correctly, that the client can shut down.
Minor change to start options (option 5 is now option 9).
Added new stop options.
Added stop ASAP options (to shutdown between tests).
When ^C is hit, re-read the ini file to get the current stopoption.
Before starting another test, re-read ini file to get updated debuglevel.
Added server suffix to test_results.log.
prpserver: Modified so that "Leading Edge" on the server_stats.html page shows the lowest
value, i.e. the next value to be sent by the server.
Once every 256 seconds, re-read ini file to get updated debuglevel.
Add CSS support to generated HTML.
Version 4.2.0: February 2011 - New Release
prpclient: Added new startoptions. Read prpclient.ini for more information.
Use llrpi to prove primality on k*b^n+/-1 numbers if phrot is
used for the PRP test. Note that phrot should only be needed on
non-x86 hardware.
prpserver: Fix computation of decimal lengths of primorials.
Changed Twin server type to be fixed b/n/c with variable k rather
than fixed b/k/c with variable n.
Rewrote all SQL to use bound variables. This will allow user,
client, and team names to have characters such as a single quote in
them.
Added userteam_stats.html and teamuser_stats.html.
Added support for c != 1 for all forms except Sophie-Germain.
Run this script to create a new database tables:
alter table CandidateGFNDivisor add TeamID varchar(200) collate latin1_bin;
create table UserTeamStats (
UserID varchar(200) collate latin1_bin,
TeamID varchar(200) collate latin1_bin,
TestsPerformed int,
PRPsFound int,
PrimesFound int,
GFNDivisorsFound int,
TotalScore double,
primary key (UserID, TeamID)
) ENGINE=InnoDB;
Version 4.1.4: January 2011 - Patch Release
prpserver: Fix issue with bad team IDs because variable wasn't initialized.
Version 4.1.3: January 2011 - Patch Release
prpclient: Fix program name sent to the server for GFN tests.
Fix issue where client loses track of workunits when it hasn't had
confirmation from the server that they were accepted.
Version 4.1.2: January 2011 - Patch Release
prpclient: Fix issue with deleting genefer checkpoint. Added check to handle
condition of running a different version of genefer than previous
checkpoint.
Support GPU affinity for genefercuda.
Exit correctly if ^C when running genefer.
prpserver: Fix HTML when TeamID is null.
Fixed decimal length calculation for primorials.
Version 4.1.1: January 2011 - Patch Release
prpclient: Support GPU affinity for genefercuda.
prpserver: Fix HTML when TeamID is null.
Version 4.1.0: December 2010 - New Release
prpclient: Added teamid= option to the prpclient.ini file. This allows the client to
do tests on behalf of a team.
Added support for "genefer_cuda" version of genefer.
prpserver: Added support for "genefer_cuda" version of genefer.
Added support for the team reported by a client. A team ID is captured
for each test, thus it is possible for clients (and users) to have some
tests for one team and other tests for another team.
Added team_stats.html and team_primes.html.
Added "Team" column to user_stats.html, user_primes.html, and pending_tests.html.
Fixed an issue with inserting GFNs as the value for column c was not set.
Run this script to update your database tables:
alter table UserPrimes add TeamID varchar(200) collate latin1_bin;
alter table CandidateTest add TeamID varchar(200) collate latin1_bin;
create table TeamStats (
TeamID varchar(200) collate latin1_bin,
TestsPerformed int,
PRPsFound int,
PrimesFound int,
GFNDivisorsFound int,
TotalScore double,
primary key (TeamID)
) ENGINE=InnoDB;
Version 4.0.6: December 2010 - Patch Release
prpserver: Removed experimental code that caused server to keep database connections
open.
Version 4.0.5: December 2010 - Patch Release
prpserver: Made a few changes to eliminate some complaints from valgrind.
On *nix, detach threads after creating them as they cause the server
to use large amounts of virtual memory.
Fix bug so that server respects log limits.
Exit if unable to lock mutex.
Add "if exists" to "drop table" in create tables script.
prpclient: Removed iodbc from client link.
Fix bug so that client respects log limits.
Version 4.0.4: December 2010 - Patch Release
prpclient: Fixed and issue using genefer as client due to variable not being set.
Version 4.0.3: November 2010 - Patch Release
prpclient: Fixed issue when using genefer as client would sometimes not do any testing
with it, even when available.
Version 4.0.2: November 2010 - Patch Release
prpclient: Verify that INFO message from server is for the specific candidate
before treating it as accepted by the server.
Do not sent sub-workunits that have not had a test done.
The client will remove a workunit from its list only if the server
responds with an INFO message for that workunit.
If the client gets an error when reporting a workunit to a server,
it will close the socket and try again later rather than trying to
send any additional workunits.
Fix parsing of GFN factors as client excluded first character of
string sent back to the server.
prpserver: Fix problems with loading candidates for Sophie-Germain servers.
On pending_tests.html, add CandidateName to the sorting.
Fixed a memory leak when sending mail.
Made a change to eliminate the "Error in my_thread_global_end(): 1 threads didn't exit"
message from MySQL. In doing so, the server will always have at least one active
connection to the MySQL server.
Return "test accepted" message if the test has already been marked as
completed. This can occur if the client didn't receive the INFO message
the first time it sent the test and eliminates potential confusion that
the test was rejected.
Version 4.0.1: October 2010 - Patch Release
prpclient: Fixed an issue introduced in 4.0.0 with Primorial/Factorial searches.
prpserver: Add time zone to date of mail so that time shows up in the correct time zone
in mail in-boxes.
Populate new TestResult column on UserPrimes and fix SQL behind the view to use it.
Do not send e-mail if SMTP authentication needed and password not supplied.
Version 4.0.0: October 2010 - New Release
all: Added support for Sophie/Germain prime searches.
Fixed many compiler warnings on *nix.
Stripped "<candidate> is a Factor of" from GFN divisors.
prpclient: Much of this has been rewritten to support Sophie/Germain and other prime
searches, such as Cunningham chains and Arithmethic Progressinos(which has
yet to be written). One result of this is that the client will log more
messages for certain server types.
Added support for usellroverpfgw setting from server. When set, the
client will use LLR instead of PFGW for primality tests.
Always check for GFN divisiblity when b = 2 and c = 1. This could happen
for Twin and Sophie-Germain prime searches.
Return version of helper program used by the client.
Fixed an issue where the client would think that the server accepted a
workunit when it didn't.
prpserver: As part of the Sophie-Germain prime search, the server will now log additional
messages for that server type.
Fixed a stats issue with "Completed Thru" on the GFN server stats webpage.
Reworked e-mail messages to be a little more readable.
Added user_gfns.html webpage for GFN divisors by user.
Added projectname= to prpserver.ini for the Prime Pages project name.
Added usellroverpfgw= option to prpserver.ini.
Modified sortoption= in prpserver.ini to provide maximum flexibility.
Show if candidate was prime or PRP on user_primes.html.
Significantly improved speed loading of Candidates via prpadmin.
On Sierpinski/Riesel stats page, do not include k with a PRP/prime when
determining the "Completed Thru" column.
Added new columns for tracking the version the helper programs used by the
client.
Fixed a memory leak due to not releasing the database connection handle.
With the changes for this release, you will need to run the upgrade_3.3_to_3.4.sql
script in the source directory to bring the database up to date. Because there
are signficant changes in this release, it is HIGHLY recommend to do a backup
before executing that script.
Version 3.3.6: August 2010 - Patch Release
prpserver: Add localtime= to prpserver.ini. By default it is set to 1 which
will log everything in the local time zone of the server. By
setting to 0, the server will log using the GMT time zone.
Version 3.3.5: July 2010 - Patch Release
all: Display correct time zone in logs.
Version 3.3.4: July 2010 - Patch Release
all: Use local time instead of GMT in logs.
prpserver: Fix sending of e-mail for found primes. This was broken in 3.3.0.
Fix issue where log file sometimes does not display date of message.
Version 3.3.3: July 2010 - Patch Release
prpclient: The fix for 3.3.2 for clients connecting to the server was done
incorrectly. It was fixed correctly in this release.
Version 3.3.2: June 2010 - Patch Release
prpclient: Fixed crash that occurs when client cannot connect to the server.
Fixed behavioral issue when starting client so that it can continue
to work on other servers if unable to return work.
Version 3.3.1: June 2010 - Patch Release
prpserver: Added CountInProgress column to create_tables.sql script.
Change summary lines on Sierpinski/Riesel HTML to bold text.
Version 3.3.0: May 2010 - New Release
all: Code infrastructure changes WRT sockets. The Socket class was
cumbersome. I changed it so that Socket is an ancestor class and
that specific server/client/mail functionality would be in descendent
classes.
Buffer no more than 4000 bytes at a time before sending data across
the socket. This should improve performance on large data transfers.
Use a static buffer for receiving data from a socket.
Use a static buffer when logging messages.
prpclient; Fixed an issue when testing for twin primes.
When the startoption is to report and abort, shut down the client
immediately after communicating with the server.
prpserver: Added maxclients= to prpserver.ini to limit how many concurrent
clients the server will handle.
Removed -u option for upgrading from version 2.x.
Removed behavior to insert into UserPrimes at startup since
nobody (that I know of) is using a version of 3.x that is pre-3.2.
Renamed ClientThread.cpp to HelperThread.cpp.
Changed threading architecture to address memory allocation issue.
Do not set LastUpdateTime when a test is sent to a client.
When sorting by LastUpdateTime, include DecimalLength as an
additional criteria in case multiple rows have the same LastUpdateTime.
Moved logic from ClientHandler.cpp to HelperThread.cpp.
Added CompletedThru to group stats.
Added CountInProgress to group stats.
Added summary line to group stats.
Added a new index to Candidate to improve performance.
Fixed an issue with BIGINT datatypes. With this change a number
of columns have been changed from varchar(20) to bigint.
Run this script in mysql to apply all database changes for this release:
alter table Candidate modify k bigint;
alter table Candidate modify LastUpdateTime bigint;
alter table CandidateTest modify TestID bigint;
alter table CandidateGroupStats modify k bigint default 0;
alter table CandidateGroupStats modify MinInGroup bigint default 0;
alter table CandidateGroupStats modify MaxInGroup bigint default 0;
alter table CandidateGroupStats modify LeadingEdge bigint default 0;
alter table CandidateGroupStats add CompletedThru bigint default 0;
alter table CandidateGroupStats add CountInProgress int default 0;
alter table UserPrimes modify DateReported bigint;
alter table Candidate add index ix_bnck (b, n, c, k);
Version 3.2.5: April 2010 - Patch Release
prpclient: Fix loop that occurs when doing work for a Sierpinski/Riesel
server if a prime/PRP is found.
prpserver: Fixed a crash that can occur if unable to connect to SMTP
server.
Version 3.2.4: April 2010 - Patch Release
prpclient: Skip workunits on Sierpinski/Riesel type servers on matching
k/b/c with higher n if a prime/PRP is found.
Use -gxo instead of -gx when searching for GFN divisors since
primality test has already been done.
This release of PRPNet requires PFGW 3.2.4 if used on any
projects that can test for GFN divisibility. PFGW 3.2.4 outputs
a string that the client requires before it can tell the server
that it has successfully tested for GFN divisors.
prpserver: Added code for loading GFNs from an ABC file. Somehow I had
overlooked it.
Added abcformats.txt to describe supported ABC formats.
If unhideprimehours is set to 0, show primes immediately on
user_primes.html page.
Have server send out tests for lower n on Sierpinski/Riesel
servers even if a prime/PRP is found for a higher n.
If a Sierpinski/Riesel prime is found, then do not count
candidates with a higher n against the "untested candidates"
count on the server stats page.
Fixed an issue that prevented double checks from being correctly
updated in the database.
Fixed e-mail message for Proth numbers to state that client
searched for GFN divisors, but did not find any instead of saying
that search wasn't done.
Fixed console output issue when PRP is found.
Fixed server_stats.html for FixedBNC servers.
Modified columns on CandidateGroupStats to work with FixedBNC
servers. Use the following statements to modify the columns:
alter table CandidateGroupStats modify MinInGroup varchar(20);
alter table CandidateGroupStats modify MaxInGroup varchar(20);
alter table CandidateGroupStats modify LeadingEdge varchar(20);
Version 3.2.3: March 2010 - Patch Release
all: Fixed a crash that can occur if the socket connection is
lost when sending data across it.
prpserver: Fixed SQL so that GFN divisors are inserted into the database.
Fixed two issues that could lead to the server looping when a
client requests work.
Added new debug messages when fetching from a cursor.
Change format of messages in completed_tests.log to match
formatting from 3.2.0.
Added sortoption=A, sorting by oldest candidate.
Version 3.2.2: March 2010 - Patch Release
all: Added client socket ID to all log messages so that it is easier
to track connection traffic.
prpclient: Fixed bug where base 2 tests were using PFGW instead of LLR/phrot.
prpserver: Use server_stats.html as the default webpage.
Fix prime/PRP counts on server stats webpage.
Fixed SELECT statement for FixedKBC servers when updating group stats.
Sync group stats about three times per hour rather than whenever
a completed test is sent, unless a prime/PRP is returned.
Modified main work sender loop to retrieve fewer records, but to
be re-iterated multiple times until enough work is sent or until
there are no more records returned by the cursor.
Added a new index to CandidateTest to be added through MySQL with
the following command:
alter table CandidateTest add index ix_residue (CandidateName, Residue);
Version 3.2.1: February 2010 - Patch Release
all: Added memory leak detection logic (Windows only) and fixed
numerous memory leaks.
Changed sockets to include TCP_NODELAY setting.
Fixed a number of memory leaks.
Changed "char *fmt" to "const char *fmt" to eliminate a
number of compiler warnings.
prpclient: Accept "keepalive" message from server when getting work.
Modify so that client can connect to a server that needs
a non-blocking or blocking socket.
prpserver: Fixed two crashes, one with webpage generation and one with
unhiding primes.
Fixed an issue with the display of Fixed K/B/C server stats.
Send "keepalive" to client when opening work work cursor
so that client doesn't time out.
Fixed ordering of k on server_stats.html.
Added all.html as the default webpage.
Version 3.2.0: February 2010 - New Release
all: Fixed an issue on Linux builds with an uninitialized mutex
causing the software to crash.
prpclient: Added "echotest" option to prpclient.ini. Setting this to 0
will tell the client not to echo "INFO" messages to the console
for accepted tests.
Fixed a bug when using the client to test GFNs. When a roundoff
error would occur, the client would neglect to delete temporary
files generated. The next version of genefer would run, but
read the same roundoff error instead of the actual test result.
Modified client to wait up to 60 seconds to get a response from
the server.
prpserver: Added "echotest" option to prpserver.ini. Setting this to 0
will tell the server not to echo "Test sent" and "Test received"
messages to the console.
Changed HTML format of Sierpinski/Riesel server_stats.html to
create a separate table for each base along with a header and
summary row for the base. The summary row will now be shown in
red if all k have a prime or PRP.
Added UserPrimes table, which is populated upon server start
up if the table is empty. If the server fails to load the
table, then it will not run until the problem is fixed.
Added user_primes.html to show all primes found, grouped by user.
Added unhideprimehours= to prpserver.ini. This is used to control
how long a prime/PRP is hidden from user_primes.html before it
can be viewed by the public.
Added server version to HTML title on webpages.
Replaced "Other k/n/b/c" with "Fixed b/n/c" in prpserver.ini. This
changes the grouping and sorting of server stats.
Limit size of result set on server when getting work because loading
large numbers (100000 or more) into memory when opening the cursor
can lead to the client timing out.
Changes locking mechanism when getting work since MySQL does not
seem to always respect "for update" on InnoDB database.
Added socket to logs to aid in trouble-shooting.
Changed LengthCalculator to select blocks of records at a time
so that it is less likely to timeout the admin tool.
Version 3.1.5: January 2010 - Patch Release
all: Changed logging so that debug.log data is written to
prpserver.log/prpclient.log depending upon debuglevel. This was
done to make it easier to find debug information when enabled
instead of having to look through multiple files.
prpclient: Write all results to test_results.log instead of helper program
specific log files.
prpserver: Use mutex to guarantee that only one thread can update the
database at a time when getting work.
Version 3.1.4: January 2010 - Patch Release
all: Changed socket behavior to use Sleep() before select()
because select() does not relinquish control of the CPU.
prpclient: Add GFN support for phrot.
Use -e with PFGW on primality proofs to increase likelihood
that it can get to 33% factorization, which is necessary for
the proof.
Version 3.1.3: January 2010 - Patch Release
prpclient: Fix crash with getting time of LLR test no 64-bit Linux.
Fix bug where the client did not part LLR time correctly and
would return 0.
prpadmin: Buffer 100 candidates/factors at a time instead of 1000 to
hopefully address Linux issues with large buffers and sockets.
Version 3.1.2: January 2010 - Patch Release
prpserver: Lock Candidate record to prevent two different clients from
getting test for the same candidate at a time.
Change database engine to InnoDB because it supports record
level locking, which is necessary for PRPNet. It also improves
performance significantly.
Flush printf() output from admin process.
prpadmin: Flush printf() output from server.
Version 3.1.1: January 2010 - Patch Release
prpserver: Fix bug with handling factors from admin tool.
Version 3.1.0: January 2010 - New Release
prpserver: Send a single INFO or ERROR message for each workunit instead of
an acknowledgement and then immediately commit/rollback the
transaction in the database. This will significantly reduce the
possibility of one happening without the other.
The "End of WorkUnit" message must now specify the CandidateName
and TestID for the workunit that it references.
Add SecondsForTest to CandidateTest table.
In theory this server is backward compatible with previous versions
of the clients, but has not been tested.
prpclient: Add CandidateName and TestID to the "End of WorkUnit" message to
that the server matches the begin and end of the message for that
workunit. Without it, the server might record the test results
against the wrong candidate.
Instead of sending all workunits then waiting for a response,
send them one at at time and wait for the server to send an INFO or
ERROR message before sending the next one.
The client now sends the number of seconds for the PRP test back
to the server.
In theory this client is backward compatible with previous versions
of the server, but has not been tested.
Version 3.0.1: January 2010 - Patch Release
all: Fixed issue with large buffered messages to avoid memory leak.
prpadmin: Send 1000 entries at a time to the server and wait for a response
before continuing. This has been done to prevent the admin tool
from flooding the server's socket, thus preventing new clients
from connecting.
prpserver: Send positive confirmation to prpadmin after every 1000 entries
has been processed so that the admin tool can continue.
The server can now hand out candidates by n. Check out
sortoption= in the prpserver.ini file.
Send greeting as part of GETWORK message. GETGREETING is no
longer supported.
Changed CandidateGroupStats table column names and meanings, thus
affecting server_stats.html. If upgrading from 3.0.0, this table
must be dropped and recreated and repopulated. It can be repopulated
through the admin tool.
Changed servertype FixedKBNC to FixedBKC.
Changed servertype OtherKBNC to FixedBNC.
Close SQL cursor so successive updates are executed. This caused
multiple issues where database updates would not be synchronized.
prpclient: New logic to handle greeting from the server.
When using PFGW, do not create ABC file, just write candidate
to input as it will reduce the amount of output generated by PFGW.
Version 3.0.0: January 2010 - New Release
prpadmin: Buffer factors and candidates from ABC files to reduce the
number of send/receive requests on the socket.
prpserver: The server now runs with a MySQL database instead of the
prpserver.candidates file. Use the -u option to import the
candidates and current stats into the database.
The server is now multi-threaded. Multiple clients can
connect at one time to get work.
Version 2.4.7: December 2009 - Patch Release
prpserver: When a client connects, turn off buffering flags in case they
were not reset before closing previous connection.
Add support for pending_tests.html.
Add sortoption to prpserver.ini to affect how tests are
handed out and how the candidates file is saved.
Send GFN tests to client if PFGW, LLR, or phrot are configured
and genefer80 had a round-off error.
prpclient: If all genefers had a round-off error with GFN test, use PFGW,
LLR, or phrot.
Version 2.4.6: November 2009 - Patch Release
all: Use select() on the socket before receiving. On Linux (and
only Linux), recv() will not return if there is nothing to
be read from the socket. select() can be configured to
timeout if there is nothing to be received. On all other OSs
(Windows, Mac OS X, HP-UX, and Solaris) recv() return a 0
if there is nothing to be received.
Force close of socket if nothing is received.
prpadmin: Change order of includes to address builds on Unix.
Fixed an error where messages from server would not print.
prpserver: Modified generic server stats to not list GFN divisors found.
Added HTML classes for GFNs, Primorials, and Factorials
Version 2.4.5: November 2009 - Patch Release
all: Fixed a crash that can occur when logging is turned on. This
was inadvertantly added in 2.4.4
Modified handling of large messages since some OSs return the