Camelia, the Perl 6 bug

IRC log for #parrot, 2011-06-04

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:10 dmalcolm left #parrot
00:14 benabik My god, it's full of gotos
00:17 sorear suppose I want to have a compiler targetting m0.  would that make any sense?
00:19 cotto_work sorear: right now, no.  Later after it
00:20 cotto_work 's solidified a bit, sure.
00:20 cotto_work I think going through PCT to pbc or using the Packfile PMCs will be the preferred route though.
00:21 cotto_work There are still some question marks in that area.
00:22 * cotto_work decommutes
00:22 sorear Will there be a M1 runops core, written in/compiled to M0, interpreting ops from PBC segments?
00:33 dalek winxed: r1036 | NotFound++ | trunk/t/basic/02hashexpr.t:
00:33 dalek winxed: test hash value initialized with a function
00:33 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1036
00:37 theory left #parrot
00:50 cotto ~~
00:50 sorear o/
00:50 cotto sorear, M1isn't a specific language or VM as much as it is any layer that sits directly above M0.
00:51 cotto I suspect that PIR will be one language that sits at the M1 layer
00:53 sorear Do you imagine a M0ified parrot still having runops functions, sucking our current ~1000 ops from Packfile_Segment structures?
00:53 sorear except, the runops functions being written with M0 and able to use PCC directly?
00:54 sorear and maybe a revived JIT runcore, using the M0 representation of ops to build a M0 version of hot subs?
00:57 cotto We'll need to do something to support PIR code.
01:04 dalek winxed: r1037 | NotFound++ | trunk/winxedst0.cpp:
01:04 dalek winxed: Allow functions in array expressions in stage 0.
01:04 dalek winxed: Not needed right now, but for consistency with hashes.
01:04 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1037
01:05 kid51_at_dinner Why is src/ops/core_ops.c in git if it's a generated file?
01:05 kid51_at_dinner is now known as kid51
01:08 cotto kid51, to break the bootstrapping problem
01:08 cotto it's needed to generate itself
01:09 NotFound Ah, bootstrap, how many crimes committed in your name...
01:09 dalek winxed: r1038 | NotFound++ | trunk/t/basic/02arrayexpr.t:
01:09 dalek winxed: test array item initialized with a function
01:09 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1038
01:10 cotto NotFound, not nearly enough
01:12 kid51 In the tt1682 branch, it's giving me problems.
01:13 kid51 I will have to edit it: s/substr_str/substr/g -- even though the top of the file warns me *not* to edit it.
01:13 NotFound kid51: no problem: edit it, build parrot, and then regenerate it.
01:14 kid51 How do I regenerate it?  And then, do I commit the regenerated file?
01:15 NotFound make bootstrap_ops, I think.
01:15 NotFound And yes, commit after.
01:16 cotto yup
01:17 NotFound Mmmm... not that target, let me look...
01:18 cotto bootstrap-ops
01:19 NotFound Aye
01:22 dalek parrot/tt1682/vtable_substr: 24ec657 | jkeenan++ | src/ops/core_ops.c:
01:22 dalek parrot/tt1682/vtable_substr: Run make bootstrap-ops.
01:22 dalek parrot/tt1682/vtable_substr: review: https://github.com/parrot/parrot/commit/24ec6575fa
01:30 kid51 src/ops/core_ops.c is in .gitignore (which forces me to say 'git add -f' to update it), as governed by rule /src/ops/*.c
01:30 kid51 Should it be in .gitignore?
01:31 cotto kid51, no.  That must be a leftover from when it was still generated by perl
01:32 NotFound Not so bad, helps to avoid commiting it by accident.
01:33 cotto it should be committed when there's a change
01:34 kid51 Which, of course, is the *only* time *any* file should be committed -- correct?
01:35 cotto I'm not sure how I'd answer no to that question, so I'll say yes.
01:41 jnthn__ A little optimization if anybody fancies it. Parrot_hll_get_ctx_HLL_type(interp, enum_class_LexPad) is a hot path when a language has a custom LexPad. It's a hotpath because...it has a hash table mapping the type IDs. However, there's only so many built-in types that are overridable, so an array would be cheap and have rather faster lookup.
01:42 jnthn__ A Rakudo profile I'm looking at currently has this function call eating up 3% of runtime.
01:43 jnthn__ And that's with a bunch of other sub-optimal stuff that I've yet to take care of...so it'll be even hotter in the future.
01:48 preflex left #parrot
01:50 preflex joined #parrot
01:52 cotto jnthn__, thanks.
01:53 whiteknight left #parrot
01:56 soh_cah_toa cotto: do i remember you saying it was a bad idea to #include both parrot/api.h and parrot/embed.h? or was parrot/api.h and parrot/parrot.h? it was the api and something else...
01:56 bubaflub NotFound: i've got a Winxed question if you've got some time
01:56 NotFound bubaflub: shot
01:56 dalek parrot/tt1682/vtable_substr: 13e4396 | jkeenan++ | .gitignore:
01:56 dalek parrot/tt1682/vtable_substr: src/ops/core_ops.c should not be in .gitnore.  It needs to be committed when altered (presumably after running make bootstrap-ops).  So we want to be able to say 'git add' rather be forced to say 'git add -f'.
01:56 dalek parrot/tt1682/vtable_substr: review: https://github.com/parrot/parrot/commit/13e4396d57
01:56 cotto soh_cah_toa, I believe that if you're using api.h, that's all you should be using
01:57 bubaflub NotFound: is there a way in Winxed to have multiple constructors for GMP.Integer - for example, a plain init() that just has a blank space, an init(int), and an init(string)?
01:58 NotFound bubaflub: not yet
01:58 bubaflub NotFound: what about a constructor that takes an optional argument, then in the body of the constructor i check the type and handle the logic that way?
01:59 NotFound bubaflub: yes, that works.
01:59 dalek parrot: 7084c39 | jkeenan++ | .gitignore:
01:59 dalek parrot: src/ops/core_ops.c should not be in .gitignore.  It needs to be committed when altered (presumably after running make bootstrap-ops).  So we want to be able to say 'git add' rather be forced to say 'git add -f'. (Same change as in tt1682/vtable_substr branch.)
01:59 dalek parrot: review: https://github.com/parrot/parrot/commit/7084c3940a
02:01 soh_cah_toa cotto: hmm...b/c i need to use things like Parrot_pbc_read() and Parrot_compile_file(). i only need them in a static function in frontend/hbdb/main.c though
02:01 soh_cah_toa cotto: i could call them from a function in src/hbdb.c but it makes more sense as a static function. what do you think?
02:02 cotto soh_cah_toa, how does the parrot frontend solve that problem?
02:03 * soh_cah_toa shrugs
02:04 NotFound Parrot frontened uses #include "imcc/api.h"
02:04 cotto soh_cah_toa, try tracing through the code.  Look for something that mentions "pbc".
02:05 * soh_cah_toa looks at imcc/api.h
02:05 cotto or better, "bytecode"
02:05 cotto sorry, I meant frontend/parrot/main.c
02:08 cotto more specifically, load_bytecode_file
02:08 soh_cah_toa cotto: ok, though compilers/imcc/api.c might actually prove helpful
02:09 cotto soh_cah_toa, that's possible.  Do you intend your debugger to be run on pir code or just pbc files?
02:09 cotto (in the immediate future, not long-term)
02:09 soh_cah_toa cotto: well, the main thing is i need to be able to compile a pir file if a pbc file instead specified on the cmd line. that's why i was looking to Parrot_compile_file()
02:09 cotto ok
02:09 cotto that's sensible
02:10 cotto Do you have any burning questions?  I'm about to take off.
02:11 NotFound Note that if you want to be able to debug :immediate subs you'll need to take control of the runloop before calling imcc.
02:12 redicaps joined #parrot
02:12 soh_cah_toa cotto: nope
02:14 cotto soh_cah_toa, ok.
02:28 mtk left #parrot
02:31 kid51 left #parrot
02:37 mtk joined #parrot
03:05 [hudnix] left #parrot
03:14 theory joined #parrot
03:17 preflex left #parrot
03:19 preflex joined #parrot
04:25 soh_cah_toa left #parrot
04:31 dalek parrot-gmp: 50d39c5 | bubaflub++ | / (2 files):
04:31 dalek parrot-gmp: refactor gmph2ncidef - use YAML config file for NCI mappings
04:31 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/50d39c5a1d
04:31 dalek parrot-gmp: 1218f7f | bubaflub++ | src/GMP/raw.nci:
04:31 dalek parrot-gmp: NCI definition annotated with convenient function names
04:31 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/1218f7f398
04:43 dalek parrot-gmp: 40fe931 | bubaflub++ | / (2 files):
04:43 dalek parrot-gmp: refactor gmph2ncidef - move function blacklist to YAML
04:43 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/40fe931809
04:49 preflex left #parrot
04:52 preflex joined #parrot
05:13 jsut joined #parrot
05:18 jsut_ left #parrot
06:01 cotto ~~
06:03 sorear hi
06:05 cotto hi sorear
06:10 AzureSto_ left #parrot
06:11 dalek parrot-gmp: f4eae18 | bubaflub++ | / (5 files):
06:11 dalek parrot-gmp: general house cleaning
06:11 dalek parrot-gmp:
06:11 dalek parrot-gmp: move templates around
06:11 dalek parrot-gmp: add another mapping that we need
06:11 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/f4eae180bf
06:11 dalek parrot-gmp: 71142e0 | bubaflub++ | gmpdoc2winxed.pl:
06:11 dalek parrot-gmp: first shot at gmpdoc2winxed.pl
06:11 dalek parrot-gmp:
06:11 dalek parrot-gmp: throws lots of warnings because the parsing isn't quite right:
06:12 dalek parrot-gmp:   need to handle pointers better
06:12 dalek parrot-gmp:   need to actually follow functions blacklist
06:12 dalek parrot-gmp:   need to replace HTML & and other signs
06:12 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/71142e018b
06:12 dalek parrot-gmp: 3642a51 | bubaflub++ | src/GMP.winxed:
06:12 dalek parrot-gmp: first shot at auto-generated GMP.winxed convenience class
06:12 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/3642a51f7f
06:21 dalek parrot-gmp: fe24e44 | bubaflub++ | gmpdoc2winxed.pl:
06:21 dalek parrot-gmp: actually return values from functions
06:21 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/fe24e44062
06:30 fperrad joined #parrot
06:34 AzureStone joined #parrot
06:36 dalek website: bubaflub++ | Parrot-GMP:  Yo dawg, heard you like generating code...
06:36 dalek website: http://www.parrot.org/content/parrot-​gmp-yo-dawg-heard-you-generating-code
06:36 cotto bubaflub++ for putting a thing in a thing
06:36 bubaflub cotto: the short version is: I take GMP documentation from Texinfo -> HTML then using a perl script read that HTML and generate Winxed class with POD documentation
06:37 cotto all of those are things, so... good show.  Carry on.
06:38 bubaflub cotto: hahaha.  yeah, a bit insane but it actually worked.  hours later i've got my Winxed class with all the proper docs, function names, signatures, parameter checking, and NCI calls.
06:38 bubaflub cotto: fsvo all
06:39 cotto I love getting a minimal thingy running.  It's great to see that you're there.
06:41 cotto not that I think you'll be bored
06:41 bubaflub cotto: haha, no i'm not bored.  but yes the minimal bit is really nice because before that it wasn't really at a point where I could test it.
06:48 bubaflub goodnight, #parrot
06:51 bubaflub left #parrot
06:55 cotto Speaking of minimal things, M0 can now jump between chunks.
06:55 dalek parrot/m0-prototype: d6588c5 | cotto++ | src/m0/perl5/m0_interp.pl:
06:55 dalek parrot/m0-prototype: use an environment variable to enable debugging output
06:55 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/d6588c5877
06:55 dalek parrot/m0-prototype: 26901c5 | cotto++ | / (2 files):
06:55 dalek parrot/m0-prototype: add goto_chunk tests and fixes to make them pass
06:55 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/26901c5639
06:57 cotto coverage is starting to look good
07:16 cotto time for sleep
07:16 dalek parrot/m0-spec: 6e6bf3f | cotto++ | docs/pdds/draft/pdd32_m0.pod:
07:16 dalek parrot/m0-spec: add a todo, be more specific about sys_free
07:16 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/6e6bf3f54c
07:17 benabik left #parrot
07:48 mj41 joined #parrot
07:51 jjore left #parrot
07:52 theory left #parrot
07:52 jjore_ joined #parrot
08:11 mj41 left #parrot
08:30 lateau joined #parrot
08:34 lateau left #parrot
08:46 zby_home left #parrot
10:17 mtk left #parrot
10:22 redicaps left #parrot
10:23 whiteknight joined #parrot
10:25 mtk joined #parrot
10:52 lucian joined #parrot
11:01 JimmyZ joined #parrot
12:09 ambs joined #parrot
12:13 dalek winxed: r1039 | NotFound++ | trunk/winxedst (2 files):
12:13 dalek winxed: add a four argument version of Error builtin to set payload
12:13 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1039
12:23 ligne joined #parrot
13:01 fperrad left #parrot
13:14 fperrad joined #parrot
13:16 kid51 joined #parrot
13:32 dalek Rosella/gh-pages: 208ad81 | Whiteknight++ | winxed/ (6 files):
13:32 dalek Rosella/gh-pages: Add updated drafts of each section, as separate files
13:32 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/208ad8185e
13:32 dalek Rosella/gh-pages: 867e29b | Whiteknight++ | winxed/index.md:
13:32 dalek Rosella/gh-pages: set up a proper TOC
13:32 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/867e29bb66
13:32 dalek Rosella/gh-pages: de6d6b0 | Whiteknight++ | _layouts/rosella.html:
13:32 dalek Rosella/gh-pages: Add link to the main layout
13:33 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/de6d6b06a9
13:35 dalek Rosella/gh-pages: 6f69195 | Whiteknight++ | / (2 files):
13:35 dalek Rosella/gh-pages: some style fixes
13:35 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/6f69195a67
13:39 dalek Rosella/gh-pages: 8339ece | Whiteknight++ | / (7 files):
13:39 dalek Rosella/gh-pages: a few small misc fixes
13:39 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/8339eced7f
13:39 whiteknight left #parrot
13:41 redicaps joined #parrot
13:56 dalek winxed: r1040 | NotFound++ | trunk/winxed (4 files):
13:56 dalek winxed: Big change in error handling:
13:56 dalek winxed: Use one parrot exception type for all compiler generated errors.
13:56 dalek winxed: Hardcode the type in the predefined constant __WINXED_ERROR__.
13:56 dalek winxed: Use a payload to store structured information.
13:56 dalek winxed: Emit the error messages in gcc format.
13:56 dalek winxed: Change the way used to pass line and number information to the
13:56 dalek winxed: error functions to simplifiy usages.
13:56 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1040
14:12 dalek nqp: 5baa62c | jonathan++ | src/6model/sixmodelobject.c:
14:12 dalek nqp: Fail in a more helpful way when important stuff is missing in meta-objects.
14:12 dalek nqp: review: https://github.com/perl6/nqp/commit/5baa62c226
14:14 kid51 left #parrot
14:14 plobsing joined #parrot
14:19 hudnix joined #parrot
14:38 dalek winxed: r1041 | NotFound++ | trunk/winxedst1.winxed:
14:38 dalek winxed: fix the result of optimization based on a wrong assumption about const Sub
14:38 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1041
14:41 JimmyZ_ joined #parrot
14:42 preflex left #parrot
14:43 dalek winxed: r1042 | NotFound++ | trunk/ (3 files):
14:43 dalek winxed: update installable files
14:43 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1042
14:46 preflex joined #parrot
14:46 JimmyZ left #parrot
14:46 JimmyZ_ is now known as JimmyZ
14:46 bluescreen joined #parrot
14:49 dalek parrot/with_winxed: 7bd5b4f | dukeleto++ | / (3 files):
14:49 dalek parrot/with_winxed: Remove last remnants of Parrot_Language and fix docs for Parrot_new_string
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/7bd5b4f0a7
14:49 dalek parrot/with_winxed: ee17ddd | cotto++ | src/call/pcc.c:
14:49 dalek parrot/with_winxed: add experimental fix for a bug found by jnthn++
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/ee17ddde9f
14:49 dalek parrot/with_winxed: 8f7ca28 | cotto++ | src/call/pcc.c:
14:49 dalek parrot/with_winxed: Merge branch 'invokable-fix'
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/8f7ca283d4
14:49 dalek parrot/with_winxed: bcd1d99 | fperrad++ | t/src/extend_vtable.t:
14:49 dalek parrot/with_winxed: [t] fix shebang
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/bcd1d99f1d
14:49 dalek parrot/with_winxed: e44bbc5 | fperrad++ | t/dynpmc/foo- (10 files):
14:49 dalek parrot/with_winxed: [t] fix shebang
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/e44bbc5495
14:49 dalek parrot/with_winxed: 4b43b7c | (Fitz Elliott)++ | examples/languages/squaak/d​oc/tutorial_episode_1.pod:
14:49 dalek parrot/with_winxed: [doc] minor fix to squaak tutorial
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/4b43b7cd63
14:49 dalek parrot/with_winxed: 27b401d | cotto++ | examples/languages/squaak/d​oc/tutorial_episode_1.pod:
14:49 dalek parrot/with_winxed: Merge pull request #134 from felliott/felliott/tutorial_fixes
14:49 dalek parrot/with_winxed:
14:49 dalek parrot/with_winxed: [doc] minor fix to squaak tutorial
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/27b401df44
14:49 dalek parrot/with_winxed: 2438c29 | cotto++ | docs/pdds/pdd19_pir.pod:
14:49 dalek parrot/with_winxed: make an example in pdd19 less ambiguous
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/2438c29d40
14:49 dalek parrot/with_winxed: 88938d0 | soh_cah_toa++ | src/call/pcc.c:
14:49 dalek parrot/with_winxed: Added missing =cut that was messing up perldoc
14:49 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/88938d04dc
14:49 dalek parrot/with_winxed: 51ee42f | benabik++ | docs/pdds/pdd19_pir.pod:
14:49 dalek parrot/with_winxed: PDD 19: Explain :method :multi(_)
14:49 dalek parrot/with_winxed:
14:49 dalek parrot/with_winxed: I didn't expect :multi to need to add the type of the invocant.  So
14:49 dalek parrot/with_winxed: let's add an explanation to the first place I looked for an answer.
14:50 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/51ee42f4cc
14:50 dalek parrot/with_winxed: c2e3158 | benabik++ | CREDITS:
14:50 dalek parrot/with_winxed: Add myself to CREDITS
14:50 dalek parrot/with_winxed:
14:50 dalek parrot/with_winxed: I like getting credit for things.
14:50 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/c2e3158b22
14:50 dalek parrot/with_winxed: 7084c39 | jkeenan++ | .gitignore:
14:50 dalek parrot/with_winxed: src/ops/core_ops.c should not be in .gitignore.  It needs to be committed when altered (presumably after running make bootstrap-ops).  So we want to be able to say 'git add' rather be forced to say 'git add -f'. (Same change as in tt1682/vtable_substr branch.)
14:50 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/7084c3940a
14:50 dalek parrot/with_winxed: 0fc7777 | NotFound++ | / (20 files):
14:50 dalek parrot/with_winxed: Merge branch 'master' into with_winxed
14:50 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/0fc7777276
14:50 NotFound Looks like --no-ff is not such a great idea.
14:51 plobsing_ joined #parrot
14:56 plobsing left #parrot
14:56 dalek parrot/with_winxed: 9b60b69 | NotFound++ | ext/winxed/ (2 files):
14:56 dalek parrot/with_winxed: upadte winxed snapshot to r1042
14:57 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/9b60b69a34
15:11 benabik joined #parrot
15:16 pjcj left #parrot
15:18 lucian left #parrot
15:19 lucian joined #parrot
15:20 kid51 joined #parrot
15:22 * kid51 backscrolls and sees self getting credited for commits to branches he's never checked out!
15:22 kid51 This never happened with Subversion ;-)
15:24 bubaflub joined #parrot
15:46 JimmyZ left #parrot
15:50 redicaps left #parrot
16:06 lucian is there a partial() in parrot/winxed/rosella somewhere?
16:12 bubaflub seen plobsing
16:12 aloha plobsing was last seen in #parrot 1 hours 58 mins ago joining the channel.
16:12 theory joined #parrot
16:13 plobsing_ o/
16:13 bubaflub plobsing_: yay.  i've got a few NCI questions for ya
16:15 plobsing_ okay.
16:15 bubaflub plobsing_: unsigned long int, signed long int, and long int all map to an 'i' type, right?
16:16 plobsing_ no. long is 'l' or 'DATATYPE_LONG'
16:17 plobsing_ sizeof (int) != sizeof (long)
16:17 plobsing_ otherwise they wouldn't be separate types
16:17 plobsing_ but yes, unsigned types can be mapped to their signed argument equivalents because the standard guarrantees equivalence of storage size (IIRC)
16:19 plobsing_ afk - lunch
16:42 dalek nqp: 401cd85 | jonathan++ | src/ops/nqp.ops:
16:42 dalek nqp: Missing decontainerize. Unbreaks some type checks in rakudo/nom.
16:42 dalek nqp: review: https://github.com/perl6/nqp/commit/401cd85bba
16:50 plobsing_ ~~
16:57 ligne left #parrot
16:58 cotto ~~
17:14 atrodo left #parrot
17:28 bubaflub left #parrot
17:34 lucian does winxed have destructuring assignment? like var [a, b] = [1, 2]?
17:35 plobsing_ lucian: that would probably be far to magical for winxed
17:37 lucian plobsing_: it appears not to. but i don't see it as a high-level feature
17:38 NotFound lucian: winxed tries to be light weight, it can't have a special syntax for any purpose.
17:38 * lucian shrugs
17:38 NotFound Specially if it's only sugar for something already doable.
17:39 lucian well, it has sugar for {} and []
17:39 lucian which is very useful, btw
17:39 NotFound lucian: yes, and that's the reason.
17:40 plobsing_ if winxed were to support destructuring assign, I'd expect it to cheat by abusing PCC to do it
17:40 dodathome joined #parrot
17:40 NotFound No need to cheat, you can do it directly.
17:41 NotFound :(var a, var b) = function() { return [1, 2]:flat; };
17:44 NotFound Mmmm... I think I've found a bug related to that.
17:54 NotFound Yeah, fixed...
17:55 dalek winxed: r1043 | NotFound++ | trunk/winxedst1.winxed:
17:55 dalek winxed: multi assign lacked inheritance from Statement, fixed
17:55 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1043
17:55 NotFound After the fix and fixing that last line, this works: :(var a, var b) = function() { return [1, 2]:[flat]; }();
18:02 klavspr joined #parrot
18:03 lucian i'm already usinng :(a, b) = function() { return 1, 2;}(); very useful
18:04 dalek nqp: 13eb661 | pmichaud++ | / (3 files):
18:04 dalek nqp: Refactor --gen-parrot and Configure.pl a bit more, move git repo
18:04 dalek nqp: management into NQP::Configure module.
18:04 dalek nqp:
18:04 dalek nqp: The --gen-parrot argument to Configure.pl now accepts an optional
18:04 dalek nqp: value to be used for 'git checkout'; thus "--gen-parrot=master"
18:04 dalek nqp: will build Parrot from its 'master' branch instead of the one
18:04 dalek nqp: given by tools/build/PARROT_REVISION.  Any valid argument to
18:04 dalek nqp: "git checkout" can be given to "--gen-parrot".  Minimum revision
18:04 dalek nqp: checks (according to --min-parrot-revision or tools/build/PARROT_REVISION)
18:04 dalek nqp: are still performed.
18:04 dalek nqp: review: https://github.com/perl6/nqp/commit/13eb661cc8
18:04 dalek nqp: df3bf99 | pmichaud++ | src/ops/nqp.ops:
18:04 dalek nqp: Merge branch 'master' of github.com:perl6/nqp
18:04 NotFound I think that is the better way, figure what idioms are useful and hard to write enough to merit specialized sugar guided by real world usages.
18:04 dalek nqp: review: https://github.com/perl6/nqp/commit/df3bf9916e
18:05 NotFound So, we need more real world usages ;)
18:05 dalek winxed: r1044 | NotFound++ | trunk/winxedst1.winxed:
18:05 dalek winxed: diagnose wrong usage of multi assignment
18:05 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1044
18:05 dalek winxed: r1045 | NotFound++ | trunk/pir/winxed_compiler.pir:
18:05 dalek winxed: update installable compiler
18:05 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1045
18:07 lucian NotFound: yes. i asked about destructuring assignment because i'd find it useful
18:08 lucian of course, others might not
18:10 NotFound lucian: I don't doubt it's usefulness, but I haven't figured a way to do it without special purpose syntax or adding complexity to the language, so the balance is againt it.
18:11 bubaflub joined #parrot
18:11 lucian i see
18:11 lucian when using:( ) i found i'd like to be able to declare things as well
18:11 lucian so var :(a, b) would be useful, i don't know how much effort that'd be
18:12 NotFound lucian: you can do :( var a, var b)
18:12 klavspr Hello, is here anyone who could answer some questions about M0?
18:12 lucian NotFound: does that declare them?
18:12 lucian NotFound: it'd shorten quite a bit of code
18:12 NotFound lucian: yes
18:13 lucian thanks
18:14 NotFound And you are not limited to var.
18:15 NotFound They are like function parameters, except that there is no implicit var.
18:16 lucian NotFound: hmm, that doesn't seem to work: Method 'isempty' not found for invocant of class 'MultiAssignStatement'
18:16 NotFound lucian: that's the bug I've just fixed.
18:18 dalek parrot/with_winxed: e4d1c67 | NotFound++ | ext/winxed/compiler.pir:
18:18 dalek parrot/with_winxed: update winxed compiler snapshot to fix multi assign bug
18:18 dalek parrot/with_winxed: review: https://github.com/parrot/parrot/commit/e4d1c677fb
18:18 lucian NotFound: ah, ok. nice :)
18:18 plobsing_ klavspr: if there were a place for such questions, here would be it
18:19 plobsing_ or the mailing list
18:19 lucian also, i hate w/e is preventing me from seeing (correct) winxed line numbers in runtime exceptions
18:19 lucian imcc i suspect
18:20 plobsing_ imcc's line numbering got worse some time in the last 3/4 of a year
18:20 plobsing_ not sure why.
18:20 kid51 left #parrot
18:22 cotto klavspr, what's your question?
18:28 cotto The fact that you're asking that gives me a good indicator of what I should do today.
18:28 klavspr I have studied the only doc about M0 out there and i was wondering - why does opcode_t can be any length, but opcode instruction consists of only 4 chars(that means fixed size)?
18:31 cotto klavspr, the fixed size instructions are to make dealing with bytecode simpler.  opcode_t as it's used in the M0 spec is ill-defined and needs to be tightened.  The intent is that it be essentially a union of M0's int, numeric and pointer so that it's big enough to hold any of those types.
18:36 klavspr Cotto, i haven't seen M0 prototype, can you tell me what is the size of opcode_t used there? ( Or it depends on the program being assembled and it is not constant?)
18:38 cotto klavspr, it's in the m0-prototype branch on github.  There, it's long.
18:42 klavspr Cotto, is there any reason to assume, that it will change?
18:45 cotto klavspr, if m0 bytecode needs to be portable, opcode_t will need to be large enough to hold a 64-bit pointer.  If not, it can be either 32 or 64 bits.
18:50 klavspr Cotto, thanks, now i understand.
18:50 sorear cotto: so on 32-bit platforms M0 numerics will be 'float'?
18:51 cotto klavspr, you're welcome.  I like it when people ask questions about M0 because it often exposes assumptions I didn't realize I was making.
18:52 cotto sorear, that's an open question.
18:53 klavspr left #parrot
18:53 fperrad left #parrot
18:56 klavspr joined #parrot
18:57 plobsing_ left #parrot
18:59 * lucian dreads implementing scope
19:01 klavspr Cotto, i hope i will not get too annoying. Why are there two mem alloc instructions(gc and sys)?
19:02 cotto klavspr, you're about 150 questions away from annoying. ;)
19:03 cotto sys_alloc is essentially a wrapper around malloc and needs to be freed explicitly.  gc_alloc is an interface to the GC, so it takes some flags to indicate special behavior and doesn't need to be explicitly freed.
19:03 ligne joined #parrot
19:04 ambs moritz: thanks for merging my changes. can I continue hacking? O:-)
19:07 klavspr Isn't it theoretically possible to implement GC using sys_alloc and sys_free?
19:08 cotto klavspr, theoretically, yes but it'll be a while before we have the GC implemented in M0, if we ever do.
19:11 klavspr left #parrot
19:11 klavspr joined #parrot
19:15 lucian klavspr: if you're curious, JikesRVM is a metacircular vm with several GCs
19:16 lucian klavspr: but cotto is right, it's unlikely parrot will get GCs written in M0 any time soon
19:20 klavspr lucian, in fact i do not know GC in details. Thanks, but i am not currently interested in it.
19:20 soh_cah_toa joined #parrot
19:21 soh_cah_toa ~~
19:21 pjcj joined #parrot
19:23 sorear hey soh_cah_toa
19:24 sorear I hear you're having trouble implementing breakpoints and code modification
19:24 soh_cah_toa sorear: howdy
19:24 soh_cah_toa sorear: uh...yeah :(
19:25 soh_cah_toa sorear: right now, i'm having trouble just trying to get the correct line number
19:25 sorear Why?
19:25 sorear I want to help
19:25 soh_cah_toa sorear: that would be great :)
19:25 klavs joined #parrot
19:25 klavspr left #parrot
19:25 klavspr joined #parrot
19:25 klavspr left #parrot
19:26 sorear Don't worry about line numbers for now.  Break on IP.
19:26 soh_cah_toa sorear: instruction pointer?
19:27 sorear yes
19:27 soh_cah_toa sorear: well, i need to find the line number to be able to match what the user entered. how would the instruction pointer help?
19:28 sorear soh_cah_toa: tell the user to enter the instruction pointer value
19:28 sorear not the line number
19:28 pjcj left #parrot
19:28 sorear like b *0x2839339 in gdb
19:29 soh_cah_toa sorear: hmm...that's kinda funky though. rather then just saying "break 3" they'd have to find the address first which is kinda cumbersome
19:29 soh_cah_toa sorear: i mean, i would like that in the future though
19:29 sorear soh_cah_toa: do the possible now, do the impossible later
19:29 soh_cah_toa sorear: you're right
19:30 cotto +1
19:30 soh_cah_toa sorear: though who would think that the impossible == just retrieving a simple line number ;)
19:30 cotto soh_cah_toa, anyone who knows imcc
19:30 sorear soh_cah_toa: the people in #perl6 who are seeing syntax errors on line 384294290
19:31 soh_cah_toa imcc-- everyday i work on this :)
19:32 soh_cah_toa sorear: alright, so first i have to figure out how to retrieve the ip. i didn't realize parrot even used special registers like ip
19:32 bubaflub beyond heredocs, what else is causing imcc's misnumbering of lines?
19:32 sorear bubaflub: leading spaces and the lack thereof have come up
19:32 bubaflub wow.  not cool.
19:33 sorear soh_cah_toa: try "pbc_disassemble"
19:33 Patterner left #parrot
19:33 * soh_cah_toa takes a look
19:35 klavs left #parrot
19:35 klavs joined #parrot
19:36 soh_cah_toa 000000000010-000000000028 000023
19:36 soh_cah_toa help me make sense of this. what do the values in each column represent? i'm guessing the first is the instruction pointer, the one after the hyphen i don't know, and the last is the opcode value?
19:37 pjcj joined #parrot
19:38 cotto soh_cah_toa, context?
19:38 soh_cah_toa oh right, from pbc_disassemble
19:39 soh_cah_toa actually, no. the last column can't be the opcode value. hmm...
19:40 cotto soh_cah_toa, the output from pbc_disassemble should tell you what those values are.
19:40 NotFound Interesting result of a simple test: a line annotation in a :init sub is enough to fool pir line numbering.
19:41 cotto It's like a bad joke
19:42 soh_cah_toa oh yeah, i had to scroll up a bit: "Seq_Op_Num- Relative-PC SrcLn". sequence opcode number? what's that? and relative program counter...relative to what?
19:43 pjcj left #parrot
19:46 cotto looks like it's relative to the start of the current code segment
19:47 soh_cah_toa ahh...makes sense
19:52 moritz ambs: feel free... though I'd prefer to merge feature branches (ie one branch per feature)
19:53 soh_cah_toa what about Seq_Op_Num though? the perldoc wasn't that helpful.
19:53 soh_cah_toa all the numbers are sequential so it obviously isn't the ip. i'll take a look at the source for Parrot_disassemble()
19:54 sorear looks to me like #1 counts instructions, #2 counts ip values, and #3 counts nothing useful at alll
19:54 sorear ip values are always relative to some code segment, because we want to be able to garbage collect unused subroutines
19:54 sorear note: this doesn't actually work at present
19:56 ambs moritz: ok, a new feature now. Will try to get a way to produce a new branch if I need a new feature :)
19:58 soh_cah_toa ah...now i remember. the program counter (pc) is just another term for the instruction pointer (ip). i always mix those up. i like ip better though :)
20:02 klavs left #parrot
20:05 bubaflub NotFound: i've got a Winxed question for ya if you've got a moment.
20:06 NotFound bubaflub: go on
20:06 bubaflub NotFound: how do i throw exceptions?  right now i'm checking some of the parameters passed into a function to make sure they are instanceof the correct class and i don't think doing "die" is a good idea there.
20:07 NotFound bubaflub: the easy wy is to use the builtin Error
20:08 bubaflub NotFound: cool.  is there an example handy?
20:09 NotFound throw Error(message, severity, type, payload), only message is mandatory.
20:09 NotFound Is just a sort of encapsulated Exception constructor.
20:09 bubaflub NotFound: great.  thanks.  Winxed is definitely making this project much easier.
20:11 NotFound For simple cases you can use throw "message", which is the same as die but looks less confusing.
20:13 whiteknight joined #parrot
20:20 dodathome left #parrot
20:21 lucian left #parrot
20:22 whiteknight good afternoon, #parrot
20:23 cotto hio whiteknight
20:23 whiteknight hello cotto.
20:24 whiteknight NotFound++
20:27 dalek nqp: 16638bd | pmichaud++ | Configure.pl:
20:27 dalek nqp: Fix typo in min-parrot-revision handling.
20:27 dalek nqp: review: https://github.com/perl6/nqp/commit/16638bd90c
20:28 sorear hello, whiteknight.
20:28 whiteknight hello sorear
20:31 lucian joined #parrot
20:32 dalek Rosella/gh-pages: 887395e | Whiteknight++ | _layouts/rosella.html:
20:32 dalek Rosella/gh-pages: Add link to filesystem docs, and rearrange the header a little bit
20:32 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/887395e4aa
20:32 dalek Rosella: fc2c635 | Whiteknight++ | / (20 files):
20:32 dalek Rosella: FileSystem library is now stable
20:32 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/fc2c635940
20:34 dalek nqp: e8a1c1f | jonathan++ | src/6model/reprs/P6opaque. (2 files):
20:34 dalek nqp: Extend P6opaque so it knows how to vivify containers. Should perform rather better doing things this way than Rakudo does with master; no extra lookup cost to objects that don't need the feature (like in NQP).
20:34 dalek nqp: review: https://github.com/perl6/nqp/commit/e8a1c1f0f3
20:37 bubaflub NotFound: could you help me with another Winxed problem?
20:38 NotFound bubaflub: sure
20:39 bubaflub I'm getting "Could not find sub gmpz_t" even though I'm seeing it both in the Winxed source and the generated PIR.  How should I go about figuring out what is wrong?
20:40 NotFound bubaflub: Maybe is in a different namespace?
20:43 bubaflub NotFound: ok, i'm going to try and get a reduced test case here in a sec
20:44 NotFound Good
20:45 dalek parrot-gmp: d8118e2 | bubaflub++ | conf/mappings.yml:
20:45 dalek parrot-gmp: these are in fact 'l' types, plobsing++
20:45 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/d8118e2d75
20:45 dalek parrot-gmp: eafeb2d | bubaflub++ | gmpdoc2winxed.pl:
20:45 dalek parrot-gmp: now with less bugs!
20:45 dalek parrot-gmp:
20:45 dalek parrot-gmp: function blacklist implemented
20:45 dalek parrot-gmp: funciton prefix match implemented
20:45 dalek parrot-gmp: remove more HTML entites which get generated into unicode
20:45 dalek parrot-gmp: skip class functions
20:45 dalek parrot-gmp: handle '...' in function parameter
20:45 dalek parrot-gmp: fix POD layout
20:45 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/eafeb2d647
20:45 dalek parrot-gmp: 1651e0a | bubaflub++ | src/GMP.winxed:
20:45 dalek parrot-gmp: shiny new output from previous commit
20:45 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/1651e0a6f6
20:52 bubaflub NotFound: here is a minimal test case that still gives the "Could not find sub" - https://gist.github.com/1008345
20:52 bubaflub NotFound: i had something similar to this working before, i'm not sure what changed
20:53 pjcj joined #parrot
20:55 ambs_ joined #parrot
20:55 ambs left #parrot
20:55 ambs_ is now known as ambs
20:57 NotFound Uh... immediate... let me look...
21:01 NotFound bubaflub: drop the "using static"
21:05 lucian NotFound: i think i have a feature request for winxed, but I'm not sure it's possible
21:05 NotFound lucian: just ask, unless you tend to feel hurt by rejections ;)
21:06 lucian NotFound: js can do var a = function foo() { };
21:06 lucian it's still a function literal, but the function gets a name for debugging
21:06 lucian do you think that would be possible in winxed?
21:08 NotFound The problem is the possible conflict with subs with the same name in the same namespace.
21:09 lucian right
21:10 NotFound I don't have a solution for that problem.
21:10 lucian there could be a namespace just for such literals, but that's a bit of a ahck
21:10 NotFound Worse than a hack, hidden namespace will complicate even more scope issues.
21:11 * lucian nods
21:11 bubaflub NotFound: that worked.  plobsing's ZeroMQ bindings had using static and i could have swore that worked for me before.  what exactly is the difference?
21:12 lucian NotFound: another thing: could winxed only display an error message when compilation fails, instead of a full stack trace for the compiler?
21:12 lucian NotFound: by default that is, with a --debug option that re-enables the full stack trace
21:13 NotFound bubaflub: using static was a provisional mean to work around the lack of scope searching. Now scope search is improved, but lool than in the process some usages of using static had been damaged. I'll look at it, but anyway right now is better to not use it.
21:13 bubaflub NotFound: works for me.
21:13 bubaflub NotFound: thanks for lookin' at my code.
21:14 NotFound lucian: is doing right now, after r1040
21:14 lucian NotFound: ah, nice :)
21:14 lucian NotFound: you have this tendency of reading my mind
21:15 NotFound lucian: the reworking of the drivers damaged the error reporting a few weeks ago, got unrepaired too long because of other priorities.
21:16 lucian i see
21:16 NotFound The new way will be stable, I hope.
21:21 bubaflub incoming
21:21 dalek parrot-gmp: 8f849a5 | bubaflub++ | src/GMP.winxed (2 files):
21:21 dalek parrot-gmp: fix 'Could not find sub gmpz_t' error, NotFound++
21:21 dalek parrot-gmp:
21:21 dalek parrot-gmp: examples/basic.winxed works again
21:21 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/8f849a52b6
21:21 dalek parrot-gmp: eecbfd3 | bubaflub++ | / (2 files):
21:21 dalek parrot-gmp: throw an error instead of dying when we get a bad parameter
21:21 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/eecbfd3d5b
21:25 ambs left #parrot
21:31 cotto bash--
21:33 NotFound bubaflub: I think the problem was that for that usage 'using static' was unapropiate, 'using' fits better.
21:33 NotFound using static loks by name, and does fit very well with :anon ;)
21:34 NotFound (does not)
21:35 NotFound Probably it worked before because the .sub got assigned the name as subid
21:41 bubaflub NotFound: makes sense
21:52 dalek Rosella/gh-pages: a3d23bd | Whiteknight++ | / (2 files):
21:52 dalek Rosella/gh-pages: some CSS fixes
21:52 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/a3d23bdca5
23:19 bubaflub left #parrot
23:27 lucian left #parrot
23:29 lucian joined #parrot
23:44 lucian left #parrot
23:46 lucian joined #parrot
23:46 lucian left #parrot
23:51 ligne left #parrot

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

Parrot | source cross referenced