# Current\_predicate(make/0) is false

**URL:** <https://swi-prolog.discourse.group/t/current-predicate-make-0-is-false/9291>\
**Category:** General\
**Created:** [September 16, 2025, 7:13am UTC](https://swi-prolog.discourse.group/t/current-predicate-make-0-is-false/9291 "2025-09-16T07:13:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![andrii](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@andrii](https://swi-prolog.discourse.group/u/andrii)\
**Post date:** [September 16, 2025, 7:13am UTC](https://swi-prolog.discourse.group/t/current-predicate-make-0-is-false/9291/1 "2025-09-16T07:13:56Z")

</div>

Hi all,

I mentioned that

```prolog
?- current_predicate(make/0).
false.

```

But, after actually calling `make`, SWI-Prolog changes its mind:

```prolog
?- make.
true.

?- current_predicate(make/0).
true.

```

I use SWI-Prolog 9.0.4 (threaded, 64 bits) on Raspberry Pi.

---

<div class="post-metadata">

**Author:** ![Boris](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/boris/32/7486_2.png) [@Boris](https://swi-prolog.discourse.group/u/Boris)\
**Post date:** [September 16, 2025, 7:51am UTC](https://swi-prolog.discourse.group/t/current-predicate-make-0-is-false/9291/2 "2025-09-16T07:51:30Z")

</div>

The docs say,

> Note that [current\_predicate/1](https://www.swi-prolog.org/pldoc/man?predicate=current_predicate/1) does _not_ succeed for predicates that can be _autoloaded_ unless they are imported using [autoload/2](https://www.swi-prolog.org/pldoc/man?predicate=autoload/2).

and make/0 is autoloaded (see its docs). Many predicates are like this. You have also current\_predicate/2.

---

<div class="post-metadata">

**Author:** ![andrii](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@andrii](https://swi-prolog.discourse.group/u/andrii)\
**Post date:** [September 16, 2025, 1:10pm UTC](https://swi-prolog.discourse.group/t/current-predicate-make-0-is-false/9291/3 "2025-09-16T13:10:07Z")

</div>

Thank you Boris.

Now it makes sense. Although, I must admit, I did not even thought that make/0 is not always loaded.

Am I right that any predicate without a remark “Avaliability: built-in” in the doc is actually autoloaded?

---

<div class="post-metadata">

**Author:** ![Boris](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/boris/32/7486_2.png) [@Boris](https://swi-prolog.discourse.group/u/Boris)\
**Post date:** [September 16, 2025, 2:08pm UTC](https://swi-prolog.discourse.group/t/current-predicate-make-0-is-false/9291/4 "2025-09-16T14:08:33Z")

</div>

“Autoloaded” means something more specific. Did you try to search the documentation yet? Or ask an AI assistant?

---

<div class="post-metadata">

**Author:** ![brebs](https://avatars.discourse-cdn.com/v4/letter/b/e9c0ed/32.png) [@brebs](https://swi-prolog.discourse.group/u/brebs)\
**Post date:** [September 16, 2025, 5:53pm UTC](https://swi-prolog.discourse.group/t/current-predicate-make-0-is-false/9291/5 "2025-09-16T17:53:11Z")

</div>

> [@andrii](#):
>
> autoloaded

The page for make/0 has a link to “(can be autoloaded”) i.e. [SWI-Prolog -- Automatic loading of libraries](https://www.swi-prolog.org/pldoc/man?section=autoload)

---

<div class="post-metadata">

**Author:** ![andrii](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@andrii](https://swi-prolog.discourse.group/u/andrii)\
**Post date:** [September 16, 2025, 7:31pm UTC](https://swi-prolog.discourse.group/t/current-predicate-make-0-is-false/9291/6 "2025-09-16T19:31:59Z")

</div>

True. Although I don’t have this “Availability: :- use\_module(library(make)). (can be autoloaded)“ remark in the doc when invoked from the prolog REPL as `help(make).` Maybe my SWI-Prolog is already dated.
