»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:07 tokuhiro_ joined 00:09 tokuhiro_ left 00:10 tokuhiro_ joined 00:14 tokuhiro_ left 00:18 kurahaupo left 00:19 kurahaupo joined 00:47 kevouze joined 00:58 anuby joined
dalek ecza: 0d2a99e | (Solomon Foster)++ | lib/ (2 files):
First stab at $*CUSTOM-LIB.
01:01
01:01 natisfto joined
natisfto good night....perl6 01:02
sorear hello natisfto. welcome?
natisfto rn: Str.^methods.say 01:03
01:03 am0c joined
p6eval niecza v22-12-g960f328: OUTPUT«Unhandled exception: Unable to resolve method methods in type ClassHOW␤ at /tmp/SVYf7VL6OE line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4211 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4212 (module-CORE @ 579) ␤ at… 01:03
..rakudo 8a07b8: OUTPUT«BUILD Int Num chomp chop substr pred succ match ords lines samecase samespace trim-leading trim-trailing trim words encode capitalize wordcase trans indent codes tclc path WHICH Bool Str ACCEPTS Numeric gist perl comb subst split␤»
colomon sorear: that was a very rough stab at doing $*CUSTOM-LIB -- I'm not at all convinced that's the right directory to use. 01:04
sorear colomon: do you want me to look at it? note, I have no clue what $*CUSTOM-LIB is other than apparently involving pandas 01:06
colomon It's moritz's attempt to not make every install of a perl6 compiler use ~/.perl6/lib for libraries. 01:07
natisfto phenny: tell moritz++ I found something like index,rindex not in the Str's method lists .phenny++
phenny natisfto: I'll pass that on when moritz++ is around.
colomon the idea being that now the directory for libraries will be $*CUSTOM-LIB/lib 01:08
01:08 natisfto left
colomon I didn't add it to the include path (hmmm....) but I did implement $*CUSTOM-LIB using Environment.SpecialFolder.ApplicationData 01:09
01:09 fgomez joined
colomon It came out to /Users/colomon/.config/niecza on my MacBook Pro, which seems not perfect, but probably workable. 01:09
it seems like a good first step to getting panda working with both compilers. 01:11
I think moritz is trying to make it possible to install rakudo and rakudo star side-by-side.
doy fixed directory names in the home directory feels like it misses the point somewhat 01:14
01:14 hypolin joined
sorear colomon: um, how is $*CUSTOM-LIB supposed to be set? 01:19
colomon ..... that's a good question
01:20 thou joined
colomon Wait, I'm not sure what you mean by that. Set initially, or modified later? 01:22
01:22 kevouze left 01:24 ComWT joined
sorear colomon: both 01:29
colomon set initially works -- I just did it more or less the same way you did $*EXECUTABLE_NAME 01:30
and like $*EXECUTABLE_NAME, right now giving it a new value doesn't work.
(or at least, I can't figure out how to do either) 01:31
pmichaud ~/.perl6/lib needs to die. 01:36
at least, it shouldn't be in the path by default.
01:48 am0c left 01:58 kevouze joined 02:06 armitage81 left, grondilu left 02:07 armitage81 joined
armitage81 hi 02:08
sorear hello and welcome armitage81 02:16
02:19 raiph joined 02:25 kevouze left 03:08 ponpon left 03:13 xinming joined 03:16 xinming_ left 03:27 raiph left 03:38 armitage81 left 04:00 dayangkun joined 04:03 apejens left 04:05 larks left 04:09 sftp left 04:18 telex left 04:28 kurahaupo left 04:29 kurahaupo joined 04:33 telex joined 04:41 wamba joined 04:45 wamba left 04:56 skids left 04:59 sivoais left
masak good morning, #perl6 05:01
05:02 birdwindupbird joined 05:03 sivoais joined 05:05 kevouze joined 05:06 wamba joined
sorear o/ 05:08
05:18 GlitchMr joined 05:20 aharoni joined 05:23 sftp joined 05:27 hash_table left
moritz \o 05:27
sorear: the idea is simply that $*CUSTOM-LIB is a directory that depends on the compiler version
and $*CUSTOM-LIB/lib should be in the module search path
where exactly it is doesn't really matter to me 05:28
r: say Cool.^methods(:local) 05:30
p6eval rakudo 8a07b8: OUTPUT«abs conj sqrt sign rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech cosech acosech cotanh acotanh cis log exp roots log10 unpolar round floor ceiling truncate chars codes fmt substr uc lc tclc ucfi…
moritz r: say Cool.^methods(:local).grep(/index/)
p6eval rakudo 8a07b8: OUTPUT«index rindex␤»
moritz phenny: tell natisfto index and rindex are defined in Cool, not Str (at least in Rakudo), and .^methods excludes methods from Cool, Any and Mu by default. Use .^methods(:all) if you gotta catch 'em all :-) 05:31
phenny moritz: I'll pass that on when natisfto is around.
05:36 arnsholt_ joined, arnsholt_ left 05:40 birdwind1pbird joined 05:51 kaleem joined 05:52 hash_table joined 05:55 araujo left, birdwindupbird left 06:00 hash_table left 06:02 kevouze left 06:05 wamba left 06:12 fridim_ left 06:20 GlitchMr left 06:27 dayangkun left 06:39 replore_ joined 07:10 brrt joined 07:13 daxim joined 07:17 kevouze joined
kevouze Hi everyone. I am currently running a survey about Perl community newcomers. Few people from Perl6 took part. 07:18
Is there anyone here joined Perl within the last 2 years and who would be keen to help out?
tinyurl.com/perlnewcomersurvey
brrt kevouze: define 'joined'
'learned perl for the first time' or 'started particpating in the perl community'
i fall in the latter, but not in the former category 07:19
kevouze started contributing to Perl sub-projects (like Perl6, Mojo, Dancer...)
sounds like it is your case, right? 07:20
brrt more or less, if parrot counts :-) 07:23
07:23 kevouze_ joined
Su-Shee what's this survey supposed to accomplish? 07:23
kevouze_ it is studying how the experience of a newcomer has an influence on this person becoming a valued sustainable contributor (from community perspective) 07:24
the dataset will be shared with Perl people, hoping it will be helpful 07:25
07:25 kevouze left, kevouze_ left 07:26 araujo joined, araujo left, araujo joined, kevouze joined
kevouze sorry using webchat.freenode.net/ and I keep being disconnected, not sure why. 07:26
07:28 birdwindupbird joined
Su-Shee well I would personally be very reluctant to be dubbed a "valued substainable contributor".. I'm not a economic open source resource. 07:29
also, helpful for what exactly? :) 07:30
kevouze one of the things it is looking out for example is whether your experience as a newcomer as an influence on you becoming a good 'citizen' for the community
so doing all the extra stuff that helps the community 07:31
Su-Shee kevouze: what's a good citizen for the community supposed to be? by whose definition?
and how do you know upfront what helps the community? also, which one of the two? perl6 or perl5?
kevouze rather the overall PErl community
I have conducted interviews with people from lots of communities asking what makes a person a good community citizen 07:32
07:32 flightrecorder joined
kevouze I am checking it out now in a survey, I have explained some of my preliminary results about citizenship in my blog kevincarillo.org if you want to have a look (sorry not advertising my blog here...) 07:33
Su-Shee wow, finally we're trying to press even the last hacker into a "mold" of good behavior.. wonderful. 07:36
07:37 kevouze left 07:38 kevouze joined
kevouze the 'good' here is from the community perspective not in the absolute. For a community to function and sustain, shall behaviors shall be encouraged, the same way there are codes of conduct 07:40
another example is the harm caused by 'toxic' behaviours to communities
Su-Shee kevouze: yes. horrible. your blog opens my worst nightmare how open source communities should change.. that's everything I pretty much want to keep out of hacking communities. 07:41
also, this is all very us-american flavored.. "codes of conduct" and such.. I have nothing but disdain for those.. 07:43
kevouze My personal opinion is that a code of conduct helps for large communities if you do not wants things to go wrong. Like I have said, it is just an opinion. 07:48
07:48 replore_ left 07:49 birdwindupbird left
Su-Shee but things usally don't go wrong. and comparing "things that go wrong" in numbers with the world outside of open source communities: things going wrong is a pretty rare exception. and what exactly adds a code of conduct to anything which a) isn't legal anyways and b) socially frowned upon and therefore just a question of acting instead of ignoring? 07:51
07:51 FROGGS joined
Su-Shee all this notion of things going wrong in open source communities.. I don't see it. 07:51
brrt or, we're all just nice to each other
maybe a bit passionate about software, but that is part of it 07:52
FROGGS morning
brrt \o FROGGS
kevouze I think it is not that easy to make sure a community remains healthy. 07:53
Su-Shee kevouze: _your_ very strange notion of "healthy".
kevouze healthy for instance like new people keeps coming and the community keeps growing, that could be one aspect 07:54
Su-Shee kevouze: which would require that it's actually true that the things you're talking about are the things deciding upon new people coming and communities growing.. 07:55
07:57 kurahaupo left 07:59 hoelzro|away is now known as hoelzro
kevouze Su-Shee, sorry I need to go. But I really would like to continue the conversation, I am always happy to hear about the opinion of people with a lot of experience, I still have to learn a lot. Thanks for sharing your insights :) 07:59
08:00 kevouze left 08:03 fhelmberger joined
moritz std: use v5; qw}foo} 08:05
p6eval std 77327a4: OUTPUT«===SORRY!===␤Use of a closing delimiter for an opener is reserved at /tmp/UdSzfxLuVi line 1:␤------> use v5; qw⏏}foo}␤Parse failed␤FAILED 00:01 52m␤»
moritz not in Perl 5 :-)
08:27 birdwind1pbird left 08:33 SamuraiJack joined
mathw o/ 08:33
08:40 dakkar joined 08:58 birdwindupbird joined 09:01 daniel-s left 09:04 sqirrel joined 09:05 thou left 09:10 daniel-s joined
dalek rlito: d59adda | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - p5ArrayOfAlias - fix internal indexes
09:11
09:20 aharoni left 09:24 Grrrr left, Grrrr joined 09:37 cognominal joined 09:46 cognominal left 09:48 gerhard2 joined
brrt /join #django 09:58
dammit
sorry
Timbus a traitor! 09:59
brrt haha
09:59 rindolf joined
brrt not my choice though 09:59
python is hilarious, though, its like they took perl and chipped away all the 'scary' parts 10:05
10:06 hypolin left
Timbus it's got a few nice things i guess 10:08
brrt its mediocre in every respect 10:09
its main virtue is being 'better than php'
Timbus any turing complete language that is not php, gets that stamp of approval 10:10
Woodi hallo :) 10:13
I must disagree... PHP was great invention ! 10:14
brrt Woodi, flame on 10:16
why was php a great invention
Woodi becouse ~user can use it without /root for example :)
brrt which can be done easily in CGI 10:17
without ever looking at php 10:18
Woodi be real, tell me why PHP win WWW ?
brrt because:
a): it is really cheap and easy to administer
b): hivemind of web hosters
c): it is really cheap to find developers for 10:19
c because of a and b
economics is why php reigns
Timbus i got told that php had a 'much easier to understand syntax than perl' and i think i pffbrbbppth'ed so hard i propelled myself into low orbit 10:20
Woodi I think PHP somehow improved WWW crafting and in that time it was important. I would realy like to know what was exact-name for killer feature... 10:21
Timbus embedded templates
serverside includes
10:22 tgt joined
brrt we had serverside includes before php 10:22
the templates thing, thats pretty important though
i wouldn't say it actually /helped/ the web development 'craft'
Timbus yes
Woodi so PHP was just "easy" in use on few lvls...
Timbus but boy howdy does it suck now
Woodi human laziness.... #@^^#@!*& 10:23
brrt neither where the developers / designers of php craftsmen themselves
10:23 anuby left 10:24 tgt left
brrt i mean, were 10:26
10:30 kaleem left, kaleem joined 10:33 colomon_ joined 10:34 colomon left, colomon_ is now known as colomon 10:36 brrt left 10:50 birdwindupbird left 10:55 kresike joined
kresike hello all you happy perl6 people 10:55
colomon o/ 10:57
10:57 rindolf left
masak kresike! \o/ 10:59
bbkr hello 11:00
kresike colomon, masak , bbkr o/ 11:02
masak has a Perl 6 day today
expect some activity.
flussence yay 11:03
11:04 gootle left 11:05 VXZ left, Su-Shee_ joined
flussence oh btw, I found this while you were away :) 11:06
echo -e 'my \\a = any set <1 2 3>; \n say 1 ~~ a' | perl6
11:07 brrt joined, Su-Shee left, Su-Shee_ is now known as Su-Shee 11:08 brrt left
moritz Segmentation fault (core dumped) 11:13
flussence works fine if you omit the \n, though.
masak has it been RT'd? 11:15
masak is not up to speed yet
flussence I've been too busy trying to break rakudo to file bugs :P 11:16
masak submits rakudobug 11:17
flussence I've got more if you want 'em :)
masak sure.
flussence rn: enum First <a>; enum Second <a>; say a.perl 11:18
p6eval rakudo 8a07b8: OUTPUT«Second::a␤»
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Illegal redeclaration of symbol 'a' (see line 1) at /tmp/Xs7s5vA4EN line 1:␤------> enum First <a>; enum Second <a>⏏; say a.perl␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.s…
masak that one is known, methinks.
and RT'd.
flussence yeah, that one seemed a bit easier to come across...
masak I know ++moritz would like to fix that one ;) 11:19
flussence anyway, I'm going to try actually writing code this week so I'll probably manage to break something :)
moritz what should happen?
redeclaration error, as niecza does?
flussence S12:1932 says that error is appropriate 11:23
rn: enum First <a>; enum Second <a>; say First::a.perl
p6eval rakudo 8a07b8: OUTPUT«First::a␤»
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Illegal redeclaration of symbol 'a' (see line 1) at /tmp/Mtg_0Il2_K line 1:␤------> enum First <a>; enum Second <a>⏏; say First::a.perl␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib…
flussence it says that should work, though 11:24
11:27 Guest67453 joined
moritz but how? 11:28
I mean, enum First <a>; *immediately* creates symbol a
which influences the parsing of the rest of the scope 11:29
and then, should the enum Second <a>; delete the existing symbol a?
that strikes me as quite odd
if so, what would enum First <a>; say a; enum Second <a>; do?
parse, and then complain at runtime that there is no a?
or retroactively complain that symbol a was used, and it turned out to be ambiguos? 11:30
that all sounds very surreal
flussence rn: say a; enum Second <a>; 11:32
p6eval rakudo 8a07b8: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&a' called (line 1)␤»
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Illegally post-declared type:␤ 'a' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ …
flussence that seems to answer that; it just isn't declared yet
11:32 birdwindupbird joined
flussence my first guess is it should change the bare «a» to behave like a "!!!" or similar 11:33
if that's even possible
11:34 gerhard2 left 11:35 Guest67453 left, wamba joined
moritz sounds dubious 11:38
moritz wrestles with hard SQL problems
arnsholt SQL query getting to be three pages long? =) 11:39
moritz that's part of the problem 11:40
well, there are two problems, actually
the first is that we need to store DAGs in a RDBMS
and the second is that we have several legacy tables, which should get a unified interface as "config items" 11:41
and we need to store relations between the DAG and config items
so the question is, how to unify several tables to one interface?
11:42 rindolf joined
moritz we could make a mapping table per legacy table, but that leads to explosion of tables 11:42
or a common mapping table that stores an ID and table name it references, but that doesn't have any referential integrity
or we have a mapping table with a column for each legacy table, and have only one of them non-Null, but that's ugly for writing queries 11:43
and so on
mathw table explosion is usually the only way that maintains referential integrity 11:44
you can moderate its effects on query-writing with judicious application of views
but the updates will always hurt
moritz well, views aren't easy either
mathw so will some of the selects
moritz because our schema is stored in a custom format 11:45
from which SQL is generated through a mixture of bash, perl, python and black magic
mathw we've also been wrestling with DAGs in an RDMS and it's not easy at all
11:45 FROGGS left
moritz and nobody wants to touch the magic, but right now it doesn't support views. Tough luck. 11:45
mathw you can easily store a directed graph, but we haven't found a way to sanely enforce the acyclic part
ouch!
we are at least working in raw SQL 11:46
moritz mathw: which model did you use? adjancence list, plus storing the transitive closure?
11:46 brrt joined
moritz or recursive queries for selects? 11:46
mathw we haven't actually finalised what we'r edoing yet
11:47 flightrecorder left
moritz www.codeproject.com/Articles/22824/...aphs-DAG-o that's what we'll probably do 11:47
mathw my colleague's handling most of it, but we're both so unhappy with the options we've come up with so far that we keep deferring the decision on database format (he's working on a lot of client-side stuff which is largely database agnostic)
moritz and I have a faint hope that most of the magic in there can be hidden behind triggers
11:48 flightrecorder joined 11:50 FROGGS joined
flussence do you at least get to choose a sane database to put it on? 11:50
moritz mysql :(
11:50 am0c_ joined
mathw oooh 11:50
ouch
moritz with innodb storage at least
mathw that's a start at least
one of my jobs is SQL Server, and one is MySQL (recently moved to InnoDB) 11:51
guess which one's database i prefer?
moritz postgres? :-)
mathw although actually I'd prefer it even if they were both on MySQL because it's designed
and it does sensible things
11:51 tokuhiro_ joined
moritz (I've never used SQL Server, so no idea how good or bad it is) 11:52
mathw and I don't have to share it with someone who doesn't think that referential integrity isn't particularly important
SQL Server is far from perfect, but it's capable of some extremely impressive stuff and it makes it very easy to make a very tightly-constrained schema
11:53 flightrecorder left
mathw the only problem we really have with it is that it doesn't support global constraints 11:53
but then we're not aware of anything else which does either
moritz what do you mean by "global constraints"? 11:54
11:54 flightrecorder joined
mathw check constraints which aren't attached to a table 11:54
flussence I found out the hard way mysql's fulltext search thing isn't compatible with innodb (and $dayjob needs the former)
mathw I found that out the other week, fortunately I don't need it 11:55
Woodi moritz: I lastly read a little of "Patterns of Enterprise Application Architecture" by M. Fowler and there is Gateway pattern for separating outside resources. It is used to make "object" to talk to resources which have interface which is used on domain lvl. point is to have simple way to get resources and resolve complicate scenarios on domain lvl. and there are similiar patterns: Facade, Adapter, Mediator, Service Stub... but no idea if ... 11:56
... resolving things on "domain lvl" can help...
mathw moritz: that transitive closure way of representing a DAG doesn't look fun 11:57
11:58 wamba left, wamba joined
brrt flussence: what about postgres, no option? 11:59
flussence not on that one project, it has to run on someone else's crappy server :(
moritz mathw: it doesn't, but it lets you fetch all interesting subgraphs with signle queries, and without recursion 12:00
mathw: in essence, DAGs are never fun in the DB. Afaict the question is if you want the no-fun to occur at reading or at writing
brrt do you really need /mysql/ fulltextsearch? or can you maybe get away with using some other fulltext engine? 12:01
moritz and I expect to have 0..5 writes a day, and who knows how many reads per minute
mathw moritz: this is true. You have to accept the limitations of your storage system and then optimise for what you need
flussence brrt: by "crappy" I really mean it - iirc it's running RHEL5 12:02
brrt moritz: maybe you can get away with the 'smashed tree' 12:04
my name for a structure a colleaugue invented
in a sense, /all/ relations between an object and the 'parent' objects are stored 12:05
so, if I have object A, which 'lives under' object B, and C lives under A
then B is connected to A
C is connected to A 12:06
moritz brrt: you mean there's a row for every path through the graph?
brrt but B is also connected to C
yes
that is exactly what i mean :-)
moritz brrt: then your colleauge has reivented the transitive closure :-)
brrt i did not know that term
my former manager, on the other hand, has forbidden it on the condition of ENOUNDERSTAND 12:07
moritz well, it's a bit of waterbed here
flussence brrt: I get that excuse a lot :( 12:08
moritz you can make the schema easier, and make it easier to write
but then selects perform like snails
mathw ENOUNDERSTAND is a bad reason to forbid something 12:09
Woodi moritz: use LDAP for mainly-read things :)
mathw although if only one person understands something clever, that is a problem
brrt well, eventually, i was the only one because the others all left 12:10
mathw ah well you can't always plan for the future :) 12:11
moritz Woodi: good idea, if it weren't for the fact that all the other data is already stored in mysql
Woodi moritz: looks that architecture need change or something in low-lvl need to be aware of "structure" you use... 12:13
usually first cure is done by bigger hardware :) 12:14
SSD or something ?
moritz chuckles softly at "architecture need change"
Woodi so it takes time... or patience :) 12:15
if things go serious you will probably have new co-worker :) 12:16
moritz my coworkers are fine 12:17
but the code isn't, in parts
the first commits are from 1997 12:18
and some of that age shows
12:18 tokuhiro_ left, GlitchMr joined 12:19 tokuhiro_ joined
Woodi err... I mean: additional :) 12:21
12:21 am0c_ left
Woodi just trying to think like manager can be trying to resolve things... 12:21
12:23 tokuhiro_ left
mathw ah old codebases 12:24
we had that at my previous job
not a great deal of fun working with some of it
although the overall concept was pretty clever, it hadn't been maintained very cleanly over the years
masak mathw: enforcing the acyclic part shouldn't be that difficult. just mandate that children be younger than parents. 12:25
that's how Git does it.
mathw masak: what if your data has no concept of 'age'
masak hm :)
mathw yes, it would be great if we could do that
masak actually, Git doesn't need the concept of 'age' here either. 12:26
mathw Git has parent pointers
masak it just considers objects immutable once created.
so old objects can never be made to refer to newer ones.
mathw and everything gets created in temporal order
because git inherently is based around time
masak eh?
mathw well, kind of
more like sequences 12:27
this, then this, then this
masak actually, with rebasing and stuff, you can get things to come wildly out of (commit) order.
mathw well, cheating's useful sometimes :)
masak my point is that I don't really see what you mean.
mathw that's okay, neither do I
masak you lost me at "inherently is based around time". 12:28
mathw I may not hve drunk enough tea yet today
masak up to that I agreed. :)
12:31 fridim_ joined
masak saw concatenative.org/wiki/view/Exotic%...Structures the other day and thought of #perl6 12:33
moritz courses.csail.mit.edu/6.851/spring12/lectures/ is currently high on reddit under the headline "Actually Exotic Data Structures" 12:36
brrt grr, zero pointer derefs
12:36 replore joined
tadzik hello #perl6 12:41
brrt \o tadzik
masak looks like a nice course. 12:42
tadzik! \o/
tadzik \o/
mathw hi tadzik
tadzik hello hello
GlitchMr github.com/rakudo/rakudo/commit/df...3df18dbaae 12:46
:-(
What if somebody doesn't have access to Rakudo install directory?
What about `~/.perl6/lib/2012.09.1-35-g8a07b84` or something instead? 12:48
Also, glitchmr.github.com/ 12:51
I know I'm late... very late
12:54 PacoAir joined
brrt moritz: that is a nice link 12:56
thanks
12:56 PacoAir left, PacoAir joined 12:57 benabik left, wamba left 12:59 hash_table joined 13:00 sirrobert joined, rindolf left 13:02 fridim_ left 13:04 Psyche^ joined 13:05 Patterner left, Psyche^ is now known as Patterner
moritz GlitchMr: I thought about that too, maybe we just need two such locations 13:06
though perl 5 took years to get a decent solution for that 13:09
GlitchMr: it would be ~/.perl6/2012.09.1-35-g8a07b84/lib, because if you have separate lib dirs, you also want separate bin/ and panda/ dirs
13:19 replore left 13:20 replore__ joined 13:26 replore__ left 13:31 replore joined 13:34 wamba joined 13:35 kaare_ joined 13:38 wamba left, wamba joined, ponbiki joined
[Coke] moritz: thanks for applying that patch. had meant to get to it over the weekend, glad to see you took care of it (and also fixing my test.) 13:39
phenny [Coke]: 14 Oct 15:41Z <pmichaud> tell [Coke] RT #68854 closed, thanks!
13:41 wamba left, wamba joined 13:48 hash_table left 13:51 wamba left 13:52 kaleem_ joined
masak rn: say <<<\>'n'>> 13:53
p6eval niecza v22-13-g0d2a99e: OUTPUT«<>'n'␤»
..rakudo 8a07b8: OUTPUT«===SORRY!===␤Missing << or >>␤at /tmp/rgRs_yIuEd:1␤»
13:53 am0c joined
masak (this, and following, are from diakopter-in-the-backlog) 13:54
masak submits rakudobug
13:55 kaleem left
masak motivation: I think Niecza has it right here. thus, Rakudo has it wrong. 13:55
rn: say <<<a>>>
p6eval niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Bogus term at /tmp/c7dJpiIdzl line 1 (EOF):␤------> say <<<a>>>⏏<EOL>␤␤Parse failed␤␤»
..rakudo 8a07b8: OUTPUT«a␤»
masak again, I side with Niecza. 13:58
13:58 sqirrel left
masak rn: say <<'m'<\>'n'>> 13:58
p6eval rakudo 8a07b8: OUTPUT«'m'<\>'n'␤»
..niecza v22-13-g0d2a99e: OUTPUT«'m'<>'n'␤»
masak rn: say <'m'<\>'n'>
p6eval niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Preceding context expects a term, but found infix < instead at /tmp/LNKI9iWAd2 line 1:␤------> say ⏏<'m'<\>'n'>␤␤Parse failed␤␤»
..rakudo 8a07b8: OUTPUT«'m'<>'n'␤»
masak decides to include these discrepancies, also reported by diakopter++, in the bug report 13:59
r: []=5; say "alive" 14:02
p6eval rakudo 8a07b8: OUTPUT«alive␤»
masak submits rakudobug
14:02 Shozan is now known as SHODAN, REPLeffect left
masak r: [1, 2, 3] = 5; say "alive" 14:02
p6eval rakudo 8a07b8: OUTPUT«alive␤»
14:03 stopbit joined
masak r: say ([1, 2, 3] = 5) 14:03
p6eval rakudo 8a07b8: OUTPUT«5␤»
masak well, that has a certain logic to it :P
still, that assignment shouldn't be legal, methinks.
14:05 flightrecorder left
masak rn: say(|(|([4]))) 14:05
p6eval niecza v22-13-g0d2a99e: OUTPUT«4␤»
..rakudo 8a07b8: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&prefix:<|>' called (line 1)␤»
14:05 flightrecorder joined
masak submits rakudobug 14:05
14:06 FROGGS left, aloha left
masak diakopter: I agree that it's frustrating that Rakudo and Niecza are mutually inconsistent wrt 1%0 and 1/0; but I don't know what to submit it as. 14:08
14:08 skids joined
masak r: class A { ... }; class B is A { has A $.foo }; class A { has B $.bar }; say B.new; say "alive" 14:09
p6eval rakudo 8a07b8: OUTPUT«No such method 'new' for invocant of type 'B'␤ in block at /tmp/xEQQiNkcSK:1␤␤»
masak r: class A { ... }; class B is A { has A $.foo }; say B.new; say "alive"
p6eval rakudo 8a07b8: OUTPUT«===SORRY!===␤The following packages were stubbed but not defined:␤ A␤at /tmp/gyZD_JZwzJ:1␤»
masak oh, 'course. 14:10
r: class A { ... }; class B is A { has A $.foo }; class A {}; say B.new; say "alive"
p6eval rakudo 8a07b8: OUTPUT«No such method 'new' for invocant of type 'B'␤ in block at /tmp/h_oHOfXFU4:1␤␤»
masak submits rakudobug
r: class A { ... }; class B is A {}; class A {}; say B.new; say "alive"
p6eval rakudo 8a07b8: OUTPUT«No such method 'new' for invocant of type 'B'␤ in block at /tmp/Wm423F0foa:1␤␤»
masak r: class A { ... }; class B is A { has A $.foo }; class A { has B $.bar }; say A.new.bar 14:12
p6eval rakudo 8a07b8: OUTPUT«No such method 'gist' for invocant of type 'B'␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/mYtOY6NtP7:1␤␤»
masak r: class A { ... }; class B is A {}; class A { has B $.bar }; say A.new.bar
p6eval rakudo 8a07b8: OUTPUT«No such method 'gist' for invocant of type 'B'␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/bmZhXA9bOo:1␤␤»
masak something tells me that diakopter was on his way to do even *more* depraved things with cyclic object dependencies, but found these bugs on the way. :P 14:13
diakopter++
moritz I don't think you should be able to inherit from a class that's only stubbed
the proper way is to stub the subclass
masak I agree that the problem we're seeing here stems from deriving from the stubbed class. 14:14
I'm not yet convinced it shouldn't be allowed.
oh, TimToady++ has a fix in the backlog: 14:16
r: class A is Any { ... }; class B is A { has A $.foo }; class A { has B $.bar }; say A.new.bar
p6eval rakudo 8a07b8: OUTPUT«B()␤»
masak includes this in the ticket
r: class A is Any { ... }; class B is A { has A $.foo }; class A { has B $.bar }; say (A.new.bar).HOW 14:17
p6eval rakudo 8a07b8: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/w0QS7k58Le:1␤␤»
masak whee
r: class A is Any { ... }; class B is A {}; class A { has B $.bar }; say (A.new.bar).HOW
p6eval rakudo 8a07b8: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/b6ufuYbWMw:1␤␤»
masak r: class A { ... }; class B is A {}; class A { has B $.bar }; say (A.new.bar).HOW 14:18
p6eval rakudo 8a07b8: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/d8WIWX96Cv:1␤␤»
masak r: class A { ... }; class B is A {}; class A { has $.bar }; say (A.new.bar).HOW
p6eval rakudo 8a07b8: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/8Q2Pr3KjrJ:1␤␤»
masak submits rakudobug
r: class A { has $.bar }; say (A.new.bar).HOW
p6eval rakudo 8a07b8: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/t83Bga8Tk2:1␤␤»
masak o.O
moritz masak: the subclass is composed at the time we parse its } 14:19
masak r: say (class { has $.bar }).new.bar.HOW
p6eval rakudo 8a07b8: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/YB9mypNBQ7:1␤␤»
masak r: say (class { has $.x }).new.x.HOW
p6eval rakudo 8a07b8: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/E5UVkLlGyW:1␤␤»
masak r: say (class { has $.x }).x.HOW
p6eval rakudo 8a07b8: OUTPUT«Cannot look up attributes in a type object␤ in method x at src/gen/CORE.setting:1606␤ in block at /tmp/CehyhmdJRy:1␤␤»
14:19 FROGGS joined
moritz masak: so if we allow deriving from stubbed classes, the derived classes won't get any of the behavior of the superclass, which kinda defeats the purpose of the exercise 14:20
masak agree so far.
masak was going to say "though I'm not the language designer", but he's not so sure that's true in an effort like Perl 6 14:21
well, apart from the "the", which is clearly not true :)
14:21 mucker joined
sergot hi! o/ 14:22
masak sergocie! \o/
r: say Rat.^attrs
p6eval rakudo 8a07b8: OUTPUT«No such method 'attrs' for invocant of type 'Perl6::Metamodel::ClassHOW'␤ in block at /tmp/20T492W3EO:1␤␤»
masak r: say Rat.^attributes
p6eval rakudo 8a07b8: OUTPUT«$!numerator $!denominator␤»
sergot masaku \o/ !
masak r: say (1/2).numerator 14:23
p6eval rakudo 8a07b8: OUTPUT«1␤»
masak r: say (1/2).numerator.HOW
p6eval rakudo 8a07b8: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/s1DQICF2TV:1␤␤»
masak r: (;) 14:25
p6eval rakudo 8a07b8: OUTPUT«===SORRY!===␤Method 'returns' not found for invocant of class 'Integer'␤»
masak submits rakudobug
r: say (;:[]) 14:26
p6eval rakudo 8a07b8: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Can only use get_how on a SixModelObject␤»
masak submits rakudobug
std: say (;:[]) 14:27
p6eval std 77327a4: OUTPUT«ok 00:00 44m␤»
masak <tadzik> ▄█▀ █▬█ █ ▀█▀ 14:30
tadzik that was me,aye
masak tadzik: ...and now all blind people reading tha backlog hate you. :P
the*
mucker tadzik: how did you type that 0_o ? 14:31
tadzik power of copypasta
masak <tadzik> wow, blogs.perl.org on a Mojolicious rampage 14:33
<__sri> the underlying question is actually quite interesting, too bad it's buried under mojolicious fud
<tadzik> yeah
tadzik wow, masak on backlog-reading-rampage :)
masak ...and I missed most of that blog back-and-forth, but I feel that *those three lines* capture all I need to know.
masak hugs #perl6 14:34
14:35 birdwind1pbird joined
PerlJam masak++ 14:35
masak moritz: re CUSTOM-LIB -- I'd much rather see it as CUSTOM_LIB. I don't dislike dashes, but I think all-caps names should use them. 14:36
PerlJam (after reading a few lines I was about to remind people that communities need care and feeding too, lest they devolve into chaos)
masak and not just because the one typing them is already holding down the shift key ;)
PerlJam guten tag everybody 14:37
masak PerlJam: oh! I read a statement by Assange today that reminded me of the care and feeding of communities. it was about Wikileaks and Anonymous.
but it made me think of the Perl 6 community.
masak admires sirrobert who is doing cool stuff with Perl 6 for his $dayjob 14:38
moritz admires sirrobert too 14:40
sirrobert heh
masak sirrobert: seems the STORE method at github.com/sirrobert/Semantic-Vers...ing.pm#L22 doesn't clear minor and patch versions if a shorter list was provided. bug? 14:42
sirrobert a shorter list?
as in .version = "1.2" ? 14:43
masak moritz: prior art: $*EXECUTABLE_NAME
sirrobert: yeah.
moritz masak: *nod* 14:44
masak sirrobert: if it was 1.4.13 before, it will be 1.2.13 after.
sirrobert masak: close enough to a bug. I'd call it a feature request =)
masak: ohhhh
masak sirrobert: bug?
sirrobert masak: would you want it to go to 1.2.0?
masak yes!
moritz masak: I think we need, in total, 4 new paths
masak sirrobert: or maybe 1.2.<undef>, I dunno.
sirrobert: up to you. 14:45
moritz I'd like to steal perl 5's concept of perl/vendor/site libs, plus one per-user dir (to which the user surely has write permissions)
masak sirrobert: if it goes to 1.2.0, then prolly minor and patch should be 0 at initialization, too.
sirrobert masak: yeah... I'll think on that. I definitely get the value, but it could be a surprise
14:45 hash_table joined
moritz so maybe %LIBDIR<perl vendor site user> 14:45
masak sirrobert: in fact, given how FETCH works, you prolly want to set those to 0 initially. 14:46
moritz: sounds good to me.
sirrobert masak: ok. How does FETCH work that's relevant?
14:46 aloha joined
kresike bye folks 14:46
14:46 kresike left
sirrobert when I do: panda update 14:47
I get this error: use of uninitialized variable $key of type Any in string context in method add-project at /home/sirrobert/.perl6/_git/rakudo-star-2012.09/install/lib/parrot/4.6.0/languages/perl6/lib/Panda/Ecosystem.pm:90
I just recompiled rakudo and it did that. 14:48
(rakudo-star)
masak sirrobert: FETCH expects the values in minor and patch to have been set. if they haven't, it will emit undefinedness warnings. 14:49
might want to set all three values to 0.
sirrobert masak: got it
masak: I thought you meant how FETCH was implemented underneath
masak ah, no. meant your FETCH. 14:51
sirrobert masak: fixed.
14:51 cognominal joined
masak sirrobert++ 14:52
lumi__ p6: class A { method foo { ... }; }; class B is A { has $.foo; }; my A $a = B.new; $a.foo = 3; say $a.foo
p6eval rakudo 8a07b8: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/F8qK27buwD:1␤␤»
..niecza v22-13-g0d2a99e: OUTPUT«3␤»
masak ...and I'm caught up on the backlog. 14:53
14:53 tokuhiro_ joined
moritz r: class A { method foo { !!! } }; class B is A { has $.foo }; my A $a = B.new; $a.foo = 3; say $a.foo 14:56
p6eval rakudo 8a07b8: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/giNH4C2T0h:1␤␤»
14:56 grondilu joined 14:57 birdwindupbird left
masak is it possible to give something a custom ClassHOW without using modules? 14:57
moritz r: class A { method foo { !!! } }; class B is A { has $.foo }; my A $a = B.new(foo => 5); say $a.foo
p6eval rakudo 8a07b8: OUTPUT«5␤»
moritz masak: I'm sure it is, if you know the hooks :-) 14:58
grondilu what exactly does $*CUSTOM-LIB? I don't see it documented in specs. Is it the same as PERL6LIB? 14:59
14:59 REPLeffect joined
lumi__ p6: class A { has $!x; method foo is rw { return-rw $!x; }; }; class B is A { has $.foo; }; my A $a = B.new; $a.foo = 3; say $a.foo 15:01
p6eval rakudo 8a07b8: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/CeRh3HrmyN:1␤␤»
..niecza v22-13-g0d2a99e: OUTPUT«3␤»
masak moritz: I don't know the hooks :/
lumi__: yeah, but you're *overriding* the .foo method by giving $!foo in B an accessor... 15:02
15:02 am0c left
masak lumi__: I'm with Rakudo, not Niecza, on this one. 15:02
n: class A { has $.x }; given A.new { .x = 5; say .x } 15:03
p6eval niecza v22-13-g0d2a99e: OUTPUT«5␤»
masak Niecza doesn't seem to make attributes readonly at all.
lumi__ masak: But even predeclaring it as rw doesn't help
masak show it in code, please? 15:05
sirrobert the ecosystem module right before Semantic::Versioning (SSL, by grondilu) has a source-url of [email@hidden.address] is that legit?
(trying to track down a panda error)
masak r: class A { has $.x is rw }; given A.new { .x = 5; say .x } 15:06
p6eval rakudo 8a07b8: OUTPUT«5␤»
masak r: class A { has $.x }; given A.new { .x = 5; say .x }
p6eval rakudo 8a07b8: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/VJmSwokbYJ:1␤␤»
masak sirrobert: probably not legit.
sirrobert the rest of the source-urls in the META.list use "git://github.com..."
is it kosher for me to change that in the META.list file?
don't want to step on toes.
masak sirrobert: yes.
sirrobert masak: ok, thanks
masak go right ahead.
I'll vouch for you, if needed, which it won't :P 15:07
won't be*
dalek osystem: cdab4f5 | (Sir Robert Burbridge)++ | META.list:
removed SSL to try to fix a panda error
15:08
sirrobert thanks. Removed that line temporarily and will check if that fixes the issue. 15:09
lumi__ masak: Sorry, my mistake, I hadn't realized attributes were readonly
masak lumi__: that's how it looked from your evals. ;) 15:10
sirrobert: or you could make the obvious transformation to the kosher kind of URI...
lumi__ Although that means that rw-ness isn't kept when overriding, which is surprising 15:11
masak eh?
you're defining a new attribute.
lumi__ masak: I thought the accessor for the attribute overrides the method? 15:12
15:12 FROGGS left
masak correct. 15:12
15:12 flightrecorder left
lumi__ So if the method is rw, and the accessor isn't, that's not keeping its contract 15:12
15:13 bluescreen10 joined
masak I assumed your confusion stemmed from thinking in terms of contracts. 15:14
you're right; that's not keeping its contract.
in Perl, keeping contracts is up to you, the programmer.
the compiler won't call you on it if you don't. 15:15
lumi__ So rwness is a run-time thing
15:16 benabik joined, PerlJam left
masak that's not what I said. but I guess it is, in a way. 15:16
lumi__ So on the flipside, saying "method foo is rw { ... }" is always useless?
15:17 PerlJam joined
masak no, I think it's useful. 15:17
but I'm not completely up-to-date on that.
maybe only 'return-rw' matters nowadays.
15:17 benabik left
masak waves hands a little 15:17
15:17 benabik joined
lumi__ "Contract" might be a bit strong, but I would think lvalueness would be part of a method's return type 15:18
masak well, Perl doesn't honor any such things across class derivedness relations. 15:19
r: class A { method foo { return 42 } }; class B is A { method foo { return "OH HAI" } }; A.new.foo; B.new.foo
p6eval rakudo 8a07b8: ( no output )
masak r: class A { method foo { return 42 } }; class B is A { method foo { return "OH HAI" } }; say A.new.foo.^name; say B.new.foo.^name 15:20
p6eval rakudo 8a07b8: OUTPUT«Int␤Str␤»
masak between base class and derived class, you can change return type, number of parameters, type of parameters, lvalueness... anything.
15:25 bluescreen10 left
moritz note that type and lvalueness operate on different levels 15:25
lumi__ C++11 just added an 'override' keyword, could we have one? 15:26
Possibly in a module
moritz what would we need that for?
15:26 birdwind1pbird left
lumi__ moritz: To check that you're keeping a compatible signature 15:27
moritz but we don't do that anyway
or do you mean adding 'override' would do that?
15:28 gugod left, wtw left, cognominal left
lumi__ moritz: That's what I mean. "method foo is override" to make sure it actually is 15:28
15:28 grondilu left 15:30 hoelzro is now known as hoelzro|away
moritz lumi__: you can implement that today if you want 15:30
in user space, for rakudo
15:30 brrt left
moritz this weekend I implemented method delegation. I first write the trait in user space, and only after testing did I copy it into rakudo's source 15:30
15:31 rindolf joined 15:32 aharoni joined
masak nice! 15:32
moritz r: class A { method Num handles <sqrt exp> { 42 } }; say A.sqrt 15:33
p6eval rakudo 8a07b8: OUTPUT«6.48074069840786␤»
moritz r: class A { method Num handles <sqrt exp> { 42 } }; say A.exp
p6eval rakudo 8a07b8: OUTPUT«1.7392749415205e+18␤»
lumi__ Cool! 15:34
moritz and that's just 12 lines of fairly understandable (IMHO) code 15:35
15:35 cognominal joined
moritz ... in which I've just discvered a minor imperfection :-) 15:36
cognominal www.technologyreview.com/news/42954...al-coding/ réinventing AppleScript. Bad ideas never die.
15:37 thou joined
moritz (in user space I used native strings, but in src/core/traits.pm those aren't available yet, so I reverted back to object types. Forgot an unbox along the way) 15:37
erm, forgot to remove an unbox
15:39 gugod joined, wtw joined 15:40 bluescreen10 joined 15:41 flightrecorder joined
sirrobert masak: Well, the problem is in his repo; I don't have access to it 15:42
15:43 cognominal left
masak oh! 15:44
then deletion sounds like the right thing to do.
people should only publish shared repositories ;)
15:45 FROGGS joined
moritz or maybe just submit a pull request, and ait a bit 15:47
*wait
or does it completely break panda?
15:47 kurahaupo joined 15:48 rindolf left
dalek kudo/nom: 0937c72 | moritz++ | src/core/traits.pm:
remove left-over unbox in method delegation
15:48
15:53 fgomez left 15:54 cognominal joined
sirrobert moritz: for whatever reason I can't install Semantic::Versioning via panda =) but I can install other modules before that one. Trying to figure out why 15:55
err... masak 15:56
dalek osystem: 110edde | (Sir Robert Burbridge)++ | META.list:
added the SSL module back-- didn't fix panda
15:59
15:59 cognominal left 16:01 kurahaupo left 16:03 kurahaupo joined 16:08 fgomez joined, kurahaupo left 16:12 kaleem_ left 16:17 mucker left 16:19 colomon left 16:21 MayDaniel joined 16:34 replore left 16:35 fglock joined, spider-mario joined
TimToady flussence, moritz: the passages in S12 are trying to indicate that colliding enums poison the short name. It is not the case that S12:1932 says you can just error out on the second declaration. It is not an error to import colliding names that you never use. It's the attempt to use an ambiguous enum 'a' that produces the error, because 'a' was "poisoned". 16:36
sirrobert r: multi sub foo (:$GET) { say $GET }; multi sub foo (:$POST) { say $POST }; my $foo = 'GET'; foo :($foo); 16:37
TimToady so it is also not sufficient for the second declaration to merely delete 'a'; all that does is privilege the 3rd declaraiton
p6eval rakudo 0937c7: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(:GET(:$GET))␤:(:POST(:$POST))␤␤ in block at /tmp/cua0O84NXt:1␤␤»
sirrobert how do I pass in a named argument whose name is the content of the var? 16:38
TimToady |($foo => True) or some such 16:39
sirrobert hmmm interesting
flatten a parcel
16:39 kurahaupo joined
sirrobert great, thanks 16:39
TimToady prefix:<|> is suppose to interpolate into an argument list as if it were really there
sirrobert righto 16:40
TimToady though I think there are some bugs lurking in that code
sirrobert well, my quick & dirty test worked... I'll see if it's good enough for now
thanks =)
diakopter I need to write a real fuzzer for Perl 6
I'm tired of manually permuting
TimToady but you enjoy it 16:42
sirrobert r: my @opt = 1,2,3,4; for 1..@opt.elems { say @options.rotate($_).[0,1] } 16:43
p6eval rakudo 0937c7: OUTPUT«===SORRY!===␤Variable @options is not declared␤at /tmp/IVWRkMwkDH:1␤»
sirrobert not that you don't know how, but I found something like that convenient =)
fwiw
r: my @opt = 1,2,3,4; for 1..@opt.elems { say @opt.rotate($_).[0,1] }
p6eval rakudo 0937c7: OUTPUT«2 3␤3 4␤4 1␤1 2␤»
diakopter let's see; it needs to be STD-based; it needs to persist progress state across runs 16:44
16:44 mtk joined
diakopter ideally it has a special interaction with each compiler to avoid startup time 16:46
16:48 aindilis joined
diakopter TimToady: yes. maybe I'd enjoy it more if I could generate 10x as many. Problems need pointed out. imho, not being aware of problems in a release is worse than being aware, because it multiplies bug-for-bug compatability. At leaset if it's documented as wrong, its behavior doesn't have to be maintained in the future 16:50
the detriment becomes: maintaining a giant bug queue is very hard
e.g. mono 16:51
or chromium
duplicate bugs submitted at an extremely high rate because it's too hard to find them in the database 16:52
or in mono's case, a mind-boggling number of arguably bug-for-bug compatability bugs since it's a clone of .Net 16:53
identifying unique bugs from a fuzzer is also very hard, of course
TimToady this is one reason why it has been so important for us to have multiple implementaitons
*tions
you need a fuzzer/minimizer :) 16:54
diakopter golfuzzer
arnsholt Kind of like QuickCheck =) 16:55
16:55 dakkar left
diakopter sounds Babylonian 16:55
arnsholt QuickCheck? 16:56
diakopter golfuzzer 16:57
arnsholt Right, that one's more Babylonian
Although Babylonian didn't have a sound f, from memory
(I actually took some classes in Babylonian a few years ago =D) 16:58
diakopter o_O
arnsholt That was pretty cool. Semitic languages are nifty
17:04 mucker joined
arnsholt diakopter: What kind of things were you thinking about regarding fuzzing, BTW? 17:04
sirrobert ok, I think I have a bug here....... 17:06
r: multi sub foo (:$A) { say "A" }; multi sub foo (:$B) { say "B" }; my $str = 'B'; foo |($str => True); 17:07
p6eval rakudo 0937c7: OUTPUT«B␤»
sirrobert r: class M { multi method foo (:$A) { say "A" }; multi method foo (:$B) { say "B" }; } my $str = 'B'; M.new.foo: |($str => True);
p6eval rakudo 0937c7: OUTPUT«===SORRY!===␤Confused␤at /tmp/yb_XTM6ZBb:1␤»
sirrobert r: class M { multi method foo (:$A) { say "A" }; multi method foo (:$B) { say "B" }; }; my $str = 'B'; M.new.foo: |($str => True); 17:08
p6eval rakudo 0937c7: OUTPUT«A␤»
sirrobert that second one should have printed B as the first one did.
it works for multi subs, but not for multi methods
diakopter arnsholt: good question. just look for parsing errors to start. things that abort parsing abnormally like NPMCA in rakudo or CLR exception in niecza. I still run across those occasionaly 17:12
17:13 rindolf joined
pmichaud good afternoon, #perl6 17:14
sirrobert hallo
r: my $foo = "bar"; say "$foo:a"; 17:15
p6eval rakudo 0937c7: OUTPUT«bar␤»
sirrobert Why didn't that output "bar:a"
?
arnsholt diakopter: Automatically generating programs would be cool indeed
rindolf pmichaud: hi. 17:16
arnsholt I've thought about it in the past, but not yet come up with a good idea to implement it
17:16 daxim left
diakopter arnsholt: the fuzzer for that system would just permute the rules; keeping track of which ones it already permuted so it doesn't follow subrules again 17:16
arnsholt Yeah, that might work 17:17
diakopter it wouldn't need to permute things like character classes or unicode properties
pmichaud r: my $foo = "bar"; say $foo:a
p6eval rakudo 0937c7: OUTPUT«bar␤»
pmichaud rn: my $foo = "bar"; say $foo:a
p6eval niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Variable $foo:a is not predeclared at /tmp/qkW5Vs2cnK line 1:␤------> my $foo = "bar"; say ⏏$foo:a␤␤Potential difficulties:␤ $foo is declared but not used at /tmp/qkW5Vs2cnK line 1:␤------> my … 17:18
..rakudo 0937c7: OUTPUT«bar␤»
pmichaud That's just weird.
diakopter arnsholt: hmm. I guess that would just test each codepath once. 17:21
rather, some of the parsing errors are due to strange nestings 17:22
pmichaud sirrobert: I'm guessing the :a is being parsed as part of the variable somehow, or it's acting like some form of postcircumfix
diakopter r: my $foo = "bar"; say $foo:a.WHAT
p6eval rakudo 0937c7: OUTPUT«Str()␤»
diakopter r: my $foo = "bar"; say $foo:1.WHAT 17:24
p6eval rakudo 0937c7: OUTPUT«===SORRY!===␤Confused␤at /tmp/jQcRL7W_g9:1␤»
pmichaud rn: my $foo = "bar"; say ($foo):a 17:25
p6eval rakudo 0937c7: OUTPUT«===SORRY!===␤Confused␤at /tmp/XQKRGozHcC:1␤»
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤You can't adverb that at /tmp/vV9iuysJ_q line 1 (EOF):␤------> my $foo = "bar"; say ($foo):a⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (die @ 5) ␤ …
diakopter rn: my $foo = "bar"; say $foo:[].WHAT
p6eval niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Variable $foo:[] is not predeclared at /tmp/iBOuBc3OMv line 1:␤------> my $foo = "bar"; say ⏏$foo:[].WHAT␤␤Potential difficulties:␤ $foo is declared but not used at /tmp/iBOuBc3OMv line 1:␤------> m…
..rakudo 0937c7: OUTPUT«===SORRY!===␤Variable $foo:<> is not declared␤at /tmp/YCgRWEqgt9:1␤»
17:25 Chillance joined
diakopter eh 17:26
how are those variable names
std: my $foo = "bar"; say $foo:[].WHAT 17:27
p6eval std 77327a4: OUTPUT«===SORRY!===␤Variable $foo:[] is not predeclared at /tmp/Bp76nqCoeo line 1:␤------> my $foo = "bar"; say ⏏$foo:[].WHAT␤Check failed␤FAILED 00:00 44m␤»
pmichaud <colonpair> appears to be a valid dottyop 17:29
and colonpair is a valid component of <longname> 17:30
diakopter std: my &[]; 17:32
p6eval std 77327a4: OUTPUT«ok 00:00 45m␤»
17:32 benabik left 17:33 kurahaupo left
diakopter <longname> # XXX line 2461 of STD.pm6 I wonder what the XXX means 17:34
oh nm
17:37 fgomez left 17:51 fgomez joined 17:54 mucker left 18:00 bluescreen10 left 18:10 obtical joined, obtical left 18:12 fhelmberger left, kaleem joined 18:13 bluescreen10 joined 18:30 tokuhiro_ left 18:31 tokuhiro_ joined 18:32 cognominal joined 18:35 tokuhiro_ left 18:36 daxim joined
daxim rakudo: say "1 100 200".comb(' ').perl 18:36
p6eval rakudo 0937c7: OUTPUT«Cannot call 'comb'; none of these signatures match:␤:(Str:D : Mu *%_)␤:(Str:D : Regex $pat, $limit = { ... }, :match(:$match), Mu *%_)␤:(Cool : Mu *%_)␤:(Cool : Regex $matcher, $limit = { ... }, Mu *%_)␤␤ in method comb at src/gen/CORE.setting:2101␤ in block at …
daxim how do I split that? 18:37
sirrobert r: say "1 100 200".split(' ').perl
p6eval rakudo 0937c7: OUTPUT«("1", "100", "200").list␤»
PerlJam with split?
daxim but irregular whitespace 18:38
rakudo: say "1 100 200".split(' ').perl
p6eval rakudo 0937c7: OUTPUT«("1", " 100", "200").list␤»
PerlJam daxim: comb is for describing what you *want*, split is for describing what you want to *throw away*
sirrobert r: say "1 100 200".split(/\s+/).perl
p6eval rakudo 0937c7: OUTPUT«("1", "100", "200").list␤»
PerlJam r: say "1 100 20 49".comb(/\d+/).perl 18:39
p6eval rakudo 0937c7: OUTPUT«("1", "100", "20", "49").list␤»
daxim then the docs at doc.perl6.org/routine/split are confusing: it reads as if comb is like split, but automatically removes empty elements
masak and, somewhat inconsistently, .split accepts strings or regexes; .comb accepts only regexes.
sirrobert r: say "1ab34ksd593,dk45".comb: /\d+/ 18:40
p6eval rakudo 0937c7: OUTPUT«1 34 593 45␤»
sirrobert cool
flussence .comb with a plain string sounds a bit pointless...
PerlJam flussence: unless you're counting occurences. 18:41
but, yes ... I tend to agree :)
sirrobert plain string as opposed to ... ?
flussence yeah, but then you should probably have a separate function that returns the count instead of $input xx $count
sirrobert non-string or fancy string?
daxim then the docs at doc.perl6.org/routine/split are confusing: it reads as if comb is like split, but automatically removes empty elements
oops
flussence sirrobert: instead of regex
sirrobert flussence: ohh, comb's argument 18:42
=)
18:46 cognominal left, cognominal joined
PerlJam sometimes wishes comb was spelt "keep" instead. 18:47
daxim r: my %r; my @val = "1 100 200".split(/\s+/); %r<@val.shift> = @val; say %r.perl;
p6eval rakudo 0937c7: OUTPUT«("\@val.shift" => ["1", "100", "200"]).hash␤»
daxim r: my %r; my @val = "1 100 200".split(/\s+/); %r{@val.shift} = @val; say %r.perl;
p6eval rakudo 0937c7: OUTPUT«("1" => ["100", "200"]).hash␤»
daxim this does not work in rakudo 2012-07 18:48
need to upgrade
18:50 Gruber joined 18:51 Grrrr left 18:56 Grrrr joined, Gruber left
masak r: class M { multi method foo(:$a) { say "a" }; multi method foo(:$b) { say "b" } }; my $str = "b"; M.new.foo: |($str => True) 18:58
p6eval rakudo 0937c7: OUTPUT«a␤»
masak r: class M { multi method foo(:$a!) { say "a" }; multi method foo(:$b!) { say "b" } }; my $str = "b"; M.new.foo: |($str => True)
p6eval rakudo 0937c7: OUTPUT«b␤»
masak sirrobert: that's your workaround.
named parameters are optional by default, so both multi methods are matching candidates. so they tie-break by calling the first matching one. 18:59
daxim doc.perl6.org/for # needs docs! 19:00
moritz daxim: patch it :-)
19:01 drbean left 19:02 drbean joined 19:03 kevouze joined
masak phenny: eo en "for"? 19:05
phenny masak: "for" (eo to en, translate.google.com)
masak (means "away" or "gone") :P 19:06
daxim r: my $foo = [200,300]; my %o; %o{567}{sprintf '%s,%s', $foo} = 1; say %o.perl
p6eval rakudo 0937c7: OUTPUT«Null PMC access in get_string()␤ in sub sprintf at src/gen/CORE.setting:2166␤ in block at /tmp/ucuWaLS6M_:1␤␤»
geekosaur for-gone conclusion?
daxim null pmc is a bad low-level crash that should never happen, right?
PerlJam right 19:07
daxim then walk me through rakudobug
19:08 GlitchMr left
daxim rt.perl.org/rt3/Search/Results.htm...%20'perl6' # is that the right queue? 19:09
masak daxim: already submitted. 19:10
daxim bleh
masak the problem is '%s,%s' and then just one additional argument.
daxim I want to write perl6 once every month, I expect to uncover more bugs
masak r: sprintf '%s%s', 2
p6eval rakudo 0937c7: OUTPUT«Null PMC access in get_string()␤ in sub sprintf at src/gen/CORE.setting:2166␤ in block at /tmp/yFvfHKyz7Z:1␤␤»
masak r: sprintf '%s'
p6eval rakudo 0937c7: OUTPUT«Null PMC access in get_string()␤ in sub sprintf at src/gen/CORE.setting:2166␤ in block at /tmp/hD6rRQAeqf:1␤␤»
masak 'night, #perl6
diakopter o/ 19:11
daxim I need to dereference or flatten that arrayref in order to feed the list to sprintf, how do I do that? 19:13
diakopter which arrayref 19:14
oh, foo
daxim it comes from a for -> blocky assignment
pointy
diakopter r: my $foo = [200,300]; my %o; %o{567}{sprintf '%s,%s', |$foo} = 1; say %o.perl
p6eval rakudo 0937c7: OUTPUT«("567" => {"200,300" => 1}).hash␤»
daxim what's | called?= 19:15
diakopter flattener
19:21 colomon_s joined
colomon_s O/ 19:22
19:22 kaleem left
colomon_s What's the smart way to merge Arrays into a single Array? 19:23
19:26 benabik joined 19:27 SamuraiJack left
sorear o/ 19:28
diakopter hi SO
colomon_s \o
mst colomon_s: my @both = (@array1,@array2); 19:30
moritz or if you have an AoA, my @flat = @AoA.map: *.list
colomon_s Thank you! 19:31
19:38 daxim left 19:39 birdwindupbird joined 19:44 cognominal left 19:45 kevouze left 19:51 cognominal joined 19:52 colomon joined 19:53 colomon_s left 19:54 fglock left 19:58 fgomez left 20:02 joelwilsong joined 20:07 replore_ joined, spider-mario left 20:13 araujo left, nyuszika7h left, kaare_ left, araujo joined 20:14 jaldhar_ joined 20:15 _jaldhar left, fgomez joined 20:16 nyuszika7h joined 20:18 hash_table left 20:22 replore_ left 20:26 sffd joined 20:27 _edwin joined
_edwin std: constant s = 1,2; say s[0]; 20:28
p6eval std 77327a4: OUTPUT«===SORRY!===␤Missing assignment operator at /tmp/Oa368ACnyu line 1:␤------> constant s = 1,2; say s[0]⏏;␤ expecting any of:␤ quantifier␤ sigmaybe␤Parse failed␤FAILED 00:00 44m␤»
diakopter std: constant s = 1,2; say s[0]*] 20:29
p6eval std 77327a4: OUTPUT«ok 00:00 44m␤»
diakopter haha
sffd rn: say 1.2.1α1 cmp 1.2.1.gamma
p6eval rakudo 0937c7: OUTPUT«===SORRY!===␤Confused␤at /tmp/qKBc6Or4S9:1␤»
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Number contains two decimal points (missing 'v' for version number?) at /tmp/NM_ny3rabW line 1:␤------> say 1.2⏏.1α1 cmp 1.2.1.gamma␤␤Whitespace is required between alphanumeric tokens at /tmp/NM_ny3rabW l…
diakopter TimToady: see above for STD weirdness 20:30
_edwin is this a bug or am I being stupid using "constant s"?
diakopter well, it's definitely a bug in STD
since it accepts say s[0]*]
colomon n: constant s = 1, 2; say s[0] 20:31
p6eval niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Missing assignment operator at /tmp/3YGHISuyYb line 1 (EOF):␤------> constant s = 1, 2; say s[0]⏏<EOL>␤␤Parse failed␤␤»
colomon n: constant @s = 1, 2; say @s[0]
[Coke] goes through and plays the URL game (type, in turn, each letter of the alphabet into the browser location bar and write down the URL it autocompletes to. I get one url with "perl6" - for "i")
p6eval niecza v22-13-g0d2a99e: OUTPUT«1␤»
diakopter n: constant s = 1, 2; say s[0]*=]
p6eval niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: Unable to resolve method subst in type Any␤ at /tmp/arKFEVDZx9 line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4212 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4213 (module-CORE @ 579) ␤ at /home/…
diakopter <snicker>
_edwin I expected that "constant s = ..." would lexically change the meaning of "s", but it does not seem to be so 20:32
sffd rn: say version,new(1.2.1α1) cmp version.new(1.2.1.gamma)
p6eval niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Number contains two decimal points (missing 'v' for version number?) at /tmp/1u7jyMR865 line 1:␤------> say version,new(1.2⏏.1α1) cmp version.new(1.2.1.gamma)␤␤Whitespace is required between alphanumeric t…
..rakudo 0937c7: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')' at line 2, near ".1\u03b11) cmp "␤»
_edwin guess I should really use some unicode characters 20:33
diakopter _edwin: nice find (the STD bug) 20:35
_edwin is there a bugtracker for STD?
.u italic s 20:36
phenny U+2146 DOUBLE-STRUCK ITALIC SMALL D (ⅆ)
sffd rn: say (Version.new("1.2.1α1") cmp Version.new("1.2.1β1")).perl
p6eval niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Version' used at line 1,1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /h…
..rakudo 0937c7: OUTPUT«Order::Increase␤»
_edwin .u "italic small s"
phenny _edwin: Sorry, your input is too long!
_edwin .u italic small s
phenny _edwin: Sorry, no results for 'italic small s'.
_edwin .u 1d460 20:38
phenny _edwin: Sorry, no results for '1d460'.
20:39 sffd left 20:42 kurahaupo joined
_edwin is there a nicer way to do the following that I am missing?: 20:48
nr: sub little-endian($w, $n, *@v) { (@v X+> ($w X* ^$n)) X% (2 ** $w) }; say little-endian(8, 4, 32766, 65535)
p6eval rakudo 0937c7, niecza v22-13-g0d2a99e: OUTPUT«254 127 0 0 255 255 0 0␤»
_edwin i.e. transform a sequence of Ints to the sequence of their little-endian reprs. of n w-bit words each 20:50
20:50 flightrecorder left 20:51 flightrecorder joined, Celelibi_ joined 20:53 Celelibi left
jnthn is back from NPW and Stockholm $dayjob task :) 21:00
21:00 birdwindupbird left 21:06 skids left 21:08 hash_table joined 21:10 rindolf left 21:13 joelwilsong left, MayDaniel left 21:19 cognominal left 21:22 swarley joined
swarley Is there a vim syntax file for NQP? 21:23
21:23 benabik left
PerlJam swarley: Just use the perl 6 vim syntax file. (NQP is a subset of full Perl 6 syntax) 21:23
swarley Oh, okay. Cool 21:24
21:26 cognominal joined
swarley oh also, does anyone know if this is still true 21:28
# RT #46213 : Because PGE doesn't yet know how to do longest token matching,
# order all tokens in reverse alpha order to avoid a parsing bug.
jnthn nqp: say('abcd' ~~ /abc|\w+/); 21:29
p6eval nqp: OUTPUT«abcd␤»
jnthn It does LTM proper now :)
swarley oh, wonderful 21:30
tadzik good evening 21:31
jnthn o/ tadzik 21:32
21:32 thou left 21:38 cognominal left
sorear swarley: PGE has not been used by #perl6 for over two years, so regardless of LTM the comment is wrong :p 21:38
21:45 cognominal joined
tadzik what's this thing about ssl and panda breakage? 21:47
sirrobert?
21:50 japhb_ joined
japhb_ jnthn, was there video of your NPW talk(s)? 21:50
I know you mentioned that one of them was 90% demo ...
jnthn japhb_: No, there was no videoing at NPW 21:51
japhb_ dang
jnthn japhb_: However, I submitted the same talk to LPW :)
So if it gets accepted there and they video... :)
japhb_ Heh. Where is LPW?
jnthn (No idea how likely that is...)
L = London :)
japhb_ ah, gotcha 21:52
.oO( Luxembourg )
tadzik . o O ( Lublin )
jnthn
.oO( Lolland )
21:53
tadzik LOL! Perl Workshop!
cognominal
.oO(Lyon) # for BooK
tadzik Lion Perl Workshop 21:54
neh, too tired to actually draw that
Legoland Perl Workshop? 21:55
. o O ( That escalated quickly )
japhb_ When did Rakudo (and NQP) start doing --gen-parrot and installing into ./install/... ? 21:56
My eldest starts a Lego Mindstorms class at her school this week. Makes me wonder if the embedded processor is powerful enough to program with a Perl. ;-) 21:57
jnthn japhb_: I think we've had something along those lines back to the previous generation of Rakudo 21:58
japhb_ is thinking of doing checkout/build/benchmark all released Rakudo's, and graphing the result. But I need to know if/when I need to start worrying about a different build/run process.
jnthn, you mean, all of b Rakudo had --gen-parrot and ./install/ as well?
jnthn japhb_: I'm not sure about "all of b" 22:00
japhb_: I know --gen-parrot existed well before nom
japhb_ k
Well, I can just start working my way back from present, and see when the process fails. :-)
dalek p: ffd25c9 | jnthn++ | src/QAST/Operations.nqp:
Don't allocate result reg for void calls.
22:02
pmichaud iirc, --gen-parrot has existed since the rakudo/parrot repo split
japhb_ pmichaud, ah, cool, thank you.
jnthn pmichaud: ooh, that long? :)
jnthn can believe it though 22:03
It'd make sense to have added it then
pmichaud jnthn: yes, I'm fairly sure that's when it was added.
it's easy enough to find out... :-)
pmichaud searches github
22:03 Celelibi_ is now known as Celelibi
pmichaud github.com/rakudo/rakudo/blob/2009...nfigure.pl 22:04
line 12
jnthn ah, 115282 and 115284 are fixed by the same patch :)
22:04 stopbit left
pmichaud (LEGO Mindstorms)++ 22:05
japhb_ Ah, 2009-02 is the earliest date-tagged Rakudo release, too, it looks like 22:06
jnthn r: say ([1, 2, 3] = 5)
p6eval rakudo 0937c7: OUTPUT«5␤»
jnthn r: say ([1, 2, 3] = 5).WHAT
p6eval rakudo 0937c7: OUTPUT«Int()␤»
pmichaud yes, Feb 2009 was the repo split
_edwin rosettacode.org/wiki/Continued_fraction#Perl_6
pmichaud prior versions of rakudo were still part of the parrot repo before that.
jnthn r: say ([1, 2, 3] = 5).VAR.name
p6eval rakudo 0937c7: OUTPUT«$x␤»
jnthn hmmmm :)
japhb_ pmichaud, Yeah, I'm going to see if I can parent volunteer for the classes. :-) 22:07
pmichaud our Moonbots and FIRST LEGO League teams are hard at work, here.
jnthn pmichaud: The above issue is down to:
sub circumfix:<[ ]>(*@elems) is rw { my $x = @elems.eager }
pmichaud: Any suggested replacement? :) 22:08
22:08 bluescreen10 left
pmichaud jnthn: checking. 22:08
japhb_ pmichaud, I think our team (4th grade) doesn't start until the spring here. 22:09
pmichaud jnthn: my best suggestion is to change $x to $anon
22:10 cognominal left
jnthn pmichaud: Well, the bug is that the scalar is assignable I think... 22:10
pmichaud I'm not sure that's a bug
22:10 popl joined
jnthn r: say ([1, 2, 3] = 5) # this... :) 22:11
p6eval rakudo 0937c7: OUTPUT«5␤»
jnthn OK
RT#115274, fwiw.
pmichaud yeah, I saw the ticket earlier in email.
I've been trying to decide if it's really a bug or not.
jnthn doesn't mind which way we go in it, tbh.
pmichaud I don't know what happens if we get rid of the 'is rw' there. 22:12
then it would at least be readonly
22:12 _edwin left
pmichaud but it's pretty clear that [...] create a scalar array, and that one is allowed to assign anything to scalars. 22:12
We *could* declare $x to be my Array $x = @elems.eager
then there would at least be a type mismatch. 22:13
japhb_ pmichaud, What languages are acceptable for Mindstorms programming for team play?
pmichaud, that type mismatch matches my naive expectation, FWIW
my Array $x = @elems.eager, I mean
22:13 benabik joined
pmichaud japhb_: depends on the contest. For FLL, only NXT-G and Labview are accepted, iirc 22:13
japhb_ pmichaud, thank you
pmichaud limiting the choice of language helps level the playing field a fair bit 22:14
japhb_ pmichaud, Keeping really advanced programmers from doing stuff that isn't sanely doable with NXT-G and/or Labview? 22:15
diakopter there aren't compilers?
pmichaud oh, NXT-G and Robolab are the languages for FLL
(just re-checked the rules)
japhb_ diakopter, if Wikipedia is to be believed, there are several compilers for C-like languages among others.
pmichaud diakopter: sure, there are lots of other languages for the mindstorms (more)
but I think part of the challenge is figuring out how to solve problems within certain constraints 22:16
(which is what many engineers actually have to do)
japhb_ Makes sense.
diakopter no I meant compilers to the allowed languages
22:16 aharoni left
japhb_ But then there's the Woz method: Separate the true constraints from the assumed constraints, and design to the former. :-) 22:17
22:17 Khisanth left, cognominal joined
pmichaud diakopter: the allowed languages are compilers... or I'm not understanding your question 22:17
japhb_ Isn't NXT-G a graphical programming environment? 22:18
jnthn pmichaud: I think diakopter means, writing the program in something else that is translated to one of the allowed languages.
pmichaud jnthn: oh, I suppose one could do that... although translating into a graphical programming language seems tough-ish.
jnthn pmichaud: Probably not quite in the spirit of things either ;)
pmichaud yes, NXT-G is graphical programming environment
jnthn: well, my stepson has already used NXT-G to create his own interpreter so that he can write programs text-based instead of graphical. :) 22:19
that's within the rules, afaict
jnthn ooh :D
r: say (1/2).numerator
p6eval rakudo 0937c7: OUTPUT«1␤»
jnthn r: say (1/2).numerator.HOW
p6eval rakudo 0937c7: OUTPUT«Null PMC access in get_bool()␤ in attributes at src/stage2/gen/nqp-mo.pm:1151␤ in method perl at src/gen/CORE.setting:804␤ in method gist at src/gen/CORE.setting:798␤ in sub say at src/gen/CORE.setting:7268␤ in block at /tmp/dwTPlD76aq:1␤␤»
jnthn ah...
pmichaud the only problem with the text-based interpreter approach is whether or not he'll be able to explain it properly to the judges so that they realize it's within the rules :)
japhb_ pmichaud, impressive! How old is your stepson? 22:20
pmichaud japhb_: he turns eleven this week.
japhb_ is doubly impressed.
dalek kudo/nom: 726d2fa | jnthn++ | src/Perl6/Actions.pm:
Fix empty statement in semilist handling.
japhb_ pmichaud, Oh, and happy birthday to him. :-) 22:21
pmichaud japhb_: thanks, will let him know that.
he's become quite an amazing programmer over the last year. 22:22
He started down the interpreter path a few months ago, and I gave him a hint or two about ways to improve what he was doing, and he responded with "Oh! That's like what you're doing when creating Perl 6." o_O 22:24
22:24 bruges_ left
jnthn :D 22:24
22:24 bruges joined
pmichaud phenny: tell TimToady BTW, one of the girls on our LEGO robotics team really likes Camelia as the mascot. :-) 22:25
phenny pmichaud: I'll pass that on when TimToady is around.
pmichaud (the Perl 6 mascot, that is)
sorear wonders how much perl 6 influence/awareness there is in the lego teams 22:27
jnthn echo -e 'my \\a = any set <1 2 3>; \n say 1 ~~ a' | perl6
What does -e mean?
Is that \n literal or actually a newline?
pmichaud on my system, "man echo" says it enables backslash escapes 22:28
japhb_ Same here
jnthn On mine it actually echos the -e :P
22:28 cognominal left
pmichaud pmichaud@kiwi:~$ echo -e 'my \\a = any set <1 2 3>; \n say 1 ~~ a' 22:28
my \a = any set <1 2 3>; say 1 ~~ a
...and there's a newline after the semi that irssi chomped when I pasted. 22:29
jnthn pmichaud: Does it segv if you pipe it into Rakudo?
pmichaud I don't seem to have a built copy of rakudo handy.
oh, wait, yes I do.
japhb_ jnthn, yes it does
pmichaud yes, it segfaults with 2012.09 for me. 22:30
japhb_ > my \a = any set <1 2 3>;
jnthn wat!
japhb_ any(1, 2, 3)
> say 1 ~~ a
Segmentation fault
pmichaud I get what japhb_++ just posted
japhb_ (That's what I see after doing the pipe)
jnthn And without the \n it's fine? :S
japhb_ jnthn, yup, True
(True is the response) 22:31
pmichaud yes, without the \n it's fine... but that's because it goes in as a single line instead of spread out across two input lines
jnthn oh...it's simulating the REPL...
pmichaud i.e., it becomes one REPL command instead of two.
japhb_ indeed
pmichaud I get the segfault if I enter the commands manually
jnthn yeah, I was putting it in a file but...seems it needs the REPL to trigger it.
pmichaud I suspect it has something to do with lexpads. 22:32
or the REPL's handling of lexpads
jnthn yeah
pmichaud anyway, it's a REPL-related thing, doesn't appear to have anything to do with the pipe
jnthn That needs diddling at some point soonish anyway...
22:32 Chillance left, skids joined
jnthn ...given that once I get nqpattr killed, the thing it currently relies on will be the last thing left in src/cheats in NQP 22:33
(and thus the last .pir file, excluding src/stage0/
)
japhb_ yay!
dalek p: 5db85ab | jnthn++ | src/how/NQPClassHOW.pm:
Add some default values.

There's no NQPMu yet in the MOP classes, so we need to be careful about having these.
22:34
22:34 Khisanth joined
dalek kudo/nom: 7ddeceb | jnthn++ | tools/build/NQP_REVISION:
Get NQP MOP .^attributes fix.
22:35
jnthn started sketching out JVM porting bits in recent days :) 22:36
22:37 PacoAir left
japhb_ jnthn, if you have the mental space for it, a sketch of *abstract* porting requirements would be really valuable. By which I mean, "things NQP and Rakudo need from an underlying VM of *any* sort". Which would help a lot if, say, one wanted to write a VM specifically to run the Rakudo stack .... 22:39
jnthn Well, in many senses it's conveniences rather than absolute needs. 22:49
22:50 bruges left
jnthn It's *nice* if you have coroutine support, but it's *possible* to do transformations to do it on a VM that doesn't provide it natively, for example. 22:50
22:50 bruges joined
japhb_ jnthn, Sure, but there is "convenience" and there's "without it we're falling back to Turing-completeness", and a big gray range between them. :-) 22:50
jnthn japhb_: Yeah, true. 22:51
22:55 am0c joined 23:00 am0c left
jnthn 'night o/ 23:07
japhb_ o/ 23:09
sorear o/
23:12 fridim_ joined 23:20 arlinius joined 23:25 swarley left 23:30 benabik left 23:40 supernovus joined
supernovus Not very exciting, but may be interesting to anyone planning to use Perl 6 for web applications: github.com/supernovus/web-benchmarks 23:48
23:51 benabik joined
japhb_ supernovus++ # Yay, benchmarks! 23:55
23:57 cognominal joined
supernovus I am planning to add a whole bunch more, and upping the number of requests per test from 25 to say 100. 23:58