Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No perl6-debug #6305

Open
p6rt opened this issue Jun 2, 2017 · 14 comments
Open

No perl6-debug #6305

p6rt opened this issue Jun 2, 2017 · 14 comments

Comments

@p6rt
Copy link

p6rt commented Jun 2, 2017

Migrated from rt.perl.org#131481 (status was 'open')

Searchable as RT131481$

@p6rt
Copy link
Author

p6rt commented Jun 2, 2017

From @finanalyst

Here is a copy of my session. No perl6-debug.

All the documentation implies I should have the executable. I'm running
Ubuntu 16.04

$ rakudobrew build moar

<normal output>

Rakudo has been built and installed.
Updating shims
Done, moar-nom built

$ perl6-debug
perl6-debug​: command not found

$ perl6 -v
This is Rakudo version 2017.05-332-gb667e81 built on MoarVM version
2017.05-25-g62bc54e
implementing Perl 6.c.

$cd ~/.rakudobrew
$ ls bin
lwp-download.pl lwp-get.pl-j nqp-m panda-build-m
panda-fetch panda-install-j panda-test perl6-debug-m
rakudobrew zef-m
lwp-download.pl-j lwp-get.pl-m panda panda-cpanize
panda-fetch-j panda-install-m panda-test-j perl6-gdb-m rakudobrew.bat
lwp-download.pl-m moar panda-build panda-cpanize-j
panda-fetch-m panda-j panda-test-m perl6-m zef
lwp-get.pl nqp panda-build-j panda-cpanize-m
panda-install panda-m perl6 perl6-valgrind-m zef-j

@p6rt
Copy link
Author

p6rt commented Jun 4, 2017

From @zoffixznet

On Thu, 01 Jun 2017 22​:25​:55 -0700, rnhainsworth@​gmail.com wrote​:

Here is a copy of my session. No perl6-debug.

All the documentation implies I should have the executable. I'm running
Ubuntu 16.04

Which documentation, out of curiosity? rakudobrew is mostly for core hackers, not end users, so it'd likely be best to remove that documentation.

As for the perl6-debug. It's likely called perl6-debug-m

However, it bitrotted a bit and even if you find it, it won't work ATM. Hoping someone will find tuits to fix it before next release.

@p6rt
Copy link
Author

p6rt commented Jun 4, 2017

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Jun 4, 2017

From @geekosaur

I would argue that perl6-debug shouldn't exist; if you are debugging, you
pretty much need to know the specific backend that's involved. Which is
likely why rakudobrew killed the generic one (the directory listing, while
mangled, *did* show perl6-debug-m).

On Sun, Jun 4, 2017 at 2​:12 AM, Zoffix Znet via RT <
perl6-bugs-followup@​perl.org> wrote​:

On Thu, 01 Jun 2017 22​:25​:55 -0700, rnhainsworth@​gmail.com wrote​:

Here is a copy of my session. No perl6-debug.

All the documentation implies I should have the executable. I'm running
Ubuntu 16.04

Which documentation, out of curiosity? rakudobrew is mostly for core
hackers, not end users, so it'd likely be best to remove that documentation.

As for the perl6-debug. It's likely called perl6-debug-m

However, it bitrotted a bit and even if you find it, it won't work ATM.
Hoping someone will find tuits to fix it before next release.

--
brandon s allbery kf8nh sine nomine associates
allbery.b@​gmail.com ballbery@​sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net

@p6rt
Copy link
Author

p6rt commented Jun 5, 2017

From @finanalyst

If rakudobrew is only for core hackers, then why is it on the rakudo
site as the best way to get rakudo?

As for documentation, I googled perl6 debug and find perl6-debug. I am
informed that it is available when perl6 is installed.

I now know that perl6-debug-m is bit rotted, but I quote from 5 December
2012 (https://perl6advent.wordpress.com/2012/12/05/a-perl-6-debugger/):

"The debugger has been included with the last few Rakudo * releases. If
you have one of those, you’re all set. Just run *perl6-debug* instead of
*perl6*. It takes the same set of options, so if your normal invocation
involves, for example, using the *-I* flag to set the include path for
modules, it’ll Just Work Like Usual."

I have problems with the debugger because I have not been able to get it
to work from within a module, even one that I have written. The only way
I could get the debugger to work was to include the code of the module
within the text of the program, which makes putting things in modules a
bit silly.

However, I also quote from the same blog​: "There’s much more to the
developer experience of a language than its design, features and
implementations. While the language and its implementations are perhaps
the thing developers will spend most time with, the overall experience
will also involve interaction with the community, reading documentation,
using modules and employing various development tools. Thus, it’s
important that Perl 6 make progress on these fronts too."

It seems to me that rather than trying to remove all mention of the
debugger, would be to place a notice on perl6.org or on rakudo.org, and
a notice to the perl6-user forum that perl6-debug has not keep up with
changes to the language and currenlty is not working.

It is a shame that this has happened because it seems a step backwards.

Richard

On Sunday, June 04, 2017 10​:12 AM, Zoffix Znet via RT wrote​:

On Thu, 01 Jun 2017 22​:25​:55 -0700, rnhainsworth@​gmail.com wrote​:

Here is a copy of my session. No perl6-debug.

All the documentation implies I should have the executable. I'm running
Ubuntu 16.04
Which documentation, out of curiosity? rakudobrew is mostly for core hackers, not end users, so it'd likely be best to remove that documentation.

As for the perl6-debug. It's likely called perl6-debug-m

However, it bitrotted a bit and even if you find it, it won't work ATM. Hoping someone will find tuits to fix it before next release.

@p6rt
Copy link
Author

p6rt commented Jun 5, 2017

From @zoffixznet

On Mon, 05 Jun 2017 14​:45​:26 -0700, rnhainsworth@​gmail.com wrote​:

If rakudobrew is only for core hackers, then why is it on the rakudo
site as the best way to get rakudo?

Is that on rakudo.org? I see some mention of rakudobrew on http://rakudo.org/how-to-get-rakudo/
pending updates to the page[^1], but the very first sentence of even that
page reads "The recommended way to use Rakudo is by downloading Rakudo Star"

[1] https://rt-archive.perl.org/perl6/Ticket/Display.html?id=130500#ticket-history

I now know that perl6-debug-m is bit rotted, but I quote from 5
December
2012 (https://perl6advent.wordpress.com/2012/12/05/a-perl-6-
debugger/)​:

You should probably double check the dates on posts that show up in Google.
This one for example was written 5 years ago, which is 3 years before the
first stable language version was even released. Lots of things changed.

It seems to me that rather than trying to remove all mention of the
debugger, would be to place a notice on perl6.org or on rakudo.org,
and

I think you misunderstood. I was talking about removing rakudobrew,
not the debugger. Rakudobrew has many quirks and people never bother
to read its documentation to learn about them. Not to mention it builds
a HEAD commit by default, leaving the user open to (potentially serious) bugs.

It is a shame that this has happened because it seems a step
backwards.

This project is largely driven by volunteers. You're welcome to join the
effort to keep broken things unbroken :)

@p6rt
Copy link
Author

p6rt commented Jun 7, 2017

From @finanalyst

I would like to work on perl6-debug. But where to start?

I am daunted by the prospect.

Some questions - hopefully easy to answer.

1) In earlier updates there was a perl6-debug executable. Was this just
a link to perl6-debug-m?

2) perl6-debug worked before, and then stopped working. You said
'bit-rotted'. I would think that it would help to discover at what point
the debug version stopped working and then to look at the commits to see
what changed. That would narrow down what needs modifying.

Do you think this is a good strategy?

More difficult questions, but you may know answer.

3) Why is it not possible to arrange for a break inside a module?

I realise it is because modules are 'pre-compiled', but is there a way
either (1) to prevent pre-compilation (that is for the module to be
included so that it is compiled with the main programe, or (2) to
arrange for a module to be compiled with debug information (sort of like
-dev modules in Debian).

Finally, I was thinking about making a GUI or perhaps linking it to Atom.

Your comments would be helpful.

Richard

On Tuesday, June 06, 2017 06​:43 AM, Zoffix Znet via RT wrote​:

On Mon, 05 Jun 2017 14​:45​:26 -0700, rnhainsworth@​gmail.com wrote​:

If rakudobrew is only for core hackers, then why is it on the rakudo
site as the best way to get rakudo?
Is that on rakudo.org? I see some mention of rakudobrew on http://rakudo.org/how-to-get-rakudo/
pending updates to the page[^1], but the very first sentence of even that
page reads "The recommended way to use Rakudo is by downloading Rakudo Star"

[1] https://rt-archive.perl.org/perl6/Ticket/Display.html?id=130500#ticket-history

I now know that perl6-debug-m is bit rotted, but I quote from 5
December
2012 (https://perl6advent.wordpress.com/2012/12/05/a-perl-6-
debugger/)​:
You should probably double check the dates on posts that show up in Google.
This one for example was written 5 years ago, which is 3 years before the
first stable language version was even released. Lots of things changed.

It seems to me that rather than trying to remove all mention of the
debugger, would be to place a notice on perl6.org or on rakudo.org,
and
I think you misunderstood. I was talking about removing rakudobrew,
not the debugger. Rakudobrew has many quirks and people never bother
to read its documentation to learn about them. Not to mention it builds
a HEAD commit by default, leaving the user open to (potentially serious) bugs.

It is a shame that this has happened because it seems a step
backwards.
This project is largely driven by volunteers. You're welcome to join the
effort to keep broken things unbroken :)

@p6rt
Copy link
Author

p6rt commented Jun 7, 2017

From @zoffixznet

On Tue, 06 Jun 2017 19​:50​:32 -0700, rnhainsworth@​gmail.com wrote​:

I would like to work on perl6-debug. But where to start?

I am daunted by the prospect.

Some questions - hopefully easy to answer.

1) In earlier updates there was a perl6-debug executable. Was this
just
a link to perl6-debug-m?

Most likely.

2) perl6-debug worked before, and then stopped working. You said
'bit-rotted'. I would think that it would help to discover at what
point
the debug version stopped working and then to look at the commits to
see
what changed. That would narrow down what needs modifying.

Do you think this is a good strategy?

Maybe. It broke around slang rework (around 2017.02-2017.03 releases).

On our dev IRC channel ( https://webchat.freenode.net/?channels=#perl6-dev )
we have a bisectable bot ( https://github.com/perl6/whateverable/wiki/Bisectable )
that can take a chunk of code and tell you when its output changed.

perl6-debug-m currently dies with this error. Hunting what's causing it is a good start​:

```
Non ast passed to WANTED​: NQPMu
===SORRY!===
Cannot find method 'named' on object of type NQPMu
```

More difficult questions, but you may know answer.

3) Why is it not possible to arrange for a break inside a module?

No idea. Never used perl6-debug-m

I realise it is because modules are 'pre-compiled', but is there a way
either (1) to prevent pre-compilation

Yes, use `no precompilation` pragma.

@p6rt
Copy link
Author

p6rt commented Jun 8, 2017

From @finanalyst

Thanks for feedback. A follow up​:

<snip>

Yes, use `no precompilation` pragma.

So I would have in the topmost program​:

use v6.c;
no precompilation;

In the documentation (https://docs.perl6.org/language/pragmas),
precompilation is labelled [TBD]

So is it ignored ?

Regards,
Richard

@p6rt
Copy link
Author

p6rt commented Jun 8, 2017

From @coke

TBD there indicates that the documentation is yet to be done.

On Thu, Jun 8, 2017 at 4​:38 AM, Richard Hainsworth
<rnhainsworth@​gmail.com> wrote​:

Thanks for feedback. A follow up​:

<snip>

Yes, use `no precompilation` pragma.

So I would have in the topmost program​:

use v6.c;
no precompilation;

In the documentation (https://docs.perl6.org/language/pragmas),
precompilation is labelled [TBD]

So is it ignored ?

Regards,
Richard

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented Jun 9, 2017

From @finanalyst

This is slightly different to what is in documentation.

' "[TBD]" are to be defined later' is in the file <language/pragmas>

I took "defined" to mean "done" rather than "documented". In other
words, something that did not exist, but should exist.
What seems to be the case is that "defined" means "exists, but is not
specified", or "exists, but could change", or "exists, but we haven't
told anybody much about it".

I'm not quite sure which of these is meant.

TBI = to be implemented => on the wish list, but we haven't got around
to it. (I think)

On Friday, June 09, 2017 07​:34 AM, Will Coleda via RT wrote​:

TBD there indicates that the documentation is yet to be done.

On Thu, Jun 8, 2017 at 4​:38 AM, Richard Hainsworth
<rnhainsworth@​gmail.com> wrote​:

Thanks for feedback. A follow up​:

<snip>

Yes, use `no precompilation` pragma.

So I would have in the topmost program​:

use v6.c;
no precompilation;

In the documentation (https://docs.perl6.org/language/pragmas),
precompilation is labelled [TBD]

So is it ignored ?

Regards,
Richard

@p6rt
Copy link
Author

p6rt commented Jun 9, 2017

From @finanalyst

Just started work on getting perl6-debug to work again.

Some help​:

There is a commit to rakudo-debug - pmurias <https://github.com/pmurias>
committed on 26 Mar

This is about the time the debugger went AWOL. So I thought to reverse
the commit locally to verify.

But I'm having a problem getting the local version to work.

I used rakudobrew to set up my system.

I tried to change perl6-debug.nqp in a subdirectory of .rakudobrew/moar-nom

The change went through, but the executable (perl6-debug-m) was not
changed in .rakudobrew/bin

It seems the executable in .rakudobrew/bin is a complex script and is
different from the executable in .rakudobrew/moar-nom

Is there some documentation about the build process?

Or how do I get an executable in the form in .rakudobrew/bin

No need for a full description, just some clues that I can work on.

I am working through the Makefile in .rakudobrew/moar-nom, but it is not
simple.

Regards,

Richard

On Wednesday, June 07, 2017 06​:12 PM, Zoffix Znet via RT wrote​:

On Tue, 06 Jun 2017 19​:50​:32 -0700, rnhainsworth@​gmail.com wrote​:

I would like to work on perl6-debug. But where to start?

I am daunted by the prospect.

Some questions - hopefully easy to answer.

1) In earlier updates there was a perl6-debug executable. Was this
just
a link to perl6-debug-m?
Most likely.

2) perl6-debug worked before, and then stopped working. You said
'bit-rotted'. I would think that it would help to discover at what
point
the debug version stopped working and then to look at the commits to
see
what changed. That would narrow down what needs modifying.

Do you think this is a good strategy?
Maybe. It broke around slang rework (around 2017.02-2017.03 releases).

On our dev IRC channel ( https://webchat.freenode.net/?channels=#perl6-dev )
we have a bisectable bot ( https://github.com/perl6/whateverable/wiki/Bisectable )
that can take a chunk of code and tell you when its output changed.

perl6-debug-m currently dies with this error. Hunting what's causing it is a good start​:

```
Non ast passed to WANTED​: NQPMu
===SORRY!===
Cannot find method 'named' on object of type NQPMu
```

More difficult questions, but you may know answer.

3) Why is it not possible to arrange for a break inside a module?
No idea. Never used perl6-debug-m

I realise it is because modules are 'pre-compiled', but is there a way
either (1) to prevent pre-compilation
Yes, use `no precompilation` pragma.

@p6rt
Copy link
Author

p6rt commented Jun 9, 2017

From @zoffixznet

On Fri, 09 Jun 2017 00​:34​:52 -0700, rnhainsworth@​gmail.com wrote​:

It seems the executable in .rakudobrew/bin is a complex script and is
different from the executable in .rakudobrew/moar-nom

Is there some documentation about the build process?

Yes, forget rakudobrew. It's not for working on rakudo.

Clone from the repo and build the compiler​: https://github.com/rakudo/rakudo/

git clone https://github.com/rakudo/rakudo/
cd rakudo
perl Configure.pl --gen-moar --gen-nqp --backends=moar
make
make install

You'll have ./perl6-debug-m then in the current dir.

@p6rt
Copy link
Author

p6rt commented Jun 18, 2017

From @zoffixznet

The debugger's fixed now in rakudo/rakudo@6d4691f

Tests (in rakudo's test suite) needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant