Discussion:
Warnings `_IOFBF' is deprecated. Use the symbol 'block instead.
Roel Janssen
2018-07-08 10:46:59 UTC
Permalink
Dear Guilers,

When compiling my project, setting GUILE_WARN_DEPRECATED to "detailed",
I get various warnings like these:
`_IOFBF' is deprecated. Use the symbol 'block instead.
`_IONBF' is deprecated. Use the symbol 'none instead.
`_IOLBF' is deprecated. Use the symbol 'line instead.

I grepped the source code of my project and I cannot find any instance
of "_IOFBF", "_IONBF", and "_IOLBF".

What's the situation with these, and how can I resolve these deprecation warnings?

Kind regards,
Roel Janssen
Ludovic Courtès
2018-07-12 09:27:05 UTC
Permalink
Hello,
Post by Roel Janssen
When compiling my project, setting GUILE_WARN_DEPRECATED to "detailed",
`_IOFBF' is deprecated. Use the symbol 'block instead.
`_IONBF' is deprecated. Use the symbol 'none instead.
`_IOLBF' is deprecated. Use the symbol 'line instead.
I grepped the source code of my project and I cannot find any instance
of "_IOFBF", "_IONBF", and "_IOLBF".
What's the situation with these, and how can I resolve these deprecation warnings?
You’re probably using a library (maybe Guix?) that uses those.

The problem is that these warnings are annoying, and getting rid them is
tedious if your code aims to be 2.0-compatible. Essentially you have to
use ‘cond-expand’ all around. :-/

In Guix we disable deprecation warnings.

Ludo’.
Roel Janssen
2018-07-12 20:41:55 UTC
Permalink
Post by Ludovic Courtès
Hello,
Post by Roel Janssen
When compiling my project, setting GUILE_WARN_DEPRECATED to "detailed",
`_IOFBF' is deprecated. Use the symbol 'block instead.
`_IONBF' is deprecated. Use the symbol 'none instead.
`_IOLBF' is deprecated. Use the symbol 'line instead.
I grepped the source code of my project and I cannot find any instance
of "_IOFBF", "_IONBF", and "_IOLBF".
What's the situation with these, and how can I resolve these deprecation warnings?
You’re probably using a library (maybe Guix?) that uses those.
The problem is that these warnings are annoying, and getting rid them is
tedious if your code aims to be 2.0-compatible. Essentially you have to
use ‘cond-expand’ all around. :-/
In Guix we disable deprecation warnings.
Ludo’.
Thanks for your response. So, since my project relies quite heavily on
Guix, I guess I can only disable deprecation warnings too. Will this be
a problem for Guile 3.0?

Thanks for your quick response!

Kind regards,
Roel Janssen
Ludovic Courtès
2018-07-13 08:13:06 UTC
Permalink
Post by Roel Janssen
Post by Ludovic Courtès
Hello,
Post by Roel Janssen
When compiling my project, setting GUILE_WARN_DEPRECATED to "detailed",
`_IOFBF' is deprecated. Use the symbol 'block instead.
`_IONBF' is deprecated. Use the symbol 'none instead.
`_IOLBF' is deprecated. Use the symbol 'line instead.
I grepped the source code of my project and I cannot find any instance
of "_IOFBF", "_IONBF", and "_IOLBF".
What's the situation with these, and how can I resolve these deprecation warnings?
You’re probably using a library (maybe Guix?) that uses those.
The problem is that these warnings are annoying, and getting rid them is
tedious if your code aims to be 2.0-compatible. Essentially you have to
use ‘cond-expand’ all around. :-/
In Guix we disable deprecation warnings.
Ludo’.
Thanks for your response. So, since my project relies quite heavily on
Guix, I guess I can only disable deprecation warnings too.
Possibly. It’s a good thing to in CLIs anyway because that’s not
something the user can do anything about.

The plan is for Guix to require Guile >= 2.2 sometime soon though, so at
that point we can move to the new APIs.
Post by Roel Janssen
Will this be a problem for Guile 3.0?
Features deprecated in a stable series may be removed in the next stable
series, though in this particular case I would argue for keeping it a
bit longer.

Thanks,
Ludo’.
Hans Åberg
2018-07-13 12:45:21 UTC
Permalink
Post by Ludovic Courtès
The plan is for Guix to require Guile >= 2.2 sometime soon though, so at
that point we can move to the new APIs.
A bug that may or may not be carried over to Guix: I could not install Nix on MacOS 10.13, and I think it may be due to the sudo timeout set to zero, causing non-terminating confirmations. So the script may do more root calls than explicitly asked for, a potential security loophole.
Ludovic Courtès
2018-07-13 14:44:23 UTC
Permalink
Post by Hans Åberg
Post by Ludovic Courtès
The plan is for Guix to require Guile >= 2.2 sometime soon though,
so at that point we can move to the new APIs.
A bug that may or may not be carried over to Guix: I could not install
Nix on MacOS 10.13, and I think it may be due to the sudo timeout set
to zero, causing non-terminating confirmations. So the script may do
more root calls than explicitly asked for, a potential security
loophole.
We’ve changed topics, right? :-)

I don’t know what Nix is doing. Guix works only on systems running the
kernel Linux or the GNU Hurd, anyway.

Ludo’.
Hans Åberg
2018-07-13 15:51:36 UTC
Permalink
Post by Ludovic Courtès
Post by Hans Åberg
Post by Ludovic Courtès
The plan is for Guix to require Guile >= 2.2 sometime soon though,
so at that point we can move to the new APIs.
A bug that may or may not be carried over to Guix: I could not install
Nix on MacOS 10.13, and I think it may be due to the sudo timeout set
to zero, causing non-terminating confirmations. So the script may do
more root calls than explicitly asked for, a potential security
loophole.
We’ve changed topics, right? :-)
Right. :-)
Post by Ludovic Courtès
I don’t know what Nix is doing. Guix works only on systems running the
kernel Linux or the GNU Hurd, anyway.
It is only a problem if you have an installer for whatever system. The suggestion is to test the installation with sudo timeout set to 0.
Loading...