»ö« 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.
flussence skids: a long time ago I mentioned an idea like that as a way to use the sprintf grammar in the spec to do an automated test coverage check. I don't think it ever went anywhere though... 00:06
phenny flussence: 16 May 22:03Z <not_gerd> tell flussence could you please verify that NQP still builds on the machine that got you gist.github.com/2050618
dalek ast: 781dc1f | (Solomon Foster)++ | S (2 files):
Change niecza fudging.
00:08
flussence phenny: tell not_gerd I don't even remember what that error was from... but I've built rakudo on my desktop and netbook recently without problems so I'll assume it's fixed. 00:09
phenny flussence: I'll pass that on when not_gerd is around.
dalek ast: 291ac54 | (Solomon Foster)++ | S32-num/base.t:
Refudge for niecza.
00:11
colomon n: say "f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ « <ident> / 00:21
p6eval niecza v17-4-ge5b869e: OUTPUT«#<match from(5) to(8) text(foo) pos([].list) named({"ident" => #<match from(5) to(8) text(foo) pos([].list) named({}.hash)>}.hash)>␤»
colomon r: say "f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ « <ident> / 00:22
p6eval rakudo 7165ff: OUTPUT«=> <foo>␤ ident => <foo>␤␤»
colomon n: say ~("f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ « <ident> /)
p6eval niecza v17-4-ge5b869e: OUTPUT«foo␤»
colomon n: say ~("f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ <ident> /) 00:24
p6eval niecza v17-4-ge5b869e: OUTPUT«o␤»
colomon n: say ~("f fo foo fooo foooo fooooo foooooo" ~~ m:1st/ <ident> /)
p6eval niecza v17-4-ge5b869e: OUTPUT«f␤» 00:25
colomon n: say ~("f fo foo fooo foooo fooooo foooooo" ~~ m:2nd/ <ident> /)
p6eval niecza v17-4-ge5b869e: OUTPUT«fo␤»
colomon n: say ~("f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ <ident> /)
p6eval niecza v17-4-ge5b869e: OUTPUT«o␤»
colomon r: say ~("f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ <ident> /) 00:26
p6eval rakudo 7165ff: OUTPUT«foo␤»
skids gist.github.com/2722431 # <--- probably not the prettiest concept ever floated for regen-from-grammar 00:29
.oO(Of course, the whole separate actions class in .parse is a bit of a DRY violation to begin with, but probably worth the side-benefits.)
00:32
dalek ast: e2f3f78 | (Solomon Foster)++ | S (2 files):
Refudge for niecza.
01:15
ecza: eccf8f5 | (Solomon Foster)++ | lib/CORE.setting:
Import moritz++'s substr-rw and improve it a tad.
01:17
ecza: ab55638 | (Solomon Foster)++ | t/spectest.data:
Turn on S32-str/substr-rw.t.
ecza: fb910e4 | (Solomon Foster)++ | lib/CORE.setting:
Reimplement substr-rw as an exact clone of the existing substr. The existing substr should change to not be an lvalue, but I have no idea how to do it.
sorear good * #perl6 01:44
colomon o/ 01:50
So, how do we remove the lvalueness from substr? That code is completely over my head.
sorear colomon: I guess it would have to start by making a new substr_ro C# entry point, and copying the substr logic but not the lvalue logic 02:20
colomon sorear: how does it work to how "is Niecza::builtin" *and* a body for the sub? 02:21
sorear colomon: the body is used in cases where Niecza::builtin can't be - wrong argument count, or not a direct call 02:22
colomon sorear: so in this case, when there are not three arguments? 02:24
sorear colomon: yes 02:29
colomon so o2.Does(Kernel.CodeMO) is $start ~~ Code in p6? 02:32
and all the actual "magic" happens in SubstrLValue?
sorear yes and yes 02:33
colomon this is starting to make sense to me. :) 02:35
I will take a stab at this and see if I can get it to work.
colomon sorear: if I have a string which might be null, how do I return it as a Variable? 02:49
MakeStr?
sorear I think so 02:51
Yeah 02:52
colomon niecza> substr("This is a test", 2, 5) = "10" 02:55
assigning to readonly value
does that look like a correct result?
I've now got all the substr.t tests passing but four 03:02
sorear reasonable to me? 03:05
colomon yes, that's what I was asking.
sorear: MakeStr(null) doesn't seem to return Str()
and Kernel.StrMO.typeObject is a P6any rather than a Variable. 03:06
hints?
n: my $a = Str; say $a.chars
p6eval niecza v17-8-gfb910e4: OUTPUT«0␤»
colomon If I do that with a null returned from my current substr_ro, I get 03:07
System.NullReferenceException: Object reference not set to an instance of an object
at Builtins.chars (Niecza.Variable v) [0x00000] in <filename unknown>:0
sorear huh! 03:08
try StrMO.typeVar
colomon Kernel.StrMO.typeVar ? 03:09
lib/Builtins.cs(719,63): warning CS0414: The private field `Builtins.substr_ro3_d' is assigned but its value is never used 03:10
?
still, with Kernel.StrMO.typeVar, all substr.t tests that pass before pass again.
and the substr-rw ones pass as well. 03:11
I'm spectesting now, but I'm going to go to bed. In the morning I'll try to refactor (lots of duplicated code) and then push. 03:13
afk # sleep 03:14
tadzik good morning
sorear phenny: tell colomon The private field warning means there was a problem with copy-pasting... check the HandleSpecial3 call and make sure tghe arguments are right 03:20
phenny sorear: I'll pass that on when colomon is around.
sisar tadzik: panda build fail: gist.github.com/2723154 . 04:33
The error at line no. 9 doesn't even mention the file name.
I just built rakudo before trying to build panda. 04:34
sisar afk 04:49
tadzik oh noes 05:14
also: wifi on the bus \o/
hmm hmm, that might be JSON fail actually 05:15
I don't think I do any regexes in panda itself
or maybe not
sisar: it's no one's fault, you just need to recompile panda and its dependencies 05:21
sisar recompile how?
not sh ./bootstrap.sh ? 05:22
sisar tadzik: probably it is refering to ext/JSON/Tiny/Grammar.pm, line 6 ? 05:26
yup, that's it. That line is causing the problem. 05:28
sisar r: say "Oh shark!"; 05:34
sisar p6eval wake up 05:35
moritz \o 05:44
uhm, I can't reach any of the 'feather' server (p6eval, perl6.org, perlcabal.org and all that fun) 05:45
sisar moritz: aye 05:47
moritz: put just this line in a file "rule pairlist { [ <pair> ** [ \, ] ]? }" , and run it. The error which it throws, doe not report the filename. 05:49
moritz sisar: oh. That's bad 05:50
sisar: fwiw the problem is that this syntax has been removed
sisar recently ? 05:51
moritz now should be written as <pair>* % \,
moritz a few months ago from the specs, and two days ago from Rakudo 05:51
moritz must fix JSON::Tiny
sisar ++moritz++
moritz oh, looks like it's already fixed there 05:52
though the fix is LTA
Juerd O hai. Feather's underlying physical box had a hardware crash. Please test if your data is intact asap; we have backups if necessary. 06:07
moritz r: say so 'a,b' ~~ /:s <alpha>* % \, / 06:40
p6eval rakudo 7165ff: OUTPUT«True␤»
moritz r: say so 'a, b' ~~ /:s <alpha>* % \, /
p6eval rakudo 7165ff: OUTPUT«True␤»
moritz r: say so 'a , b' ~~ /:s <alpha>* % \, /
p6eval rakudo 7165ff: OUTPUT«True␤»
adu hi moritz 06:43
moritz \o adu
somehow, in JSON::Tiny::Grammar, % \, and % [ \, ] behave differently 06:46
sorear o/ moritz
moritz meh, fallout 06:50
Term::ANSIColor doesn't compile 06:51
and when I fix it, Grammar::Tracer cannot be found
ah, because I misspelled it :/ 06:52
and now Grammar::Tracer errors out while tracing :/ 06:53
sisar * moritz anticipates a big fallout <--- well, you predicted it yesterday :-) 07:02
(though in a different context)
masak morning, #perl6 07:56
jnthn o/ masak 07:57
masak oh! feather had a crash. that's why I couldn't find my screen session this morning ;) 07:58
Juerd++ # all the work he puts in behind the scenes 08:00
tadzik sisar: yeah, it seems to be ext's fault indeed 08:04
sorear "behind the screens" 08:05
o/ masak
jnthn moritz: Term::ANSIColor - what caused that to break? 08:06
jnthn didn't think it used regexes, let alone **
tadzik it broke? Gah 08:07
works here
jnthn Same here 08:10
Oh, moritz said didn't compile...wonder if he meant pre-compile. But that also works here.
masak sorear: \o 08:15
masak sorear: one of the non-contestants in p6cc notes that Niecza barfs on unrecognized named arguments in methods. why is that? 08:16
walk & 08:17
sorear masak: NYI, supported by me not minding the status quo very mucgh 08:24
I misspell named argument names all the time
sleep&
tadzik again I find myself reimplementing HTTP::Request/HTTP::Response for yet another module 09:44
frettled ISAGN. 09:48
masak sorear: it makes zbiciak-4 unrunnable on Niecza. 09:50
tadzik p6: rx{^/NestedController/$}; say "alive" 09:55
p6eval niecza v17-8-gfb910e4: OUTPUT«===SORRY!===␤␤Unrecognized regex metacharacter / (must be quoted to match literally) at /tmp/aRYvaoaiCv line 1:␤------> rx{^/⏏NestedController/$}; say "alive"␤␤Couldn't find terminator } at /tmp/aRYvaoaiCv line 1:␤------…
..rakudo 7165ff: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<{ }>, couldn't find final '}' at line 2␤»
..pugs: OUTPUT«alive␤»
tadzik huh, we have no like() in Test.pm? 09:57
daxim sacrilege!
masak tadzik: why not just ok() with an appropriate regex? 10:01
tadzik masak: that's how I implemented like :)
I'm converting WebNano tests to Perl 6
p6: sub POST($a) { say $a }; POST "blah" 10:02
p6eval pugs: OUTPUT«blah␤»
..rakudo 7165ff: ( no output )
..niecza v17-8-gfb910e4: OUTPUT«Potential difficulties:␤ &POST is declared but not used at /tmp/2yI6hVHfUS line 1:␤------> sub POST⏏($a) { say $a }; POST "blah"␤␤»
tadzik it's probably not the best idea to name Perl 6 subroutines with capitals 10:03
jnthn p6: sub POST($a) { say $a }; POST("blah") 10:43
p6eval pugs, rakudo 7165ff, niecza v17-8-gfb910e4: OUTPUT«blah␤»
moritz jnthn: never mind, my copy of Term::ANSIColor was out of date 11:11
masak tadzik: not if they're "ordinary" subroutines, then it sounds like a bad idea from a design perspective. 11:18
tadzik masak: I was replicating HTTP::Request::Common behaviour 11:21
masak I see. 11:23
masak I'd make them lowercase. 11:23
au p6: sub Post($a) { say $a }; Post ".../" 11:26
p6eval pugs, rakudo 7165ff, niecza v17-8-gfb910e4: OUTPUT«.../␤»
moritz r: gist.github.com/2724830 11:42
p6eval rakudo 7165ff: OUTPUT«Unable to parse array, couldn't find final ']'␤ in any FAILGOAL at src/stage2/QRegex.nqp:1205␤ in regex array at /tmp/YzpRFaoGPE:9␤ in regex TOP at /tmp/YzpRFaoGPE:5␤ in method parse at src/gen/CORE.setting:9253␤ in <anon> at /tmp/YzpRFaoGPE:39␤ in block <ano…
moritz n: gist.github.com/2724830 11:42
p6eval niecza v17-8-gfb910e4: OUTPUT«True␤»
moritz the really odd thing is, if I change % \, in arraylist to % [ \, ] then it works
jnthn moritz: is it a rule or a token? 11:43
moritz jnthn: a rule 11:44
jnthn moritz: Does [\,] rather than [ \, ] make a difference?
moritz jnthn: aye 11:46
fails with \,
moritz but I thought I tested it: 11:47
r: say so 'a , b', ~~ /:s <alpha>+ % \,/
p6eval rakudo 7165ff: OUTPUT«True_block1011␤»
moritz r: say so 'a , b' ~~ /:s <alpha>+ % \,/
p6eval rakudo 7165ff: OUTPUT«True␤»
moritz oh
r: say so 'a , b' ~~ /:s ^ <alpha>+ % \, $/
p6eval rakudo 7165ff: OUTPUT«False␤»
moritz my tests were RONG
oh, S05 says that % does not turn whistspace into <.ws> 11:48
tadzik masak: well, get() and post() may collide with Bailador 11:51
moritz use Get and Post 11:55
flussence
.oO( or define things in such a way you can write "HTTP/1.1 GET 'foo.com/bar'" right in the code :)
12:07
arnsholt flussence: That'd be a slang, I suspect 12:16
[Coke] huh. starting a fresh screen takes advantage of some setup I did weeks ago so now I can share my ssh agent inside my screen. no more password prompts on git activity, yay ;) 12:37
sergot hi o/ 13:08
masak sergocie! \o/ 13:14
is callsame a term? 13:15
jnthn No
masak r: class A { method Str { "A" } }; class B is A { method Str { callsame ~ " with additions" } }; say B.new 13:15
p6eval rakudo ce2fa3: OUTPUT«B.new()␤»
masak hm. 13:16
r: class A { method gist { "A" } }; class B is A { method gist { callsame ~ " with additions" } }; say B.new
p6eval rakudo ce2fa3: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in block <anon> at src/gen/CORE.setting:420␤ in method gist at /tmp/ZXH0o6MFX3:1␤ in sub say at src/gen/CORE.setting:6799␤ in block <anon> at /tmp/ZXH0o6MFX3:1␤␤»
masak right. it's not.
r: class A { method gist { "A" } }; class B is A { method gist { callsame() ~ " with additions" } }; say B.new
p6eval rakudo ce2fa3: OUTPUT«A with additions␤»
jnthn What have we here... 13:17
!issues zavolaj 13:18
issuebot6 zavolaj currently has 6 open issues
jnthn !issues zavolaj search segfault
issuebot6 3: segfault with arrow-return syntax on native subs (by flussence)
jnthn !issues zavolaj search flussence
issuebot6 3: segfault with arrow-return syntax on native subs (by flussence)
4: pir::null__P hack no longer works (by flussence)
masak \o/
jnthn++
jnthn !issues zavolaj 2
issuebot6 2: Add a thing to fall back on the perl6 code when loading the native function fails (by flussence) OPEN
jnthn Timbus++, moritz++, ihrd++ and cosimo++ for modules that made this possible :) 13:19
Timbus the who now 13:19
jnthn Timbus: You wrote Net::IRC::Bot, no? 13:20
Timbus yase
jnthn Well. I maked soemthin' with it ;)
Timbus excellent
oh. oh the bot 13:21
rad
Timbus still needs async IO before I try adding the twitter module 13:21
i also take it you worked around the .* slot/dispatch handling thingo 13:22
which YOU BROKE >:[
masak :[ 13:23
I pang TimToady about that. I presume he saw it and that it's now brewing in the back of his brane.
Timbus well.. i guess method dispatch and event dispatch arent the same thing in the end
except in smalltalk 13:24
maybe i should remake the bot to use a custom dispatch. perldancer style 13:25
jnthn [Coke]: I'm not sure it repsonds to privmsg properly... 13:26
I hacked that up in about 30-45 minutes... Perl 6 FTW. :) 13:27
masak \o/ 13:34
colomon perl6: say '2+3 ab2' ~~ /<.ident>/ 13:52
phenny colomon: 03:20Z <sorear> tell colomon The private field warning means there was a problem with copy-pasting... check the HandleSpecial3 call and make sure tghe arguments are right
p6eval rakudo ce2fa3: OUTPUT«=> <ab2>␤␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..niecza v17-8-gfb910e4: OUTPUT«#<match from(4) to(7) text(ab2) pos([].list) named({}.hash)>␤»
colomon wish I'd gotten that message from phenny *before* my last commit & push. :( 13:54
mikec_ haha 13:55
Woodi q 14:09
felher 'enum Sex is export <male female>' doesn't export the enum in nom at the moment, does it? (Maybe i just got something wrong?)
masak doesn't the 'is export' go after the list of values?
jnthn No, I tink it goes there...and I thought it exported too... 14:10
felher hm, seems like it exports Sex but not 'male' or 'female'
jnthn r: module Foo { enum Sex is export <NoThanks YesPlease>; }; import Foo; say Sex::.keys
p6eval rakudo ce2fa3: OUTPUT«NoThanks YesPlease␤»
jnthn felher: Ah, yes. 14:11
Wonder if the spec says it should export the values too...
You can get at them fully qualified, anyways.
felher jnthn: yeah, i think i'll just go with their full name for now :) thnx 14:13
flussence ooh, does that issue bot notify of status changes? 14:25
jnthn flussence: Not yet 14:27
flussence I can close that issue 4 as fixed if you need to test it :) 14:28
jnthn flussence: It's doing as much as it's going to for now..I built it for a small demo for a talk 14:29
And am flying to give that talk quite soon :)
masak too! :) 14:30
Woodi hmm, PERL6LIB=lib perl6 `ls t/*` do not work as expected :) execute only first test... perl6 gets just one script file or some sh trick can be used ?
masak does perl (5) run all files? 14:31
Woodi no idea...
masak then probably perl6 shoukd too.
Woodi that does not matter :)
masak please try.
Woodi k
masak it does matter.
masak something tells me that the things after the first file end up in @ARGV 14:32
jnthn yeah, they do
(In Rakudo today, that is) 14:33
Woodi file is in @ARGV probably too
Perl5 detects t/00-... is Perl6 code and returned error :)
masak Woodi: I meant test whether you can run several files in the manner you request. 14:34
but I don't think you can. they end up in @ARGV
frettled yup
in Perl 5 as well
masak Perl 5 is the one with @ARGV :P 14:35
flight &
flussence is there *any* language that runs multiple files that way?
Woodi probably some switch is needed... I barely remeber somewhere something like this...
maybe not in Perl but maybe sed 14:36
flussence you could just do "PERL6LIB=lib prove -e perl6"...
frettled flussence: I can't think of any at the moment, most languages assume that you would like to pass some arguments even if the first element is a program.
s/some /some more /
that was a lousy explanation
Woodi man sed: sed [-aEnru] command [file ...] 14:37
nvm
flussence: prove for now is advanced topic for me :) but looks it is time I should look there 14:38
Woodi `ls ...` works with prove 14:40
frettled Assuming that you're using bash or sh, using `ls ...` is a lousy way of doing it. 14:42
jnthn -> airport, o/
frettled Woodi: compare the output of: echo `ls t/*` with echo t/* 14:43
Woodi echo is advanced sysadmin trick in case /bin disappear :)
frettled no
The "echo" is there as an advanced programming trick to show you that the output of: ls t/* and the glob t* 14:44
t/* are the same
moritz thing is, it's the shell that expands the t/*
so perl doesn't even see it
frettled Feel free to do: ls `ls t/*` instead
moritz it just sees the list of files
frettled yup
or to be more accurate, perl just sees a list of arguments
space-separated
Woodi I wanted just list of files 14:45
frettled Then avoid the useless use of "ls" and backticks.
The shell will expand the asterisk for you.
(which is what it does for ls anyway) 14:46
Woodi ah, now understand, yes
frettled If you want perl to run once for each file in t/*, you can do it like this (/bin/sh compatible code follows): for f in t/*; do perl $f; done 14:46
Woodi but I wanted to not making loop or xargs things 14:47
moritz well, you can't expect mind reading from your computer
it operates by rules
ok, you *can* expect mind reading, but you'll be disappointed 14:48
frettled You can add a small pause and debugging output if you like (I like that): for f in t/*; do date +"%F %T $f start"; perl $f; date +"%F %T $f end, sleeping 2 seconds"; sleep 2; done
Woodi work nice :) 14:51
Woodi anyone have problems with ufo ? for me make 'don't know how to make blib/lib/...' and gmake how to do 'gmake test'. but maybe it is OpenBSD specific... 15:02
[Coke] I see that ufo has lots of `stuff` in it, so it doesn't surprise me if something isn't quite right on openbsd vs. linux. 15:33
can you give a specific example of what's not working?
sorear good * #perl6 15:43
felher Hm, i can do '$!priv-attribute = 3' in a BUILD-submethod. How do i initalize a public attribute? '$.pub-attribute = 3' doesn't seem to work :) 15:44
o/
sisar while running spectest, i get "t/spec/S03-operators/overflow.rakudo ......... Failed 28/98 subtests". 15:45
sorear waves to colomon 15:46
colomon \o
sorear: fixed my bug 15:47
sorear felher: Exact same way. 15:50
felher: $!foo accesses attributes, period. Doesn't matter if they are public or private. 15:51
colomon: yay
felher sorear: ah, makes sense. Big thnx :) 15:53
colomon sorear: I do have a potential bug for you, from going over the tests yesterday
Woodi [Coke]: gmake test: env PERL6LIB=/blib/lib:/lib: perl6 --target=pir... and gmake test: Could not find Simple::Redis in any of: /blib/lib, /lib,... make just 'don't know...' 15:54
be later
colomon n: say "f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ <ident> /
p6eval niecza v17-11-g81d7b36: OUTPUT«#<match from(3) to(4) text(o) pos([].list) named({"ident" => #<match from(3) to(4) text(o) pos([].list) named({}.hash)>}.hash)>␤»
colomon n: say ~("f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ <ident> /)
p6eval niecza v17-11-g81d7b36: OUTPUT«o␤»
colomon r: say ~("f fo foo fooo foooo fooooo foooooo" ~~ m:3rd/ <ident> /) 15:55
p6eval rakudo ce2fa3: OUTPUT«foo␤»
colomon sorear: I'm pretty sure rakudo's right on this one.
sorear heh heh heh. 16:07
moritz p6: say ('f fo foo fooo' ~~ m:rd(3) / \w+ /).Str 16:10
p6eval rakudo ce2fa3: OUTPUT«foo␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..niecza v17-11-g81d7b36: OUTPUT«o␤»
moritz p6: say ('f fo foo fooo' ~~ m:rd(3) / \w+: /).Str 16:11
p6eval rakudo ce2fa3: OUTPUT«foo␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..niecza v17-11-g81d7b36: OUTPUT«o␤»
moritz does niecza backtrack two times, and take the second
moritz erm 16:11
colomon moritz: I played around with this a bunch yesterday. Niecza gives f as 1st match, fo as second match, and o as the third match
moritz and take the third result as :3rd? 16:12
sorear yes, I'm fixing that now
colomon like it's starting the next match from from+1 rather than to+1
sorear++
sorear exactly
actually I already fixed it, I'm just checking the build before pushing
moritz it should only do that if the previous match was zero-width
sorear ENODALEK 16:22
moritz ah, feather had some down time 16:22
how does one restart dalek?
sorear I'm checking in 16:23
sisar who has access to phenny ?
sorear is feather2 currently running a screen?
moritz yes, one for hugme 16:24
under my user
sorear how is p6eval running?
moritz in a screen on feather3
sorear oops, I meant f3 16:25
moritz (user p6eval)
sorear moritz: do you remember anything about how perlbrew was set up on f3? 16:27
[Coke] Woodi: how did you get to that step? ufo doesn't have a makefile, right? I presume you're running ufo somewhere else? 16:29
moritz sorear: no 16:31
except "by me"
sorear dalek should be operational now 16:32
p6: say ('f fo foo fooo' ~~ m:rd(3) / \w+ /).Str
p6eval rakudo ce2fa3: OUTPUT«foo␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..niecza v17-11-g81d7b36: OUTPUT«o␤»
sorear ENOTYETREBUILT
evalbot rebuild niecza 16:33
p6eval OK (started asynchronously)
TimToady masak: yes, I'm thinking about in my hindbrane, but must $job today, so it'll have to stay there. I am thinking that assuming *%_ is the wrong solution to the right problem though. We're missing a declarative way to talk about a vertical slice of methods of the same name, and it's not clear how to make a peg for that to hang stuff on yet. 16:38
afk & 16:39
sorear TimToady: is that maybe actually for me? 16:51
gfldex r: gist.github.com/2726387 16:55
p6eval rakudo ce2fa3: OUTPUT«False␤»
gfldex shoud that work?
moritz gfldex: you're defining a method outside of any class 16:56
gfldex well, yes and should that work? 16:57
moritz no.
gfldex can i mixin a method into an enum?
moritz however should the dispatcher find it?
that might work, dunno 16:58
gfldex what would be the syntax for that?
moritz r: enum A <b c>; A does role { method foo { 'bar' } }; say A.foo 17:02
p6eval rakudo ce2fa3: OUTPUT«Cannot use 'does' operator with a type object.␤ in sub infix:<does> at src/gen/CORE.setting:10808␤ in block <anon> at /tmp/QjRsekWzhe:1␤␤»
moritz ok, you can't.
r: enum A <b c>; A.^add_method('foo', sub ($) { "bar" }); A.^compose; say A.foo 17:03
p6eval rakudo ce2fa3: OUTPUT«bar␤»
moritz you can always go through the MOP though :-)
"cheating is technique" -- Quirinius Quirrel, according to E.Y. 17:04
adu MOP?
gfldex meta object protocol 17:05
moritz Meta Object Protocol
adu oh I thought that was a lisp thing
moritz yes, and we steal everything worth stealing :-)
adu then you should steal Monads from Haskell 17:06
or is that what ==> and <== are?
moritz not really 17:06
adu are they closer to map? 17:07
moritz adu: so far I haven't heard a single convincing argument what benefit monads bring in a language that can do IO in a sane way without them
well, in their current implementation they are closer to map
but they are meant to be object pipes
adu moritz: the best argument I've heard is being able to overload ';'
moritz much like the | pipe in UNIX, but with objects instead of texts (think of powershell...) 17:08
adu: and what's the use case for that?
adu moritz: from my understanding, <==, ==> are basically do/monad syntax only for the List monad 17:09
and I must say I understand Haskell better than <==, ==>
moritz: well, one large class of use case for Monads is parsers, which are not rare in the perl world 17:10
The most common monads in the Haskell world are: IO, List, Maybe, Either, State, and GenParser 17:11
sorear the only think I've used monads for in Perl was symbolic calculation of probability distributions
TimToady <semilist> in the grammar is more or less a list of computations without internal context, so whatever interprets the semilist can make it as monadic as it likes 17:12
adu but anyways, adding monads to Perl6 would be easy even if they aren't builtin, just define a "role Monad" and define infix operators for everything else
adu so I suppose Perl6 wins in that respect 17:13
moritz: but the Maybe and Either monads are the simplest to understand, and the hardest to explain how useful they are. If you use them in your code, then almost all your "if" statements disappear, because they've moved inside Maybe and Either methods 17:16
sorear adu, you're coming at this with too much of a Haskell perspective 17:17
adu agreed
sorear we do a lot of things differently here. semipredicates are one of them.
adu how to I Perl6ify my brain?
adu or more importantly, should I? 17:20
sorear it'll happen on its own
adu I think I need more time working with the non-grammar aspects 17:22
so far I've only written grammars 17:23
sorear: did you see the library I wrote?
sorear no 17:27
adu github.com/andydude/p6-xml 17:28
[Coke] how to use grep with the feed operator? 17:33
r: my @a = <that is what he said>; say grep {/a/}, @a;
p6eval rakudo ce2fa3: OUTPUT«that what said␤»
[Coke] r: my @a = <that is what he said>; say grep {/a/} <== @a;
p6eval rakudo ce2fa3: OUTPUT«that is what he said␤»
moritz adu: thing is, we can do parsing, IO and lists fine without IOs 17:34
erm, without Monads
[Coke] r: my @a = <that is what he said>; say @a ==> grep {/a/}; 17:39
p6eval rakudo ce2fa3: OUTPUT«that is what he said␤»
diakopter eh
moritz r: my @a = <that is what he said>; say @a ==> grep(/a/); 17:40
p6eval rakudo ce2fa3: OUTPUT«that is what he said␤»
moritz r: my @a = <that is what he said>; @a ==> grep(/a/) ==> say();
p6eval rakudo ce2fa3: OUTPUT«that what said␤»
diakopter r: my @a = <that is what he said>; @a ==> grep(/a/) ==> .say(); 17:41
p6eval rakudo ce2fa3: OUTPUT«===SORRY!===␤Sorry, do not know how to handle this case of a feed operator yet. at line 1, near " .say();"␤»
[Coke] r: my @a = <that is what he said>; say ( @a ==> grep {/a/} ); 17:53
p6eval rakudo ce2fa3: OUTPUT«that what said␤»
[Coke] ah. precedence.
Danke.
dalek kudo/nom: 3b12853 | moritz++ | / (3 files):
first try to move some functionality from Rat to the Rational role. Rather naive.
18:08
rakudo/nom: 7e239ac | moritz++ | / (2 files):
rakudo/nom: introduce Uint64, which we need for Rat (to distinguish it from FatRat)
moritz dalek-- swallowed the nice commits by kboga++ 18:09
dalek ast: b180875 | moritz++ | S03-operators/autoincrement (2 files):
rakudo unfudges, kboga++
18:16
moritz r: class A { has $.x = 0; method succ { A.new(:x($!x + 1)) } }; say (A.new ... *)[^5].perl 18:22
p6eval rakudo 45679a: OUTPUT«(A.new(x => 0), A.new(x => 1), A.new(x => 2), A.new(x => 3), A.new(x => 4))␤»
adu colomon: hey 18:39
colomon adu: yes?
adu colomon: what did you mean by ""when" arg assumes more things will become obsolete after Perl 6 comes out"? 18:40
moritz r: say $*PERL<compiler><name>
p6eval rakudo 45679a: OUTPUT«rakudo␤»
moritz r: say $*PERL<compiler><version>
p6eval rakudo 45679a: OUTPUT«Any()␤»
moritz r: say $*PERL<compiler>.perl
p6eval rakudo 45679a: OUTPUT«{"name" => "rakudo", "ver" => "2012.05-12-g45679ab", "release-number" => "", "build-date" => "2012-05-18T18:09:24Z", "codename" => ""}␤»
colomon adu: context? I don't remember saying that, I fear. 18:41
adu github.com/rakudo/rakudo/commit/76...Grammar.pm 18:42
colomon oh, two years ago!
that makes me feel better
diakopter that sounds like it was in STD.pm at the time 18:43
colomon right
It's probably TimToady++'s originally
adu oh ok
diakopter it might be referring to the 6.0.0 feature freeze 18:44
colomon I believe the point is that the obs method will continue to be useful even past Perl 6's initial "release". So you might set $when to be " in Perl 6.1" or something like that. 18:45
adu that makes sense 18:46
just wondering 18:47
so does "6.0.0 feature freeze" refer to the synposes?
diakopter some subset of the synopses that represents some consensus of the active/major implementations 18:48
[Coke] at some point, the syn will be tagged with versions, I imagine. we're still on release-candidate-0, I think. ;)
spec+roast. 18:49
moritz phenny: tell tadzik that panda's copy of JSON::Tiny needs the same fixes as upstream JSON::Tiny 18:50
phenny moritz: I'll pass that on when tadzik is around.
moritz [Coke]: before RC0 even :-)
Woodi [Coke]: I think make in OpenBSD is BSD make :) just checked on Linux and ufo works great. here parrot and rakudo want me to use gmake for compilation. I do for modules: ufo && gmake && gmake test and that wants /blib and /lib 18:51
looks ${PWD} in P6LIB = $(PWD)/$(BLIB)/lib:$(PWD)/lib:$(PERL6LIB) do not work... 18:53
adu macosx includes 3 GNU makes (make, gmake, gnumake) for scripts that think it's BSD make 18:54
Woodi PERL6LIB=`pwd`/blib/lib... is not ideal but work 19:01
Woodi ...but using precompiled modules coredumpes :) 19:04
rindolf Hi all. 19:05
Woodi o/
moritz p6: say 'a', 'c' ... 'g' 19:11
p6eval pugs: OUTPUT«*** ␤ Unexpected "'"␤ expecting operator, ":" or ","␤ at /tmp/VnwmrSEFXF line 1, column 20␤»
..rakudo 45679a, niecza v17-12-g8b5d5e7: OUTPUT«a c d e f g␤» 19:12
[Coke] does anyone else know what Woodi is trying to do? I apparently missed some early discussion.
moritz trying rakudo and modules on OpenBSD, it seems 19:13
[Coke] moritz: ... ok that is also vague. ah well. I can't even try the commands on another box if I don't know what he's doing. 19:14
moritz p6: say (1, 'a' ... *)[^5] 19:21
p6eval pugs: OUTPUT«*** unknown parse error␤ at /tmp/Sx8Tg6sgb7 line 1, column 19␤»
..rakudo 45679a: OUTPUT«1 a -1 -2 -3␤»
..niecza v17-12-g8b5d5e7: OUTPUT«1 a b c d␤»
moritz p6: say ('a', 1 ... *)[^5]
p6eval pugs: OUTPUT«*** unknown parse error␤ at /tmp/TEVuL5MEHD line 1, column 19␤»
..rakudo 45679a: OUTPUT«a 1 2 3 4␤»
..niecza v17-12-g8b5d5e7: OUTPUT«Unhandled exception: Cannot parse number: a␤ at /home/p6eval/niecza/lib/CORE.setting line 1379 (die @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3418 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3420 (NumSyntax.str2num @ 4) ␤ at /h…
sisar r: for ^5 -> $n { say $n**2; } 19:30
p6eval rakudo 45679a: OUTPUT«0␤1␤4␤9␤16␤»
sisar r: say (^5).map: {$_**2};
p6eval rakudo 45679a: OUTPUT«0 1 4 9 16␤»
cognominal feather.perl6.nl:3000/list # oops, cannot connect 19:31
sisar as in the for loop I can alias $n to $_, how do i alias $_ to $n in a map ?
moritz r: say <a b c>.map: -> $n { uc $n } 19:32
p6eval rakudo 45679a: OUTPUT«A B C␤»
sisar moritz: thanks !
cognominal I suppose panda could get the list directly from : raw.github.com/perl6/ecosystem/master/META.list 19:33
sisar i really love this .map: and .split: style :)
r: map {$n ** 2 } , (^5) -> $n ; 19:35
p6eval rakudo 45679a: OUTPUT«===SORRY!===␤Variable $n is not declared␤at /tmp/BSSvQBXU7r:1␤»
sisar umm, if I don't use .map: syntax, how do I set $n ?
moritz the -> $n thingy is just a signature, and belongs to the block 19:36
so
r: say map -> $n { $n ** 2}, ^5;
p6eval rakudo 45679a: OUTPUT«0 1 4 9 16␤»
sisar moritz: oh
thanks
moritz++ 19:37
r: my $x = 1, 2, 3; 19:40
p6eval rakudo 45679a: ( no output )
sisar why doesn't it complain when I try to assign a list to a scalar ?
moritz why should it?
there are two things to consider 19:41
first, you can assign a list to scalar, but you have to watch for precedence
r: my $x = 1, 2, 3; say $x
p6eval rakudo 45679a: OUTPUT«1␤»
moritz r: my $x = (1, 2, 3); say $x
p6eval rakudo 45679a: OUTPUT«1 2 3␤»
moritz second, the precende of = depends on the left
if there's an @, the precedence is looser than the comma. If there's a $, it's tigther 19:42
that allows you to write things like
my ($a, $b); say $a = 5, $b = 42; say $b
r: my ($a, $b); say $a = 5, $b = 42; say $b
p6eval rakudo 45679a: OUTPUT«542␤42␤»
sisar hmm, interesting. ok, so when I say my $x = 1, 2, 3; what happens to the 2 and 3? 19:44
sisar it goes to the sink ? 19:44
moritz yes
we should probably warn about that, but we don't detect it yet
sisar yes, a warning would be nice 19:45
sisar r: $_**2; 19:52
p6eval rakudo 45679a: OUTPUT«use of uninitialized variable $_ of type Any in numeric context in block <anon> at /tmp/uUxfmOEKJJ:1␤␤»
sisar that gives a different error locally
it says "use of uninitialized variable $_ of type Any in numeric contextMethod 'message' not found for invocant of class 'Any' " 19:53
moritz the second half looks like an error during error reporting :/
ah, you run it in the REPL 19:54
sisar yup
sisar so ? 19:54
moritz that's why we don't see the same problem on p6eval 19:55
but it's a bug that needs fixing
sisar right, coz p6eval ain't a REPL. Got it.
moritz r: say ($_ ** 2).WHAT
p6eval rakudo 45679a: OUTPUT«use of uninitialized variable $_ of type Any in numeric context in block <anon> at /tmp/eWivcSD3YY:1␤␤Int()␤»
sisar well it is a REPL upto a first approximation :) 19:56
moritz well, the E part is there
just R, P and L missing
unless you count its persistance in the channel here as "looping" 19:57
sisar hehe
oh, it does print anything until you ask it to
*doesn't
right
so should I report a rakudobug, or are you fixing it right now ? 19:58
moritz please report
I'm currently trying something else
(the thing with big fallout :-)
sisar can files some bugs in masak's absence, yay !
moritz++ 19:59
sisar reported 20:04
dalek blets: 1856717 | (Herbert Breunung)++ | docs/appendix- (2 files):
first draft explanation what escaping is
moritz sisar++
sisar though many times I just can't think of the right title for the bug 20:05
n: $_ + 2; 20:07
p6eval niecza v17-12-g8b5d5e7: OUTPUT«Use of uninitialized value in numeric context␤ at /home/p6eval/niecza/lib/CORE.setting line 1239 (warn @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 273 (Any.Numeric @ 6) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/eaBcJkDOkv line 0 (mainli…
moritz there's an art to summarizing such things
sisar it doesn't print the whole output, but there is actually a '2' at the end of it !
moritz 'Internal error message leaking out when getting warnings in the REPL' maybe?
including full backtraces in warnings seems excessive 20:08
sisar yeah, clearly I need to file more bugreports :p
moritz: yeah, but is the '2' doing at the end of it. Niecza actually prints the 2 from "$_+2" ! 20:09
s/is/what is
moritz in the REPL? 20:10
sisar yeah
moritz that's the P part :-)
sisar does it make sense to actually say the 2 ? coz rakudo doesn't. 20:11
moritz well, one could argue about that
sisar aye
moritz should it surpress output just because there was a warning?
if you phrase it like this, probably not
dalek blets: 49e414b | (Herbert Breunung)++ | docs/appendix- (3 files):
zero-width boundaries are escaped with pipe symbol
20:22
sisar /me reported another bug 20:24
huh?
sisar reported another bug
not sure if a duplicate bug exists or not
dalek blets: a838b4f | (Herbert Breunung)++ | docs/appendix-a-index.txt:
link to the new table of zero-width-boundaries
20:25
shevy are there plants to release perl 6 like perl 5? i.e. you can compile perl 5 from source, without the requirement to have a perl working before (like perl 6 requires right now) 20:32
diakopter shevy: there are multiple implementations. 20:33
sorear I think you might be able to do that with pugs
diakopter correct
sorear the bootstrap requirement really annoys me too, and I'd like to make niecza bootstrap-free, but $tuits
shevy diakopter, one similar to perl 5 too?
diakopter shevy: similar in what way?
flussence ...doesn't perl5 bootstrap itself using miniperl? 20:34
moritz it does 20:34
shevy diakopter, I can wget www.cpan.org/src/5.0/perl-5.15.4.tar.gz extract it, enter the dir, then start configure with i.e. " ./configure.gnu -Dusedevel -Dstatic_ext='IO Fcntl POSIX',make,make install" 20:35
moritz shevy: niecza doesn't require perl 5 installed, as far as I can tell
shevy nieczca? sounds like sneezing in polish :D
sorear flussence: perl5 does not require a precompiled version of miniperl, though.
shevy github.com/sorear/niecza hmm think I found it
moritz easy to search for :-) 20:36
sorear niecza requires an existing set of niecza dlls to get started (platform independant CIL DLLs, but still binary blobs)
sisar sorear: you need to add a small audio file with niecza, pronouncing it the way it should be ;-) 20:36
dalek kudo/strict-numification: c78c85c | moritz++ | src/core/operators.pm:
tiny sequence simplification
kudo/strict-numification: 09e678f | moritz++ | src/core/ (2 files):
switch to strict numification by default

also make non-numeric sequences a bit more robust
sorear Rakudo requires NQP, which, at least pre-bs required a set of PIR files, which might as well be binary blobs 20:37
I don't know what post-bs NQP doezs
moritz post-bs PIR is even more like binary blobs :-)
since it contains the serialized SCs
in base64 :-)
sisar twitter.com/#!/nlpnyc/status/203537565335306240 21:02
dalek blets: e8cbb1e | (Herbert Breunung)++ | docs/appendix-a-index.txt:
polish escaping
21:03
blets: 1ae2b33 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
backlink to pipe escape char
21:05
sisar r: $x = 4 + 2i; $x.re = 5; 21:24
p6eval rakudo 45679a: OUTPUT«===SORRY!===␤Variable $x is not declared␤at /tmp/84x34n_Y_a:1␤»
sisar r: my $x = 4 + 2i; $x.re = 5; 21:25
p6eval rakudo 45679a: OUTPUT«Cannot assign to a non-container␤ in block <anon> at /tmp/PeeJaa8bWJ:1␤␤»
sisar bah, $x.re should be allowed to be left-hand value 21:26
i mean l-value 21:27
sorear I could do that but Team Rakudo wouldn't like me very much for it 21:29
sisar why ?
sorear they just killed transparent lvalue substr
I guess lvalue support is very expensive in the rakudo guts
sisar :)
sorear so they wanted substr split into substr and substr-rw 21:30
sisar sorear: you seem a tad angry
? 21:31
sorear oh, no, sorry 21:32
not angry at all :D
sisar :)
"expensive" in what terms ? 21:33
performance? 21:34
adu is there a way to use HLL::Compiler from rakudo? 21:41
sorear sisar: yes, expensiveness in terms of performance. 21:41
I could see .re-rw being added to the spec, but that looks ugly.
cognominal when listening adu about haskell Maybe and reading TimToady okness proposal, I wonder if there is the need of a synthesis. Or maybe okness proposal is the syntesis but flies over my head. 21:45
adu TimToady okness proposal?
cognominal adu, gist.github.com/1828667 21:46
adu cognominal: thanks 21:48
cognominal .REALLY in this proposal sounds awfully like the Just constructor, except it is nothing like a constructor
adu, I am sure you can say something constructive about that proposal.
adu *still reading* 21:51
diakopter I wonder when the Dictionaries are going to add "Imunna" (short for I'm gonna, short for I'm going to). everybody I know uses it many times daily. 21:54
cognominal mañana? 21:55
sorear it could happen.
adu cognominal: is OK not in perl6 now?
sorear a professional linguist friend of mine told me that's where conjugations come from
people slur auxilliary verbs until eventually they turn into endings 21:56
cognominal adu: I don't think so
adu cognominal: it sounds like in that table, OK&Nil would be similar to Bool, OK+&Nil would similar to Maybe, and OK+&Nil+ would be similar to Either 21:57
cognominal I am not sure. I don't know much of haskell.
adu Either is a pair where you're only interested in the right-hand-side, there is a connotation of "ugliness" to the left-hand-side, like error messages and the like 21:59
lichtkind may i use in a regex just |c without <> ? 22:00
cognominal adu, the okness proposal handles junctions too.
adu cognominal: remind me what junctions are? 22:01
cognominal S02-bits.pod:1333: Junction unordered superposition of data with and/or/one/none 22:02
adu oh
"but"? 22:03
diakopter also, go'head'n (short for go ahead and) - a now-practically-universal prefix on imperative verbs.
lichtkind adu: for such question we have the glossary tablets.perl6.org/appendix-g-glossary.html
diakopter my cube is near telephone customer service cubes, so I hear "goheadn" about a billion times a day 22:05
adu I suppose I thought those only worked in the regex sublang
adu do junctions work on types too? 22:08
lichtkind what do you mean 22:09
flussence yes
adu like "my Str|Int $x"
lichtkind they work in signatures
flussence r: sub a(Str|Int $x) { }
p6eval rakudo 45679a: OUTPUT«===SORRY!===␤Missing block␤at /tmp/wyxauvJMHF:1␤»
flussence er 22:10
lichtkind i thought so
flussence std: sub a(Str|Int $x) { }
lichtkind rakudo doest implement all
p6eval std 8632387: OUTPUT«===SORRY!===␤Unable to parse signature at /tmp/bPpB9yQFS1 line 1:␤------> sub a⏏(Str|Int $x) { }␤Couldn't find final ')'; gave up at /tmp/bPpB9yQFS1 line 1:␤------> sub a(Str|Int ⏏$x) { }␤ expecting any of:␤ …
flussence maybe not
cognominal NYI
adu one of those future features
lichtkind samething for perl 6.1 :) 22:11
flussence std: sub a($x where Str|Int) { }
p6eval std 8632387: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/KR8YpsEHTF line 1:␤------> sub a(⏏$x where Str|Int) { }␤ok 00:00 43m␤»
flussence that'll work
cognominal Also, in the oness proposal, I am surprised that *.can('REALLY') can return a junction
*oknes
*okness !!
adu cognominal: oh 22:13
if that's true, then can you implement "OK" if you're returning Any|Nil?
cognominal adu, I don't know. Probably the okness proposal would make sens to me with some concrete examples and/or test code. 22:16
adu maybe I still don't understand what you mean by junction
do you mean a regex? 22:17
cognominal this is unrelated to regex.
adu because my only experience with junctions is with grammars
imho, type junctions are something that dynamic languages don't really need 22:19
cognominal This is just a way to shove many values in a scalar without it being an array.
adu but they are nice
ok I definitely don't understand 22:20
I thought you were talking about &, |, ^
cognominal I am not yet convinced of the necessity of junctions. This is a proposal from Damian Conway, and I am not sure I wrapped my head around it.
I mentionned junctions just to be sure you did not miss that dimension in the okness proposal. 22:22
adu: you can junction any value, not only type value. 22:23
adu cognominal: yeah, I totally missed it, and I'm still missing it 22:24
cognominal welcome to the club, I noticed it, no more. 22:26
sorear I use junctions. 22:28
Please do not remove them while you are redesigning OKness.
Actually, please don't touch OKness at all. It's already completely broken and it needs to be rebuilt by an implementor. 22:29
cognominal sorear, so maybe (no pun intended), you can cast light on the okness proposal.
ha, ok :)
sorear OKness is something that was written a couple months ago; I can't make sense of it, except for 'The compiler shall read the user's mind' 22:31
lichtkind cognominal: junctions are very conviniant to abstract formal logic away 22:37
cognominal: you put it in a variable give it nice name and smartmatch against it
its like having good names instead of magic numbers 22:38
cognominal lichtkind, It is yet another way to loop over a bunch of value without saying it? 22:43
lichtkind cognominal: yes but a different way :) 22:44
cognominal that's probably that "different way" that escaped my mind.
lichtkind :)
cognominal and still does. 22:45
lichtkind its like a reciepe 22:46
you write a note to your friend please bring timmorow a onion or spinachi pizza 22:47
and he prings you onion
which is perfectly fine
the junction was that reciepe
lichtkind good night 23:36