summaryrefslogtreecommitdiff
path: root/open_issues/perl.mdwn
blob: 6e05a8c01e9b0176cb81b55c43109b79a7943c41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

[[!meta title="Foster Perl programming"]]

[[!template id=note text="""**2011-08**.  A dependency loop in Debian GNU/Hurd
currently leads to: *Could not perform immediate configuration on 'perl'*.
Easy workaround:

    # apt install perl perl-base -o APT::Immediate-Configure=false

"""]]


Resolve issues uncovered by Perl's test suite, and enable Hurd-specific
features.

There is a [[!FF_project 264]][[!tag bounty]] on this task.

# Bugs in perl

There is a bug in perl's putenv which makes it interact badly with fakeroot-tcp and fakeroot-sysv (not fakeroot-hurd), this shows up as this

    *** glibc detected *** /usr/bin/perl: free(): invalid pointer: 0x01026000 ***
    
See http://rt.perl.org/rt3/Ticket/Display.html?id=91452 for details

A workaround is to do this before building packages calling perl inside fakeroot:

export FAKEROOTUID=0 FAKEROOTEUID=0 FAKEROOTSUID=0 FAKEROOTFUID=0 FAKEROOTGID=0 FAKEROOTEGID=0 FAKEROOTSGID=0 FAKEROOTFGID=0

---


# Part I

First, make the language functional, have its test suite pass without errors.


## Original [[community/GSoC]] Task Description

[[!inline pages=community/gsoc/project_ideas/perl_python feeds=no]]


## IRC, OFTC, #debian-hurd, 2011-11-08

    <Dom> pinotree: so, with your three fixes applied to 5.14.2, there are
      still 9 tests failing. They don't seem to be regressions in perl, since
      they also fail when I build 5.14.0 (even though the buildd managed it).
    <Dom> What do you suggest as the way forward?
    <Dom> (incidentally I'm trying on strauss's sid chroot to see how that
      compares)
    <pinotree> Dom: samuel makes buildds build perl with nocheck (otherwise
      we'd have no perl at all)
    <pinotree> which tests still fail?
    <Dom> ../cpan/Sys-Syslog/t/syslog.t ../cpan/Time-HiRes/t/HiRes.t
      ../cpan/autodie/t/recv.t ../dist/IO/t/io_pipe.t ../dist/threads/t/libc.t
      ../dist/threads/t/stack.t ../ext/Socket/t/socketpair.t io/pipe.t
      op/sigdispatch.t
    <Dom> buildds> I see
    <pinotree> ah ok, those that are failing for me even with my patches
    <Dom> I hadn't spotted that the builds were done with nocheck.
    <Dom> (but only sometimes...)
    <Dom> Explains a lot
    <pinotree> syslog is kind of non-working on hurd, and syslog.t succeeds in
      buildds (as opposted to crash the machine...) because there's no /var/log
      in chroots
    <pinotree> libc.t appears to succeed too in buildds
    * Dom notices how little memory strauss has, and cancels the build, now
        that he *knows* that running out of memory caused the crahses
    <pinotree> iirc HiRes.t, io_pipe.t , pipe.t and sigdispatch.t fails because
      of trobules we have with posix signals
    <pinotree> socketpair.t is kind of curious, it seems to block on
      socketpair()...
    * Dom wonders if a wiki page tracking this would be worthwhile
    <pinotree> stack.t fails because we cannot set a different size for pthread
      stacks, yet (similar failing test cases are also in the python test
      suite)
    <Dom> if there are problems which aren't going to get resolved any time
      soon, it may be worth a few SKIPs conditional on architecture, depending
      on how serious the issue is
    <Dom> then we'd get better visibility of other/new issues
    <Dom> (problems which aren't bugs in perl, that is)
    <pinotree> understandable, yes
    <pinotree> i think nobody digged much deeper in the failing ones yet, to
      actually classify them as due to glibc/hurd/mach
    <pinotree> (eg unlike the pipe behaviour in sysconf.t i reported)

### 2011-11-26

    <pinotree> cool, my recvfrom() fix also makes the perl test recv.t pass


---


# Part II

Next, Hurd-specific features can be added.  Add an interface to the
language/environment for being able to do [[RPC]] calls, in order to program
[[hurd/translator]]s natively in Perl.


## Original [[community/GSoC]] Task Description

[[!inline pages=community/gsoc/project_ideas/language_bindings feeds=no]]