»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
Zoffix I stole it. 00:44
yoleaux 7 Dec 2017 17:16Z <tbrowder> Zoffix: thnx for the new highlighter!
Zoffix But... there's a whole nest of buggers in RI::I :o
Herby_ o/ 00:44
Zoffix \o
Writing tests ATM to cover them all.
Zoffix First pass gonna be quite a deopt. 00:51
timotimo do we have some document where things like "an iterator shall not be asked to pull-one after IterationEnd has been encountered" and friends? 01:09
Zoffix It's not me being a moron, right? Iterator.count-only/.bool-only are concerned with the *current* state of the iterator not its initial state? That is I can always legally do `.pull-one xx .count-only` without violating Iterator protocol
timotimo i wonder if we ever decided upon what count-only does if values have already been consumed
Zoffix timotimo: that should be in the docs for Iterator type
That one I know 'cause jnthn said that. Dunno about countonly 01:10
It makes sense for it to adjust the stuff after iteration.
timotimo mhm 01:11
Zoffix I already got 87 lines of bug cover tests and I'm only 60% through RI::I
timotimo well, the docs seem to say you can count-only after pulling values and get the number of remaining items
Zoffix The only problem is I wrote that some time back :} 01:12
timotimo hah :)
timotimo maybe it'd be good if there were a way for count-only to signal "oh, turns out i can't tell you after all!" 01:21
hm. or is that what the default implementation of count-only does?
Zoffix There's no default impl. 01:22
timotimo i just saw. hmm.
we use nqp::can and friends to figure that out, then?
Zoffix yeah
timotimo goes to bed 01:23
Zoffix \o
Zoffix What does this mean again? "This representation (NativeRef) does not support elems (for type IntAttrRef)" 01:32
m: class Foo { has int $!x; method z { use nqp; nqp::elems($!x) } }.new.z 01:33
camelia This representation (NativeRef) does not support elems (for type IntAttrRef)
in method z at <tmp> line 1
in block <unit> at <tmp> line 1
Zoffix rocks out to www.youtube.com/watch?v=jkPAX8Zydiw 01:37
Herby_ perfect programming music :)
Zoffix :) 01:38
Zoffix .tell lizmat I stole the .tail(5).tail bug. Would you be able review my fix in that and other iterators github.com/rakudo/rakudo/commit/af9812fa73 ? Unless I'm misunderstanding iterator protocol, the .count-only/.bool-only need to account for iterator's consumation and adjust their values. I removed some of the impls because I assumed they weren't worth it. The one (IIRC only one...) exception is 02:01
yoleaux Zoffix: I'll pass your message to lizmat.
Zoffix RI::I.Combinations; I couldn't figure out how to impl them. I also added tests in github.com/perl6/roast/commit/88a12f6984
.tell lizmat RI::I.Combinations; I couldn't figure out how to impl them. I also added tests in github.com/perl6/roast/commit/88a12f6984 02:02
yoleaux Zoffix: I'll pass your message to lizmat.
Zoffix powers down 02:03
piojo m: my @pairs = [('a' => 'b'),]; say so @pairs.any ~~ ('a' => 'b'); 02:39
camelia No such method 'a' for invocant of type 'Pair'
in block <unit> at <tmp> line 1
piojo Seems like junctions can't handle pairs?
my @ints = 2; say so @ints.any ~~ 2;
m: my @ints = 2; say so @ints.any ~~ 2; 02:40
camelia True
piojo m: say ('a' => 'b') ~~ ('a' => 'b') 02:40
camelia True
geekosaur m: my @pairs = [('a' => 'b'),]; say so ('a' => 'b') ~~ @pairs.any; 02:41
camelia True
geekosaur ~~ is not symmetrical
piojo geekosaur: But I thought a junction would be collapsed and be evaluated as its elements 02:42
err, expanded
geekosaur I don't know off the top of my head what Pair.ACCEPTS does, but it's apparently not what you think it should
piojo looks up .ACCEPTS
geekosaur more to the point here is that a ~~ b induces a closure, aliases $_ to a, and invokes b.ACCEPTS($_). ACCEPTS may be special for various types 02:45
geekosaur "If topic is any other value, uses the invocant's key as the name of the method to call on topic and check's its .Bool is the same as .Bool of the invocant's value. This form can be used to check Bool values of multiple methods on the same object, such as IO::Path, by using Junctions:(...)" 02:47
piojo geekosaur: thanks. so it's because Junction is a "special" type, so ACCEPTS is trying to compare it by key/value, and when the key is called as a method, the junction gets expanded, and `.a` is called on each pair in the list, which fails 02:49
Thanks, that makes sense!
geekosaur (Pair.ACCEPTS. here the Junction needs to be on the Pair, not the Array as you had it. *possibly* an argument could be made for it applying to a Junction differently than using the default lookup)
yes 02:50
it does seem kinda confusing and possibly it should do something different with Pair.ACCEPTS(Junction)
otoh Junction interacts oddly with some things and that might turn out to be difficult to accomplish
piojo But it would enable linguistically friendly code, which we like in general 02:51
"any(array) ~~ pair" is how it would be spoken, at least in English
geekosaur I think the biggest problem is that Junction somehow needs to be 'invisible' for the type check there, but *without* triggering autothreading
piojo geekosaur: that sounds very tricky 02:52
Impossible, actually
It can have more than one type, so it has to trigger auto-threading
perhaps it's just a mistake that smartmatch looks so symmetric 02:53
geekosaur possibly. getting it reversed seems to happen a lot
piojo nobody would switch the operand order for "a < b", but for "a == b" and "a ~~ b" it looks fine. 02:54
buggable New CPAN upload: PDF-Font-0.1.2.tar.gz by WARRINGD cpan.metacpan.org/authors/id/W/WA/...1.2.tar.gz 04:23
moritz jnthn: just a quick reminder that your advent post is due tomorrow 00:00 UTC :-) 08:58
lookatme :)
moritz (should the schedule be a problem, there's still room for swapping things around)
days 10, 11, 12, 14 are already scheduled... I don't think we ever had such exemplary pre-lineup :-) 09:00
(I mean in the previous years; it's been great all around this year) 09:01
masak pre-lineup++ 09:12
mscha m: say infix:<==>(3,3); say infix:<==>(2,4) 10:11
camelia True
False
mscha This works, but what do I do if I have $oper = '=='? infix:<$oper> and infix:($oper) don't work. 10:12
jnthn m: my $op = "+"; say ::("&infix:<$op>")(1, 41) 10:22
camelia 42
mscha jnth: thanks, perfect! 10:24
jnthn: thanks, perfect!
mscha m: my $op = '!='; say ::("&infix:<$op>")(1, 41); 10:28
camelia True
mscha m: my $op = '>='; say ::("&infix:<$op>")(1, 41); # Why does this not work?
camelia No such symbol '&infix:<>=>'
in block <unit> at <tmp> line 1
mscha m: my $op = '>='; say ::("&infix:«$op»")(1, 41); 10:32
camelia Use of uninitialized value $op of type Any in string context.
Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.
False
in code at <tmp> line 1
mscha Huh?
Zoffix m: my $op = ">="; say ::("\&infix:«$op»")(1, 41); 10:44
camelia False
sjn o/ 10:48
tbrowder sjn: \o
sjn Quick question.... Does the following statement ring true for the Perl 6 programming language? -- "If you have to bend over backwards to do something in Perl 6, then you're probably doing the wrong thing." 10:50
s/the wrong thing/something wrong/
mscha Thanks, Zoffix. Now all I got to deal with is infix:<==> vs. infix:«>=». 10:51
Zoffix m: for "==", ">=" -> $op { my &op = &::("infix:<$op>") // &::("infix:«$op»") // &::("infix:<$op.subst(/<?before <[<>]>>/, "\\", :g)>"); say op 1, 41 } 10:54
camelia False
False
Zoffix m: for "==", ">=" -> $op { my &op = &::("infix:<$op>") // &::("infix:«$op»") // &::("infix:<$op.subst(/<?before <[<>]>>/, "\\", :g)>"); say op 42, 41 }
camelia False
True
Zoffix So how come ::("\&infix:«$op»") needs a backslash but ::("&infix:<$op>") doesn't? 10:55
Looking at ASTs, the «» version got this stuff up in it, but why does the backslashing make or not make it run? gist.github.com/zoffixznet/0dec3a8...95aee3ad89 10:56
Zoffix m: my $w = BEGIN $*W.WHAT; my $op = '=='; dd $w.canonicalize_pair: 'infix:', $op 10:58
camelia ":infix:<==>"
Zoffix m: my $w = BEGIN $*W.WHAT; my $op = '>='; dd $w.canonicalize_pair: 'infix:', $op
camelia ":infix:«>=»"
wander \0
Zoffix mscha: ^ unsupported and evil method, but I think the other one with the .subst stuff is just as fragile 10:59
Zoffix oh 10:59
Zoffix m: my $w = BEGIN $*W.WHAT; my $op = '>='; dd 'infix' ~ $w.canonicalize_pair: '', $op 10:59
camelia "infix:«>=»"
Zoffix m: my $w = BEGIN $*W.WHAT; my $op = '=='; dd 'infix' ~ $w.canonicalize_pair: '', $op
camelia "infix:<==>"
Zoffix This I meant
mscha m: for '==', '>=' -> $op { say (&::("infix:<$op>") // &::("infix:«$op»"))(5,3); 11:02
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3fix:<$op>") // &::("infix:«$op»"))(5,3);7⏏5<EOL>
mscha m: for '==', '>=' -> $op { say (&::("infix:<$op>") // &::("infix:«$op»"))(5,3); } 11:03
camelia False
True
mscha Thanks for the tips, Zoffix!
mscha Used it for this: www.reddit.com/r/adventofcode/comm...s/dqy25k2/ 11:07
araraloren o/ 11:16
tbrowder \o
masak m: my &eval = &EVAL; for q[==], q[>=] -> $op { say eval "5 {$op} 3" } 11:17
camelia False
True
masak mscha: ^
tbrowder anyone here know about gen of docs.perl6.org? 11:18
tbrowder i see a bad table in language/regexes.pod6 that should be rendering properly after the recent pod table fix 11:21
moritz what does that need? a newer version of Pod::To::HTML? 11:24
tbrowder i don’t think it does, but i looked at it and don’t see any special handling. however, the visible escape chars are suspicious. shouldn’t it be using latest master rakudo? 11:26
sjn tbrowder: docs are in [email@hidden.address] , right? 11:28
tbrowder yes 11:28
wander tbrowder: IIRC need a explicit version bump 11:30
sjn tbrowder: which line in doc/Language/regexes.pod6 has suspicious escape chars?
Zoffix tbrowder: it uses latest rakudo for *travis testing*. For builds, it uses whatever is built in /home/rakudobrew on hack.
Guess I got time to kick off a build
mscha masak: yeah, but eval is evil. ;-) 11:31
tbrowder hm, so it prob doesn’t have latest, that would explain it 11:31
Zoffix It's using 2017.10
tbrowder that should fix it unless my fix was bad 11:32
Zoffix tbrowder: while you're here... there's still a missing roast file when `make spectest` is run
tbrowder whoa, that’s pretty old
Zoffix Not really. Latest stable user release. 11:33
tbrowder yeah, awating samcv. i could merge it but that wouldn’t be right. 11:33
i commented on her question in the roast PR #361 11:34
masak mscha: I take your knee-jerk reaction against `eval` and call it :P 11:35
masak mscha: it's only actually *dangerous* if (say) the user was allowed to type in what $op should be. but that's not so in the above code, so it's fine. 11:36
Zoffix
.oO( famous last words... )
tbrowder so maybe when 2017.12 comes out it will render properly 11:37
masak I don't get it how we ended up in a situation where people think that because there are injection attacks possible with `eval`, it shouldn't ever be used, even when the resulting code is both shorter and easier to read.
Zoffix masak: easy: the $code in "not so in the above code" later gets changed, creating an exploit that causes $n million of accounts to get hacked. Your hack to avoid using the dedicated "I know what I'm doing" method makes the issue even more pernicious, since the programmer can't even easily grep for evil 11:38
masak Zoffix: I'm not actually in disagreement with you, just so you know :) 11:40
I also wouldn't use these techniques in production
and yes, that distinction is important
my beef is that I feel the warnings against `eval` have spread to situations where it would be completely fine. you had to invent a production-like context where the program was changed further beyond its original purpose for `eval` to become an actual problem. 11:41
in *my* hypothetical scenario, the code was a 10-minute throwaway thing, and it was never changed later, and no problem arose
masak and if your objection then is "but we shouldn't teach techniques which might have a downside in some contexts", then I'd disagree 11:42
masak I think we should spend *more* effort on distinguishing the contexts in which techniques apply, not less 11:43
mscha masak, Zoffix: I agree with you both. In my case, the operator does come from “user” input, but it's parsed by a grammar that only accepts the 6 basic numeric comparison operators; so it is safe, in practice. But better safe than sorry, so why use it if there's an alternative? 11:45
Zoffix masak: in my *actual* scenario, I had no idea where the code were to be used or how many more people would find it in the logs and use it elsewhere, or how many more people would edit the programs using that code later on, so I provided a version that isn't exploitable. I don't understand what purpose it serves to use a hack instead of `use MONKEY-SEE-NO-EVAL`, regardless of contexts 11:46
masak m: my %ops = { "==" => &[==], ">=" => &[>=] }; for %ops.kv -> $k, &op { say "3 $k 5: { &op(3, 5) }" } 11:47
camelia Potential difficulties:
Useless use of hash composer on right side of hash assignment; did you mean := instead?
at <tmp>:1
------> 3 %ops = { "==" => &[==], ">=" => &[>=] }7⏏5; for %ops.kv -> $k, &op { say "3 $k 5:
3 >= 5: F…
masak m: my %ops = "==" => &[==], ">=" => &[>=]; for %ops.kv -> $k, &op { say "3 $k 5: { &op(3, 5) }" }
camelia 3 >= 5: False
3 == 5: False
masak heh :)
Zoffix masak: the problem with your context excuse is the source of the op and the place where the op is used are in different locations so the person editing the way the op is obtained might not even be aware it's being evaled
masak mscha: anyway, something like the above (after debugging) oughta work
lunch & 11:48
mscha I'm sticking with this one: 11:49
sub oper($op) returns Code
mscha { 11:49
mscha # Comparison operators can be infix:<==> or infix:«<=». Find either. 11:49
return &::("infix:<$op>") // &::("infix:«$op»")
}
Geth doc: b2d61952b6 | (Zoffix Znet)++ (committed using GitHub Web editor) | util/trigger-rebuild.txt
rebuild with newer rakudo
11:50
Zoffix tbrowder: ^ should use latest now
tbrowder thnx, fingers crossed! 11:51
tbrowder can you look at roast PR #361 and see if i’m off base? 11:52
scimon Last day of my holiday. Writing my blog post. 12:13
buggable New CPAN upload: Game-Sudoku-0.1.1.tar.gz by SCIMON cpan.metacpan.org/authors/id/S/SC/...1.1.tar.gz 12:13
DrForr And uploading your module, it looks like :) 12:15
scimon I made a small change to it this morning. More junctions :) 12:46
scimon (Been AFK, Mattress delivery. I am not in the good books) 12:47
tbrowder huzzah, doc/language/regexes bad table now looks correct!
Zoffix: thnx
tbrowder can anyone show me the “canonical” left/right interpolating and noninterpolating character pairs? i believe the answer is (in ascii form) “<<>>” and “<>”, respectively. 14:10
Phlogistique ä× 14:11
no
sorry
«»
tbrowder yes, those are the preferred form for <<>> but my devices make it difficult to enter them, thnx 14:12
DrForr Compose-key combo FTW. 14:18
DrForr I'm a touch surprised that my keyboard at work doesn't have those on them. 14:18
I've got degree, {section}, and what the hell are # and @ doing down by x and v, come to think of it? 14:19
Altreus :s 14:25
Altreus what sort of backward keyboard do you even have 14:25
huf could be hungarian 14:28
altgr-v is @, altgr-x is #
so probably some kind of "also ran" country layout
DrForr Close enough; it's Czech. The number of accented letters is impressive. 14:31
huf there we go :)
comborico1611 Jan Hus was a brilliant man. 14:39
mktoho Hello! 17:43
scimon Hi
comborico1611 Greetings 17:48
buggable New CPAN upload: Game-Sudoku-0.2.0.tar.gz by SCIMON cpan.metacpan.org/authors/id/S/SC/...2.0.tar.gz 18:04
scimon So while writing all the things I've tweaked a few things.
Hiy just under 2000 words. Now adding links.
Herby_ \o/ 18:14
scimon Does anyone know what time we're publishing the Advent calender at? 00:00 GMT? 18:17
(I've set mine up for that but we can change it if required) 18:21
[Coke] That seems fine, but I doubt there's a strict schedule 18:21
scimon Righto. 18:22
Well... I'll probably give it a re-read over the weekend. Quite happy with it. I controlled my urge to write it as a conversation between elves. Just. 18:23
Now I need to do dishes.
DrForr WRT Pod::To::* is there a test suite with decent coverage I can gank? 18:45
DrForr Come to think of it one would suppose that the compiler would have one... 18:54
TimToady notes that "use MONKEY;" is considerably shorter and easier to type than "my &eval = &EVAL;", and doesn't hide the EVALs in lower case, or hide the MONKEY that the boss is gonna be grepping for 18:57
TimToady as for the argument that it's the wrong default, well, that's the wrong argument :) 18:57
[Coke] m: say i**i 19:38
camelia 0.207879576350762+0i
[Coke] m: use Test; is-approx(i**i,e**(-π/2)) 19:48
camelia ok 1 -
Thrush I have a question: Does Perl6 support tail-call-recursion optimization? By googling, I found some pages that say it's supposed to, but those pages are from 2002. 20:10
AlexDaniel Thrush: still no 20:12
jnthn Thrush: No
Thrush Ah, okay, thanks. Any plans for the future? 20:13
Thrush (Any plans to make Perl 6 support tail-call-recursion optimization in the future, that is.) 20:14
jnthn It's been discussed a bit; the challenge is in working out when we can apply the optimization, and making that predictable enough that people can rely on it. 20:23
I don't know of anyone who has plans to work on it in the immediate future, but it certainly could happen some day. 20:24
dmaestro I expected this to work:
m: "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L&:Script<Greek>>/
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in metachar:sym<assert>; couldn't find final '>' (corresponding starter was at line 1)
at <tmp>:1
------> 3"\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L7⏏5&:Script<Greek>>/…
dmaestro just like:
m: "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L+:Script<Greek>>/ 20:25
camelia ( no output )
dmaestro m: say "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L+:Script<Greek>>/
camelia 「α」
dmaestro Is the (documented) '&' set intersection operator not yet implemented? Or broken? 20:26
m: say "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:Script<Greek>>/
camelia 「α」
jnthn Hm, it's documented? I'm pretty sure it's not implemented, but:
m: say "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L> & <:Script<Greek>>/
camelia 「α」
jnthn Can be done like that
dmaestro Thanks, that is usable at least. 20:27
jnthn Given we an just compile the other form into what I showed, it's probably a fairly soft feature :) 20:28
*can
dmaestro yes, documented in Regexes / Unicode Properties / "Categories can be used together, with an infix operator: ..."
Thrush Thanks for the info, jnthn. 20:29
jnthn OK, could be worth a docs issue, since that site should just include stuff that's done, not stuff that's hoped for some day :)
dmaestro Right :-)
jnthn From backlog here: if you are doing `my &eval = &EVAL`, you're at risk of the compiler disappearing some of the symbols at the point you use `eval`. The uppercase isn't simply a discouragement, it's a hint that the language treats this name specially. 20:31
And that optimization *will* get more aggressive in the future. 20:32
jnthn In summary, `my &eval = &EVAL; { my $x = 42; eval 'say $x' }` may work today, but I'd be surprised if it still worked in a year's time. 20:33
El_Che slap a 6.c and don't worry about it 20:34
geekosaur mm, because it's a preannounced thing, versions don't help much 20:35
El_Che let's say you'll need a pre 6.d release to run it :)
geekosaur hypothetically that optimization could get committed in the next 5 minutes without requiring a version break 20:36
(*very* hypothetically...)
El_Che If you use monkey in capitals in your code, you're not in the place to make a formal complaint
DrForr Hrm. I've got at least 2 requests for Pod::TreeWalker, which likely means that given autarch's state I should probably ask to take it over which means I should think very carefully about whether I should ask...
jnthn Well, I sure won't be committing it in the next 5 minutes, 'cus I'm already behind with witing my advent article. :P
Talking of which...guess I should hide this IRC window :) 20:37
mspo so is this christmas going to be perl7 release? 20:37
El_Che mspo: don't troll 20:38
AlexDaniel
.oO( 7lang release )
mspo El_Che: if TimToady said it then it would be a great troll
what's the changelog on the language spec look like for the last 12 months? 20:39
AlexDaniel not much has changed 20:40
AlexDaniel but a lot of *new* stuff was added on top 20:40
Zoffix mspo: perl7 has been out for ages, bruh: github.com/perl7/perl7/ 20:41
mspo Zoffix: I actually forgot about that one
Zoffix mspo: changelog is gonna be pretty huge. There are 2707 new commits that define 6.d 20:43
mspo AlexDaniel: isn't the implementation changing some parts of the spec?
Zoffix: will 6.d be "final" on xmas? 20:44
AlexDaniel mspo: very rarely, only if the spec was really wrong in the first place
Zoffix mspo: I'd say "refines" is more appropriate term. There weren't any real changes to 6.c language, other than error fixes. 6.d merely defines language behaviour for parts that previously were undefined.
mspo: far from it. Spring 2018, I hope. There's currently a blocker that kinda stalls some ambitious people to get 6.d outta the door: R#1289 20:45
synopsebot R#1289 [open]: github.com/rakudo/rakudo/issues/1289 [6.d BLOCKER] Implement a Way to Know Caller's Language
Zoffix Actually, there *were* some big changes, like `await` in 6.d being non-blocking. But, I mean, posed against those 2700 commits, it's a drop in a bucket 20:46
mspo Zoffix: language spec is waiting on the implementation? 20:47
Zoffix Also, many 6.d things that are meant to be for 6.d only are already done in 6.c, 'cause we simply didn't have a mechanism to place them in 6.d at that time, or chose to put in 6.c 'cause the 6.c spec was vague enough to allow it. 20:48
mspo: something like that. It's a bit tough to make a proper release of a spec if you can't even guarantee it works.
The Whirpool and what not. 20:49
And we had fudges in 6.c for unimplemented features/bugs and in the end they were just annoyances or features we ended up nixing in the end so 6.d release won't have fudges. 20:50
mspo okay
anyway too bad about not being on christmas
would have been a cool tradition
AlexDaniel … not :) 20:50
Zoffix mspo: nah, it's good. I'd hate for us to have dates to follow. I rather we Release When It's Ready. 2015's Christmas release was a disaster and I'd argue large part of that was rushing to meat a deadline. 20:51
AlexDaniel arbitrary deadlines are not cool.
Zoffix relocates
[Coke] Disaster is a strong word, but it wasn't perfect, for sure. 20:51
AlexDaniel
.oO(meat the deadline, fish the spec)
mspo it added a nice bit of marketing 20:52
geekosaur not quite a disaster but it was definitely Bad Idea 20:53
mspo I disagree 20:55
geekosaur the whole CUR thing was a cluster____ 20:56
Zoffix I didn't mean just the event itself, but also the state of the spec at the time. There were huge swaths of the language entirely undefined. 20:58
Zoffix It should've cooked for a couple years more, but overall I thinl it was a good decision to realease then. To solidify, to start the stability kindset 20:59
And 6.d is that, 2-year later, medium-rare cooked version to me :) so I'm glad to let it simmer to perfect flavour 21:00
geekosaur I'm actually not bothered much bythat part. the spec was always explicit about being forward-looking and knowing some of its plans were at best speculative
mspo geekosaur: yes 21:01
Zoffix: didn't you come in after the christmas thing?
geekosaur no 21:02
Zoffix mspo: yeah, right around it. Though I was an alcoholic back then and I think I "came in" only in October 2016 :) 21:03
previous times are hazy in memor
y
geekosaur thoguht you were around a little before glr. but I also recall the alcoholic bit
(glr was september-ish iirc?) 21:04
Zoffix Ah yeah, I think I came around glr. but was on and off
masak ah, you young'uns :) 21:05
mspo Zoffix: my point is that the christmas thing had a little marketing style behind it
Zoffix: which increased the energy enough to get one or two more people looking; also nice to do a big release over a break for most people
idk just like my opinion man
Zoffix: you should write the get-clean-with-perl6 guide 21:06
masak .oO( with a language like that, who needs alcohol? ) 21:08
masak hides
Zoffix :)
geekosaur .oO ( new name meme: THCamelia )
bonus "tea"/"T" joke 21:09
El_Che Zoffix: it's a good story. For when Perl6 takes over the world :) 21:10
Zoffix hehe
I even remember what changed my mind. The guts of &val. To drunker's mind it looked complex and I was contemplating writing an article about it until I looked at it after a few days away from drinking. It looked so simple and it kinda made me realize just how much booze affects your working memory, even for days after you drank 21:12
mspo I'd rather use the drinker's language
Zoffix ZofBot: weekend is here \o/ 21:13
ZofBot Zoffix, so nothing for you then?
Zoffix ZofBot: gonna be learning C 21:14
ZofBot Zoffix, Sex attraction is so purely a question of the taste of the individual that the wise man never argues about it
geekosaur heh
bot's getting snarky, I see
Zoffix &
mspo www.perlmonks.org/index.pl?node_id=466656 21:15
geekosaur also learning C might be enough to drive Zoffix back to the bottle...
mspo learning C doesn't take long; it's really small 21:16
*using* it on the other hand..
geekosaur that's kinda the point, yes
easy right up until you start realizing just how nasty things like its conflation of pointers and arrays gets 21:17
*get
mspo there are 32 keywords in C :)
El_Che I invented me a few project to refresh C. It was painful when you're writing stuff for hours that would take minutes in a higher language
geekosaur one of which is completely useless (at least until C++ repurposed it)
('auto' which exists solely for pedants who want the full set of storage classes) 21:18
(or those still writing pseudo-BCPL in C, which is even worse) 21:19
jnthn Ah, BCPL. :) 21:20
I never wrote it, but got a couple of lectures on it at uni :)
iirc, it...had one type, which was int32 :) 21:21
geekosaur yep
which is why C got 'auto'; since you don't have typed variables, you declare a stack var with e,g. 'auto a;' 21:22
jnthn Oh! That bit I didn't know :)
geekosaur well, you didn;t do that in BCPL; 'auto' was actually intended for automated BCPL-to-C translators 21:23
BCPL not onlyh didn;t have types, it was also weak on the idea of declarations in general :)
but C made you declare things, so translators had to insert something and didn;t have types. thus 'auto' 21:24
dylanwh was bcpl int32 or int16? I thought it was 'word' and at the time 'word' == 16 bit 21:29
geekosaur at the time 'word' depended on the architecture 21:29
and BCPL went along woith that, so whether it was int16 or int32 depended on what kind of machine you were on 21:30
El_Che is enjoying the conversation 21:32
geekosaur BCPL was kinda transitional because it was one of the first practical "portable" system programming languages (unlike something like DEC's BLISS family which had common features but different specifics on every processor line) 21:35
it also indicates that nobody'd actually *thought* much about portability yet :)
...for all the portability gotchas C has, when introduced it was a massive improvement over the state of the art in portability 21:36
masak lol, I blog'd: strangelyconsistent.org/blog/has-it...hree-years 21:39
moritz masak++ 21:46
samcv . 21:46
yoleaux 11:23Z <tbrowder> samcv: i have answered your question at roast PR #361
dogbert17 remembers his old Amiga, part of the OS was written in BCPL if I remember correctly 21:47
samcv tbrowder: merged :) 21:48
dogbert17 en.wikipedia.org/wiki/AmigaDOS
samcv releasable6: status 21:49
releasable6 samcv, Next release in 7 days and ≈21 hours. No blockers. 0 out of 78 commits logged
samcv, Details: gist.github.com/15798faad1ab913b98...887ee5d125
tbrowder samcv: did my answer make sense? i’m not sure how i could use is-deeply on a table. 21:54
samcv yes it was fine, thanks
tbrowder ok, thank you (hope you don’t mind the cat in the hat ref, been around grandkids too much to resist it) 21:56
samcv :) 21:56
jnthn Aww, the advent highlighter fails for me with "Error 422: 422 Unprocessable Entity" 23:28
ingy www.youtube.com/watch?v=_Ht4Ei3pdR8 23:38
jnthn: they can't all be winners. 23:39
jnthn Pretty much exhausted my guesses at what could be wrong with it. 23:47
jnthn ah, I musta had some old or busted version of a dependency somewhere 23:58
zef nuke and then installing it again worked