Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-03-24

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 timotimo Zoffix: it can still use pick, but first srand
00:05 AlexDaniel .tell samcv if I'm getting “should eventually be unreachable” thingy in my code, what does it mean?
00:05 yoleaux2 AlexDaniel: I'll pass your message to samcv.
00:06 Zoffix timotimo: good plan
00:08 Zoffix hm, actually... It's not lexical and'll affect all randomness, right? Rather not pop into there lest other tests somewhere else in file use randomness one day and will give non-random stuff.
00:30 Zoffix IO::Handle has `.t` method that says whether the handle is to a TTY... how to get such a handle?
00:31 Zoffix m: say $*OUT.t
00:31 camelia rakudo-moar a01d67: OUTPUT: «False␤»
01:03 Zoffix IO Action Plan current status: 14 pages long. Hoping to finish and make it available for review in 24 hours.
01:03 * Zoffix drops to bed
01:09 geekosaur on unix you open a /dev/tty*, /dev/pty* (requires opening the master first), or /dev/tty for direct connection to controlling terminal, or on some systems /dev/cua* for direct access serial port (ignoring carrier detect)
01:10 geekosaur or, $*IN $*OUT $*ERR if running in a terminal and not redirected
01:10 geekosaur however, libuv has a tty abstraction that moarvm doesn't currently bind
01:11 Zoffix Ah. Thanks. $*OUT.t and "/dev/tty".IO.open.t.say give me True.
01:35 bloatable6 joined #perl6-dev
01:57 [Coke] Zoffix: I JUST posted your feb report on the TPF site. Sorry for the delay, keep up the good work. :)
01:58 Zoffix [Coke]++ thanks.
01:59 [Coke] Also, the March 2017 Call for Proposals just went out.
02:00 Zoffix .tell samcv TPF posted call for proposals. Last day is April 2nd. Ensure TPF confirms your proposal went in this time :) http://news.perlfoundation.org/2017/03/call-for-grant-proposals-march-2.html#more
02:00 yoleaux2 Zoffix: I'll pass your message to samcv.
02:00 samcv thanks Zoffix :)
02:00 yoleaux2 02:00Z <Zoffix> samcv: TPF posted call for proposals. Last day is April 2nd. Ensure TPF confirms your proposal went in this time :) http://news.perlfoundation.org/2017/03/call-for-grant-proposals-march-2.html#more
02:01 * Zoffix just rejected PR# 666 :)
02:02 Zoffix Out with evil!
02:14 bloatable6 joined #perl6-dev
02:16 bloatable6 joined #perl6-dev
02:49 ilbot3 joined #perl6-dev
02:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
04:05 unicodable6 joined #perl6-dev
04:05 bisectable6 joined #perl6-dev
04:05 benchable6 joined #perl6-dev
04:05 committable6 joined #perl6-dev
04:05 evalable6 joined #perl6-dev
04:05 bloatable6 joined #perl6-dev
04:05 statisfiable6 joined #perl6-dev
04:47 Geth ¦ nqp: 67a74d2491 | (Samantha McVey)++ | tools/build/MOAR_REVISION
04:47 Geth ¦ nqp: Bump MoarVM to fix bug with case insensitive regex w/ synthetics
04:47 Geth ¦ nqp:
04:47 Geth ¦ nqp: a8448142 Improve description for "should eventually be unreachable" error
04:47 Geth ¦ nqp: 498a21d8 Fix case insensitive string compare bug when synthetics in haystack
04:47 Geth ¦ nqp: c4de954b teach adjust_nursery about smallbigints
04:47 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/67a74d2491
04:47 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.03-22-ga00278e...2017.03-25-ga8448142
05:02 Geth ¦ rakudo/nom: e87179ddc0 | (Samantha McVey)++ | tools/build/NQP_REVISION
05:02 Geth ¦ rakudo/nom: Bump Moar/NQP to fix bug with case insensitive regex w/ synthetics
05:02 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e87179ddc0
05:02 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.03-12-g0adbb98...2017.03-13-g67a74d24
05:03 samcv everything should be good now :) no more
05:03 samcv m: say (88.chr ~ 875.chr ~ 8413.chr) ~~ /:i x /
05:03 camelia rakudo-moar a01d67: OUTPUT: «should eventually be unreachable␤  in block <unit> at <tmp> line 1␤␤»
05:03 samcv plus that error is now actually not going to be reached and actually describe wtf it does
05:34 masak wow, that's a confusing error message :)
05:34 samcv yes. when i read it i thought something would have gone horrrrribly wrong
05:35 samcv but turns out not quite so horrible. just a horrible message
05:35 samcv m: say (88.chr ~ 875.chr ~ 8413.chr) ~~ /:i x /
05:35 camelia rakudo-moar e87179: OUTPUT: «Nil␤»
05:35 samcv yay and that's fixed now too
05:35 samcv gotta add that to roast. more tests are needed for unicode for sure
05:37 samcv wow we only have 36 tests :O https://github.com/perl6/roast/blob/master/S05-modifier/ignorecase.t
05:38 samcv for m:i//
05:43 samcv interesting. if i run t/spec/S05-modifier/ignorecase.t enough times some of the 'blahst' ~~ m:i/st/ tests pass
05:43 samcv interesting there would be any possible different between runs. but it is a tricky situation, though i'm not sure why that would happen
05:44 samcv i mean see how it colud produce inconsisntent results based on what we currently have, but don't understand not getting consistently inconsisntent results (though 95% time will fail all 11 tests)
06:05 llfourn joined #perl6-dev
06:08 samcv hmm having a problem with the test harness. everything is fine running the test with `perl6` but if i use perl 5 harness or perl 6 harness it doesn't notice the last two tests
06:08 samcv and say you planned 38 tests but ran 36
06:09 samcv here's my copy. https://gist.github.com/samcv/5a98a3febea695adb30b549c0f1046cb goes in t/spec/S05-modifier/ignorecase.t
06:11 samcv running it with `prove -v -e perl6 ignorecase.t` works fine as well, and shows it running all 38 tests
06:50 RabidGravy joined #perl6-dev
08:58 Woodi hmm, is something like $seq.grep(/\d/).ifelse(*>0;*+1;*-1). ... allowed ? I gues programmable GPUs have such possibility... or switch :)  would be *realy* handy for parallel one-liners...
08:59 Woodi also how hyper/race handle side efects from map eg: my $counter = 0; ... . map( ...; $counter++ ). ...  in parallele ?
09:09 Ven joined #perl6-dev
09:33 timotimo Woodi: you put side effects in, your computer explodes, and its your fault
09:53 [Tux] This is Rakudo version 2017.03-29-ge87179ddc built on MoarVM version 2017.03-25-ga8448142
09:53 [Tux] csv-ip5xs        3.012
09:53 [Tux] test            13.577
09:53 [Tux] test-t           5.064 - 5.139
09:53 [Tux] csv-parser      13.595
10:02 Geth ¦ nqp/master: 4 commits pushed by (Pawel Murias)++
10:02 Geth ¦ nqp/master: c2cea52bb2 | [js] Refactor the way lexical scopes are handled
10:02 Geth ¦ nqp/master: 5cc1501d25 | Test nqp::getlexouter with dynamic variables
10:02 Geth ¦ nqp/master: e5872afb28 | Test cloning of closures that have statevars
10:02 Geth ¦ nqp/master: c247728b13 | [js] Implement nqp::getstrfromname and nqp::codepointfromname.
10:02 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/67a74d2491...c247728b13
10:12 astj_ joined #perl6-dev
10:39 Zoffix Got response for my bus ad thing: "For production purposes, 1 ad would cost you $ 275 + HST"
10:40 Zoffix ... maybe when I become rich and famous, I'll make it a point to run 1 bus ad, but for now I'll pass :)
10:51 astj joined #perl6-dev
10:52 astj joined #perl6-dev
10:58 dogbert17_ Zoffix: aren't you supposed to be asleep at this time?
10:59 Zoffix dogbert17_: 7am. I'm supposed to be getting dressed for work.
10:59 Zoffix FWIW:
10:59 Zoffix gfldex – org.remove_member
10:59 Zoffix Removed themselves from the Perl 6 organization
10:59 Zoffix Germany 2 days ago
11:00 Zoffix Whoever has the skills to handle humans. May want to take a look into that and restore the membership.
11:03 Zoffix s/handle/deal with/;
11:03 Zoffix Whatever the right word supposed to be used.
11:06 llfourn joined #perl6-dev
11:22 astj joined #perl6-dev
11:30 lizmat https://toons.gotblah.com/archive/geekandpoke/170323-2301.jpg   :-)
11:31 jnthn :P
11:34 jnthn Today's fun discovery: when we install scripts on Windows, we make a .bat script to launch them. This works OK, until you try to kill such a process from, say, Java, at which point it kills the cmd.exe running the batch script and leaves the moar process intact :/
11:35 jnthn Bizzarely, it also somehow keeps on getting the output, despite the process in the middle in theory being gone, so I've no idea how that works
11:39 geekosaur you'll continue to get output until all processes that inherited the pipe close it
11:40 jnthn Oh, right, it inherits, not acts as a pass-through
11:40 geekosaur same happens on unix if you use a shell to launch something and then kill just the shell. but unix has process groups so you can arrange to kill the entire process group
11:40 jnthn *nod*
11:40 jnthn Guess we may have the issue there also, then, thanks to the shell scripts we produce
11:42 Ven joined #perl6-dev
11:43 geekosaur (I don't know if whatever libuv abstraction you're using creates process groups automatically on unix)
12:22 Zoffix What does IO::Handle.lock/.unlock supposed to do?
12:23 Zoffix If a handle is in `:w` mode, it dies with failed to .lock; if it's in read mode, .lock don't seem to be doing anything
12:24 Zoffix Hm, just calls to undocumented nqp::lockfh($!PIO, $flag)/nqp::unlockfh($!PIO);
12:24 * Zoffix digs the sauce
12:45 Zoffix it's fcntl stuff
12:50 jnthn lizmat: Did you have chance to look at my gist at all? :)
12:53 lizmat jnthn: not this morning: architect visit and some schlepping  :-)
12:54 lizmat I left two more comments yesterday, which github seems to have eaten :-(
12:54 lizmat one was about spello's and too tired to look at it last night
12:54 lizmat the other one was suggesting Async as name of the role
12:54 lizmat aka AsyncHyper and AsyncRace
12:56 lizmat Zoffix: re nqp::lock: that's the engine behind the Lock class
12:57 lizmat ah, sorry, read wrong: you're talking about lockfh
12:57 Zoffix :)
12:57 lizmat please ignore me :-)
12:57 jnthn lizmat: Parallel would be more fitting than Async here
12:58 lizmat jnthn: maybe just Para ?
12:58 lizmat ParaHyper ParaRace
12:58 lizmat Conc ?
12:59 lizmat which would match ConcBlockingQueue
12:59 jnthn Well, but hyper and race already imply parallel...
12:59 lizmat but a specific type of parallelism
13:26 astj joined #perl6-dev
13:57 skids joined #perl6-dev
14:00 Ven joined #perl6-dev
14:16 buggable joined #perl6-dev
14:18 buggable joined #perl6-dev
14:20 * Zoffix keeps getting bitten by .foo: "something" ?? $x++ !! $y++
14:21 Zoffix And no way for computer to figure out what I actually mean :)
14:21 Zoffix .foo("something") ?? …
14:22 DrForr .foo:? # Consume just the next token?
14:23 jnthn Just use parens? :P
14:23 Zoffix Yeah, parens are the fix :)
14:35 astj joined #perl6-dev
14:37 AlexDaniel joined #perl6-dev
14:59 lizmat m: my $don't-do-this = 42; dd $don't-do-this    # http://blogs.perl.org/users/morandimus/2017/03/something-new-every-day.html
14:59 camelia rakudo-moar e87179: OUTPUT: «Int $don't-do-this = 42␤»
15:01 jnthn Yeah, saw that one :)
15:01 astj joined #perl6-dev
15:02 Zoffix heh
15:02 jnthn m: my $user = 'jnthn'; say "$user's beer"
15:02 camelia rakudo-moar e87179: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Variable '$user's' is not declared. Did you mean '$user'?␤at <tmp>:1␤------> 3my $user = 'jnthn'; say "7⏏5$user's beer"␤»
15:02 Zoffix Good error.
15:02 jnthn :)
15:02 jnthn Maybe a little unforunate we use single quotes around a variable name when the variable can contain '
15:03 jnthn But that nit aside, yes, it's clear it's interpreted the whole thing as a variable name
15:13 Ven joined #perl6-dev
15:24 astj joined #perl6-dev
15:31 Zoffix Curious, is there any point to role IO {}? I will propose to nix its `umask` method and it'll then be entirely empty...
15:31 jnthn If it's just empty, probably not
15:32 Zoffix OK.
15:33 jnthn I didn't even know it as a role :)
15:33 Zoffix heh
15:34 jnthn *was
15:34 astj joined #perl6-dev
16:03 [Coke] SmokeMachine: it was your CLA that bounced, yes?
16:04 Zoffix Yes.
16:07 [Coke] I can confirm I've received it. Pending them fixing the mail alias, it's entered in the list of CLAs, feel free to give them a commit bit.
16:14 SmokeMachine [Coke]: yes
16:18 [Coke] welcome aboard.
16:20 Zoffix \o/
16:20 SmokeMachine \o/
16:20 SmokeMachine :)
16:32 Zoffix .tell jnthn SmokeMachine's CLA has been received by TPF, and per [Coke] ( https://irclog.perlgeek.de/perl6-dev/2017-03-24#i_14318800 ) a commit bit can be given. The github username's "FCO" https://github.com/FCO
16:32 yoleaux2 Zoffix: I'll pass your message to jnthn.
16:37 SmokeMachine :)
17:05 Zoffix [Coke]: is one person allowed to do more than 1 TPF grant at a time? I have no current plans to do so, but just curious of the rules.
17:05 [Coke] rules are available on the site. pretty sure there's no explicit rule, but I imagine you'd have to be convincing, (and funding would have to be available)
17:06 [Coke] http://www.perlfoundation.org/rules_of_operation\
17:06 [Coke] er, minus the \
17:06 perlpilot .oO( "I can't believe TPF gave Zoffix a grant in the first place, now he's applying for another?!?!?"  ;-)  )
17:10 Zoffix perlpilot: I explicitly said that's not what I plan on doing.
17:10 Zoffix Yeah, rules don't state anything on the limit of grants. And I recall $10,000 being the upper limit to the requested amount, though I don't see it now on the rules_of_operation page...
17:11 perlpilot Zoffix: yeah, I'm teasing
17:12 Zoffix Why do people do that? It's weird.
17:13 mst it was ... a silly joke, as identified by the double interrobang and the ;-)
17:14 Zoffix I hope this page is outdated :) Last entries are from 5 years ago: http://www.perlfoundation.org/sponsors
17:16 perlpilot I seem to remember that there were some donations last year.
17:17 perlpilot booking.com maybe?
17:21 Zoffix Ah, the 10K limit is mentioned in http://www.perlfoundation.org/ian_hague_perl_6_development_grants
17:21 Zoffix "The Grants Committee has a constitutional limit of USD$10,000 on any given grant, and we envision Perl 6 development grants larger than this."
17:22 [Coke] those limits are for that particular fund which is done.
17:22 [Coke] OH.
17:22 [Coke] misread, yes.
17:23 [Coke] "quick respond before you've read the whole thing" -- my brain, probably.
17:24 Zoffix And more explicitly stated on http://www.perlfoundation.org/grants_committee_charter
17:28 [Coke] see, you're better at this than I am.
17:33 perlpilot [Coke]: OOC, how does one become a grants committee member?
17:37 [Coke] http://www.perlfoundation.org/grants_committee_charter - section 3, paragraph 3.
17:39 perlpilot So, if someone wanted to become a member, they'd have to petition one of the existing members to nominate them?
17:40 [Coke] Yes. We just elected a new member, actually.
17:40 [Coke] http://news.perlfoundation.org/2017/03/new-grant-committee-member-sec.html
17:41 [Coke] and before: http://news.perlfoundation.org/2017/01/grants-committee-needs-a-new-m.html
17:41 perlpilot So, I guess http://www.perlfoundation.org/who_s_who needs an update?
17:44 perlpilot Hmm.  from the committee charter you linked, it says the grants committee shall have at most 11 members but the Jan 25 post says there are 13 members
17:57 [Coke] I think the implication is "voting" memebers.
17:57 [Coke] *members
19:16 skids1 joined #perl6-dev
19:36 AlexDaniel joined #perl6-dev
20:00 perlpilot I thought charters were for being explicit rather than implicit :-)
20:00 perlpilot But "voting members" makes sense.
20:02 [Coke] perlpilot: added it as a GC issue.
20:41 masak heh -- in Perl 5, why is it `while (/.../g)` and not `for (/.../g)`? :)
20:41 masak that one just tripped me up and I readed to resort to perldoc
20:42 perlpilot You can do either depending on what you're trying to achieve  :)
20:43 masak well, I did `for`, and my $1 etc ended up containing only info about the last match ;)
20:43 masak (not what I was trying to achieve)
20:45 geekosaur because it doesn't return a list; it's an iterator that needs its crank turned to produce the next match
20:46 geekosaur (otherwise it does everything up front and if there are 100000 matches in a long string slurped from a file your machine will become very unhappy)
20:47 geekosaur also some questions about how you handle $1 and friends
20:49 lizmat Zoffix: there have been other donations, specifically to the Perl 5 and to the Perl 6 core development funds
20:49 Zoffix sweet
21:08 hankache joined #perl6-dev
21:15 Geth ¦ rakudo/nom: 1bacc61031 | (Elizabeth Mattijsen)++ | 4 files
21:15 Geth ¦ rakudo/nom: Replace all Foo.CREATE by nqp::create(Foo)
21:15 Geth ¦ rakudo/nom:
21:15 Geth ¦ rakudo/nom: It is *at least* 14x faster.  This is caused by Mu.CREATE not being
21:15 Geth ¦ rakudo/nom: jitted.  By using the direct nqp::create equivalent, we completely
21:15 Geth ¦ rakudo/nom: remove the need to call this (currently) unoptimizable method.
21:15 Geth ¦ rakudo/nom: So fewer frames, and thus (I assume) lower memory pressure as well.
21:15 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1bacc61031
21:34 Zoffix :o
21:35 Zoffix lots of boost
21:47 jnthn Hm, I wonder if we shouldn't just be compiling .CREATE into nqp::create :)
21:47 jnthn Probably we should
21:48 Zoffix Is there good reasoning for IO::Handle.encoding attribute to be mutable? Feels like it shouldn't be like the other public ones, but is there a usecase where switching encoding or bin/non-bin is useful? IO::Handle's $!PIO is mutable, so there's no real multi-thread safety attained from making it immutable.
21:54 * Zoffix writes down proposal to make it immutable; some things like .Supply aren't affected for bin-non-bin change, so it feels problematic to allow mutation
21:56 jnthn Zoffix: I can't really think of one
21:56 lizmat Zoffix: well, in the socket world, the header is usually ISO-8859-1, but the body could be UTF-8
21:57 lizmat so I've known people wanting to change encoding on the handle
21:57 jnthn Well, there's that, yeah :)
21:57 jnthn fwiw, my expectation is that we'll gradually move towards a model where the VM only does binary I/O, and IO::Handle coordinates the decoding
21:57 lizmat and this could well extend to files
21:57 jnthn (Which will still be VM-backed for the common encodings)
21:58 jnthn But we'll be able to support user-space ones also then.
21:58 jnthn But since we'll be pulling that stuff into Perl 6 space, we will have quite a lot more control over it
21:58 jnthn I'd probably make .encoding immutable and have an explicit change-encoding method or so, perhaps.
22:00 samcv Zoffix, have you worked on the TAP for perl 6 at all?
22:00 samcv i'm getting a problem when using `prove` or using harness6 will not see the last few tests i run
22:00 samcv but if i run the file manually it works perfectly
22:01 samcv err maybe prove is fine actually. in verbose mode
22:02 samcv but if i do `make t/spec/S05-modifier/ignorecase.t` it says bad plan and it doesn't see the output of the last two tests
22:10 Zoffix lizmat: thanks. Will leave it as is then.
22:11 Zoffix samcv: I fixed a few bugs, but there are no docs for it and I found the code incomprehensible.
22:11 samcv :(
22:12 samcv the only difference this test has when i run it using `perl6` is that it says `# Looks like you failed 10 tests of 38` at the end
22:12 samcv but the other test doesn't
22:12 Zoffix samcv: can you paste the ignorecase.t version you're running? I'm gonna build HEAD and give it a whirl
22:12 Zoffix (after a dinner break)
22:12 samcv here you go Zoffix https://irclog.perlgeek.de/perl6-dev/2017-03-24#i_14316624
22:13 Zoffix thanks; will take a look
22:13 samcv thank you
22:15 samcv oh Zoffix it looks like the todo on line 87 on that file. if i remove it the problem goes away
22:15 samcv so it must be related to the fudging or something
22:15 samcv somehow causing it not to run the tests after them at lal
22:20 samcv yeah Zoffix if i move them above the todo then it runs them fine.
22:21 Zoffix I think it's the fudger that's problematic in this case, the .rakudo.moar file don't got those tests in it
22:26 Zoffix samcv: yeah, this version works: https://gist.github.com/zoffixznet/bdd54684a06cf7ee11100193eedd1fd3
22:26 Zoffix I changed the todo count to just 1, not 10
22:26 Zoffix I think it sees just 1 test but is looking for 10, so something makes it choke 'cause it can't find them, so it loses the last 2
22:27 samcv yeah maybe
22:27 samcv i'm just gonna re-order it
22:27 samcv to put the other tests above it
22:27 Zoffix samcv: just change the todo count to 1
22:27 Zoffix 'cause if you simply move other tests, in the future when we add more tests to the end, they'll be disappearing just like these 2
22:28 samcv ah
22:28 samcv good plan Zoffix
22:45 samcv *go to google* search with this korean text. google gives me Error 400 Your client has issued a malformed or illegal request. :(
22:45 samcv idk maybe because it has newlines in it? or something weird
23:16 vendethiel joined #perl6-dev
23:30 skids joined #perl6-dev
23:34 Geth ¦ roast: 7b14317673 | (Samantha McVey)++ | 2 files
23:34 Geth ¦ roast: Rename test-gen.p6 to more descriptive mass-roundtrip-test-gen.p6
23:34 Geth ¦ roast: review: https://github.com/perl6/roast/commit/7b14317673
23:34 Geth ¦ roast: 1524fa25fa | (Samantha McVey)++ | S05-modifier/ignorecase.t
23:34 Geth ¦ roast: Add tests for case insensitive regex for synthetic graphemes
23:34 Geth ¦ roast:
23:34 Geth ¦ roast: These tests were prompted by this commit:
23:34 Geth ¦ roast: https://github.com/MoarVM/MoarVM/commit/498a21d8f34749fb57bfe872048bd8c6285eafa2
23:34 Geth ¦ roast:
23:34 Geth ¦ roast: AlexDaniel++ for finding this bug
23:34 Geth ¦ roast: review: https://github.com/perl6/roast/commit/1524fa25fa
23:38 AlexDaniel m: say (88.chr ~ 875.chr ~ 8413.chr) ~~ /:ignoremark :i x /
23:38 camelia rakudo-moar 1bacc6: OUTPUT: «「Xͫ⃝」␤»
23:42 * Zoffix suggests 88.chr to be "X", to make it clearer to the reader an 'x' is part of the string and the regex should match
23:49 Zoffix Well, I lied.
23:50 Zoffix 01:03 <Zoffix> IO Action Plan current status: 14 pages long. Hoping to finish and make it available for review in 24 hours.
23:50 Zoffix 23:49 <Zoffix> Well, I lied.
23:51 Zoffix Still need to sort out a couple of routines and then polish off the assembled plan, but tired for tonight.
23:51 Zoffix But definitely in the next 24 hours :)
23:51 * Zoffix &

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary