Camelia, the Perl 6 bug

IRC log for #parrot, 2011-10-09

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 alvis joined #parrot
00:23 l3l1p joined #parrot
01:22 woosley joined #parrot
02:37 JimmyZ joined #parrot
02:39 alvis joined #parrot
03:46 l3l1p_ joined #parrot
04:29 l3l1p joined #parrot
04:46 JimmyZ_ joined #parrot
05:24 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:26 alvis I mean, what is it with 'imcc,' such that, it merits this remark?
05:29 alvis 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:30 cotto PIR can't really be assembled.  imcc turns it into bytecode.
05:32 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?
05:32 sorear no
05:32 sorear pasm is a dead end
05:32 sorear we have no tools that can read it
05:33 alvis sorear, oh, ok.  But, there was an assembler once upon a time, correct? assembler.pl, perhaps?
05:34 sorear it doesn't matter now
05:34 cotto alvis, probably, but any pure assembler is long gone by now
05:34 sorear probably noone remembers.  Parrot has a very high developer burnout/turnover rate
05:36 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 alvis So, the bottom line is, it's been folded into imcc, yes?
05:36 cotto at some level PASM is supported, but we don't recommend its continued use
05:37 alvis Ok, good enough.
05:37 alvis So, why the "unfortunately" remark as to imcc?
05:38 cotto imcc has issues
05:39 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:41 sorear alvis: you will not use the word misleading.
05:41 sorear imcc is junk and its docs are worthless
05:41 sorear harsh language is how we stay sane around here
05:42 alvis sorear, ok, gotcha. :-)
05:42 sorear imcc is a large part of why Parrot destroys developer's motivation
05:43 alvis ahh, ok.  I'll take a closer look'see.  (I appreciate the feedback btw.)
05:44 alvis Another question, if I may, and I'll leave you be: Are extensions, essentially, dead in favor of NCI?
05:52 sorear No
05:53 sorear I should ask you to clarify what you mean by extensions.
05:54 alvis Extending Parrot with C-code, e.g., different implementations of various data-structures, that sort'a thing.
05:56 sorear and NCI isn't that?
05:56 sorear to answer what I think you mean, dynops and dynpmcs are still used, a lot
05:56 sorear NCI is great but often you need the flexibility
05:57 sorear for instance if you want to attach finalizers to objects, dynpmcs are the only good way
05:57 sorear also dynpmcs/dynops are MUCH faster than general nci
05:58 alvis Oh ok. Thanks.  That's very helpful. (I think I'll ask whiteknight about his data-structures project on github, as well.)
06:05 alvis_ joined #parrot
06:06 alvis_ sorear: Sorry, thunderstorm here in North-central Texas knocked my connection out.  Anyway, thank you for all your help.
06:28 fperrad joined #parrot
08:30 jsut_ joined #parrot
09:17 nine Parrot's documentation++
09:18 PacoLinux_ joined #parrot
09:28 dalek rakudo/nom: 005e43f | moritz++ | / (4 files):
09:28 dalek rakudo/nom: Merge branch 'eval-throws' into nom
09:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/005e43f40b
09:28 dalek rakudo/nom: aa8f193 | moritz++ | t/spectest.data:
09:28 dalek rakudo/nom: stop running S06-operator-overloading/imported-subs.t, its tests all skipped or bogusly passing
09:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aa8f193811
10:00 nine Would someone please apply this tiny doc patch? http://paste.scsys.co.uk/148550
10:14 SHODAN joined #parrot
10:14 nine Down to two coretest files failing :)
10:32 nine one
10:42 alvis_ joined #parrot
10:53 dalek parrot: 4934d51 | moritz++ | src/embed/bytecode.c:
10:53 dalek parrot: tiny doc patch by nine++, name of parameter to Parrot_api_run_bytecode
10:53 moritz nine: applied, thanks
10:53 dalek parrot: review: https://github.com/parrot/parrot/commit/4934d510ee
11:00 whiteknight joined #parrot
11:12 sonne44 joined #parrot
11:12 sonne44 left #parrot
11:35 nine Should this PIR code work? http://paste.scsys.co.uk/148606
11:36 nbrown joined #parrot
11:37 Psyche^ joined #parrot
12:03 jsut joined #parrot
12:27 jlaire joined #parrot
13:15 benabik Morning, #parrot
13:21 benabik nine: I think that PIR should work, and it seems to on my Parrot.  (It prints done)
13:33 nine morning benabik
13:34 nine Thanks. On green_threads I get a null PMC access on exit, after it prints done.
13:35 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.
13:35 nine I can change it to a segfault by just adding some code that never even gets executed
13:39 nine On the bright side, this is the only problem left in a make fulltest run :)
13:39 benabik The finish line is in sight!
13:45 nine too few arguments: 0 passed, 7229552 expected
13:45 nine that's a nice one ;)
13:45 benabik That's a lot of arguing.
13:55 ambs joined #parrot
13:56 whiteknight nine: sounds like a GC error
13:56 whiteknight like, a live PMC is being prematurely collected and then something attempts to use it
13:57 whiteknight 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
13:57 whiteknight nine: that could also be an inferior runloop problem
13:58 whiteknight 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
14:00 nine whiteknight: that sounds about right:
14:00 nine [entering loop 0, level 0]
14:00 nine [entering loop 1, level 1]
14:00 nine done
14:00 nine [exiting loop 2, level 2]
14:00 nine Null PMC access in elements()
14:00 whiteknight yeah
14:01 whiteknight okay, when you catch an exception you need to use the finalize op on it to unwind the runlooops
14:01 whiteknight at the end of the program, you can also call "exit 0", to force a complete exit without unwinding
14:01 nine There is the "finalize $P4" in there right before say "done"
14:04 nine that's what I get on master:
14:04 nine [entering loop 0, level 0]
14:04 nine [entering loop 1, level 1]
14:04 nine exception case 3
14:04 nine done
14:04 nine [exiting loop 1, level 1]
14:08 plobsing in branch, why does it "exit loop 2" without ever having entered a loop that deep?
14:09 nine plobsing: that's just somewhat misleading debug output. The entering message gets printed before increasing those counters
14:09 plobsing ah.
14:10 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
14:11 plobsing btw, I wish our GC wrappers left the hand-written part of the vtable as the easier named one.
14:12 plobsing oops, that should be Parrot_Null_elements_orig
14:14 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:17 nine 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:55 nine 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
15:00 nine coretests pass now :) fulltest in progress
15:22 nine Is MAKEFILE.generated generated or maintained manually?
15:22 benabik I hope it's generated.
15:22 benabik And are you talking about MANIFEST?
15:22 dalek rakudo/nom: f6eb61d | Coke++ | t/spectest.data:
15:22 dalek rakudo/nom: run fudged test.
15:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f6eb61d5d9
15:22 nine No, MANIFEST.generated. make distro_tests is complaining about missing stuff in that file
15:23 nine 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)
15:24 moritz nine: did you run tools/dev/mk_manifest_and_skip.pl ?
15:24 nine moritz: yes
15:24 nine Just added the missing files. Weren't that many anyway. Now make fulltest passes :)
15:25 nine Which brings the question of where to go from here?
15:25 moritz test nqp and rakudo on it
15:32 nine Can I use my local build of parrot to build rakudo?
15:33 moritz yes
15:33 nine How? I get nine@sunshine:~/install/rakudo> perl Configure.pl --with-parrot=/home/nine/install/parrot
15:33 moritz in rakudo, perl Configure --gen-nqp --with-parrot=/path/to/installed/bin/parrot
15:33 nine Unable to read parrot configuration from /home/nine/install/parrot
15:34 moritz (you need to install to somewhere first)
15:34 nine ah ok
15:52 nine 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.
15:53 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.
15:53 benabik nqp_pct
15:54 nine Finished now. When I saw that > 2000 lines stacktrace I got worried ;)
15:54 benabik !!
15:54 benabik From interrupting it?
15:54 nine yep
15:54 benabik Yeah, it gets… complicated.
15:55 nine Rakudo's make test completed successfully :)
15:55 benabik \o/
15:55 moritz if you want the real test, run 'make spectest'
15:55 plobsing nine: spectest?
15:56 nine running now
15:56 plobsing you'll have time to grab a coffee... from the next town over.
15:56 nine :)
15:57 moritz if you have multiple cores, TEST_JOBS=9 make spectest
15:57 moritz where 9 = $no_of_cores + 1
15:59 l3l1p joined #parrot
16:26 nine Two questions: should current nom pass spectest? Should it do so on current parrot master?
16:27 nine 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:35 moritz nine: do you have ICU installed?
16:35 moritz if not, that might explain the ignorecase test failure
16:36 moritz if spectest nom on parrot master a few hours ago, it was all passing (plus the two passing TODO you mentioned)
16:37 nine what's ICU? *g*
16:37 moritz a library for Unicode stuff
16:38 moritz parrot's Configure.pl tests for it
16:38 moritz auto::icu -           Is ICU installed....................................yes.
16:38 nine There's a libicu installed, but no icu and no libicu-devel
16:38 benabik What do we use ICU for?
16:39 moritz case folding, checking of Unicode properties
16:39 moritz maybe recoding, not sure about that
16:39 nine Is ICU installed..........................no icu-config.
16:53 alvis_ joined #parrot
17:33 bluescreen joined #parrot
18:03 nine rakudo spectests pass :)
18:09 kurahaupo joined #parrot
18:14 kurahaupo_mobi joined #parrot
18:24 plobsing_ joined #parrot
18:24 dalek parrot: 2c43a6c | dukeleto++ | ChangeLog:
18:24 dalek parrot: Add skeleton for the next changelog entry
18:24 dalek parrot: review: https://github.com/parrot/parrot/commit/2c43a6ca07
18:32 dukeleto PROTIP: git log RELEASE_3_8_0... --merges # useful for release managers
18:37 dalek parrot: ba87ba4 | dukeleto++ | ChangeLog:
18:37 dalek parrot: Add a bit of meat to the 3.9.0 announcement
18:38 dalek parrot: review: https://github.com/parrot/parrot/commit/ba87ba4b21
18:40 dukeleto cotto: ping
19:15 NotFound ~~
19:32 contingencyplan joined #parrot
20:15 zby_home joined #parrot
20:31 stoole joined #parrot
20:59 Kovensky joined #parrot
21:12 cotto dukeleto, pong
21:18 whiteknight joined #parrot
21:20 whiteknight good afternoon, #parrot
21:24 cotto ~~ whiteknight
21:30 whiteknight hello cotto
22:36 nbrown joined #parrot
22:42 alvis_ joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced