Camelia, the Perl 6 bug

IRC log for #parrot, 2011-07-06

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:04 dalek parrot: 1d270a0 | chromatic++ | src/gc/fixed_allocator.c:
00:04 dalek parrot: [GC] Fixed Win32-killing type errors in d789b5.
00:04 dalek parrot: review: https://github.com/parrot/parrot/commit/1d270a0331
00:08 darbelo joined #parrot
00:14 darbelo left #parrot
00:17 Limbic_Region joined #parrot
00:48 dalek parrot: e87d3d6 | util++ | runtime/parrot/library/Digest/sha256.pir:
00:48 dalek parrot: Fix typo in sha256 comment
00:48 dalek parrot: review: https://github.com/parrot/parrot/commit/e87d3d6cb3
00:49 dalek rakudo/nom: 81a7e84 | pmichaud++ | src/core/ (7 files):
00:49 dalek rakudo/nom: Refactor operators, add degenerate forms for reductions.
00:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/81a7e84cfc
00:54 theory left #parrot
00:56 kid51 joined #parrot
01:17 kid51 is now known as kid51_at_dinner
01:35 whiteknight joined #parrot
01:40 whiteknight good evening, #parrot
01:50 whiteknight chromatic++ on GC optimizations
01:52 bubaflub good evening whiteknight
01:55 Limbic_Region left #parrot
01:56 whiteknight hello bubaflub
01:56 whiteknight how are you doing today?
02:00 kid51_at_dinner is now known as kid51
02:03 bubaflub not too bad
02:03 bubaflub how are you?
02:03 bubaflub house stuff in order?
02:04 whiteknight I'm good, but I'm heading to bed now. I'll talk to you tomorrow
02:04 whiteknight left #parrot
02:16 dalek parrot: 9a23f72 | jkeenan++ | src/gc/gc_gms.c:
02:16 dalek parrot: [codingstd] Need space between C keyword and opening parenthesis.
02:16 dalek parrot: review: https://github.com/parrot/parrot/commit/9a23f72c2e
02:16 dalek parrot: a157bd0 | jkeenan++ | src/hash.c:
02:16 dalek parrot: Fix typo in POD.
02:16 dalek parrot: review: https://github.com/parrot/parrot/commit/a157bd06e0
02:16 kid51 There is one test failing in: prove t/codingstd/c_arg_assert.t ... which I do not know how to correct
02:17 kid51 Failure is in src/hash.c
02:19 lichtkind left #parrot
02:20 kid51 benabik++ thanks for links
02:22 kid51 msg whiteknight Is http://trac.parrot.org/parrot/ticket/1682 closable?
02:22 aloha OK. I'll deliver the message.
02:38 bluescreen joined #parrot
02:48 Coke left #parrot
02:48 zostay left #parrot
02:48 zostay joined #parrot
02:54 bluescreen left #parrot
03:06 theory joined #parrot
03:13 kid51 left #parrot
03:18 Coke joined #parrot
03:35 dalek rakudo/nom: c4ca652 | pmichaud++ | src/core/metaops.pm:
03:35 dalek rakudo/nom: Handle assignment metaop on undefined lhs.
03:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c4ca652056
03:35 dalek rakudo/nom: 25b3ee6 | pmichaud++ | / (2 files):
03:35 dalek rakudo/nom: Rat updates, add another spectest.
03:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/25b3ee67f7
03:42 jsut_ joined #parrot
03:47 jsut left #parrot
03:54 theory left #parrot
03:54 theory joined #parrot
03:58 zostay_ joined #parrot
04:03 zostay left #parrot
04:30 theory_ joined #parrot
04:32 theory left #parrot
04:32 theory_ is now known as theory
04:37 benabik_ joined #parrot
04:37 benabik left #parrot
04:37 benabik_ is now known as benabik
05:07 soh_cah_toa left #parrot
05:08 daniel-s joined #parrot
05:09 daniel-s left #parrot
05:09 daniel-s joined #parrot
05:15 cotto ~~
05:34 rurban_ joined #parrot
05:36 rurban left #parrot
05:37 rurban_ is now known as rurban
05:51 dalek rakudo/nom: bf81ce6 | pmichaud++ | src/core/Str.pm:
05:51 dalek rakudo/nom: Add Str.perl.
05:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bf81ce6e5b
05:51 dalek rakudo/nom: 49e19c5 | pmichaud++ | src/core/Numeric.pm:
05:51 dalek rakudo/nom: Add prefix:<-> for non-numeric types.
05:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/49e19c57a6
05:51 dalek rakudo/nom: 96cb354 | pmichaud++ | NOMMAP.markdown:
05:51 dalek rakudo/nom: NOMMAP update for  my ($, $) = ...;
05:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/96cb354efb
05:51 dalek rakudo/nom: f7f0c00 | pmichaud++ | / (2 files):
05:51 dalek rakudo/nom: More fixes for Range class, now pass S03-operators/range-basic.t .
05:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f7f0c00505
06:09 fperrad joined #parrot
06:23 mj41 joined #parrot
06:25 zby_home left #parrot
06:43 theory left #parrot
06:45 mj41 left #parrot
06:49 UltraDM joined #parrot
07:33 fperrad left #parrot
07:36 giwi joined #parrot
07:45 fperrad joined #parrot
08:54 dalek rakudo/nom: baaef99 | pmichaud++ | src/core/operators.pm:
08:54 dalek rakudo/nom: Handle reversing sequences (e.g., 'z'...'a').
08:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/baaef99674
08:54 dalek rakudo/nom: 602c0af | pmichaud++ | src/core/ (4 files):
08:54 dalek rakudo/nom: Some additional Range methods.
08:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/602c0afd26
08:58 Coke left #parrot
08:58 Coke joined #parrot
09:30 lichtkind joined #parrot
09:57 JimmyZ joined #parrot
10:13 wagle left #parrot
10:16 dalek parrot: 9759af2 | mikehh++ | src/hash.c:
10:16 dalek parrot: run make headerizer to remove function info for function
10:16 dalek parrot: that has been changed to a define (ASSERT_ARGS no longer required)
10:16 dalek parrot: review: https://github.com/parrot/parrot/commit/9759af266e
10:20 wagle joined #parrot
10:21 whiteknight joined #parrot
10:27 whiteknight good morning, #parrot
10:29 tadzik good morning whiteknight
10:33 whiteknight good morning, tadzik
10:34 tadzik how are you doing whiteknight?
10:35 whiteknight doing well. Tired and sore from a busy day yesterday
10:36 JimmyZ_ joined #parrot
10:39 whiteknight interesting article about the V8 javascript compiler internals: http://wingolog.org/archives/2011​/07/05/v8-a-tale-of-two-compilers
10:40 mls joined #parrot
10:41 mls Hi guys, I get a segfault if I run miniparrot with an unsupported LC_CTYPE, is this known?
10:42 JimmyZ left #parrot
10:42 JimmyZ_ is now known as JimmyZ
10:42 mls (interp->ctx is NULL, but it is referenced in Parrot_pcc_warnings_test)
10:43 mls (it wants to print "Unknown codeset `%s', defaulting to ASCII", src/warnings.c:111)
10:44 whiteknight you're running miniparrot directly?
10:44 mls the parrot build process runs it
10:46 whiteknight oh, okay. So you're running a build, and miniparrot is segfaulting because of an unknown codeset error?
10:46 mls yes. I've got LC_CTYPE set to de_DE@euro for historic reasons and the build segfaults.
10:47 mls The call chain is initialize_interpreter -> Parrot_str_init -> Parrot_encodings_init -> Parrot_init_platform_encoding -> Parrot_warn
10:47 whiteknight oh, okay. I'm not too familiar with how parrot handles LC_CTYPE
10:47 whiteknight okay, that makes sense
10:48 whiteknight let me look at the code real quick
10:49 whiteknight what OS are you on?
10:49 mls linux
10:49 mls problem is that interp->ctx is till PMCNULL when Parrot_warn is called
10:50 mls ^still
10:50 whiteknight right
10:51 whiteknight okay yeah, I see exactly what the problem is
10:52 whiteknight I've got a fix, testing it now
10:55 dalek parrot: 002e279 | Whiteknight++ | src/warnings.c:
10:55 dalek parrot: In Parrot_warn, check that we have a valid interp->ctx before doing flag testing on it. If we warn during interp initialization, bad things might happen otherwise. mls++ for the report
10:55 dalek parrot: review: https://github.com/parrot/parrot/commit/002e279624
10:55 whiteknight okay, that commit should at least avoid your current segfault
10:56 mls Thanks for the prompt fix!
10:56 whiteknight thanks for the report!
10:56 mls left #parrot
11:03 fperrad left #parrot
11:04 mikehh whiteknight: have you had any thoughts on the "broken" threading stuff in parrot, still getting random segfaults
11:04 whiteknight mikehh: my thoughts on it are the same as they've always been: We should delete that test file
11:06 mikehh was looking at that, everybody from way back has been involved with that test
11:06 mikehh have you had any ideas on what to replace it with, tried to catch some stuff and it segfasulted somewhere else
11:07 fperrad joined #parrot
11:08 whiteknight mikehh: no replacement. I want that test and the entire threading system as it currently stands to be removed
11:08 TiMBuS ^
11:10 mikehh whiteknight: ok, what have you in mind there, we definately need some way of handling a) concurrency and b) hardware threads
11:10 mikehh most modern processors have multiple hardware threads of some sort
11:12 whiteknight mikehh: that's a good question. I'm not sure I entirely have a great answer yet
11:12 whiteknight I do know that what we have now is broken and does not work reliably
11:12 TiMBuS threads suck, but not having threads sucks more.
11:12 whiteknight we basically don't have threads now. What we have doesn't work
11:12 whiteknight and we have tests for it which randomly fail
11:14 mikehh as I see it we can go with the erlang type approach or maybe golang which might be a good idea
11:15 TiMBuS related note: hows async IO going D:
11:15 mikehh TiMBuS: I don't think anyone is working on that at the moment :-{
11:16 TiMBuS i recall whiteknight wanted to implement it at some point, then build all IO (including blocking) on top of that
11:17 daniel-s left #parrot
11:17 whiteknight I did want to work in async IO, but we needed threading improvements first
11:18 mikehh whiteknight: yup, that is the way I see it
11:18 whiteknight mikehh: I was pushing for an Erlang-style approach to concurrency: high-level tasklets multiplexed onto hardware-level threads
11:18 TiMBuS wait, do you mean we need threads to make async IO or that threads are more important
11:19 TiMBuS because, you can have non threaded async IO (epoll, etc)
11:19 whiteknight we need threads for async IO. At least, we need the current threading implementation to get out of the way
11:19 mikehh TiMBuS: I think both
11:19 whiteknight not all systems support epoll
11:19 TiMBuS windows has nonblocking. not sure how it can wait
11:22 mtk joined #parrot
11:25 tadzik TiMBuS: I know something about this async IO
11:25 TiMBuS tell me your secrets :o
11:26 tadzik basically, there's a Select PMC which gives us some async capabilities. There's a Trac Ticket for that, the PMC is working all right I think, but the interface it should have is still not decided. If you figure out and design a worthwhile interface for it, you should be able, after poking cotto++, bring the Select PMC to Parrot master
11:27 tadzik see http://trac.parrot.org/parrot/ticket/2034
11:29 * JimmyZ thought most people like libevent/libev or linux epoll, not select
11:30 TiMBuS i dont think it's actually using 'select'
11:31 TiMBuS cotto has already suggested a very sensible interface. it's exactly what i'd expect
11:38 Coke left #parrot
11:38 Coke joined #parrot
11:41 tadzik then you only have to poke cotto to implement it
11:42 dalek rakudo/nom: e6f88ff | (Solomon Foster)++ | src/core/Bool.pm:
11:42 dalek rakudo/nom: Fix infix:<?^> copy/paste glitch.
11:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e6f88fffc0
11:52 Coke left #parrot
11:52 Coke joined #parrot
12:08 Coke left #parrot
12:08 dalek rakudo/nom: 5cd26f6 | (Solomon Foster)++ | src/core/Numeric.pm:
12:08 dalek rakudo/nom: Fix infix:<!=> copy/paste glitch.
12:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5cd26f6cb2
12:08 Coke joined #parrot
12:14 dngor Hey, high-level tasklets multiplexed onto hardware-level threads: http://www.mail-archive.com/perl6​-internals@perl.org/msg04573.html
12:17 dngor Related: http://www.mail-archive.com/perl6​-internals@perl.org/msg02208.html
12:19 lucian joined #parrot
12:20 whiteknight dngor: the question is what parrot should provide. A hybrid threading approach like that is good, but it's a lot of implementation at the parrot level and might not be useful for all our HLLs
12:20 whiteknight if we implement that, some people may be forced to do ugly workarounds and abstractions to get what they want
12:23 JimmyZ the problem is who does coding
12:23 dngor Fair enough.  I was designing by example with a specific language in mind.
12:24 Coke left #parrot
12:25 Coke joined #parrot
12:26 dngor What sort of ugly work-arounds come to mind?  I'm drawing a blank.
12:28 JimmyZ parrot's OO, that's why jnthn designed 6model
12:28 dalek Rosella: 12c979c | Whiteknight++ | s (5 files):
12:28 dalek Rosella: Rename Template.winxed -> Engine.winxed. Move NodeFactory.winxed -> node/Factory.winxed.
12:28 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/12c979c55c
12:28 dalek Rosella: 2083586 | Whiteknight++ | src/unstable/template/handler/For.winxed:
12:28 dalek Rosella: Reset magical loop vars so for loops can be reentrant. Fix detection of is_last for hashes, so 1-element hashes the first element is the last
12:28 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/2083586563
12:28 dalek Rosella: ae09555 | Whiteknight++ | src/unstable/template/handler/For.winxed:
12:28 dalek Rosella: fix is_last detection for arrays
12:28 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/ae095552e4
12:28 dalek Rosella: 5957194 | Whiteknight++ | src/unstable/template/handler/For.winxed:
12:28 dalek Rosella: Fix error detection and reporting for reserved variable names
12:28 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/5957194b64
12:33 whiteknight dngor: that's a good question too. If we can find a system that can reasonably accomodate all users, there's no reason Parrot can't implement it
12:33 mj41 joined #parrot
12:41 bluescreen joined #parrot
12:51 M_o_C joined #parrot
12:52 NotFound_b joined #parrot
12:54 NotFound_b asynch and non-blocking are different beasts.
12:55 * Coke sighs.
12:57 * Coke sees aloha is doing a bangup job.
13:03 Coke msg dukeleto FYI, jal******o@gmail.com has (had) rights on the comp.lang.parrot calendar for a while.
13:03 aloha OK. I'll deliver the message.
13:03 Coke when is the PS meeting at going forward?
13:04 Coke msg bacek aloha isn't decanting messages when someone emotes into a channel. ("/me says hi" vs. just "hi")
13:04 aloha OK. I'll deliver the message.
13:06 * Coke ponders why he cannot end the parrotsketch meeting on jul 5, 2011.
13:07 Coke there we go.
13:11 Coke msg cotto meeting updated to 1930-2030 GMT
13:11 aloha OK. I'll deliver the message.
13:11 whiteknight left #parrot
13:11 Coke msg dukeleto meeting updated to 1930-2030 GMT
13:11 aloha OK. I'll deliver the message.
13:12 whiteknight joined #parrot
13:15 Coke aloha parrot calendar is editable by coke, dukeleto, whiteknight, particle and half a dozen others.
13:15 aloha Coke: Okay.
13:22 M_o_C left #parrot
13:23 mj41 left #parrot
13:23 mj41 joined #parrot
13:35 rurban_ joined #parrot
13:36 rurban left #parrot
13:36 rurban_ is now known as rurban
13:39 mj41 left #parrot
13:43 daniel-s joined #parrot
13:49 dalek Rosella: 7ffac9d | Whiteknight++ | src/unstable/template/Engine.winxed:
13:49 dalek Rosella: Add a new method Engine.generate_from_file
13:49 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/7ffac9dfd4
13:49 daniel-s_ joined #parrot
13:49 dalek Rosella: 1a679e1 | Whiteknight++ | src/unstable/template/Engine.winxed:
13:49 dalek Rosella: redo the interface to Template.Engine to make regions more configurable. Users can add new region types, remove region types, and modify existing regions
13:49 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/1a679e1c0a
13:50 giwi left #parrot
13:50 JimmyZ left #parrot
13:50 daniel-s left #parrot
13:53 bubaflub ~
13:56 Coke left #parrot
13:56 Coke joined #parrot
13:59 whiteknight good morning, bubaflub
14:00 daniel-s_ left #parrot
14:10 daniel-s joined #parrot
14:15 daniel-s_ joined #parrot
14:16 daniel-s left #parrot
14:21 mj41 joined #parrot
14:36 dukeleto ~~
14:37 UltraDM left #parrot
14:41 whiteknight good morning, dukeleto
14:53 darbelo joined #parrot
14:53 dukeleto whiteknight: how goes the new place?
14:53 whiteknight not there yet
14:53 whiteknight settlement on the 22nd
14:54 dukeleto whiteknight: moving to a different city?
14:55 whiteknight no, only about 30 minutes away. About 1/10th of a radian clockwise around philadelphia from where I am now
14:55 whiteknight maybe less than that. It's hard to estimate radians
14:57 dukeleto whiteknight: indeed, especially without a protractor
14:59 theory joined #parrot
15:03 lucian_ joined #parrot
15:06 lucian left #parrot
15:10 theory left #parrot
15:15 daniel-s_ left #parrot
15:15 daniel-s joined #parrot
15:21 daniel-s_ joined #parrot
15:21 daniel-s left #parrot
15:26 daniel-s__ joined #parrot
15:26 daniel-s_ left #parrot
15:30 dukeleto benabik: you have any thoughts on the recent parrot-users email about NQP?
15:31 _daniel-s__ joined #parrot
15:32 _daniel-s__ left #parrot
15:32 daniel-s__ left #parrot
15:33 daniel-s joined #parrot
15:38 Coke gmail sez: (This message may not have been sent by: jayemerson@gmail.com  Learn more  Report phishing) ... I assume this is a list setting we could tweak?
15:40 dalek TT #1636 closed by dukeleto++: Functions need to be added to the embed/extend API headers
15:40 dalek TT #1636: http://trac.parrot.org/parrot/ticket/1636
15:40 dukeleto Coke: i gonna delete the 6perl talk from our calendar, since it doesn't happen anymore
15:41 dmalcolm joined #parrot
15:42 Coke dukeleto: ok. Just edit it so it ends this week. (or whenever it ended.)
15:43 * Coke hopes his lack of attendence was not the killer on that one. ;)
15:46 ambs joined #parrot
15:47 Coke spork
15:47 Coke mmm, lunchtime.
15:49 JimmyZ joined #parrot
15:50 dalek winxed: 9ce7c68 | NotFound++ | winxedst1.winxed:
15:50 dalek winxed: stop using vtable get_bool and get_integer instead of iseof in Token
15:50 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/9ce7c68531
15:53 daniel-s left #parrot
15:56 JimmyZ left #parrot
15:57 giwi joined #parrot
15:59 dukeleto Coke: it's been ended
16:02 dalek rakudo/podparser: e258ef5 | tadzik++ | src/Perl6/SymbolTable.pm:
16:02 dalek rakudo/podparser: Allow named parameters to new_type in add_constant()
16:02 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/e258ef5a68
16:02 dalek rakudo/podparser: 9d33af3 | tadzik++ | / (2 files):
16:02 dalek rakudo/podparser: Import as little Pod classes as needed, less hacky than before due to default .new working again
16:02 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/9d33af3969
16:02 dalek rakudo/podparser: e653b7f | tadzik++ | src/Perl6/ (2 files):
16:02 dalek rakudo/podparser: Build (empty so far) $POD variable
16:02 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/e653b7fb4b
16:06 theory joined #parrot
16:07 theory left #parrot
16:07 theory joined #parrot
16:08 Coke dukeleto: I got an edit message from you on the parrotsketch weekly meeting.
16:08 Coke not on the perl6 phone call meeting.
16:08 Coke dukeleto: UGH. you edited the meeting retroactively?
16:09 Coke also UGH: I had already fixed the parrotsketch meeting.
16:13 Coke ah. it's only retroactive back to 6/28? that's less confusing that I feared.
16:14 dukeleto Coke: i didn't hear from you that you edited it. Miscommunication.
16:14 dukeleto Coke: sorry, i will let you deal with calendar stuff
16:16 Coke dukeleto: ... I do not /want/ to deal with calendar stuff exclusively. That is not the takeaway i wish you to have.
16:20 dukeleto Coke: i already wear too many hats, so I am bowing out of calendar duty
16:22 dalek parrot-libgit2: 03a5234 | dukeleto++ | / (4 files):
16:22 dalek parrot-libgit2: Improve error reporting about unknown NCI datatypes and add a few more
16:22 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/03a523485f
16:22 dalek parrot-libgit2: 0fbd602 | dukeleto++ | / (2 files):
16:22 dalek parrot-libgit2: Create a proper nci file header
16:22 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/0fbd60254d
16:22 dalek parrot-libgit2: 21ab174 | dukeleto++ | src/git2.pir:
16:22 dalek parrot-libgit2: Add a PIR file that $PARROT/tools/dev/ncidef2pir.pl generated from src/git2.nci
16:22 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/21ab174a59
16:27 benabik dukeleto: I apparently forgot to subscribe to parrot-users.  Checking the archive.
16:27 whiteknight left #parrot
16:27 dukeleto benabik: Coke++ already answered the question, but you should still be on that list :)
16:27 whiteknight joined #parrot
16:32 benabik ~~
16:35 whiteknight hello benabik
16:35 benabik Heyo, whiteknight.  How's things?
16:36 whiteknight pretty good. Having a nice lazy day after the crazy one yesterday
16:37 benabik Laziness is a programmer's virtue.  :-D
16:38 whiteknight well, "lazy" in this case means we are staying home cleaning, packing, programming, and doing all sorts of other stuff
16:40 bubaflub ~
16:43 whiteknight hello bubaflub
16:43 bubaflub hello whiteknight
16:44 dalek Rosella: 09e6835 | Whiteknight++ | src/co (7 files):
16:44 dalek Rosella: misc cleanups to core and container
16:44 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/09e6835a15
16:44 dalek Rosella: 69ef47f | Whiteknight++ | src/test/Test.winxed:
16:44 dalek Rosella: [Test] draft two new utility functions for creating, but not running, a suite
16:44 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/69ef47fc75
16:44 whiteknight how are you doing today, bubaflub?
16:45 bubaflub whiteknight: alright - pretty tired.  my wife and i are moving soon so lots of stuff to clean and pack up, which i'm sure sounds familiar.
16:45 whiteknight bubaflub: ah, I know that story. We're working on moving ourselves
16:45 whiteknight but we haven't made settlement yet, so not doing a lot of packing/moving yet
16:46 bubaflub whiteknight: ah.  our currently lease is up the 23rd but out new one doesn't start till August 1st so we're trying to see if we can move into our new place early... if not we'll have to move in with some friends for a bit.
16:46 whiteknight ouch, that's rough. What town are you in?
16:48 bubaflub Champaign-Urbana, IL.  it's where the University of Illinois is
16:48 bubaflub center for super computing, place where the mosaic browser was invented, and so on
16:50 Coke does parrot-nqp allow multi-subs?
16:50 benabik I believe so.
16:52 whiteknight Coke: yes
16:54 whiteknight Winxed currently does not
16:57 dalek rakudo/podparser: 6a71d46 | tadzik++ | src/Perl6/SymbolTable.pm:
16:57 dalek rakudo/podparser: [SymbolTable] Include the %named parameter signature in the cache key creation
16:57 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/6a71d46fbe
16:58 NotFound_b bubaflub: and HAL-9000
16:58 Coke "our multi sub print(ResizablePMCArray $foo) {} # doesn't compile in nqp-rx.
16:58 bubaflub NotFound_b: true.
17:01 mj41 left #parrot
17:01 whiteknight left #parrot
17:01 whiteknight joined #parrot
17:01 Coke perhaps I have an outdated parrot-nqp. rebuilding...
17:01 tadzik Coke: conflicts with the existing print(), yep?
17:02 Coke tadzik: ah, very possibly.
17:04 Coke (aye, that's it)
17:07 bluescreen left #parrot
17:07 zby_home joined #parrot
17:16 Eclesia joined #parrot
17:16 Eclesia hi
17:16 Coke tadzik++ # forgot to give you a shout out in the parrot-users post.
17:17 tadzik no worries :)
17:19 mj41 joined #parrot
17:25 cotto_work ~~
17:28 dalek winxed: 5275afa | NotFound++ | winxedst1.winxed:
17:28 dalek winxed: refactor and fix pir encoding of string literals
17:28 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/5275afaca1
17:29 NotFound_b Eclesia: this should fix your problem with hex escape sequences
17:30 Eclesia NotFound_b: thanks. I'm going to try :)
17:30 NotFound_b Eclesia: Are you using winxed from its git repo?
17:31 Eclesia NotFound_b: I don't have winxed repo. only parrot.
17:31 NotFound_b Eclesia: then you must wait until I update the parrot snapshot
17:32 Eclesia ok
17:32 Eclesia NotFound_b: did you take a look at namespace too ?
17:32 tadzik where can I read about PAST::Op methods?
17:33 NotFound_b Eclesia: You mean namespaces with unusual names?
17:33 Eclesia yes
17:33 NotFound_b Eclesia: no, I don't plan to work on that before the parrot stable release.
17:34 Eclesia ok
17:36 dalek winxed: 800ca4e | NotFound++ | pir/winxed_compiler.pir:
17:36 dalek winxed: update installable compiler
17:36 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/800ca4eda4
17:39 dalek parrot: bb4d3c9 | NotFound++ | ext/winxed/compiler.pir:
17:39 dalek parrot: upadte winxed snapshot to get literal string escape fixes
17:39 dalek parrot: review: https://github.com/parrot/parrot/commit/bb4d3c9ae6
17:40 cotto_work TiMBuS: post in the ticket for the Select PMC which interface you'd prefer and I'll make it happen.
17:43 mj41 left #parrot
17:47 dalek parrot: bba5080 | NotFound++ | ext/winxed/compiler.pir:
17:47 dalek parrot: upadte winxed snapshot to get literal string escape fixes
17:47 dalek parrot: For real this time, bb4d3c9ae6 was a mistake
17:47 dalek parrot: review: https://github.com/parrot/parrot/commit/bba5080d29
17:49 Eclesia NotFound_b: traitor, I pulled between the commits :D
17:49 NotFound_b Eclesia: sorry
17:53 ligne left #parrot
17:56 Eclesia NotFound_b: nice work :) ftp://ftp-developpez.com/js​orel/temp/treesnapshot.png (at the bottom)
17:56 NotFound_b Eclesia: good
17:58 Eclesia hm, that mean perhaps my x3.64 code will work too
18:02 dalek winxed: 5f588f5 | NotFound++ | winxedst1.winxed:
18:02 dalek winxed: proper error for invalid escape in literal string
18:02 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/5f588f58ca
18:08 NotFound_b left #parrot
18:12 cotto_work seen sorear
18:12 aloha sorear was last seen in #perl6 6 days 12 hours ago saying "perlhack: in English forums, we abbreviate "thank you" to "ty"".
18:12 jay joined #parrot
18:13 dukeleto jay: howdy
18:13 jay Howdy!  My first IRC.
18:13 cotto_work jay++
18:13 cotto_work and your first karma
18:14 tadzik hello jay
18:15 Eclesia jay: you know the rule: first IRC = pay a beer to everyone ;)
18:15 jay Hello all.  Thx for replies and posts on parrot-users.  Struggling... but learning.
18:15 jay Mmm... beer.  How often do you folks actually get together offline?
18:16 * tadzik knows about 2 persons on the channel in person
18:16 cotto_work jay: not often enough
18:16 * Eclesia knows ... 1 (me)
18:16 atrodo I now know a few, but that's only because of YAPC::NA
18:17 cotto_work Eclesia: where are you at?
18:17 dalek rakudo/nom: b20c00f | pmichaud++ | src/core/Cool.pm:
18:17 dalek rakudo/nom: Add Cool.rand.
18:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b20c00f317
18:17 dalek rakudo/nom: 9e91676 | pmichaud++ | src/core/ (3 files):
18:17 dalek rakudo/nom: Add List.pick, Any.pick, and Range.at_pos.
18:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9e916766df
18:17 Eclesia cotto_work: france
18:17 cotto_work ah, so you're in fperrad's area (or country, at least)
18:19 Eclesia cotto_work: hm .. looks like he is only 200km from me :D
18:19 cotto_work great.  That's walking distance, right?
18:19 cotto_work ;)
18:19 Eclesia 'walking' he says :p
18:20 Eclesia too hot to walk, better stay in the shadows this days
18:36 donaldh joined #parrot
18:43 alester joined #parrot
18:44 mj41 joined #parrot
18:45 alester What's all this jibber-jabber about less C?
18:45 alester How will I have anything to work on?!?
18:45 * alester sobs
18:47 donaldh left #parrot
18:48 jay Can someone point me to docs explaining the creation of a custom class in NQP?  I see the PIR docs on classes...
18:49 cotto_work jay: unfortunately the best docs on nqp tend to be its test suite.
18:49 tadzik jay: You could read some Perl 6 docs
18:49 tadzik chromatic++ # blag post
18:50 cotto_work tadzik: that works if you don't mind guessing how much of the spec is implemented by nqp.
18:50 jay cotto_work: I was about to write something like that.  I feel like I'm guessing at everything.  !-)
18:50 Eclesia jay: learn pir first.
18:50 tadzik cotto_work: true
18:50 tadzik Eclesia: why so?
18:50 benabik I have generally found the best reference for NQP is the tests.
18:50 atrodo chromatic++
18:50 benabik (Mixed with knowledge of P6)
18:51 jay Eclesia: interesting.  A character-building experience?
18:51 cotto_work https://github.com/perl6/nqp/tree/master/t/nqp (specifically, https://github.com/perl6/nqp/b​lob/master/t/nqp/28-subclass.t )
18:51 benabik cotto_work++
18:52 Eclesia jay: just my personnal experience for my project : I made this order . Parrot PCT > NQP > PIR > WINXED
18:52 Eclesia starting with nqp and pct was not a good idea. starting on pir is more ... friendly
18:53 Eclesia jay: but I don't know what you want to do so I may be wrong
18:53 dalek rakudo/nom: 1f8fe70 | moritz++ | src/core/Pair.pm:
18:53 dalek rakudo/nom: Pair.ACCEPTS
18:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f8fe70bf3
18:53 dalek rakudo/nom: 8aa37ff | moritz++ | src/core/Numeric.pm:
18:53 dalek rakudo/nom: add Numeric.Bool -- but it does not seem to get called at all
18:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8aa37ffbcc
18:53 cotto_work "friendly" isn't the word I'd use, but it is the foundation on which a lot of Parrot and its tools are built.
18:55 Eclesia cotto_work: friendly in the way : you can understand what's going on. not like the pct ...
18:55 cotto_work Eclesia: I have found PIR to be more discoverable.
18:55 jay I'm trying to implement the basics of a language like Matlab/Octave (called R).  I can mimik most of the grammar and do some things in Runtime.pm to be approximately right, but I'm to the point where I think I need to understand more about the "big picture" of designing like this, not just the superficial behavior of squaak-type use code.
18:56 atrodo cotto_work> really odd question, that maybe doens't need an answer.  But do you think it'd be possible to port a real C compiler to m0 and would that help any?
18:56 eqhmcow joined #parrot
18:57 cotto_work atrodo: your question makes a large number of assumptions that make it hard to answer.  What would you want to build with the C/M0 compiler?
18:57 atrodo cotto_work> off hand, i'm thinking parrot
18:57 cotto_work tcc would be a logical starting point, but you can't use tcc to build parrot as it stands.
18:58 atrodo cotto_work> I was looking at pcc last night
18:58 cotto_work atrodo: has it matured any?  last I checked it still had a very manual build process.
18:58 whiteknight jay: yes, it's an important boundary
18:58 atrodo cotto_work> It looked usable.  It hit "1.0" last april
18:59 cotto_work chromatic++ for blagging
18:59 * cotto_work goes in search of noms
18:59 whiteknight jay: NQP is a weird middle language. It's a subset of Perl6 with its syntax, but an overlay on top of PIR with Parrot semantics
19:00 whiteknight jay: so learning either Perl6 or PIR better should help you with more NQP
19:01 Coke alester: We'll need you to develop M0lint.
19:01 Coke perhaps we could call it "curly"
19:02 jay whiteknight: in a previous life I was ok with Perl 5, and found that it could be pretty unreadable; it was often easier to rebuild a tool than to figure hour how I wrote the code in the first place (almost anything was valid Perl code).  On the other hand, PIR seems so... verbose.  But the docs seem easier to find and more complete, and I wrong?
19:02 Eclesia jay: or if you prefer C like syntax. winxed is more adapted
19:03 whiteknight jay: not wrong at all. PIR is like the assembly language for Parrot, so it's a huge pain and it's ugly
19:03 whiteknight jay: that's a big part of the reason why we have NQP in the first place, to sheild us from PIR
19:04 mj41 left #parrot
19:04 whiteknight I find that Perl6 also shares some of the "difficult to read" problems with perl5, but NQP being a relatively small subset seems to steer clear of most of them
19:06 Coke eh. difficult to read is in the eye of the beholder.
19:06 atrodo whiteknight> I disagree.  I find nqp hard to read.  Mostly because it's different from perl5 enough to make me think i have a clue what's going on
19:07 whiteknight Coke: yes, it is. You're right
19:08 jay I love a good debate.  It's interesting (to me as an outsider) to hear the perspectives...
19:08 jay Parrot seems most interesting because of the ease with which it integrates these and allows for choice.
19:09 * Eclesia is searching to test a string against a regex in winxed ... any idea ?
19:10 whiteknight Eclesia: what kind of regex? Like a perl-5 style regex?
19:10 Eclesia jay: if you want the opinion of a java developer. pir is not ugly but verbose and straight forward. perl and nqp are horrible syntaxes ^^
19:10 whiteknight Eclesia: we don't have regexs built in, but we have bindings to libpcre
19:11 Eclesia whiteknight: .. thanks, nevermind I'll do without ...
19:11 dukeleto jay: parrot is a good platform for research, precisely because just about everything is pluggable
19:11 whiteknight Eclesia: it's really not hard to do!
19:12 Eclesia whiteknight: I understand but I would like to avoid any dependency not already in parrot
19:12 whiteknight okay
19:12 everbrew joined #parrot
19:13 dalek winxed: ea50d17 | NotFound++ | t/harness:
19:13 dalek winxed: use utf8 encoding to read test output in harness
19:13 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/ea50d17f9c
19:16 Coke chromatic++ #
19:17 dukeleto everbrew: howdy
19:17 everbrew howdy
19:18 everbrew I'd forgotten about this channel until chromatic mentioned it
19:18 bubaflub everbrew: welcome
19:18 everbrew thanks
19:21 dalek winxed: 45ce12f | NotFound++ | t/advanced/01string.t:
19:21 dalek winxed: some tests for hex escape sequences
19:21 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/45ce12fa4e
19:23 fperrad left #parrot
19:23 giwi left #parrot
19:26 giwi joined #parrot
19:29 dalek winxed: cdd0246 | NotFound++ | token.cpp:
19:29 dalek winxed: diagnose invalid or unsupported escape sequences in stage 0
19:29 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/cdd0246e3a
19:36 dalek winxed: 809488c | NotFound++ | winxedst (2 files):
19:36 dalek winxed: new builtin function escape
19:36 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/809488c914
19:50 Eclesia NotFound: if I want to print an object in 'say' or 'print' . I should provide a method 'get_string()' on my class but looks like it doesn't find it
19:50 Eclesia NotFound: is it a different name in winxed ?
19:50 bubaflub Eclesia: you have to do something like
19:50 bubaflub function get_string[vtable]() { ... }
19:50 benabik Eclesia: It has to be a get_string VTABLE.  IIRC, it's something like method get_string[vtable]() in winxed
19:51 benabik Eclesia: Ignore me, bubaflub appears to know the right syntax.  :-D
19:51 Eclesia ^^ thanks both
19:51 bubaflub Eclesia: if you want it both as a vtable and a method you'll have to do some other stuff
19:52 * Eclesia just want to be able to print the object directly
19:54 NotFound Yes, that's the way.
19:56 lucian joined #parrot
19:59 lucian__ joined #parrot
20:00 lucian_ left #parrot
20:03 lucian left #parrot
20:03 Eclesia is now known as Eclesia_afk
20:08 dalek rakudo/nom: 3763c60 | pmichaud++ | src/core/Any.pm:
20:08 dalek rakudo/nom: Add sub pick().
20:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3763c604c6
20:19 tempire joined #parrot
20:20 jay In squaak, b = [1,2,3] prints 3: what mechanism is causing this printing, rather than just giving the prompt?
20:21 jay (where 3 is the length of the thing, not the last element)
20:21 tadzik It stringifies and prints the last statement I suppose
20:21 benabik The last value.
20:21 tadzik where your last element is b
20:21 tadzik yes, value
20:21 benabik It's part of the REPL:  Read-Execute-Print Loop.
20:21 jay No, b = [0,0,0] also prints 3.
20:21 whiteknight yeah, it's part of the REPR
20:21 Coke it's easier to see with b=[1,2,4]
20:22 tadzik yes, because b stringifies to 3
20:22 whiteknight you're running it from the commandline, not from a file?
20:22 Coke jay: yes, the value is "the whole thing."
20:22 jay Ok, so how do I turn this off and prevent the printing?
20:22 jay Commandline, yes.
20:22 Coke it's the REPL. it does that.
20:22 tadzik don't use REPL. REPL prints
20:22 tadzik it's the P in REPL, as benabik said
20:22 Coke if you just want to try one liners, use -e "foo" instead.
20:23 Coke e.g. parrot-nqp -e "b=[1,2,3]"
20:23 jay Unless I'm missing something, I don't see any REPL anywhere in the squaak action or grammar, I really need more of a hint on what to modify, I would have thought something in the Actions.pm file?
20:24 tadzik it's inherited from HLL::Compiler I believe
20:24 tadzik and deal with this printing: it's the point of the whole thing! :)
20:24 benabik PCT::HLLCompiler, I think it is.
20:24 tadzik you can run your programs from files, that won't engage the REPL
20:25 jay Surely an interactive language should be easily customizable, I don't see any reason that doing an assignment should also trigger a print.
20:25 benabik Particularly PCT::HLLCompiler.interactive.
20:26 dukeleto jay: yes, i agree with you
20:26 whiteknight jay: it's just the nature of the beast. HLL::Compiler does that automatically when you're running interactively from the commandline
20:26 dalek parrot-libgit2: f8774f2 | dukeleto++ | / (2 files):
20:26 dalek parrot-libgit2: Add git_strarray and git_rtype datatype mappings
20:26 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/f8774f263b
20:26 Coke jay: if you reaaaaaaaaaaaaaaally want to override it, you can. But all the interactive modes I know do that, and now you get it for free.
20:27 benabik jay: It will print whenever a statement returns a value.  Assignment could be made to not return a value, but that makes chaining harder.  (i.e.  a = b = 1)
20:27 cotto_work ~~
20:27 jay So is this an option that I can override, or is this the cost of using HLLCompiler?
20:27 jay Coke: a language like R or matlab would not print on an assignment, for example.
20:28 tadzik that's not a case of a language I believe
20:28 Coke it's likely overridable.
20:28 Coke in this case (and I know this almost never happens), you are the first person to ask.
20:29 jay lol ok, I'm willing to ask crazy questions.
20:29 dalek Rosella: b396626 | Whiteknight++ | src/harness/testfile/Factory.winxed:
20:29 dalek Rosella: Respect :recurse(0) in TestFile.Factory
20:29 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/b396626ba2
20:29 benabik You can override <YOUR_HLL>::Compiler.interactive
20:30 benabik https://github.com/parrot/parrot/blob/master​/compilers/pct/src/PCT/HLLCompiler.pir#L604
20:30 Eclesia_afk is now known as Eclesia
20:31 tempire Is parrot, in its current state, considered stable?
20:32 cotto_work tempire: Parrot exposes many interfaces.  Some are stable and will be aggressively support, some are known to be broken and will be ripped out when we find the tuits.
20:32 cotto_work *supported
20:32 Coke we try hard not to say "stable", but go for "supported".
20:32 cotto_work tempire: what part of Parrot are you asking about?
20:32 tempire I'm not educated enough about it to even answer that question.
20:32 tempire I've just gone through the intro and getting started docs
20:33 jay benabik: I'm a real newbie, thanks for the link.  So if I care enough, then I make my own version of that interactive method, then figure out how to override the default?
20:33 cotto_work tempire: ok.  If you depend on PIR, we'll try hard to make sure your code continues to work with future Parrots.
20:33 cotto_work tempire: If you use the embedding API, same deal.
20:34 cotto_work The extending API also got a major bump in test coverage from dukeleto++, so we should know pretty quickly if we break it.
20:34 benabik jay: Right.  Although the easiest way is to have statement level assignment not result in a value.
20:34 benabik jay: That's a matter of tweaking your grammar and actions.
20:34 Coke ... FSVO easy.
20:35 Coke it's the wrong approach, IMO. if he doesn't want the output, he should disable the output, not muck with his language.
20:35 benabik If you never want output, then disabling the output is better.
20:35 benabik If you just don't want output on assignments, teaching interactive to do that will be tricky.
20:35 tempire cotto_work: so pasm is in flux, correct?
20:36 Coke no.
20:36 cotto_work tempire: PASM should be avoided where possible.  Its original goal was to be a textual form of bytecode, but it can't do that very well.
20:36 jay Well, I want output via functions like print() and say(), or if the statement is only a term (haven't gotten to this, yet).  So it sounds like disabling the printing in interactive mode is the way to go.
20:36 dalek Rosella: c15fa01 | Whiteknight++ | src/harness/testfile/Factory.winxed:
20:36 dalek Rosella: Fix TestFile.Factory
20:36 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/c15fa0123d
20:36 cotto_work It's not in flux, but you'll be less sad if you write PIR and still less sad if you use something like winxed or nqp.
20:37 dalek parrot-linear-algebra: 87bf68f | Whiteknight++ | t/harness:
20:37 dalek parrot-linear-algebra: cleanups for harness
20:37 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/87bf68f1aa
20:37 dalek parrot-linear-algebra: c48ee89 | Whiteknight++ | t/ (44 files):
20:37 dalek parrot-linear-algebra: Many fixes to the test suite and harness. We run all test files (in the correct orders), but are failing several tests
20:37 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/c48ee891dd
20:38 jay cotto_work: you guys are funny... someone earlier would have argued that using PIR would make me less sad then nqp.  Fortunately, I'm just a happy guy.
20:38 whiteknight tempire: PASM is an internal implementation detail. Use PIR instead. Or, better yet, use something higher level
20:38 tempire so NQP, and PIR if necessary
20:38 cotto_work jay: I guess it depends on your personality and how familiar you are with Perl 6 and nqp.
20:38 whiteknight tempire: we have two medium-level languages that should work for most needs: Winxed (Inspired by c++ and javascript) and NQP (inspired by PErl6)
20:38 tempire seems to be the impression i get
20:39 tempire ah, ok
20:39 whiteknight tempire: if you want to waste your time writing the equivalent of assembly language, you're welcome to do that too :)
20:39 benabik Although I don't know it as well, my impression is that Winxed is much closer to how Parrot actually works.
20:39 benabik (than NQP)
20:39 whiteknight tempire: I am going to guess your time is a little bit more valiable than that
20:40 dukeleto jay: happiness is a very relative function :) Some parrot hackers still really like PIR, but most would prefer something higher-level these days
20:41 NotFound dukeleto: Really?
20:41 dalek parrot: 96fac30 | NotFound++ | / (3 files):
20:41 dalek parrot: minimal test of the bundled Winxed
20:41 dalek parrot: review: https://github.com/parrot/parrot/commit/96fac305d0
20:43 dalek parrot-libgit2: 71c27d4 | dukeleto++ | Makefile:
20:43 dalek parrot-libgit2: Add a target to generate pbc
20:43 dalek parrot-libgit2: review: https://github.com/letolabs/pa​rrot-libgit2/commit/71c27d4c73
20:46 dalek rakudo/nom: 9209833 | moritz++ | t/spectest.data:
20:46 dalek rakudo/nom: four more passing test files
20:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9209833f97
20:46 dalek rakudo/nom: 537ad6b | moritz++ | NOMMAP.markdown:
20:46 dalek rakudo/nom: note MMD failure in NOMMAP
20:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/537ad6b496
20:46 jay Ok, I'm ready to try to learn something by hacking the interactive method and the overriding the default.  But I don't have a clue where to put my version or how to declare the override.  My guess is Compiler.pm or src/nqr.pir (nqr is the name of my language)?
20:47 moritz Compiler.pm sounds right
20:47 moritz in the class that inherits from HLL::Compiler (or whatever it's called in whatever version of the toolchain you're using)
20:48 jay So if I define .sub 'interactive' : method in my Compiler.pm, then my version would be used in place of the one that would have been inherited from the HLL::Compiler?
20:48 dalek rakudo/nom: 45465fa | pmichaud++ | src/core/List (2 files):
20:48 dalek rakudo/nom: Fix handling of $!nextiter in lists when a third-party triggers reification.
20:48 dalek rakudo/nom: Fixes the  my $x = List.new('bacon'); say $x; say $x;   bug that would
20:48 dalek rakudo/nom: duplicate the elements of the List.
20:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/45465fab19
20:49 Coke jay: that certainly SOUNDS reasonable. ;)
20:49 jay lol... I should stop asking and just try it... thanks.
20:49 moritz if it's a .pm file, you shouldn't use PIR in it :-)
20:49 benabik It's not `.sub 'interactive'`.  That's PIR.
20:49 Coke (I would say yes or no, but I'd have to try it myself first to try it...)
20:50 moritz then just  method interactive(*%adverbs) { ... }
20:50 jay Ah -- and then wrap the PIR code in Q:PIR {    } ?
20:51 moritz or jsut write NQP code, not PIR
20:51 jay moritz: well, it seems that getting the current PIR code working in "my" own version is less likely to be a disaster.
20:51 benabik jay++
20:52 benabik jay: That's exactly what I've been doing in my PIR -> NQP translations.  Start with a big Q:PIR block.
20:53 jay Here's feedback (no question): I think Q:PIR is really cool.  I wrote a function for generating sequences in two ways, once in NQP and once in PIR via a Q:PIR block.  Learned a lot.  Cool.
20:59 dalek rakudo/nom: 5327931 | moritz++ | t/spectest.data:
20:59 dalek rakudo/nom: another passing integration test
20:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5327931c39
21:03 whiteknight jay: everything we do around here turns into a disaster. Have fun with it!
21:04 jay Thanks.  Hmm... getting error:imcc:The opcode 'is_cclass_i' (is_cclass<1>) was not found. Check the type and number of the arguments
21:04 jay in file 'src/gen_compiler.pir' line 151
21:04 jay included from 'src/nqr.pir' line 1
21:04 jay .... Would there have been changes to the interactive method between parrot versions 3.3.0 and 3.5.0?
21:04 mj41 joined #parrot
21:07 moritz is_cclass_i looks like it needs many more arguments than 0 (and returing 1)
21:09 jay Just tried my version, no difference.  So having method interactive(*%adverbs) { return Q:PIR { ... }; } of the PIR code from HLLCompiler.pir just may not be a legal hack.
21:10 moritz it's fine, as long as you return a value from Q:PIR { ... }  with %r = $P0  or so
21:11 jay This error seems unrelated to the return though?
21:12 moritz yep, it seems that the PIR inside the Q:PIR is wrong
21:12 jay AH: do I need something like .include 'cclass.pasm'
21:12 jay .include 'iglobals.pasm' as well?
21:12 moritz might be
21:14 whiteknight is_cclass_i is not an opcode
21:14 dalek rakudo/podparser: b20c00f | pmichaud++ | src/core/Cool.pm:
21:14 dalek rakudo/podparser: Add Cool.rand.
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/b20c00f317
21:14 dalek rakudo/podparser: 9e91676 | pmichaud++ | src/core/ (3 files):
21:14 dalek rakudo/podparser: Add List.pick, Any.pick, and Range.at_pos.
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/9e916766df
21:14 dalek rakudo/podparser: 1f8fe70 | moritz++ | src/core/Pair.pm:
21:14 dalek rakudo/podparser: Pair.ACCEPTS
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/1f8fe70bf3
21:14 dalek rakudo/podparser: 8aa37ff | moritz++ | src/core/Numeric.pm:
21:14 dalek rakudo/podparser: add Numeric.Bool -- but it does not seem to get called at all
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/8aa37ffbcc
21:14 dalek rakudo/podparser: 3763c60 | pmichaud++ | src/core/Any.pm:
21:14 dalek rakudo/podparser: Add sub pick().
21:14 whiteknight so it's definitely a parse error somewhere
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/3763c604c6
21:14 dalek rakudo/podparser: 9209833 | moritz++ | t/spectest.data:
21:14 dalek rakudo/podparser: four more passing test files
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/9209833f97
21:14 dalek rakudo/podparser: 537ad6b | moritz++ | NOMMAP.markdown:
21:14 dalek rakudo/podparser: note MMD failure in NOMMAP
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/537ad6b496
21:14 dalek rakudo/podparser: 45465fa | pmichaud++ | src/core/List (2 files):
21:14 dalek rakudo/podparser: Fix handling of $!nextiter in lists when a third-party triggers reification.
21:14 dalek rakudo/podparser: Fixes the  my $x = List.new('bacon'); say $x; say $x;   bug that would
21:14 dalek rakudo/podparser: duplicate the elements of the List.
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/45465fab19
21:14 dalek rakudo/podparser: 2780997 | tadzik++ | / (10 files):
21:14 dalek rakudo/podparser: Merge branch 'nom' into podparser
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/278099715b
21:14 dalek rakudo/podparser: 728d0f8 | tadzik++ | src/Perl6/ (3 files):
21:14 dalek rakudo/podparser: Construct Pod blocks from delimited blocks, use Lists instead of Arrays per moritz++'s suggestion
21:14 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/728d0f8124
21:25 jevin left #parrot
21:30 dalek rakudo/nom: bd3df2f | pmichaud++ | src/core/ (2 files):
21:30 dalek rakudo/nom: Add List.roll, Any.roll, &roll and &join.
21:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bd3df2f88d
21:30 dalek rakudo/nom: a4a40c0 | pmichaud++ | src/ (2 files):
21:30 dalek rakudo/nom: Make Range smart enough to return Int instead of Num, add temporary opcode
21:30 dalek rakudo/nom: for making really large integers into Nums.
21:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a4a40c01c4
21:30 dalek rakudo/nom: 91f014c | pmichaud++ | t/spectest.data:
21:30 dalek rakudo/nom: Add S02-builtin_data_types/range.t .
21:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/91f014c7a7
21:31 jay whitenight, I just posted to the users list, figuring I must be doing something trivial wrong in the way I try to override the interactive method.  Not a big deal, but if I can fix and understand it, I'd probably learn something useful.
21:32 ambs left #parrot
21:34 rurban_ joined #parrot
21:37 rurban left #parrot
21:38 rurban_ is now known as rurban
21:39 dukeleto jay: glad to see you diving in head first :)
21:42 jay Diving... I don't know.  I think I know enough to be dangerous... I think I can fly when I should probably concentrate on walking, first.
21:42 Psyche^ joined #parrot
21:43 NotFound jay: You need to include cclass.pasm to use .CCLASS_NEWLINE
21:43 dukeleto jay: the difference between swan diving and flying is vanishingly small :) Perhaps of measure 0 ...
21:44 jay NotFound.  Yeah, sorry.  I tried that, and it didn't get me anywhere so I deleted it.  Maybe I didn't include it the right way and should try again...
21:47 jay include('cclass.pasm') inside the method?  Ourside the method?  I don't even know where to look for an example, sorry.  It didn't generate an error, but gave the same complaint.
21:47 NotFound I don't know how to do it in nqp
21:47 Patterner left #parrot
21:47 Psyche^ is now known as Patterner
21:48 jay How about in PIR?  Could it just go at the head of the Q:PIR block?
21:49 NotFound You can try: .include 'cclass.pasm'
21:50 mj41 left #parrot
21:51 benabik I've never quite figured out how to get that to work...  I ended up just replacing the constant with it's value.
21:51 benabik :-/
21:52 jay Yeah, tried that but it generated a syntax error (though someplace else, not at that line).  benabik: you mean, go steal that definition rather than fighting the include?
21:52 plobsing you can't do that because NQP doesn't allow you to create PIR outside .sub-scope
21:53 benabik jay: Yeah, I looked at the included PASM and grabbed the value for the constant.  I put the original constant name in a constant.
21:54 NotFound I think it will be cleaner to put the subs that need includes in a .pir file
21:58 Eclesia left #parrot
22:02 plobsing one approach might be to use a PIR eval to get at the constant
22:02 dalek rakudo/nom: 8d597c2 | pmichaud++ | / (3 files):
22:02 dalek rakudo/nom: Add infix:<=:=>, a major cheat for Parcel.Capture(), and three more spectest files.
22:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8d597c2861
22:04 jay Tried     .const int CCLASS_NEWLINE = 4096, but didn't work... I note that there is a leading dot before CCLASS_NEWLINE when it is used, but don't understand why.
22:05 jay pmichaud recommended the autoprint method.  Sounds elegant... if I knew what that was.
22:06 plobsing jay: that's just how the macro directives work in the lexer
22:08 jay I've tried definining the constant in the Q:PIR block:    .const int CCLASS_NEWLINE = 4096   and then not using the dot before CCLASS... in the body.  No luck, parse error.
22:10 plobsing Q:PIR won't work due to NQP limitations on generating PIR
22:10 plobsing you need to eval a string of PIR
22:10 zloyrusskiy joined #parrot
22:10 plobsing which means: getting the PIR compiler, building up a source string which returns the desired value, compiling the source string, and running the resultant code object.
22:12 plobsing I'm working on a running example ATM
22:13 jay plobsing: thanks.  It's obvious I'm out of my league.  I'm hacking HLLCompiler.pir directly to prove I can do what I want, then I'll repost asking what the ideal way of doing it is... so far I've had several completely different suggestions.  Which is interesting, in itself.
22:14 nopaste "plobsing" at 192.168.1.3 pasted "PIR eval for constants" (5 lines) at http://nopaste.snit.ch/58162
22:14 plobsing jay: ^^working example^^ (in winxed)
22:16 darbelo left #parrot
22:17 jay plobsing: did that mean I should go look at winxed?  Thanks, I think I need to do that anyway.
22:17 darbelo joined #parrot
22:18 jay plobsing: sorry, I got it.  I see the URL now.
22:18 dukeleto jay: winxed.org and ext/winxed in parrot.git
22:20 plobsing jay: winxed is simply my prefered way to quickly express parrot-related ideas. the concept provided could readily be ported to any parrot language.
22:20 plobsing it also compiles down to relatively intelligible PIR, so if you don't understand it, you can always look at the generated PIR
22:21 benabik `my $pirc := pir::compreg('PIR'); my $eval := $pirc(...); say($eval())` should be the equiv NQP.
22:21 jay benabik: thanks... will try that.  You guys are better at balancing many languages than I am.  I'm going crosseyed.
22:22 benabik I'm going to grad school and studying language design.  It's what I do.  :-D
22:22 jay I've got my PhD and should have taken a course in language design.
22:23 NotFound jay: winxed snippets are easy to read if you know some javascript and pir.
22:23 dalek rakudo/podparser: 46bcffa | tadzik++ | src/Perl6/Actions.pm:
22:23 dalek rakudo/podparser: Handle paragraphs properly
22:23 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/46bcffa1e2
22:23 dalek rakudo/podparser: 959cd2b | tadzik++ | t/pod/01-delimited.t:
22:23 dalek rakudo/podparser: Add first Pod tests, not all of them yet, just those working
22:23 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/959cd2b16f
22:23 dukeleto jay: parrot hackers are very adept at juggling many languages in our heads at once, because we are forced to, all the time :)
22:25 jay This is something I've seen before, but not this extreme: 'insiders' all think it's easy... and maybe it is, once you know the answer.  I might say that some statistical theory is trivial... maybe it is, maybe it isn't.  Having a book helps.  I'm struggling because there isn't really a book, here.
22:27 everbrew left #parrot
22:27 darbelo left #parrot
22:28 NotFound Well, maybe "easy" is too strong word ;)
22:29 dmalcolm_ joined #parrot
22:29 jay benabik: compreg perhaps requires something else?  I got:   error:imcc:The opcode 'compreg_p' (compreg<1>) was not found. Check the type and number of the arguments
22:31 jay NotFound: my fault, my word choice.  But you get the idea, I'm sure.  This is a pretty impressive and complex project.  I think the only hope is to really become an expert... I'll keep trying, but am not sure I'll ever have the time to get there.
22:31 benabik jay: Might need to be pir::compreg__PS
22:32 cotto_work jay: that's a very succinct way to describe a big problem with today's Parrot.
22:33 cotto_work In my mind, I think of PCT as a framework that lets pmichaud write compilers very quickly.
22:33 dmalcolm left #parrot
22:35 jay benabik: yes, that changed things, as step in the right direciton.  I should give up for now and come back to it.
22:37 NotFound jay: if you work on parrot some time, you become an expert on the way. In the meantime, there are a bunch of people able to help.
22:37 NotFound And you don't need to be en expert in all parts of parrot, BTW.
22:38 jay cotto_work: Yikes.  pmichaud just replied that I may be using HLL:Compiler from nqp-rx, "which isn't the same
22:38 jay as HLLCompiler.pir in compilers/pct/src/PCT/HLLCompiler.pir"  He gave more hints, I'll have to try to track this down.  I'm in 3.3.0.
22:40 pmichaud hello :)
22:40 jay AH:  in nqp-rx/src/HLL/Compiler.pm, there does appear to be an autoprint method...  thanks, pmichaud!  I was just explaining your last email.
22:41 pmichaud yes.  I'd like to eliminate PCT::HLLCompiler altogether
22:41 pmichaud and, of course, this is all going to become even more complicated by the fact that there's a new HLL::Compiler in nqp (without the -rx)
22:41 pmichaud that doesn't have exactly the same API as either the existing HLL::Compiler in nqp-rx or PCT::HLLCompiler
22:42 jay Oh good.  <  sitting here laughing at my own complete ignorance, but completely believing this is an important and difficult issue  >
22:42 pmichaud right
22:43 whiteknight jay: We've probably made it much more complicated than it needs to be
22:43 pmichaud mainly because the original PCT::HLLCompiler has lots of false starts in it, and we've never really been able to remove them.
22:44 jay Hmm... my guess was adding    nqr::Compiler.autoprint(0);    inside the INIT of Compiler.pm was the right guess, but it didn't work.  I must be close, though.
22:45 pmichaud I think you want to define a new method
22:45 pmichaud method autoprint($value) { }
22:46 jay AH!  You are a god.  Sorry if that offended anyone.  It's been about 2 hours.  Bingo.  So elegant!
22:47 whiteknight pmichaud: So that raises a good question. Is PCT on it's way out?
22:48 whiteknight I mean, we're not developing new features for it, would the long term goal be to replace it completely with new NQP hotness?
22:48 pmichaud medium term goal, actually.
22:49 pmichaud but yes, my intent is to have a fully nqp-sourced pct
22:49 pmichaud including the regex engine
22:49 pmichaud it'll also support native lexicals and attributes, since we have that capability in rakudo now
22:50 pmichaud I'm also pushing to get rid of all of the   new ['Undef'] crufty code
22:50 pmichaud (that it generates)
22:50 whiteknight We get 6model into Parrot, then we can upgrade our snapshot from nqp-rx to nqp?
22:50 pmichaud yes.
22:50 cotto_work pmichaud: since you're here, I'd like to pick your brain a bit about an M0-related question.
22:50 cotto_work pmichaud: I'm putting together a language that'll serve as the primary M0 overlay and am thinking about the workflow.
22:50 cotto_work pmichaud: since it'll generate M0 (textual or binary; they're easily interchangeable), using PCT will mean also creating an alternate POST.
22:50 pmichaud but the pct that comes with nqp will be somewhat API incompatible with the existing pct
22:50 cotto_work er, nqp
22:51 cotto_work pmichaud: Do you think this would be less work than writing a new compiler using flex/bison (or some other tools targeting C) or not?
22:51 pmichaud there are some mistakes and misdesigns in the existing pct (somewhat forced by the lexicals and binding implementations we were constrained by) that are fixed in the nqp version
22:52 pmichaud cotto_work: well, the new pct that comes with nqp (I'm tentatively calling it "qct" for now :)  is intended to have multiple codegen backends
22:52 dmalcolm_ left #parrot
22:52 cotto_work "quick compiler toolkit"?
22:52 pmichaud just Q, actually.   From the Q in nQp  :)
22:53 pmichaud I'm open to better names.  :-)
22:53 whiteknight quite compiler toolkit
22:53 plobsing aw. I was hoping for a quantum compiler
22:53 cotto_work pmichaud: ok.  What's its current state?
22:53 pmichaud very preliminary at the moment.
22:54 cotto_work and eta?
22:54 pmichaud the first (and somewhat critical) step is to get the regex engine updated in the new nqp.
22:54 pmichaud the one we have now doesn't quite fit in with rakudo well, because it's a mixture of old P6object and PAST and 6model
22:54 NotFound pmichaud: there is some example on how to use the regex engine from pir? In order to get rid of the usages of TGE regex
22:55 pmichaud NotFound: will answer fully in a bit (researching)
22:55 jay If I could interrupt... there were a bunch of enthusiastic posters who answered many of my questions today, some directly (and correctly), others probably indirectly with the best of intentions.  I'm grateful.  It is interesting, though, that in the end the solution to my question was pmichaud's method authprint... a one-liner.  You have a community where many people, I think, are experts in sub-areas.  And willing to offer their solutions a
22:55 jay nd approaches.  Some work, some may not, and some are simpler than others.  It's fascinating to watch, and I'll try not to be a burden.  And I won't be shy about offering the outsider's perspective...
22:55 pmichaud jay++
22:55 jay and now I have to run to dinner... my wife is waiting.  Many thanks!
22:55 pmichaud you're correct that this is all fairly complex
22:55 pmichaud not because it has to be, but because we've accumulated a lot of mess over time and we need to clean it up :)
22:56 pmichaud (and I'm one of the chief mess-makers, I'm afraid)
22:56 NotFound jay: as I said, you don't need to be an expert in all parrot areas.
22:56 pmichaud cotto_work: so, I'm expecting to have the new regex engine in about a week
22:56 whiteknight pmichaud: all that matters is that we work to decrease the mess, and increase the awesome going forward
22:56 whiteknight stealing all the delicious 6model and nqp work will make up for many past infelicities
22:57 cotto_work pmichaud: it sounds like it will take some time before I can use qct for the M0 overlay.
22:57 pmichaud it'll use a new 6model-based AST structure for the regex nodes
22:57 NotFound The only problem is that sometimes we suggest approaches that are not the current best ways in the areas that each one know less.
22:57 pmichaud and it will have some shims to let the regex ast nodes fit inside of a PAST tree
22:58 pmichaud depending on how well that goes, and how much time it takes to get rakudo-nom birthed, we'll likely go back and reimplement PAST with some 6model-based versions in the same way
22:58 pmichaud at that point nqp will be almost entirely-self hosted, from regex engine to code generation for PIR.
22:59 cotto_work If nqp/qct is the way forward for mole (the M0 overlay), it may be a good time to polish M0, figure out mole's syntax and grammar, and to start on Parrot/6model in earnest.
22:59 pmichaud cotto_work: agreed.
22:59 whiteknight pmichaud: one question I do have is about the stability of 6model. jnthn suggested I hold off on porting, because 6model might change to suite Rakudo/nom work
22:59 pmichaud whiteknight: I agree with that assessment.  We're still doing small tweaks here and there.
23:00 pmichaud Once rakudo-nom is well along, I suspect 6model will be a lot more stable.  (eta 2 months for some semblance of stability)
23:00 whiteknight okay, I don't want to jump in until things are relatively stable. Of course I am willing to work around small changes
23:00 cotto_work pmichaud: should we hold off on Parrot/6model until then?
23:00 pmichaud cotto_work: another feature of the new nqp is that it defines its own opcode space, and a really really small number of opcodes
23:00 pmichaud well, "really small" is currently about 85.
23:00 whiteknight I may get started on the big parts sooner than later, I just wont expect to complete ut
23:00 whiteknight it
23:01 alester left #parrot
23:01 cotto_work pmichaud: 2x M0, but that's way smaller than pir.  I like.
23:01 pmichaud it will likely end up being close to 150 when we're done
23:02 pmichaud also, nqp's opcode set includes things like nqp::while and nqp::loop
23:02 NotFound It will be possible to write a regex library with an api designed to be easy to replace its internals later? That way, the transition will be easier.
23:03 pmichaud the new regex engine lets you replace the underlying regex object classes, yes.
23:03 pmichaud anyway, nearly all of rakudo and nqp will be definable using the smaller nqp:: opcdoe set and 6model.
23:03 NotFound I mean the other way, wraping the engine into a pir lib.
23:04 pmichaud NotFound: so, here's how one can use the existing regex library from PIR
23:04 pmichaud load_bytecode 'P6Regex.pbc'    # loads the regex engine
23:04 pmichaud $P0 = compreg 'P6Regex'   # get the regex compiler
23:04 pmichaud $P1 = $P0.'compile'('ab*c')   # compile the regex /ab*c/
23:06 pmichaud (looking up rest of details for how to invoke)
23:08 pmichaud $P2 = get_root_global ['parrot';'Regex'], 'Regex'   # get the Regex protoobject
23:08 pmichaud $P3 = $P2.'new'($P1)     # wrap the compiled regex into a Regex object
23:08 pmichaud $P4 = $P3.'ACCEPTS'('abbbbbbbc')     # try to match 'abbbbbbbc' against the regex
23:08 pmichaud $P4 ends up being the result of the match.
23:09 pmichaud (a "Match" object)
23:09 pmichaud I'm pretty sure that works... let me test it locally.
23:10 pmichaud (and debug it as needed)
23:10 NotFound That's what I mean: that code has a lot of details that can change.
23:10 pmichaud oh, in general it's really
23:11 pmichaud my $regex := P6Regex::Compiler.compile('ab*c');
23:11 pmichaud my $match := $regex.ACCEPTS('abbbbbbbc')
23:11 pmichaud that part isn't likely to change much
23:13 cotto_work pmichaud: I'm also wondering if mole should avoid qct because it's intended to be a fairly small non-dynamic language.
23:14 NotFound pmichaud: looks like we need: compreg "Regex::P6Regex"
23:15 pmichaud NotFound: probably.
23:15 pmichaud NotFound: I've forgotten quite a few of the details since December 2009
23:15 pmichaud cotto_work: is mole a compiler or ... ?
23:15 pmichaud I'm not sure what "M0 overlay" means here.
23:15 cotto_work pmichaud: it's a langauge.
23:16 cotto_work Ah.  It's what compiles down to M0.  M0 is by design too low-level to write anything non-trivial directly.
23:17 pmichaud okay.  So, I think your question is whether PCT/PAST (or their Q-equivalents) should used to generate the M0
23:17 cotto_work pmichaud: yes.
23:17 pmichaud I can see two answers
23:17 cotto_work That's my problem.
23:18 pmichaud (1)  one can use nqp to create compilers without ever using anything beyond the regex engine part.  This is what ops2c does, iiuc.
23:18 pmichaud i.e. ops2c does translation without having to go through PAST/POST/etc.
23:18 cotto_work ok
23:18 pmichaud (2) depending on the opcode set available in M0, that will determine if it's a good fit for PAST/POST to be generating directly
23:19 dalek rakudo/podparser: c26b9d5 | tadzik++ | src/Perl6/ (2 files):
23:19 dalek rakudo/podparser: Get back to using Arrays instead of Lists. Lists generate some weird Null PMC Access errors
23:19 dalek rakudo/podparser: review: https://github.com/rakudo/rakudo/commit/c26b9d5775
23:19 pmichaud PAST tends to have somewhat higher level operations, like if/unless/repeat/while/lexicals/etc.
23:19 pmichaud if those map well into m0 opcodes, it's a good way to go.
23:19 pmichaud but if m0 is really low-level, I suspect a non-PAST translation is in order
23:19 cotto_work pmichaud: M0's ops are very low-level.  There's 37 of them and I don't think we'll end up with more than 40.
23:19 pmichaud right
23:20 pmichaud so it sounds to me like we don't expect PAST/POST to be generating M0 directly
23:20 pmichaud iiuc, they'll be generating opcodes that are then interpreted by M0 thingies
23:21 cotto_work the impression I'm getting is that M0 is a different enough target from the typical *ct workflow that it'd require some wrangling
23:21 pmichaud right
23:22 pmichaud but as in (1) above, one could still write a mole translator in nqp-rx... just not using pct for the code generation parts
23:22 cotto_work M0 ops are at https://github.com/parrot/parrot/blob​/m0-spec/docs/pdds/draft/pdd32_m0.pod under "List of Ops"
23:22 pmichaud what will mole look like?
23:22 cotto_work pct is a big part of nqp's charm
23:23 cotto_work It's still being decided but it will be a C-family language.
23:23 pmichaud so, it'll have if statements and loops and the like?
23:23 cotto_work yes
23:24 pmichaud so, m0 is the assembly/machine code, and you want something to translate a HLL c-family language down to that machine code
23:24 cotto_work yes
23:24 NotFound pmichaud: get_hll_global $P1, [ 'Regex'; 'P6Regex'; 'Compiler' ], 'compile' gives null
23:24 pmichaud you have to look up "Compiler", not 'compile'
23:24 pmichaud 'compile' is a method.
23:25 pmichaud cotto_work: nqp would help with writing the parser part.  I'm skeptical that it would help much with the code generation part anytime soon.
23:25 pmichaud so in that case you might be better with yacc/bison or something like that.
23:25 cotto_work pmichaud: Thanks.  I think I know what I need to.
23:26 cotto_work I was hoping to avoid those, but the compiler won't magically write itself.
23:26 cotto_work pmichaud: do you know anything about lemon?
23:26 cotto_work (parser generator)
23:27 pmichaud I can certainly keep m0 in mind as I'm writing qct and its various items... and will gladly take a stab at using it to generate m0... but I wouldn't want to rely on it as the final answer at this point.
23:27 pmichaud (lemon) no.
23:27 pmichaud NotFound: get_hll_global $P1, ['Regex';'P6Regex'], 'Compiler'
23:28 NotFound $ ./winxed -e 'load_bytecode("P6Regex.pbc"); var engine = new ["Regex", "P6Regex", "Compiler"]; var re = engine.compile("ab*c");'
23:28 NotFound Method 'parse' not found for invocant of class 'Undef'
23:36 pmichaud NotFound: http://gist.github.com/1068599
23:36 pmichaud in the new version, the parts about "Wrap the Sub PMC into a Regex object" will go away
23:36 pmichaud the compiler will return a Regex object directly.
23:37 pmichaud so, it's basically:  obtain the regex compiler, compile a regex, invoke the regex on whatever you want to match
23:37 pmichaud afk, dinner
23:38 soh_cah_toa joined #parrot
23:39 NotFound I'm the only one that thinks that all that internal details will be better encapsulated in a pir library?
23:39 pmichaud isn't that a PIR library?
23:39 pmichaud that's what P6Regex.pbc is.
23:40 pmichaud you're just looking for a functional interface to the library instead of an object-oriented one, I guess.
23:41 NotFound Functional or OO, but one that doesn't need to know several implementation details to be used.
23:41 pmichaud how hard is?
23:41 pmichaud 1 look up the compiler
23:42 pmichaud 2 compile the regex
23:42 pmichaud 3 invoke the regex
23:42 dalek parrot-linear-algebra: 4ac7732 | Whiteknight++ | t/ (24 files):
23:42 dalek parrot-linear-algebra: Fixes to the test suite so it runs and all tests pass again
23:42 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/4ac7732e16
23:42 pmichaud ??????
23:42 NotFound pmichaud: is hard to have such details sparsed from the codebase waiting for a deprecation.
23:42 AzureSto_ joined #parrot
23:42 pmichaud I can't parse that last statement.
23:44 NotFound pmichaud: if we provide a simpler pir lib, when nqp change you just need to update the internal details in that lib, and all the code that uses it can remain untouched.
23:44 pmichaud fine, I can add a function to P6Regex.pbc.
23:44 pmichaud no promises as to whether it will exist in the 6model version, though, which definitely thinks in terms of lexical scopes and object methods.
23:44 NotFound That way we can start cleaning the remaining usages of othe regex.
23:45 pmichaud I don't think there are that many, but I could be wrong.
23:45 pmichaud gotta run -- bbl.
23:45 AzureStone left #parrot
23:45 NotFound pmichaud: that is part of the problem. We (at least me) tend to avoid using regex because of that.
23:46 zloyrusskiy left #parrot
23:46 losinggeneration joined #parrot
23:46 NotFound Because of depending on things that are deprecated or candidate to be.
23:46 zloyrusskiy joined #parrot
23:47 pmichaud even if I provide a function, I can't guarantee that I'll be able to support it in the next version of the engine.
23:47 pmichaud that's kind of my point.
23:47 zloyrusskiy left #parrot
23:48 lucian__ left #parrot
23:48 pmichaud we really don't think in terms of global namespaces in nqp.
23:48 pmichaud bbl
23:48 NotFound Then there is no point in providing it.
23:51 whiteknight that's a good habit to be in. If I have my way, NameSpaces will either disappear or be severely disempowered eventually
23:52 NotFound I don't care if it's a Namespace or some other beast. I care about the parrot goal of language interoperability.
23:54 NotFound If we don't have a regex engine easily accesible from pir, that is a severe limitation.
23:56 Limbic_Region joined #parrot

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

Parrot | source cross referenced