Eigenstate: myrddin-dev mailing list

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

Re: Generating runtime type information.


Ok, integration is pushed to a testing branch on the main repository.

	git pull
	git checkout -tb integrated origin/integrated
	make

I did some major refactoring on mbld to support relative library
targets, so that I could use them in the integrated code.

The way this works now:

	bootstrap.sh:
		This script is a flat, stupid list of commands needed
		to do a build of all the Myrddin code in mc/ if you
		don't have mbld. IT IS AUTOGENERATED. Do not edit unless
		you need to fix some brokeneness in the build tooling.

	genboostrap.sh:
		This script scrapes the output of mbld to generate
		the bootstrap.sh script. When you make a change to
		any of the Myrddin source, run 'make genbootstrap.sh'
		to update it.

	mbldwrap.myr:
		This wraps mbld, and runs bootstrap.sh if mbld does
		not exist. It doesn't try to use the installed mbld
		copy.


On Tue, 31 Mar 2015 13:13:04 -0500, Ryan Gonzalez <rymg19@xxxxxxxxx> wrote:

> I changed that line in mbld/bootstrap.sh to this:
> 
> ld -o mbld ../rt/_myrrt.o clean.o config.o deps.o types.o fsel.o util.o
> subdir.o main.o parse.o build.o opts.o install.o test.o -L../libregex
> -L../libbio -L../libstd -lregex -lbio -lstd -lsys
> 
> 
> On Tue, Mar 31, 2015 at 12:53 PM, Ryan Gonzalez <rymg19@xxxxxxxxx> wrote:
> 
> > Whoops. Forgot about this until now.
> >
> > + ld -o mbld /home/ori/bin/lib/myr/_myrrt.o clean.o config.o deps.o
> > types.o fsel.o util.o subdir.o main.o parse.o build.o opts.o install.o
> > test.o -L/home/ori/bin/lib/myr -lregex -lbio -lstd -lsys
> > ld: cannot find /home/ori/bin/lib/myr/_myrrt.o: No such file or directory
> > ld: cannot find -lregex
> > ld: cannot find -lbio
> > ld: cannot find -lstd
> > ld: cannot find -lsys
> >
> >
> >
> >
> > On Sun, Mar 29, 2015 at 3:55 AM, Ori Bernstein <ori@xxxxxxxxxxxxxx> wrote:
> >
> >> On Fri, 27 Mar 2015 14:56:46 -0500
> >> Ryan Gonzalez <rymg19@xxxxxxxxx> wrote:
> >>
> >> > That worked. I didn't realize mc used mbld if available.
> >> >
> >> > Honestly, I would enjoy having mbld *and* libbio in the standard
> >> > distribution.
> >>
> >> http://git.eigenstate.org/ori/mc-integrated.git
> >>
> >> Take a look, try it out, and make sure that bootstrapping works for you.
> >> If
> >> it does, I can push that to the main mc/ repository.
> >>
> >> > On Fri, Mar 27, 2015 at 2:46 PM, Ori Bernstein <ori@xxxxxxxxxxxxxx>
> >> wrote:
> >> >
> >> > > 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>
> >> > >
> >> >
> >> >
> >> >
> >> > --
> >> > Ryan
> >> > [ERROR]: Your autotools build scripts are 200 lines longer than your
> >> > program. Something’s wrong.
> >> > http://kirbyfan64.github.io/
> >>
> >>
> >> --
> >> Ori Bernstein <ori@xxxxxxxxxxxxxx>
> >>
> >
> >
> >
> > --
> > Ryan
> > [ERROR]: Your autotools build scripts are 200 lines longer than your
> > program. Something’s wrong.
> > http://kirbyfan64.github.io/
> >
> >
> 
> 
> 
> -- 
> Ryan
> [ERROR]: Your autotools build scripts are 200 lines longer than your
> program. Something’s wrong.
> http://kirbyfan64.github.io/


-- 
    Ori Bernstein

Follow-Ups:
Re: Generating runtime type information.Ryan Gonzalez <rymg19@xxxxxxxxx>