[m-users.] More optimization away

Mark Brown mark at mercurylang.org
Wed Dec 20 20:21:08 AEDT 2023


On Wed, Dec 20, 2023 at 6:02 PM Volker Wysk <post at volker-wysk.de> wrote:
>
> Hi
>
> I've made my predicate dependent on the IO state, in order to prevent it
> from being optimized away. However, the IO state isn't used inside the
> predicate. So will this be optimized away in a non-default semantics?

Not with strict semantics. A hypothetical lazy implementation might
optimize this away, but then I wouldn't expect this technique to work
well in lazy languages generally.

Cheers,
Mark

>
> :- pred throw_db_error(odbc.result::in, io::di, io::uo) is det.
>
> throw_db_error(Res, !IO) :-
>     (
>         Res = odbc.ok(_)
>     ;
>         Res = odbc.error(Messages),
>         throw(db_error(errors(Messages)))
>     ).
>
> TIA,
> Volker
> _______________________________________________
> users mailing list
> users at lists.mercurylang.org
> https://lists.mercurylang.org/listinfo/users


More information about the users mailing list