Re: GHC documentation outdated

2020-04-16 Thread Sven Panne
Am Do., 16. Apr. 2020 um 16:38 Uhr schrieb Wolfgang Jeltsch <
wolfgang...@jeltsch.info>:

> the URL
>
>
> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/index.html
>
> seems to still point to the GHC 8.8.3 documentation.
>

Even worse: http://hackage.haskell.org/package/base has only documentation
for base up to 8.6.x (from Sep 2018, 2 major releases behind), which makes
a devastating first impression for newcomers and/or people I'm trying to
convince about Haskell. :-(
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


GHC documentation outdated

2020-04-16 Thread Wolfgang Jeltsch
Hi!

the URL

https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/index.html

seems to still point to the GHC 8.8.3 documentation.

All the best,
Wolfgang

___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Object unloading confusion

2020-04-16 Thread Simon Marlow
Hi Omer

The point of the heap scan is to find *info pointers* into objects that we
want to unload, since we can't unload those.

What about static object pointers? Well, those would be found by traversing
the static_objects list, which we also do in checkUnload. Except that
static_objects doesn't contain all the static objects - that's one of the
problems identified by this ticket.

Primitive objects can't have an info pointer into a dynamically loaded
object, because all their info pointers point into the RTS.

Hope that helps!

Simon

On Wed, 15 Apr 2020 at 13:06, Ömer Sinan Ağacan 
wrote:

> To answer my own question
>
> > So if I see a constructor with a reference to an object code in its
> payload
> > I'll not mark the object code.
>
> We don't visit payload as objects pointed from the payload will be visited
> during the scan later (or they're already visited if they come before the
> constructor in a block).
>
> The 'prim' variable in that code is still a little bit confusing. For
> example we
> never check an MVAR for whether it's an unloadable object or not:
>
> case MVAR_CLEAN:
> case MVAR_DIRTY:
> prim = true;
> size = sizeW_fromITBL(info);
> break;
>
> ...
>
> if (!prim) {
> checkAddress(addrs,info, s_indices);
> }
>
> Would be good to know why it's fine to not check MVARs and other kinds of
> objects that we skip in that code.
>
> Ömer
>
> Ömer Sinan Ağacan , 15 Nis 2020 Çar, 12:35
> tarihinde şunu yazdı:
> >
> > Hi Simon,
> >
> > I'm looking at object unloading code in CheckUnload.c. My understanding
> of how
> > unloading works is:
> >
> > - When unloading of an object is requested the object is added to
> >   `unloaded_objects`.
> > - When `unloaded_objects` is not empty, after  GC, we scan the heap for
> any
> >   references to objects. This is done in `searchHeapBlocks` called by
> >   `checkUnload`.
> > - When `searchHeapBlocks` finds a reference to an object code it marks
> the
> >   object code.
> > - After scanning the heap any objects in `unloaded_objects` that are not
> marked
> >   are unloaded.
> >
> > Does this sound right so far?
> >
> > What I'm confused about is `searchHeapBlocks`. As far as I can see it
> just skips
> > all objects other than stacks. For example here's the code for scanning a
> > constructor:
> >
> > case CONSTR:
> > case CONSTR_NOCAF:
> > case CONSTR_1_0:
> > case CONSTR_0_1:
> > case CONSTR_1_1:
> > case CONSTR_0_2:
> > case CONSTR_2_0:
> > size = sizeW_fromITBL(info);
> > break;
> >
> > So if I see a constructor with a reference to an object code in its
> payload I'll
> > not mark the object code. This looks wrong to me. I don't understand why
> we only
> > care about stacks and nothing else. Could you comment on this?
> >
> > Thanks,
> >
> > Ömer
>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


T13456

2020-04-16 Thread Simon Peyton Jones via ghc-devs
Ben, Omer
I find that when running the testsuite, I get the garbage below, for 
ghci/should_run/T13456.
Adding an empty file T13456.stderr seems to fix it in one of my trees, but not 
in another.  Very strange.
Any ideas?
Simon


Framework failures:

   T13456.run  T13456 [Traceback (most recent call last):

  File "/home/simonpj/code/HEAD-1/testsuite/driver/testlib.py", line 996, in 
test_common_work

do_test(name, way, func, args, files)

  File "/home/simonpj/code/HEAD-1/testsuite/driver/testlib.py", line 1094, in 
do_test

result = func(*[name,way] + args)

  File "/home/simonpj/code/HEAD-1/testsuite/driver/testlib.py", line 1213, in 
ghci_script

return simple_run( name, way, cmd, getTestOpts().extra_run_opts )

  File "/home/simonpj/code/HEAD-1/testsuite/driver/testlib.py", line 1638, in 
simple_run

stderr=read_stderr(name),

  File "/home/simonpj/code/HEAD-1/testsuite/driver/testlib.py", line 1808, in 
read_stderr

return in_testdir(name, 'run.stderr').read_text(encoding='UTF-8')

  File "/usr/lib/python3.6/pathlib.py", line 1196, in read_text

with self.open(mode='r', encoding=encoding, errors=errors) as f:

  File "/usr/lib/python3.6/pathlib.py", line 1183, in open

opener=self._opener)

  File "/usr/lib/python3.6/pathlib.py", line 1037, in _opener

return self._accessor.open(self, flags, mode)

  File "/usr/lib/python3.6/pathlib.py", line 387, in wrapped

return strfunc(str(pathobj), *args)

FileNotFoundError: [Errno 2] No such file or directory: 
'T13456.run/T13456.run.stderr'

] (ghci)
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs