[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Generating runtime type information.
- Subject: Re: Generating runtime type information.
- From: Ori Bernstein <ori@xxxxxxxxxxxxxx>
- Date: Fri, 27 Mar 2015 12:46:09 -0700
- To: Ryan Gonzalez <rymg19@xxxxxxxxx>
- Cc: myrddin-dev@xxxxxxxxxxxxxx
So, the first thing you're going ot have to rebuild (or delete)
is mbld. From there, you should be able to re-bootstrap.
I should import mbld and it's dependencies into mc/ for ease of
remaking the world.
On Fri, 27 Mar 2015 14:24:36 -0500
Ryan Gonzalez <rymg19@xxxxxxxxx> wrote:
> 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/
--
Ori Bernstein <ori@xxxxxxxxxxxxxx>