-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI for forward-porting GC3 patches to GC4 #147
base: gc4
Are you sure you want to change the base?
Conversation
6900d8d
to
1c95bd0
Compare
build_aux/bootstrap
Outdated
@@ -96,12 +96,15 @@ autoreconf $AC_OPTS $MAINPATH > $msgs 2>&1; ret=$? | |||
# Filter aminclude_static as those are only used _within_ another | |||
# check so reporting as portability problem is only noise. | |||
# This has the effect of redirecting some error messages to stdout. | |||
# to be moved to the Makefile - currently only usable for bootstrap, | |||
# but should be done on autogen, too |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A, that old TODO...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest to wrap the commits again. From what I've inspected we need one refactor for integrating 4.x logic (you've spotted that well) nicely.
libcob/fileio.c
Outdated
snprintf (file_open_env, (size_t)COB_FILE_MAX, "%s%s", "IO_", s); | ||
if ((file_open_io_env = cob_get_env (file_open_env, NULL)) == NULL) { | ||
snprintf (file_open_env, (size_t)COB_FILE_MAX, "%s%s", "io_", s); | ||
if (f != NULL) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When/why should f
be null here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because some functions (open_cbl_file
, cob_sys_delete_file
, ...) were "improved" to perform file mapping in GC3 (rev 3944), by calling the cob_chk_file_mapping
function, which does not take a cob_file
argument in GC3 but does in GC4, and that function in turn calls cob_chk_file_env
. Since these functions (open_cbl_file
, cob_sys_delete_file
, ...) do not use a cob_file
object, I resorted to passing NULL and coping with that...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this okay for you @GitMensch ?
oops, hope I haven't broken the gitignore in f36dcda - if not then we likely should apply that to the gcos3x branch as well. |
Saw your message a bit late, added another commit in the meantime 😅 By wrapping up you mean, committing to SVN ? (after doing the requested modifications of course) |
This approach is reasonable in general.
... So you did already check that this piece of code changed in a later commit?
If you see a difference in the current code, then you can use "svn annotate" to check which commit did the change in this party of fileio.c to know what to merge before the refactoring.
:-)
Am 1. Juni 2024 00:07:13 MESZ schrieb OCP David Declerck ***@***.***>:
…
@ddeclerck commented on this pull request.
> + /* apply COB_FILE_PATH if set (similar to ACUCOBOL's FILE-PREFIX) */
+ if (file_paths) {
+ for(k=0; file_paths[k] != NULL; k++) {
+ snprintf (file_open_buff, (size_t)COB_FILE_MAX, "%s%c%s",
+ file_paths[k], SLASH_CHAR, file_open_name);
+ file_open_buff[COB_FILE_MAX] = 0;
+ if (access (file_open_buff, F_OK) == 0) {
+ break;
+ }
+#if defined(WITH_CISAM) || defined(WITH_DISAM) || defined(WITH_VBISAM) || defined(WITH_VISAM)
+ /* ISAM may append '.dat' to file name */
+ snprintf (file_open_buff, (size_t)COB_FILE_MAX, "%s%c%s.dat",
+ file_paths[k], SLASH_CHAR, file_open_name);
+ file_open_buff[COB_FILE_MAX] = 0;
+ if (access (file_open_buff, F_OK) == 0) {
+ snprintf (file_open_buff, (size_t)COB_FILE_MAX, "%s%c%s",
+ file_paths[k], SLASH_CHAR, file_open_name);
+ file_open_buff[COB_FILE_MAX] = 0;
+ break;
+ }
+#endif
+ }
+ if (file_paths[k] == NULL) {
+ snprintf (file_open_buff, (size_t)COB_FILE_MAX, "%s%c%s",
+ file_paths[0], SLASH_CHAR, file_open_name);
+ file_open_buff[COB_FILE_MAX] = 0;
+ }
+ strncpy (file_open_name, file_open_buff, (size_t)COB_FILE_MAX);
+ }
I remember why I haven't refactored that straight away : in case subsequent commits modify the same code, conflicts will be much easier to handle. I was thinking about keeping the refactoring for after all the patches are merged...
--
Reply to this email directly or view it on GitHub:
#147 (comment)
You are receiving this because you commented.
Message ID: ***@***.***>
|
I tend to be overly "conservative". Indeed this piece of code is barely modified afterwards, so I'll do the refactoring. |
Is this okay to merge (@GitMensch) ? |
I'll try to review this (late) evening. |
looks_absolute should use "src", not file_open_name directly (merge issue?) "apply_file_paths" should get that via argument as well and have a function comment that it writes to the global buffer. Then add a Changelog "extracted from xyz and also used in abc" to finish that last commit. We either have to remember for later that we need to add a testcase for the new use or (potentially easier) also include it in the last commit as well. |
This change is introduced in a later commit (3993).
Alright ; as for its output, should it write it through its argument or directly to
By "new use", de you mean the fact that we apply file paths to the complex case ? |
yes
good catch - then it is fine to leave as is; if you don't expect any big problem it would be nice to merge that in this bunch to commit that together, but a later bunch is fine as well
Depends on how other functions do it - it is best for now to mimic that (once the merge is completed we may revisit that part, but there are "some" commits left until we get there). |
I made the necessary changes.
I find it more convenient to merge consecutive commits. If that's okay for you I could add to the current batch the next eligible commits until 3993 (that would be 6 commits: 3973, 3979, 3988, 3989, 3992 and 3993). |
That batch is good to go :-) |
Merged in SVN ;) I see the next commits deal with translation files. Checking the history, it seems those files are usually just copied "as-is" from the GC3 branch to the trunk; is this correct ? |
No, only new files are copied, the others left as-is; before a release I regenerate the files but the files are nearly completely maintained by the translation project. And of course |
Alright.
Hope this unfinished sentence did not have any vital info 😅 |
I can't remember any important info missing there. |
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## gc4 #147 +/- ##
======================================
Coverage ? 65.72%
======================================
Files ? 37
Lines ? 65593
Branches ? 18281
======================================
Hits ? 43113
Misses ? 15457
Partials ? 7023
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Quick question: I sometimes see alternative code for GC4 in I'm talking about those:
|
That's quite a bunch - any reason to not merge upstream? [we really need to get to commits that have someone else in the ChangeLogs...] |
No good reason. It may be many commits, but the first batch had way more lines (this one is only +1,162 −904).
I'm looking forward to reaching commit 4614 - our first contribution to GC3 ;) |
Commits 4998 and 5018 from 3.x already bring various tests related to P, and I also merged in advance the "binary size with PIC P" tests from the yet-to-be-merged PR #197 . |
This TODO is about using those P fields (both to left and right of the 9) in a JSON/XML GENERATE. They should be output as in their pretty-display variant. |
Hadn't realized you were talking about those. Would this work ? #198 |
Yes, that's fine - if this works locally as it does in GC3, then feel free to merge the other to 3.x and this to trunk (a later merge will include this one [note: I suggest to not include the to-be-commited-by-me tests into trunk now, as this will ease the merge of that 3.x commit later on - which should not be too far away in any case). |
Noted, I'll remove them from here. |
33d7596
to
01b3b1e
Compare
@GitMensch I guess I'll stop for this batch - again not many commits but many lines (tell me if it's too much, I'll just revert the 3-4 last ones). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't inspected data_packed.at
5,069 additions, 5,066 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
But other than that this bunch looks good.
The minimal amount of conflicts is kind of expected here as there were a lot of screenio.c changes - a file nearly untouched in trunk.
Because of this someday(TM) someone(R) should run make checkmanual
to verify the state - but we can postpone this to mid/end December as well.
This bunch can be checked in again. |
Yeah, all those changes to this single file are brought by a single commit, 5035 - but 99 % of those changes are just whitespace changes anyways.
Wasn't aware of this. I gave it a shot. The only failures I have:
They just fail without even asking for anything. In the log, I can see this is because the compilation messages Also, I couldn't check those two because my function keys have specific mappings I'd rather not touch:
|
Thanks for checking, concerning those two failures we should inspect them later (TODO file); as noted: bunch is good to merge |
497a019
to
c3dbe2d
Compare
I think I'll stop here for this batch. One commit brought a huge new test to the testsuite, but other than this, I believe the diff is not too big (it's many small commits). Again, most commits were merged without conflicts. Two things that require attention though:
|
I'd have expected a three digit output and checking with MF this is also the result there... if you happen to see the reason for the two-digit display please apply a fix for 3.x :-) Note - the testcase should be adjusted in any case because:
for commit 5067 - we should inspect this more ... [2 hours checking and debugging later...]:
/* we may want negative/positive zero,
which prevents a direct integer calculation */
if ((f->usage == CB_USAGE_PACKED || f->usage == CB_USAGE_DISPLAY)
&& (f->pic && f->pic->have_sign)) {
return CB_BUILD_FUNCALL_3 ("cob_sub_int", v,
cb_build_cast_int (n), cb_int0);
}
|
Follow-up of #146.