Camelia, the Perl 6 bug

IRC log for #parrot, 2011-08-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:00 kid51 joined #parrot
00:05 dalek Rosella: 6bdf518 | Whiteknight++ | src/ (13 files):
00:05 dalek Rosella: Use the new __CLASS__ variable in winxed to make the must_subclass errors more consistent. Also, fix a few other things
00:05 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/6bdf518597
00:10 davidfetter left #parrot
00:10 kid51 Does anyone know what program I can use to listen to a podcast recorded in .ogg format?
00:11 whiteknight left #parrot
00:12 whiteknight joined #parrot
00:13 whiteknight bleh
00:17 bubaflub kid51: i'd recommend VLC (http://www.videolan.org/)
00:17 theory left #parrot
00:26 kid51 I tried itunes, windows media player and quicktime, all without success.
00:26 kid51 I went back to the web page and got a link to play the .mp3 directly thru the browser.
00:26 bubaflub that works too.
00:36 dafrito Should I post questions/comments regarding hacking on parrot's lua to IRC, the mailing list, or github, (or even Parrot's trac?)
00:37 dafrito For example, a lot of the documentation refers to languages/lua, which is where the fetch_languages script puts lua. But those locations don't make sense if you've cloned it separately, so I'm wondering if they should be changed?
00:37 dalek TT #2008 closed by jkeenan++: [PCT] Patch/feature request: No pop_eh in try PAST::Op
00:37 dalek TT #2008: http://trac.parrot.org/parrot/ticket/2008
00:37 kid51 On the face of it, the logical place would be parrot-users mailing list.
00:38 kid51 We could make sure that the people who currently hack on Lua-on-Parrot would respond.
00:39 kid51 2nd choice: parrot-dev
00:39 kid51 I'm sure our lead Lua hacker would welcome the opportunity to interact with a user :-)
00:41 dafrito kid51, okay, awesome. I'm just not sure what people expect, y'know? I don't want to post stuff where it's not expected/preferred
00:41 dafrito Should I file tickets regarding lua in Parrot's trac?
00:42 kid51 Our lead Lua person, fperrad, is rarely on IRC.  That's why I recommend the mailing list(s).  He may wish to direct you to github or someplace else.
00:42 kid51 If you think that there's something amiss re where Parrot installs things, do file a Trac ticket.
00:43 dafrito kid51, okay
00:44 kid51 I'd give you a less confusing answer but we don't get that many questions about the languages :-(
00:44 whiteknight I have been meaning to learn Lua
00:44 whiteknight I really need to do that
00:44 kid51 You could learn Portuguese at the same time :-)
00:45 whiteknight if there is one thing I cannot do, it's learn foreign human languages
00:45 whiteknight I'll stick with computer languages, thank you
00:45 dalek Rosella/new_load_bytecode: 9fd545e | Whiteknight++ | / (183 files):
00:45 dalek Rosella/new_load_bytecode: merge
00:45 dalek Rosella/new_load_bytecode: review: https://github.com/Whiteknig​ht/Rosella/commit/9fd545e0fc
00:45 dalek Rosella: 9fd545e | Whiteknight++ | / (183 files):
00:45 dalek Rosella: merge
00:45 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/9fd545e0fc
00:45 dalek Rosella: 307ace4 | Whiteknight++ | / (80 files):
00:45 dalek Rosella: Merge branch 'new_load_bytecode'
00:45 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/307ace41d5
00:47 dafrito whiteknight, basic lua you could probably learn in 20 minutes. metatables can be a little confusing for people.... and if you're not comfortable with closures, then there's that, too
00:49 kid51 whiteknight: Does that mean that you did not attempt the Parrot 3.6 identify-the-release-quotation contest?
00:49 whiteknight kid51: I was able to recognize it was spanish.
00:58 Koven 21:44.48 <@kid51> You could learn Portuguese at the same time :-) <-- not worth it
00:58 Koven even if you spend 10 years dedicated to learning it you can never manage it
00:58 Koven is now known as Kovensky
01:02 Felipe Kovensky: brasileiro? :)
01:18 dalek parrot: 7d086f7 | Whiteknight++ | config/gen/makefiles/root.in:
01:18 dalek parrot: +fix checkdepend.t
01:18 dalek parrot: review: https://github.com/parrot/parrot/commit/7d086f7a34
01:18 dalek parrot: 0fb44aa | Whiteknight++ | src/packfile/api.c:
01:18 dalek parrot: Throw an exception if we can't find the bytecode path
01:18 dalek parrot: review: https://github.com/parrot/parrot/commit/0fb44aa481
01:21 dalek Rosella: ff0e807 | Whiteknight++ | src/core/Globals.winxed:
01:21 dalek Rosella: refactor library loading a little bit
01:21 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/ff0e807e34
01:21 whiteknight Passed 623 tests in 101 files (4 test runs)
01:22 whiteknight that's what I like to see
01:22 kid51 What were you testing? Rosella?
01:28 whiteknight yeah
01:29 dalek rakudo/nom: ba234b2 | Coke++ | t/spectest.data:
01:29 dalek rakudo/nom: run fudged tests
01:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba234b2229
01:29 whiteknight left #parrot
01:48 dalek rakudo/nom: 8590f22 | Coke++ | t/spectest.data:
01:48 dalek rakudo/nom: update failure conditions
01:48 dalek rakudo/nom: no more segfaults!
01:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8590f22793
01:51 kid51 left #parrot
02:01 woosley joined #parrot
02:33 jsut joined #parrot
02:37 jsut_ left #parrot
04:15 kurahaupo left #parrot
04:23 dalek rakudo/nom: b1faa05 | pmichaud++ | NOMMAP.markdown:
04:23 dalek rakudo/nom: Add a "punch list" to NOMMAP.
04:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1faa05b55
04:29 benabik ~~
04:29 benabik whiteknight: unlikely pong
04:30 benabik Yeah, not even online.
04:35 * plobsing consistently parses "NOMMAP" wrong. I keep asking myself why pmichaud has something against memory mapping.
04:36 pmichaud hey, I didn't pick the name.  :)
04:37 pmichaud I'll be very glad when we can remove or rename that file.  :)
04:38 plobsing clarifying punctuation would be a nice place to start
04:39 benabik NOM_MAP?
04:40 plobsing wfm
04:47 Coke left #parrot
04:47 Coke joined #parrot
04:54 particle left #parrot
05:06 cotto ~~
05:13 SHODAN joined #parrot
05:27 preflex_ joined #parrot
05:31 preflex left #parrot
05:50 dafrito left #parrot
05:57 particle joined #parrot
06:20 plobsing left #parrot
06:35 fperrad joined #parrot
06:39 dafrito joined #parrot
06:52 mj41 joined #parrot
07:58 dafrito left #parrot
08:00 lucian joined #parrot
08:24 dafrito joined #parrot
09:03 eternaleye_ joined #parrot
09:05 eternaleye left #parrot
09:18 dalek rakudo/nom: f998cbb | moritz++ | / (3 files):
09:18 dalek rakudo/nom: start to put back tai-utc and Instant (Duration still missing)
09:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f998cbb9f3
09:22 Tene_ joined #parrot
09:22 TimToady_ joined #parrot
09:22 pjcj_ joined #parrot
09:22 pjcj left #parrot
09:22 dukeleto left #parrot
09:23 TimToady left #parrot
09:23 Tene left #parrot
09:23 dukeleto joined #parrot
09:33 AzureStone joined #parrot
09:35 AzureSto_ left #parrot
09:39 dalek rakudo/nom: 802a6ae | moritz++ | / (3 files):
09:39 dalek rakudo/nom: start to put Duration back in
09:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/802a6ae218
09:41 woosley left #parrot
10:12 dalek rakudo/nom: fa2f005 | moritz++ | / (2 files):
10:12 dalek rakudo/nom: be more careful about :D in Instant and Duration
10:12 dalek rakudo/nom:
10:12 dalek rakudo/nom: Also add Instant.{Str,perl}, run tests. .gist is still missing.
10:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fa2f005004
10:13 dalek lua: 8ea8e82 | dafrito++ | lua/POSTGrammar.tg:
10:13 dalek lua: transform return: Removed an optimization that broke some table literals
10:13 dalek lua:
10:13 dalek lua: This optimization would normally remove an unnecessary variable, such as
10:14 dalek lua: the one in the following generated PIR:
10:14 dalek lua:
10:14 dalek lua: set $P18, $P17[k_Foo]
10:14 dalek lua: new $P19, "LuaNil"
10:14 dalek lua: .tailcall $P18()
10:14 dalek lua:
10:14 dalek lua: In the above snippet, $P19 is not used, so it can be removed without
10:14 dalek lua: harm. However, there are instances where this variable is used. Consider
10:14 dalek lua: the following code:
10:14 dalek lua:
10:14 dalek lua: function Foo()
10:14 dalek lua: return 42
10:14 dalek lua: end
10:14 dalek lua:
10:14 dalek lua: return { Foo() }
10:14 dalek lua:
10:14 dalek lua: In this case, the following PIR should be generated:
10:14 dalek lua:
10:14 dalek lua: new $P21, "LuaNil"
10:14 dalek lua: ($P21 :slurpy) = $P20()
10:14 dalek lua: .tailcall tconstruct($P18, $P19, $P21 :flat)
10:14 dalek lua:
10:14 dalek lua: In this case, the register that initially contains a nil value is
10:14 dalek lua: actually used, so it cannot be optimized away.
10:14 dalek lua: review: https://github.com/fperrad/lua/commit/8ea8e825c4
10:14 dalek lua: ee17af1 | dafrito++ | lua/lib/luaaux.pir:
10:14 dalek lua: luaaux.pir: Changed encoding to utf8
10:14 dalek lua:
10:14 dalek lua: This fixes a "Lossy conversion to single byte encoding" error when
10:14 dalek lua: trying to run a Lua program with Unicode characters.
10:14 dalek lua:
10:14 dalek lua: A simple test is the following snippet:
10:14 dalek lua:
10:14 dalek lua: print "∙";
10:14 dalek lua: review: https://github.com/fperrad/lua/commit/ee17af1c56
10:14 dalek lua: fcf40ee | dafrito++ | luap.pir:
10:14 dalek lua: Allow installable_luap to display Unicode characters
10:14 dalek lua:
10:14 dalek lua: installable_luap fails to display Unicode characters. Consider the following snippet:
10:14 dalek lua:
10:14 dalek lua: print "∙";
10:14 dalek lua:
10:14 dalek lua: This yields the following error:
10:14 dalek lua:
10:14 dalek lua: ./installable_luap Unicode.lua
10:14 dalek lua: Invalid character in ASCII string
10:14 dalek lua: current instr.: 'parrot;PCT;HLLCompiler;evalfiles' pc 1468 (compilers/pct/src/PCT/HLLCompiler.pir:756)
10:14 dalek lua: called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1719 (compilers/pct/src/PCT/HLLCompiler.pir:875)
10:14 dalek lua: called from Sub 'main' pc 27 (luap.pir:27)
10:14 dalek lua:
10:14 dalek lua: This patch fixes the problem for installable_luap, but it remains for installable_lua
10:14 dalek lua: review: https://github.com/fperrad/lua/commit/fcf40eed4f
10:14 dalek lua: 3806339 | fperrad++ | lua (3 files):
10:14 dalek lua: Merge pull request #3 from dafrito/master
10:14 dalek lua:
10:14 dalek lua: Removed optimization from transform return
10:14 dalek lua: review: https://github.com/fperrad/lua/commit/38063394c2
10:19 dafrito lol, I apparently need to do shorter commit messages ;)
10:21 tadzik (:
10:37 dalek rakudo/nom: d43fbb8 | jonathan++ | src/binder/container.c:
10:37 dalek rakudo/nom: Optimize decontainerization by hot-pathing Perl 6 scalars.
10:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d43fbb878c
10:39 Felipe good morning
10:58 contingencyplan left #parrot
11:15 pjcj_ is now known as pjcj
11:26 dalek rakudo/nom: fdacbbc | tadzik++ | / (4 files):
11:26 dalek rakudo/nom: Fix .WHY on subroutines.
11:26 dalek rakudo/nom:
11:26 dalek rakudo/nom: Also rename $*DECLARATOR to $*DECLARATOR_DOCS in Gramar.pm, and unify
11:26 dalek rakudo/nom: documenting stuff a bit.
11:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fdacbbc245
11:27 atrodo =~
11:29 Felipe ~~
12:01 whiteknight joined #parrot
12:02 JimmyZ joined #parrot
12:05 whiteknight good morning, #parrot
12:05 particle left #parrot
12:05 tadzik hello whiteknight
12:09 whiteknight hello tadzik, how are you doing today?
12:09 tadzik pretty fine. Allergy is quite annoying, but it doesn't stop me from sitting with a laptop in a garden :)
12:10 whiteknight lucky you. I wish I had a laptop for work, I would work anywhere but from my desk
12:13 whiteknight well, until the humidity kicks up again, then I'll be inside under the air vent like everybody else
12:15 atrodo But still, not at your desk
12:18 whiteknight my desk is in a pretty comfortable place A/C-wise
12:18 whiteknight well, as comfortable as it gets in here. Their system is significantly underpowered for the size of the space
12:30 atrodo better than my old office.  The distribution was so messed up I would freeze all summer while the rest of the area struggled to cool
12:31 Felipe hello whiteknight
12:31 whiteknight hello Felipe
12:35 dalek lua: 9d61129 | fperrad++ | test_lex.pir:
12:35 dalek lua: [test_lex] use encoding 'utf8'
12:35 dalek lua: review: https://github.com/fperrad/lua/commit/9d61129c3d
12:39 plobsing joined #parrot
12:52 dafrito left #parrot
12:54 dafrito joined #parrot
12:57 bluescreen joined #parrot
12:58 JimmyZ left #parrot
13:01 JimmyZ joined #parrot
13:03 lucian_ joined #parrot
13:08 contingencyplan joined #parrot
13:12 particle joined #parrot
13:12 SHODAN left #parrot
13:15 lucian_ left #parrot
13:22 dalek lua: 1dd0df0 | fperrad++ | lua/lib/luaio.pir:
13:22 dalek lua: before Parrot 3.6.0, only PMCs could be stored in lexicals
13:22 dalek lua: review: https://github.com/fperrad/lua/commit/1dd0df0361
13:27 dalek rakudo/nom: 87334a8 | moritz++ | LHF.markdown:
13:27 dalek rakudo/nom: remove get() and lines() from LHF
13:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/87334a8635
13:51 dalek rakudo/nom: de6879e | tadzik++ | / (4 files):
13:51 dalek rakudo/nom: Fix a bug with a traited .WHY. Don't document stuff when compiling the setting.
13:51 dalek rakudo/nom:
13:51 dalek rakudo/nom: Also, make AttributeContainer.get_attribute_for_usage throw an exception
13:51 dalek rakudo/nom: for a non-existant attribute.
13:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/de6879e6b4
13:51 dalek parrot/NotFound/nci_as_string: c78508a | NotFound++ | src/pmc/unmanagedstruct.pmc:
13:51 dalek parrot/NotFound/nci_as_string: use platfrom encoding if encodingname is omited or null in as_string
13:51 dalek parrot/NotFound/nci_as_string: review: https://github.com/parrot/parrot/commit/c78508a10c
13:57 whiteknight ls
13:59 moritz no such file or directory
13:59 atrodo ENOTYOURTTY
14:05 PacoLinux_ joined #parrot
14:18 whiteknight yeah, thanks
14:19 lucian i keep doing that too
14:20 dalek rakudo/nom: 499c78c | tadzik++ | / (2 files):
14:20 dalek rakudo/nom: Implement .WHY for methods, add a segfaulting test for .WHY on attributes
14:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/499c78c72c
14:20 bubaflub ~
14:21 tadzik ~
14:22 whiteknight ~~
14:30 dalek rakudo/nom: 8b7bea9 | tadzik++ | / (2 files):
14:30 dalek rakudo/nom: .WHY is undefined for not documented things
14:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8b7bea9fdc
14:38 JimmyZ left #parrot
14:48 lucian left #parrot
14:49 JimmyZ joined #parrot
15:17 lucian joined #parrot
15:19 PacoLinux_ left #parrot
15:20 PacoLinux_ joined #parrot
15:24 benabik whiteknight: delayed pong
15:27 whiteknight did I ping you?
15:27 benabik whiteknight: Last night, IIRC.
15:28 benabik If you don't remember, no biggie.  :-D
15:28 benabik Just saw it on my back scroll.
15:29 whiteknight We do need to have a mentor meeting soon, you and I
15:29 whiteknight although, we did talk status a lot yesterday, so that might count for most of it
15:30 benabik Fair enough.  I have a fairly open schedule today/tonight, so if you want to chat any more that's good.
15:30 benabik I got newPOST to generate code and loaded it via load_bytecode!
15:30 whiteknight okay, that's awesome
15:30 benabik Although the fact that it always writes to /tmp/temp.pbc is… poor.
15:30 whiteknight But you're still stuck on not being able to get a working PackfileView directly from memory?
15:31 benabik Loading it directly is probably best long term, but I can work as is IF I remember to use different PBC names per test.
15:32 whiteknight you could use a random filename generator, or something
15:32 benabik I may want to investigate the note of "use mkstemp".
15:33 benabik Yeah, that was my thought.  bacek noted that mkstemp should be added to the OS PMC, but if that's overly difficult I may just use something like "temp-" ~ rand ~ ".pbc"
15:33 benabik Or s/rand/now/ or whatever's quick.
15:36 mj41 left #parrot
15:36 dalek rakudo/nom: 8bb3078 | moritz++ | / (3 files):
15:36 dalek rakudo/nom: Start to implement minmax, &min etc.
15:36 dalek rakudo/nom:
15:36 dalek rakudo/nom: run io.t, jnthn++
15:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8bb3078354
15:37 whiteknight benabik: right
15:37 whiteknight where is mkstemp defined?
15:37 benabik stdlib.h?
15:38 moritz es
15:38 moritz yes
15:38 whiteknight oh, I thought you were talking about a parrot-ish implementation of it
15:38 benabik I was going to say "But, in Parrot, nowhere."
15:40 daniel-s joined #parrot
15:40 whiteknight okay
15:41 whiteknight I sent an email to parrot-dev a few weeks back about temporary files, and didn't get any feedback. I would be happy to expose mkstemp through OS PMC
15:41 whiteknight There's an honest question, with real ramifications, depending on whether we want to create temporary filehandles, or create temporary file names
15:42 whiteknight or both
15:42 moritz I for one would love a way to generate temp files safely
15:42 benabik There appears to be a "tempdir()" sub in osutils
15:42 moritz we'll have to provide that functionality for Perl 6 at some point
15:42 whiteknight moritz: "safely" is not in the C standard library vocabulary
15:43 whiteknight if we want any kind of safety, we're going to end up rolling our own, not just providing a wrapper around an existing posix routine
15:43 moritz whiteknight: well, it should be the default :-)
15:44 benabik mkstemp should provide a safe file handle.  mktemp can be racy, in theory.
15:44 whiteknight benabik: right, it should provide a safe handle, but you wouldn't be able to persist it anywhere between program runs
15:45 whiteknight that is, you would have a handle, but not a file name to go with it
15:45 benabik Hm.  Point.
15:49 benabik We have a marginally-sane parrotish version of mktemp in osutils called "tempdir()"
15:49 benabik s/ish//
15:53 whiteknight that's better than nothing
15:54 PacoLinux_ left #parrot
15:55 benabik Is unlink still an opcode?
15:55 whiteknight was it ever an opcode?
15:56 PacoLinux_ joined #parrot
15:56 benabik There's a note in PDD22: "I'm seriously considering moving most of these to methods on the ParrotIO object […] The ones to keep as opcodes are C<unlink>, C<rmdir>, and
15:56 benabik C<opendir>."
15:58 benabik Looks bit rotted…  osutils.pir provides an unlink() sub that uses OS.rm()
15:59 whiteknight yeah, there isn't a ParrotIO PMC, and hasn't been one for a very long time
16:03 lucian_ joined #parrot
16:10 lucian_ left #parrot
16:15 JimmyZ left #parrot
16:17 PacoLinux_ left #parrot
16:20 dalek Rosella/gh-pages: 6addb83 | Whiteknight++ | libraries/ (5 files):
16:20 dalek Rosella/gh-pages: Update some docs files to show the new load_bytecode syntax. Add a few new pieces to the core docs
16:20 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/6addb83297
16:21 dalek Rosella: 8c52429 | Whiteknight++ | / (6 files):
16:21 dalek Rosella: Improve the test- and harness-related standard templates to have several fixes and improvements, and also to use the new load_bytecode semantics
16:21 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/8c52429cd1
16:21 dalek Rosella/cleanup_core: b8a1e7a | Whiteknight++ | / (10 files):
16:21 dalek Rosella/cleanup_core: Cleanup and rearrange some of the code for Core
16:21 dalek Rosella/cleanup_core: review: https://github.com/Whiteknig​ht/Rosella/commit/b8a1e7ac89
16:23 lucian left #parrot
16:24 lucian joined #parrot
16:25 dalek parrot/nqp_pct: 73e1e7e | benabik++ | / (3 files):
16:25 dalek parrot/nqp_pct: POST::PBCCompiler - Make pbc take a packfile
16:25 dalek parrot/nqp_pct:
16:25 dalek parrot/nqp_pct: Instead of calling packfile itself, make it so that either pbc or
16:25 dalek parrot/nqp_pct: mainpmc should be called as a stage after packfile.
16:25 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/73e1e7e005
16:25 dalek parrot/nqp_pct: 42ef971 | benabik++ | t/compilers/pct/newpost.t:
16:25 dalek parrot/nqp_pct: [newpost.t] Cleanups: better names, comments
16:25 dalek parrot/nqp_pct:
16:25 dalek parrot/nqp_pct: Also:
16:25 dalek parrot/nqp_pct: - remove useless say after return
16:25 dalek parrot/nqp_pct: - add todo reason (instead of 1)
16:25 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/42ef9711ec
16:25 dalek parrot/nqp_pct: 85442f3 | benabik++ | t/compilers/pct/newpost.t:
16:25 dalek parrot/nqp_pct: [newpost.t] Add more basic tests
16:25 dalek parrot/nqp_pct:
16:25 dalek parrot/nqp_pct: Sanity tests like type checking return values.
16:25 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/85442f347a
16:25 dalek parrot/nqp_pct: efa1883 | benabik++ | / (3 files):
16:25 dalek parrot/nqp_pct: POST::PBCCompiler - use tempdir to make temp file
16:25 dalek parrot/nqp_pct:
16:25 dalek parrot/nqp_pct: Not using the same name over and over again means that we can run it
16:25 dalek parrot/nqp_pct: more than once in the same program and load_bytecode's cache won't
16:25 dalek parrot/nqp_pct: confuse us.  This unbreaks the test and gets us to generating code!
16:25 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/efa1883228
16:26 lucian left #parrot
16:29 benabik So I now have a test file that generates actual byte code…  And runs it!
16:29 cotto_work ~~
16:30 particle1 joined #parrot
16:33 particle left #parrot
16:33 bubaflub benabik: was it the bytcode cache that was breaking it?
16:34 benabik bubaflub: Yes.  It was always writing to /tmp/temp.pbc, so trying to load it multiple times did nothing.
16:34 bubaflub benabik: ah, because load_bytecode already had a file with that name in there.
16:34 benabik bubaflub: Exactly.
16:37 whiteknight Because namespaces and class definitions are global, there's no real way to encapsulate loading multiple versions of the same bytecode
16:37 whiteknight We really need to consider something like that in the future, it's a big deal
16:38 benabik It depends on your definition of "the same bytecode", I suppose.
16:38 whiteknight right, there's no saying that loading from the same filename will return the same or even a similar packfile
16:38 benabik But it's simpler and more correct to make PBCCompiler not reuse the same file over and over again.
16:38 whiteknight true
16:39 whiteknight after reading through all this code last night, I came to a conclusion: It all needs to fall into a super mario-style spike pit and die
16:39 benabik +1
16:39 whiteknight previously, I was ambivalent towards it. Now, not so much
16:40 benabik I'm tempted to rebuild PCT from first principles.  While what's there works, it's not cleanly designed.  Plus, splitting it out from Parrot means I could test it without rebuilding half of Parrot.
16:42 benabik Is there a way to distinguish class methods from object methods?  i.e. Compiler.pbc vs (new Compiler).pbc ?
16:44 whiteknight We really don't have any such thing as "class methods"
16:44 whiteknight those are namespace methods
16:44 whiteknight er, namespace functions
16:45 theory joined #parrot
16:45 benabik So the method would have to determine if the object passed in was a Namespace/Class/whatever?
16:46 benabik (Or, I suppose, be multi on self)
16:46 NotFound Compiler.pbc() tries calls a method name pbc in the Class PMC
16:46 benabik NotFound: Nope!
16:46 benabik NotFound: Otherwise PCT::Node.new() wouldn't work.
16:47 benabik Or POST::Compiler.to_pir()
16:47 whiteknight that's a method on the P6protoobject
16:47 NotFound benabik: in the Class PMC, not in your instance of Class
16:48 benabik whiteknight: Any method seems to work there.
16:48 benabik I seem to be able to call any method of Compiler as Compiler.meth() instead of Compiler.new.meth()
16:48 benabik If that's P6object magic, neat.
16:49 whiteknight yes, P6object magic
16:49 benabik s/neat/"neat"
16:52 benabik I know NQP tends to use a `new` method, but is there a standard way to initialize a PMC?
16:52 NotFound ./winxed -e 'var a = 1; var c = typeof(a); var n = c.new(); say(n instanceof "Integer");'
16:53 NotFound prints: 1
16:53 NotFound That is 'new' in the PMCProxy for Integer, I think.
16:54 benabik Interesting.  I'll have to poke at Parrot's actual object model at some point.  At this point, I'm not quite sure what's 'standard' and what NQP is doing for me.
16:58 NotFound benabik: to initialize a PMC you use new with an argument, wich invokes the init_pmc ot init_int vtable.
16:58 benabik An argument?  Singular?
16:58 whiteknight just one
16:59 whiteknight that's why HLLs should be using constructor-like methods
16:59 whiteknight init_pmc is very low-level
16:59 NotFound Yes. Some PMC take a Hash and peek named arguments from it.
17:02 benabik Seems somewhat awkward that there's no standard initializer.  Although I guess you could pass a capture to init_pmc.  :-/
17:04 NotFound At some point I thought about using that way in winxed, but it will need more code than a method call.
17:05 ambs joined #parrot
17:07 benabik I guess after calling pir::new, object attributes are just 0/PMCNULL?
17:08 whiteknight benabik: depends on type. Some types initialize to default values
17:08 NotFound auto_attrs fills all with zeroes
17:08 daniel-s left #parrot
17:08 whiteknight the parrot built-in types are intentionally low-level. If you want better semantics, you need to make your own types
17:09 benabik I guess it just feels like there should be a "standard" way to pass arguments to an initializer.  Although I guess that's what init_pmc is for.
17:10 NotFound Yes. The main problem is that the implementation of new and instantiate in class is not flexible.
17:11 whiteknight init_pmc is a vtable, not a method or an ordinary constructor. It's not really designed for users to be passing in initialization data.
17:11 whiteknight Winxed has a standard semantic for constructors
17:11 whiteknight NQP doesn't, but I've always thought that it should
17:12 whiteknight if the .new() P6protoobject method called BUILD(), if it exists, that would be best
17:12 benabik What is Winxed's constructor semantic?
17:13 whiteknight new Foo() calls Foo.Foo()
17:13 benabik method Foo on the Foo class object?
17:14 benabik Apparently so.
17:15 whiteknight method Foo from the Foo class
17:15 benabik Ah.
17:15 whiteknight $P0 = new Foo \n $P0.Foo()
17:15 NotFound But I paid the price of providing several variants of new to accommodate that system while still allowing parrot internal style.
17:15 benabik See, I dislike that these methods have an uninitialized object around.
17:16 whiteknight it's not really uninitialized at any point, at least not from winxed code
17:16 benabik It's something to get wrong during language interop.
17:16 NotFound benabik: I don't like it particularly, but is the only reasonable scheme I found.
17:17 whiteknight yes, that's a big issue. That's why Parrot doesn't try to provide consistent constructor semantics, because no two languages are going to do it the same
17:17 NotFound Its main virtue is that it works, and other ideas around are sand castles.
17:17 benabik NotFound: Fair enough.
17:18 benabik My instinct would be to override init() and init_pmc() VTABLES to make them handle doing initialization.
17:19 NotFound benabik: I tried it. But the new and instantiate vtables worked agains me, and are hard enemies.
17:19 whiteknight besides that fact that this would cause an expensive nested runloop for every object created, you would have to pack all your constructor arguments into a single PMC, and then have to unpack it again
17:20 benabik I can see why we have a P6protoobject.
17:20 * whiteknight mumbles something about 6model and waves his hands around in front of his face
17:21 NotFound benabik: that was one of the problems. The few times I talked about such things tha answer was to use protoobjects/protoclasses.
17:21 NotFound Is hard to solve a problem that other people don't see.
17:22 * benabik sees it.
17:22 NotFound Now is easier to see it, because you just need to look at what winxed does and why it needs to do it that way.
17:24 benabik I don't see how to do things like static methods, initializers, or even private methods.
17:25 benabik Nor is it particularly clear how namespaces and classes are related, if at all.
17:25 NotFound If I've waited until these things were debated and a solution designed and implemented, winxed will be probably still in the drawing board ;)
17:25 benabik NotFound: I'm not blaming you.  I'm trying to figure out how Parrot OO works and what I'd like to do with it.
17:26 TimToady_ .oO(ooh, don't give us a straight line like that...)
17:26 benabik I really like the idea of Parrot for playing with language design, but bits of its design really confuse me.
17:27 whiteknight benabik: the confusion is because so much of it was nott *designed*
17:27 whiteknight much of Parrot appears to have just happened
17:27 NotFound Sorry, I wasn't intending to be rude.
17:28 benabik NotFound: I didn't think you were rude, I just wanted to be clear I was asking/complaining about Parrot, not you.  ;-)
17:29 NotFound benabik: I said that because of TimToady_ comment, not yours.
17:31 benabik Although I guess a private method is a .sub '' :subid('something')?  Could you access that sub from elsewhere?
17:31 NotFound benabik: I just worked around the bits of the design that confused or obstaculized me.
17:31 benabik NotFound: I approve of getting something that works.  I also want Parrot to be better.
17:34 NotFound benabik: I think subid are only accesible from the current pir compilation.
17:35 NotFound Unless you do something like iterating all subs in some namespace looking for them.
17:36 whiteknight NotFound: I have a question for you
17:37 NotFound I may have an answer..
17:37 whiteknight NotFound: yesterday you said you weren't interested in putting in a lambda-like syntax into winxed. What if I provided a working patch for it?
17:38 benabik I'm going to go cool off and clear my head.  My final comment on this matter is that I really hope that we don't just import 6model and use it to implement what we have.  It seems like our organically grown class/namespace/etc interactions could use some weeding.
17:38 NotFound whiteknight: my objections are more about the rationale than the implementation.
17:38 benabik (cool off literally.  I have no A/C)
17:39 whiteknight benabik: The intention is to use 6model as a lawnmower to destroy what we have
17:39 NotFound benabik: 6model may allow better ways while providing the existing ones at the same time. I hope it will do.
17:39 whiteknight NotFound: https://github.com/Whiteknight/winxed/commi​t/b1f10b2d8ef62e1c08c5ed0f47b8868b6fc11cb3
17:40 _sri is now known as sri
17:40 NotFound Also to destroy it... eventually, and after a smooth transition.
17:41 whiteknight var f = ->{ say("hello"); }; f();
17:41 dmalcolm joined #parrot
17:42 whiteknight var g = ->(string t){ say(t); }; g("test");
17:42 whiteknight can't get much more brief than that
17:42 benabik Blarg.  I don't want to get into a big rant, particularly because I haven't looked up all the details, but it seems that we don't do encapsulation well and that opens up too many opportunities for people to do the wrong thing.  I'd like to see us do it better.
17:43 benabik Anyway, I was trying to find a swimsuit.
17:43 NotFound Is nice, but I still don't see any advantage other that a few less keystrokes.
17:43 whiteknight benabik: you remind me of me, saying all the things that I've already said
17:43 whiteknight NotFound: fewer keystrokes is important, and improves readability, in my eyes
17:44 benabik whiteknight: Sometimes I think we think alike.  Let's team up and burn the sucker down…  Uhm, after building something better of course.  <.<  >.>
17:44 whiteknight :)
17:44 whiteknight next version will be called "Phoenix", because we'll be building it up from ashes
17:44 benabik +1
17:45 NotFound whiteknight: iy may improve readability in the eyes of people used to perl, but I care more for people with javascript background.
17:45 whiteknight NotFound: okay, it's your language. It was a very easy patch to make
17:46 whiteknight I also want to find a shorter syntax for looking up functions in namespaces
17:46 NotFound whiteknight: I recommend you again Stroustrup book. One of his recommendations is against adding features just because they are easy to implment ;)
17:46 whiteknight using Foo.Bar; Bar(), is complicated and is not very readable
17:47 whiteknight NotFound: I wanted it *and* it happened to be easy
17:47 NotFound whiteknight: using namespace Foo;
17:47 whiteknight NotFound: using namespace doesn't work for libs loaded at runtime
17:48 NotFound It should work, if you declare them.
17:48 whiteknight a full namespace declaration isn't less verbose
17:48 whiteknight I'm thinking about Rosella, I need an easy way for people to load and initialize rosella libraries
17:49 NotFound But you've written a tool to do that automatically, haven't you?
17:49 whiteknight it's still three lines of code to get it working
17:49 whiteknight var rosella = load_packfile("rosella/core.pbc"); using Rosella.initialize_rosella; initialize_rosella();
17:49 whiteknight that's a lot more than I would like to have to use
17:50 whiteknight in NQP, the second and third lines are Rosella::initialize_rosella();
17:50 whiteknight so that's much shorter and more clear
17:51 NotFound Yes, I've considered that problem, but haven't found yet a way that doesn't need more operators and don't need runtime checks.
17:51 NotFound And I'd like to be sure before adding an operatoe.
17:51 whiteknight ok
17:52 whiteknight I'll do the work of adding things once you decide what syntax you like
17:52 whiteknight I like hacking on winxed. It's nice
17:53 whiteknight I was tempted to make a winxed++ which bootstrapped winxed and used a bunch of Rosella magic to make the codebase smaller
17:53 whiteknight I probably won't do that
17:54 NotFound whiteknight: I've considered several time to write an stage 2 using features not available in stage 0, but I'm still not convinced.
17:55 NotFound If you want to try an alternate implementation, no problem for me.
17:55 whiteknight I might have to, if I want a bunch of crazy new features
17:55 whiteknight :)
17:55 pjcj left #parrot
17:55 NotFound But then, maybe will need to create a commitee to define the winxed standard ;)
17:57 NotFound we'll
17:57 whiteknight by the way, I'm much more inspired by C# lamba syntax than I am inspired by Perl6
17:57 theory_ joined #parrot
17:57 whiteknight it ends up looking like the perl6 version because it's much easier to do it that way with a recursive descent parser if I want to reuse lots of code
17:57 theory left #parrot
17:57 NotFound I think my knowledge of C# is seriously outdated.
17:57 theory_ is now known as theory
17:58 whiteknight var x = ( ) => { ... }; x()
17:58 whiteknight but it also allows some weirness, like var x = i => { ... }; x(1);
17:59 whiteknight where we can omit the parenthesis for one argument
17:59 whiteknight I think that's absurd, and hard to parse
17:59 whiteknight but, it is brief
17:59 NotFound That are my concern, promoting ways of writing code hard to understand for beginners.
18:00 whiteknight Closures are very easy in parrot, and they could be used a lot. A short easy syntax demonstrates that
18:01 jnthn__ Note that if you move the lambda before any args, you can avoid ambiguity
18:01 jnthn__ lambda { ... }
18:01 jnthn__ lambda i { ... }
18:01 jnthn__ lambda i, j { ... }
18:01 whiteknight jnthn__: that's what my winxed patch did
18:01 jnthn__ ah, ok
18:01 whiteknight var x = -> (x){ }
18:01 whiteknight it's much more natural to do that with recursive descent
18:02 whiteknight a bottom-up parser would be just fine with the C#-ish way
18:02 NotFound Anyway, I'm not going to make any definitive decision today.
18:03 whiteknight it's okay. don't rush. The patch is there. We can keep it if you like it, trash it if you don't
18:03 whiteknight It was very easy to do, so I did it
18:04 NotFound Well, at least is a good demonstration of the hackability of the compiler.
18:04 whiteknight does the using Foo expression return a value?
18:05 whiteknight Can I do (using Foo)(...)?
18:05 whiteknight or x = using Foo;?
18:05 whiteknight that would solve my problem immediately
18:06 NotFound using as operator... interesting idea.
18:06 whiteknight it's not very pretty, of course
18:07 NotFound Do you intend to use that for things not in accesible scopes, isn't it?
18:07 whiteknight yes, that's it exactly. For libraries loaded at runtime
18:08 NotFound I'll give it a try during this weekend.
18:08 whiteknight I can play with it too. Save you the effort
18:09 NotFound We can play both.
18:10 whiteknight I don't think I'm moving again this weekend
18:10 whiteknight Although the @#$&*$%# realtor won't return our calls, so I don't know
18:11 NotFound Do you solved your bureaucratic problems?
18:12 NotFound I was under the idea that in the USA you solved such problems by picking guns and dueling at main street ;)
18:12 whiteknight no, I don't have a permit for a gun
18:12 whiteknight and I'm not going to mainstreet if I'm going to be shot at
18:13 * NotFound whistles a Ennio Morricone tune...
18:14 davidfetter joined #parrot
18:17 autark left #parrot
18:17 dalek parrot/NotFound/nci_as_string: 1a38fbe | NotFound++ | src/pmc/ptr.pmc:
18:17 dalek parrot/NotFound/nci_as_string: implement as_string method also in the Ptr PMC
18:17 dalek parrot/NotFound/nci_as_string: review: https://github.com/parrot/parrot/commit/1a38fbe05a
18:22 nopaste "NotFound" at 192.168.1.3 pasted "Cleanup of winxed MySql example made possible by the nci_as_string branch" (196 lines) at http://nopaste.snit.ch/67411
18:24 whiteknight very nice
18:29 whiteknight I love when small changes in parrot can lead to big cleanups in user code
18:32 PacoLinux_ joined #parrot
18:34 NotFound Specially when even that mess failed to cover all cases.
18:34 whiteknight ouch
18:34 dukeleto check it out! https://github.com/languages/Parrot
18:35 plobsing_ joined #parrot
18:36 whiteknight awesomeness!
18:36 whiteknight I wonder how they determine what is a parrot file
18:37 NotFound Parrot is the #61 most popular language on GitHub -> we have some maegin to improve ;)
18:37 NotFound margin
18:37 whiteknight Rosella is somehow listed as "Perl"
18:37 plobsing left #parrot
18:37 whiteknight so I think that's wrong
18:40 dukeleto whiteknight: https://github.com/github/linguist/pull/58
18:40 dukeleto whiteknight: they just merged that, I don't know if they are running that on the live site yet. Probably not.
18:40 dukeleto whiteknight: i think nqp may be detected as "Perl"
18:40 nopaste "NotFound" at 192.168.1.3 pasted "Tests towards libxml2 bindings" (112 lines) at http://nopaste.snit.ch/67413
18:41 NotFound This simple example can parse xhtml
18:56 Eclesia joined #parrot
18:57 dukeleto NotFound++
18:57 * dukeleto has become quite impressed with Winxed lately
19:03 benabik …  Is there a way to make a :main sub in PAST?
19:04 whiteknight I'm sure there has to be
19:04 benabik whiteknight: That's what I thought too.
19:04 Eclesia hi
19:04 whiteknight hello Eclesia
19:05 mj41 joined #parrot
19:05 * Eclesia has one hour to find out how to use the Archive.Zip
19:05 whiteknight only one hour!
19:06 benabik Okay, now I'm confused about how PAST works.
19:06 PacoLinux_ left #parrot
19:08 Eclesia whiteknight: for this evening. I have the feeling to move forward in my project as the speed of a snail
19:08 Eclesia at*
19:08 pjcj joined #parrot
19:09 jnthn__ benabik: .pirflags(':main')
19:09 whiteknight Eclesia: https://github.com/parrot/parrot/blob/master​/runtime/parrot/library/distutils.pir#L3300
19:10 Eclesia whiteknight: already found this one ... but it's still obscure :/
19:10 benabik NQP does top-level code at :load time by adding a PAST::Block inside the top level block that's marked :load?
19:11 whiteknight archive = new ["Archive";"Zip"], archive.addFile("foo.whatever"); archive.writeToFileNamed("output.zip")
19:12 Eclesia archive.addFile("foo.whatever"); <----- that does tell me what he expect, a string. a pmc . a rosella file ?
19:13 whiteknight It's the name of a file to add to the archive
19:15 whiteknight doesn't look like Archive::Zip includes tools for reading a .zip, only for creating one
19:16 Eclesia whiteknight: I've seen a method uncompress somewhere ...
19:16 Eclesia or maybe it was on the gziphandler or tarsomething ... don't remember
19:17 mj41 left #parrot
19:18 Eclesia var handle = new 'GzipHandle ';   handle.open("/media/SATA2_72​00/dev/eria/parrot/test.em", "rb");
19:18 Eclesia something like that
19:21 whiteknight yeah GZipHandle does have a .uncompress method
19:23 Eclesia hm winxed dont like the : var archive = new ["Archive";"Zip"]();
19:24 Eclesia the syntax changed ?
19:24 whiteknight var archive = new Archive.Zip;
19:24 Eclesia ... seaching complicate when it can be simple
19:25 Eclesia hm : Method 'Zip' not found for invocant of class 'Archive;Zip'
19:27 whiteknight don't use parenthesis
19:27 whiteknight just new Archive.Zip;
19:27 NotFound Eclesia: winxed uses , not ;
19:27 dalek rakudo/nom: 0e7bdd3 | tadzik++ | src/Perl6/ (2 files):
19:27 dalek rakudo/nom: Move document() to Pod.pm
19:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0e7bdd3f70
19:27 NotFound Eclesia: and drop the ()
19:28 Eclesia why drop the () ???
19:28 AndroUser2 joined #parrot
19:28 Eclesia its an instanciation, must have some parameters ... normaly
19:29 benabik Is there a way to get a method in the superclass of an NQP class?
19:29 NotFound Eclesia: using the same operator for winxed classes and the several ways of initializing PMCs conflicts with the desire for clean snd simple syntax.
19:30 NotFound Eclesia: In short: the absence of parenthesis mean: no constructor call and no init arguments.
19:31 Eclesia *sigh*
19:33 NotFound Take into account that winxed looks high level but in some aspects is almost low level as pir.
19:34 rohit_nsit08 joined #parrot
19:34 nopaste "Eclesia" at 192.168.1.3 pasted "hard way to zip" (9 lines) at http://nopaste.snit.ch/67415
19:34 AndroUser2 left #parrot
19:35 rohit_nsit08 dukeleto: ping
19:35 whiteknight hello rohit_nsit08
19:35 dukeleto rohit_nsit08: howdy
19:35 dukeleto rohit_nsit08: how is corellaScript ?
19:35 dukeleto rohit_nsit08: how do I check it out and run it's test suite?
19:36 rohit_nsit08 dukeleto: for running the test-suite one need to have nodeunit installed on system, I can write a blog post for setting it up
19:36 NotFound readZip and writeToFile? Doesn't look right
19:37 rohit_nsit08 dukeleto: as I mentioned in the mail, couldn't do work this week due to some interviews .
19:37 Eclesia var archive = new ["Archive","Zip"];     archive.addFile("README.txt");        archive.writeToFileNamed("output.zip");
19:38 Eclesia can't make any more basic
19:38 rohit_nsit08 dukeleto: will surely update my all progress by tomorrow positively
19:38 dukeleto rohit_nsit08: where is your corellaScript repo? The README should contain info on how to install dependencies, compiling and running tests
19:38 rohit_nsit08 whiteknight: hi
19:38 dukeleto rohit_nsit08: promises are not nearly as useful as incremental improvements :)
19:40 NotFound Looks like there is no test in t/library/archive_zip.t covering such usage.
19:41 rohit_nsit08 dukeleto: ya, I do agree with that, and you will be seeing the progress by now, as I am done with all the interfering work :-)
19:42 dukeleto rohit_nsit08: it should only take a few minutes to update your README, right? Also, it would be nice to have IRC notifications for your github repo
19:42 benabik This is 'fun':  pir::find_method__pps(Parent, $method)(|@args, |%opts)
19:43 whiteknight benabik: doesn't look so bad to me
19:43 dukeleto Eclesia: if you could add a test or docs for Archive::Zip, that would be awesome
19:43 NotFound Eclesia: also fails for me.
19:44 benabik whiteknight: I was hoping there was an easier way to call the original method in the superclass.
19:44 rohit_nsit08 dukeleto: ya, updating the readme right now.
19:44 benabik whiteknight: I put that into a super() sub and call it as super('method', args)
19:44 Eclesia I dont even know how write a test ... pir is still 'magic' for me
19:45 whiteknight benabik: Austin Hastings did something very similar in Kakapo a while back
19:49 whiteknight benabik: you should be able to walk up the context scopes to get the name of the sub being executed, instead of passing it as the first argument
19:49 whiteknight that's an aesthetic touch though
19:51 benabik whiteknight: I don't even know where to begin with that.
19:51 lucian_ joined #parrot
19:53 whiteknight benabik: https://github.com/Whiteknight/kak​apo/blob/master/src/Syntax.nqp#L31
19:54 NotFound Eclesia: the code in the SYNOPSIS section of Zip.pir doesn't work, so I think you should file a ticket before thinking about a test.
19:54 whiteknight with helpers here: https://github.com/Whiteknight/kakap​o/blob/master/src/Parrot/Parrot.nqp
20:02 whiteknight NotFound: why doesn't that code work?
20:04 NotFound The backtrace that Eclesia pasted
20:04 Eclesia because no one uses it I beleive
20:04 whiteknight I don't see a backtrace
20:05 whiteknight oh wait, I do
20:05 whiteknight awesome
20:06 Eclesia hm where do I add a ticket ... http://trac.parrot.org/parrot/report ? can't find anything like 'submit a bug report'
20:06 whiteknight Eclesia: you have to log in. Do you have an account?
20:06 Eclesia I'm logged in
20:06 whiteknight what is your username?
20:07 Eclesia a very complicate one : Eclesia :D
20:07 whiteknight Try again
20:07 whiteknight We've been having spam problems, so you need permissions to post a ticket
20:07 Eclesia ha here it is
20:08 Eclesia lucky for me I didn't give my mail adress ^^
20:10 Eclesia here you are : http://trac.parrot.org/parrot/report/32
20:11 Eclesia hm ... I wonder if I add it at the correct place
20:12 * Eclesia always report bugs on projects using Jira not trac
20:12 whiteknight I use Jira at work. I don't like it either
20:13 whiteknight Eclesia: definitely not in the correct place
20:13 benabik whiteknight: I converted it to a single block of Q:PIR.
20:13 Eclesia damn. 'create new report' looked like it was the right place
20:13 whiteknight Eclesia: I'll move it
20:14 whiteknight http://trac.parrot.org/parrot/ticket/2171
20:14 dalek TT #2171 created by whiteknight++: Archive.Zip Errors
20:14 dalek TT #2171: http://trac.parrot.org/parrot/ticket/2171
20:22 benabik $P1 = ['POST';'File']  # Doesn't work?
20:22 Eclesia ...one hour, a not a single working line of code :'(
20:22 benabik How do I get a Key in PIR?
20:23 Eclesia http://trac.parrot.org/parrot/ticket/2172
20:25 whiteknight benabik: Keys are really intended to be compile-time constants. There isn't a very easy way to make them at runtime
20:26 NotFound set $P0, [ ... ]
20:26 whiteknight benabik: if you want a Key, you can create a Key, set values to it, then push new keys onto it to create a new multi-level key
20:26 whiteknight or, like NotFound says, use a compile-time constant
20:26 * whiteknight is going home.
20:26 benabik I just need a constant one.  But using it in a sub call didn't work, so I tried to assign it to a $P register and then got confused.
20:26 benabik o/ whiteknight
20:26 whiteknight left #parrot
20:27 NotFound benabik: the syntactic sugar of '=' has some limitations.
20:28 bubaflub Eclesia: i'm getting a slightly different error on the TT #2171 - i'll post my results there
20:30 dalek TT #2172 created by Eclesia++: Archive.Zip : missing convinient method to unpack archive
20:30 dalek TT #2172: http://trac.parrot.org/parrot/ticket/2172
20:33 bubaflub Eclesia: i get a very unhelpful error when README.txt doesn't exist.
20:34 Eclesia bubaflub: I am not the one who you must report the errors you found :D
20:34 bubaflub Eclesia: i know - just letting you know I'm looking into it too.
20:35 Eclesia the zip capabilities is a keypoint in the language I'm building, so I'm a bit stuck if I can't have this working :/
20:40 bubaflub Eclesia: it looks like the library was originally done by fperrad - maybe send an email parrot-dev to let people know this is a problem.
21:03 bluescreen left #parrot
21:04 mj41 joined #parrot
21:10 Eclesia left #parrot
21:11 plobsing_ left #parrot
21:13 dalek rakudo/nom: 45eeaac | jonathan++ | src/Perl6/Actions.pm:
21:13 dalek rakudo/nom: Ensure we generate a proto if the thing in the outer scope is an only.
21:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/45eeaac589
21:20 benabik ARG!  Subclassing won't work.  Accessing super multis appears to be… difficult.
21:20 rohit_nsit08 left #parrot
21:20 ambs left #parrot
21:22 jnthn__ benabik: Working in nqp-rs?
21:22 jnthn__ er, -rx?
21:22 benabik Yes
21:22 jnthn__ Ah, it just uses Parrot's own multi-method dispatch semantics. Which are...kinda ew.
21:23 jnthn__ It doesn't continue looking in the next class up, nor does it combine the multis through the hierarchy.
21:23 benabik That's a big big problem.  *sigh*
21:24 jnthn__ Right, which is why new nqp didn't use Parrot's multi semantics, and why Rakudo hasn't for a couple of years.
21:24 jnthn__ Best you can do is have a fallback, very liberal multi that re-dispatches up the tree, I guess. :/
21:25 sorear Why does Parrot even have multi-method dispatch semantics?
21:25 benabik Oh, wait...
21:25 benabik No wonder it failed…  I didn't call super() correctly.
21:28 mj41 left #parrot
21:35 lucian_ left #parrot
21:36 NotFound man super... superman!
21:44 Psyche^ joined #parrot
21:48 kurahaupo joined #parrot
21:49 Patterner left #parrot
21:49 Psyche^ is now known as Patterner
21:50 perlite_ joined #parrot
21:54 perlite left #parrot
21:54 perlite_ is now known as perlite
22:02 PacoLinux_ joined #parrot
22:07 autark joined #parrot
22:07 PacoLinux_ left #parrot
22:07 dalek rakudo/nom: 3823e80 | pmichaud++ | src/core/Range.pm:
22:07 dalek rakudo/nom: Fix 'a'..'z' (and other Str-based Ranges) by delegating to
22:07 dalek rakudo/nom: sequences when asked to iterate.  moritz++ TimToady++
22:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3823e80871
22:07 PacoLinux_ joined #parrot
22:16 dmalcolm left #parrot
22:22 benabik I compiled a PAST tree direct to bytecode.  That's..  amazing.
22:22 benabik And a little hacky.
22:27 dalek parrot/nqp_pct: b89d1b4 | benabik++ | t/compilers/pct/newpost.t:
22:27 dalek parrot/nqp_pct: [newpost.t] Allow named args to compiler
22:27 dalek parrot/nqp_pct:
22:27 dalek parrot/nqp_pct: Useful for debugging
22:27 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/b89d1b4354
22:27 dalek parrot/nqp_pct: b56e6cd | benabik++ | t/compilers/pct/newpost.t:
22:27 dalek parrot/nqp_pct: [newpost.t] Test returning all non-PMC values
22:27 dalek parrot/nqp_pct:
22:27 dalek parrot/nqp_pct: We can now return integers, floats, and strings.
22:27 dalek parrot/nqp_pct: Even all three at once!
22:27 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/b56e6cd36b
22:27 dalek parrot/nqp_pct: 805280c | benabik++ | compilers/pct/src/PCT/HLLCompiler.pir:
22:28 dalek parrot/nqp_pct: PCT::HLLCompiler - use PBCCompiler.pbc
22:28 dalek parrot/nqp_pct:
22:28 dalek parrot/nqp_pct: mainpmc doesn't work very well yet...
22:28 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/805280cd74
22:28 dalek parrot/nqp_pct: 4005ef3 | benabik++ | / (5 files):
22:28 dalek parrot/nqp_pct: Enable compiling very simple PAST trees to PBC
22:28 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/4005ef339a
22:28 benabik msg whiteknight Check out the tip of nqp_pct!  It's compiling a PAST tree direct to bytecode!  It might work for more than just "return a number", but I have to stop hacking to make dinner.
22:28 aloha OK. I'll deliver the message.
22:29 cotto_work benabik++
22:31 benabik cotto_work: I feel it's a bit hacky, but it seems to work.
22:32 NotFound benabik++
22:34 benabik Streamlining it would involve some significant refactors to PCT…  newPOST and oldPOST don't quite agree on how type information should propagate, where subs should live in the tree, etc.  I'm gluing them together as best I can.
22:35 NotFound That will be an added benefit.
22:37 jnthn__ I suspect oldPOST is fairly geared towards generating text at the end of the day.
22:37 cotto_work jnthn__: very
22:37 benabik jnthn__: Yes.
22:38 jnthn__ So it could leave more to the PIR compiler.
22:38 jnthn__ Which is fine for what it was designed for, but a bad fit for what you're doing now. :)
22:38 cotto_work That's the big problem with it.
22:38 jnthn__ Well, I guessed that's why we're getting a newPOST. :)
22:39 jnthn__ Anyway, just chiming in to say that "I'd expect them to look quite different" :)
22:39 cotto_work benabik: what's the magic invocation to use PAST->PBC generation, or is there even a way to do it from the cli?
22:41 benabik cotto_work: You need to use <parse past newpost pbc> stages instead of <parse past post pbc>.  I didn't want a command line option to switch it before more of it worked.
22:41 cotto_work benabik: wfm
22:41 benabik But assuming your PAST tree doesn't use anything that blows up newPOST, just replacing those two stages should compile anything to bytecode.
22:42 benabik But I have no idea yet how big that assumption is.
22:42 cotto_work So if it works, it'll work.  Got it. ;)
22:45 benabik Most obvious gotcha is that inline PIR just won't work.  But I should try to modify squaak and see what I can get to work and what breaks.
22:51 rdesfo joined #parrot
22:57 kid51 joined #parrot
22:58 rdesfo left #parrot
23:18 whiteknight joined #parrot
23:20 kurahaupo left #parrot
23:22 whiteknight good evening, #parrot
23:23 whiteknight msg benabik dinner is overrated! Keep making good code!
23:23 aloha OK. I'll deliver the message.
23:23 whiteknight benabik++
23:23 cotto_work hi whiteknight
23:23 whiteknight hey cotto_work
23:26 * whiteknight is building pct_nqp now
23:26 * whiteknight is looking forward to awesome fantasticness
23:26 whiteknight cotto_work: I haven't seen soh_cah_toa for a few days.
23:26 cotto_work whiteknight: me neither
23:27 cotto_work seen soh_cah_toa
23:27 aloha soh_cah_toa was last seen in #parrot 2 days 23 hours ago saying "whatever though, i gotta go eat".
23:27 whiteknight yeah, about that long
23:29 dalek rakudo/nom: c8eb6c4 | jonathan++ | src/binder/multidispatch.c:
23:29 dalek rakudo/nom: Sort multi-dispatch fixes, to deal with a bug noted by pmichaud++.
23:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c8eb6c4c79
23:29 PacoLinux_ left #parrot
23:29 PacoLinux_ joined #parrot
23:31 PacoLinux__ joined #parrot
23:31 PacoLinux_ left #parrot
23:33 dalek parrot/nqp_pct: ebdd931 | Whiteknight++ | t/compilers/pct/newpost.t:
23:33 dalek parrot/nqp_pct: tabs -> spaces in newpost.t
23:33 dalek parrot/nqp_pct: review: https://github.com/parrot/parrot/commit/ebdd9318bc
23:33 davidfetter left #parrot
23:41 cotto_work whiteknight: sent him a text.
23:45 whiteknight +1
23:47 benabik Crud.  I have to figure out what in my .vimrc is overriding the expandtabs in the modeling.  Grump.
23:50 whiteknight benabik: no worries, I get free karma for fixing it
23:50 benabik Fixed.  I guess the modeling gets run before my autocmds.  Pity.
23:51 benabik modeline!  Stupid Lion.

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

Parrot | source cross referenced