Eigenstate: myrddin-dev mailing list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Generating runtime type information.


I can't get it to build though:

...
export MYR_MC=../6/6m && \
export MYR_MUSE=../muse/muse && \
./build.sh -l std alloc.myr bigint.myr bitset.myr blat.myr bytebuf.myr
chartype.myr cmp.myr clear.myr dial.myr die.myr dir.myr dirname.myr
endian.myr env.myr errno.myr execvp.myr extremum.myr fltbits.myr fmt.myr
fltfmt.myr hashfuncs.myr hasprefix.myr hassuffix.myr htab.myr getint.myr
intparse.myr ipparse.myr mk.myr mkpath.myr now.myr option.myr optparse.myr
pathjoin.myr putint.myr rand.myr resolve.myr result.myr search.myr slcp.myr
sldup.myr sleq.myr slfill.myr sljoin.myr slpush.myr slput.myr slurp.myr
sort.myr spork.myr cstrconv.myr strfind.myr strjoin.myr strsplit.myr
strstrip.myr syswrap.myr syswrap-ss.myr swap.myr try.myr types.myr
units.myr utf.myr varargs.myr wait.myr
libsys.a...
libstd.a...
library sys: usefile version unknown
make[1]: *** [libstd.a] Error 1

I removed sys and libsys.a from /usr/local/lib/myr but still bet the same
error. Also already ran `make clean`.


On Fri, Mar 27, 2015 at 1:19 AM, Ori Bernstein <ori@xxxxxxxxxxxxxx> wrote:

> Congratulations everyone! you get to rebuild as we break ABI
> again!
>
> We now generate type descriptions for variadic types, and push
> a pointer to the variadic arguments on to the stack when we call.
> The valist code currently ignores this, and does nothing useful
> with it -- this should be fixed.
>
> In other words, if you have a variadic function f:
>
>         const f : (a : int, b : byte[:], ... -> void)
>
> and you call it like this:
>
>         f(1, "asdf", 'c', "blah", false)
>
> you will get, on the stack:
>
>         [
>         1       : int,
>         "asdf"  : byte[:],
>         argtype : byte#
>         'c'     : char,
>         "blah"  : byte[:],
>         false   : bool
>         ]
>
> The argtype will be a binary encoded description of the types
> of the tuple (char, byte[:], bool)
>
> This means that you can write (admittedly, slightly hairy) code
> to parse out the types passed in for variadics, and write code
> that looks like:
>
>         const pack : (vals : ... -> byte[:])
>
> One goal that I would like to support is making std.fmt()
> callable as such:
>
>         std.fmt("%: list contains %\n", 1, [1,2,3][:])
>
>
> --
> Ori Bernstein <ori@xxxxxxxxxxxxxx>
>
>


-- 
Ryan
[ERROR]: Your autotools build scripts are 200 lines longer than your
program. Something’s wrong.
http://kirbyfan64.github.io/

Follow-Ups:
Re: Generating runtime type information.Ori Bernstein <ori@xxxxxxxxxxxxxx>
References:
Generating runtime type information.Ori Bernstein <ori@xxxxxxxxxxxxxx>