Parrot 3.8.0 "Magrathea" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 29 September 2011.
00:02 alvis joined 00:23 l3l1p joined 01:22 woosley joined 02:37 JimmyZ joined 02:39 alvis joined 03:46 l3l1p_ joined 04:29 l3l1p joined 04:46 JimmyZ_ joined
alvis Hello all. I hope it's not too late, but I've a few questions: First, why does the concluding pod in '/frontend/parrot/main.c' say, "SEE ALSO compilers/imcc/main.c, unfortunately."? 05:24
I mean, what is it with 'imcc,' such that, it merits this remark? 05:26
Second, where is parrot's assembler? I can't seem to find it. (I'll hold off on the other questions, for a'bit.) 05:29
cotto PIR can't really be assembled. imcc turns it into bytecode. 05:30
sorear alvis: imcc is "parrot's assembler", insofar as it converts pir into bytecode 05:32
alvis Hmm, yes, but there was, once upon a time, an assembler. Also, pasm is the assembly language, correct? Which then gets translated into bytecode, corect?
sorear no
pasm is a dead end
we have no tools that can read it
alvis sorear, oh, ok. But, there was an assembler once upon a time, correct? assembler.pl, perhaps? 05:33
sorear it doesn't matter now 05:34
cotto alvis, probably, but any pure assembler is long gone by now
sorear probably noone remembers. Parrot has a very high developer burnout/turnover rate
alvis Hmm, ok, then I'm reading some bad docs in Pdd06_pasm.pod where there's the whole discussion about whether or not to keep it. 05:36
So, the bottom line is, it's been folded into imcc, yes?
cotto at some level PASM is supported, but we don't recommend its continued use
alvis Ok, good enough. 05:37
So, why the "unfortunately" remark as to imcc?
cotto imcc has issues 05:38
alvis Ok. Should I dig through the archive or the old irc logs to find out the issues? Just asking 'cause ... well ..., some of the docs are ... misleading. 05:39
sorear alvis: you will not use the word misleading. 05:41
imcc is junk and its docs are worthless
harsh language is how we stay sane around here
alvis sorear, ok, gotcha. :-) 05:42
sorear imcc is a large part of why Parrot destroys developer's motivation
alvis ahh, ok. I'll take a closer look'see. (I appreciate the feedback btw.) 05:43
Another question, if I may, and I'll leave you be: Are extensions, essentially, dead in favor of NCI? 05:44
sorear No 05:52
I should ask you to clarify what you mean by extensions. 05:53
alvis Extending Parrot with C-code, e.g., different implementations of various data-structures, that sort'a thing. 05:54
sorear and NCI isn't that? 05:56
to answer what I think you mean, dynops and dynpmcs are still used, a lot
NCI is great but often you need the flexibility
for instance if you want to attach finalizers to objects, dynpmcs are the only good way 05:57
also dynpmcs/dynops are MUCH faster than general nci
alvis Oh ok. Thanks. That's very helpful. (I think I'll ask whiteknight about his data-structures project on github, as well.) 05:58
06:05 alvis_ joined
alvis_ sorear: Sorry, thunderstorm here in North-central Texas knocked my connection out. Anyway, thank you for all your help. 06:06
06:28 fperrad joined 08:30 jsut_ joined
nine Parrot's documentation++ 09:17
09:18 PacoLinux_ joined
dalek kudo/nom: 005e43f | moritz++ | / (4 files):
Merge branch 'eval-throws' into nom
09:28
kudo/nom: aa8f193 | moritz++ | t/spectest.data:
stop running S06-operator-overloading/imported-subs.t, its tests all skipped or bogusly passing
nine Would someone please apply this tiny doc patch? paste.scsys.co.uk/148550 10:00
10:14 SHODAN joined
nine Down to two coretest files failing :) 10:14
one 10:32
10:42 alvis_ joined
dalek rrot: 4934d51 | moritz++ | src/embed/bytecode.c:
tiny doc patch by nine++, name of parameter to Parrot_api_run_bytecode
10:53
moritz nine: applied, thanks
11:00 whiteknight joined 11:12 sonne44 joined, sonne44 left
nine Should this PIR code work? paste.scsys.co.uk/148606 11:35
11:36 nbrown joined 11:37 Psyche^ joined 12:03 jsut joined 12:27 jlaire joined
benabik Morning, #parrot 13:15
nine: I think that PIR should work, and it seems to on my Parrot. (It prints done) 13:21
nine morning benabik 13:33
Thanks. On green_threads I get a null PMC access on exit, after it prints done. 13:34
benabik Oog. Possibly the return continuation gets screwed up? 13:35
nine Which is very strange, because even if I disable preemption and circumvent the whole task handling the error remains.
I can change it to a segfault by just adding some code that never even gets executed
On the bright side, this is the only problem left in a make fulltest run :) 13:39
benabik The finish line is in sight!
nine too few arguments: 0 passed, 7229552 expected 13:45
that's a nice one ;)
benabik That's a lot of arguing.
13:55 ambs joined
whiteknight nine: sounds like a GC error 13:56
like, a live PMC is being prematurely collected and then something attempts to use it
doing something unrelated which changes the memory layout can change the way the error manifests 13:57
nine whiteknight: the origin of this testcase is t/pmc/exception.t. All tests pass but then I get a segfault
whiteknight nine: that could also be an inferior runloop problem
like, the program terminates in a nested runloop, the C stack unwinds, and the parent runloop attempts to continue executing code at a bad address 13:58
nine whiteknight: that sounds about right: 14:00
[entering loop 0, level 0]
[entering loop 1, level 1]
done
[exiting loop 2, level 2]
Null PMC access in elements()
whiteknight yeah
okay, when you catch an exception you need to use the finalize op on it to unwind the runlooops 14:01
at the end of the program, you can also call "exit 0", to force a complete exit without unwinding
nine There is the "finalize $P4" in there right before say "done"
that's what I get on master: 14:04
[entering loop 0, level 0]
[entering loop 1, level 1]
exception case 3
done
[exiting loop 1, level 1]
plobsing in branch, why does it "exit loop 2" without ever having entered a loop that deep? 14:08
nine plobsing: that's just somewhat misleading debug output. The entering message gets printed before increasing those counters 14:09
plobsing ah.
benabik I note they're still leaving different levels. 14:10
plobsing nine: you could fire up gdb and break on Parrot_default_elements_orig
btw, I wish our GC wrappers left the hand-written part of the vtable as the easier named one. 14:11
oops, that should be Parrot_Null_elements_orig 14:12
nine finalize gets called, but it does not recognize the thing as an exception handler, so it does not longjmp out of the runloop 14:14
Correction: it does recognize it as an exception but this is PMC_NULL: PMC * const iter = VTABLE_get_attr_str(interp, PREG(1), Parrot_str_new_constant(interp, "handler_iter")); 14:17
Aah...I think I'm missing some changes in Parrot_cx_find_handler_local. gsoc_threads moved it to events.c so I overlook those when merging 14:55
coretests pass now :) fulltest in progress 15:00
Is MAKEFILE.generated generated or maintained manually? 15:22
benabik I hope it's generated.
And are you talking about MANIFEST?
dalek kudo/nom: f6eb61d | Coke++ | t/spectest.data:
run fudged test.
nine No, MANIFEST.generated. make distro_tests is complaining about missing stuff in that file
t/distro/manifest_generated.t to be precise 15:23
benabik Right, you said MAKEFILE at first… I think it's actually maintained. It's a list of generated files. (i.e. files most things should ignore)
moritz nine: did you run tools/dev/mk_manifest_and_skip.pl ? 15:24
nine moritz: yes
Just added the missing files. Weren't that many anyway. Now make fulltest passes :)
Which brings the question of where to go from here? 15:25
moritz test nqp and rakudo on it
nine Can I use my local build of parrot to build rakudo? 15:32
moritz yes 15:33
nine How? I get nine@sunshine:~/install/rakudo> perl Configure.pl --with-parrot=/home/nine/install/parrot
moritz in rakudo, perl Configure --gen-nqp --with-parrot=/path/to/installed/bin/parrot
nine Unable to read parrot configuration from /home/nine/install/parrot
moritz (you need to install to somewhere first) 15:34
nine ah ok
Is this supposed to take minutes and >1GB of RAM? ./perl6 --setting=NULL --target=pir --output=src/gen/CORE.setting.pir src/gen/CORE.setting 15:52
benabik nine: Yes. Rakudo's setting is by far the most complex thing Parrot deals with.
nine Ok, then I'll just keep it running 15:53
benabik When I was working on nap_pct, it started taking long enough that I thought it was hanging.
nqp_pct
nine Finished now. When I saw that > 2000 lines stacktrace I got worried ;) 15:54
benabik !!
From interrupting it?
nine yep
benabik Yeah, it gets… complicated.
nine Rakudo's make test completed successfully :) 15:55
benabik \\o/
moritz if you want the real test, run 'make spectest'
plobsing nine: spectest?
nine running now 15:56
plobsing you'll have time to grab a coffee... from the next town over.
nine :)
moritz if you have multiple cores, TEST_JOBS=9 make spectest 15:57
where 9 = $no_of_cores + 1
15:59 l3l1p joined
nine Two questions: should current nom pass spectest? Should it do so on current parrot master? 16:26
In any case: t/spec/S05-modifier/ignorecase.rakudo failed. No subtests run. Other than that, TODOs passed in t/spec/S06-routine-modifiers/scoped-named-subs.rakudo and t/spec/S10-packages/basic.rakudo 16:27
moritz nine: do you have ICU installed? 16:35
if not, that might explain the ignorecase test failure
if spectest nom on parrot master a few hours ago, it was all passing (plus the two passing TODO you mentioned) 16:36
nine what's ICU? *g* 16:37
moritz a library for Unicode stuff
parrot's Configure.pl tests for it 16:38
auto::icu - Is ICU installed....................................yes.
nine There's a libicu installed, but no icu and no libicu-devel
benabik What do we use ICU for?
moritz case folding, checking of Unicode properties 16:39
maybe recoding, not sure about that
nine Is ICU installed..........................no icu-config.
16:53 alvis_ joined 17:33 bluescreen joined
nine rakudo spectests pass :) 18:03
18:09 kurahaupo joined 18:14 kurahaupo_mobi joined 18:24 plobsing_ joined
dalek rrot: 2c43a6c | dukeleto++ | ChangeLog:
Add skeleton for the next changelog entry
18:24
dukeleto PROTIP: git log RELEASE_3_8_0... --merges # useful for release managers 18:32
dalek rrot: ba87ba4 | dukeleto++ | ChangeLog:
Add a bit of meat to the 3.9.0 announcement
18:37
dukeleto cotto: ping 18:40
NotFound ~~ 19:15
19:32 contingencyplan joined 20:15 zby_home joined 20:31 stoole joined 20:59 Kovensky joined
cotto dukeleto, pong 21:12
21:18 whiteknight joined
whiteknight good afternoon, #parrot 21:20
cotto ~~ whiteknight 21:24
whiteknight hello cotto 21:30
22:36 nbrown joined 22:42 alvis_ joined