Parrot 4.6.0 "Wild Parrots of Telegraph Hill" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 19 August 2012.
00:44 MikeFair joined
whiteknight moritz: did you run an entire Rakudo spectest on that branch? 02:00
benabik ~~
whiteknight I haven't had a chance to do it yet
hello benabik
benabik Note for GSoC students: You can now submit code samples on melange. Go to your project, hit update, and it'll accept a file at the end. I just submitted a big .diff from git. 02:01
MikeFair waves. 02:14
sorear waves to MikeFair 02:34
MikeFair finishes reading up on M0. 02:35
sorear (you were asking about niecza the other day. hi.)
MikeFair sorear: Yes I was, indirectly though, but I was just really encouraged by the thought of having Perl6 on top of Java and .Net
sorear: Niecza might also be just the project I need to help me with another project I was building up to but might be able to get started earlier on 02:36
sorear: Would Niecza make exposing all the other .Net assemblies on the machine a realtively easy thing? 02:38
Like could they automatically casted as modules and referenced?
benabik IIRC, there have been people referencing Gnome assemblies in Niecza. 02:39
MikeFair Perhaps something like: use .Net/System; 02:40
MikeFair shrugs.
I guess it would be: use DotNet::System; 02:41
benabik MikeFair: github.com/sorear/niecza/blob/mast...k-clock.pl 02:42
MikeFair ok then, yeah that looks like it would work...
But it looks like we have to look up the gac details first 02:45
I was hoping for something a bit more transparent, but I'm sure something could be written if it was worth it. 02:46
sorear: What's your relationship to niecza
benabik: thanks for the pointer... 02:47
The project I'm looking to building up to is to creating a HyperCard/SuperCard clone 02:48
Currently a company "Revolution" www.runrev.com has been evolving their platform for years and done some really amazing stuff 02:49
The use a scripting language they call LiveCode
But I think there are some features in Parrot that could make that even better 02:50
Well the Parrot Compiler ToolChain 02:51
sorear MikeFair: I started niecza and wrote 95% of the code in it 02:57
MikeFair bows to sorear.
sorear it's also by far the largest/oldest thing I've ever done 02:58
(not couting large things that I've submitted the occasional patch to)
MikeFair nods. 02:59
sorear I would love more transparent access to clr libs 03:00
but there are a lot of places where judgement calls have to be made 03:01
MikeFair I bet 03:03
It seems that it might be possible to carve out the 'CLR' module as a special name 03:04
like if I tried to load "CLR::System" it could do something different than the ordinary perl modul search
Why the name niecza 03:06
sorear: The whole concept is quite impressive, I had wondered if Perl could be done on top of the CLR but didn't go hunting for it 03:12
sorear It already does that
the 'CLR' module is auto-loaded, and you can run statements like CLR::System::Environment.OSVersion.Platform.Str without any imports
...but it only works for types in corlib
accessing types in other assemblies, like gtk-sharp, is where it gets significantly fiddlier 03:13
MikeFair sorear: That's still pretty cool I think ... I'm sure you'll get there
sorear: Well they say use gacutil -l to find the info 03:14
sorear as for the name, I couldn't think of one, so I asked Carl MƤsak for help
MikeFair in the comment I read
The using Reflection you might be able to auto-build? 03:15
sorear we exchanged a bit and came up with this
"The using Reflection you might be able to auto-build?" what file is that in? 03:16
MikeFair Doesn't gacutil -l give you the file name?
sorear another part of the fiddliness is that Perl 6 is a fairly dynamic language but the CLR loves static binding
isn't gacutil Mono-only?
MikeFair nope 03:17
At least I've used it on my Windows boxes when trying to troubleshoot why I couldn't reference one of my assemblies
The GAC as I understand it is a CLR thing 03:18
Global Assembly Cache IIRC
I just understand it as "The repository for installed .Net modules" 03:19
Well I guess CLR modules would be a more accurate statement
Each version has its own GAC 03:20
As for binding, I would expect that if I used a CLR module my Perl would end up being very picky because I had to conform to the CLR rules 03:21
That's the price I'd expect to pay for laziness, if I don't want that, then I need to use some non-CLR based module 03:22
I would likely end up with a lot of runtime errors if I tried to do something the CLR didn't like 03:23
even if it would be valid Perl
Something like Accessing an Array as a Scalar to get the count for instance 03:24
(though in that case I suppose something could be done)
sorear hold on, I'm having some crazy ideas on how to redo niecza's name binding mechanism so 'use gtk:from<clr gtk-sharp>' Just Works 03:25
MikeFair grins broadly.
sorear generally speaking in Perl 6 contexts are just methods. also, there is no "use as a scalar" 03:26
MikeFair nods.
sorear when you say '0 + @arrray' the + operator notices that @array is an object of type Array, which does not do the Numeric role, so it calls @array.Numeric()
by convention coercion methods are named the same as the to-type 03:27
the Array class has a .Numeric() method which behaves the same as .elems()
MikeFair Or .Count on the CLR side
sorear yes.
there is currently as fairly small set of methods that are treated specially by Niecza's interop layer 03:28
for instance .Str() is mapped to .ToString() so that stringification Just Works
MikeFair nods. 03:29
sorear no reason we couldn't add a Numeric->get_Count mapping for IList
MikeFair exactly, I've noticed that CLR does an amazing job of reusing just handful of its basic interface types to make everything work 03:30
sorear seeing as how this conversation is relevant to perl 6 but irrelevant to parrot, I wonder if we should move it to irc.freenode.net #perl6, I'm there too
MikeFair nods.
I'm also there
moritz msg whiteknight I did a complete spectest of rakudo + smoke run of modules on top of the io_cleanup branch. No regressions. 04:26
aloha OK. I'll deliver the message.
05:58 fperrad joined 08:18 Psyche^ joined
nine msg rurban I'll be offline till 2012-09-09. Merge threads at will. 09:19
aloha OK. I'll deliver the message.
nine msg whiteknight I'll be offline till 2012-09-09. Merge threads at will.
aloha OK. I'll deliver the message.
09:37 perlite joined 09:39 simcop2387 joined 09:40 mj41 joined 09:50 JimmyZ joined 09:52 ttbot joined
dalek kudo/nom: d21d35d | masak++ | t/spectest.data:
[spectest.data] added macros-d2.t
09:55
09:56 he joined 10:21 cosimo joined 11:02 cosimo joined 11:40 whiteknight joined
whiteknight good morning, #parrot 11:59
dalek kudo/nom: f7ec305 | masak++ | t/spectest.data:
[spectest.data] chased macro test files rename
12:02
12:05 lucian joined
whiteknight moritz++ 12:07
weird, I'm getting an ICU segfault 15:35
16:22 rurban_mobile joined
rurban_mobile So it looks like we should merge io_cleanup1 and threads soon. I think we'd need a test on Win32 before. 16:23
whiteknight: io_cleanup1 fails now on linux like this: smolder.parrot.org/app/projects/rep...ails/30789 t/pm/filehandle.t 30 and t/pmc/io.t 34 16:38
threads do look better: smolder.parrot.org/app/projects/rep...ails/30790 All PASS 16:40
dukeleto: around? 16:41
16:51 contingencyplan joined 17:16 benabik joined
benabik !! 17:27
tadzik \\o/ 17:44
benabik tadzik: ? 17:47
tadzik threads PASS and stuff ;)
benabik If threads and io_cleanup both merge this week, that would be awesome.
dalek kudo/nom: bd23ad4 | moritz++ | src/core/ (2 files):
rename an exception class
18:10
19:23 contingencyplan joined
dalek kudo/uncool-iterable: c7e1713 | moritz++ | src/ (3 files):
Iterable should not inherit from Cool

while that might be cool for core classes, it is not in the general case
19:35
kudo/uncool-iterable: c6fac5b | moritz++ | src/core/Nil.pm:
Nil is Cool
whiteknight Nil is also "rad" and "awesome" 19:50
19:50 rurban_mobile joined
dalek p: a886a77 | (Arne SkjƦrholt)++ | src/ops/nqp_dyncall.ops:
Properly handle non-Sixmodel objects in dyncall ops.

Two issues:
  - decontainerize in nqp_dyncall.ops was out of sync with decontainerize in
   sixmodelobject.c (didn't consider possibility of non-SMO arguments)
  - unmarshalling code (to int/float types) need to dispatch to VTABLE_get_* in
   case of non-SMO arguments.
  FROGGS++ for uncovering the problem.
19:51
20:09 lucian joined 20:24 perlite joined
dalek Heuristic branch merge: pushed 30 commits to nqp/toqast by jnthn 20:27
p/toqast: 9b48c83 | jonathan++ | src/QAST/Operations.nqp:
Don't re-use the result register of the protected region in handle op for being the overall result.
21:44
p/toqast: 442c735 | jonathan++ | src/NQPQ/ (2 files):
Update try, CATCH and CONTROL for QAST.
p/toqast: c2b37e4 | jonathan++ | t/nqp/44-try-catch.t:
Eliminate a bogus test, plus some other updating to the exception tests.
p/toqast: 62dddd0 | jonathan++ | src/QAST/ (2 files):
Fix register allocation bug involving handlers and resumable exceptions.
22:00 rurban_mobile joined
dalek p/toqast: 8d4da1b | jonathan++ | src/NQPQ/Actions.pm:
Fix closure interpolation.
22:17
whiteknight ah, I think I've got this issue figured out, the one rurban++ pointed out 22:45
and I'll say this again: readline+encodings is a huge pain in the backside 22:47
as far as readline is concerned, the buffer is effectively empty if (1) it contains 0 bytes, (2) it contains fewer bytes than the delimiter, or (3) it contains fewer bytes than the maximum bytes per codepoint of the encoding 22:49
(3) is what I was missing
The reason this test was passing before is because I was just filling the buffer on every readline, which is a big hit for performance and is absolutely wrong for sockets 22:52
so when I fixed that issue, this one was exposed
I like getting things tightened up
dalek rrot/whiteknight/io_cleanup1: 1cf4aa9 | Whiteknight++ | / (2 files):
Comments and small cleanups to .h files. No functional changes
22:56
rrot/whiteknight/io_cleanup1: e493fae | Whiteknight++ | src/io/utilities.c:
As far as the readline engine is concerned, the buffer is effectively empty if (1) there are zero bytes in the buffer, (2) there are fewer bytes in the buffer than are in the delimiter string or (3) there are fewer bytes in the buffer than the maximum number of bytes per codepoint for the given encoding. In any of these three cases (#3 was missing), we need to make sure we fill the buffer to avoid missing characters spread
whiteknight When I started io_cleanup1, I was expecting it to be a 2-4 week project 23:03
my abilities to estimate software development schedules is poor
also, my subject/verb agreement is poor
23:17 lucian joined
whiteknight If rurban++ can confirm the fix, I'll merge the branch 23:20
benabik whiteknight++ # persistence 23:24
whiteknight It occurs to me that if sprintf is using a StringBuilder internally, that doing something like push(sb, sprintf(...)) is awfully redundant 23:41
the sprintf engine should be able to append to an existing StringBuilder 23:42