From: Hendrik Boom <hendrik@topoi.pooq.com>
To: Kenneth Adam Miller <kennethadammiller@gmail.com>
Cc: caml users <caml-list@inria.fr>
Subject: Re: [Caml-list] Type Encoding Format Control
Date: Tue, 18 Aug 2015 14:57:51 -0400 [thread overview]
Message-ID: <20150818185751.GC650@topoi.pooq.com> (raw)
In-Reply-To: <CAK7rcp_DfDdW94HWhuPsnKE-eg3ncvLTDfk7vcg9R+toKMkZhg@mail.gmail.com>
On Tue, Aug 18, 2015 at 01:06:55PM -0400, Kenneth Adam Miller wrote:
> I was wondering if cases where format control is possible in typing
> constructs can allow things like restricting the implementation size after
> compilation of a specific variant type. Say, for instance that I wanted to
> have a malloc implementation instead of returning a Some 'a | None type
> that compiles down to a boxed case of first a word and then the subsequent
> 'a instance, down to the 'a instance, where in the values of the word enum
> (or tag) are not present in the possibilities of the 'a instance.
>
> Maybe it sounds silly, but in really tight loops you want to squeeze for
> efficiency. So I was wondering if maybe the same actual code be used with
> the same sanity of type checking, but some annotation provided at the type
> declaration to allow such optimization to take place.
Let's see. OCaml steals a bit to indicate whether a valus is a pointer
or not, right? Could that bit see duual usage for the option type? So
that if it's an optional pointer type, the bit is left off, and if it's
an optional nonpointer type, it's turned on (and set to point to
location zero, which the GC couls check for)?
THe proble I see with this is if the 'a is passed to a generic function
where iti isn't statically known where it's a pinter or not. The
conpiler will not know whether to test for absence or presence of the
bit.
-- hendrik
next prev parent reply other threads:[~2015-08-18 18:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-18 17:06 Kenneth Adam Miller
2015-08-18 18:57 ` Hendrik Boom [this message]
2015-08-18 19:01 ` Kenneth Adam Miller
2015-08-18 19:44 ` Gabriel Scherer
2015-08-18 19:55 ` Kenneth Adam Miller
2015-08-18 19:58 ` Gabriel Scherer
2015-08-20 9:10 ` Goswin von Brederlow
2015-08-20 13:08 ` Kenneth Adam Miller
2015-08-20 14:05 ` David Allsopp
2015-08-20 14:09 ` Kenneth Adam Miller
2015-08-20 14:11 ` Kenneth Adam Miller
2015-08-25 12:09 ` [Caml-list] <DKIM> " Pierre Chambart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150818185751.GC650@topoi.pooq.com \
--to=hendrik@topoi.pooq.com \
--cc=caml-list@inria.fr \
--cc=kennethadammiller@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox